infotable 1.5.0 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +144 -10
- data/app/assets/javascripts/infotable/controllers/drawer_controller.js +19 -18
- data/app/assets/javascripts/infotable/controllers/table_controller.js +42 -23
- data/app/controllers/infotable/tables_controller.rb +1 -1
- data/app/helpers/infotable/tables_helper.rb +10 -25
- data/app/views/infotable/tables/_filter_drawer.html.erb +6 -6
- data/app/views/infotable/tables/_pagination.html.erb +4 -7
- data/app/views/infotable/tables/_table.html.erb +1 -1
- data/app/views/infotable/tables/filters/_boolean.html.erb +1 -1
- data/app/views/infotable/tables/filters/_range.html.erb +1 -1
- data/app/views/infotable/tables/filters/_select.html.erb +2 -2
- data/app/views/infotable/tables/filters/_text.html.erb +2 -2
- data/config/locales/de.yml +126 -0
- data/config/locales/el.yml +126 -0
- data/config/locales/en.yml +18 -4
- data/config/locales/es.yml +126 -0
- data/config/locales/fr.yml +126 -0
- data/config/locales/it.yml +126 -0
- data/config/locales/pl.yml +18 -4
- data/exe/infotable-mcp +13 -0
- data/lib/generators/infotable/table/table_generator.rb +23 -1
- data/lib/generators/infotable/table/templates/table.rb.tt +8 -1
- data/lib/infotable/base.rb +5 -4
- data/lib/infotable/formatters/currency_formatter.rb +4 -12
- data/lib/infotable/formatters/date_formatter.rb +3 -9
- data/lib/infotable/formatters/duration_formatter.rb +51 -0
- data/lib/infotable/formatters/filesize_formatter.rb +14 -0
- data/lib/infotable/formatters/image_formatter.rb +31 -0
- data/lib/infotable/formatters/number_formatter.rb +46 -0
- data/lib/infotable/formatters/tags_formatter.rb +44 -0
- data/lib/infotable/formatters/truncate_formatter.rb +19 -0
- data/lib/infotable/mcp/introspection.rb +94 -0
- data/lib/infotable/mcp/server.rb +26 -0
- data/lib/infotable/mcp/table_checker.rb +80 -0
- data/lib/infotable/mcp/table_writer.rb +66 -0
- data/lib/infotable/mcp/tools.rb +122 -0
- data/lib/infotable/mcp.rb +30 -0
- data/lib/infotable/version.rb +1 -1
- data/lib/infotable.rb +22 -0
- metadata +51 -4
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
data-filter-op
|
|
7
7
|
data-action="change->infotable--drawer#syncFilterOps"
|
|
8
8
|
id="<%= infotable_filter_id(table_name, column, 'op') %>"
|
|
9
|
-
class="block w-full appearance-none rounded-lg border-0 bg-
|
|
9
|
+
class="block w-full appearance-none rounded-lg border-0 bg-gray-50 dark:bg-gray-800/60 hover:bg-gray-100 dark:hover:bg-gray-800 pr-10 pl-3 py-2 text-base sm:text-sm text-neutral-900 dark:text-neutral-100 ring-1 ring-inset ring-gray-200 dark:ring-gray-700 focus:outline-none focus:bg-white dark:focus:bg-gray-900 focus:ring-2 focus:ring-indigo-500 transition-colors cursor-pointer disabled:cursor-not-allowed disabled:bg-gray-100 disabled:opacity-75 bg-[url('data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20fill=%27none%27%20viewBox=%270%200%2020%2020%27%3e%3cpath%20stroke=%27%23737373%27%20stroke-linecap=%27round%27%20stroke-linejoin=%27round%27%20stroke-width=%271.5%27%20d=%27M6%208l4%204%204-4%27/%3e%3c/svg%3e')] bg-[right_0.75rem_center] bg-no-repeat bg-[length:1.25em_1.25em]">
|
|
10
10
|
<option value="contains"><%= t('infotable.filters.text_ops.contains') %></option>
|
|
11
11
|
<option value="exact"><%= t('infotable.filters.text_ops.exact') %></option>
|
|
12
12
|
<option value="not_contain"><%= t('infotable.filters.text_ops.not_contain') %></option>
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
name="filters[<%= column[:name] %>][value]"
|
|
24
24
|
id="<%= infotable_filter_id(table_name, column, 'value') %>"
|
|
25
25
|
placeholder="<%= t('infotable.filters.enter_value') %>"
|
|
26
|
-
class="block w-full rounded-lg border-0 bg-
|
|
26
|
+
class="block w-full rounded-lg border-0 bg-gray-50 dark:bg-gray-800/60 hover:bg-gray-100 dark:hover:bg-gray-800 pr-8 pl-3 py-2 text-base sm:text-sm text-neutral-900 dark:text-neutral-100 placeholder:text-neutral-500 ring-1 ring-inset ring-gray-200 dark:ring-gray-700 focus:outline-none focus:bg-white dark:focus:bg-gray-900 focus:ring-2 focus:ring-indigo-500 transition-colors disabled:cursor-not-allowed disabled:bg-gray-100">
|
|
27
27
|
<button type="button"
|
|
28
28
|
class="absolute right-2 top-1/2 -translate-y-1/2 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 transition-colors"
|
|
29
29
|
data-action="click->infotable--drawer#clearSingleFilter"
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
de:
|
|
2
|
+
infotable:
|
|
3
|
+
table:
|
|
4
|
+
buttons:
|
|
5
|
+
export_csv: "CSV exportieren"
|
|
6
|
+
filters: "Filter"
|
|
7
|
+
exporting: "Exportiere..."
|
|
8
|
+
refresh: "Aktualisieren"
|
|
9
|
+
columns: "Spalten"
|
|
10
|
+
sort_hint: "Klicken zum Sortieren, Shift+Klick fügt eine Spalte zur Sortierung hinzu"
|
|
11
|
+
loading:
|
|
12
|
+
initial: "Daten werden geladen..."
|
|
13
|
+
more_items: "Weitere Einträge werden geladen..."
|
|
14
|
+
all_loaded: "Alle Einträge geladen"
|
|
15
|
+
resize_column: "Spaltenbreite ändern"
|
|
16
|
+
empty_state:
|
|
17
|
+
title: "Keine Daten gefunden"
|
|
18
|
+
description: "Fügen Sie Datensätze hinzu, um sie hier zu sehen."
|
|
19
|
+
filtered_title: "Keine Zeilen entsprechen Ihren Filtern"
|
|
20
|
+
filtered_description: "Entfernen Sie einen Filter oder suchen Sie nach etwas anderem."
|
|
21
|
+
|
|
22
|
+
drawer:
|
|
23
|
+
label: "Filter und Spalten"
|
|
24
|
+
panel_title:
|
|
25
|
+
customize_columns: "Spalten anpassen"
|
|
26
|
+
filters: "Filter"
|
|
27
|
+
columns: "Spalten"
|
|
28
|
+
tabs:
|
|
29
|
+
filters: "Filter"
|
|
30
|
+
columns: "Spalten"
|
|
31
|
+
|
|
32
|
+
columns:
|
|
33
|
+
instructions: "Zum Umsortieren ziehen, Spalten anheften und ein-/ausblenden:"
|
|
34
|
+
pin:
|
|
35
|
+
left: "Links anheften"
|
|
36
|
+
right: "Rechts anheften"
|
|
37
|
+
actions:
|
|
38
|
+
select_all: "Alle auswählen"
|
|
39
|
+
deselect_all: "Alle abwählen"
|
|
40
|
+
reset_to_defaults: "🔄 Standard wiederherstellen"
|
|
41
|
+
|
|
42
|
+
filters:
|
|
43
|
+
actions:
|
|
44
|
+
clear_all: "Alle löschen"
|
|
45
|
+
apply_filters: "Filter anwenden"
|
|
46
|
+
clear_filter: "Diesen Filter löschen"
|
|
47
|
+
active:
|
|
48
|
+
search: "Suche: „%{query}“"
|
|
49
|
+
remove: "Filter %{filter} entfernen"
|
|
50
|
+
clear_all: "Alle Filter löschen"
|
|
51
|
+
from: "Von"
|
|
52
|
+
to: "Bis"
|
|
53
|
+
min: "Min"
|
|
54
|
+
max: "Max"
|
|
55
|
+
enter_value: "Wert eingeben..."
|
|
56
|
+
all: "Alle"
|
|
57
|
+
multi_select_hint: "Strg/Cmd gedrückt halten, um mehrere auszuwählen"
|
|
58
|
+
options_truncated: "Die ersten %{shown} von %{total} Optionen werden angezeigt"
|
|
59
|
+
boolean:
|
|
60
|
+
"true": "Wahr"
|
|
61
|
+
"false": "Falsch"
|
|
62
|
+
empty: "Leer"
|
|
63
|
+
not_empty: "Nicht leer"
|
|
64
|
+
text_ops:
|
|
65
|
+
contains: "Enthält"
|
|
66
|
+
exact: "Exakte Übereinstimmung"
|
|
67
|
+
not_contain: "Enthält nicht"
|
|
68
|
+
starts_with: "Beginnt mit"
|
|
69
|
+
ends_with: "Endet mit"
|
|
70
|
+
is_empty: "Ist leer"
|
|
71
|
+
is_not_empty: "Ist nicht leer"
|
|
72
|
+
range_ops:
|
|
73
|
+
between: "Zwischen"
|
|
74
|
+
number_ops:
|
|
75
|
+
eq: "Gleich"
|
|
76
|
+
neq: "Ungleich"
|
|
77
|
+
gt: "Größer als"
|
|
78
|
+
gte: "Größer oder gleich"
|
|
79
|
+
lt: "Kleiner als"
|
|
80
|
+
lte: "Kleiner oder gleich"
|
|
81
|
+
date_ops:
|
|
82
|
+
"on": "Am"
|
|
83
|
+
before: "Vor"
|
|
84
|
+
after: "Nach"
|
|
85
|
+
|
|
86
|
+
formatters:
|
|
87
|
+
ago: "vor %{time}"
|
|
88
|
+
date:
|
|
89
|
+
short: "%d. %b %Y"
|
|
90
|
+
long: "%d. %B %Y"
|
|
91
|
+
time: "%H:%M"
|
|
92
|
+
datetime: "%d. %b %Y %H:%M"
|
|
93
|
+
action: "Aktion"
|
|
94
|
+
boolean:
|
|
95
|
+
"true": "Ja"
|
|
96
|
+
"false": "Nein"
|
|
97
|
+
duration:
|
|
98
|
+
short:
|
|
99
|
+
d: "%{count} T"
|
|
100
|
+
h: "%{count} Std."
|
|
101
|
+
m: "%{count} Min."
|
|
102
|
+
s: "%{count} Sek."
|
|
103
|
+
long:
|
|
104
|
+
d: { one: "%{count} Tag", few: "%{count} Tage", many: "%{count} Tage", other: "%{count} Tage" }
|
|
105
|
+
h: { one: "%{count} Stunde", few: "%{count} Stunden", many: "%{count} Stunden", other: "%{count} Stunden" }
|
|
106
|
+
m: { one: "%{count} Minute", few: "%{count} Minuten", many: "%{count} Minuten", other: "%{count} Minuten" }
|
|
107
|
+
s: { one: "%{count} Sekunde", few: "%{count} Sekunden", many: "%{count} Sekunden", other: "%{count} Sekunden" }
|
|
108
|
+
|
|
109
|
+
batch:
|
|
110
|
+
selected: "%{count} ausgewählt"
|
|
111
|
+
clear: "Auswahl aufheben"
|
|
112
|
+
select_all: "Alle Zeilen auswählen"
|
|
113
|
+
select_row: "Zeile auswählen"
|
|
114
|
+
select_all_matching: "Alle %{count} Treffer auswählen"
|
|
115
|
+
truncated: "Nur die ersten %{max} Zeilen sind ausgewählt"
|
|
116
|
+
|
|
117
|
+
search:
|
|
118
|
+
placeholder: "Suchen..."
|
|
119
|
+
label: "Tabelle durchsuchen"
|
|
120
|
+
|
|
121
|
+
pagination:
|
|
122
|
+
summary_html: "Zeige %{from} bis %{to} von %{total} Ergebnissen"
|
|
123
|
+
summary_no_total_html: "Zeige %{from} bis %{to}"
|
|
124
|
+
rows_per_page: "Zeilen pro Seite:"
|
|
125
|
+
previous: "Zurück"
|
|
126
|
+
next: "Weiter"
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
el:
|
|
2
|
+
infotable:
|
|
3
|
+
table:
|
|
4
|
+
buttons:
|
|
5
|
+
export_csv: "Εξαγωγή CSV"
|
|
6
|
+
filters: "Φίλτρα"
|
|
7
|
+
exporting: "Εξαγωγή..."
|
|
8
|
+
refresh: "Ανανέωση"
|
|
9
|
+
columns: "Στήλες"
|
|
10
|
+
sort_hint: "Κάντε κλικ για ταξινόμηση, Shift+κλικ για προσθήκη στήλης στην ταξινόμηση"
|
|
11
|
+
loading:
|
|
12
|
+
initial: "Φόρτωση δεδομένων..."
|
|
13
|
+
more_items: "Φόρτωση περισσότερων στοιχείων..."
|
|
14
|
+
all_loaded: "Όλα τα στοιχεία φορτώθηκαν"
|
|
15
|
+
resize_column: "αλλαγή πλάτους στήλης"
|
|
16
|
+
empty_state:
|
|
17
|
+
title: "Δεν βρέθηκαν δεδομένα"
|
|
18
|
+
description: "Προσθέστε εγγραφές για να τις δείτε εδώ."
|
|
19
|
+
filtered_title: "Καμία γραμμή δεν ταιριάζει με τα φίλτρα σας"
|
|
20
|
+
filtered_description: "Αφαιρέστε ένα φίλτρο ή αναζητήστε κάτι άλλο."
|
|
21
|
+
|
|
22
|
+
drawer:
|
|
23
|
+
label: "Φίλτρα και στήλες"
|
|
24
|
+
panel_title:
|
|
25
|
+
customize_columns: "Προσαρμογή στηλών"
|
|
26
|
+
filters: "Φίλτρα"
|
|
27
|
+
columns: "Στήλες"
|
|
28
|
+
tabs:
|
|
29
|
+
filters: "Φίλτρα"
|
|
30
|
+
columns: "Στήλες"
|
|
31
|
+
|
|
32
|
+
columns:
|
|
33
|
+
instructions: "Σύρετε για αναδιάταξη, καρφιτσώστε στήλες και εμφανίστε/αποκρύψτε:"
|
|
34
|
+
pin:
|
|
35
|
+
left: "Καρφίτσωμα αριστερά"
|
|
36
|
+
right: "Καρφίτσωμα δεξιά"
|
|
37
|
+
actions:
|
|
38
|
+
select_all: "Επιλογή όλων"
|
|
39
|
+
deselect_all: "Αποεπιλογή όλων"
|
|
40
|
+
reset_to_defaults: "🔄 Επαναφορά προεπιλογών"
|
|
41
|
+
|
|
42
|
+
filters:
|
|
43
|
+
actions:
|
|
44
|
+
clear_all: "Εκκαθάριση όλων"
|
|
45
|
+
apply_filters: "Εφαρμογή φίλτρων"
|
|
46
|
+
clear_filter: "Εκκαθάριση αυτού του φίλτρου"
|
|
47
|
+
active:
|
|
48
|
+
search: "Αναζήτηση: «%{query}»"
|
|
49
|
+
remove: "Αφαίρεση φίλτρου %{filter}"
|
|
50
|
+
clear_all: "Εκκαθάριση όλων των φίλτρων"
|
|
51
|
+
from: "Από"
|
|
52
|
+
to: "Έως"
|
|
53
|
+
min: "Ελάχ."
|
|
54
|
+
max: "Μέγ."
|
|
55
|
+
enter_value: "Εισαγάγετε τιμή..."
|
|
56
|
+
all: "Όλα"
|
|
57
|
+
multi_select_hint: "Κρατήστε πατημένο το Ctrl/Cmd για πολλαπλή επιλογή"
|
|
58
|
+
options_truncated: "Εμφανίζονται οι πρώτες %{shown} από %{total} επιλογές"
|
|
59
|
+
boolean:
|
|
60
|
+
"true": "Αληθές"
|
|
61
|
+
"false": "Ψευδές"
|
|
62
|
+
empty: "Κενό"
|
|
63
|
+
not_empty: "Μη κενό"
|
|
64
|
+
text_ops:
|
|
65
|
+
contains: "Περιέχει"
|
|
66
|
+
exact: "Ακριβής αντιστοιχία"
|
|
67
|
+
not_contain: "Δεν περιέχει"
|
|
68
|
+
starts_with: "Ξεκινά με"
|
|
69
|
+
ends_with: "Τελειώνει σε"
|
|
70
|
+
is_empty: "Είναι κενό"
|
|
71
|
+
is_not_empty: "Δεν είναι κενό"
|
|
72
|
+
range_ops:
|
|
73
|
+
between: "Μεταξύ"
|
|
74
|
+
number_ops:
|
|
75
|
+
eq: "Ίσο με"
|
|
76
|
+
neq: "Διάφορο του"
|
|
77
|
+
gt: "Μεγαλύτερο από"
|
|
78
|
+
gte: "Μεγαλύτερο ή ίσο με"
|
|
79
|
+
lt: "Μικρότερο από"
|
|
80
|
+
lte: "Μικρότερο ή ίσο με"
|
|
81
|
+
date_ops:
|
|
82
|
+
"on": "Στις"
|
|
83
|
+
before: "Πριν από"
|
|
84
|
+
after: "Μετά από"
|
|
85
|
+
|
|
86
|
+
formatters:
|
|
87
|
+
ago: "πριν από %{time}"
|
|
88
|
+
date:
|
|
89
|
+
short: "%d %b %Y"
|
|
90
|
+
long: "%d %B %Y"
|
|
91
|
+
time: "%H:%M"
|
|
92
|
+
datetime: "%d %b %Y %H:%M"
|
|
93
|
+
action: "Ενέργεια"
|
|
94
|
+
boolean:
|
|
95
|
+
"true": "Ναι"
|
|
96
|
+
"false": "Όχι"
|
|
97
|
+
duration:
|
|
98
|
+
short:
|
|
99
|
+
d: "%{count} ημ."
|
|
100
|
+
h: "%{count} ώ."
|
|
101
|
+
m: "%{count} λ."
|
|
102
|
+
s: "%{count} δ."
|
|
103
|
+
long:
|
|
104
|
+
d: { one: "%{count} ημέρα", few: "%{count} ημέρες", many: "%{count} ημέρες", other: "%{count} ημέρες" }
|
|
105
|
+
h: { one: "%{count} ώρα", few: "%{count} ώρες", many: "%{count} ώρες", other: "%{count} ώρες" }
|
|
106
|
+
m: { one: "%{count} λεπτό", few: "%{count} λεπτά", many: "%{count} λεπτά", other: "%{count} λεπτά" }
|
|
107
|
+
s: { one: "%{count} δευτερόλεπτο", few: "%{count} δευτερόλεπτα", many: "%{count} δευτερόλεπτα", other: "%{count} δευτερόλεπτα" }
|
|
108
|
+
|
|
109
|
+
batch:
|
|
110
|
+
selected: "%{count} επιλεγμένα"
|
|
111
|
+
clear: "Εκκαθάριση επιλογής"
|
|
112
|
+
select_all: "Επιλογή όλων των γραμμών"
|
|
113
|
+
select_row: "Επιλογή γραμμής"
|
|
114
|
+
select_all_matching: "Επιλογή και των %{count} αποτελεσμάτων"
|
|
115
|
+
truncated: "Επιλέχθηκαν μόνο οι πρώτες %{max} γραμμές"
|
|
116
|
+
|
|
117
|
+
search:
|
|
118
|
+
placeholder: "Αναζήτηση..."
|
|
119
|
+
label: "Αναζήτηση στον πίνακα"
|
|
120
|
+
|
|
121
|
+
pagination:
|
|
122
|
+
summary_html: "Εμφάνιση %{from} έως %{to} από %{total} αποτελέσματα"
|
|
123
|
+
summary_no_total_html: "Εμφάνιση %{from} έως %{to}"
|
|
124
|
+
rows_per_page: "Γραμμές ανά σελίδα:"
|
|
125
|
+
previous: "Προηγούμενη"
|
|
126
|
+
next: "Επόμενη"
|
data/config/locales/en.yml
CHANGED
|
@@ -85,10 +85,26 @@ en:
|
|
|
85
85
|
|
|
86
86
|
formatters:
|
|
87
87
|
ago: "%{time} ago"
|
|
88
|
+
date:
|
|
89
|
+
short: "%b %d, %Y"
|
|
90
|
+
long: "%B %d, %Y"
|
|
91
|
+
time: "%I:%M %p"
|
|
92
|
+
datetime: "%b %d, %Y %I:%M %p"
|
|
88
93
|
action: "Action"
|
|
89
94
|
boolean:
|
|
90
95
|
"true": "Yes"
|
|
91
96
|
"false": "No"
|
|
97
|
+
duration:
|
|
98
|
+
short:
|
|
99
|
+
d: "%{count}d"
|
|
100
|
+
h: "%{count}h"
|
|
101
|
+
m: "%{count}m"
|
|
102
|
+
s: "%{count}s"
|
|
103
|
+
long:
|
|
104
|
+
d: { one: "%{count} day", few: "%{count} days", many: "%{count} days", other: "%{count} days" }
|
|
105
|
+
h: { one: "%{count} hour", few: "%{count} hours", many: "%{count} hours", other: "%{count} hours" }
|
|
106
|
+
m: { one: "%{count} minute", few: "%{count} minutes", many: "%{count} minutes", other: "%{count} minutes" }
|
|
107
|
+
s: { one: "%{count} second", few: "%{count} seconds", many: "%{count} seconds", other: "%{count} seconds" }
|
|
92
108
|
|
|
93
109
|
batch:
|
|
94
110
|
selected: "%{count} selected"
|
|
@@ -103,10 +119,8 @@ en:
|
|
|
103
119
|
label: "Search table"
|
|
104
120
|
|
|
105
121
|
pagination:
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
of: "of"
|
|
109
|
-
results: "results"
|
|
122
|
+
summary_html: "Showing %{from} to %{to} of %{total} results"
|
|
123
|
+
summary_no_total_html: "Showing %{from} to %{to}"
|
|
110
124
|
rows_per_page: "Rows per page:"
|
|
111
125
|
previous: "Previous"
|
|
112
126
|
next: "Next"
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
es:
|
|
2
|
+
infotable:
|
|
3
|
+
table:
|
|
4
|
+
buttons:
|
|
5
|
+
export_csv: "Exportar CSV"
|
|
6
|
+
filters: "Filtros"
|
|
7
|
+
exporting: "Exportando..."
|
|
8
|
+
refresh: "Actualizar"
|
|
9
|
+
columns: "Columnas"
|
|
10
|
+
sort_hint: "Haz clic para ordenar, Mayús+clic añade una columna al orden"
|
|
11
|
+
loading:
|
|
12
|
+
initial: "Cargando datos..."
|
|
13
|
+
more_items: "Cargando más elementos..."
|
|
14
|
+
all_loaded: "Todos los elementos cargados"
|
|
15
|
+
resize_column: "cambiar el ancho de la columna"
|
|
16
|
+
empty_state:
|
|
17
|
+
title: "No se encontraron datos"
|
|
18
|
+
description: "Añade algunos registros para verlos aquí."
|
|
19
|
+
filtered_title: "Ninguna fila coincide con tus filtros"
|
|
20
|
+
filtered_description: "Quita un filtro o busca otra cosa."
|
|
21
|
+
|
|
22
|
+
drawer:
|
|
23
|
+
label: "Filtros y columnas"
|
|
24
|
+
panel_title:
|
|
25
|
+
customize_columns: "Personalizar columnas"
|
|
26
|
+
filters: "Filtros"
|
|
27
|
+
columns: "Columnas"
|
|
28
|
+
tabs:
|
|
29
|
+
filters: "Filtros"
|
|
30
|
+
columns: "Columnas"
|
|
31
|
+
|
|
32
|
+
columns:
|
|
33
|
+
instructions: "Arrastra para reordenar, fija columnas y muestra/oculta:"
|
|
34
|
+
pin:
|
|
35
|
+
left: "Fijar a la izquierda"
|
|
36
|
+
right: "Fijar a la derecha"
|
|
37
|
+
actions:
|
|
38
|
+
select_all: "Seleccionar todo"
|
|
39
|
+
deselect_all: "Deseleccionar todo"
|
|
40
|
+
reset_to_defaults: "🔄 Restablecer valores predeterminados"
|
|
41
|
+
|
|
42
|
+
filters:
|
|
43
|
+
actions:
|
|
44
|
+
clear_all: "Borrar todo"
|
|
45
|
+
apply_filters: "Aplicar filtros"
|
|
46
|
+
clear_filter: "Borrar este filtro"
|
|
47
|
+
active:
|
|
48
|
+
search: "Búsqueda: «%{query}»"
|
|
49
|
+
remove: "Quitar el filtro %{filter}"
|
|
50
|
+
clear_all: "Borrar todos los filtros"
|
|
51
|
+
from: "Desde"
|
|
52
|
+
to: "Hasta"
|
|
53
|
+
min: "Mín"
|
|
54
|
+
max: "Máx"
|
|
55
|
+
enter_value: "Introduce un valor..."
|
|
56
|
+
all: "Todos"
|
|
57
|
+
multi_select_hint: "Mantén Ctrl/Cmd para seleccionar varios"
|
|
58
|
+
options_truncated: "Mostrando las primeras %{shown} de %{total} opciones"
|
|
59
|
+
boolean:
|
|
60
|
+
"true": "Verdadero"
|
|
61
|
+
"false": "Falso"
|
|
62
|
+
empty: "Vacío"
|
|
63
|
+
not_empty: "No vacío"
|
|
64
|
+
text_ops:
|
|
65
|
+
contains: "Contiene"
|
|
66
|
+
exact: "Coincidencia exacta"
|
|
67
|
+
not_contain: "No contiene"
|
|
68
|
+
starts_with: "Empieza por"
|
|
69
|
+
ends_with: "Termina en"
|
|
70
|
+
is_empty: "Está vacío"
|
|
71
|
+
is_not_empty: "No está vacío"
|
|
72
|
+
range_ops:
|
|
73
|
+
between: "Entre"
|
|
74
|
+
number_ops:
|
|
75
|
+
eq: "Igual a"
|
|
76
|
+
neq: "Distinto de"
|
|
77
|
+
gt: "Mayor que"
|
|
78
|
+
gte: "Mayor o igual que"
|
|
79
|
+
lt: "Menor que"
|
|
80
|
+
lte: "Menor o igual que"
|
|
81
|
+
date_ops:
|
|
82
|
+
"on": "El"
|
|
83
|
+
before: "Antes de"
|
|
84
|
+
after: "Después de"
|
|
85
|
+
|
|
86
|
+
formatters:
|
|
87
|
+
ago: "hace %{time}"
|
|
88
|
+
date:
|
|
89
|
+
short: "%d %b %Y"
|
|
90
|
+
long: "%d de %B de %Y"
|
|
91
|
+
time: "%H:%M"
|
|
92
|
+
datetime: "%d %b %Y %H:%M"
|
|
93
|
+
action: "Acción"
|
|
94
|
+
boolean:
|
|
95
|
+
"true": "Sí"
|
|
96
|
+
"false": "No"
|
|
97
|
+
duration:
|
|
98
|
+
short:
|
|
99
|
+
d: "%{count} d"
|
|
100
|
+
h: "%{count} h"
|
|
101
|
+
m: "%{count} min"
|
|
102
|
+
s: "%{count} s"
|
|
103
|
+
long:
|
|
104
|
+
d: { one: "%{count} día", few: "%{count} días", many: "%{count} días", other: "%{count} días" }
|
|
105
|
+
h: { one: "%{count} hora", few: "%{count} horas", many: "%{count} horas", other: "%{count} horas" }
|
|
106
|
+
m: { one: "%{count} minuto", few: "%{count} minutos", many: "%{count} minutos", other: "%{count} minutos" }
|
|
107
|
+
s: { one: "%{count} segundo", few: "%{count} segundos", many: "%{count} segundos", other: "%{count} segundos" }
|
|
108
|
+
|
|
109
|
+
batch:
|
|
110
|
+
selected: "%{count} seleccionados"
|
|
111
|
+
clear: "Borrar selección"
|
|
112
|
+
select_all: "Seleccionar todas las filas"
|
|
113
|
+
select_row: "Seleccionar fila"
|
|
114
|
+
select_all_matching: "Seleccionar los %{count} resultados"
|
|
115
|
+
truncated: "Solo se han seleccionado las primeras %{max} filas"
|
|
116
|
+
|
|
117
|
+
search:
|
|
118
|
+
placeholder: "Buscar..."
|
|
119
|
+
label: "Buscar en la tabla"
|
|
120
|
+
|
|
121
|
+
pagination:
|
|
122
|
+
summary_html: "Mostrando %{from} a %{to} de %{total} resultados"
|
|
123
|
+
summary_no_total_html: "Mostrando %{from} a %{to}"
|
|
124
|
+
rows_per_page: "Filas por página:"
|
|
125
|
+
previous: "Anterior"
|
|
126
|
+
next: "Siguiente"
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
fr:
|
|
2
|
+
infotable:
|
|
3
|
+
table:
|
|
4
|
+
buttons:
|
|
5
|
+
export_csv: "Exporter en CSV"
|
|
6
|
+
filters: "Filtres"
|
|
7
|
+
exporting: "Exportation..."
|
|
8
|
+
refresh: "Actualiser"
|
|
9
|
+
columns: "Colonnes"
|
|
10
|
+
sort_hint: "Cliquez pour trier, Maj+clic ajoute une colonne au tri"
|
|
11
|
+
loading:
|
|
12
|
+
initial: "Chargement des données..."
|
|
13
|
+
more_items: "Chargement d'autres éléments..."
|
|
14
|
+
all_loaded: "Tous les éléments sont chargés"
|
|
15
|
+
resize_column: "redimensionner la colonne"
|
|
16
|
+
empty_state:
|
|
17
|
+
title: "Aucune donnée trouvée"
|
|
18
|
+
description: "Ajoutez des enregistrements pour les voir ici."
|
|
19
|
+
filtered_title: "Aucune ligne ne correspond à vos filtres"
|
|
20
|
+
filtered_description: "Retirez un filtre ou cherchez autre chose."
|
|
21
|
+
|
|
22
|
+
drawer:
|
|
23
|
+
label: "Filtres et colonnes"
|
|
24
|
+
panel_title:
|
|
25
|
+
customize_columns: "Personnaliser les colonnes"
|
|
26
|
+
filters: "Filtres"
|
|
27
|
+
columns: "Colonnes"
|
|
28
|
+
tabs:
|
|
29
|
+
filters: "Filtres"
|
|
30
|
+
columns: "Colonnes"
|
|
31
|
+
|
|
32
|
+
columns:
|
|
33
|
+
instructions: "Glissez pour réorganiser, épinglez des colonnes et affichez/masquez :"
|
|
34
|
+
pin:
|
|
35
|
+
left: "Épingler à gauche"
|
|
36
|
+
right: "Épingler à droite"
|
|
37
|
+
actions:
|
|
38
|
+
select_all: "Tout sélectionner"
|
|
39
|
+
deselect_all: "Tout désélectionner"
|
|
40
|
+
reset_to_defaults: "🔄 Rétablir les valeurs par défaut"
|
|
41
|
+
|
|
42
|
+
filters:
|
|
43
|
+
actions:
|
|
44
|
+
clear_all: "Tout effacer"
|
|
45
|
+
apply_filters: "Appliquer les filtres"
|
|
46
|
+
clear_filter: "Effacer ce filtre"
|
|
47
|
+
active:
|
|
48
|
+
search: "Recherche : « %{query} »"
|
|
49
|
+
remove: "Retirer le filtre %{filter}"
|
|
50
|
+
clear_all: "Effacer tous les filtres"
|
|
51
|
+
from: "De"
|
|
52
|
+
to: "À"
|
|
53
|
+
min: "Min"
|
|
54
|
+
max: "Max"
|
|
55
|
+
enter_value: "Saisissez une valeur..."
|
|
56
|
+
all: "Tous"
|
|
57
|
+
multi_select_hint: "Maintenez Ctrl/Cmd pour en sélectionner plusieurs"
|
|
58
|
+
options_truncated: "Affichage des %{shown} premières options sur %{total}"
|
|
59
|
+
boolean:
|
|
60
|
+
"true": "Vrai"
|
|
61
|
+
"false": "Faux"
|
|
62
|
+
empty: "Vide"
|
|
63
|
+
not_empty: "Non vide"
|
|
64
|
+
text_ops:
|
|
65
|
+
contains: "Contient"
|
|
66
|
+
exact: "Correspondance exacte"
|
|
67
|
+
not_contain: "Ne contient pas"
|
|
68
|
+
starts_with: "Commence par"
|
|
69
|
+
ends_with: "Se termine par"
|
|
70
|
+
is_empty: "Est vide"
|
|
71
|
+
is_not_empty: "N'est pas vide"
|
|
72
|
+
range_ops:
|
|
73
|
+
between: "Entre"
|
|
74
|
+
number_ops:
|
|
75
|
+
eq: "Égal à"
|
|
76
|
+
neq: "Différent de"
|
|
77
|
+
gt: "Supérieur à"
|
|
78
|
+
gte: "Supérieur ou égal à"
|
|
79
|
+
lt: "Inférieur à"
|
|
80
|
+
lte: "Inférieur ou égal à"
|
|
81
|
+
date_ops:
|
|
82
|
+
"on": "Le"
|
|
83
|
+
before: "Avant"
|
|
84
|
+
after: "Après"
|
|
85
|
+
|
|
86
|
+
formatters:
|
|
87
|
+
ago: "il y a %{time}"
|
|
88
|
+
date:
|
|
89
|
+
short: "%d %b %Y"
|
|
90
|
+
long: "%d %B %Y"
|
|
91
|
+
time: "%H:%M"
|
|
92
|
+
datetime: "%d %b %Y %H:%M"
|
|
93
|
+
action: "Action"
|
|
94
|
+
boolean:
|
|
95
|
+
"true": "Oui"
|
|
96
|
+
"false": "Non"
|
|
97
|
+
duration:
|
|
98
|
+
short:
|
|
99
|
+
d: "%{count} j"
|
|
100
|
+
h: "%{count} h"
|
|
101
|
+
m: "%{count} min"
|
|
102
|
+
s: "%{count} s"
|
|
103
|
+
long:
|
|
104
|
+
d: { one: "%{count} jour", few: "%{count} jours", many: "%{count} jours", other: "%{count} jours" }
|
|
105
|
+
h: { one: "%{count} heure", few: "%{count} heures", many: "%{count} heures", other: "%{count} heures" }
|
|
106
|
+
m: { one: "%{count} minute", few: "%{count} minutes", many: "%{count} minutes", other: "%{count} minutes" }
|
|
107
|
+
s: { one: "%{count} seconde", few: "%{count} secondes", many: "%{count} secondes", other: "%{count} secondes" }
|
|
108
|
+
|
|
109
|
+
batch:
|
|
110
|
+
selected: "%{count} sélectionné(s)"
|
|
111
|
+
clear: "Effacer la sélection"
|
|
112
|
+
select_all: "Sélectionner toutes les lignes"
|
|
113
|
+
select_row: "Sélectionner la ligne"
|
|
114
|
+
select_all_matching: "Sélectionner les %{count} résultats"
|
|
115
|
+
truncated: "Seules les %{max} premières lignes sont sélectionnées"
|
|
116
|
+
|
|
117
|
+
search:
|
|
118
|
+
placeholder: "Rechercher..."
|
|
119
|
+
label: "Rechercher dans le tableau"
|
|
120
|
+
|
|
121
|
+
pagination:
|
|
122
|
+
summary_html: "Affichage de %{from} à %{to} sur %{total} résultats"
|
|
123
|
+
summary_no_total_html: "Affichage de %{from} à %{to}"
|
|
124
|
+
rows_per_page: "Lignes par page :"
|
|
125
|
+
previous: "Précédent"
|
|
126
|
+
next: "Suivant"
|