diff --git a/app/assets/images/ad.gif b/app/assets/images/ad.gif new file mode 100644 index 00000000..57b49973 Binary files /dev/null and b/app/assets/images/ad.gif differ diff --git a/app/assets/images/ae.gif b/app/assets/images/ae.gif new file mode 100644 index 00000000..78d15b67 Binary files /dev/null and b/app/assets/images/ae.gif differ diff --git a/app/assets/images/af.gif b/app/assets/images/af.gif new file mode 100644 index 00000000..98894082 Binary files /dev/null and b/app/assets/images/af.gif differ diff --git a/app/assets/images/ag.gif b/app/assets/images/ag.gif new file mode 100644 index 00000000..48f8e7bc Binary files /dev/null and b/app/assets/images/ag.gif differ diff --git a/app/assets/images/ai.gif b/app/assets/images/ai.gif new file mode 100644 index 00000000..1cbc5795 Binary files /dev/null and b/app/assets/images/ai.gif differ diff --git a/app/assets/images/al.gif b/app/assets/images/al.gif new file mode 100644 index 00000000..c44fe0a0 Binary files /dev/null and b/app/assets/images/al.gif differ diff --git a/app/assets/images/am.gif b/app/assets/images/am.gif new file mode 100644 index 00000000..2915e30c Binary files /dev/null and b/app/assets/images/am.gif differ diff --git a/app/assets/images/an.gif b/app/assets/images/an.gif new file mode 100644 index 00000000..cb570c67 Binary files /dev/null and b/app/assets/images/an.gif differ diff --git a/app/assets/images/ao.gif b/app/assets/images/ao.gif new file mode 100644 index 00000000..8c854fa1 Binary files /dev/null and b/app/assets/images/ao.gif differ diff --git a/app/assets/images/ar.gif b/app/assets/images/ar.gif new file mode 100644 index 00000000..a9f71f7d Binary files /dev/null and b/app/assets/images/ar.gif differ diff --git a/app/assets/images/as.gif b/app/assets/images/as.gif new file mode 100644 index 00000000..d776ec27 Binary files /dev/null and b/app/assets/images/as.gif differ diff --git a/app/assets/images/at.gif b/app/assets/images/at.gif new file mode 100644 index 00000000..87e12173 Binary files /dev/null and b/app/assets/images/at.gif differ diff --git a/app/assets/images/au.gif b/app/assets/images/au.gif new file mode 100644 index 00000000..5269c6a0 Binary files /dev/null and b/app/assets/images/au.gif differ diff --git a/app/assets/images/aw.gif b/app/assets/images/aw.gif new file mode 100644 index 00000000..27fdb4d1 Binary files /dev/null and b/app/assets/images/aw.gif differ diff --git a/app/assets/images/ax.gif b/app/assets/images/ax.gif new file mode 100644 index 00000000..0ceb6849 Binary files /dev/null and b/app/assets/images/ax.gif differ diff --git a/app/assets/images/az.gif b/app/assets/images/az.gif new file mode 100644 index 00000000..d7716184 Binary files /dev/null and b/app/assets/images/az.gif differ diff --git a/app/assets/images/ba.gif b/app/assets/images/ba.gif new file mode 100644 index 00000000..9bf5f0ac Binary files /dev/null and b/app/assets/images/ba.gif differ diff --git a/app/assets/images/bb.gif b/app/assets/images/bb.gif new file mode 100644 index 00000000..b7d08e57 Binary files /dev/null and b/app/assets/images/bb.gif differ diff --git a/app/assets/images/bd.gif b/app/assets/images/bd.gif new file mode 100644 index 00000000..0fd27eca Binary files /dev/null and b/app/assets/images/bd.gif differ diff --git a/app/assets/images/be.gif b/app/assets/images/be.gif new file mode 100644 index 00000000..ae09bfbe Binary files /dev/null and b/app/assets/images/be.gif differ diff --git a/app/assets/images/bf.gif b/app/assets/images/bf.gif new file mode 100644 index 00000000..9d6772cd Binary files /dev/null and b/app/assets/images/bf.gif differ diff --git a/app/assets/images/bg.gif b/app/assets/images/bg.gif new file mode 100644 index 00000000..11cf8ff3 Binary files /dev/null and b/app/assets/images/bg.gif differ diff --git a/app/assets/images/bh.gif b/app/assets/images/bh.gif new file mode 100644 index 00000000..56aa72b2 Binary files /dev/null and b/app/assets/images/bh.gif differ diff --git a/app/assets/images/bi.gif b/app/assets/images/bi.gif new file mode 100644 index 00000000..6e2cbe12 Binary files /dev/null and b/app/assets/images/bi.gif differ diff --git a/app/assets/images/bj.gif b/app/assets/images/bj.gif new file mode 100644 index 00000000..e676116f Binary files /dev/null and b/app/assets/images/bj.gif differ diff --git a/app/assets/images/bm.gif b/app/assets/images/bm.gif new file mode 100644 index 00000000..9feb87bc Binary files /dev/null and b/app/assets/images/bm.gif differ diff --git a/app/assets/images/bn.gif b/app/assets/images/bn.gif new file mode 100644 index 00000000..b7b6b0f9 Binary files /dev/null and b/app/assets/images/bn.gif differ diff --git a/app/assets/images/bo.gif b/app/assets/images/bo.gif new file mode 100644 index 00000000..4844f856 Binary files /dev/null and b/app/assets/images/bo.gif differ diff --git a/app/assets/images/br.gif b/app/assets/images/br.gif new file mode 100644 index 00000000..8c866162 Binary files /dev/null and b/app/assets/images/br.gif differ diff --git a/app/assets/images/bs.gif b/app/assets/images/bs.gif new file mode 100644 index 00000000..c0a741e5 Binary files /dev/null and b/app/assets/images/bs.gif differ diff --git a/app/assets/images/bt.gif b/app/assets/images/bt.gif new file mode 100644 index 00000000..abe2f3cc Binary files /dev/null and b/app/assets/images/bt.gif differ diff --git a/app/assets/images/bv.gif b/app/assets/images/bv.gif new file mode 100644 index 00000000..6202d1f3 Binary files /dev/null and b/app/assets/images/bv.gif differ diff --git a/app/assets/images/bw.gif b/app/assets/images/bw.gif new file mode 100644 index 00000000..986ab63c Binary files /dev/null and b/app/assets/images/bw.gif differ diff --git a/app/assets/images/by.gif b/app/assets/images/by.gif new file mode 100644 index 00000000..43ffcd4c Binary files /dev/null and b/app/assets/images/by.gif differ diff --git a/app/assets/images/bz.gif b/app/assets/images/bz.gif new file mode 100644 index 00000000..791737f0 Binary files /dev/null and b/app/assets/images/bz.gif differ diff --git a/app/assets/images/ca.gif b/app/assets/images/ca.gif new file mode 100644 index 00000000..457d9662 Binary files /dev/null and b/app/assets/images/ca.gif differ diff --git a/app/assets/images/cc.gif b/app/assets/images/cc.gif new file mode 100644 index 00000000..3f783270 Binary files /dev/null and b/app/assets/images/cc.gif differ diff --git a/app/assets/images/cd.gif b/app/assets/images/cd.gif new file mode 100644 index 00000000..1df717ae Binary files /dev/null and b/app/assets/images/cd.gif differ diff --git a/app/assets/images/cf.gif b/app/assets/images/cf.gif new file mode 100644 index 00000000..35787ca4 Binary files /dev/null and b/app/assets/images/cf.gif differ diff --git a/app/assets/images/cg.gif b/app/assets/images/cg.gif new file mode 100644 index 00000000..e0a62a51 Binary files /dev/null and b/app/assets/images/cg.gif differ diff --git a/app/assets/images/ch.gif b/app/assets/images/ch.gif new file mode 100644 index 00000000..d5c0e5b7 Binary files /dev/null and b/app/assets/images/ch.gif differ diff --git a/app/assets/images/ci.gif b/app/assets/images/ci.gif new file mode 100644 index 00000000..844120a5 Binary files /dev/null and b/app/assets/images/ci.gif differ diff --git a/app/assets/images/ck.gif b/app/assets/images/ck.gif new file mode 100644 index 00000000..2edb7399 Binary files /dev/null and b/app/assets/images/ck.gif differ diff --git a/app/assets/images/cl.gif b/app/assets/images/cl.gif new file mode 100644 index 00000000..cbc370e6 Binary files /dev/null and b/app/assets/images/cl.gif differ diff --git a/app/assets/images/cm.gif b/app/assets/images/cm.gif new file mode 100644 index 00000000..1fb102b2 Binary files /dev/null and b/app/assets/images/cm.gif differ diff --git a/app/assets/images/cn.gif b/app/assets/images/cn.gif new file mode 100644 index 00000000..b0525309 Binary files /dev/null and b/app/assets/images/cn.gif differ diff --git a/app/assets/images/co.gif b/app/assets/images/co.gif new file mode 100644 index 00000000..d0e15caf Binary files /dev/null and b/app/assets/images/co.gif differ diff --git a/app/assets/images/cr.gif b/app/assets/images/cr.gif new file mode 100644 index 00000000..0728dd6a Binary files /dev/null and b/app/assets/images/cr.gif differ diff --git a/app/assets/images/cs.gif b/app/assets/images/cs.gif new file mode 100644 index 00000000..101db649 Binary files /dev/null and b/app/assets/images/cs.gif differ diff --git a/app/assets/images/cu.gif b/app/assets/images/cu.gif new file mode 100644 index 00000000..291255ca Binary files /dev/null and b/app/assets/images/cu.gif differ diff --git a/app/assets/images/cv.gif b/app/assets/images/cv.gif new file mode 100644 index 00000000..43c6c6cb Binary files /dev/null and b/app/assets/images/cv.gif differ diff --git a/app/assets/images/cx.gif b/app/assets/images/cx.gif new file mode 100644 index 00000000..a5b43089 Binary files /dev/null and b/app/assets/images/cx.gif differ diff --git a/app/assets/images/cy.gif b/app/assets/images/cy.gif new file mode 100644 index 00000000..35c661e1 Binary files /dev/null and b/app/assets/images/cy.gif differ diff --git a/app/assets/images/cz.gif b/app/assets/images/cz.gif new file mode 100644 index 00000000..0a605e58 Binary files /dev/null and b/app/assets/images/cz.gif differ diff --git a/app/assets/images/de.gif b/app/assets/images/de.gif new file mode 100644 index 00000000..75728ddf Binary files /dev/null and b/app/assets/images/de.gif differ diff --git a/app/assets/images/dj.gif b/app/assets/images/dj.gif new file mode 100644 index 00000000..212406d9 Binary files /dev/null and b/app/assets/images/dj.gif differ diff --git a/app/assets/images/dk.gif b/app/assets/images/dk.gif new file mode 100644 index 00000000..03e75bd2 Binary files /dev/null and b/app/assets/images/dk.gif differ diff --git a/app/assets/images/dm.gif b/app/assets/images/dm.gif new file mode 100644 index 00000000..2f87f3ca Binary files /dev/null and b/app/assets/images/dm.gif differ diff --git a/app/assets/images/do.gif b/app/assets/images/do.gif new file mode 100644 index 00000000..f7d0bad3 Binary files /dev/null and b/app/assets/images/do.gif differ diff --git a/app/assets/images/dz.gif b/app/assets/images/dz.gif new file mode 100644 index 00000000..ed580a7c Binary files /dev/null and b/app/assets/images/dz.gif differ diff --git a/app/assets/images/ec.gif b/app/assets/images/ec.gif new file mode 100644 index 00000000..9e41e0ec Binary files /dev/null and b/app/assets/images/ec.gif differ diff --git a/app/assets/images/ee.gif b/app/assets/images/ee.gif new file mode 100644 index 00000000..9397a2d0 Binary files /dev/null and b/app/assets/images/ee.gif differ diff --git a/app/assets/images/eg.gif b/app/assets/images/eg.gif new file mode 100644 index 00000000..6857c7dd Binary files /dev/null and b/app/assets/images/eg.gif differ diff --git a/app/assets/images/eh.gif b/app/assets/images/eh.gif new file mode 100644 index 00000000..dd0391c2 Binary files /dev/null and b/app/assets/images/eh.gif differ diff --git a/app/assets/images/en.gif b/app/assets/images/en.gif new file mode 100644 index 00000000..3c6bce15 Binary files /dev/null and b/app/assets/images/en.gif differ diff --git a/app/assets/images/er.gif b/app/assets/images/er.gif new file mode 100644 index 00000000..3d4d612c Binary files /dev/null and b/app/assets/images/er.gif differ diff --git a/app/assets/images/es.gif b/app/assets/images/es.gif new file mode 100644 index 00000000..c27d65e5 Binary files /dev/null and b/app/assets/images/es.gif differ diff --git a/app/assets/images/et.gif b/app/assets/images/et.gif new file mode 100644 index 00000000..f77995d0 Binary files /dev/null and b/app/assets/images/et.gif differ diff --git a/app/assets/images/fi.gif b/app/assets/images/fi.gif new file mode 100644 index 00000000..8d3a1918 Binary files /dev/null and b/app/assets/images/fi.gif differ diff --git a/app/assets/images/fj.gif b/app/assets/images/fj.gif new file mode 100644 index 00000000..486151cb Binary files /dev/null and b/app/assets/images/fj.gif differ diff --git a/app/assets/images/fk.gif b/app/assets/images/fk.gif new file mode 100644 index 00000000..37b5ecf3 Binary files /dev/null and b/app/assets/images/fk.gif differ diff --git a/app/assets/images/fm.gif b/app/assets/images/fm.gif new file mode 100644 index 00000000..7f8723b7 Binary files /dev/null and b/app/assets/images/fm.gif differ diff --git a/app/assets/images/fo.gif b/app/assets/images/fo.gif new file mode 100644 index 00000000..4a90fc04 Binary files /dev/null and b/app/assets/images/fo.gif differ diff --git a/app/assets/images/fr.gif b/app/assets/images/fr.gif new file mode 100644 index 00000000..43d0b801 Binary files /dev/null and b/app/assets/images/fr.gif differ diff --git a/app/assets/images/ga.gif b/app/assets/images/ga.gif new file mode 100644 index 00000000..23fd5f0d Binary files /dev/null and b/app/assets/images/ga.gif differ diff --git a/app/assets/images/gb.gif b/app/assets/images/gb.gif new file mode 100644 index 00000000..3c6bce15 Binary files /dev/null and b/app/assets/images/gb.gif differ diff --git a/app/assets/images/gd.gif b/app/assets/images/gd.gif new file mode 100644 index 00000000..25ea3123 Binary files /dev/null and b/app/assets/images/gd.gif differ diff --git a/app/assets/images/ge.gif b/app/assets/images/ge.gif new file mode 100644 index 00000000..faa7f126 Binary files /dev/null and b/app/assets/images/ge.gif differ diff --git a/app/assets/images/gf.gif b/app/assets/images/gf.gif new file mode 100644 index 00000000..43d0b801 Binary files /dev/null and b/app/assets/images/gf.gif differ diff --git a/app/assets/images/gh.gif b/app/assets/images/gh.gif new file mode 100644 index 00000000..273fb7d1 Binary files /dev/null and b/app/assets/images/gh.gif differ diff --git a/app/assets/images/gi.gif b/app/assets/images/gi.gif new file mode 100644 index 00000000..7b1984bc Binary files /dev/null and b/app/assets/images/gi.gif differ diff --git a/app/assets/images/gl.gif b/app/assets/images/gl.gif new file mode 100644 index 00000000..ef445be0 Binary files /dev/null and b/app/assets/images/gl.gif differ diff --git a/app/assets/images/gm.gif b/app/assets/images/gm.gif new file mode 100644 index 00000000..6847c5a8 Binary files /dev/null and b/app/assets/images/gm.gif differ diff --git a/app/assets/images/gn.gif b/app/assets/images/gn.gif new file mode 100644 index 00000000..a982ac6f Binary files /dev/null and b/app/assets/images/gn.gif differ diff --git a/app/assets/images/gp.gif b/app/assets/images/gp.gif new file mode 100644 index 00000000..31166db6 Binary files /dev/null and b/app/assets/images/gp.gif differ diff --git a/app/assets/images/gq.gif b/app/assets/images/gq.gif new file mode 100644 index 00000000..8b4e0cc4 Binary files /dev/null and b/app/assets/images/gq.gif differ diff --git a/app/assets/images/gr.gif b/app/assets/images/gr.gif new file mode 100644 index 00000000..b4c8c04e Binary files /dev/null and b/app/assets/images/gr.gif differ diff --git a/app/assets/images/gs.gif b/app/assets/images/gs.gif new file mode 100644 index 00000000..ccc96ec0 Binary files /dev/null and b/app/assets/images/gs.gif differ diff --git a/app/assets/images/gt.gif b/app/assets/images/gt.gif new file mode 100644 index 00000000..7e94d1dd Binary files /dev/null and b/app/assets/images/gt.gif differ diff --git a/app/assets/images/gu.gif b/app/assets/images/gu.gif new file mode 100644 index 00000000..eafef683 Binary files /dev/null and b/app/assets/images/gu.gif differ diff --git a/app/assets/images/gw.gif b/app/assets/images/gw.gif new file mode 100644 index 00000000..55f75711 Binary files /dev/null and b/app/assets/images/gw.gif differ diff --git a/app/assets/images/gy.gif b/app/assets/images/gy.gif new file mode 100644 index 00000000..1cb4cd71 Binary files /dev/null and b/app/assets/images/gy.gif differ diff --git a/app/assets/images/hk.gif b/app/assets/images/hk.gif new file mode 100644 index 00000000..798af96d Binary files /dev/null and b/app/assets/images/hk.gif differ diff --git a/app/assets/images/hm.gif b/app/assets/images/hm.gif new file mode 100644 index 00000000..5269c6a0 Binary files /dev/null and b/app/assets/images/hm.gif differ diff --git a/app/assets/images/hn.gif b/app/assets/images/hn.gif new file mode 100644 index 00000000..6c4ffe8e Binary files /dev/null and b/app/assets/images/hn.gif differ diff --git a/app/assets/images/hr.gif b/app/assets/images/hr.gif new file mode 100644 index 00000000..557c6602 Binary files /dev/null and b/app/assets/images/hr.gif differ diff --git a/app/assets/images/ht.gif b/app/assets/images/ht.gif new file mode 100644 index 00000000..059604ab Binary files /dev/null and b/app/assets/images/ht.gif differ diff --git a/app/assets/images/hu.gif b/app/assets/images/hu.gif new file mode 100644 index 00000000..6142d868 Binary files /dev/null and b/app/assets/images/hu.gif differ diff --git a/app/assets/images/id.gif b/app/assets/images/id.gif new file mode 100644 index 00000000..865161b0 Binary files /dev/null and b/app/assets/images/id.gif differ diff --git a/app/assets/images/ie.gif b/app/assets/images/ie.gif new file mode 100644 index 00000000..506ad285 Binary files /dev/null and b/app/assets/images/ie.gif differ diff --git a/app/assets/images/il.gif b/app/assets/images/il.gif new file mode 100644 index 00000000..c8483ae5 Binary files /dev/null and b/app/assets/images/il.gif differ diff --git a/app/assets/images/in.gif b/app/assets/images/in.gif new file mode 100644 index 00000000..1cd80272 Binary files /dev/null and b/app/assets/images/in.gif differ diff --git a/app/assets/images/io.gif b/app/assets/images/io.gif new file mode 100644 index 00000000..de7e7ab3 Binary files /dev/null and b/app/assets/images/io.gif differ diff --git a/app/assets/images/iq.gif b/app/assets/images/iq.gif new file mode 100644 index 00000000..c34fe3c4 Binary files /dev/null and b/app/assets/images/iq.gif differ diff --git a/app/assets/images/ir.gif b/app/assets/images/ir.gif new file mode 100644 index 00000000..156040fc Binary files /dev/null and b/app/assets/images/ir.gif differ diff --git a/app/assets/images/is.gif b/app/assets/images/is.gif new file mode 100644 index 00000000..b42502de Binary files /dev/null and b/app/assets/images/is.gif differ diff --git a/app/assets/images/it.gif b/app/assets/images/it.gif new file mode 100644 index 00000000..d79e90e9 Binary files /dev/null and b/app/assets/images/it.gif differ diff --git a/app/assets/images/jm.gif b/app/assets/images/jm.gif new file mode 100644 index 00000000..0bed67c2 Binary files /dev/null and b/app/assets/images/jm.gif differ diff --git a/app/assets/images/jo.gif b/app/assets/images/jo.gif new file mode 100644 index 00000000..03daf8af Binary files /dev/null and b/app/assets/images/jo.gif differ diff --git a/app/assets/images/jp.gif b/app/assets/images/jp.gif new file mode 100644 index 00000000..444c1d05 Binary files /dev/null and b/app/assets/images/jp.gif differ diff --git a/app/assets/images/ke.gif b/app/assets/images/ke.gif new file mode 100644 index 00000000..c2b5d45c Binary files /dev/null and b/app/assets/images/ke.gif differ diff --git a/app/assets/images/kg.gif b/app/assets/images/kg.gif new file mode 100644 index 00000000..72a4d412 Binary files /dev/null and b/app/assets/images/kg.gif differ diff --git a/app/assets/images/kh.gif b/app/assets/images/kh.gif new file mode 100644 index 00000000..30a18315 Binary files /dev/null and b/app/assets/images/kh.gif differ diff --git a/app/assets/images/ki.gif b/app/assets/images/ki.gif new file mode 100644 index 00000000..4a0751a2 Binary files /dev/null and b/app/assets/images/ki.gif differ diff --git a/app/assets/images/km.gif b/app/assets/images/km.gif new file mode 100644 index 00000000..5859595e Binary files /dev/null and b/app/assets/images/km.gif differ diff --git a/app/assets/images/kn.gif b/app/assets/images/kn.gif new file mode 100644 index 00000000..bb9cc34a Binary files /dev/null and b/app/assets/images/kn.gif differ diff --git a/app/assets/images/kp.gif b/app/assets/images/kp.gif new file mode 100644 index 00000000..6e0ca09e Binary files /dev/null and b/app/assets/images/kp.gif differ diff --git a/app/assets/images/kr.gif b/app/assets/images/kr.gif new file mode 100644 index 00000000..1cddbe75 Binary files /dev/null and b/app/assets/images/kr.gif differ diff --git a/app/assets/images/kw.gif b/app/assets/images/kw.gif new file mode 100644 index 00000000..1efc7347 Binary files /dev/null and b/app/assets/images/kw.gif differ diff --git a/app/assets/images/ky.gif b/app/assets/images/ky.gif new file mode 100644 index 00000000..d3d02ee4 Binary files /dev/null and b/app/assets/images/ky.gif differ diff --git a/app/assets/images/kz.gif b/app/assets/images/kz.gif new file mode 100644 index 00000000..24baebe0 Binary files /dev/null and b/app/assets/images/kz.gif differ diff --git a/app/assets/images/la.gif b/app/assets/images/la.gif new file mode 100644 index 00000000..d14cf4d8 Binary files /dev/null and b/app/assets/images/la.gif differ diff --git a/app/assets/images/lb.gif b/app/assets/images/lb.gif new file mode 100644 index 00000000..003d83af Binary files /dev/null and b/app/assets/images/lb.gif differ diff --git a/app/assets/images/lc.gif b/app/assets/images/lc.gif new file mode 100644 index 00000000..f5fe5bff Binary files /dev/null and b/app/assets/images/lc.gif differ diff --git a/app/assets/images/li.gif b/app/assets/images/li.gif new file mode 100644 index 00000000..713c58e1 Binary files /dev/null and b/app/assets/images/li.gif differ diff --git a/app/assets/images/lk.gif b/app/assets/images/lk.gif new file mode 100644 index 00000000..1b3ee7f5 Binary files /dev/null and b/app/assets/images/lk.gif differ diff --git a/app/assets/images/lr.gif b/app/assets/images/lr.gif new file mode 100644 index 00000000..435af9e5 Binary files /dev/null and b/app/assets/images/lr.gif differ diff --git a/app/assets/images/ls.gif b/app/assets/images/ls.gif new file mode 100644 index 00000000..427ae957 Binary files /dev/null and b/app/assets/images/ls.gif differ diff --git a/app/assets/images/lt.gif b/app/assets/images/lt.gif new file mode 100644 index 00000000..dee9c601 Binary files /dev/null and b/app/assets/images/lt.gif differ diff --git a/app/assets/images/lu.gif b/app/assets/images/lu.gif new file mode 100644 index 00000000..7d7293ed Binary files /dev/null and b/app/assets/images/lu.gif differ diff --git a/app/assets/images/lv.gif b/app/assets/images/lv.gif new file mode 100644 index 00000000..17e71b7e Binary files /dev/null and b/app/assets/images/lv.gif differ diff --git a/app/assets/images/ly.gif b/app/assets/images/ly.gif new file mode 100644 index 00000000..a654c30a Binary files /dev/null and b/app/assets/images/ly.gif differ diff --git a/app/assets/images/ma.gif b/app/assets/images/ma.gif new file mode 100644 index 00000000..fc784119 Binary files /dev/null and b/app/assets/images/ma.gif differ diff --git a/app/assets/images/mc.gif b/app/assets/images/mc.gif new file mode 100644 index 00000000..02a7c8e1 Binary files /dev/null and b/app/assets/images/mc.gif differ diff --git a/app/assets/images/md.gif b/app/assets/images/md.gif new file mode 100644 index 00000000..e4b8a7e3 Binary files /dev/null and b/app/assets/images/md.gif differ diff --git a/app/assets/images/me.gif b/app/assets/images/me.gif new file mode 100644 index 00000000..a260453c Binary files /dev/null and b/app/assets/images/me.gif differ diff --git a/app/assets/images/mg.gif b/app/assets/images/mg.gif new file mode 100644 index 00000000..a91b577d Binary files /dev/null and b/app/assets/images/mg.gif differ diff --git a/app/assets/images/mh.gif b/app/assets/images/mh.gif new file mode 100644 index 00000000..92f5f485 Binary files /dev/null and b/app/assets/images/mh.gif differ diff --git a/app/assets/images/mk.gif b/app/assets/images/mk.gif new file mode 100644 index 00000000..7aeb8311 Binary files /dev/null and b/app/assets/images/mk.gif differ diff --git a/app/assets/images/ml.gif b/app/assets/images/ml.gif new file mode 100644 index 00000000..53d6f490 Binary files /dev/null and b/app/assets/images/ml.gif differ diff --git a/app/assets/images/mm.gif b/app/assets/images/mm.gif new file mode 100644 index 00000000..9e0a2756 Binary files /dev/null and b/app/assets/images/mm.gif differ diff --git a/app/assets/images/mn.gif b/app/assets/images/mn.gif new file mode 100644 index 00000000..dff8ea5a Binary files /dev/null and b/app/assets/images/mn.gif differ diff --git a/app/assets/images/mo.gif b/app/assets/images/mo.gif new file mode 100644 index 00000000..66cf5b4f Binary files /dev/null and b/app/assets/images/mo.gif differ diff --git a/app/assets/images/mp.gif b/app/assets/images/mp.gif new file mode 100644 index 00000000..73b7147e Binary files /dev/null and b/app/assets/images/mp.gif differ diff --git a/app/assets/images/mq.gif b/app/assets/images/mq.gif new file mode 100644 index 00000000..570bc5dd Binary files /dev/null and b/app/assets/images/mq.gif differ diff --git a/app/assets/images/mr.gif b/app/assets/images/mr.gif new file mode 100644 index 00000000..f52fcf09 Binary files /dev/null and b/app/assets/images/mr.gif differ diff --git a/app/assets/images/ms.gif b/app/assets/images/ms.gif new file mode 100644 index 00000000..5e5a67aa Binary files /dev/null and b/app/assets/images/ms.gif differ diff --git a/app/assets/images/mt.gif b/app/assets/images/mt.gif new file mode 100644 index 00000000..45c709f2 Binary files /dev/null and b/app/assets/images/mt.gif differ diff --git a/app/assets/images/mu.gif b/app/assets/images/mu.gif new file mode 100644 index 00000000..081ab453 Binary files /dev/null and b/app/assets/images/mu.gif differ diff --git a/app/assets/images/mv.gif b/app/assets/images/mv.gif new file mode 100644 index 00000000..46b63875 Binary files /dev/null and b/app/assets/images/mv.gif differ diff --git a/app/assets/images/mw.gif b/app/assets/images/mw.gif new file mode 100644 index 00000000..ad045a09 Binary files /dev/null and b/app/assets/images/mw.gif differ diff --git a/app/assets/images/mx.gif b/app/assets/images/mx.gif new file mode 100644 index 00000000..ddc75d04 Binary files /dev/null and b/app/assets/images/mx.gif differ diff --git a/app/assets/images/my.gif b/app/assets/images/my.gif new file mode 100644 index 00000000..fc7d5236 Binary files /dev/null and b/app/assets/images/my.gif differ diff --git a/app/assets/images/mz.gif b/app/assets/images/mz.gif new file mode 100644 index 00000000..7d635082 Binary files /dev/null and b/app/assets/images/mz.gif differ diff --git a/app/assets/images/na.gif b/app/assets/images/na.gif new file mode 100644 index 00000000..c0babe72 Binary files /dev/null and b/app/assets/images/na.gif differ diff --git a/app/assets/images/nc.gif b/app/assets/images/nc.gif new file mode 100644 index 00000000..b1e91b9a Binary files /dev/null and b/app/assets/images/nc.gif differ diff --git a/app/assets/images/ne.gif b/app/assets/images/ne.gif new file mode 100644 index 00000000..ff4eaf07 Binary files /dev/null and b/app/assets/images/ne.gif differ diff --git a/app/assets/images/nf.gif b/app/assets/images/nf.gif new file mode 100644 index 00000000..c83424c2 Binary files /dev/null and b/app/assets/images/nf.gif differ diff --git a/app/assets/images/ng.gif b/app/assets/images/ng.gif new file mode 100644 index 00000000..bdde7cb3 Binary files /dev/null and b/app/assets/images/ng.gif differ diff --git a/app/assets/images/ni.gif b/app/assets/images/ni.gif new file mode 100644 index 00000000..d05894d0 Binary files /dev/null and b/app/assets/images/ni.gif differ diff --git a/app/assets/images/nl.gif b/app/assets/images/nl.gif new file mode 100644 index 00000000..c1c8f46d Binary files /dev/null and b/app/assets/images/nl.gif differ diff --git a/app/assets/images/no.gif b/app/assets/images/no.gif new file mode 100644 index 00000000..6202d1f3 Binary files /dev/null and b/app/assets/images/no.gif differ diff --git a/app/assets/images/np.gif b/app/assets/images/np.gif new file mode 100644 index 00000000..1096893a Binary files /dev/null and b/app/assets/images/np.gif differ diff --git a/app/assets/images/nr.gif b/app/assets/images/nr.gif new file mode 100644 index 00000000..2e4c0c5c Binary files /dev/null and b/app/assets/images/nr.gif differ diff --git a/app/assets/images/nu.gif b/app/assets/images/nu.gif new file mode 100644 index 00000000..618210a7 Binary files /dev/null and b/app/assets/images/nu.gif differ diff --git a/app/assets/images/nz.gif b/app/assets/images/nz.gif new file mode 100644 index 00000000..028a5dc6 Binary files /dev/null and b/app/assets/images/nz.gif differ diff --git a/app/assets/images/om.gif b/app/assets/images/om.gif new file mode 100644 index 00000000..2b8c7750 Binary files /dev/null and b/app/assets/images/om.gif differ diff --git a/app/assets/images/pa.gif b/app/assets/images/pa.gif new file mode 100644 index 00000000..d518b2f9 Binary files /dev/null and b/app/assets/images/pa.gif differ diff --git a/app/assets/images/pe.gif b/app/assets/images/pe.gif new file mode 100644 index 00000000..3bc76390 Binary files /dev/null and b/app/assets/images/pe.gif differ diff --git a/app/assets/images/pf.gif b/app/assets/images/pf.gif new file mode 100644 index 00000000..849297a5 Binary files /dev/null and b/app/assets/images/pf.gif differ diff --git a/app/assets/images/pg.gif b/app/assets/images/pg.gif new file mode 100644 index 00000000..2d20b078 Binary files /dev/null and b/app/assets/images/pg.gif differ diff --git a/app/assets/images/ph.gif b/app/assets/images/ph.gif new file mode 100644 index 00000000..12b380ac Binary files /dev/null and b/app/assets/images/ph.gif differ diff --git a/app/assets/images/pk.gif b/app/assets/images/pk.gif new file mode 100644 index 00000000..f3f62c2e Binary files /dev/null and b/app/assets/images/pk.gif differ diff --git a/app/assets/images/pl.gif b/app/assets/images/pl.gif new file mode 100644 index 00000000..bf106463 Binary files /dev/null and b/app/assets/images/pl.gif differ diff --git a/app/assets/images/pm.gif b/app/assets/images/pm.gif new file mode 100644 index 00000000..99bf6fdb Binary files /dev/null and b/app/assets/images/pm.gif differ diff --git a/app/assets/images/pn.gif b/app/assets/images/pn.gif new file mode 100644 index 00000000..4bc86a1d Binary files /dev/null and b/app/assets/images/pn.gif differ diff --git a/app/assets/images/pr.gif b/app/assets/images/pr.gif new file mode 100644 index 00000000..6d5d5896 Binary files /dev/null and b/app/assets/images/pr.gif differ diff --git a/app/assets/images/ps.gif b/app/assets/images/ps.gif new file mode 100644 index 00000000..6afa3b71 Binary files /dev/null and b/app/assets/images/ps.gif differ diff --git a/app/assets/images/pt.gif b/app/assets/images/pt.gif new file mode 100644 index 00000000..e735f740 Binary files /dev/null and b/app/assets/images/pt.gif differ diff --git a/app/assets/images/pw.gif b/app/assets/images/pw.gif new file mode 100644 index 00000000..5854510f Binary files /dev/null and b/app/assets/images/pw.gif differ diff --git a/app/assets/images/py.gif b/app/assets/images/py.gif new file mode 100644 index 00000000..f2e66af7 Binary files /dev/null and b/app/assets/images/py.gif differ diff --git a/app/assets/images/qa.gif b/app/assets/images/qa.gif new file mode 100644 index 00000000..2e843ff9 Binary files /dev/null and b/app/assets/images/qa.gif differ diff --git a/app/assets/images/re.gif b/app/assets/images/re.gif new file mode 100644 index 00000000..43d0b801 Binary files /dev/null and b/app/assets/images/re.gif differ diff --git a/app/assets/images/ro.gif b/app/assets/images/ro.gif new file mode 100644 index 00000000..f5d5f125 Binary files /dev/null and b/app/assets/images/ro.gif differ diff --git a/app/assets/images/rs.gif b/app/assets/images/rs.gif new file mode 100644 index 00000000..3bd1fb2f Binary files /dev/null and b/app/assets/images/rs.gif differ diff --git a/app/assets/images/ru.gif b/app/assets/images/ru.gif new file mode 100644 index 00000000..b525c462 Binary files /dev/null and b/app/assets/images/ru.gif differ diff --git a/app/assets/images/rw.gif b/app/assets/images/rw.gif new file mode 100644 index 00000000..0d095f7a Binary files /dev/null and b/app/assets/images/rw.gif differ diff --git a/app/assets/images/sa.gif b/app/assets/images/sa.gif new file mode 100644 index 00000000..179961b6 Binary files /dev/null and b/app/assets/images/sa.gif differ diff --git a/app/assets/images/sb.gif b/app/assets/images/sb.gif new file mode 100644 index 00000000..8f5ff837 Binary files /dev/null and b/app/assets/images/sb.gif differ diff --git a/app/assets/images/sc.gif b/app/assets/images/sc.gif new file mode 100644 index 00000000..31b47677 Binary files /dev/null and b/app/assets/images/sc.gif differ diff --git a/app/assets/images/sd.gif b/app/assets/images/sd.gif new file mode 100644 index 00000000..53ae214f Binary files /dev/null and b/app/assets/images/sd.gif differ diff --git a/app/assets/images/se.gif b/app/assets/images/se.gif new file mode 100644 index 00000000..80f62852 Binary files /dev/null and b/app/assets/images/se.gif differ diff --git a/app/assets/images/sg.gif b/app/assets/images/sg.gif new file mode 100644 index 00000000..5663d39f Binary files /dev/null and b/app/assets/images/sg.gif differ diff --git a/app/assets/images/sh.gif b/app/assets/images/sh.gif new file mode 100644 index 00000000..dcc7f3bc Binary files /dev/null and b/app/assets/images/sh.gif differ diff --git a/app/assets/images/si.gif b/app/assets/images/si.gif new file mode 100644 index 00000000..23852b50 Binary files /dev/null and b/app/assets/images/si.gif differ diff --git a/app/assets/images/sj.gif b/app/assets/images/sj.gif new file mode 100644 index 00000000..6202d1f3 Binary files /dev/null and b/app/assets/images/sj.gif differ diff --git a/app/assets/images/sk.gif b/app/assets/images/sk.gif new file mode 100644 index 00000000..1b3f22ba Binary files /dev/null and b/app/assets/images/sk.gif differ diff --git a/app/assets/images/sl.gif b/app/assets/images/sl.gif new file mode 100644 index 00000000..f0f34923 Binary files /dev/null and b/app/assets/images/sl.gif differ diff --git a/app/assets/images/sm.gif b/app/assets/images/sm.gif new file mode 100644 index 00000000..04d98de5 Binary files /dev/null and b/app/assets/images/sm.gif differ diff --git a/app/assets/images/sn.gif b/app/assets/images/sn.gif new file mode 100644 index 00000000..6dac8709 Binary files /dev/null and b/app/assets/images/sn.gif differ diff --git a/app/assets/images/so.gif b/app/assets/images/so.gif new file mode 100644 index 00000000..f1961694 Binary files /dev/null and b/app/assets/images/so.gif differ diff --git a/app/assets/images/sr.gif b/app/assets/images/sr.gif new file mode 100644 index 00000000..0f7499ad Binary files /dev/null and b/app/assets/images/sr.gif differ diff --git a/app/assets/images/st.gif b/app/assets/images/st.gif new file mode 100644 index 00000000..4f1e6e09 Binary files /dev/null and b/app/assets/images/st.gif differ diff --git a/app/assets/images/sv.gif b/app/assets/images/sv.gif new file mode 100644 index 00000000..2d7b159a Binary files /dev/null and b/app/assets/images/sv.gif differ diff --git a/app/assets/images/sy.gif b/app/assets/images/sy.gif new file mode 100644 index 00000000..dc8bd509 Binary files /dev/null and b/app/assets/images/sy.gif differ diff --git a/app/assets/images/sz.gif b/app/assets/images/sz.gif new file mode 100644 index 00000000..f37aaf80 Binary files /dev/null and b/app/assets/images/sz.gif differ diff --git a/app/assets/images/tc.gif b/app/assets/images/tc.gif new file mode 100644 index 00000000..11a8c232 Binary files /dev/null and b/app/assets/images/tc.gif differ diff --git a/app/assets/images/td.gif b/app/assets/images/td.gif new file mode 100644 index 00000000..7aa8a10d Binary files /dev/null and b/app/assets/images/td.gif differ diff --git a/app/assets/images/tf.gif b/app/assets/images/tf.gif new file mode 100644 index 00000000..51a43250 Binary files /dev/null and b/app/assets/images/tf.gif differ diff --git a/app/assets/images/tg.gif b/app/assets/images/tg.gif new file mode 100644 index 00000000..ca6b4e77 Binary files /dev/null and b/app/assets/images/tg.gif differ diff --git a/app/assets/images/th.gif b/app/assets/images/th.gif new file mode 100644 index 00000000..01307924 Binary files /dev/null and b/app/assets/images/th.gif differ diff --git a/app/assets/images/tj.gif b/app/assets/images/tj.gif new file mode 100644 index 00000000..2fe38d4a Binary files /dev/null and b/app/assets/images/tj.gif differ diff --git a/app/assets/images/tk.gif b/app/assets/images/tk.gif new file mode 100644 index 00000000..3d3a727f Binary files /dev/null and b/app/assets/images/tk.gif differ diff --git a/app/assets/images/tl.gif b/app/assets/images/tl.gif new file mode 100644 index 00000000..df22d582 Binary files /dev/null and b/app/assets/images/tl.gif differ diff --git a/app/assets/images/tm.gif b/app/assets/images/tm.gif new file mode 100644 index 00000000..36d0994f Binary files /dev/null and b/app/assets/images/tm.gif differ diff --git a/app/assets/images/tn.gif b/app/assets/images/tn.gif new file mode 100644 index 00000000..917d4288 Binary files /dev/null and b/app/assets/images/tn.gif differ diff --git a/app/assets/images/to.gif b/app/assets/images/to.gif new file mode 100644 index 00000000..d7ed4d11 Binary files /dev/null and b/app/assets/images/to.gif differ diff --git a/app/assets/images/tr.gif b/app/assets/images/tr.gif new file mode 100644 index 00000000..e407d553 Binary files /dev/null and b/app/assets/images/tr.gif differ diff --git a/app/assets/images/tt.gif b/app/assets/images/tt.gif new file mode 100644 index 00000000..47d3b806 Binary files /dev/null and b/app/assets/images/tt.gif differ diff --git a/app/assets/images/tv.gif b/app/assets/images/tv.gif new file mode 100644 index 00000000..3c338277 Binary files /dev/null and b/app/assets/images/tv.gif differ diff --git a/app/assets/images/tw.gif b/app/assets/images/tw.gif new file mode 100644 index 00000000..cacfd9b7 Binary files /dev/null and b/app/assets/images/tw.gif differ diff --git a/app/assets/images/tz.gif b/app/assets/images/tz.gif new file mode 100644 index 00000000..82b52ca2 Binary files /dev/null and b/app/assets/images/tz.gif differ diff --git a/app/assets/images/ua.gif b/app/assets/images/ua.gif new file mode 100644 index 00000000..5d6cd83f Binary files /dev/null and b/app/assets/images/ua.gif differ diff --git a/app/assets/images/ug.gif b/app/assets/images/ug.gif new file mode 100644 index 00000000..58b731ad Binary files /dev/null and b/app/assets/images/ug.gif differ diff --git a/app/assets/images/um.gif b/app/assets/images/um.gif new file mode 100644 index 00000000..3b4c8483 Binary files /dev/null and b/app/assets/images/um.gif differ diff --git a/app/assets/images/us.gif b/app/assets/images/us.gif new file mode 100644 index 00000000..8f198f73 Binary files /dev/null and b/app/assets/images/us.gif differ diff --git a/app/assets/images/uy.gif b/app/assets/images/uy.gif new file mode 100644 index 00000000..12848c74 Binary files /dev/null and b/app/assets/images/uy.gif differ diff --git a/app/assets/images/uz.gif b/app/assets/images/uz.gif new file mode 100644 index 00000000..dc9daeca Binary files /dev/null and b/app/assets/images/uz.gif differ diff --git a/app/assets/images/va.gif b/app/assets/images/va.gif new file mode 100644 index 00000000..2bd74468 Binary files /dev/null and b/app/assets/images/va.gif differ diff --git a/app/assets/images/vc.gif b/app/assets/images/vc.gif new file mode 100644 index 00000000..48213816 Binary files /dev/null and b/app/assets/images/vc.gif differ diff --git a/app/assets/images/ve.gif b/app/assets/images/ve.gif new file mode 100644 index 00000000..19ce6c14 Binary files /dev/null and b/app/assets/images/ve.gif differ diff --git a/app/assets/images/vg.gif b/app/assets/images/vg.gif new file mode 100644 index 00000000..1fc0f96e Binary files /dev/null and b/app/assets/images/vg.gif differ diff --git a/app/assets/images/vi.gif b/app/assets/images/vi.gif new file mode 100644 index 00000000..66f9e746 Binary files /dev/null and b/app/assets/images/vi.gif differ diff --git a/app/assets/images/vn.gif b/app/assets/images/vn.gif new file mode 100644 index 00000000..f1e20c94 Binary files /dev/null and b/app/assets/images/vn.gif differ diff --git a/app/assets/images/vu.gif b/app/assets/images/vu.gif new file mode 100644 index 00000000..8a8b2b06 Binary files /dev/null and b/app/assets/images/vu.gif differ diff --git a/app/assets/images/wf.gif b/app/assets/images/wf.gif new file mode 100644 index 00000000..eaa954b1 Binary files /dev/null and b/app/assets/images/wf.gif differ diff --git a/app/assets/images/ws.gif b/app/assets/images/ws.gif new file mode 100644 index 00000000..a51f939e Binary files /dev/null and b/app/assets/images/ws.gif differ diff --git a/app/assets/images/ye.gif b/app/assets/images/ye.gif new file mode 100644 index 00000000..7b0183d0 Binary files /dev/null and b/app/assets/images/ye.gif differ diff --git a/app/assets/images/yt.gif b/app/assets/images/yt.gif new file mode 100644 index 00000000..a2267c05 Binary files /dev/null and b/app/assets/images/yt.gif differ diff --git a/app/assets/images/za.gif b/app/assets/images/za.gif new file mode 100644 index 00000000..ede52589 Binary files /dev/null and b/app/assets/images/za.gif differ diff --git a/app/assets/images/zm.gif b/app/assets/images/zm.gif new file mode 100644 index 00000000..b2851d2b Binary files /dev/null and b/app/assets/images/zm.gif differ diff --git a/app/assets/images/zw.gif b/app/assets/images/zw.gif new file mode 100644 index 00000000..02901f62 Binary files /dev/null and b/app/assets/images/zw.gif differ diff --git a/lib/active_admin/globalize3/engine.rb b/lib/active_admin/globalize3/engine.rb index 267b8bd0..04ee875a 100644 --- a/lib/active_admin/globalize3/engine.rb +++ b/lib/active_admin/globalize3/engine.rb @@ -1,3 +1,5 @@ +require 'active_admin/globalize3/filter_empty_translations' + module ActiveAdmin module Globalize3 class Engine < ::Rails::Engine @@ -13,6 +15,14 @@ class Engine < ::Rails::Engine ActiveAdmin.application.register_javascript "active_admin/active_admin_globalize3.js" end + # Register a before_filter in ActionController that will filter out + # empty translations submitted by activeadmin-globalize3. + # See ActiveAdmin::Globalize3::FilterEmptyTranslations#filter_empty_translations + initializer "activeadmin-globalize3.load_helpers" do |app| + ActionController::Base.send :include, ActiveAdmin::Globalize3::FilterEmptyTranslations + ActionController::Base.send :before_filter, :filter_empty_translations, only: [:create, :update] + end + end end end diff --git a/lib/active_admin/globalize3/filter_empty_translations.rb b/lib/active_admin/globalize3/filter_empty_translations.rb new file mode 100644 index 00000000..e240ba50 --- /dev/null +++ b/lib/active_admin/globalize3/filter_empty_translations.rb @@ -0,0 +1,48 @@ +module ActiveAdmin + module Globalize3 + module FilterEmptyTranslations + private + # Activeadmin-globalize3 renders inputs for all translations, + # resulting in many empty translations being created by globalize. + # + # For instance, given the available locales L1, L2 and L2, the + # following params would be submitted on 'create': + # + # { + # : + # MODEL => { + # "translations_attributes" => { + # "0" => { + # "locale"=>"L1", "id" => "", ATTR1 => "", ATTR2 => "", ... + # } + # "1" => { + # "locale"=>"L2", "id" => "", ATTR1 => "", ATTR2 => "", ... + # } + # "2" => { + # "locale"=>"L3", "id" => "", ATTR1 => "", ATTR2 => "", ... + # } + # } + # } + # : + # } + # + # Given these parameters, globalize3 would create a record for every + # possible translation - even empty ones. + # + # This filter removes all empty and unsaved translations from params + # and marks empty and saved translation for deletion. + def filter_empty_translations + model = controller_name.singularize.to_sym + params[model][:translations_attributes].each do |t| + if !(t.last.map { |_, v| v.empty? ? true : false }[2..-1]).include?(false) + if t.last[:id].empty? + params[model][:translations_attributes].delete(t.first) + else + params[model][:translations_attributes][t.first]['_destroy'] = '1' + end + end + end + end + end + end +end diff --git a/lib/active_admin/globalize3/index_table_for_extension.rb b/lib/active_admin/globalize3/index_table_for_extension.rb index 2ebcf88c..407dfcab 100644 --- a/lib/active_admin/globalize3/index_table_for_extension.rb +++ b/lib/active_admin/globalize3/index_table_for_extension.rb @@ -10,6 +10,13 @@ def translation_status end.join(" ").html_safe end end + def translation_status_flags + column I18n.t("active_admin.globalize3.translations") do |obj| + obj.translated_locales.map do |l| + image_tag '%s.gif' % [ l.to_s ] + end.join(" ").html_safe + end + end end end end