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.
Files changed (289) hide show
  1. data/Gemfile +63 -0
  2. data/Rakefile +14 -29
  3. data/{public → app/assets}/images/refinery/icons/flags/ad.png +0 -0
  4. data/{public → app/assets}/images/refinery/icons/flags/ae.png +0 -0
  5. data/{public → app/assets}/images/refinery/icons/flags/af.png +0 -0
  6. data/{public → app/assets}/images/refinery/icons/flags/ag.png +0 -0
  7. data/{public → app/assets}/images/refinery/icons/flags/ai.png +0 -0
  8. data/{public → app/assets}/images/refinery/icons/flags/al.png +0 -0
  9. data/{public → app/assets}/images/refinery/icons/flags/am.png +0 -0
  10. data/{public → app/assets}/images/refinery/icons/flags/an.png +0 -0
  11. data/{public → app/assets}/images/refinery/icons/flags/ao.png +0 -0
  12. data/{public → app/assets}/images/refinery/icons/flags/ar.png +0 -0
  13. data/{public → app/assets}/images/refinery/icons/flags/as.png +0 -0
  14. data/{public → app/assets}/images/refinery/icons/flags/at.png +0 -0
  15. data/{public → app/assets}/images/refinery/icons/flags/au.png +0 -0
  16. data/{public → app/assets}/images/refinery/icons/flags/aw.png +0 -0
  17. data/{public → app/assets}/images/refinery/icons/flags/ax.png +0 -0
  18. data/{public → app/assets}/images/refinery/icons/flags/az.png +0 -0
  19. data/{public → app/assets}/images/refinery/icons/flags/ba.png +0 -0
  20. data/{public → app/assets}/images/refinery/icons/flags/bb.png +0 -0
  21. data/{public → app/assets}/images/refinery/icons/flags/bd.png +0 -0
  22. data/{public → app/assets}/images/refinery/icons/flags/be.png +0 -0
  23. data/{public → app/assets}/images/refinery/icons/flags/bf.png +0 -0
  24. data/{public → app/assets}/images/refinery/icons/flags/bg.png +0 -0
  25. data/{public → app/assets}/images/refinery/icons/flags/bh.png +0 -0
  26. data/{public → app/assets}/images/refinery/icons/flags/bi.png +0 -0
  27. data/{public → app/assets}/images/refinery/icons/flags/bj.png +0 -0
  28. data/{public → app/assets}/images/refinery/icons/flags/bm.png +0 -0
  29. data/{public → app/assets}/images/refinery/icons/flags/bn.png +0 -0
  30. data/{public → app/assets}/images/refinery/icons/flags/bo.png +0 -0
  31. data/{public → app/assets}/images/refinery/icons/flags/bs.png +0 -0
  32. data/{public → app/assets}/images/refinery/icons/flags/bt.png +0 -0
  33. data/{public → app/assets}/images/refinery/icons/flags/bv.png +0 -0
  34. data/{public → app/assets}/images/refinery/icons/flags/bw.png +0 -0
  35. data/{public → app/assets}/images/refinery/icons/flags/by.png +0 -0
  36. data/{public → app/assets}/images/refinery/icons/flags/bz.png +0 -0
  37. data/{public → app/assets}/images/refinery/icons/flags/ca.png +0 -0
  38. data/{public → app/assets}/images/refinery/icons/flags/catalonia.png +0 -0
  39. data/{public → app/assets}/images/refinery/icons/flags/cc.png +0 -0
  40. data/{public → app/assets}/images/refinery/icons/flags/cd.png +0 -0
  41. data/{public → app/assets}/images/refinery/icons/flags/cf.png +0 -0
  42. data/{public → app/assets}/images/refinery/icons/flags/cg.png +0 -0
  43. data/{public → app/assets}/images/refinery/icons/flags/ch.png +0 -0
  44. data/{public → app/assets}/images/refinery/icons/flags/ci.png +0 -0
  45. data/{public → app/assets}/images/refinery/icons/flags/ck.png +0 -0
  46. data/{public → app/assets}/images/refinery/icons/flags/cl.png +0 -0
  47. data/{public → app/assets}/images/refinery/icons/flags/cm.png +0 -0
  48. data/{public → app/assets}/images/refinery/icons/flags/cn.png +0 -0
  49. data/{public → app/assets}/images/refinery/icons/flags/co.png +0 -0
  50. data/{public → app/assets}/images/refinery/icons/flags/cr.png +0 -0
  51. data/{public → app/assets}/images/refinery/icons/flags/cs.png +0 -0
  52. data/{public → app/assets}/images/refinery/icons/flags/cu.png +0 -0
  53. data/{public → app/assets}/images/refinery/icons/flags/cv.png +0 -0
  54. data/{public → app/assets}/images/refinery/icons/flags/cx.png +0 -0
  55. data/{public → app/assets}/images/refinery/icons/flags/cy.png +0 -0
  56. data/{public → app/assets}/images/refinery/icons/flags/da.png +0 -0
  57. data/{public → app/assets}/images/refinery/icons/flags/de.png +0 -0
  58. data/{public → app/assets}/images/refinery/icons/flags/dj.png +0 -0
  59. data/{public → app/assets}/images/refinery/icons/flags/dm.png +0 -0
  60. data/{public → app/assets}/images/refinery/icons/flags/do.png +0 -0
  61. data/{public → app/assets}/images/refinery/icons/flags/dz.png +0 -0
  62. data/{public → app/assets}/images/refinery/icons/flags/ec.png +0 -0
  63. data/{public → app/assets}/images/refinery/icons/flags/eg.png +0 -0
  64. data/{public → app/assets}/images/refinery/icons/flags/eh.png +0 -0
  65. data/{public → app/assets}/images/refinery/icons/flags/el.png +0 -0
  66. data/{public/images/refinery/icons/flags/gb.png → app/assets/images/refinery/icons/flags/en.png} +0 -0
  67. data/{public → app/assets}/images/refinery/icons/flags/england.png +0 -0
  68. data/{public → app/assets}/images/refinery/icons/flags/er.png +0 -0
  69. data/{public → app/assets}/images/refinery/icons/flags/es.png +0 -0
  70. data/{public/images/refinery/icons/flags/ee.png → app/assets/images/refinery/icons/flags/et.png} +0 -0
  71. data/{public → app/assets}/images/refinery/icons/flags/europeanunion.png +0 -0
  72. data/{public → app/assets}/images/refinery/icons/flags/fam.png +0 -0
  73. data/{public → app/assets}/images/refinery/icons/flags/fi.png +0 -0
  74. data/{public → app/assets}/images/refinery/icons/flags/fj.png +0 -0
  75. data/{public → app/assets}/images/refinery/icons/flags/fk.png +0 -0
  76. data/{public → app/assets}/images/refinery/icons/flags/fm.png +0 -0
  77. data/{public → app/assets}/images/refinery/icons/flags/fo.png +0 -0
  78. data/{public → app/assets}/images/refinery/icons/flags/fr.png +0 -0
  79. data/{public → app/assets}/images/refinery/icons/flags/ga.png +0 -0
  80. data/{public → app/assets}/images/refinery/icons/flags/gd.png +0 -0
  81. data/{public → app/assets}/images/refinery/icons/flags/ge.png +0 -0
  82. data/{public → app/assets}/images/refinery/icons/flags/gf.png +0 -0
  83. data/{public → app/assets}/images/refinery/icons/flags/gh.png +0 -0
  84. data/{public → app/assets}/images/refinery/icons/flags/gi.png +0 -0
  85. data/{public → app/assets}/images/refinery/icons/flags/gl.png +0 -0
  86. data/{public → app/assets}/images/refinery/icons/flags/gm.png +0 -0
  87. data/{public → app/assets}/images/refinery/icons/flags/gn.png +0 -0
  88. data/{public → app/assets}/images/refinery/icons/flags/gp.png +0 -0
  89. data/{public → app/assets}/images/refinery/icons/flags/gq.png +0 -0
  90. data/{public → app/assets}/images/refinery/icons/flags/gr.png +0 -0
  91. data/{public → app/assets}/images/refinery/icons/flags/gs.png +0 -0
  92. data/{public → app/assets}/images/refinery/icons/flags/gt.png +0 -0
  93. data/{public → app/assets}/images/refinery/icons/flags/gu.png +0 -0
  94. data/{public → app/assets}/images/refinery/icons/flags/gw.png +0 -0
  95. data/{public → app/assets}/images/refinery/icons/flags/gy.png +0 -0
  96. data/{public → app/assets}/images/refinery/icons/flags/hk.png +0 -0
  97. data/{public → app/assets}/images/refinery/icons/flags/hm.png +0 -0
  98. data/{public → app/assets}/images/refinery/icons/flags/hn.png +0 -0
  99. data/{public → app/assets}/images/refinery/icons/flags/hr.png +0 -0
  100. data/{public → app/assets}/images/refinery/icons/flags/ht.png +0 -0
  101. data/{public → app/assets}/images/refinery/icons/flags/hu.png +0 -0
  102. data/{public → app/assets}/images/refinery/icons/flags/id.png +0 -0
  103. data/{public → app/assets}/images/refinery/icons/flags/ie.png +0 -0
  104. data/{public → app/assets}/images/refinery/icons/flags/il.png +0 -0
  105. data/{public → app/assets}/images/refinery/icons/flags/in.png +0 -0
  106. data/{public → app/assets}/images/refinery/icons/flags/io.png +0 -0
  107. data/{public → app/assets}/images/refinery/icons/flags/iq.png +0 -0
  108. data/{public → app/assets}/images/refinery/icons/flags/ir.png +0 -0
  109. data/{public → app/assets}/images/refinery/icons/flags/is.png +0 -0
  110. data/{public → app/assets}/images/refinery/icons/flags/it.png +0 -0
  111. data/{public/images/refinery/icons/flags/jp.png → app/assets/images/refinery/icons/flags/ja.png} +0 -0
  112. data/{public → app/assets}/images/refinery/icons/flags/jm.png +0 -0
  113. data/{public → app/assets}/images/refinery/icons/flags/jo.png +0 -0
  114. data/{public → app/assets}/images/refinery/icons/flags/ke.png +0 -0
  115. data/{public → app/assets}/images/refinery/icons/flags/kg.png +0 -0
  116. data/{public → app/assets}/images/refinery/icons/flags/kh.png +0 -0
  117. data/{public → app/assets}/images/refinery/icons/flags/ki.png +0 -0
  118. data/{public → app/assets}/images/refinery/icons/flags/km.png +0 -0
  119. data/{public → app/assets}/images/refinery/icons/flags/kn.png +0 -0
  120. data/{public → app/assets}/images/refinery/icons/flags/kp.png +0 -0
  121. data/{public → app/assets}/images/refinery/icons/flags/kr.png +0 -0
  122. data/{public → app/assets}/images/refinery/icons/flags/kw.png +0 -0
  123. data/{public → app/assets}/images/refinery/icons/flags/ky.png +0 -0
  124. data/{public → app/assets}/images/refinery/icons/flags/kz.png +0 -0
  125. data/{public → app/assets}/images/refinery/icons/flags/la.png +0 -0
  126. data/{public → app/assets}/images/refinery/icons/flags/lb.png +0 -0
  127. data/{public → app/assets}/images/refinery/icons/flags/lc.png +0 -0
  128. data/{public → app/assets}/images/refinery/icons/flags/li.png +0 -0
  129. data/{public → app/assets}/images/refinery/icons/flags/lk.png +0 -0
  130. data/{public → app/assets}/images/refinery/icons/flags/lr.png +0 -0
  131. data/{public → app/assets}/images/refinery/icons/flags/ls.png +0 -0
  132. data/{public → app/assets}/images/refinery/icons/flags/lt.png +0 -0
  133. data/{public → app/assets}/images/refinery/icons/flags/lu.png +0 -0
  134. data/{public → app/assets}/images/refinery/icons/flags/lv.png +0 -0
  135. data/{public → app/assets}/images/refinery/icons/flags/ly.png +0 -0
  136. data/{public → app/assets}/images/refinery/icons/flags/ma.png +0 -0
  137. data/{public → app/assets}/images/refinery/icons/flags/mc.png +0 -0
  138. data/{public → app/assets}/images/refinery/icons/flags/md.png +0 -0
  139. data/{public → app/assets}/images/refinery/icons/flags/me.png +0 -0
  140. data/{public → app/assets}/images/refinery/icons/flags/mg.png +0 -0
  141. data/{public → app/assets}/images/refinery/icons/flags/mh.png +0 -0
  142. data/{public → app/assets}/images/refinery/icons/flags/mk.png +0 -0
  143. data/{public → app/assets}/images/refinery/icons/flags/ml.png +0 -0
  144. data/{public → app/assets}/images/refinery/icons/flags/mm.png +0 -0
  145. data/{public → app/assets}/images/refinery/icons/flags/mn.png +0 -0
  146. data/{public → app/assets}/images/refinery/icons/flags/mo.png +0 -0
  147. data/{public → app/assets}/images/refinery/icons/flags/mp.png +0 -0
  148. data/{public → app/assets}/images/refinery/icons/flags/mq.png +0 -0
  149. data/{public → app/assets}/images/refinery/icons/flags/mr.png +0 -0
  150. data/{public → app/assets}/images/refinery/icons/flags/ms.png +0 -0
  151. data/{public → app/assets}/images/refinery/icons/flags/mt.png +0 -0
  152. data/{public → app/assets}/images/refinery/icons/flags/mu.png +0 -0
  153. data/{public → app/assets}/images/refinery/icons/flags/mv.png +0 -0
  154. data/{public → app/assets}/images/refinery/icons/flags/mw.png +0 -0
  155. data/{public → app/assets}/images/refinery/icons/flags/mx.png +0 -0
  156. data/{public → app/assets}/images/refinery/icons/flags/my.png +0 -0
  157. data/{public → app/assets}/images/refinery/icons/flags/mz.png +0 -0
  158. data/{public → app/assets}/images/refinery/icons/flags/na.png +0 -0
  159. data/{public → app/assets}/images/refinery/icons/flags/nb.png +0 -0
  160. data/{public → app/assets}/images/refinery/icons/flags/nc.png +0 -0
  161. data/{public → app/assets}/images/refinery/icons/flags/ne.png +0 -0
  162. data/{public → app/assets}/images/refinery/icons/flags/nf.png +0 -0
  163. data/{public → app/assets}/images/refinery/icons/flags/ng.png +0 -0
  164. data/{public → app/assets}/images/refinery/icons/flags/ni.png +0 -0
  165. data/{public → app/assets}/images/refinery/icons/flags/nl.png +0 -0
  166. data/{public → app/assets}/images/refinery/icons/flags/nn.png +0 -0
  167. data/{public → app/assets}/images/refinery/icons/flags/np.png +0 -0
  168. data/{public → app/assets}/images/refinery/icons/flags/nr.png +0 -0
  169. data/{public → app/assets}/images/refinery/icons/flags/nu.png +0 -0
  170. data/{public → app/assets}/images/refinery/icons/flags/nz.png +0 -0
  171. data/{public → app/assets}/images/refinery/icons/flags/om.png +0 -0
  172. data/{public → app/assets}/images/refinery/icons/flags/pa.png +0 -0
  173. data/{public → app/assets}/images/refinery/icons/flags/pe.png +0 -0
  174. data/{public → app/assets}/images/refinery/icons/flags/pf.png +0 -0
  175. data/{public → app/assets}/images/refinery/icons/flags/pg.png +0 -0
  176. data/{public → app/assets}/images/refinery/icons/flags/ph.png +0 -0
  177. data/{public → app/assets}/images/refinery/icons/flags/pk.png +0 -0
  178. data/{public → app/assets}/images/refinery/icons/flags/pl.png +0 -0
  179. data/{public → app/assets}/images/refinery/icons/flags/pm.png +0 -0
  180. data/{public → app/assets}/images/refinery/icons/flags/pn.png +0 -0
  181. data/{public → app/assets}/images/refinery/icons/flags/pr.png +0 -0
  182. data/{public → app/assets}/images/refinery/icons/flags/ps.png +0 -0
  183. data/{public → app/assets}/images/refinery/icons/flags/pt-BR.png +0 -0
  184. data/{public → app/assets}/images/refinery/icons/flags/pt.png +0 -0
  185. data/{public → app/assets}/images/refinery/icons/flags/pw.png +0 -0
  186. data/{public → app/assets}/images/refinery/icons/flags/py.png +0 -0
  187. data/{public → app/assets}/images/refinery/icons/flags/qa.png +0 -0
  188. data/{public → app/assets}/images/refinery/icons/flags/re.png +0 -0
  189. data/{public → app/assets}/images/refinery/icons/flags/ro.png +0 -0
  190. data/{public → app/assets}/images/refinery/icons/flags/rs.png +0 -0
  191. data/{public → app/assets}/images/refinery/icons/flags/ru.png +0 -0
  192. data/{public → app/assets}/images/refinery/icons/flags/rw.png +0 -0
  193. data/{public → app/assets}/images/refinery/icons/flags/sa.png +0 -0
  194. data/{public → app/assets}/images/refinery/icons/flags/sb.png +0 -0
  195. data/{public → app/assets}/images/refinery/icons/flags/sc.png +0 -0
  196. data/{public → app/assets}/images/refinery/icons/flags/scotland.png +0 -0
  197. data/{public → app/assets}/images/refinery/icons/flags/sd.png +0 -0
  198. data/{public → app/assets}/images/refinery/icons/flags/sg.png +0 -0
  199. data/{public → app/assets}/images/refinery/icons/flags/sh.png +0 -0
  200. data/{public → app/assets}/images/refinery/icons/flags/si.png +0 -0
  201. data/{public → app/assets}/images/refinery/icons/flags/sj.png +0 -0
  202. data/{public → app/assets}/images/refinery/icons/flags/sk.png +0 -0
  203. data/{public → app/assets}/images/refinery/icons/flags/sl.png +0 -0
  204. data/{public → app/assets}/images/refinery/icons/flags/sm.png +0 -0
  205. data/{public → app/assets}/images/refinery/icons/flags/sn.png +0 -0
  206. data/{public → app/assets}/images/refinery/icons/flags/so.png +0 -0
  207. data/{public → app/assets}/images/refinery/icons/flags/sr.png +0 -0
  208. data/{public → app/assets}/images/refinery/icons/flags/st.png +0 -0
  209. data/{public/images/refinery/icons/flags/se.png → app/assets/images/refinery/icons/flags/sv.png} +0 -0
  210. data/{public → app/assets}/images/refinery/icons/flags/sy.png +0 -0
  211. data/{public → app/assets}/images/refinery/icons/flags/sz.png +0 -0
  212. data/{public → app/assets}/images/refinery/icons/flags/tc.png +0 -0
  213. data/{public → app/assets}/images/refinery/icons/flags/td.png +0 -0
  214. data/{public → app/assets}/images/refinery/icons/flags/tf.png +0 -0
  215. data/{public → app/assets}/images/refinery/icons/flags/tg.png +0 -0
  216. data/{public → app/assets}/images/refinery/icons/flags/th.png +0 -0
  217. data/{public → app/assets}/images/refinery/icons/flags/tj.png +0 -0
  218. data/{public → app/assets}/images/refinery/icons/flags/tk.png +0 -0
  219. data/{public → app/assets}/images/refinery/icons/flags/tl.png +0 -0
  220. data/{public → app/assets}/images/refinery/icons/flags/tm.png +0 -0
  221. data/{public → app/assets}/images/refinery/icons/flags/tn.png +0 -0
  222. data/{public → app/assets}/images/refinery/icons/flags/to.png +0 -0
  223. data/{public → app/assets}/images/refinery/icons/flags/tr.png +0 -0
  224. data/{public → app/assets}/images/refinery/icons/flags/tt.png +0 -0
  225. data/{public → app/assets}/images/refinery/icons/flags/tv.png +0 -0
  226. data/{public → app/assets}/images/refinery/icons/flags/tw.png +0 -0
  227. data/{public → app/assets}/images/refinery/icons/flags/tz.png +0 -0
  228. data/{public → app/assets}/images/refinery/icons/flags/ua.png +0 -0
  229. data/{public → app/assets}/images/refinery/icons/flags/ug.png +0 -0
  230. data/{public → app/assets}/images/refinery/icons/flags/um.png +0 -0
  231. data/{public → app/assets}/images/refinery/icons/flags/us.png +0 -0
  232. data/{public → app/assets}/images/refinery/icons/flags/uy.png +0 -0
  233. data/{public → app/assets}/images/refinery/icons/flags/uz.png +0 -0
  234. data/{public → app/assets}/images/refinery/icons/flags/va.png +0 -0
  235. data/{public → app/assets}/images/refinery/icons/flags/vc.png +0 -0
  236. data/{public → app/assets}/images/refinery/icons/flags/ve.png +0 -0
  237. data/{public → app/assets}/images/refinery/icons/flags/vg.png +0 -0
  238. data/{public → app/assets}/images/refinery/icons/flags/vi.png +0 -0
  239. data/{public → app/assets}/images/refinery/icons/flags/vn.png +0 -0
  240. data/{public → app/assets}/images/refinery/icons/flags/vu.png +0 -0
  241. data/{public → app/assets}/images/refinery/icons/flags/wales.png +0 -0
  242. data/{public → app/assets}/images/refinery/icons/flags/wf.png +0 -0
  243. data/{public → app/assets}/images/refinery/icons/flags/ws.png +0 -0
  244. data/{public → app/assets}/images/refinery/icons/flags/ye.png +0 -0
  245. data/{public → app/assets}/images/refinery/icons/flags/yt.png +0 -0
  246. data/{public → app/assets}/images/refinery/icons/flags/za.png +0 -0
  247. data/{public → app/assets}/images/refinery/icons/flags/zh-CN.png +0 -0
  248. data/{public → app/assets}/images/refinery/icons/flags/zh-TW.png +0 -0
  249. data/{public → app/assets}/images/refinery/icons/flags/zm.png +0 -0
  250. data/{public → app/assets}/images/refinery/icons/flags/zw.png +0 -0
  251. data/config/locales/bg.yml +102 -23
  252. data/config/locales/{jp.yml → ja.yml} +4 -1
  253. data/lib/gemspec.rb +5 -8
  254. data/lib/generators/refinery/i18n_generator.rb +10 -0
  255. data/lib/generators/refinery/templates/config/initializers/refinery/i18n.rb.erb +15 -0
  256. data/lib/refinery/i18n/configuration.rb +15 -0
  257. data/lib/refinery/i18n/engine.rb +80 -0
  258. data/lib/refinery/i18n-filter.rb +1 -3
  259. data/lib/refinery/i18n.rb +37 -191
  260. data/lib/refinerycms-i18n.rb +1 -1
  261. data/spec/requests/dashboard_locale_picker_spec.rb +32 -0
  262. data/spec/spec_helper.rb +56 -0
  263. data/tasks/rspec.rake +4 -0
  264. metadata +290 -286
  265. data/config/i18n-js.yml +0 -4
  266. data/features/dashboard.feature +0 -28
  267. data/i18n-js-readme.rdoc +0 -249
  268. data/lib/generators/refinerycms_i18n_generator.rb +0 -10
  269. data/lib/refinery/i18n-js/railtie.rb +0 -9
  270. data/lib/refinery/i18n-js/version.rb +0 -10
  271. data/lib/refinery/i18n-js.rb +0 -128
  272. data/lib/refinery/i18n-js.yml +0 -4
  273. data/lib/refinery/i18n.js +0 -339
  274. data/lib/tasks/i18n-js_tasks.rake +0 -16
  275. data/public/images/refinery/icons/flags/en.png +0 -0
  276. data/public/images/refinery/icons/flags/et.png +0 -0
  277. data/public/images/refinery/icons/flags/sv.png +0 -0
  278. data/test/i18n-test.html +0 -50
  279. data/test/i18n-test.js +0 -661
  280. data/test/i18n_js_test.rb +0 -168
  281. data/test/jsunittest/jsunittest.js +0 -1017
  282. data/test/jsunittest/unittest.css +0 -54
  283. data/test/resources/custom_path.yml +0 -4
  284. data/test/resources/default.yml +0 -4
  285. data/test/resources/locales.yml +0 -76
  286. data/test/resources/multiple_files.yml +0 -6
  287. data/test/resources/no_scope.yml +0 -3
  288. data/test/resources/simple_scope.yml +0 -4
  289. 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
- if defined?(Refinery) && Refinery.version > '0.9.9'
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
- module I18n
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
- attr_accessor :built_in_locales, :current_locale, :current_frontend_locale,
95
- :default_locale, :default_frontend_locale, :enabled, :locales
96
-
97
- def enabled?
98
- RefinerySetting.find_or_set(:i18n_translation_enabled, true, {
99
- :scoping => 'refinery'
100
- })
101
- end
102
-
103
- def current_locale
104
- unless enabled?
105
- ::Refinery::I18n.current_locale = ::Refinery::I18n.default_locale
106
- else
107
- RefinerySetting.find_or_set(:i18n_translation_current_locale, ::Refinery::I18n.default_locale, {
108
- :scoping => 'refinery'
109
- }).to_sym
110
- end
111
- end
112
-
113
- def current_locale=(locale)
114
- value = {
115
- :value => locale.to_sym,
116
- :scoping => 'refinery'
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 != ::Refinery::I18n.default_frontend_locale.to_s
40
+ if Globalize.locale.present? && Globalize.locale.to_s != config.default_frontend_locale.to_s
136
41
  Globalize.locale
137
- elsif ::Refinery::I18n.default_frontend_locale.present?
138
- ::Refinery::I18n.default_frontend_locale
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 default_frontend_locale
145
- RefinerySetting.find_or_set(:i18n_translation_default_frontend_locale, :en, {
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
- @built_in_locales = {
191
- :en => 'English',
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
-
@@ -1 +1 @@
1
- require File.expand_path('../refinery/i18n', __FILE__)
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
@@ -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
@@ -0,0 +1,4 @@
1
+ require 'rspec/core/rake_task'
2
+
3
+ desc "Run specs"
4
+ RSpec::Core::RakeTask.new