decidim-comments 0.17.2 → 0.18.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/decidim/comments/bundle.js +16 -16
- data/app/assets/javascripts/decidim/comments/bundle.js.map +1 -1
- data/app/commands/decidim/comments/vote_comment.rb +12 -2
- data/app/frontend/comments/add_comment_form.component.tsx +2 -0
- data/app/frontend/comments/comment.component.test.tsx +56 -0
- data/app/frontend/comments/comment.component.tsx +10 -8
- data/app/frontend/comments/comments.component.test.tsx +18 -0
- data/app/frontend/comments/comments.component.tsx +28 -5
- data/app/frontend/comments/down_vote_button.component.test.tsx +5 -5
- data/app/frontend/comments/down_vote_button.component.tsx +2 -2
- data/app/frontend/comments/up_vote_button.component.test.tsx +4 -4
- data/app/frontend/comments/up_vote_button.component.tsx +2 -2
- data/app/frontend/fragments/comment_data.fragment.graphql +1 -0
- data/app/frontend/queries/comments.query.graphql +1 -0
- data/app/frontend/support/generate_comments_data.ts +1 -0
- data/app/frontend/support/schema.ts +52 -0
- data/app/models/decidim/comments/comment.rb +14 -0
- data/app/types/decidim/comments/commentable_interface.rb +6 -0
- data/config/locales/ar-SA.yml +1 -0
- data/config/locales/ar.yml +108 -0
- data/config/locales/ca.yml +1 -0
- data/config/locales/cs.yml +1 -0
- data/config/locales/de.yml +1 -0
- data/config/locales/en.yml +1 -0
- data/config/locales/es-MX.yml +1 -0
- data/config/locales/es-PY.yml +1 -0
- data/config/locales/es.yml +1 -0
- data/config/locales/eu.yml +1 -0
- data/config/locales/fi-plain.yml +1 -0
- data/config/locales/fi.yml +1 -0
- data/config/locales/fr.yml +1 -0
- data/config/locales/gl.yml +1 -0
- data/config/locales/hu.yml +1 -0
- data/config/locales/id-ID.yml +1 -0
- data/config/locales/it.yml +1 -0
- data/config/locales/nl.yml +1 -0
- data/config/locales/pl.yml +1 -0
- data/config/locales/pt-BR.yml +1 -0
- data/config/locales/pt.yml +1 -0
- data/config/locales/sv.yml +1 -0
- data/config/locales/tr-TR.yml +1 -0
- data/lib/decidim/comments.rb +4 -0
- data/lib/decidim/comments/api/comment_type.rb +6 -0
- data/lib/decidim/comments/commentable.rb +5 -0
- data/lib/decidim/comments/version.rb +1 -1
- metadata +8 -7
@@ -36,7 +36,7 @@ export const UpVoteButton: React.SFC<UpVoteButtonProps> = ({
|
|
36
36
|
}
|
37
37
|
|
38
38
|
const userLoggedIn = session && session.user;
|
39
|
-
const disabled =
|
39
|
+
const disabled = false;
|
40
40
|
|
41
41
|
return (
|
42
42
|
<VoteButton
|
@@ -67,7 +67,7 @@ const UpVoteButtonWithMutation = graphql<UpVoteMutation, UpVoteButtonProps>(upVo
|
|
67
67
|
upVote: {
|
68
68
|
__typename: "Comment",
|
69
69
|
...ownProps.comment,
|
70
|
-
upVotes: ownProps.comment.upVotes + 1,
|
70
|
+
upVotes: ownProps.comment.upVotes + (ownProps.comment.upVoted ? -1 : 1),
|
71
71
|
upVoted: true
|
72
72
|
}
|
73
73
|
}
|
@@ -61,6 +61,8 @@ export interface addCommentMutation {
|
|
61
61
|
),
|
62
62
|
// Whether the object can have new comments or not
|
63
63
|
acceptsNewComments: boolean,
|
64
|
+
// Check if the current user can comment
|
65
|
+
userAllowedToComment: boolean,
|
64
66
|
// The comment's alignment. Can be 0 (neutral), 1 (in favor) or -1 (against)'
|
65
67
|
alignment: number | null,
|
66
68
|
// Check if the current user has reported the comment
|
@@ -121,6 +123,8 @@ export interface addCommentMutation {
|
|
121
123
|
hasComments: boolean,
|
122
124
|
// Whether the object can have new comments or not
|
123
125
|
acceptsNewComments: boolean,
|
126
|
+
// Check if the current user can comment
|
127
|
+
userAllowedToComment: boolean,
|
124
128
|
// The comment's alignment. Can be 0 (neutral), 1 (in favor) or -1 (against)'
|
125
129
|
alignment: number | null,
|
126
130
|
// Check if the current user has reported the comment
|
@@ -181,6 +185,8 @@ export interface addCommentMutation {
|
|
181
185
|
hasComments: boolean,
|
182
186
|
// Whether the object can have new comments or not
|
183
187
|
acceptsNewComments: boolean,
|
188
|
+
// Check if the current user can comment
|
189
|
+
userAllowedToComment: boolean,
|
184
190
|
// The comment's alignment. Can be 0 (neutral), 1 (in favor) or -1 (against)'
|
185
191
|
alignment: number | null,
|
186
192
|
// Check if the current user has reported the comment
|
@@ -241,6 +247,8 @@ export interface addCommentMutation {
|
|
241
247
|
hasComments: boolean,
|
242
248
|
// Whether the object can have new comments or not
|
243
249
|
acceptsNewComments: boolean,
|
250
|
+
// Check if the current user can comment
|
251
|
+
userAllowedToComment: boolean,
|
244
252
|
// The comment's alignment. Can be 0 (neutral), 1 (in favor) or -1 (against)'
|
245
253
|
alignment: number | null,
|
246
254
|
// Check if the current user has reported the comment
|
@@ -315,6 +323,8 @@ export interface DownVoteMutation {
|
|
315
323
|
hasComments: boolean,
|
316
324
|
// Whether the object can have new comments or not
|
317
325
|
acceptsNewComments: boolean,
|
326
|
+
// Check if the current user can comment
|
327
|
+
userAllowedToComment: boolean,
|
318
328
|
// The comment's alignment. Can be 0 (neutral), 1 (in favor) or -1 (against)'
|
319
329
|
alignment: number | null,
|
320
330
|
// Check if the current user has reported the comment
|
@@ -375,6 +385,8 @@ export interface DownVoteMutation {
|
|
375
385
|
hasComments: boolean,
|
376
386
|
// Whether the object can have new comments or not
|
377
387
|
acceptsNewComments: boolean,
|
388
|
+
// Check if the current user can comment
|
389
|
+
userAllowedToComment: boolean,
|
378
390
|
// The comment's alignment. Can be 0 (neutral), 1 (in favor) or -1 (against)'
|
379
391
|
alignment: number | null,
|
380
392
|
// Check if the current user has reported the comment
|
@@ -435,6 +447,8 @@ export interface DownVoteMutation {
|
|
435
447
|
hasComments: boolean,
|
436
448
|
// Whether the object can have new comments or not
|
437
449
|
acceptsNewComments: boolean,
|
450
|
+
// Check if the current user can comment
|
451
|
+
userAllowedToComment: boolean,
|
438
452
|
// The comment's alignment. Can be 0 (neutral), 1 (in favor) or -1 (against)'
|
439
453
|
alignment: number | null,
|
440
454
|
// Check if the current user has reported the comment
|
@@ -495,6 +509,8 @@ export interface DownVoteMutation {
|
|
495
509
|
hasComments: boolean,
|
496
510
|
// Whether the object can have new comments or not
|
497
511
|
acceptsNewComments: boolean,
|
512
|
+
// Check if the current user can comment
|
513
|
+
userAllowedToComment: boolean,
|
498
514
|
// The comment's alignment. Can be 0 (neutral), 1 (in favor) or -1 (against)'
|
499
515
|
alignment: number | null,
|
500
516
|
// Check if the current user has reported the comment
|
@@ -569,6 +585,8 @@ export interface UpVoteMutation {
|
|
569
585
|
hasComments: boolean,
|
570
586
|
// Whether the object can have new comments or not
|
571
587
|
acceptsNewComments: boolean,
|
588
|
+
// Check if the current user can comment
|
589
|
+
userAllowedToComment: boolean,
|
572
590
|
// The comment's alignment. Can be 0 (neutral), 1 (in favor) or -1 (against)'
|
573
591
|
alignment: number | null,
|
574
592
|
// Check if the current user has reported the comment
|
@@ -629,6 +647,8 @@ export interface UpVoteMutation {
|
|
629
647
|
hasComments: boolean,
|
630
648
|
// Whether the object can have new comments or not
|
631
649
|
acceptsNewComments: boolean,
|
650
|
+
// Check if the current user can comment
|
651
|
+
userAllowedToComment: boolean,
|
632
652
|
// The comment's alignment. Can be 0 (neutral), 1 (in favor) or -1 (against)'
|
633
653
|
alignment: number | null,
|
634
654
|
// Check if the current user has reported the comment
|
@@ -689,6 +709,8 @@ export interface UpVoteMutation {
|
|
689
709
|
hasComments: boolean,
|
690
710
|
// Whether the object can have new comments or not
|
691
711
|
acceptsNewComments: boolean,
|
712
|
+
// Check if the current user can comment
|
713
|
+
userAllowedToComment: boolean,
|
692
714
|
// The comment's alignment. Can be 0 (neutral), 1 (in favor) or -1 (against)'
|
693
715
|
alignment: number | null,
|
694
716
|
// Check if the current user has reported the comment
|
@@ -749,6 +771,8 @@ export interface UpVoteMutation {
|
|
749
771
|
hasComments: boolean,
|
750
772
|
// Whether the object can have new comments or not
|
751
773
|
acceptsNewComments: boolean,
|
774
|
+
// Check if the current user can comment
|
775
|
+
userAllowedToComment: boolean,
|
752
776
|
// The comment's alignment. Can be 0 (neutral), 1 (in favor) or -1 (against)'
|
753
777
|
alignment: number | null,
|
754
778
|
// Check if the current user has reported the comment
|
@@ -799,6 +823,8 @@ export interface GetCommentsQuery {
|
|
799
823
|
commentable: {
|
800
824
|
// Whether the object can have new comments or not
|
801
825
|
acceptsNewComments: boolean,
|
826
|
+
// Check if the current user can comment
|
827
|
+
userAllowedToComment: boolean,
|
802
828
|
// Whether the object comments have alignment or not
|
803
829
|
commentsHaveAlignment: boolean,
|
804
830
|
// Whether the object comments have votes or not
|
@@ -853,6 +879,8 @@ export interface GetCommentsQuery {
|
|
853
879
|
),
|
854
880
|
// Whether the object can have new comments or not
|
855
881
|
acceptsNewComments: boolean,
|
882
|
+
// Check if the current user can comment
|
883
|
+
userAllowedToComment: boolean,
|
856
884
|
// The comment's alignment. Can be 0 (neutral), 1 (in favor) or -1 (against)'
|
857
885
|
alignment: number | null,
|
858
886
|
// Check if the current user has reported the comment
|
@@ -913,6 +941,8 @@ export interface GetCommentsQuery {
|
|
913
941
|
hasComments: boolean,
|
914
942
|
// Whether the object can have new comments or not
|
915
943
|
acceptsNewComments: boolean,
|
944
|
+
// Check if the current user can comment
|
945
|
+
userAllowedToComment: boolean,
|
916
946
|
// The comment's alignment. Can be 0 (neutral), 1 (in favor) or -1 (against)'
|
917
947
|
alignment: number | null,
|
918
948
|
// Check if the current user has reported the comment
|
@@ -973,6 +1003,8 @@ export interface GetCommentsQuery {
|
|
973
1003
|
hasComments: boolean,
|
974
1004
|
// Whether the object can have new comments or not
|
975
1005
|
acceptsNewComments: boolean,
|
1006
|
+
// Check if the current user can comment
|
1007
|
+
userAllowedToComment: boolean,
|
976
1008
|
// The comment's alignment. Can be 0 (neutral), 1 (in favor) or -1 (against)'
|
977
1009
|
alignment: number | null,
|
978
1010
|
// Check if the current user has reported the comment
|
@@ -1033,6 +1065,8 @@ export interface GetCommentsQuery {
|
|
1033
1065
|
hasComments: boolean,
|
1034
1066
|
// Whether the object can have new comments or not
|
1035
1067
|
acceptsNewComments: boolean,
|
1068
|
+
// Check if the current user can comment
|
1069
|
+
userAllowedToComment: boolean,
|
1036
1070
|
// The comment's alignment. Can be 0 (neutral), 1 (in favor) or -1 (against)'
|
1037
1071
|
alignment: number | null,
|
1038
1072
|
// Check if the current user has reported the comment
|
@@ -1121,6 +1155,8 @@ export interface CommentFragment {
|
|
1121
1155
|
hasComments: boolean,
|
1122
1156
|
// Whether the object can have new comments or not
|
1123
1157
|
acceptsNewComments: boolean,
|
1158
|
+
// Check if the current user can comment
|
1159
|
+
userAllowedToComment: boolean,
|
1124
1160
|
// The comment's alignment. Can be 0 (neutral), 1 (in favor) or -1 (against)'
|
1125
1161
|
alignment: number | null,
|
1126
1162
|
// Check if the current user has reported the comment
|
@@ -1181,6 +1217,8 @@ export interface CommentFragment {
|
|
1181
1217
|
hasComments: boolean,
|
1182
1218
|
// Whether the object can have new comments or not
|
1183
1219
|
acceptsNewComments: boolean,
|
1220
|
+
// Check if the current user can comment
|
1221
|
+
userAllowedToComment: boolean,
|
1184
1222
|
// The comment's alignment. Can be 0 (neutral), 1 (in favor) or -1 (against)'
|
1185
1223
|
alignment: number | null,
|
1186
1224
|
// Check if the current user has reported the comment
|
@@ -1241,6 +1279,8 @@ export interface CommentFragment {
|
|
1241
1279
|
hasComments: boolean,
|
1242
1280
|
// Whether the object can have new comments or not
|
1243
1281
|
acceptsNewComments: boolean,
|
1282
|
+
// Check if the current user can comment
|
1283
|
+
userAllowedToComment: boolean,
|
1244
1284
|
// The comment's alignment. Can be 0 (neutral), 1 (in favor) or -1 (against)'
|
1245
1285
|
alignment: number | null,
|
1246
1286
|
// Check if the current user has reported the comment
|
@@ -1301,6 +1341,8 @@ export interface CommentFragment {
|
|
1301
1341
|
hasComments: boolean,
|
1302
1342
|
// Whether the object can have new comments or not
|
1303
1343
|
acceptsNewComments: boolean,
|
1344
|
+
// Check if the current user can comment
|
1345
|
+
userAllowedToComment: boolean,
|
1304
1346
|
// The comment's alignment. Can be 0 (neutral), 1 (in favor) or -1 (against)'
|
1305
1347
|
alignment: number | null,
|
1306
1348
|
// Check if the current user has reported the comment
|
@@ -1366,6 +1408,8 @@ export interface CommentDataFragment {
|
|
1366
1408
|
hasComments: boolean,
|
1367
1409
|
// Whether the object can have new comments or not
|
1368
1410
|
acceptsNewComments: boolean,
|
1411
|
+
// Check if the current user can comment
|
1412
|
+
userAllowedToComment: boolean,
|
1369
1413
|
// The comment's alignment. Can be 0 (neutral), 1 (in favor) or -1 (against)'
|
1370
1414
|
alignment: number | null,
|
1371
1415
|
// Check if the current user has reported the comment
|
@@ -1428,6 +1472,8 @@ export interface CommentThreadFragment {
|
|
1428
1472
|
),
|
1429
1473
|
// Whether the object can have new comments or not
|
1430
1474
|
acceptsNewComments: boolean,
|
1475
|
+
// Check if the current user can comment
|
1476
|
+
userAllowedToComment: boolean,
|
1431
1477
|
// The comment's alignment. Can be 0 (neutral), 1 (in favor) or -1 (against)'
|
1432
1478
|
alignment: number | null,
|
1433
1479
|
// Check if the current user has reported the comment
|
@@ -1488,6 +1534,8 @@ export interface CommentThreadFragment {
|
|
1488
1534
|
hasComments: boolean,
|
1489
1535
|
// Whether the object can have new comments or not
|
1490
1536
|
acceptsNewComments: boolean,
|
1537
|
+
// Check if the current user can comment
|
1538
|
+
userAllowedToComment: boolean,
|
1491
1539
|
// The comment's alignment. Can be 0 (neutral), 1 (in favor) or -1 (against)'
|
1492
1540
|
alignment: number | null,
|
1493
1541
|
// Check if the current user has reported the comment
|
@@ -1548,6 +1596,8 @@ export interface CommentThreadFragment {
|
|
1548
1596
|
hasComments: boolean,
|
1549
1597
|
// Whether the object can have new comments or not
|
1550
1598
|
acceptsNewComments: boolean,
|
1599
|
+
// Check if the current user can comment
|
1600
|
+
userAllowedToComment: boolean,
|
1551
1601
|
// The comment's alignment. Can be 0 (neutral), 1 (in favor) or -1 (against)'
|
1552
1602
|
alignment: number | null,
|
1553
1603
|
// Check if the current user has reported the comment
|
@@ -1608,6 +1658,8 @@ export interface CommentThreadFragment {
|
|
1608
1658
|
hasComments: boolean,
|
1609
1659
|
// Whether the object can have new comments or not
|
1610
1660
|
acceptsNewComments: boolean,
|
1661
|
+
// Check if the current user can comment
|
1662
|
+
userAllowedToComment: boolean,
|
1611
1663
|
// The comment's alignment. Can be 0 (neutral), 1 (in favor) or -1 (against)'
|
1612
1664
|
alignment: number | null,
|
1613
1665
|
// Check if the current user has reported the comment
|
@@ -53,6 +53,13 @@ module Decidim
|
|
53
53
|
root_commentable.accepts_new_comments? && depth < MAX_DEPTH
|
54
54
|
end
|
55
55
|
|
56
|
+
# Public: Override comment threads to exclude hidden ones.
|
57
|
+
#
|
58
|
+
# Returns comment.
|
59
|
+
def comment_threads
|
60
|
+
super.reject(&:hidden?)
|
61
|
+
end
|
62
|
+
|
56
63
|
# Public: Override Commentable concern method `users_to_notify_on_comment_created`.
|
57
64
|
# Return the comment author together with whatever ActiveRecord::Relation is returned by
|
58
65
|
# the `commentable`. This will cause the comment author to be notified when the
|
@@ -91,6 +98,13 @@ module Decidim
|
|
91
98
|
Decidim::Comments::CommentSerializer
|
92
99
|
end
|
93
100
|
|
101
|
+
def self.newsletter_participant_ids(space)
|
102
|
+
Decidim::Comments::Comment.includes(:root_commentable).not_hidden
|
103
|
+
.where("decidim_comments_comments.decidim_author_id IN (?)", Decidim::User.where(organization: space.organization).pluck(:id))
|
104
|
+
.where("decidim_comments_comments.decidim_author_type IN (?)", "Decidim::UserBaseEntity")
|
105
|
+
.map(&:author).pluck(:id).flatten.compact.uniq
|
106
|
+
end
|
107
|
+
|
94
108
|
private
|
95
109
|
|
96
110
|
# Private: Check if commentable can have comments and if not adds
|
@@ -49,6 +49,12 @@ module Decidim
|
|
49
49
|
obj.comment_threads.size.positive?
|
50
50
|
}
|
51
51
|
end
|
52
|
+
|
53
|
+
field :userAllowedToComment, !types.Boolean, "Check if the current user can comment" do
|
54
|
+
resolve lambda { |obj, _args, ctx|
|
55
|
+
obj.commentable? && obj.user_allowed_to_comment?(ctx[:current_user])
|
56
|
+
}
|
57
|
+
end
|
52
58
|
end
|
53
59
|
end
|
54
60
|
end
|
data/config/locales/ar-SA.yml
CHANGED
@@ -72,6 +72,7 @@ ar:
|
|
72
72
|
comment_thread:
|
73
73
|
title: المحادثة مع %{authorName}
|
74
74
|
comments:
|
75
|
+
blocked_comments_for_user_warning: لا يمكنك التعليق في هذه اللحظة ، ولكن يمكنك قراءة التعليقات السابقة.
|
75
76
|
blocked_comments_warning: التعليقات معطلة في هذا الوقت ، لكن يمكنك قراءة التعليقات السابقة.
|
76
77
|
loading: جارٍ تحميل التعليقات ...
|
77
78
|
title: "%{count} تعليقات"
|
@@ -0,0 +1,108 @@
|
|
1
|
+
ar:
|
2
|
+
activemodel:
|
3
|
+
models:
|
4
|
+
decidim/comments/comment_by_followed_user_event: تعليق
|
5
|
+
decidim/comments/comment_created_event: تعليق
|
6
|
+
decidim/comments/reply_created_event: تعليق الرد
|
7
|
+
decidim/comments/user_mentioned_event: أشير
|
8
|
+
activerecord:
|
9
|
+
models:
|
10
|
+
decidim/comments/comment:
|
11
|
+
zero: تعليقات
|
12
|
+
one: تعليق
|
13
|
+
two: تعليقات
|
14
|
+
few: تعليقات
|
15
|
+
many: تعليقات
|
16
|
+
other: تعليقات
|
17
|
+
decidim/comments/comment_vote:
|
18
|
+
zero: الأصوات
|
19
|
+
one: تصويت
|
20
|
+
two: الأصوات
|
21
|
+
few: الأصوات
|
22
|
+
many: الأصوات
|
23
|
+
other: الأصوات
|
24
|
+
decidim:
|
25
|
+
comments:
|
26
|
+
comments: تعليقات
|
27
|
+
last_activity:
|
28
|
+
new_comment_at_html: "<span>تعليق جديد على %{link}</span>"
|
29
|
+
votes:
|
30
|
+
create:
|
31
|
+
error: حدثت مشكلة في التصويت على التعليق.
|
32
|
+
components:
|
33
|
+
add_comment_form:
|
34
|
+
account_message: <a href="%{sign_in_url}">سجل الدخول بحسابك</a> أو <a href="%{sign_up_url}">اشترك</a> لإضافة تعليقك.
|
35
|
+
form:
|
36
|
+
body:
|
37
|
+
label: تعليق
|
38
|
+
placeholder: ما رأيك بهذا؟
|
39
|
+
form_error: النص مطلوب ولا يمكن أن يكون أطول من %{length} حرف.
|
40
|
+
submit: إرسال
|
41
|
+
user_group_id:
|
42
|
+
label: التعليق باسم
|
43
|
+
opinion:
|
44
|
+
neutral: محايد
|
45
|
+
remaining_characters: "%{count} الحروف المتبقية"
|
46
|
+
remaining_characters_1: "%{count} حرف اليسار"
|
47
|
+
title: أضف تعليقك
|
48
|
+
comment:
|
49
|
+
alignment:
|
50
|
+
against: ضد
|
51
|
+
in_favor: لصالح
|
52
|
+
deleted_user: مشارك محذوف
|
53
|
+
reply: الرد
|
54
|
+
report:
|
55
|
+
action: أبلغ عن
|
56
|
+
already_reported: تم الإبلاغ عن هذا المحتوى بالفعل وسيتم مراجعته من قبل المشرف.
|
57
|
+
close: قريب
|
58
|
+
description: هل هذا المحتوى غير مناسب؟
|
59
|
+
details: تعليقات اضافية
|
60
|
+
reasons:
|
61
|
+
does_not_belong: يحتوي على نشاط غير قانوني أو تهديدات انتحارية أو معلومات شخصية أو أي شيء آخر تعتقد أنه لا ينتمي إلى %{organization_name}.
|
62
|
+
offensive: يحتوي على العنصرية والتمييز الجنسي والتشهير والهجمات الشخصية والتهديدات بالقتل أو طلبات الانتحار أو أي شكل من أشكال خطاب الكراهية.
|
63
|
+
spam: يحتوي على clickbait أو الإعلان أو الخدع أو روبوت البرامج النصية.
|
64
|
+
title: الإبلاغ عن مشكلة
|
65
|
+
comment_order_selector:
|
66
|
+
order:
|
67
|
+
best_rated: أفضل تصنيف
|
68
|
+
most_discussed: الأكثر مناقشة
|
69
|
+
older: اكبر سنا
|
70
|
+
recent: الأخيرة
|
71
|
+
title: 'ترتيب حسب:'
|
72
|
+
comment_thread:
|
73
|
+
title: المحادثة مع %{authorName}
|
74
|
+
comments:
|
75
|
+
blocked_comments_for_user_warning: لا يمكنك التعليق في هذه اللحظة ، ولكن يمكنك قراءة التعليقات السابقة.
|
76
|
+
blocked_comments_warning: التعليقات معطلة في هذا الوقت ، لكن يمكنك قراءة التعليقات السابقة.
|
77
|
+
loading: جارٍ تحميل التعليقات ...
|
78
|
+
title: "%{count} تعليقات"
|
79
|
+
events:
|
80
|
+
comments:
|
81
|
+
comment_by_followed_user:
|
82
|
+
email_intro: "%{author_name} ترك تعليق في %{resource_title}. يمكنك قراءتها في هذه الصفحة:"
|
83
|
+
email_outro: لقد تلقيت هذا الإشعار لأنك تتابع %{author_name}. يمكنك إلغاء تتبع هذا المستخدم من صفحة ملفه الشخصي.
|
84
|
+
email_subject: هناك تعليق جديد مِن %{author_name} على %{resource_title}
|
85
|
+
notification_title: هناك تعليق جديد مِن <a href="%{author_path}">%{author_name} %{author_nickname}</a> على <a href="%{resource_path}">%{resource_title}</a>.
|
86
|
+
comment_created:
|
87
|
+
email_intro: "%{resource_title} تم التعليق. يمكنك قراءة التعليق في هذه الصفحة:"
|
88
|
+
email_outro: لقد تلقيت هذا الإشعار لأنك تتابع "%{resource_title}" أو مؤلفه. يمكنك إلغاء تتبعه من الرابط السابق.
|
89
|
+
email_subject: هناك تعليق جديد من %{author_name} في %{resource_title}
|
90
|
+
notification_title: هناك تعليق جديد مِن <a href="%{author_path}">%{author_name} %{author_nickname}</a> على <a href="%{resource_path}">%{resource_title}</a>
|
91
|
+
reply_created:
|
92
|
+
email_intro: "%{author_name} رد على تعليقك في %{resource_title}. يمكنك قراءتها في هذه الصفحة:"
|
93
|
+
email_outro: لقد تلقيت هذا الإشعار لأنه تم الرد على تعليقك.
|
94
|
+
email_subject: "%{author_name} رد على تعليقك في %{resource_title}"
|
95
|
+
notification_title: <a href="%{author_path}">%{author_name} %{author_nickname}</a> رد على تعليقك في <a href="%{resource_path}">%{resource_title}</a>
|
96
|
+
user_mentioned:
|
97
|
+
email_intro: لقد ذكرت
|
98
|
+
email_outro: لقد تلقيت هذا الإشعار لأنك ذكرت في %{resource_title}.
|
99
|
+
email_subject: لقد ذكرت في %{resource_title}
|
100
|
+
notification_title: لقد ذكرت في <a href="%{resource_path}">%{resource_title}</a> من <a href="%{author_path}">%{author_name} %{author_nickname}</a>
|
101
|
+
metrics:
|
102
|
+
comments:
|
103
|
+
description: عدد التعليقات الناتجة عن المشاركين
|
104
|
+
object: تعليقات
|
105
|
+
title: تعليقات
|
106
|
+
errors:
|
107
|
+
messages:
|
108
|
+
cannot_have_comments: لا يمكن أن يكون لديك تعليقات
|
data/config/locales/ca.yml
CHANGED
@@ -64,6 +64,7 @@ ca:
|
|
64
64
|
comment_thread:
|
65
65
|
title: Conversa amb %{authorName}
|
66
66
|
comments:
|
67
|
+
blocked_comments_for_user_warning: No pots fer comentaris en aquest moment, però pots llegir els anteriors.
|
67
68
|
blocked_comments_warning: Els comentaris estan desactivats en aquest moment, però pots llegir els anteriors.
|
68
69
|
loading: Carregant els comentaris ...
|
69
70
|
title: "%{count} comentaris"
|
data/config/locales/cs.yml
CHANGED
@@ -68,6 +68,7 @@ cs:
|
|
68
68
|
comment_thread:
|
69
69
|
title: Konverzace s číslem %{authorName}
|
70
70
|
comments:
|
71
|
+
blocked_comments_for_user_warning: V tuto chvíli nemůžete komentovat, ale můžete si přečíst předchozí.
|
71
72
|
blocked_comments_warning: Komentáře jsou v tuto chvíli zakázány, ale můžete si přečíst předchozí.
|
72
73
|
loading: Načítání komentářů ...
|
73
74
|
title: "%{count} komentářů"
|
data/config/locales/de.yml
CHANGED
@@ -64,6 +64,7 @@ de:
|
|
64
64
|
comment_thread:
|
65
65
|
title: Konversation mit %{authorName}
|
66
66
|
comments:
|
67
|
+
blocked_comments_for_user_warning: Sie können momentan nichts kommentieren, aber Sie können die vorherigen lesen.
|
67
68
|
blocked_comments_warning: Kommentare sind zu diesem Zeitpunkt deaktiviert, aber Sie können die vorherigen lesen.
|
68
69
|
loading: Kommentare werden geladen ...
|
69
70
|
title: "%{count} Kommentare"
|