thredded 0.13.2 → 0.13.3
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/README.md +26 -7
- data/app/assets/stylesheets/thredded/components/_post.scss +7 -1
- data/app/mailer_previews/thredded/private_topic_mailer_preview.rb +1 -5
- data/app/mailers/thredded/post_mailer.rb +11 -6
- data/app/mailers/thredded/private_topic_mailer.rb +12 -8
- data/app/models/thredded/user_topic_follow.rb +4 -2
- data/app/notifiers/thredded/email_notifier.rb +1 -1
- data/app/view_models/thredded/topic_email_view.rb +0 -4
- data/app/views/thredded/post_mailer/post_notification.html.erb +9 -6
- data/app/views/thredded/post_mailer/post_notification.text.erb +9 -5
- data/app/views/thredded/private_topic_mailer/message_notification.html.erb +10 -4
- data/app/views/thredded/private_topic_mailer/message_notification.text.erb +11 -8
- data/config/locales/en.yml +34 -0
- data/config/locales/es.yml +36 -0
- data/config/locales/fr.yml +238 -0
- data/config/locales/pl.yml +35 -0
- data/config/locales/pt-BR.yml +35 -0
- data/config/locales/ru.yml +34 -0
- data/lib/generators/thredded/install/templates/initializer.rb +1 -1
- data/lib/thredded.rb +1 -1
- data/lib/thredded/version.rb +1 -1
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 446cac9b09b4d4bf92db6feaa8fdf3ed2b3708fc
|
4
|
+
data.tar.gz: f2c7b6e776222e744532f53dc5ae04ed475353a7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9872e5d357a029ea8ca930b1c600ebd6687d26d7b2d6c8c710734cba6c5ec3e84795811b9ed905f3754d2baad27fa66bad7ab182674024695a3cf7be06495861
|
7
|
+
data.tar.gz: b90d6d78537a2f1060aaf78f121fd15862bbab0d6c71e23403f22fee080fe1d9fdf54fd13073b121e1a465d200e1ff941bbb46ef3bb0ec8a5ffd128b9d278b3f
|
data/README.md
CHANGED
@@ -98,7 +98,7 @@ Then, see the rest of this Readme for more information about using and customizi
|
|
98
98
|
Add the gem to your Gemfile:
|
99
99
|
|
100
100
|
```ruby
|
101
|
-
gem 'thredded', '~> 0.13.
|
101
|
+
gem 'thredded', '~> 0.13.3'
|
102
102
|
```
|
103
103
|
|
104
104
|
Add the Thredded [initializer] to your parent app by running the install generator.
|
@@ -229,7 +229,9 @@ Include thredded JavaScripts in your `application.js`:
|
|
229
229
|
|
230
230
|
Thredded is fully compatible with deferred and async script loading.
|
231
231
|
|
232
|
-
#####
|
232
|
+
##### Alternative JavaScript dependencies
|
233
|
+
|
234
|
+
<details><summary><b>Rails UJS version</b></summary>
|
233
235
|
|
234
236
|
By default, thredded loads `rails-ujs`. If you're using Rails before v5.1, you need to add `rails-ujs` to
|
235
237
|
your Gemfile.
|
@@ -240,8 +242,9 @@ If you'd like it to use `jquery_ujs` instead, run this command from your app dir
|
|
240
242
|
mkdir -p app/assets/javascripts/thredded/dependencies/
|
241
243
|
printf '//= require jquery3\n//= require jquery_ujs\n' > app/assets/javascripts/thredded/dependencies/ujs.js
|
242
244
|
```
|
245
|
+
</details>
|
243
246
|
|
244
|
-
|
247
|
+
<details><summary><b>Timeago version</b></summary>
|
245
248
|
|
246
249
|
By default, thredded loads `timeago.js`.
|
247
250
|
|
@@ -261,6 +264,7 @@ E.g. for Brazilian Portuguese with jquery.timeago:
|
|
261
264
|
//= require locales/jquery.timeago.pt-br
|
262
265
|
//= require thredded/thredded
|
263
266
|
```
|
267
|
+
</details>
|
264
268
|
|
265
269
|
#### Thredded page title and ID
|
266
270
|
|
@@ -377,7 +381,7 @@ change_column_default :thredded_user_preferences, :auto_follow_topics, 1
|
|
377
381
|
## I18n
|
378
382
|
|
379
383
|
Thredded is mostly internationalized. It is currently available in English, Brazilian Portuguese, Polish, Russian,
|
380
|
-
and Spanish.
|
384
|
+
French, and Spanish.
|
381
385
|
We welcome PRs adding support for new languages.
|
382
386
|
|
383
387
|
Here are the steps to ensure the best support for your language if it isn't English:
|
@@ -387,9 +391,13 @@ Here are the steps to ensure the best support for your language if it isn't Engl
|
|
387
391
|
2. Require the translations for timeago.js in your JavaScript. E.g. for Brazilian Portuguese:
|
388
392
|
|
389
393
|
```js
|
394
|
+
//= require thredded/dependencies/timeago
|
390
395
|
//= require timeago/locales/pt_BR
|
396
|
+
//= require thredded
|
391
397
|
```
|
392
398
|
|
399
|
+
Note that it is important that timeago and its locales are required *before* `//= require thredded`.
|
400
|
+
|
393
401
|
3. To generate URL slugs for messageboards, categories, and topics with support for more language than English,
|
394
402
|
you can use a gem like [babosa](https://github.com/norman/babosa).
|
395
403
|
Add babosa to your Gemfile and uncomment the `Thredded.slugifier` proc for babosa in the initializer.
|
@@ -603,9 +611,20 @@ run tasks that maintain the test database.
|
|
603
611
|
By default, SQLite is used in development and test. On Travis, the tests will run using SQLite, PostgreSQL, MySQL,
|
604
612
|
and all the supported Rails versions.
|
605
613
|
|
606
|
-
The test suite requires
|
607
|
-
|
608
|
-
|
614
|
+
The test suite requires Chromium v59+ and its WebDriver installed:
|
615
|
+
|
616
|
+
On Ubuntu, run:
|
617
|
+
|
618
|
+
```bash
|
619
|
+
sudo apt-get install chromium-chromedriver
|
620
|
+
```
|
621
|
+
|
622
|
+
On Mac, run:
|
623
|
+
|
624
|
+
```bash
|
625
|
+
brew cask install chromium
|
626
|
+
brew install chromedriver
|
627
|
+
```
|
609
628
|
|
610
629
|
### Ruby
|
611
630
|
|
@@ -49,13 +49,19 @@
|
|
49
49
|
vertical-align: baseline;
|
50
50
|
width: 1.75rem; // 28px
|
51
51
|
|
52
|
-
@
|
52
|
+
@media (min-width: $thredded-grid-container-max-width + $thredded-content-breakout-min-width + 0.00001rem) {
|
53
53
|
height: 2.25rem; // 36px
|
54
54
|
left: -3rem;
|
55
55
|
position: absolute;
|
56
56
|
top: -0.5rem;
|
57
57
|
width: 2.25rem; // 36px
|
58
58
|
}
|
59
|
+
|
60
|
+
@media (min-width: $thredded-grid-container-max-width + $thredded-content-breakout-min-width + 9.5rem + 0.00001rem) {
|
61
|
+
height: 3.25rem;
|
62
|
+
left: -4.125rem;
|
63
|
+
width: 3.25rem;
|
64
|
+
}
|
59
65
|
}
|
60
66
|
|
61
67
|
.thredded--post--topic {
|
@@ -4,12 +4,8 @@ module Thredded
|
|
4
4
|
# Previews for the PrivateTopicMailer
|
5
5
|
class PrivateTopicMailerPreview < BaseMailerPreview
|
6
6
|
def message_notification
|
7
|
-
post = mock_private_post(content: mock_content(mention_users: ['glebm']))
|
8
7
|
PrivateTopicMailer.message_notification(
|
9
|
-
|
10
|
-
post
|
11
|
-
]),
|
12
|
-
post,
|
8
|
+
mock_private_post(content: mock_content(mention_users: ['glebm'])),
|
13
9
|
%w[glebm@test.com joel@test.com]
|
14
10
|
)
|
15
11
|
end
|
@@ -3,14 +3,19 @@
|
|
3
3
|
module Thredded
|
4
4
|
class PostMailer < Thredded::BaseMailer
|
5
5
|
def post_notification(post_id, emails)
|
6
|
-
@post
|
7
|
-
email_details
|
6
|
+
@post = find_record Thredded::Post, post_id
|
7
|
+
email_details = Thredded::TopicEmailView.new(@post.postable)
|
8
8
|
headers['X-SMTPAPI'] = email_details.smtp_api_tag('post_notification')
|
9
9
|
|
10
|
-
mail from:
|
11
|
-
to:
|
12
|
-
bcc:
|
13
|
-
subject:
|
10
|
+
mail from: email_details.no_reply,
|
11
|
+
to: email_details.no_reply,
|
12
|
+
bcc: emails,
|
13
|
+
subject: [
|
14
|
+
Thredded.email_outgoing_prefix,
|
15
|
+
t('thredded.emails.post_notification.subject',
|
16
|
+
user: @post.user.thredded_display_name,
|
17
|
+
topic_title: @post.postable.title)
|
18
|
+
].compact.join
|
14
19
|
end
|
15
20
|
end
|
16
21
|
end
|
@@ -2,16 +2,20 @@
|
|
2
2
|
|
3
3
|
module Thredded
|
4
4
|
class PrivateTopicMailer < Thredded::BaseMailer
|
5
|
-
def message_notification(
|
6
|
-
@
|
7
|
-
|
8
|
-
email_details = Thredded::TopicEmailView.new(@topic)
|
5
|
+
def message_notification(post_id, emails)
|
6
|
+
@post = find_record Thredded::PrivatePost, post_id
|
7
|
+
email_details = Thredded::TopicEmailView.new(@post.postable)
|
9
8
|
headers['X-SMTPAPI'] = email_details.smtp_api_tag('private_topic_mailer')
|
10
9
|
|
11
|
-
mail from:
|
12
|
-
to:
|
13
|
-
bcc:
|
14
|
-
subject:
|
10
|
+
mail from: email_details.no_reply,
|
11
|
+
to: email_details.no_reply,
|
12
|
+
bcc: emails,
|
13
|
+
subject: [
|
14
|
+
Thredded.email_outgoing_prefix,
|
15
|
+
t('thredded.emails.message_notification.subject',
|
16
|
+
user: @post.user.thredded_display_name,
|
17
|
+
topic_title: @post.postable.title)
|
18
|
+
].compact.join
|
15
19
|
end
|
16
20
|
end
|
17
21
|
end
|
@@ -21,8 +21,10 @@ module Thredded
|
|
21
21
|
#
|
22
22
|
# @return [Thredded::UserTopicFollow]
|
23
23
|
def self.create_unless_exists(user_id, topic_id, reason = :manual)
|
24
|
-
|
25
|
-
|
24
|
+
uncached do
|
25
|
+
transaction(requires_new: true) do
|
26
|
+
create_with(reason: reason).find_or_create_by(user_id: user_id, topic_id: topic_id)
|
27
|
+
end
|
26
28
|
end
|
27
29
|
rescue ActiveRecord::RecordNotUnique
|
28
30
|
# The record has been created from another connection, retry to find it.
|
@@ -15,7 +15,7 @@ module Thredded
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def new_private_post(post, users)
|
18
|
-
PrivateTopicMailer.message_notification(post.
|
18
|
+
PrivateTopicMailer.message_notification(post.id, users.map(&:email)).deliver_now
|
19
19
|
end
|
20
20
|
end
|
21
21
|
end
|
@@ -11,10 +11,6 @@ module Thredded
|
|
11
11
|
%({"category": ["thredded_#{@topic.private? ? 'private_topic' : @topic.messageboard.name}","#{tag}"]})
|
12
12
|
end
|
13
13
|
|
14
|
-
def subject
|
15
|
-
"#{Thredded.email_outgoing_prefix} #{@topic.title}"
|
16
|
-
end
|
17
|
-
|
18
14
|
def no_reply
|
19
15
|
Thredded.email_from
|
20
16
|
end
|
@@ -1,7 +1,10 @@
|
|
1
1
|
<div class="thredded--email">
|
2
2
|
<figure class="thredded--email-post">
|
3
3
|
<figcaption class="thredded--email-post--author">
|
4
|
-
<%=
|
4
|
+
<%= t 'thredded.emails.post_notification.html.post_lead_html',
|
5
|
+
user: @post.user.thredded_display_name,
|
6
|
+
post_url: post_permalink_url(@post.id),
|
7
|
+
topic_title: @post.postable.title %>
|
5
8
|
</figcaption>
|
6
9
|
<% cache [@post, 'content-onebox-placeholders'] do %>
|
7
10
|
<%= render partial: 'thredded/posts/content',
|
@@ -11,13 +14,13 @@
|
|
11
14
|
<hr/>
|
12
15
|
|
13
16
|
<p>
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
+
<%= t 'thredded.emails.post_notification.html.email_sent_reason_html',
|
18
|
+
post_url: post_permalink_url(@post.id),
|
19
|
+
topic_title: @post.postable.title %>
|
17
20
|
</p>
|
18
21
|
|
19
22
|
<p>
|
20
|
-
|
21
|
-
|
23
|
+
<%= t 'thredded.emails.post_notification.html.unsubscribe_instructions_html',
|
24
|
+
preferences_url: edit_messageboard_preferences_url(@post.messageboard) %>
|
22
25
|
</p>
|
23
26
|
</div>
|
@@ -1,10 +1,14 @@
|
|
1
|
+
<%= t 'thredded.emails.post_notification.text.post_lead',
|
2
|
+
user: @post.user.thredded_display_name,
|
3
|
+
topic_title: @post.postable.title %>
|
4
|
+
|
1
5
|
<%= @post.content %>
|
2
6
|
|
3
7
|
---
|
4
8
|
|
5
|
-
|
6
|
-
|
7
|
-
|
9
|
+
<%= t 'thredded.emails.post_notification.text.email_sent_reason',
|
10
|
+
topic_title: @post.postable.title,
|
11
|
+
post_url: post_permalink_url(@post.id) %>
|
8
12
|
|
9
|
-
|
10
|
-
|
13
|
+
<%= t 'thredded.emails.post_notification.text.unsubscribe_instructions',
|
14
|
+
unsubscribe_url: edit_messageboard_preferences_url(@post.messageboard) %>
|
@@ -1,7 +1,10 @@
|
|
1
1
|
<div class="thredded--email">
|
2
2
|
<figure class="thredded--email-post">
|
3
3
|
<figcaption class="thredded--email-post--author">
|
4
|
-
<%=
|
4
|
+
<%= t 'thredded.emails.message_notification.html.post_lead_html',
|
5
|
+
user: @post.user.thredded_display_name,
|
6
|
+
post_url: private_post_permalink_url(@post.id),
|
7
|
+
topic_title: @post.postable.title %>
|
5
8
|
</figcaption>
|
6
9
|
<% cache [@post, 'content-onebox-placeholders'] do %>
|
7
10
|
<%= render partial: 'thredded/private_posts/content',
|
@@ -10,11 +13,14 @@
|
|
10
13
|
</figure>
|
11
14
|
<hr/>
|
12
15
|
<p>
|
13
|
-
|
14
|
-
|
16
|
+
<%= t 'thredded.emails.message_notification.html.email_sent_reason_html',
|
17
|
+
user: @post.postable.user.thredded_display_name,
|
18
|
+
post_url: private_post_permalink_url(@post.id),
|
19
|
+
topic_title: @post.postable.title %>
|
15
20
|
</p>
|
16
21
|
|
17
22
|
<p>
|
18
|
-
|
23
|
+
<%= t 'thredded.emails.message_notification.html.unsubscribe_instructions_html',
|
24
|
+
preferences_url: edit_preferences_url %>
|
19
25
|
</p>
|
20
26
|
</div>
|
@@ -1,12 +1,15 @@
|
|
1
|
-
<%=
|
1
|
+
<%= t 'thredded.emails.message_notification.text.post_lead',
|
2
|
+
user: @post.user.thredded_display_name,
|
3
|
+
topic_title: @post.postable.title %>
|
4
|
+
|
2
5
|
<%= @post.content %>
|
3
|
-
---
|
4
6
|
|
5
|
-
|
6
|
-
included you in the private topic "<%= @topic.title %>".
|
7
|
+
---
|
7
8
|
|
8
|
-
|
9
|
-
|
9
|
+
<%= t 'thredded.emails.message_notification.text.email_sent_reason',
|
10
|
+
user: @post.postable.user.thredded_display_name,
|
11
|
+
topic_title: @post.postable.title,
|
12
|
+
post_url: private_post_permalink_url(@post.id) %>
|
10
13
|
|
11
|
-
|
12
|
-
|
14
|
+
<%= t 'thredded.emails.message_notification.text.unsubscribe_instructions',
|
15
|
+
unsubscribe_url: edit_preferences_url %>
|
data/config/locales/en.yml
CHANGED
@@ -6,6 +6,40 @@ en:
|
|
6
6
|
content_blocked_notice_with_record_html: Blocked by %{moderator} %{time_ago}
|
7
7
|
email_notifier:
|
8
8
|
by_email: by email
|
9
|
+
emails:
|
10
|
+
message_notification:
|
11
|
+
html:
|
12
|
+
email_sent_reason_html: >-
|
13
|
+
This email was sent to you because %{user} included you in a private topic, “<a href="%{post_url}">%{topic_title}</a>”.
|
14
|
+
post_lead_html: 'A new message from %{user} in <a href="%{post_url}">“%{topic_title}”</a>:'
|
15
|
+
unsubscribe_instructions_html: :thredded.emails.post_notification.html.unsubscribe_instructions_html
|
16
|
+
subject: A new message from %{user} in “%{topic_title}”
|
17
|
+
text:
|
18
|
+
email_sent_reason: |-
|
19
|
+
This email was sent to you because %{user} included you in
|
20
|
+
the private topic “%{topic_title}”.
|
21
|
+
|
22
|
+
Go here to view the conversation:
|
23
|
+
%{post_url}
|
24
|
+
post_lead: 'A new message from %{user} in “%{topic_title}”:'
|
25
|
+
unsubscribe_instructions: :thredded.emails.post_notification.text.unsubscribe_instructions
|
26
|
+
post_notification:
|
27
|
+
html:
|
28
|
+
email_sent_reason_html: 'This email was sent to you because you are following this topic: “<a href="%{post_url}">%{topic_title}</a>”.'
|
29
|
+
post_lead_html: '%{user} <a href="%{post_url}">said in “%{topic_title}”</a>:'
|
30
|
+
unsubscribe_instructions_html: To unsubscribe from these emails, update your <a href="%{preferences_url}">preferences</a>.
|
31
|
+
subject: A new post in “%{topic_title}” by %{user}
|
32
|
+
text:
|
33
|
+
email_sent_reason: |-
|
34
|
+
This email was sent to you because you are following
|
35
|
+
the topic “%{topic_title}”.
|
36
|
+
|
37
|
+
Go here to view the conversation:
|
38
|
+
%{post_url}
|
39
|
+
post_lead: "%{user} said in “%{topic_title}”:"
|
40
|
+
unsubscribe_instructions: |-
|
41
|
+
To unsubscribe from these emails, update your preferences here:
|
42
|
+
%{unsubscribe_url}
|
9
43
|
errors:
|
10
44
|
login_required: Please sign in first.
|
11
45
|
not_authorized: You are not authorized to access this page.
|
data/config/locales/es.yml
CHANGED
@@ -6,6 +6,42 @@ es:
|
|
6
6
|
content_blocked_notice_with_record_html: Censurado por %{moderator} hace %{time_ago}
|
7
7
|
email_notifier:
|
8
8
|
by_email: vía email
|
9
|
+
emails:
|
10
|
+
message_notification:
|
11
|
+
html:
|
12
|
+
email_sent_reason_html: >-
|
13
|
+
Este correo electrónico se te envió porque %{user} te incluyó en un tema privado, "<a href="%{post_url}">%{topic_title}</a>".
|
14
|
+
post_lead_html: 'Un nuevo mensaje de %{user} en <a href="%{post_url}">"%{topic_title}"</a>:'
|
15
|
+
unsubscribe_instructions_html: :thredded.emails.post_notification.html.unsubscribe_instructions_html
|
16
|
+
subject: Un nuevo mensaje de %{user} en "%{topic_title}"
|
17
|
+
text:
|
18
|
+
email_sent_reason: |-
|
19
|
+
Este correo electrónico se te envió porque %{user} te incluyó en
|
20
|
+
el tema privado "%{topic_title}".
|
21
|
+
|
22
|
+
Ve aquí para ver la conversación:
|
23
|
+
%{post_url}
|
24
|
+
post_lead: 'Un nuevo mensaje de %{user} en "%{topic_title}":'
|
25
|
+
unsubscribe_instructions: :thredded.emails.post_notification.text.unsubscribe_instructions
|
26
|
+
post_notification:
|
27
|
+
html:
|
28
|
+
email_sent_reason_html: >-
|
29
|
+
Este correo electrónico se le envió porque está siguiendo este tema: "<a href="%{post_url}">%{topic_title}</a>".
|
30
|
+
post_lead_html: '%{user} <a href="%{post_url}">dijo en "%{topic_title}"</a>:'
|
31
|
+
unsubscribe_instructions_html: >-
|
32
|
+
Para cancelar la suscripción a estos correos electrónicos, actualice sus <a href="%{preferences_url}">preferencias</a>.
|
33
|
+
subject: Un nuevo mensaje en "%{topic_title}" de %{user}
|
34
|
+
text:
|
35
|
+
email_sent_reason: |-
|
36
|
+
Este correo electrónico se te envió porque estás siguiendo
|
37
|
+
el tema "%{topic_title}".
|
38
|
+
|
39
|
+
Ve aquí para ver la conversación:
|
40
|
+
%{post_url}
|
41
|
+
post_lead: '%{user} dijo en "%{topic_title}":'
|
42
|
+
unsubscribe_instructions: |-
|
43
|
+
Para anular la suscripción de estos correos electrónicos, actualice sus preferencias aquí:
|
44
|
+
%{unsubscribe_url}
|
9
45
|
errors:
|
10
46
|
login_required: Por favor, inicia sesión.
|
11
47
|
not_authorized: No estás autorizado para ver esta página.
|
@@ -0,0 +1,238 @@
|
|
1
|
+
---
|
2
|
+
fr:
|
3
|
+
thredded:
|
4
|
+
content_moderation_states:
|
5
|
+
content_blocked_notice: Bloqué
|
6
|
+
content_blocked_notice_with_record_html: Bloqué par %{moderator} %{time_ago}
|
7
|
+
email_notifier:
|
8
|
+
by_email: via email
|
9
|
+
emails:
|
10
|
+
message_notification:
|
11
|
+
html:
|
12
|
+
email_sent_reason_html: >-
|
13
|
+
Ce courriel vous a été envoyé parce que %{user} vous a inclus dans un sujet privé, "<a href="%{post_url}">%{topic_title}</a>".
|
14
|
+
post_lead_html: 'Un nouveau message de %{user} dans <a href="%{post_url}">"%{topic_title}"</a>:'
|
15
|
+
unsubscribe_instructions_html: :thredded.emails.post_notification.html.unsubscribe_instructions_html
|
16
|
+
subject: Un nouveau message de %{user} dans "%{topic_title}"
|
17
|
+
text:
|
18
|
+
email_sent_reason: |-
|
19
|
+
Ce courriel vous a été envoyé parce que %{user} vous a inclus
|
20
|
+
le sujet privé "%{topic_title}".
|
21
|
+
|
22
|
+
Allez ici pour voir la conversation:
|
23
|
+
%{post_url}
|
24
|
+
post_lead: 'Un nouveau message de %{user} dans "%{topic_title}":'
|
25
|
+
unsubscribe_instructions: :thredded.emails.post_notification.text.unsubscribe_instructions
|
26
|
+
post_notification:
|
27
|
+
html:
|
28
|
+
email_sent_reason_html: 'Ce courriel vous a été envoyé car vous suivez ce sujet: "<a href="%{post_url}">%{topic_title}</a>".'
|
29
|
+
post_lead_html: '%{user} a <a href="%{post_url}">déclaré dans "%{topic_title}"</a>:'
|
30
|
+
unsubscribe_instructions_html: Pour vous désabonner de ces courriels, mettez à jour vos <a href="%{preferences_url}">préférences</a>.
|
31
|
+
subject: Une nouvelle publication dans "%{topic_title}" par %{user}
|
32
|
+
text:
|
33
|
+
email_sent_reason: |-
|
34
|
+
Ce courriel vous a été envoyé parce que vous suivez
|
35
|
+
le sujet "%{topic_title}".
|
36
|
+
|
37
|
+
Allez ici pour voir la conversation:
|
38
|
+
%{post_url}
|
39
|
+
post_lead: '%{user} a déclaré dans "%{topic_title}":'
|
40
|
+
unsubscribe_instructions: |-
|
41
|
+
Pour vous désabonner de ces courriels, mettez à jour vos préférences ici:
|
42
|
+
%{unsubscribe_url}
|
43
|
+
errors:
|
44
|
+
login_required: Connectez vous s'il vous plait
|
45
|
+
not_authorized: Vous n'êtes pas authorisé à accéder à cette page.
|
46
|
+
private_topic_create_denied: Vous n'êtes pas authorisé à créer des sujets.
|
47
|
+
private_topic_not_found: Ce sujet privé n'existe pas.
|
48
|
+
form:
|
49
|
+
create_btn_submitting: Création en cours...
|
50
|
+
preview: Aperçu
|
51
|
+
update: Mise à jour
|
52
|
+
update_btn_submitting: Mise à jour en cours...
|
53
|
+
messageboard:
|
54
|
+
create: Créer une Nouvelle Catégorie
|
55
|
+
form:
|
56
|
+
create_btn_submitting: :thredded.form.create_btn_submitting
|
57
|
+
description_label: Description
|
58
|
+
messageboard_group_id_label: Groupe de la catégorie
|
59
|
+
no_group: Pas de groupe
|
60
|
+
title_label: Nom
|
61
|
+
update_btn_submitting: :thredded.form.update_btn_submitting
|
62
|
+
index:
|
63
|
+
page_title: Catégories
|
64
|
+
last_updated_by_html: Mise à jour %{time_ago} <cite>par %{user}</cite>
|
65
|
+
topics_and_posts_counts: "%{topics_count} sujets / %{posts_count} commentaires"
|
66
|
+
update: :thredded.form.update
|
67
|
+
updated_notice: La catégorie a été mise à jour
|
68
|
+
messageboard_group:
|
69
|
+
create: Créer un nouveau groupe de catégorie
|
70
|
+
form:
|
71
|
+
create_btn_submitting: :thredded.form.create_btn_submitting
|
72
|
+
saved: Le Groupe %{name} a été créé
|
73
|
+
moderation:
|
74
|
+
approve_btn: Approuver
|
75
|
+
block_btn: Bloqué
|
76
|
+
pending:
|
77
|
+
empty:
|
78
|
+
content: Tous les commentaires ont été modérés.
|
79
|
+
title: Bien joué!
|
80
|
+
post_approved_html: Commentaire approuvé par %{moderator} %{time_ago}.
|
81
|
+
post_blocked_html: Commentaire bloqué par %{moderator} %{time_ago}.
|
82
|
+
post_deleted_notice: Ce commentaire a été effacé.
|
83
|
+
posts_content_changed_since_moderation_html: >-
|
84
|
+
Le <a href="%{post_url}">commentaire</a> a changé depuis qu'il a été modéré. La date de modération est affiché
|
85
|
+
en dessous.
|
86
|
+
search_users:
|
87
|
+
form_label: Rechercher des utilisateurs
|
88
|
+
form_placeholder: :thredded.moderation.search_users.form_label
|
89
|
+
no_results_message: Aucun utilisateur avec un nom commençant par %{query}
|
90
|
+
results_message: Utilisateurs avec le nom commençant par %{query}
|
91
|
+
nav:
|
92
|
+
all_messageboards: Toutes les catégories
|
93
|
+
edit_messageboard: Éditer la catégorie
|
94
|
+
edit_post: Éditer le commentaire
|
95
|
+
edit_private_topic: :thredded.nav.edit_topic
|
96
|
+
edit_topic: Éditer
|
97
|
+
mark_all_read: Marquer comme lu
|
98
|
+
moderation: Modération
|
99
|
+
moderation_activity: Activité
|
100
|
+
moderation_history: Historique
|
101
|
+
moderation_pending: En attente
|
102
|
+
moderation_users: Utilisateurs
|
103
|
+
private_topics: Messages Privés
|
104
|
+
settings: Paramètres de Notifications
|
105
|
+
null_user_name: Utilisateur effacé
|
106
|
+
posts:
|
107
|
+
delete: Supprimer le commentaire
|
108
|
+
delete_confirm: Êtes-vous sure de vouloir effacé ce commentaire ?
|
109
|
+
deleted_notice: Votre commentaire a été effacé.
|
110
|
+
edit: :thredded.nav.edit_post
|
111
|
+
form:
|
112
|
+
content_label: Contenu
|
113
|
+
create_btn: Soumettre la réponse
|
114
|
+
create_btn_submitting: Soumission en cours...
|
115
|
+
title_label: Écrire un commentaire
|
116
|
+
update_btn: Mettre à jour le commentaire
|
117
|
+
update_btn_submitting: :thredded.form.update_btn_submitting
|
118
|
+
pending_moderation_notice: Votre commentaire sera publié dès lors qu'il aura été validé par un modérateur.
|
119
|
+
quote_btn: Citer
|
120
|
+
preferences:
|
121
|
+
edit:
|
122
|
+
page_title: :thredded.nav.settings
|
123
|
+
form:
|
124
|
+
auto_follow_topics:
|
125
|
+
hint: Suivre automatiquement les nouveaux sujets. Changer ce paramètre affectera aussi toutes les catégories.
|
126
|
+
label: Suivre tout les nouveaux sujets
|
127
|
+
follow_topics_on_mention:
|
128
|
+
hint: 'Suivre un sujet lorsqu''on est mentionné par son nom (exemple: @marc)'
|
129
|
+
label: Suivre un sujet dans lequel vous êtes mentionné
|
130
|
+
messageboard_auto_follow_topics:
|
131
|
+
hint: >-
|
132
|
+
Suivre automatiquement tout les nouveaux sujets dans cette catégorie. Ce paramètre outrepasse le paramètre
|
133
|
+
relatif au dessus.
|
134
|
+
label: Suivre tout les nouveaux sujets
|
135
|
+
messageboard_follow_topics_on_mention:
|
136
|
+
hint: 'Quand quelqu''un mentionnera votre nom (exemple: @marc) dans cette catégorie, vous serez abonné
|
137
|
+
au sujet.'
|
138
|
+
label: :thredded.preferences.form.follow_topics_on_mention.label
|
139
|
+
messageboard_notifications_for_followed_topics:
|
140
|
+
label: :thredded.preferences.form.notifications_for_followed_topics.label
|
141
|
+
notifications_for_followed_topics:
|
142
|
+
label: Notifications pour les sujets suivis
|
143
|
+
notifications_for_private_topics:
|
144
|
+
label: Notifications pour les messages privés
|
145
|
+
submit_btn: Mettre à jour les paramètres
|
146
|
+
update_btn_submitting: :thredded.form.update_btn_submitting
|
147
|
+
global_preferences_title: Paramètres Globaux
|
148
|
+
messageboard_preferences_nav_title: Paramètre de la Catégorie
|
149
|
+
messageboard_preferences_title_html: Paramètre pour <em>%{messageboard}</em>
|
150
|
+
updated_notice: Vos paramètres ont été mise à jour.
|
151
|
+
private_posts:
|
152
|
+
form:
|
153
|
+
content_label: Message
|
154
|
+
create_btn: Envoyer le Message
|
155
|
+
create_btn_submitting: Message en cours d'envoi...
|
156
|
+
update_btn_submitting: :thredded.form.update_btn_submitting
|
157
|
+
private_topics:
|
158
|
+
edit: Éditer
|
159
|
+
errors:
|
160
|
+
user_ids_length: Spécifier au moins un autre utilisateur.
|
161
|
+
form:
|
162
|
+
content_label: :thredded.private_posts.form.content_label
|
163
|
+
create_btn: :thredded.private_posts.form.create_btn
|
164
|
+
create_btn_submitting: :thredded.private_posts.form.create_btn_submitting
|
165
|
+
title_label: :thredded.topics.form.title_label
|
166
|
+
title_placeholder_new: Écrire le sujet de cette conversation
|
167
|
+
title_placeholder_start: Commencer une nouvelle conversation
|
168
|
+
update_btn: Mettre à jour
|
169
|
+
update_btn_submitting: :thredded.private_posts.form.update_btn_submitting
|
170
|
+
users_label: Participants
|
171
|
+
users_placeholder: Sélectionner les utilisateurs qui participeront à cette conversation
|
172
|
+
no_private_topics:
|
173
|
+
create_btn: Commencer votre première conversation
|
174
|
+
title: Vous n'avez pas de messages privés.
|
175
|
+
updated_notice: Titre mise à jour
|
176
|
+
recent_activity: Activité récente
|
177
|
+
search:
|
178
|
+
form:
|
179
|
+
btn_submit: :thredded.search.form.label
|
180
|
+
label: Recherche
|
181
|
+
placeholder: Rechercher un Sujet ou un Commentaire
|
182
|
+
time_ago: il y a %{time}
|
183
|
+
topics:
|
184
|
+
delete_confirm: Êtes-vous sur de vouloir supprimer ce sujet ? Cette action est irréversible.
|
185
|
+
delete_topic: Supprimer le Sujet
|
186
|
+
deleted_notice: Sujet supprimé
|
187
|
+
edit: Éditer le Sujet
|
188
|
+
follow: Suivre le sujet
|
189
|
+
followed_by: 'Suivi par :'
|
190
|
+
followed_by_noone: Personne ne suit ce sujet
|
191
|
+
followed_notice: Vous suivez ce sujet
|
192
|
+
following:
|
193
|
+
auto: vous suivez ce sujet car la fonction de suivi automatique est activée.
|
194
|
+
manual: Vous suivez ce sujet.
|
195
|
+
mentioned: Vous suivez ce sujet car vous y avait été mentionné.
|
196
|
+
posted: Vous suivez ce sujet car vous y avait écris un commentaire.
|
197
|
+
form:
|
198
|
+
categories_placeholder: Catégories
|
199
|
+
content_label: :thredded.posts.form.content_label
|
200
|
+
create_btn: Créer un Nouveau Sujet
|
201
|
+
messageboard_label: Catégorie
|
202
|
+
title_label: Titre
|
203
|
+
title_placeholder: :thredded.topics.form.title_label
|
204
|
+
title_placeholder_start: Commencer un Nouveau Sujet
|
205
|
+
update_btn: Mettre à jour le Sujet
|
206
|
+
locked:
|
207
|
+
label: Verrouillé
|
208
|
+
mark_as_unread: Marquer comme non lu à partir d'ici
|
209
|
+
not_following: Vous ne suivez pas ce sujet.
|
210
|
+
search:
|
211
|
+
no_results_in_messageboard_message_html: Il n'y a aucun résultat pour votre recherche <q>%{query}</q> dans
|
212
|
+
%{messageboard}
|
213
|
+
no_results_message_html: Il n'y a aucun résultat pour votre recherche <q>%{query}</q>
|
214
|
+
page_title: Résultat de la Recherche de Sujet
|
215
|
+
results_in_messageboard_message_html: Recherche pour <q>%{query}</q> dans %{messageboard}
|
216
|
+
results_message_html: Recherche pour <q>%{query}</q>
|
217
|
+
search_in_all_messageboards_btn: Chercher partout
|
218
|
+
started_by_html: Démarré %{time_ago} par %{user}
|
219
|
+
sticky:
|
220
|
+
label: Collant
|
221
|
+
unfollow: Arrêter de Suivre
|
222
|
+
unfollowed_notice: Vous ne suivez dorénavant plus ce sujet
|
223
|
+
updated_notice: Sujet mis à jour
|
224
|
+
users:
|
225
|
+
currently_online: En ce moment connecté
|
226
|
+
last_active_html: 'Actif pour la dernière fois : %{time_ago}'
|
227
|
+
posted_in_topic_html: Commenté dans %{topic_link}
|
228
|
+
posts_count:
|
229
|
+
one: Commenté une seule fois
|
230
|
+
other: Commenté %{count} fois
|
231
|
+
recent_activity: :thredded.recent_activity
|
232
|
+
started_topic_html: Démarré %{topic_link}
|
233
|
+
started_topics_count:
|
234
|
+
one: Démarré un sujet
|
235
|
+
other: Démarré %{count} sujets
|
236
|
+
user_posted_in_topic_html: "%{user_link} a commenté dans %{topic_link}"
|
237
|
+
user_since_html: Utilisateur depuis %{time_ago}
|
238
|
+
user_started_topic_html: "%{user_link} démarré %{topic_link}"
|
data/config/locales/pl.yml
CHANGED
@@ -6,6 +6,41 @@ pl:
|
|
6
6
|
content_blocked_notice_with_record_html: Zablokowany przez %{moderator} %{time_ago}
|
7
7
|
email_notifier:
|
8
8
|
by_email: przez e-mail
|
9
|
+
emails:
|
10
|
+
message_notification:
|
11
|
+
html:
|
12
|
+
email_sent_reason_html: >-
|
13
|
+
Ten e-mail został wysłany do Ciebie, ponieważ %{user} włącza Cię do prywatnego tematu "<a href="%{post_url}">%{topic_title}</a>".
|
14
|
+
post_lead_html: 'Nowa wiadomość z %{user} w <a href="%{post_url}">"%{topic_title}"</a>:'
|
15
|
+
unsubscribe_instructions_html: :thredded.emails.post_notification.html.unsubscribe_instructions_html
|
16
|
+
subject: Nowa wiadomość z %{user} w "%{topic_title}"
|
17
|
+
text:
|
18
|
+
email_sent_reason: |-
|
19
|
+
Ten e-mail został wysłany do Ciebie, ponieważ %{user} Cię włączyło
|
20
|
+
Prywatny temat "%{topic_title}".
|
21
|
+
|
22
|
+
Przejdź tutaj, aby wyświetlić rozmowę:
|
23
|
+
%{post_url}
|
24
|
+
post_lead: 'Nowa wiadomość z %{user} w "%{topic_title}":'
|
25
|
+
unsubscribe_instructions: :thredded.emails.post_notification.text.unsubscribe_instructions
|
26
|
+
post_notification:
|
27
|
+
html:
|
28
|
+
email_sent_reason_html: >-
|
29
|
+
Ten e-mail został wysłany do Ciebie, ponieważ śledzisz ten temat: "<a href="%{post_url}">%{topic_title}</a>".
|
30
|
+
post_lead_html: '%{user} <a href="%{post_url}">powiedział w "%{topic_title}"</a>:'
|
31
|
+
unsubscribe_instructions_html: Aby wypisać się z tych e-maili, zaktualizuj swoje <a href="%{preferences_url}">preferencje</a>.
|
32
|
+
subject: Nowy post w "%{topic_title}" przez %{user}
|
33
|
+
text:
|
34
|
+
email_sent_reason: |-
|
35
|
+
Ten e-mail został wysłany do Ciebie, ponieważ śledzisz
|
36
|
+
Temat "%{topic_title}".
|
37
|
+
|
38
|
+
Przejdź tutaj, aby wyświetlić rozmowę:
|
39
|
+
%{post_url}
|
40
|
+
post_lead: '%{user} powiedział w "%{topic_title}":'
|
41
|
+
unsubscribe_instructions: |-
|
42
|
+
Aby wypisać się z tych e-maili, zaktualizuj swoje preferencje:
|
43
|
+
%{unsubscribe_url}
|
9
44
|
errors:
|
10
45
|
login_required: Proszę się najpierw zalogować.
|
11
46
|
not_authorized: Nie masz uprawnień aby zobaczyć tę stronę.
|
data/config/locales/pt-BR.yml
CHANGED
@@ -6,6 +6,41 @@ pt-BR:
|
|
6
6
|
content_blocked_notice_with_record_html: Bloqueados por %{moderator} %{time_ago}
|
7
7
|
email_notifier:
|
8
8
|
by_email: de e-mail
|
9
|
+
emails:
|
10
|
+
message_notification:
|
11
|
+
html:
|
12
|
+
email_sent_reason_html: >-
|
13
|
+
Este e-mail foi enviado para você porque %{user} incluiu você em um tópico privado, "<a href="%{post_url}">%{topic_title}</a>".
|
14
|
+
post_lead_html: 'Uma nova mensagem de %{user} em <a href="%{post_url}">"%{topic_title}"</a>:'
|
15
|
+
unsubscribe_instructions_html: :thredded.emails.post_notification.html.unsubscribe_instructions_html
|
16
|
+
subject: Uma nova mensagem de %{user} em "%{topic_title}"
|
17
|
+
text:
|
18
|
+
email_sent_reason: |-
|
19
|
+
Este e-mail foi enviado para você porque %{user} incluiu você em
|
20
|
+
o tópico privado "%{topic_title}".
|
21
|
+
|
22
|
+
Vá aqui para ver a conversa:
|
23
|
+
%{post_url}
|
24
|
+
post_lead: 'Uma nova mensagem de %{user} em "%{topic_title}":'
|
25
|
+
unsubscribe_instructions: :thredded.emails.post_notification.text.unsubscribe_instructions
|
26
|
+
post_notification:
|
27
|
+
html:
|
28
|
+
email_sent_reason_html: >-
|
29
|
+
Este e-mail foi enviado para você porque você está seguindo este tópico: "<a href="%{post_url}">%{topic_title}</a>".
|
30
|
+
post_lead_html: '%{user} <a href="%{post_url}">disse em "%{topic_title}"</a>:'
|
31
|
+
unsubscribe_instructions_html: Para cancelar a inscrição desses e-mails, atualize suas <a href="%{preferences_url}">preferências</a>.
|
32
|
+
subject: Uma nova postagem em "%{topic_title}" por %{user}
|
33
|
+
text:
|
34
|
+
email_sent_reason: |-
|
35
|
+
Este e-mail foi enviado para você porque você está seguindo
|
36
|
+
o tópico "%{topic_title}".
|
37
|
+
|
38
|
+
Vá aqui para ver a conversa:
|
39
|
+
%{post_url}
|
40
|
+
post_lead: '%{user} disse em "%{topic_title}":'
|
41
|
+
unsubscribe_instructions: |-
|
42
|
+
Para cancelar a inscrição desses e-mails, atualize suas preferências aqui:
|
43
|
+
%{unsubscribe_url}
|
9
44
|
errors:
|
10
45
|
login_required: Por favor, autentique-se primeiro.
|
11
46
|
not_authorized: Você não está autorizado a acessar esta página.
|
data/config/locales/ru.yml
CHANGED
@@ -6,6 +6,40 @@ ru:
|
|
6
6
|
content_blocked_notice_with_record_html: Блокировано %{moderator} %{time_ago}
|
7
7
|
email_notifier:
|
8
8
|
by_email: email
|
9
|
+
emails:
|
10
|
+
message_notification:
|
11
|
+
html:
|
12
|
+
email_sent_reason_html: >-
|
13
|
+
Это письмо было отправлено вам, потому что %{user} добавил вас в приватную тему «<a href="%{post_url}">%{topic_title}</a>».
|
14
|
+
post_lead_html: 'Новое сообщение от %{user} в <a href="%{post_url}">«%{topic_title}»</a>:'
|
15
|
+
unsubscribe_instructions_html: :thredded.emails.post_notification.html.unsubscribe_instructions_html
|
16
|
+
subject: Новое сообщение от %{user} в «%{topic_title}»
|
17
|
+
text:
|
18
|
+
email_sent_reason: |-
|
19
|
+
Это письмо было отправлено вам, потому что %{user} добавил вас в
|
20
|
+
приватную тему «%{topic_title}».
|
21
|
+
|
22
|
+
Перейдите сюда, чтобы просмотреть разговор:
|
23
|
+
%{post_url}
|
24
|
+
post_lead: 'Новое сообщение от %{user} в «%{topic_title}»:'
|
25
|
+
unsubscribe_instructions: :thredded.emails.post_notification.text.unsubscribe_instructions
|
26
|
+
post_notification:
|
27
|
+
html:
|
28
|
+
email_sent_reason_html: >-
|
29
|
+
Это письмо было отправлено вам, потому что вы подписаны на тему: «<a href="%{post_url}">%{topic_title}</a>».
|
30
|
+
post_lead_html: '%{user} в <a href="%{post_url}">«%{topic_title}»</a>:'
|
31
|
+
unsubscribe_instructions_html: Чтобы отписаться от этих писем, обновите свои <a href="%{preferences_url}">настройки</a>.
|
32
|
+
subject: Новое сообщение в «%{topic_title}» от %{user}
|
33
|
+
text:
|
34
|
+
email_sent_reason: |-
|
35
|
+
Это письмо было отправлено вам, потому что вы подписаны на тему «%{topic_title}».
|
36
|
+
|
37
|
+
Перейдите сюда, чтобы просмотреть разговор:
|
38
|
+
%{post_url}
|
39
|
+
post_lead: "%{user} указан в «%{topic_title}»:"
|
40
|
+
unsubscribe_instructions: |-
|
41
|
+
Чтобы отписаться от этих писем, обновите свои настройки здесь:
|
42
|
+
%{unsubscribe_url}
|
9
43
|
errors:
|
10
44
|
login_required: Необходимо зайти на форум.
|
11
45
|
not_authorized: Вы не авторизованы.
|
@@ -28,7 +28,7 @@ end
|
|
28
28
|
Thredded.current_user_method = :"current_#{Thredded.user_class_name.underscore}"
|
29
29
|
|
30
30
|
# User avatar URL. rb-gravatar gem is used by default:
|
31
|
-
Thredded.avatar_url = ->(user) { Gravatar.src(user.email,
|
31
|
+
Thredded.avatar_url = ->(user) { Gravatar.src(user.email, 156, 'mm') }
|
32
32
|
|
33
33
|
# ==> Database Configuration
|
34
34
|
# By default, thredded uses integers for record ID route constraints.
|
data/lib/thredded.rb
CHANGED
@@ -96,7 +96,7 @@ module Thredded
|
|
96
96
|
|
97
97
|
self.active_user_threshold = 5.minutes
|
98
98
|
self.admin_column = :admin
|
99
|
-
self.avatar_url = ->(user) { Gravatar.src(user.email,
|
99
|
+
self.avatar_url = ->(user) { Gravatar.src(user.email, 156, 'mm') }
|
100
100
|
self.layout = 'thredded/application'
|
101
101
|
self.moderator_column = :admin
|
102
102
|
self.user_name_column = :name
|
data/lib/thredded/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: thredded
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.13.
|
4
|
+
version: 0.13.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joel Oliveira
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-
|
12
|
+
date: 2017-08-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: pundit
|
@@ -312,19 +312,19 @@ dependencies:
|
|
312
312
|
- !ruby/object:Gem::Version
|
313
313
|
version: '2.4'
|
314
314
|
- !ruby/object:Gem::Dependency
|
315
|
-
name:
|
315
|
+
name: selenium-webdriver
|
316
316
|
requirement: !ruby/object:Gem::Requirement
|
317
317
|
requirements:
|
318
318
|
- - ">="
|
319
319
|
- !ruby/object:Gem::Version
|
320
|
-
version:
|
320
|
+
version: 3.5.0
|
321
321
|
type: :development
|
322
322
|
prerelease: false
|
323
323
|
version_requirements: !ruby/object:Gem::Requirement
|
324
324
|
requirements:
|
325
325
|
- - ">="
|
326
326
|
- !ruby/object:Gem::Version
|
327
|
-
version:
|
327
|
+
version: 3.5.0
|
328
328
|
- !ruby/object:Gem::Dependency
|
329
329
|
name: webmock
|
330
330
|
requirement: !ruby/object:Gem::Requirement
|
@@ -974,6 +974,7 @@ files:
|
|
974
974
|
- config/i18n-tasks.yml
|
975
975
|
- config/locales/en.yml
|
976
976
|
- config/locales/es.yml
|
977
|
+
- config/locales/fr.yml
|
977
978
|
- config/locales/pl.yml
|
978
979
|
- config/locales/pt-BR.yml
|
979
980
|
- config/locales/ru.yml
|