lit 1.0 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (297) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +13 -5
  3. data/app/assets/javascripts/lit/backend/bootstrap.min.js +7 -0
  4. data/app/assets/javascripts/lit/backend/localizations.js.coffee +13 -6
  5. data/app/assets/stylesheets/lit/application.css +16 -13
  6. data/app/controllers/lit/api/v1/localizations_controller.rb +12 -15
  7. data/app/controllers/lit/cloud_translations_controller.rb +1 -1
  8. data/app/controllers/lit/concerns/request_info_store.rb +16 -10
  9. data/app/controllers/lit/concerns/request_keys_store.rb +17 -10
  10. data/app/controllers/lit/localization_keys_controller.rb +40 -34
  11. data/app/controllers/lit/localizations_controller.rb +1 -1
  12. data/app/controllers/lit/sources_controller.rb +1 -1
  13. data/app/helpers/lit/frontend_helper.rb +1 -1
  14. data/app/helpers/lit/localizations_helper.rb +9 -0
  15. data/app/models/lit/base.rb +33 -17
  16. data/app/models/lit/incomming_localization.rb +13 -27
  17. data/app/models/lit/localization.rb +6 -14
  18. data/app/services/remote_interactor_service.rb +3 -1
  19. data/app/services/synchronize_source_service.rb +4 -8
  20. data/app/views/layouts/lit/application.html.erb +0 -1
  21. data/app/views/lit/dashboard/index.html.erb +1 -1
  22. data/app/views/lit/incomming_localizations/index.html.erb +1 -1
  23. data/app/views/lit/localization_keys/_localizations_list.html.erb +19 -11
  24. data/app/views/lit/localization_keys/batch_touch.js.erb +1 -0
  25. data/app/views/lit/localization_keys/index.html.erb +2 -0
  26. data/app/views/lit/localization_keys/not_translated.html.erb +2 -0
  27. data/app/views/lit/localization_keys/visited_again.html.erb +3 -0
  28. data/app/views/lit/localizations/update.js.erb +1 -1
  29. data/config/routes.rb +1 -0
  30. data/lib/generators/lit/install/templates/initializer.rb +6 -3
  31. data/lib/lit.rb +19 -6
  32. data/lib/lit/adapters/hash_storage.rb +35 -1
  33. data/lib/lit/adapters/redis_storage.rb +42 -7
  34. data/lib/lit/cache.rb +66 -10
  35. data/lib/lit/cloud_translation/providers/google.rb +2 -0
  36. data/lib/lit/cloud_translation/providers/yandex.rb +2 -0
  37. data/lib/lit/engine.rb +12 -5
  38. data/lib/lit/export.rb +2 -18
  39. data/lib/lit/i18n_backend.rb +20 -7
  40. data/lib/lit/import.rb +18 -15
  41. data/lib/lit/loader.rb +1 -0
  42. data/lib/lit/middleware.rb +29 -0
  43. data/lib/lit/rails.rb +1 -0
  44. data/lib/lit/railtie.rb +6 -7
  45. data/lib/lit/services/localization_keys_to_hash_service.rb +23 -0
  46. data/lib/lit/version.rb +1 -1
  47. metadata +30 -263
  48. data/app/assets/images/lit/famfamfam_flags/ad.png +0 -0
  49. data/app/assets/images/lit/famfamfam_flags/ae.png +0 -0
  50. data/app/assets/images/lit/famfamfam_flags/af.png +0 -0
  51. data/app/assets/images/lit/famfamfam_flags/ag.png +0 -0
  52. data/app/assets/images/lit/famfamfam_flags/ai.png +0 -0
  53. data/app/assets/images/lit/famfamfam_flags/al.png +0 -0
  54. data/app/assets/images/lit/famfamfam_flags/am.png +0 -0
  55. data/app/assets/images/lit/famfamfam_flags/an.png +0 -0
  56. data/app/assets/images/lit/famfamfam_flags/ao.png +0 -0
  57. data/app/assets/images/lit/famfamfam_flags/ar.png +0 -0
  58. data/app/assets/images/lit/famfamfam_flags/as.png +0 -0
  59. data/app/assets/images/lit/famfamfam_flags/at.png +0 -0
  60. data/app/assets/images/lit/famfamfam_flags/au.png +0 -0
  61. data/app/assets/images/lit/famfamfam_flags/aw.png +0 -0
  62. data/app/assets/images/lit/famfamfam_flags/ax.png +0 -0
  63. data/app/assets/images/lit/famfamfam_flags/az.png +0 -0
  64. data/app/assets/images/lit/famfamfam_flags/ba.png +0 -0
  65. data/app/assets/images/lit/famfamfam_flags/bb.png +0 -0
  66. data/app/assets/images/lit/famfamfam_flags/bd.png +0 -0
  67. data/app/assets/images/lit/famfamfam_flags/be.png +0 -0
  68. data/app/assets/images/lit/famfamfam_flags/bf.png +0 -0
  69. data/app/assets/images/lit/famfamfam_flags/bg.png +0 -0
  70. data/app/assets/images/lit/famfamfam_flags/bh.png +0 -0
  71. data/app/assets/images/lit/famfamfam_flags/bi.png +0 -0
  72. data/app/assets/images/lit/famfamfam_flags/bj.png +0 -0
  73. data/app/assets/images/lit/famfamfam_flags/bm.png +0 -0
  74. data/app/assets/images/lit/famfamfam_flags/bn.png +0 -0
  75. data/app/assets/images/lit/famfamfam_flags/bo.png +0 -0
  76. data/app/assets/images/lit/famfamfam_flags/br.png +0 -0
  77. data/app/assets/images/lit/famfamfam_flags/bs.png +0 -0
  78. data/app/assets/images/lit/famfamfam_flags/bt.png +0 -0
  79. data/app/assets/images/lit/famfamfam_flags/bv.png +0 -0
  80. data/app/assets/images/lit/famfamfam_flags/bw.png +0 -0
  81. data/app/assets/images/lit/famfamfam_flags/by.png +0 -0
  82. data/app/assets/images/lit/famfamfam_flags/bz.png +0 -0
  83. data/app/assets/images/lit/famfamfam_flags/ca.png +0 -0
  84. data/app/assets/images/lit/famfamfam_flags/catalonia.png +0 -0
  85. data/app/assets/images/lit/famfamfam_flags/cc.png +0 -0
  86. data/app/assets/images/lit/famfamfam_flags/cd.png +0 -0
  87. data/app/assets/images/lit/famfamfam_flags/cf.png +0 -0
  88. data/app/assets/images/lit/famfamfam_flags/cg.png +0 -0
  89. data/app/assets/images/lit/famfamfam_flags/ch.png +0 -0
  90. data/app/assets/images/lit/famfamfam_flags/ci.png +0 -0
  91. data/app/assets/images/lit/famfamfam_flags/ck.png +0 -0
  92. data/app/assets/images/lit/famfamfam_flags/cl.png +0 -0
  93. data/app/assets/images/lit/famfamfam_flags/cm.png +0 -0
  94. data/app/assets/images/lit/famfamfam_flags/cn.png +0 -0
  95. data/app/assets/images/lit/famfamfam_flags/co.png +0 -0
  96. data/app/assets/images/lit/famfamfam_flags/cr.png +0 -0
  97. data/app/assets/images/lit/famfamfam_flags/cs.png +0 -0
  98. data/app/assets/images/lit/famfamfam_flags/cu.png +0 -0
  99. data/app/assets/images/lit/famfamfam_flags/cv.png +0 -0
  100. data/app/assets/images/lit/famfamfam_flags/cx.png +0 -0
  101. data/app/assets/images/lit/famfamfam_flags/cy.png +0 -0
  102. data/app/assets/images/lit/famfamfam_flags/cz.png +0 -0
  103. data/app/assets/images/lit/famfamfam_flags/da.png +0 -0
  104. data/app/assets/images/lit/famfamfam_flags/de.png +0 -0
  105. data/app/assets/images/lit/famfamfam_flags/dj.png +0 -0
  106. data/app/assets/images/lit/famfamfam_flags/dk.png +0 -0
  107. data/app/assets/images/lit/famfamfam_flags/dm.png +0 -0
  108. data/app/assets/images/lit/famfamfam_flags/do.png +0 -0
  109. data/app/assets/images/lit/famfamfam_flags/dz.png +0 -0
  110. data/app/assets/images/lit/famfamfam_flags/ec.png +0 -0
  111. data/app/assets/images/lit/famfamfam_flags/ee.png +0 -0
  112. data/app/assets/images/lit/famfamfam_flags/eg.png +0 -0
  113. data/app/assets/images/lit/famfamfam_flags/eh.png +0 -0
  114. data/app/assets/images/lit/famfamfam_flags/en.png +0 -0
  115. data/app/assets/images/lit/famfamfam_flags/england.png +0 -0
  116. data/app/assets/images/lit/famfamfam_flags/er.png +0 -0
  117. data/app/assets/images/lit/famfamfam_flags/es.png +0 -0
  118. data/app/assets/images/lit/famfamfam_flags/et.png +0 -0
  119. data/app/assets/images/lit/famfamfam_flags/europeanunion.png +0 -0
  120. data/app/assets/images/lit/famfamfam_flags/fam.png +0 -0
  121. data/app/assets/images/lit/famfamfam_flags/fi.png +0 -0
  122. data/app/assets/images/lit/famfamfam_flags/fj.png +0 -0
  123. data/app/assets/images/lit/famfamfam_flags/fk.png +0 -0
  124. data/app/assets/images/lit/famfamfam_flags/fm.png +0 -0
  125. data/app/assets/images/lit/famfamfam_flags/fo.png +0 -0
  126. data/app/assets/images/lit/famfamfam_flags/fr.png +0 -0
  127. data/app/assets/images/lit/famfamfam_flags/ga.png +0 -0
  128. data/app/assets/images/lit/famfamfam_flags/gb.png +0 -0
  129. data/app/assets/images/lit/famfamfam_flags/gd.png +0 -0
  130. data/app/assets/images/lit/famfamfam_flags/ge.png +0 -0
  131. data/app/assets/images/lit/famfamfam_flags/gf.png +0 -0
  132. data/app/assets/images/lit/famfamfam_flags/gh.png +0 -0
  133. data/app/assets/images/lit/famfamfam_flags/gi.png +0 -0
  134. data/app/assets/images/lit/famfamfam_flags/gl.png +0 -0
  135. data/app/assets/images/lit/famfamfam_flags/gm.png +0 -0
  136. data/app/assets/images/lit/famfamfam_flags/gn.png +0 -0
  137. data/app/assets/images/lit/famfamfam_flags/gp.png +0 -0
  138. data/app/assets/images/lit/famfamfam_flags/gq.png +0 -0
  139. data/app/assets/images/lit/famfamfam_flags/gr.png +0 -0
  140. data/app/assets/images/lit/famfamfam_flags/gs.png +0 -0
  141. data/app/assets/images/lit/famfamfam_flags/gt.png +0 -0
  142. data/app/assets/images/lit/famfamfam_flags/gu.png +0 -0
  143. data/app/assets/images/lit/famfamfam_flags/gw.png +0 -0
  144. data/app/assets/images/lit/famfamfam_flags/gy.png +0 -0
  145. data/app/assets/images/lit/famfamfam_flags/hk.png +0 -0
  146. data/app/assets/images/lit/famfamfam_flags/hm.png +0 -0
  147. data/app/assets/images/lit/famfamfam_flags/hn.png +0 -0
  148. data/app/assets/images/lit/famfamfam_flags/hr.png +0 -0
  149. data/app/assets/images/lit/famfamfam_flags/ht.png +0 -0
  150. data/app/assets/images/lit/famfamfam_flags/hu.png +0 -0
  151. data/app/assets/images/lit/famfamfam_flags/id.png +0 -0
  152. data/app/assets/images/lit/famfamfam_flags/ie.png +0 -0
  153. data/app/assets/images/lit/famfamfam_flags/il.png +0 -0
  154. data/app/assets/images/lit/famfamfam_flags/in.png +0 -0
  155. data/app/assets/images/lit/famfamfam_flags/io.png +0 -0
  156. data/app/assets/images/lit/famfamfam_flags/iq.png +0 -0
  157. data/app/assets/images/lit/famfamfam_flags/ir.png +0 -0
  158. data/app/assets/images/lit/famfamfam_flags/is.png +0 -0
  159. data/app/assets/images/lit/famfamfam_flags/it.png +0 -0
  160. data/app/assets/images/lit/famfamfam_flags/ja.png +0 -0
  161. data/app/assets/images/lit/famfamfam_flags/jm.png +0 -0
  162. data/app/assets/images/lit/famfamfam_flags/jo.png +0 -0
  163. data/app/assets/images/lit/famfamfam_flags/jp.png +0 -0
  164. data/app/assets/images/lit/famfamfam_flags/ke.png +0 -0
  165. data/app/assets/images/lit/famfamfam_flags/kg.png +0 -0
  166. data/app/assets/images/lit/famfamfam_flags/kh.png +0 -0
  167. data/app/assets/images/lit/famfamfam_flags/ki.png +0 -0
  168. data/app/assets/images/lit/famfamfam_flags/km.png +0 -0
  169. data/app/assets/images/lit/famfamfam_flags/kn.png +0 -0
  170. data/app/assets/images/lit/famfamfam_flags/kp.png +0 -0
  171. data/app/assets/images/lit/famfamfam_flags/kr.png +0 -0
  172. data/app/assets/images/lit/famfamfam_flags/kw.png +0 -0
  173. data/app/assets/images/lit/famfamfam_flags/ky.png +0 -0
  174. data/app/assets/images/lit/famfamfam_flags/kz.png +0 -0
  175. data/app/assets/images/lit/famfamfam_flags/la.png +0 -0
  176. data/app/assets/images/lit/famfamfam_flags/lb.png +0 -0
  177. data/app/assets/images/lit/famfamfam_flags/lc.png +0 -0
  178. data/app/assets/images/lit/famfamfam_flags/li.png +0 -0
  179. data/app/assets/images/lit/famfamfam_flags/lk.png +0 -0
  180. data/app/assets/images/lit/famfamfam_flags/lr.png +0 -0
  181. data/app/assets/images/lit/famfamfam_flags/ls.png +0 -0
  182. data/app/assets/images/lit/famfamfam_flags/lt.png +0 -0
  183. data/app/assets/images/lit/famfamfam_flags/lu.png +0 -0
  184. data/app/assets/images/lit/famfamfam_flags/lv.png +0 -0
  185. data/app/assets/images/lit/famfamfam_flags/ly.png +0 -0
  186. data/app/assets/images/lit/famfamfam_flags/ma.png +0 -0
  187. data/app/assets/images/lit/famfamfam_flags/mc.png +0 -0
  188. data/app/assets/images/lit/famfamfam_flags/md.png +0 -0
  189. data/app/assets/images/lit/famfamfam_flags/me.png +0 -0
  190. data/app/assets/images/lit/famfamfam_flags/mg.png +0 -0
  191. data/app/assets/images/lit/famfamfam_flags/mh.png +0 -0
  192. data/app/assets/images/lit/famfamfam_flags/mk.png +0 -0
  193. data/app/assets/images/lit/famfamfam_flags/ml.png +0 -0
  194. data/app/assets/images/lit/famfamfam_flags/mm.png +0 -0
  195. data/app/assets/images/lit/famfamfam_flags/mn.png +0 -0
  196. data/app/assets/images/lit/famfamfam_flags/mo.png +0 -0
  197. data/app/assets/images/lit/famfamfam_flags/mp.png +0 -0
  198. data/app/assets/images/lit/famfamfam_flags/mq.png +0 -0
  199. data/app/assets/images/lit/famfamfam_flags/mr.png +0 -0
  200. data/app/assets/images/lit/famfamfam_flags/ms.png +0 -0
  201. data/app/assets/images/lit/famfamfam_flags/mt.png +0 -0
  202. data/app/assets/images/lit/famfamfam_flags/mu.png +0 -0
  203. data/app/assets/images/lit/famfamfam_flags/mv.png +0 -0
  204. data/app/assets/images/lit/famfamfam_flags/mw.png +0 -0
  205. data/app/assets/images/lit/famfamfam_flags/mx.png +0 -0
  206. data/app/assets/images/lit/famfamfam_flags/my.png +0 -0
  207. data/app/assets/images/lit/famfamfam_flags/mz.png +0 -0
  208. data/app/assets/images/lit/famfamfam_flags/na.png +0 -0
  209. data/app/assets/images/lit/famfamfam_flags/nc.png +0 -0
  210. data/app/assets/images/lit/famfamfam_flags/ne.png +0 -0
  211. data/app/assets/images/lit/famfamfam_flags/nf.png +0 -0
  212. data/app/assets/images/lit/famfamfam_flags/ng.png +0 -0
  213. data/app/assets/images/lit/famfamfam_flags/ni.png +0 -0
  214. data/app/assets/images/lit/famfamfam_flags/nl.png +0 -0
  215. data/app/assets/images/lit/famfamfam_flags/no.png +0 -0
  216. data/app/assets/images/lit/famfamfam_flags/np.png +0 -0
  217. data/app/assets/images/lit/famfamfam_flags/nr.png +0 -0
  218. data/app/assets/images/lit/famfamfam_flags/nu.png +0 -0
  219. data/app/assets/images/lit/famfamfam_flags/nz.png +0 -0
  220. data/app/assets/images/lit/famfamfam_flags/om.png +0 -0
  221. data/app/assets/images/lit/famfamfam_flags/pa.png +0 -0
  222. data/app/assets/images/lit/famfamfam_flags/pe.png +0 -0
  223. data/app/assets/images/lit/famfamfam_flags/pf.png +0 -0
  224. data/app/assets/images/lit/famfamfam_flags/pg.png +0 -0
  225. data/app/assets/images/lit/famfamfam_flags/ph.png +0 -0
  226. data/app/assets/images/lit/famfamfam_flags/pk.png +0 -0
  227. data/app/assets/images/lit/famfamfam_flags/pl.png +0 -0
  228. data/app/assets/images/lit/famfamfam_flags/pm.png +0 -0
  229. data/app/assets/images/lit/famfamfam_flags/pn.png +0 -0
  230. data/app/assets/images/lit/famfamfam_flags/pr.png +0 -0
  231. data/app/assets/images/lit/famfamfam_flags/ps.png +0 -0
  232. data/app/assets/images/lit/famfamfam_flags/pt.png +0 -0
  233. data/app/assets/images/lit/famfamfam_flags/pw.png +0 -0
  234. data/app/assets/images/lit/famfamfam_flags/py.png +0 -0
  235. data/app/assets/images/lit/famfamfam_flags/qa.png +0 -0
  236. data/app/assets/images/lit/famfamfam_flags/re.png +0 -0
  237. data/app/assets/images/lit/famfamfam_flags/ro.png +0 -0
  238. data/app/assets/images/lit/famfamfam_flags/rs.png +0 -0
  239. data/app/assets/images/lit/famfamfam_flags/ru.png +0 -0
  240. data/app/assets/images/lit/famfamfam_flags/rw.png +0 -0
  241. data/app/assets/images/lit/famfamfam_flags/sa.png +0 -0
  242. data/app/assets/images/lit/famfamfam_flags/sb.png +0 -0
  243. data/app/assets/images/lit/famfamfam_flags/sc.png +0 -0
  244. data/app/assets/images/lit/famfamfam_flags/scotland.png +0 -0
  245. data/app/assets/images/lit/famfamfam_flags/sd.png +0 -0
  246. data/app/assets/images/lit/famfamfam_flags/se.png +0 -0
  247. data/app/assets/images/lit/famfamfam_flags/sg.png +0 -0
  248. data/app/assets/images/lit/famfamfam_flags/sh.png +0 -0
  249. data/app/assets/images/lit/famfamfam_flags/si.png +0 -0
  250. data/app/assets/images/lit/famfamfam_flags/sj.png +0 -0
  251. data/app/assets/images/lit/famfamfam_flags/sk.png +0 -0
  252. data/app/assets/images/lit/famfamfam_flags/sl.png +0 -0
  253. data/app/assets/images/lit/famfamfam_flags/sm.png +0 -0
  254. data/app/assets/images/lit/famfamfam_flags/sn.png +0 -0
  255. data/app/assets/images/lit/famfamfam_flags/so.png +0 -0
  256. data/app/assets/images/lit/famfamfam_flags/sr.png +0 -0
  257. data/app/assets/images/lit/famfamfam_flags/st.png +0 -0
  258. data/app/assets/images/lit/famfamfam_flags/sv.png +0 -0
  259. data/app/assets/images/lit/famfamfam_flags/sy.png +0 -0
  260. data/app/assets/images/lit/famfamfam_flags/sz.png +0 -0
  261. data/app/assets/images/lit/famfamfam_flags/tc.png +0 -0
  262. data/app/assets/images/lit/famfamfam_flags/td.png +0 -0
  263. data/app/assets/images/lit/famfamfam_flags/tf.png +0 -0
  264. data/app/assets/images/lit/famfamfam_flags/tg.png +0 -0
  265. data/app/assets/images/lit/famfamfam_flags/th.png +0 -0
  266. data/app/assets/images/lit/famfamfam_flags/tj.png +0 -0
  267. data/app/assets/images/lit/famfamfam_flags/tk.png +0 -0
  268. data/app/assets/images/lit/famfamfam_flags/tl.png +0 -0
  269. data/app/assets/images/lit/famfamfam_flags/tm.png +0 -0
  270. data/app/assets/images/lit/famfamfam_flags/tn.png +0 -0
  271. data/app/assets/images/lit/famfamfam_flags/to.png +0 -0
  272. data/app/assets/images/lit/famfamfam_flags/tr.png +0 -0
  273. data/app/assets/images/lit/famfamfam_flags/tt.png +0 -0
  274. data/app/assets/images/lit/famfamfam_flags/tv.png +0 -0
  275. data/app/assets/images/lit/famfamfam_flags/tw.png +0 -0
  276. data/app/assets/images/lit/famfamfam_flags/tz.png +0 -0
  277. data/app/assets/images/lit/famfamfam_flags/ua.png +0 -0
  278. data/app/assets/images/lit/famfamfam_flags/ug.png +0 -0
  279. data/app/assets/images/lit/famfamfam_flags/um.png +0 -0
  280. data/app/assets/images/lit/famfamfam_flags/us.png +0 -0
  281. data/app/assets/images/lit/famfamfam_flags/uy.png +0 -0
  282. data/app/assets/images/lit/famfamfam_flags/uz.png +0 -0
  283. data/app/assets/images/lit/famfamfam_flags/va.png +0 -0
  284. data/app/assets/images/lit/famfamfam_flags/vc.png +0 -0
  285. data/app/assets/images/lit/famfamfam_flags/ve.png +0 -0
  286. data/app/assets/images/lit/famfamfam_flags/vg.png +0 -0
  287. data/app/assets/images/lit/famfamfam_flags/vi.png +0 -0
  288. data/app/assets/images/lit/famfamfam_flags/vn.png +0 -0
  289. data/app/assets/images/lit/famfamfam_flags/vu.png +0 -0
  290. data/app/assets/images/lit/famfamfam_flags/wales.png +0 -0
  291. data/app/assets/images/lit/famfamfam_flags/wf.png +0 -0
  292. data/app/assets/images/lit/famfamfam_flags/ws.png +0 -0
  293. data/app/assets/images/lit/famfamfam_flags/ye.png +0 -0
  294. data/app/assets/images/lit/famfamfam_flags/yt.png +0 -0
  295. data/app/assets/images/lit/famfamfam_flags/za.png +0 -0
  296. data/app/assets/images/lit/famfamfam_flags/zm.png +0 -0
  297. data/app/assets/images/lit/famfamfam_flags/zw.png +0 -0
data/lib/lit/import.rb CHANGED
@@ -3,14 +3,14 @@ require 'csv'
3
3
  module Lit
4
4
  class Import
5
5
  class << self
6
- def call(*args)
7
- new(*args).perform
6
+ def call(**kwargs)
7
+ new(**kwargs).perform
8
8
  end
9
9
  end
10
10
 
11
11
  attr_reader :input, :locale_keys, :format, :skip_nil
12
12
 
13
- def initialize(input:, locale_keys: [], format:, skip_nil: true, dry_run: false, raw: false)
13
+ def initialize(input:, format:, locale_keys: [], skip_nil: true, dry_run: false, raw: false)
14
14
  raise ArgumentError, 'format must be yaml or csv' if %i[yaml csv].exclude?(format.to_sym)
15
15
  @input = input
16
16
  @locale_keys = locale_keys.presence || I18n.available_locales
@@ -136,17 +136,20 @@ module Lit
136
136
  # is the array
137
137
  val = value.is_a?(Array) ? [value] : value
138
138
  I18n.t(key, default: val)
139
- unless @raw
140
- # this indicates that this translation already exists
141
- existing_translation =
142
- Lit::Localization.joins(:locale, :localization_key)
143
- .find_by('localization_key = ? and locale = ?',
144
- key, locale)
145
- if existing_translation
146
- existing_translation.update(translated_value: value, is_changed: true)
147
- lkey = existing_translation.localization_key
148
- lkey.update(is_deleted: false) if lkey.is_deleted
149
- end
139
+
140
+ # this indicates that this translation already exists
141
+ existing_translation =
142
+ Lit::Localization.joins(:locale, :localization_key)
143
+ .find_by('localization_key = ? and locale = ?', key, locale)
144
+
145
+ return unless existing_translation
146
+
147
+ if @raw
148
+ existing_translation.update(default_value: value)
149
+ else
150
+ existing_translation.update(translated_value: value, is_changed: true)
151
+ lkey = existing_translation.localization_key
152
+ lkey.update(is_deleted: false) if lkey.is_deleted
150
153
  end
151
154
  end
152
155
  end
@@ -158,7 +161,7 @@ module Lit
158
161
  accu[-1] = [
159
162
  row.first,
160
163
  *accu[-1].drop(1)
161
- .map { |x| Array.wrap(x) }
164
+ .map { |x| Array.wrap(x).presence || [x] }
162
165
  .zip(row.drop(1)).map(&:flatten)
163
166
  ]
164
167
  end
data/lib/lit/loader.rb CHANGED
@@ -4,6 +4,7 @@ require 'lit/cache'
4
4
  require 'lit/export'
5
5
  require 'lit/import'
6
6
  require 'lit/cloud_translation'
7
+ require 'emoji_flag'
7
8
 
8
9
  module Lit
9
10
  class Loader
@@ -0,0 +1,29 @@
1
+ require 'rack/body_proxy'
2
+
3
+ # A middleware that ensures the lit thread value is cleared after
4
+ # the last part of the body is rendered. This is useful when
5
+ # using streaming.j
6
+ #
7
+ # Uses Rack::BodyProxy, adapted from Rack::Lock's usage of the
8
+ # same pattern.
9
+ #
10
+
11
+ module Lit
12
+ class Middleware
13
+ def initialize(app)
14
+ @app = app
15
+ end
16
+
17
+ def call(env)
18
+ Thread.current[:localization_cache_valid] = false
19
+ response = @app.call(env)
20
+
21
+ # for streaming support wrap request in Rack::BodyProxy
22
+ response << Rack::BodyProxy.new(response.pop) do
23
+ Thread.current[:localization_cache_valid] = false
24
+ end
25
+ ensure
26
+ Thread.current[:localization_cache_valid] = false
27
+ end
28
+ end
29
+ end
data/lib/lit/rails.rb CHANGED
@@ -11,6 +11,7 @@ module Lit
11
11
  end
12
12
 
13
13
  if defined?(Rails::Railtie)
14
+ require 'lit/middleware'
14
15
  require 'lit/railtie'
15
16
  else
16
17
  Lit::Rails.initialize
data/lib/lit/railtie.rb CHANGED
@@ -1,12 +1,11 @@
1
1
  module Lit
2
2
  class Railtie < ::Rails::Railtie
3
- ## INITIALIZE IN config/initialize if you want to use redis!!!
4
- initializer :initialize_lit_rails, after: :before_initialize do
5
- # Lit::Rails.initialize
6
- end
3
+ initializer :lit_middleware do |app|
4
+ app.config.middleware.insert_after ActionDispatch::RequestId, Lit::Middleware
7
5
 
8
- # rake_tasks do
9
- # load "tasks/lit_tasks.rake"
10
- # end
6
+ ActiveSupport::Reloader.to_complete do
7
+ Thread.current[:localization_cache_valid] = false
8
+ end
9
+ end
11
10
  end
12
11
  end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Lit
4
+ # Converts flat hash with localization_keys as keys and translations as values to nested hash
5
+ # by nesting on '.' localization key dots
6
+ class LocalizationKeysToHashService
7
+ # http://subtech.g.hatena.ne.jp/cho45/20061122
8
+ def self.call(db_localizations)
9
+ deep_proc = proc do |_k, s, o|
10
+ next s.merge(o, &deep_proc) if s.is_a?(Hash) && o.is_a?(Hash)
11
+
12
+ next o
13
+ end
14
+ nested_keys = {}
15
+ db_localizations.sort.each do |k, v|
16
+ key_parts = k.to_s.split('.')
17
+ converted = key_parts.reverse.reduce(v) { |a, n| { n => a } }
18
+ nested_keys.merge!(converted, &deep_proc)
19
+ end
20
+ nested_keys
21
+ end
22
+ end
23
+ end
data/lib/lit/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Lit
2
- VERSION = '1.0'.freeze
2
+ VERSION = '1.1.2'.freeze
3
3
  end
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lit
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.0'
4
+ version: 1.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maciej Litwiniuk
8
8
  - Piotr Boniecki
9
9
  - Michał Buszkiewicz
10
10
  - Szymon Soppa
11
- autorequire:
11
+ autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2019-01-09 00:00:00.000000000 Z
14
+ date: 2021-04-26 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rails
@@ -69,34 +69,48 @@ dependencies:
69
69
  - - ">="
70
70
  - !ruby/object:Gem::Version
71
71
  version: '0'
72
+ - !ruby/object:Gem::Dependency
73
+ name: emoji_flag
74
+ requirement: !ruby/object:Gem::Requirement
75
+ requirements:
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
79
+ type: :runtime
80
+ prerelease: false
81
+ version_requirements: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - ">="
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
72
86
  - !ruby/object:Gem::Dependency
73
87
  name: appraisal
74
88
  requirement: !ruby/object:Gem::Requirement
75
89
  requirements:
76
90
  - - "~>"
77
91
  - !ruby/object:Gem::Version
78
- version: 2.2.0
92
+ version: 2.4.0
79
93
  type: :development
80
94
  prerelease: false
81
95
  version_requirements: !ruby/object:Gem::Requirement
82
96
  requirements:
83
97
  - - "~>"
84
98
  - !ruby/object:Gem::Version
85
- version: 2.2.0
99
+ version: 2.4.0
86
100
  - !ruby/object:Gem::Dependency
87
101
  name: devise
88
102
  requirement: !ruby/object:Gem::Requirement
89
103
  requirements:
90
104
  - - "~>"
91
105
  - !ruby/object:Gem::Version
92
- version: 4.5.0
106
+ version: 4.7.1
93
107
  type: :development
94
108
  prerelease: false
95
109
  version_requirements: !ruby/object:Gem::Requirement
96
110
  requirements:
97
111
  - - "~>"
98
112
  - !ruby/object:Gem::Version
99
- version: 4.5.0
113
+ version: 4.7.1
100
114
  - !ruby/object:Gem::Dependency
101
115
  name: google-cloud-translate
102
116
  requirement: !ruby/object:Gem::Requirement
@@ -145,14 +159,14 @@ dependencies:
145
159
  requirements:
146
160
  - - "~>"
147
161
  - !ruby/object:Gem::Version
148
- version: 3.6.0
162
+ version: 3.9.0
149
163
  type: :development
150
164
  prerelease: false
151
165
  version_requirements: !ruby/object:Gem::Requirement
152
166
  requirements:
153
167
  - - "~>"
154
168
  - !ruby/object:Gem::Version
155
- version: 3.6.0
169
+ version: 3.9.0
156
170
  - !ruby/object:Gem::Dependency
157
171
  name: vcr
158
172
  requirement: !ruby/object:Gem::Requirement
@@ -193,259 +207,10 @@ files:
193
207
  - MIT-LICENSE
194
208
  - README.md
195
209
  - Rakefile
196
- - app/assets/images/lit/famfamfam_flags/ad.png
197
- - app/assets/images/lit/famfamfam_flags/ae.png
198
- - app/assets/images/lit/famfamfam_flags/af.png
199
- - app/assets/images/lit/famfamfam_flags/ag.png
200
- - app/assets/images/lit/famfamfam_flags/ai.png
201
- - app/assets/images/lit/famfamfam_flags/al.png
202
- - app/assets/images/lit/famfamfam_flags/am.png
203
- - app/assets/images/lit/famfamfam_flags/an.png
204
- - app/assets/images/lit/famfamfam_flags/ao.png
205
- - app/assets/images/lit/famfamfam_flags/ar.png
206
- - app/assets/images/lit/famfamfam_flags/as.png
207
- - app/assets/images/lit/famfamfam_flags/at.png
208
- - app/assets/images/lit/famfamfam_flags/au.png
209
- - app/assets/images/lit/famfamfam_flags/aw.png
210
- - app/assets/images/lit/famfamfam_flags/ax.png
211
- - app/assets/images/lit/famfamfam_flags/az.png
212
- - app/assets/images/lit/famfamfam_flags/ba.png
213
- - app/assets/images/lit/famfamfam_flags/bb.png
214
- - app/assets/images/lit/famfamfam_flags/bd.png
215
- - app/assets/images/lit/famfamfam_flags/be.png
216
- - app/assets/images/lit/famfamfam_flags/bf.png
217
- - app/assets/images/lit/famfamfam_flags/bg.png
218
- - app/assets/images/lit/famfamfam_flags/bh.png
219
- - app/assets/images/lit/famfamfam_flags/bi.png
220
- - app/assets/images/lit/famfamfam_flags/bj.png
221
- - app/assets/images/lit/famfamfam_flags/bm.png
222
- - app/assets/images/lit/famfamfam_flags/bn.png
223
- - app/assets/images/lit/famfamfam_flags/bo.png
224
- - app/assets/images/lit/famfamfam_flags/br.png
225
- - app/assets/images/lit/famfamfam_flags/bs.png
226
- - app/assets/images/lit/famfamfam_flags/bt.png
227
- - app/assets/images/lit/famfamfam_flags/bv.png
228
- - app/assets/images/lit/famfamfam_flags/bw.png
229
- - app/assets/images/lit/famfamfam_flags/by.png
230
- - app/assets/images/lit/famfamfam_flags/bz.png
231
- - app/assets/images/lit/famfamfam_flags/ca.png
232
- - app/assets/images/lit/famfamfam_flags/catalonia.png
233
- - app/assets/images/lit/famfamfam_flags/cc.png
234
- - app/assets/images/lit/famfamfam_flags/cd.png
235
- - app/assets/images/lit/famfamfam_flags/cf.png
236
- - app/assets/images/lit/famfamfam_flags/cg.png
237
- - app/assets/images/lit/famfamfam_flags/ch.png
238
- - app/assets/images/lit/famfamfam_flags/ci.png
239
- - app/assets/images/lit/famfamfam_flags/ck.png
240
- - app/assets/images/lit/famfamfam_flags/cl.png
241
- - app/assets/images/lit/famfamfam_flags/cm.png
242
- - app/assets/images/lit/famfamfam_flags/cn.png
243
- - app/assets/images/lit/famfamfam_flags/co.png
244
- - app/assets/images/lit/famfamfam_flags/cr.png
245
- - app/assets/images/lit/famfamfam_flags/cs.png
246
- - app/assets/images/lit/famfamfam_flags/cu.png
247
- - app/assets/images/lit/famfamfam_flags/cv.png
248
- - app/assets/images/lit/famfamfam_flags/cx.png
249
- - app/assets/images/lit/famfamfam_flags/cy.png
250
- - app/assets/images/lit/famfamfam_flags/cz.png
251
- - app/assets/images/lit/famfamfam_flags/da.png
252
- - app/assets/images/lit/famfamfam_flags/de.png
253
- - app/assets/images/lit/famfamfam_flags/dj.png
254
- - app/assets/images/lit/famfamfam_flags/dk.png
255
- - app/assets/images/lit/famfamfam_flags/dm.png
256
- - app/assets/images/lit/famfamfam_flags/do.png
257
- - app/assets/images/lit/famfamfam_flags/dz.png
258
- - app/assets/images/lit/famfamfam_flags/ec.png
259
- - app/assets/images/lit/famfamfam_flags/ee.png
260
- - app/assets/images/lit/famfamfam_flags/eg.png
261
- - app/assets/images/lit/famfamfam_flags/eh.png
262
- - app/assets/images/lit/famfamfam_flags/en.png
263
- - app/assets/images/lit/famfamfam_flags/england.png
264
- - app/assets/images/lit/famfamfam_flags/er.png
265
- - app/assets/images/lit/famfamfam_flags/es.png
266
- - app/assets/images/lit/famfamfam_flags/et.png
267
- - app/assets/images/lit/famfamfam_flags/europeanunion.png
268
- - app/assets/images/lit/famfamfam_flags/fam.png
269
- - app/assets/images/lit/famfamfam_flags/fi.png
270
- - app/assets/images/lit/famfamfam_flags/fj.png
271
- - app/assets/images/lit/famfamfam_flags/fk.png
272
- - app/assets/images/lit/famfamfam_flags/fm.png
273
- - app/assets/images/lit/famfamfam_flags/fo.png
274
- - app/assets/images/lit/famfamfam_flags/fr.png
275
- - app/assets/images/lit/famfamfam_flags/ga.png
276
- - app/assets/images/lit/famfamfam_flags/gb.png
277
- - app/assets/images/lit/famfamfam_flags/gd.png
278
- - app/assets/images/lit/famfamfam_flags/ge.png
279
- - app/assets/images/lit/famfamfam_flags/gf.png
280
- - app/assets/images/lit/famfamfam_flags/gh.png
281
- - app/assets/images/lit/famfamfam_flags/gi.png
282
- - app/assets/images/lit/famfamfam_flags/gl.png
283
- - app/assets/images/lit/famfamfam_flags/gm.png
284
- - app/assets/images/lit/famfamfam_flags/gn.png
285
- - app/assets/images/lit/famfamfam_flags/gp.png
286
- - app/assets/images/lit/famfamfam_flags/gq.png
287
- - app/assets/images/lit/famfamfam_flags/gr.png
288
- - app/assets/images/lit/famfamfam_flags/gs.png
289
- - app/assets/images/lit/famfamfam_flags/gt.png
290
- - app/assets/images/lit/famfamfam_flags/gu.png
291
- - app/assets/images/lit/famfamfam_flags/gw.png
292
- - app/assets/images/lit/famfamfam_flags/gy.png
293
- - app/assets/images/lit/famfamfam_flags/hk.png
294
- - app/assets/images/lit/famfamfam_flags/hm.png
295
- - app/assets/images/lit/famfamfam_flags/hn.png
296
- - app/assets/images/lit/famfamfam_flags/hr.png
297
- - app/assets/images/lit/famfamfam_flags/ht.png
298
- - app/assets/images/lit/famfamfam_flags/hu.png
299
- - app/assets/images/lit/famfamfam_flags/id.png
300
- - app/assets/images/lit/famfamfam_flags/ie.png
301
- - app/assets/images/lit/famfamfam_flags/il.png
302
- - app/assets/images/lit/famfamfam_flags/in.png
303
- - app/assets/images/lit/famfamfam_flags/io.png
304
- - app/assets/images/lit/famfamfam_flags/iq.png
305
- - app/assets/images/lit/famfamfam_flags/ir.png
306
- - app/assets/images/lit/famfamfam_flags/is.png
307
- - app/assets/images/lit/famfamfam_flags/it.png
308
- - app/assets/images/lit/famfamfam_flags/ja.png
309
- - app/assets/images/lit/famfamfam_flags/jm.png
310
- - app/assets/images/lit/famfamfam_flags/jo.png
311
- - app/assets/images/lit/famfamfam_flags/jp.png
312
- - app/assets/images/lit/famfamfam_flags/ke.png
313
- - app/assets/images/lit/famfamfam_flags/kg.png
314
- - app/assets/images/lit/famfamfam_flags/kh.png
315
- - app/assets/images/lit/famfamfam_flags/ki.png
316
- - app/assets/images/lit/famfamfam_flags/km.png
317
- - app/assets/images/lit/famfamfam_flags/kn.png
318
- - app/assets/images/lit/famfamfam_flags/kp.png
319
- - app/assets/images/lit/famfamfam_flags/kr.png
320
- - app/assets/images/lit/famfamfam_flags/kw.png
321
- - app/assets/images/lit/famfamfam_flags/ky.png
322
- - app/assets/images/lit/famfamfam_flags/kz.png
323
- - app/assets/images/lit/famfamfam_flags/la.png
324
- - app/assets/images/lit/famfamfam_flags/lb.png
325
- - app/assets/images/lit/famfamfam_flags/lc.png
326
- - app/assets/images/lit/famfamfam_flags/li.png
327
- - app/assets/images/lit/famfamfam_flags/lk.png
328
- - app/assets/images/lit/famfamfam_flags/lr.png
329
- - app/assets/images/lit/famfamfam_flags/ls.png
330
- - app/assets/images/lit/famfamfam_flags/lt.png
331
- - app/assets/images/lit/famfamfam_flags/lu.png
332
- - app/assets/images/lit/famfamfam_flags/lv.png
333
- - app/assets/images/lit/famfamfam_flags/ly.png
334
- - app/assets/images/lit/famfamfam_flags/ma.png
335
- - app/assets/images/lit/famfamfam_flags/mc.png
336
- - app/assets/images/lit/famfamfam_flags/md.png
337
- - app/assets/images/lit/famfamfam_flags/me.png
338
- - app/assets/images/lit/famfamfam_flags/mg.png
339
- - app/assets/images/lit/famfamfam_flags/mh.png
340
- - app/assets/images/lit/famfamfam_flags/mk.png
341
- - app/assets/images/lit/famfamfam_flags/ml.png
342
- - app/assets/images/lit/famfamfam_flags/mm.png
343
- - app/assets/images/lit/famfamfam_flags/mn.png
344
- - app/assets/images/lit/famfamfam_flags/mo.png
345
- - app/assets/images/lit/famfamfam_flags/mp.png
346
- - app/assets/images/lit/famfamfam_flags/mq.png
347
- - app/assets/images/lit/famfamfam_flags/mr.png
348
- - app/assets/images/lit/famfamfam_flags/ms.png
349
- - app/assets/images/lit/famfamfam_flags/mt.png
350
- - app/assets/images/lit/famfamfam_flags/mu.png
351
- - app/assets/images/lit/famfamfam_flags/mv.png
352
- - app/assets/images/lit/famfamfam_flags/mw.png
353
- - app/assets/images/lit/famfamfam_flags/mx.png
354
- - app/assets/images/lit/famfamfam_flags/my.png
355
- - app/assets/images/lit/famfamfam_flags/mz.png
356
- - app/assets/images/lit/famfamfam_flags/na.png
357
- - app/assets/images/lit/famfamfam_flags/nc.png
358
- - app/assets/images/lit/famfamfam_flags/ne.png
359
- - app/assets/images/lit/famfamfam_flags/nf.png
360
- - app/assets/images/lit/famfamfam_flags/ng.png
361
- - app/assets/images/lit/famfamfam_flags/ni.png
362
- - app/assets/images/lit/famfamfam_flags/nl.png
363
- - app/assets/images/lit/famfamfam_flags/no.png
364
- - app/assets/images/lit/famfamfam_flags/np.png
365
- - app/assets/images/lit/famfamfam_flags/nr.png
366
- - app/assets/images/lit/famfamfam_flags/nu.png
367
- - app/assets/images/lit/famfamfam_flags/nz.png
368
- - app/assets/images/lit/famfamfam_flags/om.png
369
- - app/assets/images/lit/famfamfam_flags/pa.png
370
- - app/assets/images/lit/famfamfam_flags/pe.png
371
- - app/assets/images/lit/famfamfam_flags/pf.png
372
- - app/assets/images/lit/famfamfam_flags/pg.png
373
- - app/assets/images/lit/famfamfam_flags/ph.png
374
- - app/assets/images/lit/famfamfam_flags/pk.png
375
- - app/assets/images/lit/famfamfam_flags/pl.png
376
- - app/assets/images/lit/famfamfam_flags/pm.png
377
- - app/assets/images/lit/famfamfam_flags/pn.png
378
- - app/assets/images/lit/famfamfam_flags/pr.png
379
- - app/assets/images/lit/famfamfam_flags/ps.png
380
- - app/assets/images/lit/famfamfam_flags/pt.png
381
- - app/assets/images/lit/famfamfam_flags/pw.png
382
- - app/assets/images/lit/famfamfam_flags/py.png
383
- - app/assets/images/lit/famfamfam_flags/qa.png
384
- - app/assets/images/lit/famfamfam_flags/re.png
385
- - app/assets/images/lit/famfamfam_flags/ro.png
386
- - app/assets/images/lit/famfamfam_flags/rs.png
387
- - app/assets/images/lit/famfamfam_flags/ru.png
388
- - app/assets/images/lit/famfamfam_flags/rw.png
389
- - app/assets/images/lit/famfamfam_flags/sa.png
390
- - app/assets/images/lit/famfamfam_flags/sb.png
391
- - app/assets/images/lit/famfamfam_flags/sc.png
392
- - app/assets/images/lit/famfamfam_flags/scotland.png
393
- - app/assets/images/lit/famfamfam_flags/sd.png
394
- - app/assets/images/lit/famfamfam_flags/se.png
395
- - app/assets/images/lit/famfamfam_flags/sg.png
396
- - app/assets/images/lit/famfamfam_flags/sh.png
397
- - app/assets/images/lit/famfamfam_flags/si.png
398
- - app/assets/images/lit/famfamfam_flags/sj.png
399
- - app/assets/images/lit/famfamfam_flags/sk.png
400
- - app/assets/images/lit/famfamfam_flags/sl.png
401
- - app/assets/images/lit/famfamfam_flags/sm.png
402
- - app/assets/images/lit/famfamfam_flags/sn.png
403
- - app/assets/images/lit/famfamfam_flags/so.png
404
- - app/assets/images/lit/famfamfam_flags/sr.png
405
- - app/assets/images/lit/famfamfam_flags/st.png
406
- - app/assets/images/lit/famfamfam_flags/sv.png
407
- - app/assets/images/lit/famfamfam_flags/sy.png
408
- - app/assets/images/lit/famfamfam_flags/sz.png
409
- - app/assets/images/lit/famfamfam_flags/tc.png
410
- - app/assets/images/lit/famfamfam_flags/td.png
411
- - app/assets/images/lit/famfamfam_flags/tf.png
412
- - app/assets/images/lit/famfamfam_flags/tg.png
413
- - app/assets/images/lit/famfamfam_flags/th.png
414
- - app/assets/images/lit/famfamfam_flags/tj.png
415
- - app/assets/images/lit/famfamfam_flags/tk.png
416
- - app/assets/images/lit/famfamfam_flags/tl.png
417
- - app/assets/images/lit/famfamfam_flags/tm.png
418
- - app/assets/images/lit/famfamfam_flags/tn.png
419
- - app/assets/images/lit/famfamfam_flags/to.png
420
- - app/assets/images/lit/famfamfam_flags/tr.png
421
- - app/assets/images/lit/famfamfam_flags/tt.png
422
- - app/assets/images/lit/famfamfam_flags/tv.png
423
- - app/assets/images/lit/famfamfam_flags/tw.png
424
- - app/assets/images/lit/famfamfam_flags/tz.png
425
- - app/assets/images/lit/famfamfam_flags/ua.png
426
- - app/assets/images/lit/famfamfam_flags/ug.png
427
- - app/assets/images/lit/famfamfam_flags/um.png
428
- - app/assets/images/lit/famfamfam_flags/us.png
429
- - app/assets/images/lit/famfamfam_flags/uy.png
430
- - app/assets/images/lit/famfamfam_flags/uz.png
431
- - app/assets/images/lit/famfamfam_flags/va.png
432
- - app/assets/images/lit/famfamfam_flags/vc.png
433
- - app/assets/images/lit/famfamfam_flags/ve.png
434
- - app/assets/images/lit/famfamfam_flags/vg.png
435
- - app/assets/images/lit/famfamfam_flags/vi.png
436
- - app/assets/images/lit/famfamfam_flags/vn.png
437
- - app/assets/images/lit/famfamfam_flags/vu.png
438
- - app/assets/images/lit/famfamfam_flags/wales.png
439
- - app/assets/images/lit/famfamfam_flags/wf.png
440
- - app/assets/images/lit/famfamfam_flags/ws.png
441
- - app/assets/images/lit/famfamfam_flags/ye.png
442
- - app/assets/images/lit/famfamfam_flags/yt.png
443
- - app/assets/images/lit/famfamfam_flags/za.png
444
- - app/assets/images/lit/famfamfam_flags/zm.png
445
- - app/assets/images/lit/famfamfam_flags/zw.png
446
210
  - app/assets/images/lit/jquery-te.png
447
211
  - app/assets/javascripts/lit/application.js
448
212
  - app/assets/javascripts/lit/backend/bootstrap.js.coffee
213
+ - app/assets/javascripts/lit/backend/bootstrap.min.js
449
214
  - app/assets/javascripts/lit/backend/dashboard.js
450
215
  - app/assets/javascripts/lit/backend/jquery-te-1.4.0.min.js
451
216
  - app/assets/javascripts/lit/backend/localizations.js.coffee
@@ -507,6 +272,7 @@ files:
507
272
  - app/views/lit/localization_keys/_localization_row.html.erb
508
273
  - app/views/lit/localization_keys/_localizations_list.html.erb
509
274
  - app/views/lit/localization_keys/_sidebar.html.erb
275
+ - app/views/lit/localization_keys/batch_touch.js.erb
510
276
  - app/views/lit/localization_keys/change_completed.js.erb
511
277
  - app/views/lit/localization_keys/destroy.js.erb
512
278
  - app/views/lit/localization_keys/index.html.erb
@@ -554,15 +320,17 @@ files:
554
320
  - lib/lit/i18n_backend.rb
555
321
  - lib/lit/import.rb
556
322
  - lib/lit/loader.rb
323
+ - lib/lit/middleware.rb
557
324
  - lib/lit/rails.rb
558
325
  - lib/lit/railtie.rb
326
+ - lib/lit/services/localization_keys_to_hash_service.rb
559
327
  - lib/lit/version.rb
560
328
  - lib/tasks/lit_tasks.rake
561
329
  homepage: https://github.com/prograils/lit
562
330
  licenses:
563
331
  - MIT
564
332
  metadata: {}
565
- post_install_message:
333
+ post_install_message:
566
334
  rdoc_options: []
567
335
  require_paths:
568
336
  - lib
@@ -577,9 +345,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
577
345
  - !ruby/object:Gem::Version
578
346
  version: '0'
579
347
  requirements: []
580
- rubyforge_project:
581
- rubygems_version: 2.7.8
582
- signing_key:
348
+ rubygems_version: 3.1.6
349
+ signing_key:
583
350
  specification_version: 4
584
351
  summary: Database powered i18n backend with web gui
585
352
  test_files: []