decidim-core 0.26.8 → 0.26.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/version_cell.rb +1 -1
  3. data/app/cells/decidim/versions_list_cell.rb +1 -1
  4. data/app/commands/decidim/endorse_resource.rb +2 -0
  5. data/app/commands/decidim/unendorse_resource.rb +1 -1
  6. data/app/controllers/decidim/devise/registrations_controller.rb +1 -1
  7. data/app/controllers/decidim/links_controller.rb +1 -1
  8. data/app/controllers/decidim/user_timeline_controller.rb +1 -1
  9. data/app/forms/decidim/account_form.rb +1 -1
  10. data/app/forms/decidim/notifications_settings_form.rb +0 -8
  11. data/app/forms/decidim/registration_form.rb +1 -1
  12. data/app/helpers/decidim/resource_helper.rb +2 -0
  13. data/app/jobs/decidim/data_portability_export_job.rb +3 -0
  14. data/app/jobs/decidim/open_data_job.rb +2 -0
  15. data/app/models/decidim/user.rb +9 -1
  16. data/app/packs/src/decidim/geocoding/attach_input.js +4 -1
  17. data/app/packs/src/decidim/geocoding/provider/here.js +17 -21
  18. data/app/packs/src/decidim/geocoding/provider/photon.js +1 -1
  19. data/app/views/decidim/notifications_settings/show.html.erb +1 -1
  20. data/config/environment.rb +3 -0
  21. data/config/locales/ar.yml +8 -13
  22. data/config/locales/bg.yml +0 -16
  23. data/config/locales/ca.yml +8 -5
  24. data/config/locales/cs.yml +15 -12
  25. data/config/locales/de.yml +37 -34
  26. data/config/locales/el.yml +6 -12
  27. data/config/locales/en.yml +3 -0
  28. data/config/locales/eo.yml +2 -3
  29. data/config/locales/es-MX.yml +11 -8
  30. data/config/locales/es-PY.yml +11 -8
  31. data/config/locales/es.yml +7 -4
  32. data/config/locales/eu.yml +379 -339
  33. data/config/locales/fi-plain.yml +5 -2
  34. data/config/locales/fi.yml +16 -13
  35. data/config/locales/fr-CA.yml +12 -9
  36. data/config/locales/fr.yml +7 -4
  37. data/config/locales/ga-IE.yml +0 -5
  38. data/config/locales/gl.yml +2 -17
  39. data/config/locales/hu.yml +9 -13
  40. data/config/locales/id-ID.yml +0 -19
  41. data/config/locales/is-IS.yml +1 -2
  42. data/config/locales/it.yml +8 -13
  43. data/config/locales/ja.yml +20 -18
  44. data/config/locales/lb.yml +8 -13
  45. data/config/locales/lt.yml +52 -7
  46. data/config/locales/lv.yml +0 -16
  47. data/config/locales/nl.yml +6 -11
  48. data/config/locales/no.yml +1 -6
  49. data/config/locales/pl.yml +14 -5
  50. data/config/locales/pt-BR.yml +49 -6
  51. data/config/locales/pt.yml +1 -6
  52. data/config/locales/ro-RO.yml +1 -6
  53. data/config/locales/ru.yml +0 -17
  54. data/config/locales/sk.yml +1 -17
  55. data/config/locales/sl.yml +0 -5
  56. data/config/locales/sq-AL.yml +1 -0
  57. data/config/locales/sv.yml +22 -12
  58. data/config/locales/th-TH.yml +1 -0
  59. data/config/locales/tr-TR.yml +9 -11
  60. data/config/locales/uk.yml +0 -14
  61. data/config/locales/zh-CN.yml +0 -6
  62. data/config/locales/zh-TW.yml +0 -5
  63. data/db/migrate/20231027142329_change_default_value_for_decidim_endorsements.rb +11 -0
  64. data/db/seeds.rb +1 -0
  65. data/lib/decidim/core/test/shared_examples/comments_examples.rb +24 -0
  66. data/lib/decidim/core/test/shared_examples/errors.rb +2 -0
  67. data/lib/decidim/core/version.rb +1 -1
  68. data/lib/decidim/core.rb +1 -1
  69. data/lib/decidim/dependency_resolver.rb +14 -8
  70. data/lib/decidim/endorsable.rb +1 -1
  71. data/lib/decidim/exporters.rb +10 -1
  72. data/lib/tasks/upgrade/decidim_deduplicate_endorsements.rake +53 -0
  73. metadata +10 -9
  74. data/app/helpers/decidim/layout_helper.rb.orig +0 -225
  75. data/app/packs/stylesheets/decidim/modules/_dropdown_menu.scss +0 -9
  76. data/app/views/decidim/devise/registrations/new.html.erb.orig +0 -231
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7ddc4e551d59fc9b95f5121333870c4e91a77eb2f53d03f659d63e16bea7ca7f
4
- data.tar.gz: dd766575d88dfe729ce7f8ea151967642b40e875c0596443962d0a6d8d5cd101
3
+ metadata.gz: b439f283c43183815f29f97ff9bf9098c8378b8a5cb16191390bd874e83cbb05
4
+ data.tar.gz: 117c9e1d3d6f9ac3dc55c5984e717c384e5274dc198babddc8ea7a1efe29e863
5
5
  SHA512:
6
- metadata.gz: dcbcc2625fe80e646c9f5e05c0e187485004542bcb73c33978bd8f2b1f78f31c2e0a4f4dba6904ba0b660e5b4408977a21d13e0c02fe2d46cba8bdb13c399321
7
- data.tar.gz: a1abc1c25bfe4c99875d00822beeefeadb20bd214672772b1491d07e515ce3990b6b24c96d5400e4bc71d1accb8c8484d7e57c6ed006f63fd19e23f8378234ce
6
+ metadata.gz: 299d8bcecdf6084d93845ebcb256105c79077b2b6895f177dc22ddf296cf09973f92f5c425db5a078cb5e5eb9070f4e6ea6b3ad8e4c792236a6d567de7dc155d
7
+ data.tar.gz: 906b497e36d89c374d4f80114b5a6c4633d3a6da254832d26c8a9d22fa41c7dfc23fb5ce93ffcd1170e3e2f4caec1859c0e44c661a7dcc3567e31b75c969832c
@@ -77,7 +77,7 @@ module Decidim
77
77
  end
78
78
 
79
79
  def resource_path
80
- resource_locator(versioned_resource).path
80
+ Decidim::ResourceLocatorPresenter.new(versioned_resource).path
81
81
  end
82
82
  end
83
83
  end
@@ -13,7 +13,7 @@ module Decidim
13
13
  end
14
14
 
15
15
  def resource_path
16
- resource_locator(versioned_resource).path
16
+ Decidim::ResourceLocatorPresenter.new(versioned_resource).path
17
17
  end
18
18
 
19
19
  def i18n_changes_title
@@ -31,6 +31,8 @@ module Decidim
31
31
  else
32
32
  broadcast(:invalid)
33
33
  end
34
+ rescue ActiveRecord::RecordNotUnique
35
+ broadcast(:invalid)
34
36
  end
35
37
 
36
38
  private
@@ -31,7 +31,7 @@ module Decidim
31
31
  query = if @current_group.present?
32
32
  @resource.endorsements.where(decidim_user_group_id: @current_group&.id)
33
33
  else
34
- @resource.endorsements.where(author: @current_user, decidim_user_group_id: nil)
34
+ @resource.endorsements.where(author: @current_user, decidim_user_group_id: 0)
35
35
  end
36
36
  query.destroy_all
37
37
  end
@@ -37,7 +37,7 @@ module Decidim
37
37
  end
38
38
 
39
39
  on(:invalid) do
40
- flash.now[:alert] = @form.errors.full_messages.join(", ") if @form.errors.full_messages.any?
40
+ flash.now[:alert] = t("error", scope: "decidim.devise.registrations.create")
41
41
  render :new
42
42
  end
43
43
  end
@@ -35,7 +35,7 @@ module Decidim
35
35
  end
36
36
 
37
37
  def external_url
38
- @external_url ||= URI.parse(params[:external_url])
38
+ @external_url ||= URI.parse(URI::Parser.new.escape(params[:external_url]))
39
39
  end
40
40
  end
41
41
  end
@@ -12,7 +12,7 @@ module Decidim
12
12
  helper_method :activities, :resource_types, :user
13
13
 
14
14
  def index
15
- raise ActionController::RoutingError, "Not Found" if current_user != user
15
+ raise ActionController::RoutingError, "Not Found" unless user && current_user == user
16
16
  end
17
17
 
18
18
  private
@@ -24,7 +24,7 @@ module Decidim
24
24
  validates :nickname, presence: true, format: { with: Decidim::User::REGEXP_NICKNAME }
25
25
 
26
26
  validates :nickname, length: { maximum: Decidim::User.nickname_max_length, allow_blank: true }
27
- validates :password, confirmation: true
27
+ validates :password, confirmation: { message: I18n.t("errors.messages.password_confirmation_message") }
28
28
  validates :password, password: { name: :name, email: :email, username: :nickname }, if: -> { password.present? }
29
29
  validates :password_confirmation, presence: true, if: :password_present
30
30
  validates :avatar, passthru: { to: Decidim::User }
@@ -41,13 +41,5 @@ module Decidim
41
41
  def direct_message_types
42
42
  allow_public_contact ? "all" : "followed-only"
43
43
  end
44
-
45
- def user_is_moderator?(user)
46
- Decidim.participatory_space_manifests.map do |manifest|
47
- participatory_space_type = manifest.model_class_name.constantize
48
- return true if participatory_space_type.moderators(user.organization).exists?(id: user.id)
49
- end
50
- false
51
- end
52
44
  end
53
45
  end
@@ -17,7 +17,7 @@ module Decidim
17
17
  validates :name, presence: true, format: { with: Decidim::User::REGEXP_NAME }
18
18
  validates :nickname, presence: true, format: { with: Decidim::User::REGEXP_NICKNAME }, length: { maximum: Decidim::User.nickname_max_length }
19
19
  validates :email, presence: true, "valid_email_2/email": { disposable: true }
20
- validates :password, confirmation: true
20
+ validates :password, confirmation: { message: I18n.t("errors.messages.password_confirmation_message") }
21
21
  validates :password, password: { name: :name, email: :email, username: :nickname }
22
22
  validates :password_confirmation, presence: true
23
23
  validates :tos_agreement, allow_nil: false, acceptance: true
@@ -67,6 +67,8 @@ module Decidim
67
67
 
68
68
  # Returns an instance of ResourceLocatorPresenter with the given resource
69
69
  def resource_locator(resource)
70
+ return resource.resource_locator if resource.respond_to?(:resource_locator)
71
+
70
72
  ::Decidim::ResourceLocatorPresenter.new(resource)
71
73
  end
72
74
 
@@ -13,6 +13,9 @@ module Decidim
13
13
  save_or_upload_file(user, path)
14
14
 
15
15
  ExportMailer.data_portability_export(user, filename, password).deliver_later
16
+
17
+ # Deletes temporary file
18
+ File.delete(path)
16
19
  end
17
20
 
18
21
  private
@@ -11,6 +11,8 @@ module Decidim
11
11
  raise "Couldn't generate Open Data export" unless exporter.export.positive?
12
12
 
13
13
  organization.open_data_file.attach(io: File.open(path, "rb"), filename: organization.open_data_file_path)
14
+ # Deletes the temporary file file
15
+ File.delete(path)
14
16
  end
15
17
  end
16
18
  end
@@ -202,7 +202,7 @@ module Decidim
202
202
  end
203
203
 
204
204
  def admin_terms_accepted?
205
- return true if admin_terms_accepted_at
205
+ admin_terms_accepted_at.present?
206
206
  end
207
207
 
208
208
  # Whether this user can be verified against some authorization or not.
@@ -253,6 +253,14 @@ module Decidim
253
253
  Arel.sql(%{("decidim_users"."last_sign_in_at")::text})
254
254
  end
255
255
 
256
+ def moderator?
257
+ Decidim.participatory_space_manifests.map do |manifest|
258
+ participatory_space_type = manifest.model_class_name.constantize
259
+ return true if participatory_space_type.moderators(organization).exists?(id: id)
260
+ end
261
+ false
262
+ end
263
+
256
264
  protected
257
265
 
258
266
  # Overrides devise email required validation.
@@ -125,7 +125,10 @@ export default function attachGeocoding($input, options, callback) {
125
125
  $input.on("geocoder-suggest-coordinates.decidim", (_ev, coordinates) => {
126
126
  setCoordinates(coordinates);
127
127
  geocoded = true;
128
- callback(coordinates)
128
+ if (typeof callback === "function") {
129
+ callback(coordinates);
130
+ return;
131
+ }
129
132
  });
130
133
 
131
134
  // Set the initial values if the field defines the coordinates
@@ -34,26 +34,28 @@ $(() => {
34
34
  if (`${query}`.trim().length < queryMinLength) {
35
35
  return;
36
36
  }
37
-
37
+ // Changes to the autocomplete api call based on:
38
+ // https://developer.here.com/documentation/geocoding-search-api/migration_guide/migration-geocoder/topics-api/autocomplete.html
38
39
  currentSuggestionQuery = setTimeout(() => {
39
40
  $.ajax({
40
41
  method: "GET",
41
- url: "https://autocomplete.geocoder.ls.hereapi.com/6.2/suggest.json",
42
+ url: "https://autocomplete.search.hereapi.com/v1/autocomplete",
42
43
  data: {
43
44
  apiKey: config.apiKey,
44
- query: query,
45
- language: language
45
+ // eslint-disable-next-line
46
+ q: query,
47
+ lang: language
46
48
  },
47
49
  dataType: "json"
48
50
  }).done((resp) => {
49
- if (resp.suggestions) {
50
- return callback(resp.suggestions.map((item) => {
51
+ if (resp.items) {
52
+ return callback(resp.items.map((item) => {
51
53
  const label = generateAddressLabel(item.address, addressFormat);
52
54
 
53
55
  return {
54
56
  key: label,
55
57
  value: label,
56
- locationId: item.locationId
58
+ locationId: item.id
57
59
  }
58
60
  }));
59
61
  }
@@ -65,30 +67,24 @@ $(() => {
65
67
  $input.on("geocoder-suggest-select.decidim", (_ev, selectedItem) => {
66
68
  $.ajax({
67
69
  method: "GET",
68
- url: "https://geocoder.ls.hereapi.com/6.2/geocode.json",
70
+ url: "https://lookup.search.hereapi.com/v1/lookup",
69
71
  data: {
70
72
  apiKey: config.apiKey,
71
- gen: 9,
72
- jsonattributes: 1,
73
- locationid: selectedItem.locationId
73
+ id: selectedItem.locationId
74
74
  },
75
75
  dataType: "json"
76
76
  }).done((resp) => {
77
- if (!resp.response || !Array.isArray(resp.response.view) ||
78
- resp.response.view.length < 1
77
+ if (!resp || Object.keys(resp).length < 1
79
78
  ) {
80
79
  return;
81
80
  }
82
-
83
- const view = resp.response.view[0];
84
- if (!Array.isArray(view.result) || view.result.length < 1) {
85
- return;
81
+ const position = resp.position;
82
+ if (!position || !position.lat || !position.lng) {
83
+ return
86
84
  }
87
-
88
- const result = view.result[0];
89
85
  const coordinates = [
90
- result.location.displayPosition.latitude,
91
- result.location.displayPosition.longitude
86
+ position.lat,
87
+ position.lng
92
88
  ];
93
89
 
94
90
  $input.trigger(
@@ -59,7 +59,7 @@ $(() => {
59
59
  return {
60
60
  key: label,
61
61
  value: label,
62
- coordinates: item.geometry.coordinates
62
+ coordinates: item.geometry.coordinates.reverse()
63
63
  }
64
64
  }));
65
65
  }
@@ -45,7 +45,7 @@
45
45
  </label>
46
46
  </div>
47
47
 
48
- <% if @notifications_settings.user_is_moderator?(current_user) %>
48
+ <% if current_user.moderator? %>
49
49
  <p><strong><%= t(".administrators") %></strong></p>
50
50
  <div class="switch tiny switch-with-label email_on_moderations">
51
51
  <label>
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Empty line for playing nice with tpope/vim-rails
@@ -391,7 +391,7 @@ ar:
391
391
  request_confirmation_instructions: طلب تعليمات التأكيد
392
392
  title: تأكيد البريد الإلكتروني
393
393
  show:
394
- close_modal: إغلاق مشروط
394
+ close_modal: اغلاق النموذج
395
395
  block_user_mailer:
396
396
  notify:
397
397
  body_1: تم حظر الحساب الخاص بك.
@@ -514,9 +514,8 @@ ar:
514
514
  already_have_an_account?: هل لديك حساب؟
515
515
  newsletter: تلقي رسالة إخبارية من حين لآخر مع المعلومات ذات الصلة
516
516
  newsletter_title: الاتصال إذن
517
- nickname_help: الاسم المستعار الخاص بك في %{organization}. يمكن أن يحتوي فقط على أحرف وأرقام، و '-' و '_'.
517
+ nickname_help: الاسم المستعار الخاص بك في %{organization}. يمكن أن يحتوي فقط على أحرف وأرقام '-' و '_'.
518
518
  password_help: "%{minimun_characters} أحرف كحد أدنى، يجب أن لا تكون شائعة جدا (مثل 123456) ويجب أن تكون مختلفة عن اسمك المستعار وعن بريدك الإلكتروني."
519
- sign_in: تسجيل الدخول
520
519
  sign_up: انشئ حسابًا
521
520
  sign_up_as:
522
521
  legend: الاشتراك باسم
@@ -537,7 +536,7 @@ ar:
537
536
  newsletter_modal:
538
537
  buttons:
539
538
  check: تحقق واستمر
540
- close_modal: إغلاق مشروط
539
+ close_modal: اغلاق النموذج
541
540
  uncheck: إبقاءه غير مختار
542
541
  notice: |-
543
542
  <p>مهلا ، هل أنت متأكد أنك لا تريد تلقي رسالة إخبارية؟<br>
@@ -574,7 +573,7 @@ ar:
574
573
  success: تم تحميل الصورة بنجاح
575
574
  drag_and_drop_help: يمكن إضافة صور عن طريق سحبها وإسقاطها أو لصقها.
576
575
  endorsable:
577
- endorsements: موافقات
576
+ endorsements: الدعم والتأييد
578
577
  endorsements_count: عد أصوات التأييدات
579
578
  endorsements:
580
579
  identities:
@@ -921,7 +920,7 @@ ar:
921
920
  body_1: أنت على وشك زيارة رابط خارجي ونرجو منك أن تتحلى بالحذر فيما يتعلق بالمحتوى الموجود في الموقع الخارجي.
922
921
  body_2: الرجاء التحقق من الرابط الذي توشك على زيارته والتأكد من التعرف عليه كموقع آمن قبل المتابعة.
923
922
  cancel: إلغاء
924
- close_modal: إغلاق مشروط
923
+ close_modal: اغلاق النموذج
925
924
  proceed: المواصلة
926
925
  title: فتح رابط خارجي
927
926
  log:
@@ -1011,7 +1010,7 @@ ar:
1011
1010
  ok: حسناً
1012
1011
  index:
1013
1012
  ago: منذ
1014
- close: إغلاق مشروط
1013
+ close: اغلاق النموذج
1015
1014
  from: من
1016
1015
  groups: فِرَقي
1017
1016
  last_message: آخر رسالة
@@ -1143,7 +1142,6 @@ ar:
1143
1142
  proposals: اقتراحات
1144
1143
  proposals_explanation: تقديم مقترحات ، ودعم المقترحات الحالية وتعزيز التغييرات التي تريد رؤيتها.
1145
1144
  footer_sub_hero:
1146
- footer_sub_hero_body: دعونا نبني مجتمعًا أكثر انفتاحًا وشفافية وتعاونًا.<br /> انضموا وشاركوا وقرّروا.
1147
1145
  footer_sub_hero_headline: مرحبًا بكم على المنصة التشاركية لـ %{organization}.
1148
1146
  register: تسجيل
1149
1147
  hero:
@@ -1174,7 +1172,7 @@ ar:
1174
1172
  refuse:
1175
1173
  modal_body: إذا رفضت ، فلن تتمكن من استخدام النظام الأساسي ، يمكنك <a href="%{data_portability_path}">تنزيل بياناتك</a> و / أو <a href="%{delete_path}">حذف حسابك</a>.
1176
1174
  modal_btn_exit: سأراجعها لاحقًا
1177
- modal_close: إغلاق مشروط
1175
+ modal_close: اغلاق النموذج
1178
1176
  modal_title: هل ترفض حقًا الأحكام والشروط المحدثة؟
1179
1177
  required_review:
1180
1178
  alert: لقد قمنا بتحديث شروط الخدمة الخاصة بنا ، يرجى مراجعتها.
@@ -1268,7 +1266,7 @@ ar:
1268
1266
  future: مستقبل
1269
1267
  past: الماضي
1270
1268
  filters_small_view:
1271
- close_modal: إغلاق مشروط
1269
+ close_modal: اغلاق النموذج
1272
1270
  filter: منقي
1273
1271
  filter_by: مصنف بواسطة
1274
1272
  unfold: كشف
@@ -1564,8 +1562,6 @@ ar:
1564
1562
  updated: تم تحديث حسابك بنجاح.
1565
1563
  sessions:
1566
1564
  already_signed_out: تم الخروج بنجاح
1567
- new:
1568
- sign_in: تسجيل الدخول
1569
1565
  signed_in: تم تسجيل الدخول بنجاح
1570
1566
  signed_out: تم الخروج بنجاح
1571
1567
  shared:
@@ -1574,7 +1570,6 @@ ar:
1574
1570
  didn_t_receive_confirmation_instructions: لم تتلق تعليمات التأكيد؟
1575
1571
  didn_t_receive_unlock_instructions: لم تتلق تعليمات فتح؟
1576
1572
  forgot_your_password: نسيت رقمك السري؟
1577
- sign_in: تسجيل الدخول
1578
1573
  sign_in_with_provider: تسجيل الدخول مع %{provider}
1579
1574
  sign_up: انشئ حسابًا
1580
1575
  minimum_password_length:
@@ -300,8 +300,6 @@ bg:
300
300
  explanation_html: За да изпълните това действие, първо се идентифицирайте, но преди това потвърдете вашата ел. поща <strong>%{email}</strong>.
301
301
  request_confirmation_instructions: Заявка на инструкции за потвърждение
302
302
  title: Потвърдете Вашата ел. поща
303
- show:
304
- close_modal: Затвори прозорчето
305
303
  collapsible_list:
306
304
  hidden_elements_count:
307
305
  one: и още %{count}
@@ -398,7 +396,6 @@ bg:
398
396
  newsletter: Получавайте извънреден бюлетин с подходяща информация
399
397
  newsletter_title: Разрешение за контакт с Вас
400
398
  password_help: "Минимум %{minimun_characters} символа, не трябва да са разпространени (например, 123456) и трябва да са различни от вашите име и ел. поща."
401
- sign_in: Вход
402
399
  sign_up: Регистрация
403
400
  sign_up_as:
404
401
  legend: Регистрация като
@@ -417,7 +414,6 @@ bg:
417
414
  newsletter_modal:
418
415
  buttons:
419
416
  check: Маркирай и продължи
420
- close_modal: Затвори прозорчето
421
417
  notice: |-
422
418
  <p>Наистина ли не желаете да получавате писма с новини за дейностите в платформата?<br> Още веднъж преценете, дали да не поставите отметка по-долу.<br> Важно е понякога да получавате актуална информация. Винаги можете да се откажете от страницата с настройки.</p> <p>Когато това поле не е маркирано, може да пропуснете възможности за съвместна работа.<br> Ако все пак не желаете да Ви информираме за общите ни дела, уважаваме Вашето решение.</p> <p>Благодарим Ви, че прочетохте това!</p>
423
419
  title: Известия за новости
@@ -438,8 +434,6 @@ bg:
438
434
  this_application_will_not_be_able_to: 'Това приложение не може:'
439
435
  update_profile: Обновете профила си
440
436
  wants_to_use_your_account_html: "<strong>%{application_name}</strong> желае да ползва профила Ви"
441
- endorsable:
442
- endorsements: Одобрявания
443
437
  endorsement_buttons_cell:
444
438
  already_endorsed: Одобрен
445
439
  endorse: Одобрявам
@@ -751,9 +745,6 @@ bg:
751
745
  index:
752
746
  last_activity: Последна активност
753
747
  resource_type: Тип
754
- links:
755
- warning:
756
- close_modal: Затвори прозорчето
757
748
  log:
758
749
  base_presenter:
759
750
  create: "%{user_name} създаде %{resource_name}"
@@ -827,7 +818,6 @@ bg:
827
818
  error: Разговора не започна. Опитайте по-късно
828
819
  index:
829
820
  ago: преди
830
- close: Затвори прозорчето
831
821
  from: Oт
832
822
  groups: Моите Групи
833
823
  last_message: Последно съобщение
@@ -942,7 +932,6 @@ bg:
942
932
  proposals: Предложения
943
933
  proposals_explanation: Правете предложения, подкрепяйте съществуващите и обявете промените, които искате да видите.
944
934
  footer_sub_hero:
945
- footer_sub_hero_body: Нека изградим по-отворено, прозрачно и задружно общество.<br /> Присъединете се, участвайте и решавайте.
946
935
  footer_sub_hero_headline: Добре дошли в платформата за сътрудничество %{organization}!
947
936
  register: Регистрация
948
937
  hero:
@@ -973,7 +962,6 @@ bg:
973
962
  refuse:
974
963
  modal_body: Ако откажете, не може да използвате платформата, но можете да<a href="%{data_portability_path}">свалите данните си</a> и/или <a href="%{delete_path}">изтриете профила</a>.
975
964
  modal_btn_exit: Ще ги прегледам по-късно
976
- modal_close: Затвори прозорчето
977
965
  modal_title: Наистина ли отказвате обновените Общи условия?
978
966
  required_review:
979
967
  alert: Обновихме нашите Общи условия, моля прегледайте ги.
@@ -1050,7 +1038,6 @@ bg:
1050
1038
  future: Бъдещи
1051
1039
  past: Минали
1052
1040
  filters_small_view:
1053
- close_modal: Затвори прозорчето
1054
1041
  filter: Филтър
1055
1042
  filter_by: Филтър по
1056
1043
  unfold: Разгъване
@@ -1287,8 +1274,6 @@ bg:
1287
1274
  updated: Профилът Ви беше обновен успешно.
1288
1275
  sessions:
1289
1276
  already_signed_out: Излязохте успешно.
1290
- new:
1291
- sign_in: Вход
1292
1277
  signed_in: Влязохте успешно.
1293
1278
  signed_out: Излязохте успешно.
1294
1279
  shared:
@@ -1297,7 +1282,6 @@ bg:
1297
1282
  didn_t_receive_confirmation_instructions: Не получихте инструкции за потвърждение?
1298
1283
  didn_t_receive_unlock_instructions: Не получихте инструкции за отключване?
1299
1284
  forgot_your_password: Забравили сте паролата си?
1300
- sign_in: Вход
1301
1285
  sign_in_with_provider: Влез със %{provider}
1302
1286
  sign_up: Регистрация
1303
1287
  minimum_password_length:
@@ -490,6 +490,8 @@ ca:
490
490
  subtitle: Si us plau, omple el següent formulari per tal de completar la teva inscripció
491
491
  username_help: Nom públic que apareix als teus missatges. Amb l'objectiu de garantir l'anonimat, pot ser qualsevol nom.
492
492
  registrations:
493
+ create:
494
+ error: S'ha produït un error en crear el teu compte.
493
495
  new:
494
496
  already_have_an_account?: Ja tens un compte?
495
497
  newsletter: Vull rebre un butlletí ocasional amb informació rellevant
@@ -1126,7 +1128,7 @@ ca:
1126
1128
  proposals: Propostes
1127
1129
  proposals_explanation: Realitza propostes, dóna suport a les ja existents i promociona els canvis que vols veure.
1128
1130
  footer_sub_hero:
1129
- footer_sub_hero_body: Construïm una societat més oberta, transparent i col·laborativa.<br />Uneix-te, participa i decideix.
1131
+ footer_sub_hero_body: Construïm una societat més oberta, transparent i col·laborativa.<br /> Uneix-te, participa i decideix.
1130
1132
  footer_sub_hero_headline: Benvinguda a la plataforma participativa %{organization}.
1131
1133
  register: Registra't
1132
1134
  hero:
@@ -1258,7 +1260,7 @@ ca:
1258
1260
  close_modal: Tancar el modal
1259
1261
  filter: Filtra
1260
1262
  filter_by: Filtra per
1261
- unfold: Desplega
1263
+ unfold: Desplegar
1262
1264
  results:
1263
1265
  results:
1264
1266
  one: "%{count} resultat"
@@ -1327,7 +1329,7 @@ ca:
1327
1329
  label: 'Resultats per pàgina:'
1328
1330
  title: Seleccionar el nombre de resultats per pàgina
1329
1331
  share_modal:
1330
- close_window: Tanca la finestra
1332
+ close_window: Tancar finestra
1331
1333
  copy_share_link: Còpia
1332
1334
  copy_share_link_clarification: Copia l'enllaç al porta-retalls
1333
1335
  copy_share_link_copied: Copiat!
@@ -1550,7 +1552,7 @@ ca:
1550
1552
  sessions:
1551
1553
  already_signed_out: Sessió finalitzada correctament.
1552
1554
  new:
1553
- sign_in: Iniciar sessió
1555
+ sign_in: Entra
1554
1556
  signed_in: Sessió iniciada correctament.
1555
1557
  signed_out: S'ha iniciat la sessió correctament.
1556
1558
  shared:
@@ -1559,7 +1561,7 @@ ca:
1559
1561
  didn_t_receive_confirmation_instructions: No has rebut instruccions de confirmació?
1560
1562
  didn_t_receive_unlock_instructions: No has rebut instruccions de desbloqueig?
1561
1563
  forgot_your_password: Has oblidat la teva contrasenya?
1562
- sign_in: Iniciar sessió
1564
+ sign_in: Entra
1563
1565
  sign_in_with_provider: Inicia sessió amb %{provider}
1564
1566
  sign_up: Registra't
1565
1567
  minimum_password_length:
@@ -1591,6 +1593,7 @@ ca:
1591
1593
  not_saved:
1592
1594
  one: 'S''ha produït un error en processar la teva sol·licitud:'
1593
1595
  other: 'S''han produït múltiples errors en processar la vostra sol·licitud:'
1596
+ password_confirmation_message: '"Confirma la teva contrasenya" no coincideix amb la Contrasenya'
1594
1597
  too_many_marks: Estàs fent servir massa signes de puntuació consecutius (p. ex. i?)
1595
1598
  too_much_caps: Estàs utilitzant massa lletres majúscules (més del 25% del text)
1596
1599
  too_short: és massa curt (menys %{count} caràcters)