refinerycms-i18n 1.0.0 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +63 -0
- data/Rakefile +14 -29
- data/{public → app/assets}/images/refinery/icons/flags/ad.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/ae.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/af.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/ag.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/ai.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/al.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/am.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/an.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/ao.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/ar.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/as.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/at.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/au.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/aw.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/ax.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/az.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/ba.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/bb.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/bd.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/be.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/bf.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/bg.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/bh.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/bi.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/bj.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/bm.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/bn.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/bo.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/bs.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/bt.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/bv.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/bw.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/by.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/bz.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/ca.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/catalonia.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/cc.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/cd.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/cf.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/cg.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/ch.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/ci.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/ck.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/cl.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/cm.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/cn.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/co.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/cr.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/cs.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/cu.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/cv.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/cx.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/cy.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/da.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/de.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/dj.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/dm.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/do.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/dz.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/ec.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/eg.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/eh.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/el.png +0 -0
- data/{public/images/refinery/icons/flags/gb.png → app/assets/images/refinery/icons/flags/en.png} +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/england.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/er.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/es.png +0 -0
- data/{public/images/refinery/icons/flags/ee.png → app/assets/images/refinery/icons/flags/et.png} +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/europeanunion.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/fam.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/fi.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/fj.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/fk.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/fm.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/fo.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/fr.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/ga.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/gd.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/ge.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/gf.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/gh.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/gi.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/gl.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/gm.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/gn.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/gp.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/gq.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/gr.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/gs.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/gt.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/gu.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/gw.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/gy.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/hk.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/hm.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/hn.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/hr.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/ht.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/hu.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/id.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/ie.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/il.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/in.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/io.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/iq.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/ir.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/is.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/it.png +0 -0
- data/{public/images/refinery/icons/flags/jp.png → app/assets/images/refinery/icons/flags/ja.png} +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/jm.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/jo.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/ke.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/kg.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/kh.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/ki.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/km.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/kn.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/kp.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/kr.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/kw.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/ky.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/kz.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/la.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/lb.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/lc.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/li.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/lk.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/lr.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/ls.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/lt.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/lu.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/lv.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/ly.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/ma.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/mc.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/md.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/me.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/mg.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/mh.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/mk.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/ml.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/mm.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/mn.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/mo.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/mp.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/mq.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/mr.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/ms.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/mt.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/mu.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/mv.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/mw.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/mx.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/my.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/mz.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/na.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/nb.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/nc.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/ne.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/nf.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/ng.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/ni.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/nl.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/nn.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/np.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/nr.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/nu.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/nz.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/om.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/pa.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/pe.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/pf.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/pg.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/ph.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/pk.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/pl.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/pm.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/pn.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/pr.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/ps.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/pt-BR.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/pt.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/pw.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/py.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/qa.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/re.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/ro.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/rs.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/ru.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/rw.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/sa.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/sb.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/sc.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/scotland.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/sd.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/sg.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/sh.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/si.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/sj.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/sk.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/sl.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/sm.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/sn.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/so.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/sr.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/st.png +0 -0
- data/{public/images/refinery/icons/flags/se.png → app/assets/images/refinery/icons/flags/sv.png} +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/sy.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/sz.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/tc.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/td.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/tf.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/tg.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/th.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/tj.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/tk.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/tl.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/tm.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/tn.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/to.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/tr.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/tt.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/tv.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/tw.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/tz.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/ua.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/ug.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/um.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/us.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/uy.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/uz.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/va.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/vc.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/ve.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/vg.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/vi.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/vn.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/vu.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/wales.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/wf.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/ws.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/ye.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/yt.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/za.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/zh-CN.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/zh-TW.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/zm.png +0 -0
- data/{public → app/assets}/images/refinery/icons/flags/zw.png +0 -0
- data/config/locales/bg.yml +102 -23
- data/config/locales/{jp.yml → ja.yml} +4 -1
- data/lib/gemspec.rb +5 -8
- data/lib/generators/refinery/i18n_generator.rb +10 -0
- data/lib/generators/refinery/templates/config/initializers/refinery/i18n.rb.erb +15 -0
- data/lib/refinery/i18n/configuration.rb +15 -0
- data/lib/refinery/i18n/engine.rb +80 -0
- data/lib/refinery/i18n-filter.rb +1 -3
- data/lib/refinery/i18n.rb +37 -191
- data/lib/refinerycms-i18n.rb +1 -1
- data/spec/requests/dashboard_locale_picker_spec.rb +32 -0
- data/spec/spec_helper.rb +56 -0
- data/tasks/rspec.rake +4 -0
- metadata +290 -286
- data/config/i18n-js.yml +0 -4
- data/features/dashboard.feature +0 -28
- data/i18n-js-readme.rdoc +0 -249
- data/lib/generators/refinerycms_i18n_generator.rb +0 -10
- data/lib/refinery/i18n-js/railtie.rb +0 -9
- data/lib/refinery/i18n-js/version.rb +0 -10
- data/lib/refinery/i18n-js.rb +0 -128
- data/lib/refinery/i18n-js.yml +0 -4
- data/lib/refinery/i18n.js +0 -339
- data/lib/tasks/i18n-js_tasks.rake +0 -16
- data/public/images/refinery/icons/flags/en.png +0 -0
- data/public/images/refinery/icons/flags/et.png +0 -0
- data/public/images/refinery/icons/flags/sv.png +0 -0
- data/test/i18n-test.html +0 -50
- data/test/i18n-test.js +0 -661
- data/test/i18n_js_test.rb +0 -168
- data/test/jsunittest/jsunittest.js +0 -1017
- data/test/jsunittest/unittest.css +0 -54
- data/test/resources/custom_path.yml +0 -4
- data/test/resources/default.yml +0 -4
- data/test/resources/locales.yml +0 -76
- data/test/resources/multiple_files.yml +0 -6
- data/test/resources/no_scope.yml +0 -3
- data/test/resources/simple_scope.yml +0 -4
- data/test/test_helper.rb +0 -24
data/lib/refinery/i18n.rb
CHANGED
@@ -1,215 +1,61 @@
|
|
1
1
|
# Encoding: UTF-8 <-- required, please leave this in.
|
2
|
-
|
3
|
-
require 'refinerycms-core'
|
4
|
-
else
|
5
|
-
require 'refinery'
|
6
|
-
end
|
2
|
+
require 'refinerycms-core'
|
7
3
|
require 'routing-filter'
|
8
4
|
|
9
5
|
module Refinery
|
10
|
-
|
11
|
-
class Engine < Rails::Engine
|
12
|
-
config.before_initialize do
|
13
|
-
require File.expand_path('../i18n-filter', __FILE__)
|
14
|
-
require File.expand_path('../i18n-js', __FILE__)
|
15
|
-
require File.expand_path('../translate', __FILE__)
|
16
|
-
end
|
17
|
-
|
18
|
-
initializer "serve static assets" do |app|
|
19
|
-
app.middleware.insert_after ::ActionDispatch::Static, ::ActionDispatch::Static, "#{root}/public"
|
20
|
-
end
|
21
|
-
|
22
|
-
config.to_prepare do
|
23
|
-
::ApplicationController.module_eval do
|
24
|
-
before_filter lambda {|c|
|
25
|
-
::SimplesIdeias::I18n.export! if Rails.env.development?
|
26
|
-
}
|
27
|
-
|
28
|
-
def default_url_options(options={})
|
29
|
-
::Refinery::I18n.enabled? ? { :locale => ::I18n.locale } : {}
|
30
|
-
end
|
31
|
-
|
32
|
-
def find_or_set_locale
|
33
|
-
if ::Refinery::I18n.enabled?
|
34
|
-
::I18n.locale = ::Refinery::I18n.current_frontend_locale
|
35
|
-
|
36
|
-
if ::Refinery::I18n.has_locale?(locale = params[:locale].try(:to_sym))
|
37
|
-
::I18n.locale = locale
|
38
|
-
elsif locale.present? and locale != ::Refinery::I18n.default_frontend_locale
|
39
|
-
params[:locale] = ::I18n.locale = ::Refinery::I18n.default_frontend_locale
|
40
|
-
redirect_to(params, :notice => "The locale '#{locale}' is not supported.") and return
|
41
|
-
else
|
42
|
-
::I18n.locale = ::Refinery::I18n.default_frontend_locale
|
43
|
-
end
|
44
|
-
Thread.current[:globalize_locale] = ::I18n.locale
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
prepend_before_filter :find_or_set_locale
|
49
|
-
protected :default_url_options, :find_or_set_locale
|
50
|
-
end
|
51
|
-
|
52
|
-
::Admin::BaseController.class_eval do
|
53
|
-
def find_or_set_locale
|
54
|
-
if (params[:set_locale] and ::Refinery::I18n.locales.keys.map(&:to_sym).include?(params[:set_locale].to_sym))
|
55
|
-
::Refinery::I18n.current_locale = params[:set_locale].to_sym
|
56
|
-
redirect_back_or_default(admin_root_path) and return
|
57
|
-
else
|
58
|
-
::I18n.locale = ::Refinery::I18n.current_locale
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
def globalize!
|
63
|
-
if ::Refinery::I18n.frontend_locales.any?
|
64
|
-
if params[:switch_locale]
|
65
|
-
Thread.current[:globalize_locale] = params[:switch_locale].to_sym
|
66
|
-
elsif ::I18n.locale != ::Refinery::I18n.default_frontend_locale
|
67
|
-
Thread.current[:globalize_locale] = ::Refinery::I18n.default_frontend_locale
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
|
-
Thread.current[:globalize_locale] = ::I18n.locale if Thread.current[:globalize_locale].nil?
|
72
|
-
end
|
73
|
-
# globalize! should be prepended first so that it runs after find_or_set_locale
|
74
|
-
prepend_before_filter :globalize!, :find_or_set_locale
|
75
|
-
protected :globalize!, :find_or_set_locale
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
config.after_initialize do
|
80
|
-
::Refinery::I18n.setup!
|
81
|
-
|
82
|
-
Refinery::Plugin.register do |plugin|
|
83
|
-
plugin.name = "refinery_i18n"
|
84
|
-
plugin.version = %q{0.9.9.11}
|
85
|
-
plugin.hide_from_menu = true
|
86
|
-
plugin.always_allow_access = true
|
87
|
-
end
|
88
|
-
end
|
89
|
-
|
90
|
-
end
|
6
|
+
autoload :I18nGenerator, 'generators/refinery/i18n_generator'
|
91
7
|
|
8
|
+
module I18n
|
92
9
|
class << self
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
:
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
:
|
116
|
-
:
|
10
|
+
attr_accessor :built_in_locales
|
11
|
+
|
12
|
+
def built_in_locales
|
13
|
+
@built_in_locales ||= {
|
14
|
+
:en => 'English',
|
15
|
+
:fr => 'Français',
|
16
|
+
:nl => 'Nederlands',
|
17
|
+
:'pt-BR' => 'Português',
|
18
|
+
:da => 'Dansk',
|
19
|
+
:nb => 'Norsk Bokmål',
|
20
|
+
:sl => 'Slovenian',
|
21
|
+
:es => 'Español',
|
22
|
+
:it => 'Italiano',
|
23
|
+
:de => 'Deutsch',
|
24
|
+
:lv => 'Latviski',
|
25
|
+
:ru => 'Русский',
|
26
|
+
:sv => 'Svenska',
|
27
|
+
:pl => 'Polski',
|
28
|
+
:'zh-CN' => 'Simplified Chinese',
|
29
|
+
:'zh-TW' => 'Traditional Chinese',
|
30
|
+
:el => 'Ελληνικά',
|
31
|
+
:rs => 'Srpski',
|
32
|
+
:cs => 'Česky',
|
33
|
+
:sk => 'Slovenský',
|
34
|
+
:ja => '日本語',
|
35
|
+
:bg => 'Български'
|
117
36
|
}
|
118
|
-
# handles a change in Refinery API
|
119
|
-
if RefinerySetting.methods.map(&:to_sym).include?(:set)
|
120
|
-
RefinerySetting.set(:i18n_translation_current_locale, value)
|
121
|
-
else
|
122
|
-
RefinerySetting[:i18n_translation_current_locale] = value
|
123
|
-
end
|
124
|
-
|
125
|
-
::I18n.locale = locale.to_sym
|
126
|
-
end
|
127
|
-
|
128
|
-
def default_locale
|
129
|
-
RefinerySetting.find_or_set(:i18n_translation_default_locale, :en, {
|
130
|
-
:scoping => 'refinery'
|
131
|
-
}).to_sym
|
132
37
|
end
|
133
38
|
|
134
39
|
def current_frontend_locale
|
135
|
-
if Globalize.locale.present? && Globalize.locale.to_s !=
|
40
|
+
if Globalize.locale.present? && Globalize.locale.to_s != config.default_frontend_locale.to_s
|
136
41
|
Globalize.locale
|
137
|
-
elsif
|
138
|
-
|
42
|
+
elsif config.default_frontend_locale.present?
|
43
|
+
config.default_frontend_locale
|
139
44
|
else
|
140
45
|
::I18n.locale
|
141
46
|
end
|
142
47
|
end
|
143
48
|
|
144
|
-
def
|
145
|
-
|
146
|
-
:scoping => 'refinery'
|
147
|
-
}).to_sym
|
148
|
-
end
|
149
|
-
|
150
|
-
def frontend_locales
|
151
|
-
RefinerySetting.find_or_set(:i18n_translation_frontend_locales, [self.default_frontend_locale], {
|
152
|
-
:scoping => 'refinery'
|
153
|
-
})
|
154
|
-
end
|
155
|
-
|
156
|
-
def locales
|
157
|
-
RefinerySetting.find_or_set(:i18n_translation_locales, self.built_in_locales, {
|
158
|
-
:scoping => 'refinery'
|
159
|
-
})
|
49
|
+
def enabled?
|
50
|
+
config.enabled
|
160
51
|
end
|
161
52
|
|
162
53
|
def has_locale?(locale)
|
163
|
-
locales.has_key?(locale.try(:to_sym))
|
54
|
+
config.locales.has_key?(locale.try(:to_sym))
|
164
55
|
end
|
165
|
-
|
166
|
-
def setup!
|
167
|
-
self.ensure_locales_up_to_date!
|
168
|
-
end
|
169
|
-
|
170
|
-
def ensure_locales_up_to_date!
|
171
|
-
# ensure running latest locales (this is awfully brittle).
|
172
|
-
locales = if Refinery.version >= '0.9.9'
|
173
|
-
RefinerySetting.get(:i18n_translation_locales, :scoping => 'refinery')
|
174
|
-
else
|
175
|
-
RefinerySetting.find_by_name_and_scoping('i18n_translation_locales', 'refinery').try(:value)
|
176
|
-
end
|
177
|
-
|
178
|
-
if locales.present? and locales.is_a?(Hash) and locales.keys.exclude?(self.built_in_locales.keys.last)
|
179
|
-
value = {:value => locales.dup.deep_merge(self.built_in_locales), :scoping => 'refinery'}
|
180
|
-
if RefinerySetting.respond_to?(:set)
|
181
|
-
RefinerySetting.set(:i18n_translation_locales, value)
|
182
|
-
else
|
183
|
-
RefinerySetting[:i18n_translation_locales] = value
|
184
|
-
end
|
185
|
-
end
|
186
|
-
end
|
187
|
-
|
188
56
|
end
|
189
57
|
|
190
|
-
|
191
|
-
|
192
|
-
:fr => 'Français',
|
193
|
-
:nl => 'Nederlands',
|
194
|
-
:'pt-BR' => 'Português',
|
195
|
-
:da => 'Dansk',
|
196
|
-
:nb => 'Norsk Bokmål',
|
197
|
-
:sl => 'Slovenian',
|
198
|
-
:es => 'Español',
|
199
|
-
:it => 'Italiano',
|
200
|
-
:de => 'Deutsch',
|
201
|
-
:lv => 'Latviski',
|
202
|
-
:ru => 'Русский',
|
203
|
-
:sv => 'Svenska',
|
204
|
-
:pl => 'Polski',
|
205
|
-
:'zh-CN' => 'Simplified Chinese',
|
206
|
-
:'zh-TW' => 'Traditional Chinese',
|
207
|
-
:el => 'Ελληνικά',
|
208
|
-
:rs => 'Srpski',
|
209
|
-
:cs => 'Česky',
|
210
|
-
:sk => 'Slovenský',
|
211
|
-
:jp => '日本語'
|
212
|
-
}
|
58
|
+
require 'refinery/i18n/engine'
|
59
|
+
require 'refinery/i18n/configuration'
|
213
60
|
end
|
214
61
|
end
|
215
|
-
|
data/lib/refinerycms-i18n.rb
CHANGED
@@ -1 +1 @@
|
|
1
|
-
require
|
1
|
+
require 'refinery/i18n'
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require "spec_helper"
|
3
|
+
|
4
|
+
describe "dashboard locale picker" do
|
5
|
+
login_refinery_user
|
6
|
+
|
7
|
+
it "changes language used in backend" do
|
8
|
+
visit refinery.admin_dashboard_path
|
9
|
+
|
10
|
+
page.should have_content("Switch to your website")
|
11
|
+
|
12
|
+
within "#current_locale" do
|
13
|
+
click_link "Change language"
|
14
|
+
end
|
15
|
+
within "#other_locales" do
|
16
|
+
click_link "Latviski"
|
17
|
+
end
|
18
|
+
|
19
|
+
page.should have_content("Pārslēgties uz jūsu saitu")
|
20
|
+
page.should have_no_content("Switch to your website")
|
21
|
+
|
22
|
+
within "#current_locale" do
|
23
|
+
click_link "Mainīt valodu"
|
24
|
+
end
|
25
|
+
within "#other_locales" do
|
26
|
+
click_link "English"
|
27
|
+
end
|
28
|
+
|
29
|
+
page.should have_content("Switch to your website")
|
30
|
+
page.should have_no_content("Pārslēgties uz jūsu saitu")
|
31
|
+
end
|
32
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
|
3
|
+
def setup_environment
|
4
|
+
# Configure Rails Environment
|
5
|
+
ENV["RAILS_ENV"] ||= 'test'
|
6
|
+
|
7
|
+
require File.expand_path("../dummy/config/environment", __FILE__)
|
8
|
+
|
9
|
+
require 'rspec/rails'
|
10
|
+
require 'capybara/rspec'
|
11
|
+
require 'factory_girl_rails'
|
12
|
+
|
13
|
+
Rails.backtrace_cleaner.remove_silencers!
|
14
|
+
|
15
|
+
RSpec.configure do |config|
|
16
|
+
config.mock_with :rspec
|
17
|
+
config.treat_symbols_as_metadata_keys_with_true_values = true
|
18
|
+
config.filter_run :focus => true
|
19
|
+
config.run_all_when_everything_filtered = true
|
20
|
+
end
|
21
|
+
|
22
|
+
# set javascript driver for capybara
|
23
|
+
Capybara.javascript_driver = :selenium
|
24
|
+
end
|
25
|
+
|
26
|
+
def each_run
|
27
|
+
ActiveSupport::Dependencies.clear
|
28
|
+
|
29
|
+
FactoryGirl.reload
|
30
|
+
|
31
|
+
# Requires supporting files with custom matchers and macros, etc,
|
32
|
+
# in ./support/ and its subdirectories including factories.
|
33
|
+
([Rails.root.to_s] | ::Refinery::Plugins.registered.pathnames).map{|p|
|
34
|
+
Dir[File.join(p, 'spec', 'support', '**', '*.rb').to_s]
|
35
|
+
}.flatten.sort.each do |support_file|
|
36
|
+
require support_file
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
# If spork is available in the Gemfile it'll be used but we don't force it.
|
41
|
+
unless (begin; require 'spork'; rescue LoadError; nil end).nil?
|
42
|
+
Spork.prefork do
|
43
|
+
# Loading more in this block will cause your tests to run faster. However,
|
44
|
+
# if you change any configuration or code from libraries loaded here, you'll
|
45
|
+
# need to restart spork for it take effect.
|
46
|
+
setup_environment
|
47
|
+
end
|
48
|
+
|
49
|
+
Spork.each_run do
|
50
|
+
# This code will be run each time you run your specs.
|
51
|
+
each_run
|
52
|
+
end
|
53
|
+
else
|
54
|
+
setup_environment
|
55
|
+
each_run
|
56
|
+
end
|
data/tasks/rspec.rake
ADDED