avo 2.44.0 → 2.45.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of avo might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/app/components/avo/index/resource_table_component.html.erb +2 -2
- data/app/components/avo/index/resource_table_component.rb +16 -0
- data/app/components/avo/paginator_component.html.erb +29 -40
- data/app/components/avo/paginator_component.rb +18 -0
- data/app/components/avo/views/resource_edit_component.html.erb +6 -4
- data/app/controllers/avo/application_controller.rb +0 -1
- data/app/controllers/avo/associations_controller.rb +1 -1
- data/app/controllers/avo/base_controller.rb +8 -9
- data/app/javascript/js/controllers/action_controller.js +2 -2
- data/app/views/avo/partials/_flash_alerts.turbo_stream.erb +1 -1
- data/config/i18n-tasks.yml +1 -1
- data/config/initializers/pagy.rb +2 -0
- data/lib/avo/base_action.rb +7 -5
- data/lib/avo/base_resource.rb +1 -0
- data/lib/avo/concerns/pagination.rb +53 -0
- data/lib/avo/version.rb +1 -1
- data/lib/generators/avo/templates/locales/avo.ar.yml +5 -5
- data/lib/generators/avo/templates/locales/avo.en.yml +2 -0
- data/lib/generators/avo/templates/locales/avo.es.yml +126 -0
- data/lib/generators/avo/templates/locales/avo.fr.yml +2 -0
- data/lib/generators/avo/templates/locales/avo.nb.yml +2 -0
- data/lib/generators/avo/templates/locales/avo.nn.yml +2 -0
- data/lib/generators/avo/templates/locales/avo.pt-BR.yml +2 -0
- data/lib/generators/avo/templates/locales/avo.pt.yml +2 -0
- data/lib/generators/avo/templates/locales/avo.ro.yml +2 -0
- data/lib/generators/avo/templates/locales/avo.tr.yml +2 -0
- data/public/avo-assets/avo.base.js +1 -1
- data/public/avo-assets/avo.base.js.map +2 -2
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3eeaf7c4479bd7cd5c0e45ca017ab8527a0d0ddf5fe625bc0bee728d5be654eb
|
4
|
+
data.tar.gz: 6f8538be2082861d11a2c150cd670733978d8631885aa7693c0d6b9770a97535
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 48a019b6179859de05f19839922ae41f391f08112f436c0946a526c5b36bc027855f5220c118c0588c66fecaea0d5ba59978d98803b1311884261f472f267efc
|
7
|
+
data.tar.gz: a5e00b21b9c62e5825718aec9bff93d8759b67f318edd93ba488a3f2caa2d7af3d7143f25917b6d475557b5d52648dc8f23bdb09d95194bc8278531be653e722
|
data/Gemfile.lock
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
<div class="absolute z-30 w-full ml-10 pt-px hidden" data-item-select-all-target="selectAllOverlay">
|
12
12
|
<div class="bg-white flex items-center h-9 mt-0.5">
|
13
13
|
<div class="mt-1.5" data-item-select-all-target="unselectedMessage">
|
14
|
-
<%=
|
14
|
+
<%= selected_page_label %>
|
15
15
|
<%= a_link request.url,
|
16
16
|
size: :xs,
|
17
17
|
color: :primary,
|
@@ -22,7 +22,7 @@
|
|
22
22
|
<% end %>
|
23
23
|
</div>
|
24
24
|
<div class="mt-1.5" data-item-select-all-target="selectedMessage" class="hidden">
|
25
|
-
<%=
|
25
|
+
<%= selected_all_label %>
|
26
26
|
<%= a_link request.url,
|
27
27
|
size: :xs,
|
28
28
|
color: :primary,
|
@@ -22,4 +22,20 @@ class Avo::Index::ResourceTableComponent < ViewComponent::Base
|
|
22
22
|
purpose: :select_all
|
23
23
|
)
|
24
24
|
end
|
25
|
+
|
26
|
+
def selected_page_label
|
27
|
+
if @resource.pagination_type.countless?
|
28
|
+
t "avo.x_records_selected_from_page_html", selected: pagy.in
|
29
|
+
else
|
30
|
+
t "avo.x_records_selected_from_a_total_of_x_html", selected: pagy.in, count: pagy.count
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def selected_all_label
|
35
|
+
if @resource.pagination_type.countless?
|
36
|
+
t "avo.records_selected_from_all_pages_html"
|
37
|
+
else
|
38
|
+
t "avo.x_records_selected_from_all_pages_html", count: pagy.count
|
39
|
+
end
|
40
|
+
end
|
25
41
|
end
|
@@ -1,47 +1,36 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
<div class="flex items-center">
|
17
|
-
<%= select_tag 'per_page',
|
18
|
-
options_for_select(per_page_options, index_params[:per_page]),
|
19
|
-
class: 'appearance-none inline-flex bg-white-100 disabled:bg-white-400 disabled:cursor-not-allowed focus:bg-white text-slate-700 disabled:text-slate-600 rounded-md py-1 px-2 leading-tight border border-slate-300 outline-none focus:border-slate-400 outline w-16 mr-1 text-sm',
|
20
|
-
data: {
|
21
|
-
'turbo-frame': turbo_frame,
|
22
|
-
'per-page-target': 'selector',
|
23
|
-
action: 'change->per-page#reload'
|
24
|
-
}
|
25
|
-
%> <%= t('avo.per_page').downcase %>
|
26
|
-
</div>
|
27
|
-
<% per_page_options.each do |option| %>
|
28
|
-
<%= link_to "Change to #{option} items per page", change_items_per_page_url(option), class: 'hidden', 'data-per-page-option': option, 'data-turbo-frame': turbo_frame %>
|
29
|
-
<% end %>
|
1
|
+
<div class="flex flex-col sm:flex-row items-center justify-between aborder-t aborder-slate-200 rounded-xl space-y-2 sm:space-y-0">
|
2
|
+
<div class="flex-2 sm:flex sm:items-center sm:justify-between">
|
3
|
+
<div>
|
4
|
+
<div class="text-sm leading-5 text-slate-600 flex items-center">
|
5
|
+
<div data-controller="per-page">
|
6
|
+
<div class="flex items-center">
|
7
|
+
<%= select_tag 'per_page',
|
8
|
+
options_for_select(per_page_options, index_params[:per_page]),
|
9
|
+
class: 'appearance-none inline-flex bg-white-100 disabled:bg-white-400 disabled:cursor-not-allowed focus:bg-white text-slate-700 disabled:text-slate-600 rounded-md py-1 px-2 leading-tight border border-slate-300 outline-none focus:border-slate-400 outline w-16 mr-1 text-sm',
|
10
|
+
data: {
|
11
|
+
'turbo-frame': turbo_frame,
|
12
|
+
'per-page-target': 'selector',
|
13
|
+
action: 'change->per-page#reload'
|
14
|
+
}
|
15
|
+
%> <%= t('avo.per_page').downcase %>
|
30
16
|
</div>
|
17
|
+
<% per_page_options.each do |option| %>
|
18
|
+
<%= link_to "Change to #{option} items per page", change_items_per_page_url(option), class: 'hidden', 'data-per-page-option': option, 'data-turbo-frame': turbo_frame %>
|
19
|
+
<% end %>
|
31
20
|
</div>
|
32
21
|
</div>
|
33
22
|
</div>
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
23
|
+
</div>
|
24
|
+
<div class="flex">
|
25
|
+
<div class="flex-2 sm:flex sm:items-center sm:justify-between space-y-2 sm:space-y-0 text-center sm:text-left">
|
26
|
+
<% if @resource.pagination_type.default? %>
|
27
|
+
<div class="text-sm text-slate-600 mr-4"><%== helpers.pagy_info @pagy %></div>
|
28
|
+
<% end %>
|
39
29
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
</div>
|
30
|
+
<% if pagy.pages > 1 %>
|
31
|
+
<%# @todo: add first & last page. make the first and last buttons rounded %>
|
32
|
+
<%== helpers.pagy_nav @pagy %>
|
33
|
+
<% end %>
|
45
34
|
</div>
|
46
35
|
</div>
|
47
|
-
|
36
|
+
</div>
|
@@ -24,4 +24,22 @@ class Avo::PaginatorComponent < ViewComponent::Base
|
|
24
24
|
helpers.resources_path(resource: resource, per_page: option, keep_query_params: true, page: 1)
|
25
25
|
end
|
26
26
|
end
|
27
|
+
|
28
|
+
def render?
|
29
|
+
return false if discreet_pagination && pagy.pages <= 1
|
30
|
+
|
31
|
+
@pagy.items > 0
|
32
|
+
end
|
33
|
+
|
34
|
+
def per_page_options
|
35
|
+
@per_page_options ||= begin
|
36
|
+
options = [*Avo.configuration.per_page_steps, Avo.configuration.per_page.to_i, index_params[:per_page].to_i]
|
37
|
+
|
38
|
+
if parent_model.present?
|
39
|
+
options.prepend Avo.configuration.via_per_page
|
40
|
+
end
|
41
|
+
|
42
|
+
options.sort.uniq
|
43
|
+
end
|
44
|
+
end
|
27
45
|
end
|
@@ -81,10 +81,12 @@
|
|
81
81
|
<% if Avo.configuration.buttons_on_form_footers %>
|
82
82
|
<% c.with_footer_tools do %>
|
83
83
|
<div class="mt-4">
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
84
|
+
<% if back_path.present? %>
|
85
|
+
<%= a_link back_path,
|
86
|
+
style: :text,
|
87
|
+
icon: 'arrow-left' do %>
|
88
|
+
<%= t('avo.cancel').capitalize %>
|
89
|
+
<% end %>
|
88
90
|
<% end %>
|
89
91
|
<% if can_see_the_save_button? %>
|
90
92
|
<%= a_button color: :primary,
|
@@ -81,7 +81,7 @@ module Avo
|
|
81
81
|
association_name = BaseResource.valid_association_name(@model, params[:related_name])
|
82
82
|
|
83
83
|
if reflection_class == "HasManyReflection"
|
84
|
-
@model.send(association_name).
|
84
|
+
@model.send(association_name).delete @attachment_model
|
85
85
|
else
|
86
86
|
@model.send("#{association_name}=", nil)
|
87
87
|
end
|
@@ -65,14 +65,7 @@ module Avo
|
|
65
65
|
).apply_query request, @query, filter_value
|
66
66
|
end
|
67
67
|
|
68
|
-
|
69
|
-
|
70
|
-
# Reset open filters when a user navigates to a new page
|
71
|
-
extra_pagy_params[:keep_filters_panel_open] = if params[:keep_filters_panel_open] == "1"
|
72
|
-
"0"
|
73
|
-
end
|
74
|
-
|
75
|
-
@pagy, @models = pagy(@query, items: @index_params[:per_page], link_extra: "data-turbo-frame=\"#{params[:turbo_frame]}\"", size: [1, 2, 2, 1], params: extra_pagy_params)
|
68
|
+
apply_pagination
|
76
69
|
|
77
70
|
# Create resources for each model
|
78
71
|
@resources = @models.map do |model|
|
@@ -504,8 +497,10 @@ module Avo
|
|
504
497
|
end
|
505
498
|
|
506
499
|
def destroy_fail_action
|
500
|
+
flash[:error] = destroy_fail_message
|
501
|
+
|
507
502
|
respond_to do |format|
|
508
|
-
format.
|
503
|
+
format.turbo_stream { render partial: "avo/partials/flash_alerts" }
|
509
504
|
end
|
510
505
|
end
|
511
506
|
|
@@ -541,5 +536,9 @@ module Avo
|
|
541
536
|
def set_pagy_locale
|
542
537
|
@pagy_locale = locale.to_s || Avo.configuration.locale || "en"
|
543
538
|
end
|
539
|
+
|
540
|
+
def apply_pagination
|
541
|
+
@pagy, @models = @resource.apply_pagination(index_params: @index_params, query: @query)
|
542
|
+
end
|
544
543
|
end
|
545
544
|
end
|
@@ -2,7 +2,7 @@ import { Controller } from '@hotwired/stimulus'
|
|
2
2
|
import { castBoolean } from '../helpers/cast_boolean'
|
3
3
|
|
4
4
|
export default class extends Controller {
|
5
|
-
static targets = ['controllerDiv', 'resourceIds', '
|
5
|
+
static targets = ['controllerDiv', 'resourceIds', 'submit', 'selectedAllQuery']
|
6
6
|
|
7
7
|
connect() {
|
8
8
|
this.resourceIdsTarget.value = this.resourceIds
|
@@ -13,7 +13,7 @@ export default class extends Controller {
|
|
13
13
|
}
|
14
14
|
|
15
15
|
if (this.noConfirmation) {
|
16
|
-
this.
|
16
|
+
this.submitTarget.click()
|
17
17
|
} else {
|
18
18
|
this.controllerDivTarget.classList.remove('hidden')
|
19
19
|
}
|
data/config/i18n-tasks.yml
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
# The "main" locale.
|
4
4
|
base_locale: en
|
5
5
|
## All available locales are inferred from the data by default. Alternatively, specify them explicitly:
|
6
|
-
locales: [en, fr, nb, nn, pt-BR, pt, ro, tr]
|
6
|
+
locales: [ar, en, es, fr, nb, nn, pt-BR, pt, ro, tr]
|
7
7
|
## Reporting locale, default: en. Available: en, ru.
|
8
8
|
# internal_locale: en
|
9
9
|
|
data/config/initializers/pagy.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require "pagy/extras/trim"
|
2
|
+
require "pagy/extras/countless"
|
2
3
|
|
3
4
|
# For locales without native pagy i18n support
|
4
5
|
def pagy_locale_path(file_name)
|
@@ -7,6 +8,7 @@ end
|
|
7
8
|
|
8
9
|
extra_locales = [
|
9
10
|
{locale: "en"},
|
11
|
+
{locale: "es"},
|
10
12
|
{locale: "fr"},
|
11
13
|
{locale: "nb"},
|
12
14
|
{locale: "pt-BR"},
|
data/lib/avo/base_action.rb
CHANGED
@@ -32,19 +32,21 @@ module Avo
|
|
32
32
|
def form_data_attributes
|
33
33
|
# We can't respond with a file download from Turbo se we disable it on the form
|
34
34
|
if may_download_file
|
35
|
-
{turbo: turbo || false, remote: false
|
35
|
+
{turbo: turbo || false, remote: false}
|
36
36
|
else
|
37
|
-
{turbo: turbo, turbo_frame: :_top
|
37
|
+
{turbo: turbo, turbo_frame: :_top}.compact
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
41
41
|
# We can't respond with a file download from Turbo se we disable close the modal manually after a while (it's a hack, we know)
|
42
42
|
def submit_button_data_attributes
|
43
|
+
attributes = { action_target: "submit" }
|
44
|
+
|
43
45
|
if may_download_file
|
44
|
-
|
45
|
-
else
|
46
|
-
{}
|
46
|
+
attributes[:action] = "click->modal#delayedClose"
|
47
47
|
end
|
48
|
+
|
49
|
+
attributes
|
48
50
|
end
|
49
51
|
end
|
50
52
|
|
data/lib/avo/base_resource.rb
CHANGED
@@ -8,6 +8,7 @@ module Avo
|
|
8
8
|
include Avo::Concerns::HasEditableControls
|
9
9
|
include Avo::Concerns::HasStimulusControllers
|
10
10
|
include Avo::Concerns::ModelClassConstantized
|
11
|
+
include Avo::Concerns::Pagination
|
11
12
|
|
12
13
|
delegate :view_context, to: ::Avo::App
|
13
14
|
delegate :current_user, to: ::Avo::App
|
@@ -0,0 +1,53 @@
|
|
1
|
+
module Avo
|
2
|
+
module Concerns
|
3
|
+
module Pagination
|
4
|
+
extend ActiveSupport::Concern
|
5
|
+
|
6
|
+
included do
|
7
|
+
include Pagy::Backend
|
8
|
+
|
9
|
+
class_attribute :pagination, default: {}
|
10
|
+
|
11
|
+
PAGINATION_METHOD = {
|
12
|
+
default: :pagy,
|
13
|
+
countless: :pagy_countless,
|
14
|
+
} unless defined? PAGINATION_METHOD
|
15
|
+
|
16
|
+
PAGINATION_DEFAULTS = {
|
17
|
+
type: :default,
|
18
|
+
size: [1, 2, 2, 1],
|
19
|
+
} unless defined? PAGINATION_DEFAULTS
|
20
|
+
end
|
21
|
+
|
22
|
+
def pagination_type
|
23
|
+
@pagination_type ||= ActiveSupport::StringInquirer.new(pagination_hash[:type].to_s)
|
24
|
+
end
|
25
|
+
|
26
|
+
def apply_pagination(index_params:, query:)
|
27
|
+
extra_pagy_params = {}
|
28
|
+
|
29
|
+
# Reset open filters when a user navigates to a new page
|
30
|
+
extra_pagy_params[:keep_filters_panel_open] = if params[:keep_filters_panel_open] == "1"
|
31
|
+
"0"
|
32
|
+
end
|
33
|
+
|
34
|
+
send PAGINATION_METHOD[pagination_type.to_sym],
|
35
|
+
query,
|
36
|
+
items: index_params[:per_page],
|
37
|
+
link_extra: "data-turbo-frame=\"#{params[:turbo_frame]}\"",
|
38
|
+
params: extra_pagy_params,
|
39
|
+
size: pagination_hash[:size]
|
40
|
+
end
|
41
|
+
|
42
|
+
private
|
43
|
+
|
44
|
+
def pagination_hash
|
45
|
+
@pagination ||= PAGINATION_DEFAULTS.merge Avo::ExecutionContext.new(
|
46
|
+
target: pagination,
|
47
|
+
resource: self,
|
48
|
+
view: @view
|
49
|
+
).handle
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
data/lib/avo/version.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
ar:
|
3
3
|
avo:
|
4
|
-
action_ran_successfully:
|
4
|
+
action_ran_successfully: تم تنفيذ الأمر بنجاح!
|
5
5
|
actions: أوامر
|
6
6
|
and_x_other_resources: و %{count} موارد أخرى
|
7
7
|
are_you_sure: هل أنت متأكد؟
|
@@ -10,8 +10,8 @@ ar:
|
|
10
10
|
attach: ربط
|
11
11
|
attach_and_attach_another: ربط وربط آخر
|
12
12
|
attach_item: ربط %{item}
|
13
|
-
attachment_class_attached:
|
14
|
-
attachment_class_detached:
|
13
|
+
attachment_class_attached: "%{attachment_class} تم ربط"
|
14
|
+
attachment_class_detached: "%{attachment_class} تم فصل"
|
15
15
|
attachment_destroyed: تم حذف المرفق
|
16
16
|
cancel: إلغاء
|
17
17
|
choose_a_country: اختر دولة
|
@@ -80,6 +80,7 @@ ar:
|
|
80
80
|
to_top: حرك السجل للأعلى بشكل كامل
|
81
81
|
per_page: لكل صفحة
|
82
82
|
prev_page: الصفحة السابقة
|
83
|
+
records_selected_from_all_pages_html: جميع السجلات مختارة من جميع الصفحات
|
83
84
|
remove_selection: إزالة التحديد
|
84
85
|
reset_filters: إعادة تعيين الفلاتر
|
85
86
|
resource_created: تم إنشاء السجل
|
@@ -121,6 +122,5 @@ ar:
|
|
121
122
|
zero: لا توجد عناصر إضافية
|
122
123
|
x_records_selected_from_a_total_of_x_html: <span class="font-bold text-gray-700">%{selected}</span> السجلات المحددة في هذه الصفحة من إجمالي<span class="font-bold text-gray-700">%{count}</span>
|
123
124
|
x_records_selected_from_all_pages_html: <span class="font-bold text-gray-700">%{count}</span> السجلات المحددة من كل الصفحات
|
125
|
+
x_records_selected_from_page_html: <span class="font-bold text-gray-700">%{selected}</span> السجلات المختارة في هذه الصفحة
|
124
126
|
you_missed_something_check_form: ربما نسيت شيئًا، يرجى التحقق من البيانات.
|
125
|
-
|
126
|
-
|
@@ -80,6 +80,7 @@ en:
|
|
80
80
|
to_top: Move record to top
|
81
81
|
per_page: Per page
|
82
82
|
prev_page: Previous page
|
83
|
+
records_selected_from_all_pages_html: All records selected from all pages
|
83
84
|
remove_selection: Remove selection
|
84
85
|
reset_filters: Reset filters
|
85
86
|
resource_created: Record created
|
@@ -121,4 +122,5 @@ en:
|
|
121
122
|
zero: no more items
|
122
123
|
x_records_selected_from_a_total_of_x_html: <span class="font-bold text-gray-700">%{selected}</span> records selected on this page from a total of <span class="font-bold text-gray-700">%{count}</span>
|
123
124
|
x_records_selected_from_all_pages_html: <span class="font-bold text-gray-700">%{count}</span> records selected from all pages
|
125
|
+
x_records_selected_from_page_html: <span class="font-bold text-gray-700">%{selected}</span> records selected on this page
|
124
126
|
you_missed_something_check_form: You might have missed something. Please check the form.
|
@@ -0,0 +1,126 @@
|
|
1
|
+
---
|
2
|
+
es:
|
3
|
+
avo:
|
4
|
+
action_ran_successfully: "¡Acción ejecutada con éxito!"
|
5
|
+
actions: Acciones
|
6
|
+
and_x_other_resources: y %{count} otros recursos
|
7
|
+
are_you_sure: "¿Estás seguro?"
|
8
|
+
are_you_sure_detach_item: "¿Estás seguro de que quieres separar este/a %{item}?"
|
9
|
+
are_you_sure_you_want_to_run_this_option: "¿Estás seguro de que quieres ejectuar esta acción?"
|
10
|
+
attach: Adjuntar
|
11
|
+
attach_and_attach_another: Adjuntar y adjuntar otro
|
12
|
+
attach_item: Adjuntar %{item}
|
13
|
+
attachment_class_attached: "%{attachment_class} adjuntado/a."
|
14
|
+
attachment_class_detached: "%{attachment_class} adjuntado/a."
|
15
|
+
attachment_destroyed: Adjunto eliminado
|
16
|
+
cancel: Cancelar
|
17
|
+
choose_a_country: Elige un país
|
18
|
+
choose_an_option: Elige una opción
|
19
|
+
choose_item: Elige %{item}
|
20
|
+
clear_value: Borrar el valor
|
21
|
+
click_to_reveal_filters: Pulsa para mostrar los filtros
|
22
|
+
confirm: Confirmar
|
23
|
+
create_new_item: Crear nuevo/a %{item}
|
24
|
+
dashboard: Panel
|
25
|
+
dashboards: Paneles
|
26
|
+
delete: eliminar
|
27
|
+
delete_file: Eliminar fichero
|
28
|
+
delete_item: Eliminar %{item}
|
29
|
+
detach_item: separar %{item}
|
30
|
+
details: detalles
|
31
|
+
download: Descargar
|
32
|
+
download_file: Descargar fichero
|
33
|
+
download_item: Descargar %{item}
|
34
|
+
edit: editar
|
35
|
+
edit_item: editar %{item}
|
36
|
+
empty_dashboard_message: Añadir tarjetas a este panel
|
37
|
+
failed: Fallo
|
38
|
+
failed_to_find_attachment: No se ha encontrado el archivo adjunto
|
39
|
+
failed_to_load: No se ha podido cargar
|
40
|
+
field_translations:
|
41
|
+
file:
|
42
|
+
one: fichero
|
43
|
+
other: ficheros
|
44
|
+
zero: ficheros
|
45
|
+
people:
|
46
|
+
one: persona
|
47
|
+
other: personas
|
48
|
+
zero: personas
|
49
|
+
filter_by: Filtrar por
|
50
|
+
filters: Filtros
|
51
|
+
go_back: Volver
|
52
|
+
grid_view: Vista en cuardrícula
|
53
|
+
hide_content: Ocultar contenido
|
54
|
+
home: Inicio
|
55
|
+
key_value_field:
|
56
|
+
add_row: Añadir fila
|
57
|
+
delete_row: Eliminar fila
|
58
|
+
key: Clave
|
59
|
+
value: Valor
|
60
|
+
list_is_empty: La lista está vacía
|
61
|
+
loading: Cargando
|
62
|
+
more: Más
|
63
|
+
new: nuevo/a
|
64
|
+
next_page: Página siguiente
|
65
|
+
no_cards_present: No hay tarjetas
|
66
|
+
no_item_found: No se ha encontrado ningún elemento
|
67
|
+
no_options_available: No hay opciones disponibles
|
68
|
+
no_related_item_found: No se ha encontrado ningún elemento relacionado
|
69
|
+
not_authorized: No estás autorizado/a a realizar esta acción.
|
70
|
+
number_of_items:
|
71
|
+
one: un/a %{item}
|
72
|
+
other: "%{count} %{item}"
|
73
|
+
zero: ningún/a %{item}
|
74
|
+
oops_nothing_found: Oops! No se ha encontrado nada...
|
75
|
+
order:
|
76
|
+
higher: Mover arriba
|
77
|
+
lower: Mover abajo
|
78
|
+
reorder_record: Reordenar registro
|
79
|
+
to_bottom: Mover abajo del todo
|
80
|
+
to_top: Mover arriba del todo
|
81
|
+
per_page: Por página
|
82
|
+
prev_page: Página anterior
|
83
|
+
records_selected_from_all_pages_html: Todos los registros seleccionados de todas las páginas.
|
84
|
+
remove_selection: Quitar la selección
|
85
|
+
reset_filters: Reiniciar filtros
|
86
|
+
resource_created: Recurso creado
|
87
|
+
resource_destroyed: Recurso eliminado
|
88
|
+
resource_translations:
|
89
|
+
team_members:
|
90
|
+
one: miembro del equipo
|
91
|
+
other: miembros del equipo
|
92
|
+
zero: miembros del equipo
|
93
|
+
user:
|
94
|
+
one: usuario/a
|
95
|
+
other: usuarios/as
|
96
|
+
zero: usuarios/as
|
97
|
+
resource_updated: Recurso actualizado
|
98
|
+
resources: Recursos
|
99
|
+
run: Ejecutar
|
100
|
+
save: Guardar
|
101
|
+
search:
|
102
|
+
cancel_button: Cancelar
|
103
|
+
placeholder: Buscar
|
104
|
+
select_all: Seleccionar todo
|
105
|
+
select_all_matching: Seleccionar todas las coincidencias
|
106
|
+
select_item: Selecionar elemento
|
107
|
+
show_content: Mostrar contenido
|
108
|
+
sign_out: Salir
|
109
|
+
switch_to_view: Cambiar a la vista %{view_type}
|
110
|
+
table_view: Vista en tabla
|
111
|
+
tools: Herramientas
|
112
|
+
type_to_search: Escribe para buscar.
|
113
|
+
unauthorized: No autorizado
|
114
|
+
undo: deshacer
|
115
|
+
view: Vista
|
116
|
+
view_item: ver %{item}
|
117
|
+
was_successfully_created: se ha creado con éxito
|
118
|
+
was_successfully_updated: se ha actualizado con éxito
|
119
|
+
x_items_more:
|
120
|
+
one: un elemento más
|
121
|
+
other: "%{count} elementos más"
|
122
|
+
zero: ningún elemento más
|
123
|
+
x_records_selected_from_a_total_of_x_html: <span class="font-bold text-gray-700">%{selected}</span> registros seleccionados en esta página de un total de <span class="font-bold text-gray-700">%{count}</span>
|
124
|
+
x_records_selected_from_all_pages_html: <span class="font-bold text-gray-700">%{count}</span> registros seleccionados en todas las páginas
|
125
|
+
x_records_selected_from_page_html: <span class="font-bold text-gray-700">%{selected}</span> registros seleccionados en esta página
|
126
|
+
you_missed_something_check_form: Es posible que hayas pasado algo por alto. Comprueba el formulario.
|
@@ -80,6 +80,7 @@ fr:
|
|
80
80
|
to_top: Déplacer tout en haut
|
81
81
|
per_page: Par page
|
82
82
|
prev_page: Page précédente
|
83
|
+
records_selected_from_all_pages_html: tous les éléments sélectionnés de toutes les pages
|
83
84
|
remove_selection: Supprimer la sélection
|
84
85
|
reset_filters: Réinitialiser les filtres
|
85
86
|
resource_created: Ressource créee
|
@@ -117,4 +118,5 @@ fr:
|
|
117
118
|
zero: aucun élément supplémentaire
|
118
119
|
x_records_selected_from_a_total_of_x_html: <span class="font-bold text-gray-700">%{selected}</span> enregistrements sélectionnés sur cette page sur un total de <span class="font-bold text-gray-700">%{count}</span>
|
119
120
|
x_records_selected_from_all_pages_html: <span class="font-bold text-gray-700">%{count}</span> enregistrements sélectionnés dans toutes les pages
|
121
|
+
x_records_selected_from_page_html: <span class="font-bold text-gray-700">%{selected}</span> éléments sélectionnés de cette page
|
120
122
|
you_missed_something_check_form: Vous avez peut-être oublié quelque chose. Veuillez vérifier le formulaire
|
@@ -80,6 +80,7 @@ nb:
|
|
80
80
|
to_top: Flytt elementet til toppen
|
81
81
|
per_page: Per side
|
82
82
|
prev_page: Forrige side
|
83
|
+
records_selected_from_all_pages_html: Alle poster valgt fra alle sider
|
83
84
|
remove_selection: Fjern valg
|
84
85
|
reset_filters: Nullstill filter
|
85
86
|
resource_created: Ressurs generert
|
@@ -117,4 +118,5 @@ nb:
|
|
117
118
|
zero: ingen flere elementer
|
118
119
|
x_records_selected_from_a_total_of_x_html: <span class="font-bold text-gray-700">%{selected}</span> poster valgt på denne siden fra totalt <span class="font-bold text-gray-700">%{count}</span>
|
119
120
|
x_records_selected_from_all_pages_html: <span class="font-bold text-gray-700">%{count}</span> poster valgt fra alle sider
|
121
|
+
x_records_selected_from_page_html: <span class="font-bold text-gray-700">%{selected}</span> poster valgt på denne siden
|
120
122
|
you_missed_something_check_form: Her mangler du noe. Vennligst sjekk skjemaet.
|
@@ -80,6 +80,7 @@ nn:
|
|
80
80
|
to_top: Flytt elementet til toppen
|
81
81
|
per_page: Per side
|
82
82
|
prev_page: Førre side
|
83
|
+
records_selected_from_all_pages_html: Alle poster valgt fra alle sider
|
83
84
|
remove_selection: Fjern val
|
84
85
|
reset_filters: Nullstill filter
|
85
86
|
resource_created: Ressurs generert
|
@@ -117,4 +118,5 @@ nn:
|
|
117
118
|
zero: ingen fleire element
|
118
119
|
x_records_selected_from_a_total_of_x_html: <span class="font-bold text-gray-700">%{selected}</span> valde postar på denne sida av totalt <span class="font-bold text-gray-700">%{count}</span>
|
119
120
|
x_records_selected_from_all_pages_html: <span class="font-bold text-gray-700">%{count}</span> valde postar frå alle sider
|
121
|
+
x_records_selected_from_page_html: <span class="font-bold text-gray-700">%{selected}</span> poster valgt på denne siden
|
120
122
|
you_missed_something_check_form: Her manglar du noko. Ver venleg og sjekk skjemaet.
|
@@ -80,6 +80,7 @@ pt-BR:
|
|
80
80
|
to_top: Mover registro para cima
|
81
81
|
per_page: Por página
|
82
82
|
prev_page: Página anterior
|
83
|
+
records_selected_from_all_pages_html: Todos os registros de todas as páginas selecionados
|
83
84
|
remove_selection: Remover seleção
|
84
85
|
reset_filters: Limpar filtros
|
85
86
|
resource_created: Recurso criado
|
@@ -117,4 +118,5 @@ pt-BR:
|
|
117
118
|
zero: mais nenhum item
|
118
119
|
x_records_selected_from_a_total_of_x_html: <span class="font-bold text-gray-700">%{selected}</span> registros selecionados nesta página de um total de <span class="font-bold text-gray-700">%{count}</span>
|
119
120
|
x_records_selected_from_all_pages_html: <span class="font-bold text-gray-700">%{count}</span> registros selecionados de todas as páginas
|
121
|
+
x_records_selected_from_page_html: <span class="font-bold text-gray-700">%{selected}</span> registros selecionados nesta página
|
120
122
|
you_missed_something_check_form: Você pode ter esquecido algo. Por favor, cheque o formulário.
|
@@ -80,6 +80,7 @@ pt:
|
|
80
80
|
to_top: Mover recurso para o topo
|
81
81
|
per_page: Por página
|
82
82
|
prev_page: Página anterior
|
83
|
+
records_selected_from_all_pages_html: Todos os itens de todas as páginas selecionados
|
83
84
|
remove_selection: Remover seleção
|
84
85
|
reset_filters: Limpar filtros
|
85
86
|
resource_created: Recurso criado
|
@@ -117,4 +118,5 @@ pt:
|
|
117
118
|
zero: mais nenhum item
|
118
119
|
x_records_selected_from_a_total_of_x_html: <span class="font-bold text-gray-700">%{selected}</span> itens selecionados nesta página de um total de <span class="font-bold text-gray-700">%{count}</span>
|
119
120
|
x_records_selected_from_all_pages_html: <span class="font-bold text-gray-700">%{count}</span> itens selecionados de todas as páginas
|
121
|
+
x_records_selected_from_page_html: <span class="font-bold text-gray-700">%{selected}</span> itens selecionados nesta página
|
120
122
|
you_missed_something_check_form: Pode ter-se esquecido algo. Por favor, verifique o formulário.
|
@@ -80,6 +80,7 @@ ro:
|
|
80
80
|
to_top: Mutați înregistrarea sus de tot
|
81
81
|
per_page: Pe pagină
|
82
82
|
prev_page: Pagina anterioara
|
83
|
+
records_selected_from_all_pages_html: Toate selectate din toate paginile
|
83
84
|
remove_selection: Șterge selecția
|
84
85
|
reset_filters: Resetați filtrele
|
85
86
|
resource_created: Resursă creata
|
@@ -117,4 +118,5 @@ ro:
|
|
117
118
|
zero: zero articole
|
118
119
|
x_records_selected_from_a_total_of_x_html: <span class="font-bold text-gray-700">%{selected}</span> selectate dintr-un total de <span class="font-bold text-gray-700">%{count}</span>
|
119
120
|
x_records_selected_from_all_pages_html: <span class="font-bold text-gray-700">%{count}</span> selectate din toate paginile
|
121
|
+
x_records_selected_from_page_html: <span class="font-bold text-gray-700">%{selected}</span> selectate
|
120
122
|
you_missed_something_check_form: S-ar putea să fi omis ceva. Vă rugăm să verificați formularul.
|