motorefi-lit 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (347) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +170 -0
  4. data/Rakefile +38 -0
  5. data/app/assets/images/lit/famfamfam_flags/ad.png +0 -0
  6. data/app/assets/images/lit/famfamfam_flags/ae.png +0 -0
  7. data/app/assets/images/lit/famfamfam_flags/af.png +0 -0
  8. data/app/assets/images/lit/famfamfam_flags/ag.png +0 -0
  9. data/app/assets/images/lit/famfamfam_flags/ai.png +0 -0
  10. data/app/assets/images/lit/famfamfam_flags/al.png +0 -0
  11. data/app/assets/images/lit/famfamfam_flags/am.png +0 -0
  12. data/app/assets/images/lit/famfamfam_flags/an.png +0 -0
  13. data/app/assets/images/lit/famfamfam_flags/ao.png +0 -0
  14. data/app/assets/images/lit/famfamfam_flags/ar.png +0 -0
  15. data/app/assets/images/lit/famfamfam_flags/as.png +0 -0
  16. data/app/assets/images/lit/famfamfam_flags/at.png +0 -0
  17. data/app/assets/images/lit/famfamfam_flags/au.png +0 -0
  18. data/app/assets/images/lit/famfamfam_flags/aw.png +0 -0
  19. data/app/assets/images/lit/famfamfam_flags/ax.png +0 -0
  20. data/app/assets/images/lit/famfamfam_flags/az.png +0 -0
  21. data/app/assets/images/lit/famfamfam_flags/ba.png +0 -0
  22. data/app/assets/images/lit/famfamfam_flags/bb.png +0 -0
  23. data/app/assets/images/lit/famfamfam_flags/bd.png +0 -0
  24. data/app/assets/images/lit/famfamfam_flags/be.png +0 -0
  25. data/app/assets/images/lit/famfamfam_flags/bf.png +0 -0
  26. data/app/assets/images/lit/famfamfam_flags/bg.png +0 -0
  27. data/app/assets/images/lit/famfamfam_flags/bh.png +0 -0
  28. data/app/assets/images/lit/famfamfam_flags/bi.png +0 -0
  29. data/app/assets/images/lit/famfamfam_flags/bj.png +0 -0
  30. data/app/assets/images/lit/famfamfam_flags/bm.png +0 -0
  31. data/app/assets/images/lit/famfamfam_flags/bn.png +0 -0
  32. data/app/assets/images/lit/famfamfam_flags/bo.png +0 -0
  33. data/app/assets/images/lit/famfamfam_flags/br.png +0 -0
  34. data/app/assets/images/lit/famfamfam_flags/bs.png +0 -0
  35. data/app/assets/images/lit/famfamfam_flags/bt.png +0 -0
  36. data/app/assets/images/lit/famfamfam_flags/bv.png +0 -0
  37. data/app/assets/images/lit/famfamfam_flags/bw.png +0 -0
  38. data/app/assets/images/lit/famfamfam_flags/by.png +0 -0
  39. data/app/assets/images/lit/famfamfam_flags/bz.png +0 -0
  40. data/app/assets/images/lit/famfamfam_flags/ca.png +0 -0
  41. data/app/assets/images/lit/famfamfam_flags/catalonia.png +0 -0
  42. data/app/assets/images/lit/famfamfam_flags/cc.png +0 -0
  43. data/app/assets/images/lit/famfamfam_flags/cd.png +0 -0
  44. data/app/assets/images/lit/famfamfam_flags/cf.png +0 -0
  45. data/app/assets/images/lit/famfamfam_flags/cg.png +0 -0
  46. data/app/assets/images/lit/famfamfam_flags/ch.png +0 -0
  47. data/app/assets/images/lit/famfamfam_flags/ci.png +0 -0
  48. data/app/assets/images/lit/famfamfam_flags/ck.png +0 -0
  49. data/app/assets/images/lit/famfamfam_flags/cl.png +0 -0
  50. data/app/assets/images/lit/famfamfam_flags/cm.png +0 -0
  51. data/app/assets/images/lit/famfamfam_flags/cn.png +0 -0
  52. data/app/assets/images/lit/famfamfam_flags/co.png +0 -0
  53. data/app/assets/images/lit/famfamfam_flags/cr.png +0 -0
  54. data/app/assets/images/lit/famfamfam_flags/cs.png +0 -0
  55. data/app/assets/images/lit/famfamfam_flags/cu.png +0 -0
  56. data/app/assets/images/lit/famfamfam_flags/cv.png +0 -0
  57. data/app/assets/images/lit/famfamfam_flags/cx.png +0 -0
  58. data/app/assets/images/lit/famfamfam_flags/cy.png +0 -0
  59. data/app/assets/images/lit/famfamfam_flags/cz.png +0 -0
  60. data/app/assets/images/lit/famfamfam_flags/da.png +0 -0
  61. data/app/assets/images/lit/famfamfam_flags/de.png +0 -0
  62. data/app/assets/images/lit/famfamfam_flags/dj.png +0 -0
  63. data/app/assets/images/lit/famfamfam_flags/dk.png +0 -0
  64. data/app/assets/images/lit/famfamfam_flags/dm.png +0 -0
  65. data/app/assets/images/lit/famfamfam_flags/do.png +0 -0
  66. data/app/assets/images/lit/famfamfam_flags/dz.png +0 -0
  67. data/app/assets/images/lit/famfamfam_flags/ec.png +0 -0
  68. data/app/assets/images/lit/famfamfam_flags/ee.png +0 -0
  69. data/app/assets/images/lit/famfamfam_flags/eg.png +0 -0
  70. data/app/assets/images/lit/famfamfam_flags/eh.png +0 -0
  71. data/app/assets/images/lit/famfamfam_flags/en.png +0 -0
  72. data/app/assets/images/lit/famfamfam_flags/england.png +0 -0
  73. data/app/assets/images/lit/famfamfam_flags/er.png +0 -0
  74. data/app/assets/images/lit/famfamfam_flags/es.png +0 -0
  75. data/app/assets/images/lit/famfamfam_flags/et.png +0 -0
  76. data/app/assets/images/lit/famfamfam_flags/europeanunion.png +0 -0
  77. data/app/assets/images/lit/famfamfam_flags/fam.png +0 -0
  78. data/app/assets/images/lit/famfamfam_flags/fi.png +0 -0
  79. data/app/assets/images/lit/famfamfam_flags/fj.png +0 -0
  80. data/app/assets/images/lit/famfamfam_flags/fk.png +0 -0
  81. data/app/assets/images/lit/famfamfam_flags/fm.png +0 -0
  82. data/app/assets/images/lit/famfamfam_flags/fo.png +0 -0
  83. data/app/assets/images/lit/famfamfam_flags/fr.png +0 -0
  84. data/app/assets/images/lit/famfamfam_flags/ga.png +0 -0
  85. data/app/assets/images/lit/famfamfam_flags/gb.png +0 -0
  86. data/app/assets/images/lit/famfamfam_flags/gd.png +0 -0
  87. data/app/assets/images/lit/famfamfam_flags/ge.png +0 -0
  88. data/app/assets/images/lit/famfamfam_flags/gf.png +0 -0
  89. data/app/assets/images/lit/famfamfam_flags/gh.png +0 -0
  90. data/app/assets/images/lit/famfamfam_flags/gi.png +0 -0
  91. data/app/assets/images/lit/famfamfam_flags/gl.png +0 -0
  92. data/app/assets/images/lit/famfamfam_flags/gm.png +0 -0
  93. data/app/assets/images/lit/famfamfam_flags/gn.png +0 -0
  94. data/app/assets/images/lit/famfamfam_flags/gp.png +0 -0
  95. data/app/assets/images/lit/famfamfam_flags/gq.png +0 -0
  96. data/app/assets/images/lit/famfamfam_flags/gr.png +0 -0
  97. data/app/assets/images/lit/famfamfam_flags/gs.png +0 -0
  98. data/app/assets/images/lit/famfamfam_flags/gt.png +0 -0
  99. data/app/assets/images/lit/famfamfam_flags/gu.png +0 -0
  100. data/app/assets/images/lit/famfamfam_flags/gw.png +0 -0
  101. data/app/assets/images/lit/famfamfam_flags/gy.png +0 -0
  102. data/app/assets/images/lit/famfamfam_flags/hk.png +0 -0
  103. data/app/assets/images/lit/famfamfam_flags/hm.png +0 -0
  104. data/app/assets/images/lit/famfamfam_flags/hn.png +0 -0
  105. data/app/assets/images/lit/famfamfam_flags/hr.png +0 -0
  106. data/app/assets/images/lit/famfamfam_flags/ht.png +0 -0
  107. data/app/assets/images/lit/famfamfam_flags/hu.png +0 -0
  108. data/app/assets/images/lit/famfamfam_flags/id.png +0 -0
  109. data/app/assets/images/lit/famfamfam_flags/ie.png +0 -0
  110. data/app/assets/images/lit/famfamfam_flags/il.png +0 -0
  111. data/app/assets/images/lit/famfamfam_flags/in.png +0 -0
  112. data/app/assets/images/lit/famfamfam_flags/io.png +0 -0
  113. data/app/assets/images/lit/famfamfam_flags/iq.png +0 -0
  114. data/app/assets/images/lit/famfamfam_flags/ir.png +0 -0
  115. data/app/assets/images/lit/famfamfam_flags/is.png +0 -0
  116. data/app/assets/images/lit/famfamfam_flags/it.png +0 -0
  117. data/app/assets/images/lit/famfamfam_flags/ja.png +0 -0
  118. data/app/assets/images/lit/famfamfam_flags/jm.png +0 -0
  119. data/app/assets/images/lit/famfamfam_flags/jo.png +0 -0
  120. data/app/assets/images/lit/famfamfam_flags/jp.png +0 -0
  121. data/app/assets/images/lit/famfamfam_flags/ke.png +0 -0
  122. data/app/assets/images/lit/famfamfam_flags/kg.png +0 -0
  123. data/app/assets/images/lit/famfamfam_flags/kh.png +0 -0
  124. data/app/assets/images/lit/famfamfam_flags/ki.png +0 -0
  125. data/app/assets/images/lit/famfamfam_flags/km.png +0 -0
  126. data/app/assets/images/lit/famfamfam_flags/kn.png +0 -0
  127. data/app/assets/images/lit/famfamfam_flags/kp.png +0 -0
  128. data/app/assets/images/lit/famfamfam_flags/kr.png +0 -0
  129. data/app/assets/images/lit/famfamfam_flags/kw.png +0 -0
  130. data/app/assets/images/lit/famfamfam_flags/ky.png +0 -0
  131. data/app/assets/images/lit/famfamfam_flags/kz.png +0 -0
  132. data/app/assets/images/lit/famfamfam_flags/la.png +0 -0
  133. data/app/assets/images/lit/famfamfam_flags/lb.png +0 -0
  134. data/app/assets/images/lit/famfamfam_flags/lc.png +0 -0
  135. data/app/assets/images/lit/famfamfam_flags/li.png +0 -0
  136. data/app/assets/images/lit/famfamfam_flags/lk.png +0 -0
  137. data/app/assets/images/lit/famfamfam_flags/lr.png +0 -0
  138. data/app/assets/images/lit/famfamfam_flags/ls.png +0 -0
  139. data/app/assets/images/lit/famfamfam_flags/lt.png +0 -0
  140. data/app/assets/images/lit/famfamfam_flags/lu.png +0 -0
  141. data/app/assets/images/lit/famfamfam_flags/lv.png +0 -0
  142. data/app/assets/images/lit/famfamfam_flags/ly.png +0 -0
  143. data/app/assets/images/lit/famfamfam_flags/ma.png +0 -0
  144. data/app/assets/images/lit/famfamfam_flags/mc.png +0 -0
  145. data/app/assets/images/lit/famfamfam_flags/md.png +0 -0
  146. data/app/assets/images/lit/famfamfam_flags/me.png +0 -0
  147. data/app/assets/images/lit/famfamfam_flags/mg.png +0 -0
  148. data/app/assets/images/lit/famfamfam_flags/mh.png +0 -0
  149. data/app/assets/images/lit/famfamfam_flags/mk.png +0 -0
  150. data/app/assets/images/lit/famfamfam_flags/ml.png +0 -0
  151. data/app/assets/images/lit/famfamfam_flags/mm.png +0 -0
  152. data/app/assets/images/lit/famfamfam_flags/mn.png +0 -0
  153. data/app/assets/images/lit/famfamfam_flags/mo.png +0 -0
  154. data/app/assets/images/lit/famfamfam_flags/mp.png +0 -0
  155. data/app/assets/images/lit/famfamfam_flags/mq.png +0 -0
  156. data/app/assets/images/lit/famfamfam_flags/mr.png +0 -0
  157. data/app/assets/images/lit/famfamfam_flags/ms.png +0 -0
  158. data/app/assets/images/lit/famfamfam_flags/mt.png +0 -0
  159. data/app/assets/images/lit/famfamfam_flags/mu.png +0 -0
  160. data/app/assets/images/lit/famfamfam_flags/mv.png +0 -0
  161. data/app/assets/images/lit/famfamfam_flags/mw.png +0 -0
  162. data/app/assets/images/lit/famfamfam_flags/mx.png +0 -0
  163. data/app/assets/images/lit/famfamfam_flags/my.png +0 -0
  164. data/app/assets/images/lit/famfamfam_flags/mz.png +0 -0
  165. data/app/assets/images/lit/famfamfam_flags/na.png +0 -0
  166. data/app/assets/images/lit/famfamfam_flags/nc.png +0 -0
  167. data/app/assets/images/lit/famfamfam_flags/ne.png +0 -0
  168. data/app/assets/images/lit/famfamfam_flags/nf.png +0 -0
  169. data/app/assets/images/lit/famfamfam_flags/ng.png +0 -0
  170. data/app/assets/images/lit/famfamfam_flags/ni.png +0 -0
  171. data/app/assets/images/lit/famfamfam_flags/nl.png +0 -0
  172. data/app/assets/images/lit/famfamfam_flags/no.png +0 -0
  173. data/app/assets/images/lit/famfamfam_flags/np.png +0 -0
  174. data/app/assets/images/lit/famfamfam_flags/nr.png +0 -0
  175. data/app/assets/images/lit/famfamfam_flags/nu.png +0 -0
  176. data/app/assets/images/lit/famfamfam_flags/nz.png +0 -0
  177. data/app/assets/images/lit/famfamfam_flags/om.png +0 -0
  178. data/app/assets/images/lit/famfamfam_flags/pa.png +0 -0
  179. data/app/assets/images/lit/famfamfam_flags/pe.png +0 -0
  180. data/app/assets/images/lit/famfamfam_flags/pf.png +0 -0
  181. data/app/assets/images/lit/famfamfam_flags/pg.png +0 -0
  182. data/app/assets/images/lit/famfamfam_flags/ph.png +0 -0
  183. data/app/assets/images/lit/famfamfam_flags/pk.png +0 -0
  184. data/app/assets/images/lit/famfamfam_flags/pl.png +0 -0
  185. data/app/assets/images/lit/famfamfam_flags/pm.png +0 -0
  186. data/app/assets/images/lit/famfamfam_flags/pn.png +0 -0
  187. data/app/assets/images/lit/famfamfam_flags/pr.png +0 -0
  188. data/app/assets/images/lit/famfamfam_flags/ps.png +0 -0
  189. data/app/assets/images/lit/famfamfam_flags/pt.png +0 -0
  190. data/app/assets/images/lit/famfamfam_flags/pw.png +0 -0
  191. data/app/assets/images/lit/famfamfam_flags/py.png +0 -0
  192. data/app/assets/images/lit/famfamfam_flags/qa.png +0 -0
  193. data/app/assets/images/lit/famfamfam_flags/re.png +0 -0
  194. data/app/assets/images/lit/famfamfam_flags/ro.png +0 -0
  195. data/app/assets/images/lit/famfamfam_flags/rs.png +0 -0
  196. data/app/assets/images/lit/famfamfam_flags/ru.png +0 -0
  197. data/app/assets/images/lit/famfamfam_flags/rw.png +0 -0
  198. data/app/assets/images/lit/famfamfam_flags/sa.png +0 -0
  199. data/app/assets/images/lit/famfamfam_flags/sb.png +0 -0
  200. data/app/assets/images/lit/famfamfam_flags/sc.png +0 -0
  201. data/app/assets/images/lit/famfamfam_flags/scotland.png +0 -0
  202. data/app/assets/images/lit/famfamfam_flags/sd.png +0 -0
  203. data/app/assets/images/lit/famfamfam_flags/se.png +0 -0
  204. data/app/assets/images/lit/famfamfam_flags/sg.png +0 -0
  205. data/app/assets/images/lit/famfamfam_flags/sh.png +0 -0
  206. data/app/assets/images/lit/famfamfam_flags/si.png +0 -0
  207. data/app/assets/images/lit/famfamfam_flags/sj.png +0 -0
  208. data/app/assets/images/lit/famfamfam_flags/sk.png +0 -0
  209. data/app/assets/images/lit/famfamfam_flags/sl.png +0 -0
  210. data/app/assets/images/lit/famfamfam_flags/sm.png +0 -0
  211. data/app/assets/images/lit/famfamfam_flags/sn.png +0 -0
  212. data/app/assets/images/lit/famfamfam_flags/so.png +0 -0
  213. data/app/assets/images/lit/famfamfam_flags/sr.png +0 -0
  214. data/app/assets/images/lit/famfamfam_flags/st.png +0 -0
  215. data/app/assets/images/lit/famfamfam_flags/sv.png +0 -0
  216. data/app/assets/images/lit/famfamfam_flags/sy.png +0 -0
  217. data/app/assets/images/lit/famfamfam_flags/sz.png +0 -0
  218. data/app/assets/images/lit/famfamfam_flags/tc.png +0 -0
  219. data/app/assets/images/lit/famfamfam_flags/td.png +0 -0
  220. data/app/assets/images/lit/famfamfam_flags/tf.png +0 -0
  221. data/app/assets/images/lit/famfamfam_flags/tg.png +0 -0
  222. data/app/assets/images/lit/famfamfam_flags/th.png +0 -0
  223. data/app/assets/images/lit/famfamfam_flags/tj.png +0 -0
  224. data/app/assets/images/lit/famfamfam_flags/tk.png +0 -0
  225. data/app/assets/images/lit/famfamfam_flags/tl.png +0 -0
  226. data/app/assets/images/lit/famfamfam_flags/tm.png +0 -0
  227. data/app/assets/images/lit/famfamfam_flags/tn.png +0 -0
  228. data/app/assets/images/lit/famfamfam_flags/to.png +0 -0
  229. data/app/assets/images/lit/famfamfam_flags/tr.png +0 -0
  230. data/app/assets/images/lit/famfamfam_flags/tt.png +0 -0
  231. data/app/assets/images/lit/famfamfam_flags/tv.png +0 -0
  232. data/app/assets/images/lit/famfamfam_flags/tw.png +0 -0
  233. data/app/assets/images/lit/famfamfam_flags/tz.png +0 -0
  234. data/app/assets/images/lit/famfamfam_flags/ua.png +0 -0
  235. data/app/assets/images/lit/famfamfam_flags/ug.png +0 -0
  236. data/app/assets/images/lit/famfamfam_flags/um.png +0 -0
  237. data/app/assets/images/lit/famfamfam_flags/us.png +0 -0
  238. data/app/assets/images/lit/famfamfam_flags/uy.png +0 -0
  239. data/app/assets/images/lit/famfamfam_flags/uz.png +0 -0
  240. data/app/assets/images/lit/famfamfam_flags/va.png +0 -0
  241. data/app/assets/images/lit/famfamfam_flags/vc.png +0 -0
  242. data/app/assets/images/lit/famfamfam_flags/ve.png +0 -0
  243. data/app/assets/images/lit/famfamfam_flags/vg.png +0 -0
  244. data/app/assets/images/lit/famfamfam_flags/vi.png +0 -0
  245. data/app/assets/images/lit/famfamfam_flags/vn.png +0 -0
  246. data/app/assets/images/lit/famfamfam_flags/vu.png +0 -0
  247. data/app/assets/images/lit/famfamfam_flags/wales.png +0 -0
  248. data/app/assets/images/lit/famfamfam_flags/wf.png +0 -0
  249. data/app/assets/images/lit/famfamfam_flags/ws.png +0 -0
  250. data/app/assets/images/lit/famfamfam_flags/ye.png +0 -0
  251. data/app/assets/images/lit/famfamfam_flags/yt.png +0 -0
  252. data/app/assets/images/lit/famfamfam_flags/za.png +0 -0
  253. data/app/assets/images/lit/famfamfam_flags/zm.png +0 -0
  254. data/app/assets/images/lit/famfamfam_flags/zw.png +0 -0
  255. data/app/assets/images/lit/jquery-te.png +0 -0
  256. data/app/assets/javascripts/lit/application.js +19 -0
  257. data/app/assets/javascripts/lit/backend/bootstrap.js.coffee +4 -0
  258. data/app/assets/javascripts/lit/backend/dashboard.js +2 -0
  259. data/app/assets/javascripts/lit/backend/jquery-te-1.4.0.min.js +9 -0
  260. data/app/assets/javascripts/lit/backend/localizations.js.coffee +26 -0
  261. data/app/assets/javascripts/lit/backend/sources.js.coffee +24 -0
  262. data/app/assets/javascripts/lit/lit_frontend.js +103 -0
  263. data/app/assets/javascripts/lit/mousetrap.js +1044 -0
  264. data/app/assets/stylesheets/lit/application.css +59 -0
  265. data/app/assets/stylesheets/lit/backend/jquery-te-1.4.0.css.scss +457 -0
  266. data/app/assets/stylesheets/lit/lit_frontend.css +86 -0
  267. data/app/controllers/lit/api/v1/base_controller.rb +19 -0
  268. data/app/controllers/lit/api/v1/locales_controller.rb +14 -0
  269. data/app/controllers/lit/api/v1/localization_keys_controller.rb +15 -0
  270. data/app/controllers/lit/api/v1/localizations_controller.rb +18 -0
  271. data/app/controllers/lit/application_controller.rb +49 -0
  272. data/app/controllers/lit/concerns/request_info_store.rb +16 -0
  273. data/app/controllers/lit/concerns/request_keys_store.rb +16 -0
  274. data/app/controllers/lit/dashboard_controller.rb +9 -0
  275. data/app/controllers/lit/incomming_localizations_controller.rb +49 -0
  276. data/app/controllers/lit/locales_controller.rb +31 -0
  277. data/app/controllers/lit/localization_keys_controller.rb +117 -0
  278. data/app/controllers/lit/localizations_controller.rb +60 -0
  279. data/app/controllers/lit/sources_controller.rb +77 -0
  280. data/app/helpers/lit/application_helper.rb +4 -0
  281. data/app/helpers/lit/dashboard_helper.rb +4 -0
  282. data/app/helpers/lit/frontend_helper.rb +71 -0
  283. data/app/helpers/lit/localization_keys_helper.rb +5 -0
  284. data/app/helpers/lit/localizations_helper.rb +15 -0
  285. data/app/helpers/lit/sources_helper.rb +7 -0
  286. data/app/jobs/lit/synchronize_source_job.rb +11 -0
  287. data/app/models/lit/incomming_localization.rb +77 -0
  288. data/app/models/lit/locale.rb +48 -0
  289. data/app/models/lit/localization.rb +103 -0
  290. data/app/models/lit/localization_key.rb +107 -0
  291. data/app/models/lit/localization_version.rb +12 -0
  292. data/app/models/lit/source.rb +111 -0
  293. data/app/views/kaminari/lit/_first_page.html.erb +5 -0
  294. data/app/views/kaminari/lit/_gap.html.erb +3 -0
  295. data/app/views/kaminari/lit/_last_page.html.erb +6 -0
  296. data/app/views/kaminari/lit/_next_page.html.erb +5 -0
  297. data/app/views/kaminari/lit/_page.html.erb +3 -0
  298. data/app/views/kaminari/lit/_paginator.html.erb +17 -0
  299. data/app/views/kaminari/lit/_prev_page.html.erb +5 -0
  300. data/app/views/layouts/lit/_messages.html.erb +6 -0
  301. data/app/views/layouts/lit/_navigation.html.erb +23 -0
  302. data/app/views/layouts/lit/application.html.erb +46 -0
  303. data/app/views/lit/dashboard/index.html.erb +5 -0
  304. data/app/views/lit/incomming_localizations/accept.js.erb +2 -0
  305. data/app/views/lit/incomming_localizations/destroy.js.erb +1 -0
  306. data/app/views/lit/incomming_localizations/index.html.erb +52 -0
  307. data/app/views/lit/locales/_hide_link.html.erb +1 -0
  308. data/app/views/lit/locales/hide.js.erb +1 -0
  309. data/app/views/lit/locales/index.html.erb +20 -0
  310. data/app/views/lit/localization_keys/_localization_row.html.erb +14 -0
  311. data/app/views/lit/localization_keys/destroy.js.erb +1 -0
  312. data/app/views/lit/localization_keys/index.html.erb +127 -0
  313. data/app/views/lit/localization_keys/star.js.erb +1 -0
  314. data/app/views/lit/localizations/_form.html.erb +23 -0
  315. data/app/views/lit/localizations/_previous_versions_rows.html.erb +15 -0
  316. data/app/views/lit/localizations/edit.js.erb +7 -0
  317. data/app/views/lit/localizations/previous_versions.js.erb +3 -0
  318. data/app/views/lit/localizations/update.js.erb +4 -0
  319. data/app/views/lit/sources/_form.html.erb +35 -0
  320. data/app/views/lit/sources/edit.html.erb +6 -0
  321. data/app/views/lit/sources/index.html.erb +42 -0
  322. data/app/views/lit/sources/new.html.erb +5 -0
  323. data/app/views/lit/sources/show.html.erb +19 -0
  324. data/config/routes.rb +49 -0
  325. data/db/migrate/20180101010101_lit_create_lit_locales.rb +16 -0
  326. data/db/migrate/20180101010102_lit_create_lit_localization_keys.rb +18 -0
  327. data/db/migrate/20180101010103_lit_create_lit_localizations.rb +24 -0
  328. data/db/migrate/20180101010104_lit_add_is_completed_and_is_starred_to_localization_keys.rb +17 -0
  329. data/db/migrate/20180101010105_lit_add_is_hidden_to_locales.rb +12 -0
  330. data/db/migrate/20180101010106_lit_create_lit_localization_versions.rb +20 -0
  331. data/db/migrate/20180101010107_lit_create_lit_sources.rb +19 -0
  332. data/db/migrate/20180101010108_lit_create_lit_incomming_localizations.rb +34 -0
  333. data/db/migrate/20180101010109_lit_add_sync_complete_to_lit_sources.rb +12 -0
  334. data/lib/generators/lit/install/templates/initializer.rb +52 -0
  335. data/lib/generators/lit/install_generator.rb +66 -0
  336. data/lib/lit.rb +65 -0
  337. data/lib/lit/adapters/hash_storage.rb +12 -0
  338. data/lib/lit/adapters/redis_storage.rb +99 -0
  339. data/lib/lit/cache.rb +356 -0
  340. data/lib/lit/engine.rb +28 -0
  341. data/lib/lit/i18n_backend.rb +192 -0
  342. data/lib/lit/loader.rb +16 -0
  343. data/lib/lit/rails.rb +17 -0
  344. data/lib/lit/railtie.rb +12 -0
  345. data/lib/lit/version.rb +3 -0
  346. data/lib/tasks/lit_tasks.rake +29 -0
  347. metadata +478 -0
@@ -0,0 +1,59 @@
1
+ /*
2
+ * This is a manifest file that'll be compiled into application.css, which will include all the files
3
+ * listed below.
4
+ *
5
+ * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6
+ * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
7
+ *
8
+ * You're free to add application-wide styles to this file and they'll appear at the top of the
9
+ * compiled file, but it's generally better to create a new file per style scope.
10
+ *
11
+ *= require './backend/jquery-te-1.4.0.css'
12
+ *= require_self
13
+ */
14
+ .detail_wrapper{
15
+ padding: 10px 0 0 50px;
16
+ }
17
+ .detail_wrapper table tr td.locale_row{
18
+ width: 75px;
19
+ }
20
+ .localization_key_row .localization_keys_options{
21
+ display: none;
22
+ float: right;
23
+ }
24
+ .localization_key_row:hover .localization_keys_options{
25
+ display: block;
26
+ }
27
+
28
+ li.key_prefix .fa-chevron-right {
29
+ float: right;
30
+ margin-top: 2px;
31
+ margin-right: -6px;
32
+ opacity: .25;
33
+ }
34
+
35
+ .hidden{
36
+ display: none;
37
+ }
38
+ i.fa{
39
+ color: black;
40
+ }
41
+ .nav.nav-stacked>li>a {
42
+ padding: 5px 7px;
43
+ }
44
+ .well{
45
+ background-color: white;
46
+ border-radius: 0px;
47
+ }
48
+ .well label{
49
+ font-weight: normal;
50
+ }
51
+ .localization_row em{
52
+ color: #bbb;
53
+ }
54
+ .loading {
55
+ display: inline;
56
+ }
57
+ .loaded {
58
+ display: none;
59
+ }
@@ -0,0 +1,457 @@
1
+ /*!
2
+ *
3
+ * jQuery TE 1.4.0 , http://jqueryte.com/
4
+ * Copyright (C) 2013, Fatih Koca (fattih@fattih.com), (http://jqueryte.com/about)
5
+
6
+ * jQuery TE is provided under the MIT LICENSE.
7
+ *
8
+ */
9
+
10
+ /* editor's general field */
11
+ .jqte {
12
+ /*margin:30px 0;
13
+ border:#000 1px solid;
14
+ border-radius:5px; -webkit-border-radius:5px; -moz-border-radius:5px;
15
+ box-shadow:0 0 3px #999; -webkit-box-shadow:0 0 3px #999; -moz-box-shadow:0 0 3px #999;
16
+ overflow:hidden;
17
+ transition:box-shadow 0.4s, border 0.4s; -webkit-transition:-webkit-box-shadow 0.4s, border 0.4s; -moz-transition:-moz-box-shadow 0.4s, border 0.4s; -o-transition:-o-box-shadow 0.4s, border 0.4s;
18
+ }
19
+ .jqte * {
20
+ color:#333;
21
+ font-family:Arial, Helvetica, sans-serif;
22
+ font-size:14px;
23
+ }
24
+ .jqte_focused {
25
+ border-color:#00AAE7;
26
+ box-shadow:0 0 10px #00BDFF; -webkit-box-shadow:0 0 10px #00BDFF; -moz-box-shadow:0 0 10px #00BDFF;
27
+ }
28
+ /* toolbar */
29
+ .jqte_toolbar {
30
+ overflow:auto;
31
+ padding:3px 4px;
32
+ background:#EEE;
33
+ border-bottom:#BBB 1px solid;
34
+ }
35
+ .jqte_tool {
36
+ float:left;
37
+ margin:0;
38
+ padding:0;
39
+ cursor:pointer;
40
+ }
41
+ .jqte_tool, .jqte_tool_icon, .jqte_tool_label {
42
+ border:#EEE 1px solid;
43
+ border-radius:3px; -webkit-border-radius:3px; -moz-border-radius:3px
44
+ }
45
+ .jqte_hiddenField {
46
+ display:none
47
+ }
48
+ .jqte_tool_icon {
49
+ display:block;
50
+ width:22px;
51
+ height:22px;
52
+ background:image-url('lit/jquery-te.png') no-repeat
53
+ }
54
+ .jqte_tool.jqte_tool_1 .jqte_tool_label {
55
+ position:relative;
56
+ display:block;
57
+ padding:3px;
58
+ width:70px;
59
+ height:16px;
60
+ overflow:hidden;
61
+ }
62
+ .jqte_tool.jqte_tool_1 .jqte_tool_text {
63
+ font:bold 13px Arial,sans-serif;
64
+ color:#222;
65
+ }
66
+ .jqte_tool.jqte_tool_1 .jqte_tool_icon {
67
+ position:absolute;
68
+ top:10px;
69
+ right:2px;
70
+ width:6px;
71
+ height:4px;
72
+ background-position:-19px -23px;
73
+ border:none;
74
+ border-radius:none; -webkit-border-radius:none; -moz-border-radius:none
75
+ }
76
+ .jqte_tool.jqte_tool_2 .jqte_tool_icon {
77
+ background-position:0 0
78
+ }
79
+ .jqte_tool.jqte_tool_3 .jqte_tool_icon {
80
+ background-position:-22px 0
81
+ }
82
+ .jqte_tool.jqte_tool_4 .jqte_tool_icon {
83
+ background-position:-44px 0
84
+ }
85
+ .jqte_tool.jqte_tool_5 .jqte_tool_icon {
86
+ background-position:-66px 0
87
+ }
88
+ .jqte_tool.jqte_tool_6 .jqte_tool_icon {
89
+ background-position:-88px 0
90
+ }
91
+ .jqte_tool.jqte_tool_7 .jqte_tool_icon {
92
+ background-position:-110px 0
93
+ }
94
+ .jqte_tool.jqte_tool_8 .jqte_tool_icon {
95
+ background-position:-132px 0
96
+ }
97
+ .jqte_tool.jqte_tool_9 .jqte_tool_icon {
98
+ background-position:-154px 0
99
+ }
100
+ .jqte_tool.jqte_tool_10 .jqte_tool_icon {
101
+ background-position:-176px 0
102
+ }
103
+ .jqte_tool.jqte_tool_11 .jqte_tool_icon {
104
+ background-position:-198px 0
105
+ }
106
+ .jqte_tool.jqte_tool_12 .jqte_tool_icon {
107
+ background-position:-220px 0
108
+ }
109
+ .jqte_tool.jqte_tool_13 .jqte_tool_icon {
110
+ background-position:-242px 0
111
+ }
112
+ .jqte_tool.jqte_tool_14 .jqte_tool_icon {
113
+ background-position:-264px 0
114
+ }
115
+ .jqte_tool.jqte_tool_15 .jqte_tool_icon {
116
+ background-position:-286px 0
117
+ }
118
+ .jqte_tool.jqte_tool_16 .jqte_tool_icon {
119
+ background-position:-308px 0
120
+ }
121
+ .jqte_tool.jqte_tool_17 .jqte_tool_icon {
122
+ background-position:-330px 0
123
+ }
124
+ .jqte_tool.jqte_tool_18 .jqte_tool_icon {
125
+ background-position:-352px 0
126
+ }
127
+ .jqte_tool.jqte_tool_19 .jqte_tool_icon {
128
+ background-position:-374px 0
129
+ }
130
+ .jqte_tool.jqte_tool_20 .jqte_tool_icon {
131
+ background-position:-396px 0
132
+ }
133
+ .jqte_tool.jqte_tool_21 .jqte_tool_icon {
134
+ background-position:-418px 0
135
+ }
136
+ .jqte_tool:hover {
137
+ background-color:#FFF;
138
+ border-color:#FFF
139
+ }
140
+ .jqte_tool:hover .jqte_tool_icon, .jqte_tool:hover .jqte_tool_label {
141
+ border:#AAA 1px solid
142
+ }
143
+ .jqte_tool:active .jqte_tool_icon, .jqte_tool:active .jqte_tool_label {
144
+ border:#777 1px solid
145
+ }
146
+ .jqte_tool.jqte_tool_1:hover .jqte_tool_icon, .jqte_tool.jqte_tool_1:active .jqte_tool_icon {
147
+ border:none
148
+ }
149
+ .jqte_tool_depressed {
150
+ background-color:#DDD;
151
+ border-color:#CCC
152
+ }
153
+ .jqte_tool_depressed .jqte_tool_icon {
154
+ border-color:#AAA
155
+ }
156
+ .jqte_tool_depressed:hover {
157
+ background-color:#EEE
158
+ }
159
+ /* link form area */
160
+ .jqte_linkform {
161
+ padding:5px 10px;
162
+ background:#DDD;
163
+ border-bottom:#BBB 1px solid;
164
+ }
165
+ .jqte_linktypeselect {
166
+ position:relative;
167
+ float:left;
168
+ width:130px;
169
+ background:#EEE;
170
+ cursor:pointer
171
+ }
172
+ .jqte_linktypeselect:Active {
173
+ background:#FFF
174
+ }
175
+ .jqte_linktypeview {
176
+ padding:3px 5px;
177
+ border:#333 1px solid;
178
+ color:#777;
179
+ border-radius:3px; -webkit-border-radius:3px; -moz-border-radius:3px;
180
+ outline:none
181
+ }
182
+ .jqte_linktypetext {
183
+ font-size:12px;
184
+ }
185
+ .jqte_linktypearrow {
186
+ position:absolute;
187
+ bottom:8px; right:6px;
188
+ width:7px;
189
+ height:6px;
190
+ margin:0 auto;
191
+ background:image-url('lit/jquery-te.png') -7px -23px no-repeat;
192
+ }
193
+ .jqte_linktypes {
194
+ display:none;
195
+ position:absolute;
196
+ top:22px; left:1px;
197
+ width:125px;
198
+ background:#FFF;
199
+ border:#333 1px solid;
200
+ box-shadow:0 1px 4px #AAA; -webkit-box-shadow:0 1px 4px #AAA; -moz-box-shadow:0 1px 4px #AAA
201
+ }
202
+ .jqte_linktypes a {
203
+ display:block;
204
+ padding:4px 5px;
205
+ font-size:12px;
206
+ }
207
+ .jqte_linktypes a:hover {
208
+ background:#DDD
209
+ }
210
+ .jqte_linkinput {
211
+ float:left;
212
+ margin:0 5px;
213
+ padding:3px 5px;
214
+ width:300px;
215
+ background:#EEE;
216
+ border:#333 1px solid;
217
+ color:#777;
218
+ font-size:12px;
219
+ border-radius:3px; -webkit-border-radius:3px; -moz-border-radius:3px;
220
+ outline:none;
221
+ }
222
+ .jqte_linkinput:focus, .jqte_linkinput:hover {
223
+ background:#FFF;
224
+ border-color:#000;
225
+ }
226
+ .jqte_linkbutton {
227
+ float:left;
228
+ padding:3px 12px;
229
+ background:#AAA;
230
+ border:#333 1px solid;
231
+ color:#FFF;
232
+ font-size:12px;
233
+ font-weight:bold;
234
+ cursor:pointer;
235
+ border-radius:3px; -webkit-border-radius:3px; -moz-border-radius:3px;
236
+ box-shadow:inset 0 1px #EEE; -webkit-box-shadow:inset 0 1px #EEE; -moz-box-shadow:inset 0 1px #EEE;
237
+ }
238
+ .jqte_linkbutton:hover {
239
+ background:#A1A1A1
240
+ }
241
+ .jqte_linkbutton:active {
242
+ box-shadow:inset 0 1px #CCC; -webkit-box-shadow:inset 0 1px #CCC; -moz-box-shadow:inset 0 1px #CCC;
243
+ background:#888;
244
+ }
245
+
246
+ /* text format menu */
247
+ .jqte_formats {
248
+ display:none;
249
+ position:absolute;
250
+ width:180px;
251
+ oveflow-x:hidden;
252
+ overflow-y:auto;
253
+ background:#FFF;
254
+ border:#AAA 1px solid;
255
+ box-shadow:0 0 5px #AAA; -webkit-box-shadow:0 0 5px #AAA; -moz-box-shadow:0 0 5px #AAA;
256
+ z-index:100;
257
+ }
258
+ .jqte_format {
259
+ display:block;
260
+ padding:4px 7px;
261
+ font-size:13px
262
+ }
263
+ .jqte_format:hover {
264
+ background:#DDD
265
+ }
266
+ .jqte_format_1, .jqte_format_2, .jqte_format_3, .jqte_format_4, .jqte_format_5, .jqte_format_6 {
267
+ font-weight:bold
268
+ }
269
+ .jqte_format_1 {
270
+ font-size:22px
271
+ }
272
+ .jqte_format_2 {
273
+ font-size:20px
274
+ }
275
+ .jqte_format_3 {
276
+ font-size:18px
277
+ }
278
+ .jqte_format_4 {
279
+ font-size:16px
280
+ }
281
+ .jqte_format_5 {
282
+ font-size:14px
283
+ }
284
+ .jqte_format_6 {
285
+ font-size:12px
286
+ }
287
+ .jqte_format_7 {
288
+ font-family:"Courier New", Courier, monospace
289
+ }
290
+
291
+ /* font size menu */
292
+ .jqte_fontsizes {
293
+ display:none;
294
+ position:absolute;
295
+ width:180px;
296
+ height:198px;
297
+ oveflow-x:hidden;
298
+ overflow-y:auto;
299
+ background:#FFF;
300
+ border:#AAA 1px solid;
301
+ box-shadow:0 0 5px #AAA; -webkit-box-shadow:0 0 5px #AAA; -moz-box-shadow:0 0 5px #AAA
302
+ }
303
+ .jqte_fontsize {
304
+ display:block;
305
+ padding:3px 7px;
306
+ }
307
+ .jqte_fontsize:hover {
308
+ background:#DDD
309
+ }
310
+
311
+ /* color pallette */
312
+ .jqte_cpalette {
313
+ display:none;
314
+ position:absolute;
315
+ padding:6px;
316
+ width:144px;
317
+ background:#FFF;
318
+ border:#AAA 1px solid;
319
+ box-shadow:0 0 5px #AAA; -webkit-box-shadow:0 0 5px #AAA; -moz-box-shadow:0 0 5px #AAA
320
+ }
321
+ .jqte_color {
322
+ display:block;
323
+ float:left;
324
+ width:16px;
325
+ height:16px;
326
+ border:#FFF 1px solid;
327
+ }
328
+ .jqte_color:hover {
329
+ border-color:#000
330
+ }
331
+ .jqte_colorSeperator {
332
+ float:none;
333
+ clear:both;
334
+ height:7px;
335
+ }
336
+
337
+ /* editor area */
338
+ .jqte_editor, .jqte_source {
339
+ padding:10px;
340
+ background:#FFF;
341
+ min-height:100px;
342
+ max-height:900px;
343
+ overflow:auto;
344
+ outline:none;
345
+ word-wrap:break-word; -ms-word-wrap:break-word;
346
+ resize:vertical
347
+ }
348
+ .jqte_editor div, .jqte_editor p {
349
+ margin:0 0 7px
350
+ }
351
+ .jqte_editor a:link, .jqte_editor a:link * {
352
+ color:#0066FF !important;
353
+ text-decoration:underline;
354
+ }
355
+ .jqte_editor blockquote {
356
+ margin-top:0;
357
+ margin-bottom:7px
358
+ }
359
+ .jqte_editor img {
360
+ float:left;
361
+ margin:0 10px 5px 0
362
+ }
363
+ .jqte_editor a[jqte-setlink], .jqte_editor a[jqte-setlink] * {
364
+ background:#3297FD !important;
365
+ color:#FFF !important
366
+ }
367
+ .jqte_editor h1, .jqte_editor h2, .jqte_editor h3, .jqte_editor h4, .jqte_editor h5, .jqte_editor h6, .jqte_editor pre {
368
+ display:block;
369
+ margin:0 0 3px;
370
+ }
371
+ .jqte_editor h1, .jqte_editor h1 * {
372
+ font-size:26px
373
+ }
374
+ .jqte_editor h2, .jqte_editor h2 * {
375
+ font-size:24px
376
+ }
377
+ .jqte_editor h3, .jqte_editor h3 * {
378
+ font-size:22px
379
+ }
380
+ .jqte_editor h4, .jqte_editor h4 * {
381
+ font-size:20px
382
+ }
383
+ .jqte_editor h5, .jqte_editor h5 * {
384
+ font-size:18px
385
+ }
386
+ .jqte_editor h6, .jqte_editor h6 * {
387
+ font-size:15px
388
+ }
389
+ .jqte_editor pre, .jqte_editor pre * {
390
+ font-family:"Courier New", Courier, monospace
391
+ }
392
+
393
+ /* source area */
394
+ .jqte_source, .jqte_source textarea {
395
+ background:#FFF1E8
396
+ }
397
+ .jqte_source textarea {
398
+ margin:0 !important;
399
+ padding:0 !important;
400
+ display:block !important;
401
+ width:100% !important;
402
+ min-height:100px;
403
+ font-family:Courier, Arial, sans-serif !important;
404
+ font-weight:normal;
405
+ font-size:15px;
406
+ overflow:hidden !important;
407
+ outline:none;
408
+ resize:none;
409
+ }
410
+ .jqte_source textarea, .jqte_source textarea:focus {
411
+ css_shadow:none !important;
412
+ background:none !important;
413
+ border:none !important;
414
+ }
415
+
416
+ /* title box */
417
+ .jqte_title {
418
+ display:none;
419
+ position:absolute;
420
+ z-index:9999;
421
+ }
422
+ .jqte_titleArrow {
423
+ position:relative;
424
+ }
425
+ .jqte_titleArrowIcon {
426
+ width:7px;
427
+ height:6px;
428
+ margin:0 auto;
429
+ background:image-url('lit/jquery-te.png') 0 -23px no-repeat;
430
+ }
431
+ .jqte_titleText {
432
+ padding:5px 7px;
433
+ margin-top:0;
434
+ min-width:5px;
435
+ min-height:1px;
436
+ max-width:400px;
437
+ background:#000;
438
+ border-radius:3px; -webkit-border-radius:3px; -moz-border-radius:3px;
439
+ word-wrap:break-word; -ms-word-wrap:break-word
440
+ }
441
+ .jqte_titleText, .jqte_titleText * {
442
+ color:#FFF;
443
+ font-size:11px
444
+ }
445
+
446
+ /* placeholder */
447
+ .jqte_placeholder {
448
+ position:relative;
449
+ display:none;
450
+ }
451
+ .jqte_placeholder_text {
452
+ position:absolute;
453
+ top:43px;
454
+ left:10px;
455
+ font-size:14px;
456
+ color:#CCC;
457
+ }