decidim-comments 0.17.2 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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"
|