decidim-core 0.25.0 → 0.26.0.rc2
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/cells/decidim/activity_cell.rb +2 -1
- data/app/cells/decidim/author/flag_user.erb +1 -1
- data/app/cells/decidim/author/profile_inline.erb +1 -1
- data/app/cells/decidim/author/withdraw.erb +2 -2
- data/app/cells/decidim/author_cell.rb +32 -0
- data/app/cells/decidim/card_m_cell.rb +1 -1
- data/app/cells/decidim/content_blocks/cta_cell.rb +1 -1
- data/app/cells/decidim/content_blocks/hero_cell.rb +1 -1
- data/app/cells/decidim/content_blocks/highlighted_content_banner/show.erb +1 -1
- data/app/cells/decidim/content_blocks/how_to_participate/show.erb +1 -1
- data/app/cells/decidim/content_blocks/last_activity_cell.rb +1 -1
- data/app/cells/decidim/content_blocks/stats_cell.rb +12 -0
- data/app/cells/decidim/endorsers_list_cell.rb +3 -1
- data/app/cells/decidim/flag_modal/flag_user.erb +2 -2
- data/app/cells/decidim/flag_modal/show.erb +2 -2
- data/app/cells/decidim/flag_modal_cell.rb +10 -0
- data/app/cells/decidim/following/show.erb +17 -8
- data/app/cells/decidim/following_cell.rb +6 -2
- data/app/cells/decidim/notification/show.erb +31 -0
- data/app/cells/decidim/notification_cell.rb +20 -0
- data/app/cells/decidim/notifications/show.erb +1 -24
- data/app/cells/decidim/notifications_cell.rb +0 -1
- data/app/cells/decidim/user_conversation/conversation_header.erb +1 -1
- data/app/cells/decidim/user_conversation/show.erb +4 -2
- data/app/cells/decidim/user_conversations/conversation_item.erb +1 -1
- data/app/commands/decidim/create_editor_image.rb +41 -0
- data/app/controllers/concerns/decidim/disable_redirection_to_external_host.rb +15 -0
- data/app/controllers/concerns/decidim/safe_redirect.rb +14 -3
- data/app/controllers/decidim/application_controller.rb +1 -0
- data/app/controllers/decidim/cookie_policy_controller.rb +2 -0
- data/app/controllers/decidim/editor_images_controller.rb +47 -0
- data/app/controllers/decidim/user_activities_controller.rb +2 -1
- data/app/forms/decidim/editor_image_form.rb +16 -0
- data/app/helpers/decidim/amendments_helper.rb +1 -1
- data/app/helpers/decidim/application_helper.rb +2 -2
- data/app/helpers/decidim/messaging/conversation_helper.rb +32 -3
- data/app/helpers/decidim/resource_versions_helper.rb +1 -1
- data/app/helpers/decidim/sanitize_helper.rb +65 -0
- data/app/models/decidim/editor_image.rb +14 -0
- data/app/models/decidim/messaging/conversation.rb +9 -0
- data/app/models/decidim/participatory_space_private_user.rb +16 -0
- data/app/models/decidim/user.rb +3 -9
- data/app/models/decidim/user_base_entity.rb +24 -13
- data/app/models/decidim/user_group.rb +40 -0
- data/app/packs/entrypoints/decidim_core.js +1 -0
- data/app/packs/src/decidim/dialog_mode.js +143 -0
- data/app/packs/src/decidim/dialog_mode.test.js +168 -0
- data/app/packs/src/decidim/editor.js +56 -14
- data/app/packs/src/decidim/form_attachments.js +5 -0
- data/app/packs/src/decidim/geocoding/attach_input.js +11 -2
- data/app/packs/src/decidim/index.js +4 -0
- data/app/packs/src/decidim/input_emoji.js +10 -1
- data/app/packs/src/decidim/vendor/image-resize.min.js +3 -0
- data/app/packs/src/decidim/vendor/image-upload.min.js +8 -0
- data/app/packs/stylesheets/decidim/extras/_extras.scss +0 -1
- data/app/packs/stylesheets/decidim/extras/_quill.scss +7 -0
- data/app/packs/stylesheets/decidim/modules/_buttons.scss +11 -4
- data/app/packs/stylesheets/decidim/modules/_cards.scss +4 -0
- data/app/packs/stylesheets/decidim/modules/_layout.scss +1 -1
- data/app/packs/stylesheets/decidim/modules/_timeline.scss +1 -1
- data/app/presenters/decidim/nil_presenter.rb +2 -2
- data/app/presenters/decidim/notification_presenter.rb +25 -0
- data/app/presenters/decidim/official_author_presenter.rb +1 -1
- data/app/presenters/decidim/validation_errors_presenter.rb +27 -0
- data/app/queries/decidim/similar_emendations.rb +1 -1
- data/app/resolvers/decidim/core/metric_resolver.rb +1 -1
- data/app/services/decidim/activity_search.rb +2 -2
- data/app/services/decidim/email_notification_generator.rb +4 -1
- data/app/services/decidim/html_truncation.rb +130 -0
- data/app/services/decidim/open_data_exporter.rb +29 -5
- data/app/services/decidim/resource_search.rb +1 -1
- data/app/uploaders/decidim/editor_image_uploader.rb +6 -0
- data/app/validators/password_validator.rb +123 -0
- data/app/views/decidim/account/_password_fields.html.erb +1 -1
- data/app/views/decidim/devise/passwords/edit.html.erb +1 -1
- data/app/views/decidim/devise/registrations/new.html.erb +1 -1
- data/app/views/decidim/devise/shared/_omniauth_buttons_mini.html.erb +6 -4
- data/app/views/decidim/messaging/conversations/_conversation.html.erb +9 -3
- data/app/views/decidim/messaging/conversations/_messages.html.erb +8 -2
- data/app/views/decidim/messaging/conversations/_show.html.erb +10 -12
- data/app/views/decidim/messaging/conversations/show.html.erb +4 -2
- data/app/views/decidim/newsletters/show.html.erb +1 -1
- data/app/views/decidim/notification_mailer/event_received.html.erb +17 -0
- data/app/views/decidim/pages/_tabbed.html.erb +1 -1
- data/app/views/decidim/searches/_filters_small_view.html.erb +3 -3
- data/app/views/decidim/shared/_login_modal.html.erb +5 -5
- data/app/views/decidim/shared/_orders.html.erb +1 -1
- data/app/views/decidim/shared/_results_per_page.html.erb +1 -1
- data/app/views/decidim/shared/participatory_space_filters/_filters_small_view.html.erb +3 -3
- data/app/views/layouts/decidim/_application.html.erb +1 -12
- data/app/views/layouts/decidim/_head.html.erb +4 -0
- data/app/views/layouts/decidim/_language_chooser.html.erb +1 -1
- data/app/views/layouts/decidim/_meta_tags_config.html.erb +11 -0
- data/app/views/layouts/decidim/_wrapper.html.erb +1 -1
- data/config/brakeman.ignore +149 -0
- data/config/initializers/devise.rb +1 -1
- data/config/initializers/rack_attack.rb +23 -21
- data/config/locales/ar.yml +8 -0
- data/config/locales/ca.yml +43 -0
- data/config/locales/cs.yml +61 -0
- data/config/locales/en.yml +47 -0
- data/config/locales/es-MX.yml +42 -0
- data/config/locales/es-PY.yml +42 -0
- data/config/locales/es.yml +42 -0
- data/config/locales/eu.yml +27 -12
- data/config/locales/fi-plain.yml +42 -0
- data/config/locales/fi.yml +42 -0
- data/config/locales/fr-CA.yml +43 -0
- data/config/locales/fr.yml +75 -28
- data/config/locales/gl.yml +6 -0
- data/config/locales/it.yml +11 -0
- data/config/locales/ja.yml +85 -49
- data/config/locales/lb-LU.yml +1354 -0
- data/config/locales/lb.yml +1 -1
- data/config/locales/nl.yml +51 -0
- data/config/locales/pl.yml +5 -5
- data/config/locales/pt-BR.yml +1 -1
- data/config/locales/ro-RO.yml +275 -252
- data/config/locales/sv.yml +45 -2
- data/config/locales/val-ES.yml +1 -0
- data/config/routes.rb +2 -0
- data/db/migrate/20210730112319_create_decidim_editor_images.rb +12 -0
- data/db/migrate/20211126183540_add_timestamps_to_content_blocks.rb +14 -0
- data/db/seeds.rb +16 -14
- data/lib/decidim/api/functions/user_entity_finder.rb +2 -1
- data/lib/decidim/api/functions/user_entity_list.rb +3 -1
- data/lib/decidim/api/input_sorts/component_input_sort.rb +1 -1
- data/lib/decidim/common_passwords.rb +56 -0
- data/lib/decidim/content_parsers/inline_images_parser.rb +68 -0
- data/lib/decidim/content_parsers.rb +1 -0
- data/lib/decidim/content_renderers/link_renderer.rb +85 -1
- data/lib/decidim/content_renderers/user_group_renderer.rb +1 -1
- data/lib/decidim/content_renderers/user_renderer.rb +1 -1
- data/lib/decidim/core/engine.rb +7 -12
- data/lib/decidim/core/test/factories.rb +7 -1
- data/lib/decidim/core/test/shared_examples/translated_event_examples.rb +131 -0
- data/lib/decidim/core/test.rb +1 -0
- data/lib/decidim/core/version.rb +1 -1
- data/lib/decidim/core.rb +33 -5
- data/lib/decidim/db/common-passwords.txt +128420 -0
- data/lib/decidim/etherpad/pad.rb +48 -0
- data/lib/decidim/etherpad.rb +7 -0
- data/lib/decidim/events/base_event.rb +18 -0
- data/lib/decidim/events/machine_translated_event.rb +36 -0
- data/lib/decidim/events/user_group_event.rb +1 -3
- data/lib/decidim/events.rb +1 -0
- data/lib/decidim/exporters/csv.rb +7 -7
- data/lib/decidim/faker/localized.rb +15 -6
- data/lib/decidim/form_builder.rb +14 -4
- data/lib/decidim/has_attachments.rb +11 -4
- data/lib/decidim/has_component.rb +4 -0
- data/lib/decidim/importers/import_manifest.rb +103 -3
- data/lib/decidim/organization_settings.rb +1 -1
- data/lib/decidim/paddable.rb +1 -9
- data/lib/decidim/participable.rb +5 -0
- data/lib/decidim/resourceable.rb +2 -9
- data/lib/decidim/searchable.rb +2 -2
- data/lib/decidim/settings_manifest.rb +2 -0
- data/lib/decidim/translatable_attributes.rb +6 -6
- data/lib/decidim/view_model.rb +10 -0
- data/lib/tasks/decidim_active_storage_migration_tasks.rake +68 -0
- data/lib/tasks/decidim_webpacker_tasks.rake +4 -10
- metadata +70 -78
- data/app/packs/stylesheets/decidim/extras/_social_icons_mini.scss +0 -11
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
{
|
|
2
|
+
"ignored_warnings": [
|
|
3
|
+
{
|
|
4
|
+
"warning_type": "Cross-Site Scripting",
|
|
5
|
+
"warning_code": 2,
|
|
6
|
+
"fingerprint": "211ff4b5e0d738e40e3c7f6d27b6905f23b1ed4e20347c179af3df40f6e5694d",
|
|
7
|
+
"check_name": "CrossSiteScripting",
|
|
8
|
+
"message": "Unescaped model attribute",
|
|
9
|
+
"file": "app/views/decidim/messaging/conversations/_conversation.html.erb",
|
|
10
|
+
"line": 20,
|
|
11
|
+
"link": "https://brakemanscanner.org/docs/warning_types/cross_site_scripting",
|
|
12
|
+
"code": "username_list((Unresolved Model).new.interlocutors(current_user), :shorten => true)",
|
|
13
|
+
"render_path": [
|
|
14
|
+
{
|
|
15
|
+
"type": "template",
|
|
16
|
+
"name": "decidim/messaging/conversations/index",
|
|
17
|
+
"line": 25,
|
|
18
|
+
"file": "app/views/decidim/messaging/conversations/index.html.erb",
|
|
19
|
+
"rendered": {
|
|
20
|
+
"name": "decidim/messaging/conversations/_conversation",
|
|
21
|
+
"file": "app/views/decidim/messaging/conversations/_conversation.html.erb"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
],
|
|
25
|
+
"location": {
|
|
26
|
+
"type": "template",
|
|
27
|
+
"template": "decidim/messaging/conversations/_conversation"
|
|
28
|
+
},
|
|
29
|
+
"user_input": "(Unresolved Model).new.interlocutors(current_user)",
|
|
30
|
+
"confidence": "Weak",
|
|
31
|
+
"note": ""
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"warning_type": "Cross-Site Scripting",
|
|
35
|
+
"warning_code": 4,
|
|
36
|
+
"fingerprint": "2c7f1da812b5d4b350d2260b604e9061ef082ecae90073ae09fe2eb46c1b9a08",
|
|
37
|
+
"check_name": "LinkToHref",
|
|
38
|
+
"message": "Unsafe parameter value in `link_to` href",
|
|
39
|
+
"file": "app/views/decidim/links/_modal.html.erb",
|
|
40
|
+
"line": 16,
|
|
41
|
+
"link": "https://brakemanscanner.org/docs/warning_types/link_to_href",
|
|
42
|
+
"code": "link_to(t(\"decidim.links.warning.proceed\"), params[:external_url], :target => \"_blank\", :data => ({ :close => \"\" }), :class => \"button primary button--nomargin\")",
|
|
43
|
+
"render_path": [
|
|
44
|
+
{
|
|
45
|
+
"type": "controller",
|
|
46
|
+
"class": "Decidim::LinksController",
|
|
47
|
+
"method": "new",
|
|
48
|
+
"line": 16,
|
|
49
|
+
"file": "app/controllers/decidim/links_controller.rb",
|
|
50
|
+
"rendered": {
|
|
51
|
+
"name": "decidim/links/new",
|
|
52
|
+
"file": "app/views/decidim/links/new.js.erb"
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"type": "template",
|
|
57
|
+
"name": "decidim/links/new",
|
|
58
|
+
"line": 3,
|
|
59
|
+
"file": "app/views/decidim/links/new.js.erb",
|
|
60
|
+
"rendered": {
|
|
61
|
+
"name": "decidim/links/_modal",
|
|
62
|
+
"file": "app/views/decidim/links/_modal.html.erb"
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
],
|
|
66
|
+
"location": {
|
|
67
|
+
"type": "template",
|
|
68
|
+
"template": "decidim/links/_modal"
|
|
69
|
+
},
|
|
70
|
+
"user_input": "params[:external_url]",
|
|
71
|
+
"confidence": "High",
|
|
72
|
+
"note": ""
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"warning_type": "Cross-Site Scripting",
|
|
76
|
+
"warning_code": 2,
|
|
77
|
+
"fingerprint": "2d9910c9250df37f9cf9ddd225d4541ab9c411c61e74562b9a4b7b188e44cc47",
|
|
78
|
+
"check_name": "CrossSiteScripting",
|
|
79
|
+
"message": "Unescaped parameter value",
|
|
80
|
+
"file": "app/views/decidim/searches/index.js.erb",
|
|
81
|
+
"line": 5,
|
|
82
|
+
"link": "https://brakemanscanner.org/docs/warning_types/cross_site_scripting",
|
|
83
|
+
"code": "j(cell(\"decidim/search_results\", @sections, :params => (params)).show).strip",
|
|
84
|
+
"render_path": [
|
|
85
|
+
{
|
|
86
|
+
"type": "controller",
|
|
87
|
+
"class": "Decidim::SearchesController",
|
|
88
|
+
"method": "index",
|
|
89
|
+
"line": 15,
|
|
90
|
+
"file": "app/controllers/decidim/searches_controller.rb",
|
|
91
|
+
"rendered": {
|
|
92
|
+
"name": "decidim/searches/index",
|
|
93
|
+
"file": "app/views/decidim/searches/index.js.erb"
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
],
|
|
97
|
+
"location": {
|
|
98
|
+
"type": "template",
|
|
99
|
+
"template": "decidim/searches/index"
|
|
100
|
+
},
|
|
101
|
+
"user_input": "params",
|
|
102
|
+
"confidence": "Weak",
|
|
103
|
+
"note": ""
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"warning_type": "Cross-Site Scripting",
|
|
107
|
+
"warning_code": 2,
|
|
108
|
+
"fingerprint": "b46eb40178db883a8a9065d3affe7fb7868369084048fd88321f887d8618eea5",
|
|
109
|
+
"check_name": "CrossSiteScripting",
|
|
110
|
+
"message": "Unescaped parameter value",
|
|
111
|
+
"file": "app/views/decidim/messaging/conversations/_show.html.erb",
|
|
112
|
+
"line": 29,
|
|
113
|
+
"link": "https://brakemanscanner.org/docs/warning_types/cross_site_scripting",
|
|
114
|
+
"code": "t(\".title\", :usernames => username_list(form(ConversationForm).from_params(params, :sender => current_user).recipient.to_a))",
|
|
115
|
+
"render_path": [
|
|
116
|
+
{
|
|
117
|
+
"type": "controller",
|
|
118
|
+
"class": "Decidim::Messaging::ConversationsController",
|
|
119
|
+
"method": "new",
|
|
120
|
+
"line": 35,
|
|
121
|
+
"file": "app/controllers/decidim/messaging/conversations_controller.rb",
|
|
122
|
+
"rendered": {
|
|
123
|
+
"name": "decidim/messaging/conversations/new",
|
|
124
|
+
"file": "app/views/decidim/messaging/conversations/new.html.erb"
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"type": "template",
|
|
129
|
+
"name": "decidim/messaging/conversations/new",
|
|
130
|
+
"line": 1,
|
|
131
|
+
"file": "app/views/decidim/messaging/conversations/new.html.erb",
|
|
132
|
+
"rendered": {
|
|
133
|
+
"name": "decidim/messaging/conversations/_show",
|
|
134
|
+
"file": "app/views/decidim/messaging/conversations/_show.html.erb"
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
],
|
|
138
|
+
"location": {
|
|
139
|
+
"type": "template",
|
|
140
|
+
"template": "decidim/messaging/conversations/_show"
|
|
141
|
+
},
|
|
142
|
+
"user_input": "params",
|
|
143
|
+
"confidence": "Weak",
|
|
144
|
+
"note": ""
|
|
145
|
+
}
|
|
146
|
+
],
|
|
147
|
+
"updated": "2021-12-22 09:55:40 +0000",
|
|
148
|
+
"brakeman_version": "5.1.2"
|
|
149
|
+
}
|
|
@@ -88,7 +88,7 @@ Devise.setup do |config|
|
|
|
88
88
|
# It will change confirmation, password recovery and other workflows
|
|
89
89
|
# to behave the same regardless if the e-mail provided was right or wrong.
|
|
90
90
|
# Does not affect registerable.
|
|
91
|
-
|
|
91
|
+
config.paranoid = true
|
|
92
92
|
|
|
93
93
|
# By default Devise will store the user in session. You can skip storage for
|
|
94
94
|
# particular strategies by setting this option.
|
|
@@ -7,31 +7,33 @@ if Rails.env.production? || Rails.env.test?
|
|
|
7
7
|
config.middleware.use Rack::Attack
|
|
8
8
|
end
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
ActiveSupport::Reloader.to_prepare do
|
|
11
|
+
Rack::Attack.blocklist("block all access to system") do |request|
|
|
12
|
+
# Requests are blocked if the return value is truthy
|
|
13
|
+
if request.path.start_with?("/system")
|
|
14
|
+
Decidim.system_accesslist_ips.any? && Decidim.system_accesslist_ips.map { |ip_address| IPAddr.new(ip_address).include?(IPAddr.new(request.ip)) }.any?
|
|
15
|
+
end
|
|
14
16
|
end
|
|
15
|
-
end
|
|
16
17
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
18
|
+
unless Rails.env.test?
|
|
19
|
+
Rack::Attack.throttle(
|
|
20
|
+
"requests by ip",
|
|
21
|
+
limit: Decidim.throttling_max_requests,
|
|
22
|
+
period: Decidim.throttling_period,
|
|
23
|
+
&:ip
|
|
24
|
+
)
|
|
24
25
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
# Throttle login attempts for a given email parameter to 6 reqs/minute
|
|
27
|
+
# Return the email as a discriminator on POST /users/sign_in requests
|
|
28
|
+
Rack::Attack.throttle("limit logins per email", limit: 5, period: 60.seconds) do |request|
|
|
29
|
+
request.params["user"]["email"] if request.path == "/users/sign_in" && request.post?
|
|
30
|
+
end
|
|
30
31
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
# Throttle login attempts for a given email parameter to 6 reqs/minute
|
|
33
|
+
# Return the email as a discriminator on POST /users/sign_in requests
|
|
34
|
+
Rack::Attack.throttle("limit password recovery attempts per email", limit: 5, period: 60.seconds) do |request|
|
|
35
|
+
request.params["user"]["email"] if request.path == "/users/password" && request.post?
|
|
36
|
+
end
|
|
35
37
|
end
|
|
36
38
|
end
|
|
37
39
|
end
|
data/config/locales/ar.yml
CHANGED
|
@@ -711,6 +711,9 @@ ar:
|
|
|
711
711
|
index:
|
|
712
712
|
last_activity: النشاط الاخير
|
|
713
713
|
resource_type: نوع
|
|
714
|
+
links:
|
|
715
|
+
warning:
|
|
716
|
+
cancel: إلغاء
|
|
714
717
|
log:
|
|
715
718
|
base_presenter:
|
|
716
719
|
create: "%{user_name} تم الإنشاء %{resource_name}"
|
|
@@ -920,6 +923,7 @@ ar:
|
|
|
920
923
|
report_html: <p>بعد <a href="%{url}">محتوى</a> تم إخفاء تلقائيا.</p>
|
|
921
924
|
subject: تم إخفاء المورد تلقائيًا
|
|
922
925
|
report:
|
|
926
|
+
content_original_language: لغة المحتوى الأصلية
|
|
923
927
|
hello: مرحبا %{name}،
|
|
924
928
|
report_html: <p>تم الإبلاغ عن المحتوى <a href="%{url}">التالي</a> .</p>
|
|
925
929
|
subject: تم الإبلاغ عن مورد
|
|
@@ -962,6 +966,8 @@ ar:
|
|
|
962
966
|
other: "%{count} النتائج"
|
|
963
967
|
view_all: عرض الكل (%{count})
|
|
964
968
|
shared:
|
|
969
|
+
confirm_modal:
|
|
970
|
+
cancel: إلغاء
|
|
965
971
|
embed_modal:
|
|
966
972
|
close_window: أغلق النافذة
|
|
967
973
|
embed: يرجى لصق هذا الرمز في صفحتك
|
|
@@ -1218,6 +1224,8 @@ ar:
|
|
|
1218
1224
|
close_session: اغلق الموسم
|
|
1219
1225
|
description_html: أنت تدير المشارك <b>%{user_name}</b>.
|
|
1220
1226
|
expire_time_html: سوف تنتهي جلستك في <b><span class="minutes">%{minutes}</span> دقائق</b>.
|
|
1227
|
+
language_chooser:
|
|
1228
|
+
choose_language: اختر اللغة
|
|
1221
1229
|
notifications_dashboard:
|
|
1222
1230
|
mark_all_as_read: اشر عليها بانها قرات
|
|
1223
1231
|
user_menu:
|
data/config/locales/ca.yml
CHANGED
|
@@ -76,6 +76,30 @@ ca:
|
|
|
76
76
|
decidim_with_day_and_month_name: "%A %d %b %Y"
|
|
77
77
|
decidim_with_month_name: "%d %B %Y"
|
|
78
78
|
decidim_with_month_name_short: "%d %b"
|
|
79
|
+
datetime:
|
|
80
|
+
distance_in_words:
|
|
81
|
+
about_x_hours:
|
|
82
|
+
one: al voltant d’1 hora
|
|
83
|
+
other: al voltant de %{count} hores
|
|
84
|
+
about_x_months:
|
|
85
|
+
one: al voltant d’1 mes
|
|
86
|
+
other: al voltant de %{count} mesos
|
|
87
|
+
half_a_minute: mig minut
|
|
88
|
+
less_than_x_minutes:
|
|
89
|
+
one: menys d’un minut
|
|
90
|
+
other: menys de %{count} minuts
|
|
91
|
+
less_than_x_seconds:
|
|
92
|
+
one: ara mateix
|
|
93
|
+
other: menys de %{count} segons
|
|
94
|
+
x_days:
|
|
95
|
+
one: fa 1 dia
|
|
96
|
+
other: "fa %{count} dies"
|
|
97
|
+
x_hours:
|
|
98
|
+
one: fa 1 hora
|
|
99
|
+
other: "fa %{count} hores"
|
|
100
|
+
x_minutes:
|
|
101
|
+
one: fa 1 minut
|
|
102
|
+
other: "fa %{count} minuts"
|
|
79
103
|
decidim:
|
|
80
104
|
accessibility:
|
|
81
105
|
external_link: Enllaç extern
|
|
@@ -504,6 +528,11 @@ ca:
|
|
|
504
528
|
this_application_will_not_be_able_to: 'Aquesta aplicació no podrà:'
|
|
505
529
|
update_profile: Actualitza el teu perfil
|
|
506
530
|
wants_to_use_your_account_html: "<strong>%{application_name}</strong> vol utilitzar el teu compte"
|
|
531
|
+
editor_images:
|
|
532
|
+
create:
|
|
533
|
+
error: S'ha produït un error en pujar la imatge
|
|
534
|
+
success: La imatge s'ha pujat correctament
|
|
535
|
+
drag_and_drop_help: Afegeix imatges arrossegant-les i deixant-les anar o bé enganxant-les.
|
|
507
536
|
endorsable:
|
|
508
537
|
endorsements: Adhesions
|
|
509
538
|
endorsements_count: Número d'adhesions
|
|
@@ -694,6 +723,7 @@ ca:
|
|
|
694
723
|
no_followers: Encara no hi ha seguidores.
|
|
695
724
|
following:
|
|
696
725
|
no_followings: No segueix a cap persona ni cap activitat.
|
|
726
|
+
non_public_followings: Alguns dels recursos seguits no són públics.
|
|
697
727
|
follows:
|
|
698
728
|
create:
|
|
699
729
|
button: Seguir
|
|
@@ -959,6 +989,7 @@ ca:
|
|
|
959
989
|
next: Següent
|
|
960
990
|
no_conversations: Encara no tens converses
|
|
961
991
|
title: Converses
|
|
992
|
+
to: Per a
|
|
962
993
|
reply:
|
|
963
994
|
placeholder: La teva resposta...
|
|
964
995
|
send: Enviar
|
|
@@ -966,6 +997,7 @@ ca:
|
|
|
966
997
|
show:
|
|
967
998
|
back: Tornar a totes les converses
|
|
968
999
|
chat_with: Conversa amb
|
|
1000
|
+
deleted_accounts: No podeu tenir una conversa amb un compte d'usuària eliminat.
|
|
969
1001
|
not_allowed: Aquesta participant no accepta missatges directes.
|
|
970
1002
|
title: Conversa amb %{usernames}
|
|
971
1003
|
start:
|
|
@@ -1033,6 +1065,12 @@ ca:
|
|
|
1033
1065
|
greetings: Salutacions,<br/>%{organization_name}<br/><a href="%{organization_url}">%{organization_url}</a>
|
|
1034
1066
|
hello: Hola,
|
|
1035
1067
|
subject: Vols seguir rebent informació rellevant sobre %{organization_name}?
|
|
1068
|
+
notification_mailer:
|
|
1069
|
+
event_received:
|
|
1070
|
+
no_translation_available: Ho sentim, no s'ha pogut recuperar la traducció automàtica en enviar el correu. Pots comprovar la traducció del text original a través del següent enllaç %{link}.
|
|
1071
|
+
original_text: 'Text original:'
|
|
1072
|
+
same_language: El contingut s'ha publicat en la teva llengua de preferència (%{language}), és per això que no es mostra cap traducció automàtica en aquest correu electrònic.
|
|
1073
|
+
translated_text: 'Text de la traducció automàtica:'
|
|
1036
1074
|
notifications:
|
|
1037
1075
|
no_notifications: Encara no hi ha notificacions.
|
|
1038
1076
|
notifications_settings:
|
|
@@ -1330,6 +1368,7 @@ ca:
|
|
|
1330
1368
|
title_reply: Respondre
|
|
1331
1369
|
show:
|
|
1332
1370
|
back: Mostra totes les converses
|
|
1371
|
+
deleted_accounts: No podeu tenir una conversa amb un compte d'usuària eliminat.
|
|
1333
1372
|
not_allowed: Aquesta participant no accepta missatges directes.
|
|
1334
1373
|
title: Conversa amb %{usernames}
|
|
1335
1374
|
update:
|
|
@@ -1626,10 +1665,12 @@ ca:
|
|
|
1626
1665
|
name: Català
|
|
1627
1666
|
name_with_error: Anglès (error!)
|
|
1628
1667
|
password_validator:
|
|
1668
|
+
blacklisted: a la llista negra
|
|
1629
1669
|
domain_included_in_password: és massa semblant a aquest nom de domini
|
|
1630
1670
|
email_included_in_password: és massa similar al teu correu electrònic
|
|
1631
1671
|
fallback: no és vàlid
|
|
1632
1672
|
name_included_in_password: és massa semblant al teu nom
|
|
1673
|
+
nickname_included_in_password: és massa semblant al teu àlies
|
|
1633
1674
|
not_enough_unique_characters: no té prou caràcters únics
|
|
1634
1675
|
password_not_allowed: no està permès
|
|
1635
1676
|
password_too_common: és massa comú
|
|
@@ -1664,6 +1705,8 @@ ca:
|
|
|
1664
1705
|
day_of_week: "%a"
|
|
1665
1706
|
day_of_week_long: "%a %e"
|
|
1666
1707
|
day_of_year: "%d/%m/%y"
|
|
1708
|
+
ddmm: "%d.%m"
|
|
1709
|
+
ddmmyyyy: "%d.%m.%Y"
|
|
1667
1710
|
decidim_day_of_year: "%d %B %Y"
|
|
1668
1711
|
decidim_short: "%d/%m/%Y %H:%M"
|
|
1669
1712
|
default: "%a, %d %b %Y %H:%M:%S %z"
|
data/config/locales/cs.yml
CHANGED
|
@@ -84,6 +84,48 @@ cs:
|
|
|
84
84
|
decidim_with_day_and_month_name: "%A %d %b %Y"
|
|
85
85
|
decidim_with_month_name: "%d %B %Y"
|
|
86
86
|
decidim_with_month_name_short: "%d %b"
|
|
87
|
+
datetime:
|
|
88
|
+
distance_in_words:
|
|
89
|
+
about_x_hours:
|
|
90
|
+
one: asi 1 hodina
|
|
91
|
+
few: asi %{count} hodiny
|
|
92
|
+
many: asi %{count} hodin
|
|
93
|
+
other: asi %{count} hodin
|
|
94
|
+
about_x_months:
|
|
95
|
+
one: asi 1 měsíc
|
|
96
|
+
few: asi %{count} měsíce
|
|
97
|
+
many: asi %{count} měsíců
|
|
98
|
+
other: asi %{count} měsíců
|
|
99
|
+
half_a_minute: půl minuty
|
|
100
|
+
less_than_x_minutes:
|
|
101
|
+
one: méně než minutu.
|
|
102
|
+
few: méně než %{count} minuty.
|
|
103
|
+
many: méně než %{count} minut.
|
|
104
|
+
other: méně než %{count} minut.
|
|
105
|
+
less_than_x_seconds:
|
|
106
|
+
one: právě teď
|
|
107
|
+
few: méně než %{count} vteřiny.
|
|
108
|
+
many: méně než %{count} vteřin.
|
|
109
|
+
other: méně než %{count} vteřin.
|
|
110
|
+
x_days:
|
|
111
|
+
one: před 1 dnem
|
|
112
|
+
few: "před %{count} dny"
|
|
113
|
+
many: "před %{count} ti dny"
|
|
114
|
+
other: "před %{count} ti dny"
|
|
115
|
+
x_hours:
|
|
116
|
+
one: před 1 hodinou
|
|
117
|
+
few: "před %{count} hodinami"
|
|
118
|
+
many: "před %{count} hodinami"
|
|
119
|
+
other: "před %{count} hodinami"
|
|
120
|
+
x_minutes:
|
|
121
|
+
one: před 1 minutou
|
|
122
|
+
few: "před %{count} minutami"
|
|
123
|
+
many: "před %{count} minutami"
|
|
124
|
+
other: "před %{count} minutami"
|
|
125
|
+
x_seconds:
|
|
126
|
+
one: před 1 vteřinou
|
|
127
|
+
other: "před %{count} vteřinami"
|
|
128
|
+
zero: právě teď
|
|
87
129
|
decidim:
|
|
88
130
|
accessibility:
|
|
89
131
|
external_link: Externí odkaz
|
|
@@ -527,6 +569,11 @@ cs:
|
|
|
527
569
|
this_application_will_not_be_able_to: 'Tato aplikace nebude moci:'
|
|
528
570
|
update_profile: Aktualizujte svůj profil
|
|
529
571
|
wants_to_use_your_account_html: "<strong>%{application_name}</strong> chce používat váš účet"
|
|
572
|
+
editor_images:
|
|
573
|
+
create:
|
|
574
|
+
error: Chyba při nahrávání obrázku
|
|
575
|
+
success: Obrázek byl úspěšně nahrán
|
|
576
|
+
drag_and_drop_help: Přidejte obrázky přetažením nebo vložením.
|
|
530
577
|
endorsable:
|
|
531
578
|
endorsements: Schválení
|
|
532
579
|
endorsements_count: Počet schvalování
|
|
@@ -719,6 +766,7 @@ cs:
|
|
|
719
766
|
no_followers: Zatím žádní sledující.
|
|
720
767
|
following:
|
|
721
768
|
no_followings: Nesleduje nikoho ani nic.
|
|
769
|
+
non_public_followings: Některé z uvedených zdrojů nejsou veřejné.
|
|
722
770
|
follows:
|
|
723
771
|
create:
|
|
724
772
|
button: Sledovat
|
|
@@ -984,6 +1032,7 @@ cs:
|
|
|
984
1032
|
next: Další
|
|
985
1033
|
no_conversations: Nemáte zatím žádné konverzace
|
|
986
1034
|
title: Konverzace
|
|
1035
|
+
to: Komu
|
|
987
1036
|
reply:
|
|
988
1037
|
placeholder: Vaše odpověď...
|
|
989
1038
|
send: Poslat
|
|
@@ -991,6 +1040,7 @@ cs:
|
|
|
991
1040
|
show:
|
|
992
1041
|
back: Zpět ke všem konverzacím
|
|
993
1042
|
chat_with: Konverzace s
|
|
1043
|
+
deleted_accounts: Nemůžete mít konverzaci s odstraněnými účty.
|
|
994
1044
|
not_allowed: Tento uživatel nepřijímá přímé zprávy.
|
|
995
1045
|
title: Konverzace s číslem %{usernames}
|
|
996
1046
|
start:
|
|
@@ -1058,6 +1108,12 @@ cs:
|
|
|
1058
1108
|
greetings: Zdravím,<br/>%{organization_name}<br/><a href="%{organization_url}">%{organization_url}</a>
|
|
1059
1109
|
hello: Ahoj,
|
|
1060
1110
|
subject: Chcete nadále dostávat příslušné informace o %{organization_name}?
|
|
1111
|
+
notification_mailer:
|
|
1112
|
+
event_received:
|
|
1113
|
+
no_translation_available: Omlouváme se, po odeslání e-mailu nelze získat automatický překlad. Překlad původního textu můžete zkontrolovat na následujícím odkazu %{link}.
|
|
1114
|
+
original_text: 'Původní text:'
|
|
1115
|
+
same_language: Obsah byl zveřejněn ve vašem preferovaném jazyce (%{language}), proto se v tomto e-mailu nezobrazuje automatický překlad.
|
|
1116
|
+
translated_text: 'Automaticky přeložený text:'
|
|
1061
1117
|
notifications:
|
|
1062
1118
|
no_notifications: Zatím žádné oznámení.
|
|
1063
1119
|
notifications_settings:
|
|
@@ -1357,6 +1413,7 @@ cs:
|
|
|
1357
1413
|
title_reply: Odpovědět
|
|
1358
1414
|
show:
|
|
1359
1415
|
back: Zobrazit všechny konverzace
|
|
1416
|
+
deleted_accounts: Nemůžete mít konverzaci s odstraněnými účty.
|
|
1360
1417
|
not_allowed: Tento uživatel již nepřijímá žádné přímé zprávy.
|
|
1361
1418
|
title: Konverzace s %{usernames}
|
|
1362
1419
|
update:
|
|
@@ -1660,10 +1717,12 @@ cs:
|
|
|
1660
1717
|
name: Čeština
|
|
1661
1718
|
name_with_error: Čeština
|
|
1662
1719
|
password_validator:
|
|
1720
|
+
blacklisted: je na černé listině
|
|
1663
1721
|
domain_included_in_password: je příliš podobné tomuto názvu domény
|
|
1664
1722
|
email_included_in_password: je příliš podobný e-mailu
|
|
1665
1723
|
fallback: není platný
|
|
1666
1724
|
name_included_in_password: je příliš podobné vašemu jménu
|
|
1725
|
+
nickname_included_in_password: je příliš podobné vaší přezdívce
|
|
1667
1726
|
not_enough_unique_characters: nemá dostatek jedinečných znaků
|
|
1668
1727
|
password_not_allowed: není povoleno
|
|
1669
1728
|
password_too_common: je příliš běžné
|
|
@@ -1698,6 +1757,8 @@ cs:
|
|
|
1698
1757
|
day_of_week: "%a"
|
|
1699
1758
|
day_of_week_long: "%a %e"
|
|
1700
1759
|
day_of_year: "%d.%m.%y"
|
|
1760
|
+
ddmm: "%d.%m"
|
|
1761
|
+
ddmmyyyy: "%d.%m.%Y"
|
|
1701
1762
|
decidim_day_of_year: "%d %B %Y"
|
|
1702
1763
|
decidim_short: "%d/%m/%Y %H:%M"
|
|
1703
1764
|
default: "%a, %d %b %Y %H:%M:%S %z"
|
data/config/locales/en.yml
CHANGED
|
@@ -77,6 +77,34 @@ en:
|
|
|
77
77
|
decidim_with_day_and_month_name: "%A %d %b %Y"
|
|
78
78
|
decidim_with_month_name: "%d %B %Y"
|
|
79
79
|
decidim_with_month_name_short: "%d %b"
|
|
80
|
+
datetime:
|
|
81
|
+
distance_in_words:
|
|
82
|
+
about_x_hours:
|
|
83
|
+
one: about 1 hour
|
|
84
|
+
other: about %{count} hours
|
|
85
|
+
about_x_months:
|
|
86
|
+
one: about 1 month
|
|
87
|
+
other: about %{count} months
|
|
88
|
+
half_a_minute: half a minute
|
|
89
|
+
less_than_x_minutes:
|
|
90
|
+
one: less than a min.
|
|
91
|
+
other: less than %{count} min.
|
|
92
|
+
less_than_x_seconds:
|
|
93
|
+
one: right now
|
|
94
|
+
other: less than %{count} sec.
|
|
95
|
+
x_days:
|
|
96
|
+
one: 1 day ago
|
|
97
|
+
other: "%{count} days ago"
|
|
98
|
+
x_hours:
|
|
99
|
+
one: 1 hour ago
|
|
100
|
+
other: "%{count} hours ago"
|
|
101
|
+
x_minutes:
|
|
102
|
+
one: 1 min. ago
|
|
103
|
+
other: "%{count} min. ago"
|
|
104
|
+
x_seconds:
|
|
105
|
+
one: 1 sec. ago
|
|
106
|
+
other: "%{count} sec. ago"
|
|
107
|
+
zero: right now
|
|
80
108
|
decidim:
|
|
81
109
|
accessibility:
|
|
82
110
|
external_link: External link
|
|
@@ -512,6 +540,11 @@ en:
|
|
|
512
540
|
this_application_will_not_be_able_to: 'This application will not be able to:'
|
|
513
541
|
update_profile: Update your profile
|
|
514
542
|
wants_to_use_your_account_html: "<strong>%{application_name}</strong> wants to use your account"
|
|
543
|
+
editor_images:
|
|
544
|
+
create:
|
|
545
|
+
error: Error uploading image
|
|
546
|
+
success: Image uploaded successfully
|
|
547
|
+
drag_and_drop_help: Add images by dragging & dropping or pasting them.
|
|
515
548
|
endorsable:
|
|
516
549
|
endorsements: Endorsements
|
|
517
550
|
endorsements_count: Endorsements count
|
|
@@ -702,6 +735,7 @@ en:
|
|
|
702
735
|
no_followers: No followers yet.
|
|
703
736
|
following:
|
|
704
737
|
no_followings: Doesn't follow anyone or anything yet.
|
|
738
|
+
non_public_followings: Some of the resources followed are not public.
|
|
705
739
|
follows:
|
|
706
740
|
create:
|
|
707
741
|
button: Follow
|
|
@@ -967,6 +1001,7 @@ en:
|
|
|
967
1001
|
next: Next
|
|
968
1002
|
no_conversations: You have no conversations yet
|
|
969
1003
|
title: Conversations
|
|
1004
|
+
to: To
|
|
970
1005
|
reply:
|
|
971
1006
|
placeholder: Your reply...
|
|
972
1007
|
send: Send
|
|
@@ -974,6 +1009,7 @@ en:
|
|
|
974
1009
|
show:
|
|
975
1010
|
back: Back to all conversations
|
|
976
1011
|
chat_with: Conversation with
|
|
1012
|
+
deleted_accounts: You can't have a conversation with deleted accounts.
|
|
977
1013
|
not_allowed: This participant does not accept direct messages.
|
|
978
1014
|
title: Conversation with %{usernames}
|
|
979
1015
|
start:
|
|
@@ -1041,6 +1077,12 @@ en:
|
|
|
1041
1077
|
greetings: Greetings,<br/>%{organization_name}<br/><a href="%{organization_url}">%{organization_url}</a>
|
|
1042
1078
|
hello: Hello,
|
|
1043
1079
|
subject: Do you want to keep receiving relevant information about %{organization_name}?
|
|
1080
|
+
notification_mailer:
|
|
1081
|
+
event_received:
|
|
1082
|
+
no_translation_available: Sorry, the automated translation could not be retrieved when the email has been sent. You can check the translation of the original text on the following link %{link}.
|
|
1083
|
+
original_text: 'Original text:'
|
|
1084
|
+
same_language: The content has been posted in your preferred language (%{language}), this is why no automated translation is displayed in this email.
|
|
1085
|
+
translated_text: 'Automatically translated text:'
|
|
1044
1086
|
notifications:
|
|
1045
1087
|
no_notifications: No notifications yet.
|
|
1046
1088
|
notifications_settings:
|
|
@@ -1338,6 +1380,7 @@ en:
|
|
|
1338
1380
|
title_reply: Reply
|
|
1339
1381
|
show:
|
|
1340
1382
|
back: Show all conversations
|
|
1383
|
+
deleted_accounts: You can't have a conversation with deleted accounts.
|
|
1341
1384
|
not_allowed: This user does not accept any more direct messages.
|
|
1342
1385
|
title: Conversation with %{usernames}
|
|
1343
1386
|
update:
|
|
@@ -1635,10 +1678,12 @@ en:
|
|
|
1635
1678
|
name: English
|
|
1636
1679
|
name_with_error: English (error!)
|
|
1637
1680
|
password_validator:
|
|
1681
|
+
blacklisted: is blacklisted
|
|
1638
1682
|
domain_included_in_password: is too similar to this domain name
|
|
1639
1683
|
email_included_in_password: is too similar to your email
|
|
1640
1684
|
fallback: is not valid
|
|
1641
1685
|
name_included_in_password: is too similar to your name
|
|
1686
|
+
nickname_included_in_password: is too similar to your nickname
|
|
1642
1687
|
not_enough_unique_characters: does not have enough unique characters
|
|
1643
1688
|
password_not_allowed: is not allowed
|
|
1644
1689
|
password_too_common: is too common
|
|
@@ -1673,6 +1718,8 @@ en:
|
|
|
1673
1718
|
day_of_week: "%a"
|
|
1674
1719
|
day_of_week_long: "%a %e"
|
|
1675
1720
|
day_of_year: "%d.%m.%y"
|
|
1721
|
+
ddmm: "%d.%m"
|
|
1722
|
+
ddmmyyyy: "%d.%m.%Y"
|
|
1676
1723
|
decidim_day_of_year: "%d %B %Y"
|
|
1677
1724
|
decidim_short: "%d/%m/%Y %H:%M"
|
|
1678
1725
|
default: "%a, %d %b %Y %H:%M:%S %z"
|