Skip to content
Merged
Show file tree
Hide file tree
Changes from 21 commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
a5d1c24
Try adding workflow actions
anitagraham Apr 28, 2021
4604a67
Minor editing of documentation
anitagraham Jul 15, 2022
495e012
Use matching ruby3 branch of refinerycms while still a work in progress
anitagraham Jul 18, 2022
34d37c2
CI - run on Ruby 3.1
anitagraham Jul 18, 2022
61d05e3
result is a url, not a page
fembem May 4, 2023
584b3f1
it should still work with Ruby 2.7+
parndt May 11, 2023
7496100
Update main.yml
parndt May 11, 2023
a38b2bb
Merge branch 'master' into ruby3
parndt May 12, 2023
fb61870
File.exists? -> File.exist?
parndt May 12, 2023
b674435
Update main.yml
parndt May 12, 2023
52931e3
Merge pull request #2 from fembem/around-generate-method-fix
anitagraham Sep 29, 2023
d3020a5
refactor(branch ruby3): compatible with refinerycms/ruby3
anitagraham Feb 18, 2025
7b8e15d
Merge branch 'master' into ruby3
parndt Dec 30, 2025
2d5a217
Refactor locale setting logic in find_or_set_locale
parndt Dec 31, 2025
0a934f7
Update mobility dependency version constraint
parndt Jan 2, 2026
d915b69
Update routing filter overrides for Rails 8+ support
parndt Jan 2, 2026
efdbc58
Update CI workflow to support new Ruby and database versions
parndt Jan 2, 2026
faf56d9
Enhance routing filter for Rails 7 and 8 compatibility
parndt Jan 2, 2026
0f184f9
Fix routing filter for Rails 7.1 and 8.0 compatibility
parndt Jan 2, 2026
cb28e01
Update routing filter for Rails 7.1 and 8 compatibility
parndt Jan 2, 2026
9709228
Only remove the existing patch if we're overriding it
parndt Jan 2, 2026
ea29ba7
Update refinerycms-i18n.gemspec
parndt Jan 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,9 @@ jobs:
test:
strategy:
matrix:
database: [ mysql, postgresql ]
ruby: [ 2.7, 2.6 ]
database: [ sqlite3, mysql, postgresql ]
ruby: [ 4.0, 3.4, 3.3, 3.2, 3.1 ]
fail-fast: false
max-parallel: 20
runs-on: ubuntu-latest

env:
Expand All @@ -29,7 +28,7 @@ jobs:
name: ${{ matrix.ruby }} ${{ matrix.database }}
steps:
- run: sudo apt-get update && sudo apt-get install libsqlite3-dev -y
- uses: actions/checkout@v2
- uses: actions/checkout@v6
- uses: ruby/setup-ruby@v1
with:
bundler-cache: true
Expand Down
80 changes: 80 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -87,3 +87,83 @@ spec/dummy

# Local Gemfile for developing without sharing dependencies
.gemfile
# Rails
.bundle
db/*.sqlite3
db/*.sqlite3-journal
*.log
tmp
tmp/**/*

# Documentation
doc/api
doc/app
.yardoc
.yardopts
coverage

# Public Uploads
public/system/*
public/themes/*

# Public Cache
public/javascripts/cache
public/stylesheets/cache
public/refinery/*

# Vendor Cache
vendor/cache

# Acts as Indexed
index/**/*

# Refinery Specific
*.tmproj
*.autobackupbyrefinery.*
refinerycms-*.gem

# Mac
.DS_Store

# Windows
Thumbs.db

# NetBeans
nbproject

# Eclipse
.project

# Redcar
.redcar

# Rubinius
*.rbc

# Vim
*.swp
*.swo

# RubyMine
.idea

# E-texteditor
.eprj

# Backup
*~

# Capybara Bug
capybara-*html

# sass
.sass-cache
.sass-cache/*

#rvm
.rvmrc
.rvmrc.*

# vendor/extensions dummy applications.
vendor/extensions/**/spec/dummy

21 changes: 10 additions & 11 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
source "https://rubygems.org"

gemspec

git "https://github.com/refinery/refinerycms", branch: "master" do
#
git "https://github.com/anitagraham/refinerycms", branch: "ruby3" do
gem "refinerycms"

group :test do
Expand All @@ -18,22 +17,22 @@ gem 'routing-filter', git: 'https://github.com/svenfuchs/routing-filter', branch

# Database Configuration
unless ENV["TRAVIS"]
gem "activerecord-jdbcsqlite3-adapter", :platform => :jruby
gem "sqlite3", :platform => :ruby
gem "activerecord-jdbcsqlite3-adapter", platform: :jruby
gem "sqlite3", platform: :ruby
end

if !ENV["TRAVIS"] || ENV["DB"] == "mysql"
gem "activerecord-jdbcmysql-adapter", :platform => :jruby
gem "jdbc-mysql", "= 5.1.13", :platform => :jruby
gem 'mysql2', '~> 0.5.3', :platform => :ruby
gem "activerecord-jdbcmysql-adapter", platform: :jruby
gem "jdbc-mysql", "= 5.1.13", platform: :jruby
gem 'mysql2', '~> 0.5.3', platform: :ruby
end

if !ENV["TRAVIS"] || ENV["DB"] == "postgresql"
gem "activerecord-jdbcpostgresql-adapter", :platform => :jruby
gem "pg", :platform => :ruby
gem "activerecord-jdbcpostgresql-adapter", platform: :jruby
gem "pg", platform: :ruby
end

gem "jruby-openssl", :platform => :jruby
gem "jruby-openssl", platform: :jruby

# Refinery/rails should pull in the proper versions of these
group :assets do
Expand Down
30 changes: 26 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,37 @@ rails g refinery:i18n

```ruby
Refinery::I18n.configure do |config|
config.default_locale = :en
config.default_locale = :en

# config.current_locale = :en

# config.default_frontend_locale = :en

config.frontend_locales = [:en,:ar]
config.frontend_locales = [:en, :ar]

config.locales = {:en=>"English", :ar=>"Arabic"}
#, :nl=>"Nederlands", :pt=>"Português", :"pt-BR"=>"Português brasileiro", :da=>"Dansk", :nb=>"Norsk Bokmål", :sl=>"Slovenian", :es=>"Español", :it=>"Italiano", :de=>"Deutsch", :lv=>"Latviski", :ru=>"Русский", :sv=>"Svenska", :pl=>"Polski", :"zh-CN"=>"简体中文", :"zh-TW"=>"繁體中文", :el=>"Ελληνικά", :rs=>"Srpski", :cs=>"Česky", :sk=>"Slovenský", :ja=>"日本語", :bg=>"Български", :hu=>"Hungarian", :uk=>"Українська"}
config.locales = { en: "English", ar: "Arabic" }
# { nl: "Nederlands",
# pt: "Português",
# "pt-BR": "Português brasileiro",
# da: "Dansk",
# nb: "Norsk Bokmål",
# sl: "Slovenian",
# es: "Español",
# it: "Italiano",
# de: "Deutsch",
# lv: "Latviski",
# ru: "Русский",
# sv: "Svenska",
# pl: "Polski",
# "zh-CN": "简体中文",
# "zh-TW": "繁體中文",
# el: "Ελληνικά",
# rs: "Srpski",
# cs: "Česky",
# sk: "Slovenský",
# ja: "日本語",
# bg: "Български",
# hu: "Hungarian",
# uk: "Українська" }
end
```
4 changes: 1 addition & 3 deletions Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,7 @@ end
ENGINE_PATH = File.dirname(__FILE__)
APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)

if File.exists?(APP_RAKEFILE)
load 'rails/tasks/engine.rake'
end
load 'rails/tasks/engine.rake' if File.exist?(APP_RAKEFILE)

require "refinerycms-testing"
Refinery::Testing::Railtie.load_dummy_tasks(ENGINE_PATH)
Expand Down
Binary file removed app/assets/images/refinery/icons/flags/ad.png
Binary file not shown.
Binary file removed app/assets/images/refinery/icons/flags/ae.png
Binary file not shown.
Binary file removed app/assets/images/refinery/icons/flags/af.png
Binary file not shown.
Binary file removed app/assets/images/refinery/icons/flags/ag.png
Binary file not shown.
Binary file removed app/assets/images/refinery/icons/flags/ai.png
Binary file not shown.
Binary file removed app/assets/images/refinery/icons/flags/al.png
Binary file not shown.
Binary file removed app/assets/images/refinery/icons/flags/am.png
Binary file not shown.
Binary file removed app/assets/images/refinery/icons/flags/an.png
Binary file not shown.
Binary file removed app/assets/images/refinery/icons/flags/ao.png
Binary file not shown.
Binary file removed app/assets/images/refinery/icons/flags/ar.png
Binary file not shown.
Binary file removed app/assets/images/refinery/icons/flags/as.png
Binary file not shown.
Binary file removed app/assets/images/refinery/icons/flags/at.png
Binary file not shown.
Binary file removed app/assets/images/refinery/icons/flags/au.png
Binary file not shown.
Binary file removed app/assets/images/refinery/icons/flags/aw.png
Binary file not shown.
Binary file removed app/assets/images/refinery/icons/flags/ax.png
Binary file not shown.
Binary file removed app/assets/images/refinery/icons/flags/az.png
Binary file not shown.
Binary file removed app/assets/images/refinery/icons/flags/ba.png
Binary file not shown.
Binary file removed app/assets/images/refinery/icons/flags/bb.png
Binary file not shown.
Binary file removed app/assets/images/refinery/icons/flags/bd.png
Binary file not shown.
Binary file removed app/assets/images/refinery/icons/flags/be.png
Binary file not shown.
Binary file removed app/assets/images/refinery/icons/flags/bf.png
Binary file not shown.
Binary file removed app/assets/images/refinery/icons/flags/bg.png
Binary file not shown.
Binary file removed app/assets/images/refinery/icons/flags/bh.png
Binary file not shown.
Binary file removed app/assets/images/refinery/icons/flags/bi.png
Binary file not shown.
Binary file removed app/assets/images/refinery/icons/flags/bj.png
Binary file not shown.
Binary file removed app/assets/images/refinery/icons/flags/bm.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/bn.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/bo.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/bs.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/bt.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/bv.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/bw.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/by.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/bz.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/ca.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/cc.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/cd.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/cf.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/cg.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/ch.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/ci.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/ck.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/cl.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/cm.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/cn.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/co.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/cr.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/cs.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/cu.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/cv.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/cx.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/cy.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/da.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/de.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/dj.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/dm.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/do.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/dz.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/ec.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/eg.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/eh.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/el.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/en.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/england.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/er.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/es.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/et.png
Diff not rendered.
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/fam.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/fi.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/fj.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/fk.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/fm.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/fo.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/fr.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/ga.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/gd.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/ge.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/gf.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/gh.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/gi.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/gl.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/gm.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/gn.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/gp.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/gq.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/gr.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/gs.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/gt.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/gu.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/gw.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/gy.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/hk.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/hm.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/hn.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/hr.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/ht.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/hu.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/id.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/ie.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/il.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/in.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/io.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/iq.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/ir.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/is.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/it.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/ja.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/jm.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/jo.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/ke.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/kg.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/kh.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/ki.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/km.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/kn.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/ko.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/kp.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/kr.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/kw.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/ky.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/kz.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/la.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/lb.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/lc.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/li.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/lk.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/lr.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/ls.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/lt.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/lu.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/lv.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/ly.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/ma.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/mc.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/md.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/me.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/mg.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/mh.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/mk.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/ml.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/mm.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/mn.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/mo.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/mp.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/mq.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/mr.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/ms.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/mt.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/mu.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/mv.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/mw.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/mx.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/my.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/mz.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/na.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/nb.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/nc.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/ne.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/nf.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/ng.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/ni.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/nl.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/nn.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/np.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/nr.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/nu.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/nz.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/om.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/pa.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/pe.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/pf.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/pg.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/ph.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/pk.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/pl.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/pm.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/pn.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/pr.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/ps.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/pt-BR.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/pt.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/pw.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/py.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/qa.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/re.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/ro.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/rs.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/ru.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/rw.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/sa.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/sb.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/sc.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/scotland.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/sd.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/sg.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/sh.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/si.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/sj.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/sk.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/sl.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/sm.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/sn.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/so.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/sr.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/st.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/sv.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/sy.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/sz.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/tc.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/td.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/tf.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/tg.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/th.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/tj.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/tk.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/tl.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/tm.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/tn.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/to.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/tr.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/tt.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/tv.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/tw.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/tz.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/ug.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/uk.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/um.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/us.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/uy.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/uz.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/va.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/vc.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/ve.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/vg.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/vi.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/vn.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/vu.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/wales.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/wf.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/ws.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/ye.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/yt.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/za.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/zh-CN.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/zh-TW.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/zm.png
Diff not rendered.
Binary file removed app/assets/images/refinery/icons/flags/zw.png
Diff not rendered.
16 changes: 11 additions & 5 deletions lib/refinery/i18n-filter.rb
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,19 @@ def around_generate(params, &block)

yield.tap do |result|
result = result.is_a?(Array) ? result.first : result
if ::Refinery::I18n.url_filter_enabled? and
locale != ::Refinery::I18n.default_frontend_locale and
result.url !~ %r{^/(#{Refinery::Core.backend_route}|wymiframe)}
result.url.sub!(%r(^(http.?://[^/]*)?(.*))) { "#{$1}/#{locale}#{$2}" }
end
insert_locale(result.url, locale) if url_needs_locale?(result.url, locale)
end
end

# locale should be inserted if filtering AND not in default locale AND not a backend url
private def url_needs_locale?(url, locale)
::Refinery::I18n.url_filter_enabled? &&
locale != ::Refinery::I18n.default_frontend_locale &&
url !~ %r{^/(#{Refinery::Core.backend_route}|wymiframe)}
end

private def insert_locale(url, locale)
url.sub!(%r(^(http.?://[^/]*)?(.*))) { "#{$1}/#{locale}#{$2}" }
end
end
end
1 change: 1 addition & 0 deletions lib/refinery/i18n.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
require 'routing-filter'
require 'rails-i18n'
require 'refinery/i18n/engine'
require 'refinery/i18n/override_routing_filter'

module Refinery
autoload :I18nGenerator, 'generators/refinery/i18n_generator'
Expand Down
29 changes: 19 additions & 10 deletions lib/refinery/i18n/engine.rb
Original file line number Diff line number Diff line change
Expand Up @@ -18,38 +18,45 @@ class Engine < Rails::Engine
config.to_prepare do
::ApplicationController.module_eval do
def default_url_options
super.reverse_merge ({ locale: ::I18n.locale })
super.reverse_merge({ locale: ::I18n.locale })
end

def find_or_set_locale
::I18n.locale = ::Refinery::I18n.current_frontend_locale
locale = params[:locale]&.to_sym
::I18n.locale = ::Refinery::I18n.default_frontend_locale

if ::Refinery::I18n.has_locale?(locale = params[:locale].try(:to_sym))
::I18n.locale = locale
elsif locale.present? && locale != ::Refinery::I18n.default_frontend_locale
::I18n.locale = ::Refinery::I18n.default_frontend_locale
if locale.nil? || valid_locale?(locale) || locale == ::Refinery::I18n.default_frontend_locale
::I18n.locale = locale || ::Refinery::I18n.default_frontend_locale
else
redirect_to(params.permit(:locale).merge(locale: ::I18n.locale),
notice: "The locale '#{locale}' is not supported.") and return
else
::I18n.locale = ::Refinery::I18n.default_frontend_locale
end
Mobility.locale = ::I18n.locale
end

def valid_locale?(locale)
locale && ::Refinery::I18n.locales.keys.include?(locale)
end

prepend_before_action :find_or_set_locale
protected :default_url_options, :find_or_set_locale
end

::Refinery::AdminController.class_eval do
def find_or_set_locale
if (params[:set_locale] && ::Refinery::I18n.locales.keys.map(&:to_sym).include?(params[:set_locale].to_sym))
::Refinery::I18n.current_locale = params[:set_locale].to_sym
locale = params[:set_locale]&.to_sym
if valid_locale?(locale)
::Refinery::I18n.current_locale = locale
redirect_back_or_default(refinery.admin_root_path) and return
else
::I18n.locale = ::Refinery::I18n.current_locale
end
end

def valid_locale?(locale)
locale && ::Refinery::I18n.locales.keys.include?(locale)
end

def globalize!
if ::Refinery::I18n.frontend_locales.any?
if params[:switch_locale]
Expand All @@ -61,9 +68,11 @@ def globalize!
end
end
end

# globalize! should be prepended first so that it runs after find_or_set_locale
prepend_before_action :globalize!, :find_or_set_locale
protected :globalize!, :find_or_set_locale
private :valid_locale?
end
end

Expand Down
70 changes: 70 additions & 0 deletions lib/refinery/i18n/override_routing_filter.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
module RoutingFilterOverrideShared
private

def apply_routing_filters(path, env)
filter_parameters = {}
original_path = path.dup

@routes.filters.run(:around_recognize, path, env) do
filter_parameters
end

[path, original_path, filter_parameters]
end
end

if Rails::VERSION::MAJOR == 8 && Rails::VERSION::MINOR >= 1
# from: https://github.com/svenfuchs/routing-filter/pull/87
# Removing the (existing) broken find_routes override from the routing-filter gem first
if defined?(ActionDispatchJourneyRouterWithFiltering) &&
ActionDispatchJourneyRouterWithFiltering.method_defined?(:find_routes)
ActionDispatchJourneyRouterWithFiltering.remove_method(:find_routes)
end

# Rails 8.1+ uses recognize method instead of find_routes
module CustomOverridesActionDispatchJourneyRouterRails8
include RoutingFilterOverrideShared

def recognize(req, &block)
path, original_path, filter_parameters = apply_routing_filters(req.path_info, req.env)
req.path_info = path

##### OVERRIDE STARTS #####
super(req) do |route, parameters|
parameters.merge!(filter_parameters)
req.path_info = original_path
yield route, parameters
end.tap { req.path_info = original_path }
##### OVERRIDE ENDS #####
end
end

ActionDispatch::Journey::Router.prepend(CustomOverridesActionDispatchJourneyRouterRails8)
elsif Rails::VERSION::MAJOR == 8 || (Rails::VERSION::MAJOR == 7 && Rails::VERSION::MINOR >= 1)
# from: https://github.com/svenfuchs/routing-filter/pull/87
# Removing the (existing) broken find_routes override from the routing-filter gem first
if defined?(ActionDispatchJourneyRouterWithFiltering) &&
ActionDispatchJourneyRouterWithFiltering.method_defined?(:find_routes)
ActionDispatchJourneyRouterWithFiltering.remove_method(:find_routes)
end

# Rails < 8.1 uses find_routes method
module CustomOverridesActionDispatchJourneyRouterWithFiltering
include RoutingFilterOverrideShared

def find_routes(env)
path = env.is_a?(Hash) ? env['PATH_INFO'] : env.path_info
path, original_path, filter_parameters = apply_routing_filters(path, env)

##### OVERRIDE STARTS #####
super(env) do |match, parameters, route|
parameters = parameters.merge(filter_parameters)
env.is_a?(Hash) ? env['PATH_INFO'] = original_path : env.path_info = original_path
yield [match, parameters, route]
end
##### OVERRIDE ENDS #####
end
end

ActionDispatch::Journey::Router.prepend(CustomOverridesActionDispatchJourneyRouterWithFiltering)
end
8 changes: 4 additions & 4 deletions refinerycms-i18n.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Gem::Specification.new do |s|
s.name = %q{refinerycms-i18n}
s.version = %q{5.0.1}
s.version = %q{5.0.2}
Comment thread
parndt marked this conversation as resolved.
Outdated
s.description = %q{i18n logic extracted from Refinery CMS, for Refinery CMS.}
s.summary = %q{i18n logic for Refinery CMS.}
s.email = %q{info@refinerycms.com}
Expand All @@ -14,11 +14,11 @@ Gem::Specification.new do |s|
s.files = `git ls-files`.split("\n")
s.test_files = `git ls-files -- spec/*`.split("\n")

s.required_ruby_version = '>= 2.2.9'
s.required_ruby_version = '>= 2.7'

s.add_dependency 'routing-filter', '~> 0.6'
s.add_dependency 'routing-filter', '~> 0.7'
s.add_dependency 'rails-i18n', '>= 5.0'
s.add_dependency 'mobility', '~> 0.8.8'
s.add_dependency 'mobility', '~> 1.2'

s.cert_chain = [File.expand_path("../certs/parndt.pem", __FILE__)]
if $0 =~ /gem\z/ && ARGV.include?("build") && ARGV.include?(__FILE__)
Expand Down
Loading