Skip to content

Commit 54ecfbd

Browse files
committed
Allow translating resource names in CRUD messages
Fixes #1242
1 parent 043e7c6 commit 54ecfbd

File tree

7 files changed

+45
-12
lines changed

7 files changed

+45
-12
lines changed

lib/administrate/resource_resolver.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ def resource_name
2121
end
2222

2323
def resource_title
24-
model_path_parts.join(" ")
24+
resource_class.model_name.human
2525
end
2626

2727
private

spec/features/edit_page_spec.rb

+15-5
Original file line numberDiff line numberDiff line change
@@ -65,13 +65,23 @@
6565
new_email = "example@example.com"
6666
customer = create(:customer)
6767

68-
visit edit_admin_customer_path(customer)
69-
fill_in "Name", with: new_name
70-
fill_in "Email", with: new_email
71-
click_on "Update Customer"
68+
translations = {
69+
activerecord: {
70+
models: {
71+
customer: "Custom"
72+
},
73+
},
74+
}
75+
76+
with_translations(:en, translations) do
77+
visit edit_admin_customer_path(customer)
78+
fill_in "Name", with: new_name
79+
fill_in "Email", with: new_email
80+
click_on "Update Custom"
81+
end
7282

7383
expect(page).to have_text(new_name)
7484
expect(page).to have_text(new_email)
75-
expect(page).to have_flash("Customer was successfully updated.")
85+
expect(page).to have_flash("Custom was successfully updated.")
7686
end
7787
end

spec/features/log_entries_form_spec.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
expect(page).to have_link(customer.name)
1313
expect(page).to have_flash(
14-
t("administrate.controller.create.success", resource: "LogEntry"),
14+
t("administrate.controller.create.success", resource: "Log entry"),
1515
)
1616
end
1717

spec/features/log_entries_index_spec.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
click_on t("administrate.actions.destroy")
5656

5757
expect(page).to have_flash(
58-
t("administrate.controller.destroy.success", resource: "LogEntry"),
58+
t("administrate.controller.destroy.success", resource: "Log entry"),
5959
)
6060
end
6161
end

spec/lib/administrate/resource_resolver_spec.rb

+24-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
require "spec_helper"
22
require "active_support/core_ext/string/inflections"
3+
require "active_record"
34
require "support/constant_helpers"
45
require "administrate/resource_resolver"
6+
require "support/i18n"
57

68
describe Administrate::ResourceResolver do
79
describe "#dashboard_class" do
@@ -60,17 +62,37 @@ module Library; class Book; end; end
6062
end
6163
end
6264

63-
describe "#resource_title" do
65+
describe "#resource_title" do # rubocop:disable Rails/ApplicationRecord
6466
it "handles global-namepsace models" do
67+
class User < ActiveRecord::Base; self.abstract_class = true; end
6568
resolver = Administrate::ResourceResolver.new("admin/users")
6669

6770
expect(resolver.resource_title).to eq("User")
71+
ensure
72+
remove_constants :User
6873
end
6974

7075
it "handles namespaced models" do
76+
module Library
77+
class Book < ActiveRecord::Base; self.abstract_class = true; end
78+
end
7179
resolver = Administrate::ResourceResolver.new("admin/library/books")
7280

73-
expect(resolver.resource_title).to eq("Library Book")
81+
expect(resolver.resource_title).to eq("Book")
82+
83+
translations = {
84+
activerecord: {
85+
models: {
86+
"library/book": "Library Book",
87+
},
88+
},
89+
}
90+
91+
with_translations(:en, translations) do
92+
expect(resolver.resource_title).to eq("Library Book")
93+
end
94+
ensure
95+
remove_constants :Library
7496
end
7597
end
7698

spec/support/i18n.rb

-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
RSpec.configure do |config|
2-
config.include AbstractController::Translation
3-
42
def with_translations(locale, translations)
53
original_backend = I18n.backend
64

spec/support/rails_i18n.rb

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
RSpec.configure do |config|
2+
config.include AbstractController::Translation
3+
end

0 commit comments

Comments
 (0)