commontator 4.11.1 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +6 -5
  3. data/app/controllers/commontator/application_controller.rb +4 -4
  4. data/app/controllers/commontator/comments_controller.rb +15 -15
  5. data/app/controllers/commontator/subscriptions_controller.rb +1 -1
  6. data/app/controllers/commontator/threads_controller.rb +5 -5
  7. data/app/mailers/commontator/subscriptions_mailer.rb +25 -37
  8. data/app/models/commontator/comment.rb +11 -11
  9. data/app/models/commontator/subscription.rb +2 -2
  10. data/app/models/commontator/thread.rb +9 -9
  11. data/app/views/commontator/comments/_actions.html.erb +8 -8
  12. data/app/views/commontator/comments/_body.html.erb +1 -1
  13. data/app/views/commontator/comments/_form.html.erb +3 -3
  14. data/app/views/commontator/comments/_list.html.erb +3 -3
  15. data/app/views/commontator/comments/_show.html.erb +8 -8
  16. data/app/views/commontator/comments/_votes.html.erb +16 -16
  17. data/app/views/commontator/comments/cancel.js.erb +5 -5
  18. data/app/views/commontator/comments/create.js.erb +9 -9
  19. data/app/views/commontator/comments/delete.js.erb +7 -7
  20. data/app/views/commontator/comments/edit.js.erb +2 -2
  21. data/app/views/commontator/comments/new.js.erb +4 -4
  22. data/app/views/commontator/comments/update.js.erb +1 -1
  23. data/app/views/commontator/comments/vote.js.erb +3 -3
  24. data/app/views/commontator/shared/_thread.html.erb +6 -6
  25. data/app/views/commontator/subscriptions/_link.html.erb +5 -5
  26. data/app/views/commontator/subscriptions/subscribe.js.erb +3 -3
  27. data/app/views/commontator/subscriptions_mailer/comment_created.html.erb +6 -6
  28. data/app/views/commontator/threads/_reply.html.erb +6 -6
  29. data/app/views/commontator/threads/_show.html.erb +33 -33
  30. data/app/views/commontator/threads/_show.js.erb +7 -7
  31. data/app/views/commontator/threads/show.js.erb +6 -6
  32. data/config/initializers/commontator.rb +43 -38
  33. data/config/locales/de.yml +100 -0
  34. data/config/locales/en.yml +26 -27
  35. data/config/locales/pt-BR.yml +78 -0
  36. data/config/locales/ru.yml +25 -26
  37. data/config/locales/zh.yml +26 -27
  38. data/config/routes.rb +4 -4
  39. data/db/migrate/0_install_commontator.rb +17 -17
  40. data/lib/commontator.rb +2 -2
  41. data/lib/commontator/acts_as_commontable.rb +14 -12
  42. data/lib/commontator/acts_as_commontator.rb +5 -5
  43. data/lib/commontator/shared_helper.rb +6 -6
  44. data/lib/commontator/version.rb +1 -1
  45. data/lib/tasks/commontator_tasks.rake +2 -2
  46. data/spec/controllers/commontator/comments_controller_spec.rb +76 -75
  47. data/spec/controllers/commontator/subscriptions_controller_spec.rb +26 -27
  48. data/spec/controllers/commontator/threads_controller_spec.rb +42 -41
  49. data/spec/dummy/app/controllers/dummy_models_controller.rb +1 -1
  50. data/spec/dummy/app/views/layouts/application.html.erb +1 -2
  51. data/spec/dummy/config/application.rb +1 -1
  52. data/spec/dummy/config/environments/development.rb +1 -2
  53. data/spec/dummy/config/environments/production.rb +1 -2
  54. data/spec/dummy/config/environments/test.rb +1 -2
  55. data/spec/dummy/config/initializers/commontator.rb +7 -7
  56. data/spec/dummy/config/routes.rb +2 -3
  57. data/spec/dummy/db/development.sqlite3 +0 -0
  58. data/spec/dummy/db/migrate/1_create_dummy_models.rb +2 -3
  59. data/spec/dummy/db/migrate/2_create_dummy_users.rb +2 -3
  60. data/spec/dummy/db/migrate/3_acts_as_votable_migration.rb +4 -10
  61. data/spec/dummy/db/schema.rb +45 -48
  62. data/spec/dummy/db/test.sqlite3 +0 -0
  63. data/spec/dummy/log/development.log +413 -0
  64. data/spec/dummy/log/test.log +33690 -0
  65. data/spec/lib/commontator/commontable_config_spec.rb +4 -5
  66. data/spec/lib/commontator/commontator_config_spec.rb +4 -5
  67. data/spec/lib/commontator_spec.rb +2 -3
  68. data/spec/mailers/commontator/subscriptions_mailer_spec.rb +2 -3
  69. data/spec/models/commontator/comment_spec.rb +10 -10
  70. data/spec/rails_helper.rb +3 -2
  71. metadata +64 -44
@@ -2,7 +2,6 @@
2
2
  # All settings are initially set to their default values
3
3
 
4
4
  # Note: Do not "return" from a Proc, use "next" instead if necessary
5
- # "return" in a lambda is OK
6
5
  Commontator.configure do |config|
7
6
  # Engine Configuration
8
7
 
@@ -11,8 +10,8 @@ Commontator.configure do |config|
11
10
  # Arguments: the current controller (ActionController::Base)
12
11
  # Returns: the current user (acts_as_commontator)
13
12
  # The default works for Devise and similar authentication plugins
14
- # Default: lambda { |controller| controller.current_user }
15
- config.current_user_proc = lambda { |controller| controller.current_user }
13
+ # Default: ->(controller) { controller.current_user }
14
+ config.current_user_proc = ->(controller) { controller.current_user }
16
15
 
17
16
  # javascript_proc
18
17
  # Type: Proc
@@ -23,8 +22,8 @@ Commontator.configure do |config|
23
22
  # Objects visible in view templates can be accessed
24
23
  # through the view object (for example, view.flash)
25
24
  # However, the view does not include the main application's helpers
26
- # Default: lambda { |view| '$("#error_explanation").remove();' }
27
- config.javascript_proc = lambda { |view| '$("#error_explanation").remove();' }
25
+ # Default: ->(view) { '$("#error_explanation").remove();' }
26
+ config.javascript_proc = ->(view) { '$("#error_explanation").remove();' }
28
27
 
29
28
 
30
29
 
@@ -34,8 +33,8 @@ Commontator.configure do |config|
34
33
  # Type: Proc
35
34
  # Arguments: a user (acts_as_commontator)
36
35
  # Returns: the user's name (String)
37
- # Default: lambda { |user| I18n.t('commontator.anonymous') } (all users are anonymous)
38
- config.user_name_proc = lambda { |user| I18n.t('commontator.anonymous') }
36
+ # Default: ->(user) { I18n.t('commontator.anonymous') } (all users are anonymous)
37
+ config.user_name_proc = ->(user) { I18n.t('commontator.anonymous') }
39
38
 
40
39
  # user_link_proc
41
40
  # Type: Proc
@@ -45,8 +44,8 @@ Commontator.configure do |config|
45
44
  # If anything non-blank is returned, the user's name in comments
46
45
  # comments will become a hyperlink pointing to this path
47
46
  # The main application's routes can be accessed through the app_routes object
48
- # Default: lambda { |user, app_routes| '' } (no link)
49
- config.user_link_proc = lambda { |user, app_routes| '' }
47
+ # Default: ->(user, app_routes) { '' } (no link)
48
+ config.user_link_proc = ->(user, app_routes) { '' }
50
49
 
51
50
  # user_avatar_proc
52
51
  # Type: Proc
@@ -60,12 +59,12 @@ Commontator.configure do |config|
60
59
  # allows de-anonymization attacks against their email addresses
61
60
  # If you absolutely want to keep users' email addresses or identities secret,
62
61
  # do not use Gravatar or similar services
63
- # Default: lambda { |user, view|
64
- # view.commontator_gravatar_image_tag(
65
- # user, 1, :s => 60, :d => 'mm') }
66
- config.user_avatar_proc = lambda { |user, view|
67
- view.commontator_gravatar_image_tag(
68
- user, 1, :s => 60, :d => 'mm') }
62
+ # Default: ->(user, view) {
63
+ # view.commontator_gravatar_image_tag(user, 1, s: 60, d: 'mm')
64
+ # }
65
+ config.user_avatar_proc = ->(user, view) {
66
+ view.commontator_gravatar_image_tag(user, 1, s: 60, d: 'mm')
67
+ }
69
68
 
70
69
  # user_email_proc
71
70
  # Type: Proc
@@ -76,8 +75,8 @@ Commontator.configure do |config|
76
75
  # to Gravatar, so you should always return the user's email address (if using Gravatar)
77
76
  # If the mailer argument is not nil, then Commontator intends to send an email to
78
77
  # the address returned; you can prevent it from being sent by returning a blank String
79
- # Default: lambda { |user, mailer| user.try(:email) || '' }
80
- config.user_email_proc = lambda { |user, mailer| user.try(:email) || '' }
78
+ # Default: ->(user, mailer) { user.try(:email) || '' }
79
+ config.user_email_proc = ->(user, mailer) { user.try(:email) || '' }
81
80
 
82
81
 
83
82
 
@@ -100,16 +99,16 @@ Commontator.configure do |config|
100
99
  # Arguments: a thread (Commontator::Thread), a user (acts_as_commontator)
101
100
  # Returns: a Boolean, true if and only if the user should be allowed to read that thread
102
101
  # Note: can be called with a user object that is nil (if they are not logged in)
103
- # Default: lambda { |thread, user| true } (anyone can read any thread)
104
- config.thread_read_proc = lambda { |thread, user| true }
102
+ # Default: ->(thread, user) { true } (anyone can read any thread)
103
+ config.thread_read_proc = ->(thread, user) { true }
105
104
 
106
105
  # thread_moderator_proc
107
106
  # Type: Proc
108
107
  # Arguments: a thread (Commontator::Thread), a user (acts_as_commontator)
109
108
  # Returns: a Boolean, true if and only if the user is a moderator for that thread
110
109
  # If you want global moderators, make this proc true for them regardless of thread
111
- # Default: lambda { |thread, user| false } (no moderators)
112
- config.thread_moderator_proc = lambda { |thread, user| false }
110
+ # Default: ->(thread, user) { false } (no moderators)
111
+ config.thread_moderator_proc = ->(thread, user) { false }
113
112
 
114
113
  # comment_editing
115
114
  # Type: Symbol
@@ -161,8 +160,8 @@ Commontator.configure do |config|
161
160
  # Returns: vote count to be displayed (String)
162
161
  # pos is the number of likes, or the rating, or the reputation
163
162
  # neg is the number of dislikes, if applicable, or 0 otherwise
164
- # Default: lambda { |thread, pos, neg| "%+d" % (pos - neg) }
165
- config.vote_count_proc = lambda { |thread, pos, neg| "%+d" % (pos - neg) }
163
+ # Default: ->(thread, pos, neg) { "%+d" % (pos - neg) }
164
+ config.vote_count_proc = ->(thread, pos, neg) { "%+d" % (pos - neg) }
166
165
 
167
166
  # comment_order
168
167
  # Type: Symbol
@@ -217,10 +216,12 @@ Commontator.configure do |config|
217
216
  # Arguments: a thread (Commontator::Thread)
218
217
  # Returns: the address emails are sent "from" (String)
219
218
  # Important: If using subscriptions, change this to at least match your domain name
220
- # Default: lambda { |thread|
221
- # "no-reply@#{Rails.application.class.parent.to_s.downcase}.com" }
222
- config.email_from_proc = lambda { |thread|
223
- "no-reply@#{Rails.application.class.parent.to_s.downcase}.com" }
219
+ # Default: ->(thread) {
220
+ # "no-reply@#{Rails.application.class.parent.to_s.downcase}.com"
221
+ # }
222
+ config.email_from_proc = ->(thread) {
223
+ "no-reply@#{Rails.application.class.parent.to_s.downcase}.com"
224
+ }
224
225
 
225
226
  # commontable_name_proc
226
227
  # Type: Proc
@@ -228,9 +229,9 @@ Commontator.configure do |config|
228
229
  # Returns: a name that refers to the commontable object (String)
229
230
  # If you have multiple commontable models, you can also pass this
230
231
  # configuration value as an argument to acts_as_commontable for each one
231
- # Default: lambda { |thread|
232
+ # Default: ->(thread) {
232
233
  # "#{thread.commontable.class.name} ##{thread.commontable.id}" }
233
- config.commontable_name_proc = lambda { |thread|
234
+ config.commontable_name_proc = ->(thread) {
234
235
  "#{thread.commontable.class.name} ##{thread.commontable.id}" }
235
236
 
236
237
  # comment_url_proc
@@ -240,12 +241,13 @@ Commontator.configure do |config|
240
241
  # Returns: a String containing the url of the view that displays the given comment
241
242
  # This usually is the commontable's "show" page
242
243
  # The main application's routes can be accessed through the app_routes object
243
- # Default: lambda { |comment, app_routes|
244
- # app_routes.polymorphic_url(comment.thread.commontable,
245
- # anchor: "comment_#{comment.id}_div") }
244
+ # Default: ->(comment, app_routes) {
245
+ # app_routes.polymorphic_url(comment.thread.commontable, anchor: "comment_#{comment.id}_div")
246
+ # }
246
247
  # (defaults to the commontable's show url with an anchor pointing to the comment's div)
247
- config.comment_url_proc = lambda { |comment, app_routes|
248
- app_routes.polymorphic_url(comment.thread.commontable, anchor: "comment_#{comment.id}_div") }
248
+ config.comment_url_proc = ->(comment, app_routes) {
249
+ app_routes.polymorphic_url(comment.thread.commontable, anchor: "comment_#{comment.id}_div")
250
+ }
249
251
 
250
252
  # mentions_enabled
251
253
  # Type: Boolean
@@ -260,6 +262,7 @@ Commontator.configure do |config|
260
262
  # Type: Proc
261
263
  # Arguments:
262
264
  # the current user (acts_as_commontator)
265
+ # the current thread (Commontator::Thread)
263
266
  # the search query inputted by user (String)
264
267
  # Returns: an ActiveRecord Relation object
265
268
  # Important notes:
@@ -272,8 +275,10 @@ Commontator.configure do |config|
272
275
  # Make sure to handle SQL escaping properly and that the
273
276
  # attribute being searched does not contain sensitive information.
274
277
  #
275
- # Default: lambda { |current_user, query|
276
- # current_user.class.where('username LIKE ?', "#{query}%") }
277
- config.user_mentions_proc = lambda { |current_user, query|
278
- current_user.class.where('username LIKE ?', "#{query}%") }
278
+ # Default: ->(current_user, query) {
279
+ # current_user.class.where('username LIKE ?', "#{query}%")
280
+ # }
281
+ config.user_mentions_proc = ->(current_user, thread, query) {
282
+ current_user.class.where('username LIKE ?', "#{query}%")
283
+ }
279
284
  end
@@ -0,0 +1,100 @@
1
+ # Files in the config/locales directory are used for internationalization
2
+ # and are automatically loaded by Rails. If you want to use locales other
3
+ # than English, add the necessary files in this directory.
4
+ #
5
+ # To use the locales, use `I18n.t`:
6
+ #
7
+ # I18n.t 'hello'
8
+ #
9
+ # In views, this is aliased to just `t`:
10
+ #
11
+ # <%= t('hello') %>
12
+ #
13
+ # To use a different locale, set it with `I18n.locale`:
14
+ #
15
+ # I18n.locale = :es
16
+ #
17
+ # This would use the information in config/locales/es.yml.
18
+ #
19
+ # To learn more, please read the Rails Internationalization guide
20
+ # available at http://guides.rubyonrails.org/i18n.html.
21
+
22
+ ---
23
+ de:
24
+ activerecord:
25
+ attributes:
26
+ commontator/comment:
27
+ body: Kommentar
28
+ creator: Ersteller
29
+ editor: Bearbeiter
30
+ thread: Diskussion
31
+ commontator/subscription:
32
+ subscriber: Subscriber
33
+ thread: Diskussion
34
+ commontator/thread:
35
+ commontable: Commontable
36
+ models:
37
+ commontator/comment:
38
+ one: Kommentar
39
+ other: Kommentare
40
+ commontator/subscription:
41
+ one: Subscription
42
+ other: Subscriptions
43
+ commontator/thread:
44
+ one: Diskussion
45
+ other: Diskussionen
46
+ commontator:
47
+ anonymous: Anonymous
48
+ comment:
49
+ actions:
50
+ cancel: Abbrechen
51
+ confirm_delete: "Sind Sie sicher, dass sie diesen Kommentar löschen wollen?"
52
+ create: "Kommentar speichern"
53
+ delete: Löschen
54
+ edit: Bearbeiten
55
+ new: "Neuer Kommentar"
56
+ undelete: Löschen rückgängig
57
+ update: "Kommentar bearbeiten"
58
+ errors:
59
+ already_deleted: "Dieser Kommentar wurde bereits gelöscht."
60
+ create: "Kommentar kann nicht veröffentlicht werden:"
61
+ double_posted: "Kommentar ist ein Duplikat."
62
+ not_deleted: "Dieser Kommentar wurde nicht gelöscht.."
63
+ update: "Kommentar kann nicht bearbeitet werden:"
64
+ status:
65
+ created_at: "Veröffentlich am %{created_at}."
66
+ deleted_by: "Kommentar gelöscht von %{deleter_name}."
67
+ updated_at: "Bearbeitet von %{editor_name} am %{updated_at}."
68
+ email:
69
+ comment_created:
70
+ body: "%{creator_name} kommentierte zu %{commontable_name}:"
71
+ subject: "%{creator_name} veröffentlichte einen Kommentar zu %{commontable_name}"
72
+ thread_link_html: "<a href=\"%{comment_url}\">Hier klicken</a> um alle Kommentare zu %{commontable_name} zu sehen."
73
+ require_login: "Sie müssen sich anmelden bevor sie einen Kommentar veröffentlichen können."
74
+ subscription:
75
+ actions:
76
+ confirm_unsubscribe: "Sind Sie sicher, dass sie keine Nachrichten mehr zur Diskussion erhalten möchten?"
77
+ subscribe: Subscribe
78
+ unsubscribe: Unsubscribe
79
+ errors:
80
+ already_subscribed: "Sie erhalten zu der Diskussion bereits Aktualisierungen"
81
+ not_subscribed: "Sie erhalten zu der Diskussion keine Nachrichten."
82
+ thread:
83
+ actions:
84
+ show_all: "Alle Kommentare anzeigen"
85
+ filter: "Kommentare filtern"
86
+ close: "Diskussion beenden"
87
+ confirm_close: "Sind Sie sicher, dass sie die Diskussion schliessen wollen?"
88
+ reopen: "Diskussion wieder eröffnen"
89
+ show: "Kommentare anzeigen"
90
+ hide: "Kommentare ausblenden"
91
+ errors:
92
+ already_closed: "Diese Diskussion ist bereits geschlossen."
93
+ not_closed: "Diese Diskussion ist nicht geschlossen."
94
+ status:
95
+ cannot_post: "Zurzeit können keine neuen Kommentare verfasst werden."
96
+ closed: "Kommentare (geschlossen von %{closer_name})"
97
+ open: Kommentare
98
+ time:
99
+ formats:
100
+ commontator: "%d. %B %Y um %H:%m %Z"
@@ -19,34 +19,34 @@
19
19
  # To learn more, please read the Rails Internationalization guide
20
20
  # available at http://guides.rubyonrails.org/i18n.html.
21
21
 
22
- ---
23
- en:
24
- activerecord:
25
- attributes:
26
- commontator/comment:
22
+ ---
23
+ en:
24
+ activerecord:
25
+ attributes:
26
+ commontator/comment:
27
27
  body: Comment
28
28
  creator: Creator
29
29
  editor: Editor
30
30
  thread: Discussion
31
- commontator/subscription:
31
+ commontator/subscription:
32
32
  subscriber: Subscriber
33
33
  thread: Discussion
34
- commontator/thread:
34
+ commontator/thread:
35
35
  commontable: Commontable
36
- models:
37
- commontator/comment:
36
+ models:
37
+ commontator/comment:
38
38
  one: comment
39
39
  other: comments
40
- commontator/subscription:
40
+ commontator/subscription:
41
41
  one: subscription
42
42
  other: subscriptions
43
- commontator/thread:
43
+ commontator/thread:
44
44
  one: thread
45
45
  other: threads
46
- commontator:
46
+ commontator:
47
47
  anonymous: Anonymous
48
- comment:
49
- actions:
48
+ comment:
49
+ actions:
50
50
  cancel: Cancel
51
51
  confirm_delete: "Are you sure you want to delete this comment?"
52
52
  create: "Post Comment"
@@ -55,33 +55,32 @@ en:
55
55
  new: "New Comment"
56
56
  undelete: Undelete
57
57
  update: "Modify Comment"
58
- errors:
58
+ errors:
59
59
  already_deleted: "This comment has already been deleted."
60
60
  create: "This comment could not be posted because:"
61
61
  double_posted: "is a duplicate of another comment."
62
62
  not_deleted: "This comment is not deleted."
63
63
  update: "This comment could not be modified because:"
64
- status:
64
+ status:
65
65
  created_at: "Posted on %{created_at}."
66
66
  deleted_by: "Comment deleted by %{deleter_name}."
67
67
  updated_at: "Last modified by %{editor_name} on %{updated_at}."
68
- email:
69
- comment_created:
68
+ email:
69
+ comment_created:
70
70
  body: "%{creator_name} commented on %{commontable_name}:"
71
71
  subject: "%{creator_name} posted a comment on %{commontable_name}"
72
72
  thread_link_html: "<a href=\"%{comment_url}\">Click here</a> to view all comments on %{commontable_name}."
73
- undisclosed_recipients: "Undisclosed Recipients"
74
73
  require_login: "You must login before you can post a comment."
75
- subscription:
76
- actions:
74
+ subscription:
75
+ actions:
77
76
  confirm_unsubscribe: "Are you sure you want to unsubscribe from this discussion?"
78
77
  subscribe: Subscribe
79
78
  unsubscribe: Unsubscribe
80
- errors:
79
+ errors:
81
80
  already_subscribed: "You are already subscribed to this discussion."
82
81
  not_subscribed: "You are not subscribed to this discussion."
83
- thread:
84
- actions:
82
+ thread:
83
+ actions:
85
84
  show_all: "Show All Comments"
86
85
  filter: "Filter Comments"
87
86
  close: "Close Discussion"
@@ -92,10 +91,10 @@ en:
92
91
  errors:
93
92
  already_closed: "This discussion has already been closed."
94
93
  not_closed: "This discussion is not closed."
95
- status:
94
+ status:
96
95
  cannot_post: "New comments cannot be posted at this time."
97
96
  closed: "Comments (Closed by %{closer_name})"
98
97
  open: Comments
99
- time:
100
- formats:
98
+ time:
99
+ formats:
101
100
  commontator: "%b %d %Y at %I:%M%p %Z"
@@ -0,0 +1,78 @@
1
+ pt-BR:
2
+ activerecord:
3
+ attributes:
4
+ commontator/comment:
5
+ body: Comentário
6
+ creator: Criador
7
+ editor: Editor
8
+ thread: Discussão
9
+ commontator/subscription:
10
+ subscriber: Assinante
11
+ thread: Discussão
12
+ commontator/thread:
13
+ commontable: Comentável
14
+ models:
15
+ commontator/comment:
16
+ one: comentário
17
+ other: comentários
18
+ commontator/subscription:
19
+ one: inscrição
20
+ other: incrições
21
+ commontator/thread:
22
+ one: tópico
23
+ other: tópicos
24
+ commontator:
25
+ anonymous: Anônimo
26
+ comment:
27
+ actions:
28
+ cancel: Cancelar
29
+ confirm_delete: "Tem certeza que deseja remover esse comentário?"
30
+ create: "Postar comentário"
31
+ delete: Deletar
32
+ edit: Editar
33
+ new: "Novo comentário"
34
+ undelete: Desfazer
35
+ update: "Editar comentário"
36
+ errors:
37
+ already_deleted: "esse comentário já foi removido."
38
+ create: "Esse comentário não pôde ser postado porque:"
39
+ double_posted: "é um comentário duplicado."
40
+ not_deleted: "Esse comentário não foi removido."
41
+ update: "Esse comentário não pôde ser editado porque:"
42
+ status:
43
+ created_at: "Postado em %{created_at}."
44
+ deleted_by: "Comentário removido por %{deleter_name}."
45
+ updated_at: "Última edição por %{editor_name} em %{updated_at}."
46
+ email:
47
+ comment_created:
48
+ body: "%{creator_name} comentou em %{commontable_name}:"
49
+ subject: "%{creator_name} postou um comentário em %{commontable_name}"
50
+ thread_link_html: "<a href=\"%{comment_url}\">Clique aqui</a> para ver todos os comentários em %{commontable_name}."
51
+ require_login: "Você deve fazer login para postar um comentário."
52
+ subscription:
53
+ actions:
54
+ confirm_unsubscribe: "Tem certeza que deseja cancelar sua inscrição nessa discussão?"
55
+ subscribe: Inscrever-se
56
+ unsubscribe: Cancelar inscrição
57
+ errors:
58
+ already_subscribed: "Você já está inscrito nessa discussão."
59
+ not_subscribed: "Você não está inscrito nessa discussão."
60
+ thread:
61
+ actions:
62
+ show_all: "Mostrar todos os comentários"
63
+ filter: "Filtrar comentários"
64
+ close: "Fechar discussão"
65
+ confirm_close: "Tem certeza que deseja fechar a discussão?"
66
+ reopen: "Reabrir discussão"
67
+ show: "Mostrar comentários"
68
+ hide: "Esconder comentários"
69
+ errors:
70
+ already_closed: "Essa discussão já foi fechada."
71
+ not_closed: "Essa discussão não está fechada."
72
+ status:
73
+ cannot_post: "Não é possível postar novos comentários."
74
+ closed: "Comentários (Fechado por %{closer_name})"
75
+ open: Comentários
76
+ time:
77
+ formats:
78
+ commontator: "%b %d %Y às %I:%M%p %Z"