activeadmin 0.5.0 → 0.5.1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of activeadmin might be problematic. Click here for more details.
- data/.travis.yml +1 -1
- data/CHANGELOG.md +92 -1
- data/CONTRIBUTING.md +3 -3
- data/Gemfile +6 -5
- data/README.rdoc +6 -1
- data/Rakefile +2 -2
- data/app/assets/stylesheets/active_admin/_forms.css.scss +13 -2
- data/app/assets/stylesheets/active_admin/components/_comments.css.scss +1 -0
- data/app/assets/stylesheets/active_admin/components/_table_tools.css.scss +2 -1
- data/app/views/active_admin/resource/index.csv.erb +4 -1
- data/app/views/layouts/active_admin_logged_out.html.erb +3 -3
- data/docs/0-installation.md +0 -7
- data/docs/1-general-configuration.md +37 -0
- data/docs/11-decorators.md +48 -0
- data/docs/12-arbre-components.md +145 -0
- data/docs/2-resource-customization.md +23 -6
- data/docs/3-index-pages.md +5 -0
- data/docs/4-csv-format.md +11 -2
- data/docs/8-custom-actions.md +2 -2
- data/features/breadcrumb.feature +27 -0
- data/features/decorators.feature +41 -0
- data/features/i18n.feature +7 -0
- data/features/index/format_as_csv.feature +40 -3
- data/features/index/index_as_table.feature +6 -6
- data/features/step_definitions/format_steps.rb +6 -1
- data/lib/active_admin.rb +1 -1
- data/lib/active_admin/application.rb +15 -7
- data/lib/active_admin/comments/comment.rb +4 -2
- data/lib/active_admin/csv_builder.rb +2 -1
- data/lib/active_admin/devise.rb +1 -0
- data/lib/active_admin/dsl.rb +25 -0
- data/lib/active_admin/filters/dsl.rb +9 -0
- data/lib/active_admin/filters/forms.rb +2 -0
- data/lib/active_admin/filters/resource_extension.rb +32 -2
- data/lib/active_admin/form_builder.rb +29 -12
- data/lib/active_admin/inputs.rb +1 -0
- data/lib/active_admin/inputs/filter_boolean_input.rb +40 -0
- data/lib/active_admin/inputs/filter_select_input.rb +5 -1
- data/lib/active_admin/locales/bg.yml +1 -0
- data/lib/active_admin/locales/ca.yml +1 -0
- data/lib/active_admin/locales/cs.yml +9 -1
- data/lib/active_admin/locales/da.yml +1 -0
- data/lib/active_admin/locales/de.yml +16 -3
- data/lib/active_admin/locales/en.yml +1 -0
- data/lib/active_admin/locales/es.yml +1 -0
- data/lib/active_admin/locales/fr.yml +5 -1
- data/lib/active_admin/locales/he.yml +3 -2
- data/lib/active_admin/locales/hr.yml +1 -0
- data/lib/active_admin/locales/hu.yml +1 -0
- data/lib/active_admin/locales/it.yml +5 -4
- data/lib/active_admin/locales/ja.yml +12 -12
- data/lib/active_admin/locales/ko.yml +1 -0
- data/lib/active_admin/locales/lt.yml +81 -0
- data/lib/active_admin/locales/lv.yml +2 -1
- data/lib/active_admin/locales/nl.yml +1 -0
- data/lib/active_admin/locales/no-NB.yml +1 -0
- data/lib/active_admin/locales/pl.yml +1 -0
- data/lib/active_admin/locales/pt-BR.yml +3 -2
- data/lib/active_admin/locales/ro.yml +1 -0
- data/lib/active_admin/locales/ru.yml +7 -6
- data/lib/active_admin/locales/sv-SE.yml +1 -0
- data/lib/active_admin/locales/tr.yml +3 -2
- data/lib/active_admin/locales/vi.yml +1 -0
- data/lib/active_admin/locales/zh-CN.yml +1 -0
- data/lib/active_admin/locales/zh-TW.yml +1 -0
- data/lib/active_admin/menu_item.rb +6 -0
- data/lib/active_admin/page.rb +3 -0
- data/lib/active_admin/page_presenter.rb +2 -0
- data/lib/active_admin/resource.rb +12 -1
- data/lib/active_admin/resource/menu.rb +8 -1
- data/lib/active_admin/resource_controller.rb +3 -1
- data/lib/active_admin/resource_controller/collection.rb +1 -1
- data/lib/active_admin/resource_controller/decorators.rb +19 -0
- data/lib/active_admin/resource_dsl.rb +1 -1
- data/lib/active_admin/version.rb +1 -1
- data/lib/active_admin/view_helpers.rb +1 -0
- data/lib/active_admin/view_helpers/breadcrumb_helper.rb +1 -1
- data/lib/active_admin/view_helpers/download_format_links_helper.rb +50 -0
- data/lib/active_admin/view_helpers/fields_for.rb +4 -0
- data/lib/active_admin/view_helpers/flash_helper.rb +13 -0
- data/lib/active_admin/views/components/paginated_collection.rb +2 -11
- data/lib/active_admin/views/components/table_for.rb +21 -27
- data/lib/active_admin/views/footer.rb +3 -1
- data/lib/active_admin/views/index_as_block.rb +1 -1
- data/lib/active_admin/views/index_as_grid.rb +1 -1
- data/lib/active_admin/views/pages/base.rb +3 -3
- data/lib/active_admin/views/pages/index.rb +1 -7
- data/lib/active_admin/views/title_bar.rb +6 -3
- data/lib/generators/active_admin/devise/devise_generator.rb +1 -1
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +6 -3
- data/lib/generators/active_admin/install/templates/admin_user.rb.erb +1 -1
- data/lib/generators/active_admin/install/templates/dashboard.rb +2 -2
- data/lib/generators/active_admin/install/templates/migrations/2_move_admin_notes_to_comments.rb +2 -1
- data/spec/integration/memory_spec.rb +1 -1
- data/spec/support/rails_template.rb +41 -2
- data/spec/support/rails_template_with_data.rb +2 -1
- data/spec/support/templates/en.yml +2 -0
- data/spec/support/templates/post_decorator.rb +53 -0
- data/spec/unit/application_spec.rb +17 -4
- data/spec/unit/belongs_to_spec.rb +1 -1
- data/spec/unit/config_shared_examples.rb +15 -7
- data/spec/unit/controller_filters_spec.rb +8 -8
- data/spec/unit/csv_builder_spec.rb +10 -0
- data/spec/unit/devise_spec.rb +28 -7
- data/spec/unit/filters/filter_form_builder_spec.rb +24 -0
- data/spec/unit/filters/resource_spec.rb +15 -1
- data/spec/unit/form_builder_spec.rb +4 -0
- data/spec/unit/resource_controller_spec.rb +67 -3
- data/spec/unit/resource_spec.rb +17 -0
- data/spec/unit/view_helpers/download_format_links_helper_spec.rb +39 -0
- data/spec/unit/view_helpers/fields_for_spec.rb +5 -0
- data/spec/unit/views/components/table_for_spec.rb +31 -0
- data/spec/unit/views/pages/layout_spec.rb +1 -1
- data/spec/unit/views/pages/show_spec.rb +21 -0
- data/tasks/parallel_tests.rake +60 -0
- data/tasks/test.rake +2 -1
- metadata +44 -26
@@ -7,6 +7,15 @@ module ActiveAdmin
|
|
7
7
|
config.add_filter(attribute, options)
|
8
8
|
end
|
9
9
|
|
10
|
+
# For docs, please see ActiveAdmin::Filters::ResourceExtension#delete_filter
|
11
|
+
def remove_filter(attribute)
|
12
|
+
config.remove_filter(attribute)
|
13
|
+
end
|
14
|
+
|
15
|
+
# For docs, please see ActiveAdmin::Filters::ResourceExtension#preserve_default_filters!
|
16
|
+
def preserve_default_filters!
|
17
|
+
config.preserve_default_filters!
|
18
|
+
end
|
10
19
|
end
|
11
20
|
end
|
12
21
|
end
|
@@ -15,7 +15,15 @@ module ActiveAdmin
|
|
15
15
|
def filters
|
16
16
|
return [] unless filters_enabled?
|
17
17
|
|
18
|
-
@filters
|
18
|
+
if @filters.present?
|
19
|
+
if preserve_default_filters?
|
20
|
+
@filters + default_filters
|
21
|
+
else
|
22
|
+
@filters
|
23
|
+
end
|
24
|
+
else
|
25
|
+
default_filters
|
26
|
+
end
|
19
27
|
end
|
20
28
|
|
21
29
|
# Setter to enable / disable filters on this resource.
|
@@ -30,11 +38,33 @@ module ActiveAdmin
|
|
30
38
|
@filters_enabled.nil? ? namespace.filters : @filters_enabled
|
31
39
|
end
|
32
40
|
|
41
|
+
def preserve_default_filters!
|
42
|
+
@preserve_default_filters = true
|
43
|
+
end
|
44
|
+
|
45
|
+
def preserve_default_filters?
|
46
|
+
@preserve_default_filters == true
|
47
|
+
end
|
48
|
+
|
49
|
+
# Remove a filter for this resource. If filters are not enabled, this method
|
50
|
+
# will raise a RuntimeError
|
51
|
+
#
|
52
|
+
# @param [Symbol] attribute The attribute to not filter on
|
53
|
+
def remove_filter(attribute)
|
54
|
+
unless filters_enabled?
|
55
|
+
raise RuntimeError, "Can't remove a filter when filters are disabled. Enable filters with 'config.filters = true'"
|
56
|
+
end
|
57
|
+
|
58
|
+
@filters ||= default_filters
|
59
|
+
|
60
|
+
@filters.delete_if { |f| f.fetch(:attribute) == attribute }
|
61
|
+
end
|
62
|
+
|
33
63
|
# Add a filter for this resource. If filters are not enabled, this method
|
34
64
|
# will raise a RuntimeError
|
35
65
|
#
|
36
66
|
# @param [Symbol] attribute The attribute to filter on
|
37
|
-
# @param [Hash] options The set of options that are passed through to
|
67
|
+
# @param [Hash] options The set of options that are passed through to
|
38
68
|
# metasearch for the field definition.
|
39
69
|
def add_filter(attribute, options = {})
|
40
70
|
unless filters_enabled?
|
@@ -76,23 +76,17 @@ module ActiveAdmin
|
|
76
76
|
form_buffers.last << template.content_tag(:h3, object.class.reflect_on_association(association).klass.model_name.human(:count => 1.1))
|
77
77
|
inputs options, &form_block
|
78
78
|
|
79
|
-
|
80
|
-
js = with_new_form_buffer do
|
81
|
-
inputs_for_nested_attributes :for => [association, object.class.reflect_on_association(association).klass.new],
|
82
|
-
:class => "inputs has_many_fields",
|
83
|
-
:for_options => {
|
84
|
-
:child_index => "NEW_RECORD"
|
85
|
-
}, &form_block
|
86
|
-
end
|
87
|
-
|
88
|
-
js = template.escape_javascript(js)
|
89
|
-
js = template.link_to I18n.t('active_admin.has_many_new', :model => object.class.reflect_on_association(association).klass.model_name.human), "#", :onclick => "$(this).before('#{js}'.replace(/NEW_RECORD/g, new Date().getTime())); return false;", :class => "button"
|
90
|
-
|
79
|
+
js = js_for_has_many(association, form_block, template)
|
91
80
|
form_buffers.last << js.html_safe
|
92
81
|
end
|
93
82
|
end
|
94
83
|
form_buffers.last << content.html_safe
|
95
84
|
end
|
85
|
+
|
86
|
+
def semantic_errors(*args)
|
87
|
+
content = with_new_form_buffer { super }
|
88
|
+
form_buffers.last << content.html_safe unless content.nil?
|
89
|
+
end
|
96
90
|
|
97
91
|
# These methods are deprecated and removed from Formtastic, however are
|
98
92
|
# supported here to help with transition.
|
@@ -175,5 +169,28 @@ module ActiveAdmin
|
|
175
169
|
return_value
|
176
170
|
end
|
177
171
|
|
172
|
+
# Capture the ADD JS
|
173
|
+
def js_for_has_many(association, form_block, template)
|
174
|
+
association_reflection = object.class.reflect_on_association(association)
|
175
|
+
association_human_name = association_reflection.klass.model_name.human
|
176
|
+
placeholder = "NEW_#{association_human_name.upcase.split(' ').join('_')}_RECORD"
|
177
|
+
|
178
|
+
js = with_new_form_buffer do
|
179
|
+
inputs_for_nested_attributes :for => [association, association_reflection.klass.new],
|
180
|
+
:class => "inputs has_many_fields",
|
181
|
+
:for_options => { :child_index => placeholder },
|
182
|
+
&form_block
|
183
|
+
end
|
184
|
+
|
185
|
+
js = template.escape_javascript(js)
|
186
|
+
|
187
|
+
text = I18n.t 'active_admin.has_many_new', :model => association_human_name
|
188
|
+
onclick = "$(this).siblings('li.input').append('#{js}'.replace(/#{placeholder}/g, new Date().getTime())); return false;"
|
189
|
+
|
190
|
+
template.link_to text, "#",
|
191
|
+
:onclick => onclick,
|
192
|
+
:class => "button"
|
193
|
+
end
|
194
|
+
|
178
195
|
end
|
179
196
|
end
|
data/lib/active_admin/inputs.rb
CHANGED
@@ -0,0 +1,40 @@
|
|
1
|
+
module ActiveAdmin
|
2
|
+
module Inputs
|
3
|
+
class FilterBooleanInput < ::Formtastic::Inputs::BooleanInput
|
4
|
+
include FilterBase
|
5
|
+
|
6
|
+
def to_html
|
7
|
+
input_wrapping do
|
8
|
+
[ label_html,
|
9
|
+
check_box_html
|
10
|
+
].join("\n").html_safe
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def check_box_html
|
15
|
+
template.check_box_tag("#{object_name}[#{method}]", checked_value, checked?, input_html_options)
|
16
|
+
end
|
17
|
+
|
18
|
+
def search_method
|
19
|
+
method.to_s.match(metasearch_conditions) ? method : "#{method}_eq"
|
20
|
+
end
|
21
|
+
|
22
|
+
def checked?
|
23
|
+
if defined? ActionView::Helpers::InstanceTag
|
24
|
+
object && ActionView::Helpers::InstanceTag.check_box_checked?(object.send(search_method), checked_value)
|
25
|
+
else
|
26
|
+
object && boolean_checked?(object.send(search_method), checked_value)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def input_html_options
|
31
|
+
{ :name => "q[#{search_method}]" }
|
32
|
+
end
|
33
|
+
|
34
|
+
def metasearch_conditions
|
35
|
+
/is_true|is_false|is_present/
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -1,13 +1,17 @@
|
|
1
1
|
cs:
|
2
2
|
active_admin:
|
3
3
|
dashboard: Úvod
|
4
|
-
dashboard_welcome:
|
4
|
+
dashboard_welcome:
|
5
|
+
welcome: "Vítejte v Active Admin. Toto je nástěnka."
|
6
|
+
call_to_action: "Pro přidání sekcí nástěnky se podívejte do 'app/admin/dashboards.rb'"
|
5
7
|
view: "Zobrazit"
|
6
8
|
edit: "Upravit"
|
7
9
|
delete: "Smazat"
|
8
10
|
delete_confirmation: "Jste si jistí, že chcete tuto položku smazat?"
|
9
11
|
new_model: "Nový"
|
12
|
+
create_model: "Nový"
|
10
13
|
edit_model: "Upravit"
|
14
|
+
update_model: "Upravit"
|
11
15
|
delete_model: "Smazat"
|
12
16
|
details: "Detaily"
|
13
17
|
cancel: "Zrušit"
|
@@ -25,6 +29,7 @@ cs:
|
|
25
29
|
less_than: "Menší než"
|
26
30
|
main_content: "Prosím implementujte %{model}#main_content pro zobrazení obsahu."
|
27
31
|
logout: "Odhlášení"
|
32
|
+
powered_by: "Powered by %{active_admin} %{version}"
|
28
33
|
sidebars:
|
29
34
|
filters: "Filtr"
|
30
35
|
pagination:
|
@@ -32,6 +37,9 @@ cs:
|
|
32
37
|
one: "Zobrazena <b>1</b> položka"
|
33
38
|
one_page: "Počet zobrazených položek %{n}"
|
34
39
|
multiple: "<b>%{from} - %{to}</b> z <b>%{total}</b>"
|
40
|
+
entry:
|
41
|
+
one: "položka"
|
42
|
+
other: "položky"
|
35
43
|
any: "Kterákoliv"
|
36
44
|
blank_slate:
|
37
45
|
content: "Zatím zde není žádný obsah."
|
@@ -11,6 +11,7 @@ de:
|
|
11
11
|
new_model: "%{model} erstellen"
|
12
12
|
create_model: "%{model} erstellen"
|
13
13
|
edit_model: "%{model} bearbeiten"
|
14
|
+
update_model: "%{model} bearbeiten"
|
14
15
|
delete_model: "%{model} löschen"
|
15
16
|
details: "%{model} Details"
|
16
17
|
cancel: "Abbrechen"
|
@@ -28,6 +29,7 @@ de:
|
|
28
29
|
less_than: "Kleiner als"
|
29
30
|
main_content: "Bitte implementieren Sie %{model}#main_content, um Inhalte anzuzeigen."
|
30
31
|
logout: "Abmelden"
|
32
|
+
powered_by: "Powered by %{active_admin} %{version}"
|
31
33
|
sidebars:
|
32
34
|
filters: "Filter"
|
33
35
|
pagination:
|
@@ -42,6 +44,17 @@ de:
|
|
42
44
|
blank_slate:
|
43
45
|
content: "Es gibt noch keine %{resource_name}."
|
44
46
|
link: "Erstellen"
|
47
|
+
batch_actions:
|
48
|
+
button_label: "Stapelverarbeitung"
|
49
|
+
delete_confirmation: "Sind Sie sicher dass sie diese %{plural_model} löschen wollen? Dies kann nicht rückgängig gemacht werden"
|
50
|
+
succesfully_destroyed:
|
51
|
+
one: "Erfolgreich 1 %{model} gelöscht"
|
52
|
+
other: "Erfolgreich %{count} %{plural_model} gelöscht"
|
53
|
+
selection_toggle_explanation: "(Auswahl umschalten)"
|
54
|
+
link: "erstellen"
|
55
|
+
action_label: "%{title} ausgewählte"
|
56
|
+
labels:
|
57
|
+
destroy: "Lösche"
|
45
58
|
comments:
|
46
59
|
body: "Inhalt"
|
47
60
|
author: "Autor"
|
@@ -68,7 +81,7 @@ de:
|
|
68
81
|
forgot_your_password: "Passwort vergessen?"
|
69
82
|
activerecord:
|
70
83
|
attributes:
|
71
|
-
admin_user:
|
84
|
+
admin_user:
|
72
85
|
id: ID
|
73
86
|
email: E-Mail
|
74
87
|
encrypted_Password: Verschlüsseltes Passwort
|
@@ -85,8 +98,8 @@ de:
|
|
85
98
|
models:
|
86
99
|
admin_user:
|
87
100
|
one: Administrator
|
88
|
-
other: Administratoren
|
89
|
-
devise:
|
101
|
+
other: Administratoren
|
102
|
+
devise:
|
90
103
|
failure:
|
91
104
|
admin_user:
|
92
105
|
invalid: Benutzername oder Kennwort nicht korrekt.
|
@@ -29,6 +29,7 @@ fr:
|
|
29
29
|
less_than: "Plus petit que"
|
30
30
|
main_content: "Veuillez implémenter %{model}#main_content pour afficher le contenu."
|
31
31
|
logout: "Déconnexion"
|
32
|
+
powered_by: "Propulsé par %{active_admin} %{version}"
|
32
33
|
sidebars:
|
33
34
|
filters: "Filtres"
|
34
35
|
pagination:
|
@@ -51,7 +52,10 @@ fr:
|
|
51
52
|
other: "%{count} %{plural_model} supprimés"
|
52
53
|
selection_toggle_explanation: "(Inverser la sélection)"
|
53
54
|
link: "Créer un"
|
54
|
-
|
55
|
+
action_label: "%{title} les éléments sélectionnés"
|
56
|
+
labels:
|
57
|
+
destroy: "Supprimer"
|
58
|
+
comments:
|
55
59
|
body: "Corps"
|
56
60
|
author: "Auteur"
|
57
61
|
title: "Commentaire"
|
@@ -19,7 +19,7 @@ he:
|
|
19
19
|
previous: "הקודם"
|
20
20
|
next: "הבא"
|
21
21
|
download: "הורד:"
|
22
|
-
has_many_new: "הוספת %{model חדש
|
22
|
+
has_many_new: "הוספת %{model} חדש"
|
23
23
|
has_many_delete: "מחיקה"
|
24
24
|
filter: "סינון"
|
25
25
|
clear_filters: "איפוס שדות"
|
@@ -27,8 +27,9 @@ he:
|
|
27
27
|
equal_to: "שווה ל"
|
28
28
|
greater_than: "גדול מ"
|
29
29
|
less_than: "פחות מ"
|
30
|
-
main_content: "
|
30
|
+
main_content: "Please implement %{model}#main_content to display content."
|
31
31
|
logout: "התנתקות"
|
32
|
+
powered_by: "Powered by %{active_admin} %{version}"
|
32
33
|
sidebars:
|
33
34
|
filters: "סינון"
|
34
35
|
pagination:
|
@@ -13,12 +13,12 @@ it:
|
|
13
13
|
edit_model: "Modifica %{model}"
|
14
14
|
update_model: "Modifica %{model}"
|
15
15
|
delete_model: "Rimuovi %{model}"
|
16
|
-
details: "%{model}
|
16
|
+
details: "Dettagli %{model}"
|
17
17
|
cancel: "Annulla"
|
18
18
|
empty: "Vuoto"
|
19
19
|
previous: "Precedente"
|
20
20
|
next: "Prossimo"
|
21
|
-
download: "
|
21
|
+
download: "Scarica:"
|
22
22
|
has_many_new: "Aggiungi nuovo/a %{model}"
|
23
23
|
has_many_delete: "Rimuovi"
|
24
24
|
filter: "Filtra"
|
@@ -29,6 +29,7 @@ it:
|
|
29
29
|
less_than: "Minore di"
|
30
30
|
main_content: "Devi implemetare %{model}#main_content per mostrarne il contenuto."
|
31
31
|
logout: "Esci"
|
32
|
+
powered_by: "Powered by %{active_admin} %{version}"
|
32
33
|
sidebars:
|
33
34
|
filters: "Filtri"
|
34
35
|
pagination:
|
@@ -44,7 +45,7 @@ it:
|
|
44
45
|
content: "Non sono presenti %{resource_name}"
|
45
46
|
link: "Crea nuovo/a"
|
46
47
|
batch_actions:
|
47
|
-
button_label: "Azioni
|
48
|
+
button_label: "Azioni multiple"
|
48
49
|
delete_confirmation: "Sei sicuro di volere cancellare %{plural_model}? Non sarà possibile annulare questa modifica."
|
49
50
|
succesfully_destroyed:
|
50
51
|
one: "Eliminato con successo 1 %{model}"
|
@@ -77,4 +78,4 @@ it:
|
|
77
78
|
submit: "Cambia la mia password"
|
78
79
|
links:
|
79
80
|
sign_in: "Entra"
|
80
|
-
forgot_your_password: "Dimenticato la password?"
|
81
|
+
forgot_your_password: "Dimenticato la password?"
|
@@ -27,6 +27,7 @@ ja:
|
|
27
27
|
less_than: "より小さい"
|
28
28
|
main_content: "内容を表示するために %{model}#main_content を実装してください。"
|
29
29
|
logout: "ログアウト"
|
30
|
+
powered_by: "Powered by %{active_admin} %{version}"
|
30
31
|
sidebars:
|
31
32
|
filters: "検索条件"
|
32
33
|
pagination:
|
@@ -39,18 +40,18 @@ ja:
|
|
39
40
|
content: "%{resource_name} はまだありません。"
|
40
41
|
link: "作成する"
|
41
42
|
batch_actions:
|
42
|
-
button_label: "
|
43
|
-
delete_confirmation: "
|
43
|
+
button_label: "一括操作"
|
44
|
+
delete_confirmation: "%{plural_model} を削除してもよろしいですか? この操作は取り消すことができません。"
|
44
45
|
succesfully_destroyed:
|
45
|
-
one: "
|
46
|
-
other: "
|
47
|
-
selection_toggle_explanation: "(
|
48
|
-
link: "作成する
|
49
|
-
action_label: "
|
46
|
+
one: "1件の %{model} を削除しました"
|
47
|
+
other: "%{count}件の %{plural_model} を削除しました"
|
48
|
+
selection_toggle_explanation: "(選択)"
|
49
|
+
link: "作成する"
|
50
|
+
action_label: "選択した行を%{title}"
|
50
51
|
labels:
|
51
52
|
destroy: "削除する"
|
52
53
|
comments:
|
53
|
-
body: "
|
54
|
+
body: "本文"
|
54
55
|
author: "作成者"
|
55
56
|
title: "コメント"
|
56
57
|
add: "コメントを追加"
|
@@ -58,19 +59,18 @@ ja:
|
|
58
59
|
no_comments_yet: "コメントはまだありません。"
|
59
60
|
title_content: "コメント (%{count})"
|
60
61
|
errors:
|
61
|
-
empty_text: "
|
62
|
+
empty_text: "テキストが空のため、コメントは保存されませんでした。"
|
62
63
|
devise:
|
63
64
|
login:
|
64
65
|
title: "ログイン"
|
65
|
-
remember_me: "
|
66
|
+
remember_me: "次回から自動的にログイン"
|
66
67
|
submit: "ログイン"
|
67
68
|
reset_password:
|
68
69
|
title: "パスワードをお忘れですか?"
|
69
|
-
submit: "
|
70
|
+
submit: "パスワードをリセットする"
|
70
71
|
change_password:
|
71
72
|
title: "パスワードを変更する"
|
72
73
|
submit: "パスワードを変更する"
|
73
74
|
links:
|
74
75
|
sign_in: "サインイン"
|
75
76
|
forgot_your_password: "パスワードをお忘れですか?"
|
76
|
-
|