diff --git a/lib/avo/resources/base.rb b/lib/avo/resources/base.rb index c51c58f0ff..b8b8cae16e 100644 --- a/lib/avo/resources/base.rb +++ b/lib/avo/resources/base.rb @@ -179,7 +179,7 @@ def translation_key end def name - @name ||= name_from_translation_key(count: 1, default: class_name.underscore.humanize) + name_from_translation_key(count: 1, default: class_name.underscore.humanize) end alias_method :singular_name, :name @@ -203,8 +203,6 @@ def name_from_translation_key(count:, default:) end def underscore_name - return @name if @name.present? - name.demodulize.underscore end diff --git a/spec/dummy/config/locales/avo.pt.yml b/spec/dummy/config/locales/avo.pt.yml new file mode 100644 index 0000000000..ccced052e0 --- /dev/null +++ b/spec/dummy/config/locales/avo.pt.yml @@ -0,0 +1,5 @@ +--- +pt: + avo: + resource_translations: + product: "Produto" diff --git a/spec/features/avo/generators/locales_generator_spec.rb b/spec/features/avo/generators/locales_generator_spec.rb index 492e1f232e..bb2b97d542 100644 --- a/spec/features/avo/generators/locales_generator_spec.rb +++ b/spec/features/avo/generators/locales_generator_spec.rb @@ -3,11 +3,19 @@ RSpec.feature "locales generator", type: :feature do it "generates the files" do - # Backup the en locale - en_locale_backup = Rails.root.join("config", "locales", "avo.en.yml.bak") - FileUtils.cp(Rails.root.join("config", "locales", "avo.en.yml"), en_locale_backup) + # Define locales to backup + backup_locales = %w[en pt] - locales = %w[en fr nn nb pt-BR pt ro tr ar ja es] + # Backup locales + backup_files = {} + backup_locales.each do |locale| + original_file = Rails.root.join("config", "locales", "avo.#{locale}.yml") + backup_file = Rails.root.join("config", "locales", "avo.#{locale}.yml.bak") + FileUtils.cp(original_file, backup_file) if File.exist?(original_file) + backup_files[locale] = {original: original_file, backup: backup_file} + end + + locales = %w[ar de en es fr it ja nb nl nn pl pt-BR pt ro ru tr uk zh] files = locales.map do |locale| Rails.root.join("config", "locales", "avo.#{locale}.yml").to_s @@ -21,7 +29,9 @@ check_files_and_clean_up files - # Restore the en locale - FileUtils.mv(en_locale_backup, Rails.root.join("config", "locales", "avo.en.yml")) + # Restore locales from backup + backup_files.each do |locale, paths| + FileUtils.mv(paths[:backup], paths[:original]) if File.exist?(paths[:backup]) + end end end diff --git a/spec/features/avo/localization_spec.rb b/spec/features/avo/localization_spec.rb new file mode 100644 index 0000000000..d0d59ad491 --- /dev/null +++ b/spec/features/avo/localization_spec.rb @@ -0,0 +1,11 @@ +require "rails_helper" + +RSpec.feature "Localization spec", type: :feature do + describe "force_locale" do + it "translates the resource name on the create button" do + visit avo.resources_products_path(force_locale: :pt) + + expect(page).to have_text "Criar novo produto" + end + end +end