solidus_i18n 1.3.0 → 2.0.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.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +35 -50
  3. data/config/routes.rb +0 -14
  4. data/lib/solidus_i18n.rb +0 -5
  5. data/lib/solidus_i18n/engine.rb +0 -39
  6. data/lib/solidus_i18n/version.rb +2 -2
  7. data/solidus_i18n.gemspec +0 -13
  8. data/spec/{lib/solidus_i18n/locale_spec.rb → solidus_i18n_spec.rb} +16 -4
  9. data/spec/spec_helper.rb +0 -1
  10. metadata +3 -242
  11. data/app/assets/javascripts/spree/backend/edit_inline_locales.js.coffee.erb +0 -56
  12. data/app/assets/javascripts/spree/backend/helpers.js.coffee.erb +0 -14
  13. data/app/assets/javascripts/spree/backend/inline_table_locales.js.coffee +0 -16
  14. data/app/assets/javascripts/spree/backend/solidus_i18n.js +0 -2
  15. data/app/assets/javascripts/spree/backend/templates/available_locales.hbs.erb +0 -31
  16. data/app/assets/javascripts/spree/backend/translations.js.coffee +0 -3
  17. data/app/assets/javascripts/spree/frontend/locale.js.coffee +0 -3
  18. data/app/assets/javascripts/spree/frontend/solidus_i18n.js +0 -2
  19. data/app/assets/stylesheets/spree/backend/solidus_i18n.css +0 -8
  20. data/app/assets/stylesheets/spree/frontend/solidus_i18n.css +0 -8
  21. data/app/controllers/spree/admin/locales_controller.rb +0 -16
  22. data/app/controllers/spree/api/available_locales_controller.rb +0 -28
  23. data/app/controllers/spree/api/base_controller_decorator.rb +0 -3
  24. data/app/controllers/spree/base_controller_decorator.rb +0 -3
  25. data/app/controllers/spree/locale_controller_decorator.rb +0 -5
  26. data/app/helpers/solidus_i18n/locale_helper.rb +0 -29
  27. data/app/models/spree/store_decorator.rb +0 -13
  28. data/app/overrides/spree/admin/shared/_configuration_menu/add_i18n_tab.html.erb.deface +0 -2
  29. data/app/overrides/spree/shared/_main_nav_bar/locale_selector.html.erb.deface +0 -16
  30. data/app/views/spree/admin/locales/show.html.erb +0 -21
  31. data/app/views/spree/api/available_locales/show.json.jbuilder +0 -8
  32. data/config/initializers/country_names.rb +0 -51
  33. data/config/initializers/routing_filter.rb +0 -2
  34. data/db/migrate/20150609154031_remove_translations_from_spree_tables.rb +0 -65
  35. data/db/migrate/20170523151209_add_available_locales_on_store.rb +0 -14
  36. data/lib/generators/solidus_i18n/install/install_generator.rb +0 -27
  37. data/lib/solidus_i18n/configuration.rb +0 -9
  38. data/lib/solidus_i18n/controller_locale_helper.rb +0 -29
  39. data/lib/solidus_i18n/locale.rb +0 -9
  40. data/spec/controllers/locales_controller_spec.rb +0 -25
  41. data/spec/features/admin/translations_spec.rb +0 -56
  42. data/spec/features/russian_errors_translation_spec.rb +0 -17
  43. data/spec/features/translation_spec.rb +0 -31
  44. data/spec/features/translations_spec.rb +0 -30
  45. data/spec/helpers/locale_helper_spec.rb +0 -35
  46. data/spec/support/capybara.rb +0 -6
  47. data/spec/support/database_cleaner.rb +0 -23
  48. data/spec/support/factory_girl.rb +0 -5
  49. data/spec/support/i18n.rb +0 -5
  50. data/spec/support/spree.rb +0 -12
@@ -1,14 +0,0 @@
1
- class AddAvailableLocalesOnStore < SolidusSupport::Migration[4.2]
2
- def change
3
- add_column :spree_stores, :preferences, :text
4
-
5
- reversible do |dir|
6
- dir.up do
7
- Spree::Store.reset_column_information
8
- Spree::Store.all.each do |store|
9
- store.update_attributes(preferred_available_locales: SolidusI18n::Config.available_locales)
10
- end
11
- end
12
- end
13
- end
14
- end
@@ -1,27 +0,0 @@
1
- module SolidusI18n
2
- module Generators
3
- class InstallGenerator < Rails::Generators::Base
4
- class_option :auto_run_migrations, type: :boolean, default: true
5
-
6
- def add_javascripts
7
- append_file 'vendor/assets/javascripts/spree/backend/all.js',
8
- "//= require spree/backend/solidus_i18n\n"
9
- append_file 'vendor/assets/javascripts/spree/frontend/all.js',
10
- "//= require spree/frontend/solidus_i18n\n"
11
- end
12
-
13
- def add_migrations
14
- run 'bin/rake solidus_i18n:install:migrations'
15
- end
16
-
17
- def run_migrations
18
- if options[:auto_run_migrations] ||
19
- ['', 'y', 'Y'].include?(ask('Would you like to run the migrations now? [Y/n]'))
20
- run 'bin/rake db:migrate'
21
- else
22
- puts "Skiping rake db:migrate, don't forget to run it!"
23
- end
24
- end
25
- end
26
- end
27
- end
@@ -1,9 +0,0 @@
1
- module SolidusI18n
2
- class Configuration < Spree::Preferences::Configuration
3
- # These configs intend to, respectively:
4
- #
5
- # Set locales that should be available for end users
6
- #
7
- preference :available_locales, :array, default: [:en]
8
- end
9
- end
@@ -1,29 +0,0 @@
1
- module SolidusI18n
2
- # The fact this logic is in a single module also helps to apply a custom
3
- # locale on the spree/api context since api base controller inherits from
4
- # MetalController instead of Spree::BaseController
5
- module ControllerLocaleHelper
6
- extend ActiveSupport::Concern
7
-
8
- included do
9
- prepend_before_action :set_user_language
10
-
11
- private
12
-
13
- # Overrides the Spree::Core::ControllerHelpers::Common logic so that only
14
- # supported locales defined by SolidusI18n::Config.supported_locales can
15
- # actually be set
16
- def set_user_language
17
- # params[:locale] can be added by routing-filter gem
18
- I18n.locale = \
19
- if params[:locale] && current_store.preferred_available_locales.include?(params[:locale].to_sym)
20
- params[:locale]
21
- elsif respond_to?(:config_locale, true) && !config_locale.blank?
22
- config_locale
23
- else
24
- Rails.application.config.i18n.default_locale || I18n.default_locale
25
- end
26
- end
27
- end
28
- end
29
- end
@@ -1,9 +0,0 @@
1
- module SolidusI18n
2
- class Locale
3
- def self.all
4
- I18n.available_locales.select do |locale|
5
- I18n.t(:spree, locale: locale, fallback: false, default: nil)
6
- end
7
- end
8
- end
9
- end
@@ -1,25 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe Spree::HomeController, type: :controller do
4
- let(:store) { create(:store) }
5
- routes { Spree::Core::Engine.routes }
6
-
7
- before do
8
- reset_spree_preferences
9
- store.update_attributes(preferred_available_locales: %i[en es])
10
- end
11
-
12
- context 'tries not supported fr locale' do
13
- it 'falls back do default locale' do
14
- get :index, params: { locale: 'fr' }
15
- expect(I18n.locale).to eq :en
16
- end
17
- end
18
-
19
- context 'tries supported es locale' do
20
- it 'takes this locale' do
21
- get :index, params: { locale: 'es' }
22
- expect(I18n.locale).to eq :es
23
- end
24
- end
25
- end
@@ -1,56 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.feature 'Translations', :js do
4
- stub_authorization!
5
-
6
- given!(:store) { create(:store) }
7
-
8
- background do
9
- reset_spree_preferences
10
- end
11
-
12
- context 'localization settings' do
13
- given(:language) { Spree.t(:this_file_language, scope: 'i18n', locale: 'de') }
14
- given(:french) { Spree.t(:this_file_language, scope: 'i18n', locale: 'fr') }
15
-
16
- background do
17
- visit spree.root_path
18
- store.update_attributes(preferred_available_locales: [])
19
-
20
- visit spree.edit_admin_general_settings_path
21
- click_on 'Locales'
22
- end
23
-
24
- scenario 'adds german to available locales' do
25
- within("#store-id-#{store.id}") do
26
- expect(page).to_not have_content(language)
27
- find('a[data-action="edit"]').click
28
-
29
- targetted_select2_search(language, from: '.available-locales')
30
-
31
- find('a[data-action="save"]').click
32
-
33
- wait_for_ajax
34
-
35
- expect(page).to have_content(language)
36
- expect(store.reload.preferred_available_locales).to include(:de)
37
- end
38
- end
39
-
40
- scenario 'adds french to available locales' do
41
- within("#store-id-#{store.id}") do
42
- expect(page).to_not have_content(french)
43
- find('a[data-action="edit"]').click
44
-
45
- targetted_select2_search(french, from: '.available-locales')
46
-
47
- find('a[data-action="save"]').click
48
-
49
- wait_for_ajax
50
-
51
- expect(page).to have_content(french)
52
- expect(store.reload.preferred_available_locales).to include(:fr)
53
- end
54
- end
55
- end
56
- end
@@ -1,17 +0,0 @@
1
- # encoding: utf-8
2
- require 'spec_helper'
3
-
4
- RSpec.describe 'Russian errors translations' do
5
- def translation(count)
6
- Spree.t(:errors_prohibited_this_record_from_being_saved, count: count)
7
- end
8
-
9
- context 'when current locale is Russian' do
10
- it 'translation is available' do
11
- I18n.locale = :ru
12
- expect(translation(1)).to eq 'Одна ошибка не позволяет сохранить запись в базе'
13
- expect(translation(3)).to eq '3 ошибки не позволяют сохранить запись в базе'
14
- expect(translation(10)).to eq '10 ошибок не позволяют сохранить запись в базе'
15
- end
16
- end
17
- end
@@ -1,31 +0,0 @@
1
- # encoding: utf-8
2
- require 'spec_helper'
3
-
4
- RSpec.describe 'Translation' do
5
- def translation
6
- I18n.t('activerecord.attributes.spree/address.zipcode')
7
- end
8
-
9
- context 'when current locale is en' do
10
- it 'translation is available' do
11
- I18n.locale = :en
12
- expect(translation).to eq 'Zip Code'
13
- end
14
- end
15
-
16
- # German is chosen as an example of language whose translations are found in a file.
17
- context 'when current locale is German' do
18
- it 'translation is available' do
19
- I18n.locale = :de
20
- expect(translation).to eq 'PLZ'
21
- end
22
- end
23
-
24
- # Chilean spanish is chosen
25
- context 'when current locale is Chilean Spanish' do
26
- it 'translation is available' do
27
- I18n.locale = :'es-CL'
28
- expect(translation).to eq 'Código Postal'
29
- end
30
- end
31
- end
@@ -1,30 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- RSpec.feature 'Translations', :js do
6
- given(:language) { Spree.t(:this_file_language, scope: 'i18n', locale: 'pt-BR') }
7
- given(:store) { create(:store) }
8
-
9
- background do
10
- reset_spree_preferences
11
- store.update_attributes(preferred_available_locales: %i[en pt-BR])
12
- end
13
-
14
- context 'page' do
15
- context 'switches locale from the dropdown' do
16
- before do
17
- visit spree.root_path
18
- select(language, from: Spree.t(:language, scope: 'i18n'))
19
- end
20
-
21
- scenario 'selected translation is applied' do
22
- expect(page).to have_content(/#{Spree.t(:home, locale: 'pt-BR')}/i)
23
- end
24
-
25
- scenario 'JS cart link is translated' do
26
- expect(page).to have_content(/#{Spree.t(:cart, locale: 'pt-BR')}/i)
27
- end
28
- end
29
- end
30
- end
@@ -1,35 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe SolidusI18n::LocaleHelper do
4
- describe '#all_locales_options' do
5
- subject { all_locales_options }
6
-
7
- it 'includes en' do
8
- is_expected.to include(["English (US)", :en])
9
- end
10
-
11
- it 'includes ja' do
12
- is_expected.to include(["日本語 (ja-JP)", :ja])
13
- end
14
-
15
- describe 'locales' do
16
- subject { all_locales_options.map(&:last) }
17
-
18
- it 'includes each locale only once' do
19
- is_expected.to match_array(subject.uniq)
20
- end
21
-
22
- it 'should match Locale.all' do
23
- is_expected.to match_array SolidusI18n::Locale.all
24
- end
25
- end
26
-
27
- describe 'locale presentation' do
28
- subject { all_locales_options.map(&:first) }
29
-
30
- it 'should all be unique' do
31
- is_expected.to match_array(subject.uniq)
32
- end
33
- end
34
- end
35
- end
@@ -1,6 +0,0 @@
1
- require 'capybara/rspec'
2
- require 'capybara/rails'
3
- require 'capybara/poltergeist'
4
- require 'selenium/webdriver'
5
-
6
- Capybara.javascript_driver = :selenium_chrome_headless
@@ -1,23 +0,0 @@
1
- require 'database_cleaner'
2
-
3
- RSpec.configure do |config|
4
- config.before(:suite) do
5
- DatabaseCleaner.clean_with :truncation
6
- end
7
-
8
- config.before do
9
- DatabaseCleaner.strategy = :transaction
10
- end
11
-
12
- config.before(:each, :js) do
13
- DatabaseCleaner.strategy = :truncation
14
- end
15
-
16
- config.before do
17
- DatabaseCleaner.start
18
- end
19
-
20
- config.after do
21
- DatabaseCleaner.clean
22
- end
23
- end
@@ -1,5 +0,0 @@
1
- require 'factory_bot'
2
-
3
- RSpec.configure do |config|
4
- config.include FactoryBot::Syntax::Methods
5
- end
@@ -1,5 +0,0 @@
1
- RSpec.configure do |config|
2
- config.before do
3
- I18n.locale = I18n.default_locale
4
- end
5
- end
@@ -1,12 +0,0 @@
1
- require 'spree/testing_support/factories'
2
- require 'spree/testing_support/preferences'
3
- require 'spree/testing_support/url_helpers'
4
- require 'spree/testing_support/capybara_ext'
5
- require 'spree/testing_support/controller_requests'
6
- require 'spree/testing_support/authorization_helpers'
7
-
8
- RSpec.configure do |config|
9
- config.include Spree::TestingSupport::UrlHelpers
10
- config.include Spree::TestingSupport::Preferences
11
- config.include Spree::TestingSupport::ControllerRequests, type: :controller
12
- end