solidus_i18n 1.3.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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