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/test/i18n_js_test.rb DELETED
@@ -1,168 +0,0 @@
1
- require 'test_helper'
2
-
3
- class I18nJSTest < ActiveSupport::TestCase
4
- setup do
5
- # Remove temporary directory if already present
6
- FileUtils.rm_r(Rails.root) if File.exist?(Rails.root)
7
-
8
- # Create temporary directory to test the files generation
9
- %w( config public/javascripts ).each do |path|
10
- FileUtils.mkdir_p Rails.root.join(path)
11
- end
12
-
13
- # Overwrite defaut locales path to use fixtures
14
- I18n.load_path = [File.dirname(__FILE__) + "/resources/locales.yml"]
15
- end
16
-
17
- teardown do
18
- # Remove temporary directory
19
- FileUtils.rm_r(Rails.root)
20
- end
21
-
22
- test "copy configuration file" do
23
- assert_equal false, File.file?(SimplesIdeias::I18n::CONFIG_FILE)
24
- SimplesIdeias::I18n.setup!
25
- assert File.file?(SimplesIdeias::I18n::CONFIG_FILE)
26
- end
27
-
28
- test "don't overwrite existing configuration file" do
29
- File.open(SimplesIdeias::I18n::CONFIG_FILE, "w+") {|f| f << "ORIGINAL"}
30
- SimplesIdeias::I18n.setup!
31
-
32
- assert_equal "ORIGINAL", File.read(SimplesIdeias::I18n::CONFIG_FILE)
33
- end
34
-
35
- test "copy JavaScript library" do
36
- path = Rails.root.join("public/javascripts/i18n.js")
37
-
38
- assert_equal false, File.file?(path)
39
- SimplesIdeias::I18n.setup!
40
- assert File.file?(path)
41
- end
42
-
43
- test "load configuration file" do
44
- SimplesIdeias::I18n.setup!
45
-
46
- assert SimplesIdeias::I18n.config?
47
- assert_kind_of HashWithIndifferentAccess, SimplesIdeias::I18n.config
48
- assert SimplesIdeias::I18n.config.any?
49
- end
50
-
51
- test "export messages to default path when configuration file doesn't exist" do
52
- SimplesIdeias::I18n.export!
53
- assert File.file?(Rails.root.join("public/javascripts/translations.js"))
54
- end
55
-
56
- test "export messages using the default configuration file" do
57
- set_config "default.yml"
58
- SimplesIdeias::I18n.expects(:save).with(translations, "public/javascripts/translations.js")
59
- SimplesIdeias::I18n.export!
60
- end
61
-
62
- test "export messages using custom output path" do
63
- set_config "custom_path.yml"
64
- SimplesIdeias::I18n.expects(:save).with(translations, "public/javascripts/translations/all.js")
65
- SimplesIdeias::I18n.export!
66
- end
67
-
68
- test "set default scope to * when not specified" do
69
- set_config "no_scope.yml"
70
- SimplesIdeias::I18n.expects(:save).with(translations, "public/javascripts/no_scope.js")
71
- SimplesIdeias::I18n.export!
72
- end
73
-
74
- test "export to multiple files" do
75
- set_config "multiple_files.yml"
76
- SimplesIdeias::I18n.export!
77
-
78
- assert File.file?(Rails.root.join("public/javascripts/all.js"))
79
- assert File.file?(Rails.root.join("public/javascripts/tudo.js"))
80
- end
81
-
82
- test "filtered translations using scope *.date.formats" do
83
- result = SimplesIdeias::I18n.filter(translations, "*.date.formats")
84
- assert_equal [:formats], result[:en][:date].keys
85
- assert_equal [:formats], result[:fr][:date].keys
86
- end
87
-
88
- test "filtered translations using scope [*.date.formats, *.number.currency.format]" do
89
- result = SimplesIdeias::I18n.scoped_translations(["*.date.formats", "*.number.currency.format"])
90
- assert_equal %w[ date number ], result[:en].keys.collect(&:to_s).sort
91
- assert_equal %w[ date number ], result[:fr].keys.collect(&:to_s).sort
92
- end
93
-
94
- test "filtered translations using multi-star scope" do
95
- result = SimplesIdeias::I18n.scoped_translations("*.*.formats")
96
-
97
- assert_equal %w[ date time ], result[:en].keys.collect(&:to_s).sort
98
- assert_equal %w[ date time ], result[:fr].keys.collect(&:to_s).sort
99
-
100
- assert_equal [:formats], result[:en][:date].keys
101
- assert_equal [:formats], result[:en][:time].keys
102
-
103
- assert_equal [:formats], result[:fr][:date].keys
104
- assert_equal [:formats], result[:fr][:time].keys
105
- end
106
-
107
- test "filtered translations using alternated stars" do
108
- result = SimplesIdeias::I18n.scoped_translations("*.admin.*.title")
109
-
110
- assert_equal %w[ edit show ], result[:en][:admin].keys.collect(&:to_s).sort
111
- assert_equal %w[ edit show ], result[:fr][:admin].keys.collect(&:to_s).sort
112
-
113
- assert_equal "Show", result[:en][:admin][:show][:title]
114
- assert_equal "Visualiser", result[:fr][:admin][:show][:title]
115
-
116
- assert_equal "Edit", result[:en][:admin][:edit][:title]
117
- assert_equal "Editer", result[:fr][:admin][:edit][:title]
118
- end
119
-
120
- test "deep merge" do
121
- target = {:a => {:b => 1}}
122
- result = SimplesIdeias::I18n.deep_merge(target, {:a => {:c => 2}})
123
-
124
- assert_equal result[:a], {:b => 1, :c => 2}
125
- end
126
-
127
- test "deep banged merge" do
128
- target = {:a => {:b => 1}}
129
- SimplesIdeias::I18n.deep_merge!(target, {:a => {:c => 2}})
130
-
131
- assert_equal target[:a], {:b => 1, :c => 2}
132
- end
133
-
134
- test "sorted hash" do
135
- assert_equal [:c, :a, :b], {:b => 1, :a => 2, :c => 3}.keys
136
- assert_equal [:a, :b, :c], SimplesIdeias::I18n.sorted_hash(:b => 1, :a => 2, :c => 3).keys
137
- end
138
-
139
- test "sorted multi-levels hash" do
140
- hash = {
141
- :foo => {:b => 1, :a => 2, :c => 3}
142
- }
143
-
144
- assert_equal [:c, :a, :b], hash[:foo].keys
145
- assert_equal [:a, :b, :c], SimplesIdeias::I18n.sorted_hash(hash[:foo]).keys
146
- end
147
-
148
- test "update javascript library" do
149
- FakeWeb.register_uri(:get, "http://github.com/fnando/i18n-js/raw/master/lib/i18n.js", :body => "UPDATED")
150
-
151
- SimplesIdeias::I18n.setup!
152
- SimplesIdeias::I18n.update!
153
- assert_equal "UPDATED", File.read(SimplesIdeias::I18n::JAVASCRIPT_FILE)
154
- end
155
-
156
- private
157
- # Set the configuration as the current one
158
- def set_config(path)
159
- config = HashWithIndifferentAccess.new(YAML.load_file(File.dirname(__FILE__) + "/resources/#{path}"))
160
- SimplesIdeias::I18n.expects(:config?).returns(true)
161
- SimplesIdeias::I18n.expects(:config).returns(config)
162
- end
163
-
164
- # Shortcut to SimplesIdeias::I18n.translations
165
- def translations
166
- SimplesIdeias::I18n.translations
167
- end
168
- end