tr8n 3.0.5 → 3.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +17 -0
- data/.rvmrc +1 -0
- data/Gemfile +12 -6
- data/Gemfile.lock +143 -60
- data/MIT-LICENSE +20 -0
- data/Rakefile +39 -22
- data/{lib/tasks → app/assets/images/tr8n}/.gitkeep +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/accept.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/action_tab_bkgd.gif +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/action_tab_white_bkgd.gif +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/add.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/arrow_down.gif +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/arrow_down.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/arrow_down_grey.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/arrow_right.gif +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/arrow_up.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/arrow_up_grey.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/bullet_go.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/buttons.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/cancel.png +0 -0
- data/app/assets/images/tr8n/checkmark.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/close.gif +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/cross.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/delete.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/disk.png +0 -0
- data/app/assets/images/tr8n/error.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/examples/context_rules_1.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/examples/context_rules_2.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/examples/date_rules_1.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/examples/date_rules_2.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/examples/date_rules_3.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/examples/gender_rules_1.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/examples/gender_rules_2.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/examples/gender_rules_3.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/examples/language_manager_1.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/examples/list_rules_1.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/examples/list_rules_2.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/examples/list_rules_3.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/examples/numeric_rules_1.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/examples/numeric_rules_2.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/examples/numeric_rules_3.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/examples/numeric_rules_4.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/exclamation.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/eye.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/eye_not.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/facebook/connect_light_medium_long.gif +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/field_sprite.gif +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/find.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ab.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ach.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/af.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ak.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/am.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/an.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ar-AE.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ar-BH.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ar-DZ.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ar-EG.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ar-IQ.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ar-JO.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ar-KW.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ar-LB.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ar-LY.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ar-MA.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ar-OM.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ar-QA.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ar-SA.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ar-SY.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ar-TN.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ar-YE.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ar.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/as.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ast.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ay.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/az.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ba.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/be.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/bg.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/bh.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/bn.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/bo.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/br.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/bs.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ca.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/cb.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ce.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ch.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ck-US.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/co.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/cr.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/cs.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/cv.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/cy.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/da.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/de-AT.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/de-CH.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/de-DE.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/de-LI.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/de-LU.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/de.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/el.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/en-AU.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/en-BZ.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/en-CA.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/en-IE.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/en-JM.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/en-NZ.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/en-PH.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/en-PI.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/en-SC.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/en-UK.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/en-US.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/en-ZA.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/en-ZW.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/en.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/eo.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/es-AR.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/es-BO.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/es-CL.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/es-CO.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/es-CR.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/es-DO.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/es-EC.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/es-ES.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/es-GT.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/es-HN.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/es-MX.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/es-NI.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/es-PA.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/es-PE.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/es-PR.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/es-PY.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/es-SV.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/es-UY.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/es-VE.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/es.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/et.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/eu.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/fa-IR.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/fa.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/fb-LT.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/fi.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/fj.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/fo.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/fr-BE.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/fr-CA.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/fr-CH.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/fr-FR.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/fr-LU.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/fr-MC.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/fr.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/fur.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/fy.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ga.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/gd.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/gl.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/gn.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/gu.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/gv.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ha.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/haw.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/he.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/hi.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/hr.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/hsb.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ht.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/hu.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/hy.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ia.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/id.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ie.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ig.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/is.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/it-CH.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/it.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/iu.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ja.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/jw.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ka.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/kk.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/kl.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/km.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/kn.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ko-KP.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ko-KR.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ko.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/kok.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ks.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ku.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ky.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/la.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/lb.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/lg.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/li-NL.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ln.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/lo.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/lt.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/lv.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/md.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/mfe.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/mg.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/mh.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/mi.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/mk.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ml.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/mn.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/mo.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/mr.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ms.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/mt.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/my.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/na.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/nb.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/nd.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ne.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ng.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/nl-NE.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/nl.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/nn.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/no.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/nr.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/nso.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/nv.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ny.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/nyn.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/oc.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/om.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/or.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/pa-IN.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/pa-PK.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/pa.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/pf.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/pl.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/pp.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ps.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/pt-BZ.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/pt.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/qu-PE.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/qu.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/rj.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/rm.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/rn.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ro-MD.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ro-RO.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ro.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ru.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/rw.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/sa.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/sc.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/sd.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/se-NO.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/sg.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/sh.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/si.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/sk.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/sl.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/sm.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/sn.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/so.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/sq.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/sr-me.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/sr.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ss.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/st.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/su.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/sv-FI.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/sv-SE.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/sv.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/sw.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ta.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/te.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/tg.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/th.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ti.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/tig.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/tk.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/tl.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/tlh.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/tn.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/to.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/tr.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ts.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/tt.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/tw.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ug.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/uk.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ur.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/uz.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/ve.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/vi.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/vo.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/wa.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/wo.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/xh.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/yi.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/yo.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/zh-CN.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/zh-HK.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/zh-SG.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/zh-TW.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/zh.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/flags/zu.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/globe.gif +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/help.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/help/color_coding.png +0 -0
- data/app/assets/images/tr8n/help/cousin.png +0 -0
- data/app/assets/images/tr8n/help/half-cousin.png +0 -0
- data/app/assets/images/tr8n/help/hindu_family_tree.jpg +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/help/language_selector.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/help/language_selector_default.png +0 -0
- data/app/assets/images/tr8n/help/language_selector_v2.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/help/languages_disabled.png +0 -0
- data/app/assets/images/tr8n/help/path.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/help/translator.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/help2.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/information.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/keyboard.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/language_selector_arrow.gif +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/left_quote.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/lightning.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/loading.gif +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/loading2.gif +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/loading3.gif +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/loading_large.gif +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/lock.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/lock_add.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/lock_delete.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/lock_open.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/medals/bronze.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/medals/gold.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/medals/runner.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/medals/silver.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/pencil.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/photo_silhouette.gif +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/plus.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/random.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/random2.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/rating_star0.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/rating_star05.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/rating_star1.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/rating_stars.gif +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/rating_stars.psd +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/reply.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/right_quote.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/rotating_world.gif +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/script.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/script_edit.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/script_gear.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/site_sprite.gif +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/spinner.gif +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/star.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/table_edit.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/table_gear.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/table_multiple.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/thumb_down.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/thumb_up.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/toolbar_bg.gif +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/top_left_stem.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/top_right_stem.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/tr8n_loading.gif +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/tr8n_logo.jpg +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/tr8n_logo.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/tr8n_logo2.gif +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/tr8n_logo2.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/tr8n_logo_wiki.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/tr8n_logo_wiki2.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/translate_icn.gif +0 -0
- data/app/assets/images/tr8n/warning.png +0 -0
- data/{public/tr8n/images → app/assets/images/tr8n}/wizard.png +0 -0
- data/app/assets/javascripts/tr8n/application.js +7 -0
- data/{public/tr8n/javascripts → app/assets/javascripts/tr8n}/jsDraw2D.js +0 -0
- data/{public/tr8n/javascripts → app/assets/javascripts/tr8n}/keyboard_1_36.js +1 -1
- data/{public/tr8n/javascripts → app/assets/javascripts/tr8n}/keyboard_1_44.js +0 -0
- data/{public/tr8n/javascripts → app/assets/javascripts/tr8n}/shortcut.js +0 -0
- data/{public/tr8n/javascripts → app/assets/javascripts/tr8n}/tr8n.js +18 -30
- data/{public/tr8n/javascripts → app/assets/javascripts/tr8n}/tr8n_client_sdk.js +0 -0
- data/{public/tr8n/javascripts → app/assets/javascripts/tr8n}/tr8n_prototype_effects.js +1 -1
- data/app/assets/stylesheets/tr8n/application.css +6 -0
- data/{public/tr8n/stylesheets → app/assets/stylesheets/tr8n}/keyboard_1_36.css +0 -0
- data/{public/tr8n/stylesheets → app/assets/stylesheets/tr8n}/keyboard_1_44.css +0 -0
- data/{public/tr8n/stylesheets/tr8n.css → app/assets/stylesheets/tr8n/tr8n.css.scss} +272 -37
- data/app/controllers/{application_controller.rb → tr8n/application_controller.rb} +3 -4
- data/app/controllers/tr8n/awards_controller.rb +2 -4
- data/app/controllers/tr8n/dashboard_controller.rb +6 -5
- data/app/controllers/tr8n/forum_controller.rb +2 -2
- data/app/controllers/tr8n/glossary_controller.rb +3 -9
- data/app/controllers/tr8n/home_controller.rb +1 -1
- data/app/controllers/tr8n/language_controller.rb +276 -270
- data/app/controllers/tr8n/phrases_controller.rb +9 -19
- data/app/controllers/tr8n/translations_controller.rb +1 -2
- data/app/helpers/tr8n/admin/base_helper.rb +1 -1
- data/app/helpers/{application_helper.rb → tr8n/application_helper.rb} +3 -2
- data/app/helpers/tr8n/base_helper.rb +5 -1
- data/app/models/tr8n/language.rb +1 -0
- data/app/models/tr8n/language_case_filter.rb +1 -1
- data/app/models/tr8n/language_case_rule_filter.rb +1 -1
- data/app/models/tr8n/language_case_value_map_filter.rb +4 -0
- data/app/models/tr8n/language_forum_abuse_report_filter.rb +4 -0
- data/app/models/tr8n/language_forum_message_filter.rb +4 -0
- data/app/models/tr8n/language_forum_topic_filter.rb +4 -0
- data/app/models/tr8n/language_metric.rb +1 -1
- data/app/models/tr8n/language_metric_filter.rb +4 -0
- data/app/models/tr8n/language_rule_filter.rb +7 -3
- data/app/models/tr8n/language_user_filter.rb +4 -4
- data/app/models/tr8n/translation.rb +12 -33
- data/app/models/tr8n/translation_filter.rb +4 -4
- data/app/models/tr8n/translation_key.rb +32 -55
- data/app/models/tr8n/translation_key_comment_filter.rb +1 -1
- data/app/models/tr8n/translation_key_lock_filter.rb +1 -1
- data/app/models/tr8n/translation_key_source_filter.rb +1 -1
- data/app/models/tr8n/translation_source_filter.rb +1 -1
- data/app/models/tr8n/translation_vote_filter.rb +4 -4
- data/app/models/tr8n/translator_filter.rb +4 -0
- data/app/models/tr8n/translator_following_filter.rb +4 -4
- data/app/models/tr8n/translator_log_filter.rb +4 -4
- data/app/models/tr8n/translator_metric_filter.rb +4 -4
- data/app/models/tr8n/translator_report_filter.rb +1 -1
- data/app/views/layouts/tr8n/application.html.erb +14 -0
- data/app/views/tr8n/admin/clientsdk/lb_samples.html.erb +31 -29
- data/app/views/tr8n/admin/common/_lightbox_buttons.html.erb +1 -1
- data/app/views/tr8n/admin/domain/index.html.erb +1 -1
- data/app/views/tr8n/admin/domain/{key_sources.rhtml → key_sources.html.erb} +1 -1
- data/app/views/tr8n/admin/domain/lb_caller.html.erb +39 -35
- data/app/views/tr8n/admin/domain/sources.html.erb +1 -1
- data/app/views/tr8n/admin/glossary/lb_update.html.erb +33 -26
- data/app/views/tr8n/admin/language/index.html.erb +3 -3
- data/app/views/tr8n/admin/language/lb_update.html.erb +86 -76
- data/app/views/tr8n/admin/language/lb_value_map.html.erb +45 -41
- data/app/views/tr8n/admin/language/{metrics.rhtml → metrics.html.erb} +0 -0
- data/app/views/tr8n/admin/language/{users.rhtml → users.html.erb} +0 -0
- data/app/views/tr8n/admin/translation/{votes.rhtml → votes.html.erb} +0 -0
- data/app/views/tr8n/admin/translation_key/comments.html.erb +1 -1
- data/app/views/tr8n/admin/translation_key/index.html.erb +1 -1
- data/app/views/tr8n/admin/translation_key/lb_merge.html.erb +15 -3
- data/app/views/tr8n/admin/translation_key/lb_update.html.erb +54 -44
- data/app/views/tr8n/admin/translation_key/locks.html.erb +1 -1
- data/app/views/tr8n/admin/translator/lb_register.html.erb +27 -18
- data/app/views/tr8n/awards/_list.html.erb +11 -11
- data/app/views/tr8n/awards/index.html.erb +1 -1
- data/app/views/tr8n/common/_flashes.html.erb +58 -16
- data/app/views/tr8n/common/_language_selector.html.erb +10 -6
- data/app/views/tr8n/common/_paginator.html.erb +8 -2
- data/app/views/tr8n/common/_scripts.html.erb +6 -5
- data/app/views/tr8n/common/_splash_screen.html.erb +2 -2
- data/app/views/tr8n/common/_translation_votes.html.erb +5 -5
- data/app/views/tr8n/dashboard/_forum.html.erb +13 -11
- data/app/views/tr8n/dashboard/_language_metric.html.erb +1 -1
- data/app/views/tr8n/dashboard/_translations.html.erb +1 -10
- data/app/views/tr8n/dashboard/_translator_metric.html.erb +1 -1
- data/app/views/tr8n/dashboard/_votes.html.erb +4 -13
- data/app/views/tr8n/dashboard/{index.rhtml → index.html.erb} +3 -3
- data/app/views/tr8n/forum/_messages.html.erb +2 -9
- data/app/views/tr8n/forum/_new_message.html.erb +1 -1
- data/app/views/tr8n/forum/_new_topic.html.erb +1 -1
- data/app/views/tr8n/forum/index.html.erb +3 -10
- data/app/views/tr8n/forum/topic.html.erb +2 -2
- data/app/views/tr8n/glossary/index.html.erb +2 -2
- data/app/views/tr8n/help/_footer.html.erb +4 -0
- data/app/views/tr8n/help/_header.html.erb +106 -0
- data/app/views/tr8n/help/_navigation.html.erb +80 -116
- data/app/views/tr8n/help/advanced_tools.html.erb +13 -0
- data/app/views/tr8n/help/awards.html.erb +8 -8
- data/app/views/tr8n/help/creating_translations.html.erb +19 -9
- data/app/views/tr8n/help/dashboard.html.erb +34 -7
- data/app/views/tr8n/help/discussions.html.erb +8 -8
- data/app/views/tr8n/help/help.html.erb +14 -0
- data/app/views/tr8n/help/index.html.erb +15 -10
- data/app/views/tr8n/help/inline_translator.html.erb +59 -0
- data/app/views/tr8n/help/language_selector.html.erb +46 -6
- data/app/views/tr8n/help/management.html.erb +42 -0
- data/app/views/tr8n/help/phrases.html.erb +12 -13
- data/app/views/tr8n/help/{translation_rank.html.erb → ranks.html.erb} +20 -10
- data/app/views/tr8n/help/relationships.html.erb +14 -0
- data/app/views/tr8n/help/site_map.html.erb +18 -11
- data/app/views/tr8n/help/translations.html.erb +8 -8
- data/app/views/tr8n/help/voting_on_translations.html.erb +8 -8
- data/app/views/tr8n/home/credits.html.erb +1 -2
- data/app/views/tr8n/home/index.html.erb +43 -31
- data/app/views/tr8n/language/_basic_info.html.erb +1 -1
- data/app/views/tr8n/language/_edit_language_case_rules.html.erb +7 -7
- data/app/views/tr8n/language/_edit_language_cases.html.erb +2 -2
- data/app/views/tr8n/language/_edit_rules.html.erb +2 -2
- data/app/views/tr8n/language/_grammar.html.erb +1 -1
- data/app/views/tr8n/language/_header.html.erb +3 -3
- data/app/views/tr8n/language/_language_cases.html.erb +2 -2
- data/app/views/tr8n/language/_lists.html.erb +3 -3
- data/app/views/tr8n/language/_prohibited_words.html.erb +1 -1
- data/app/views/tr8n/language/_select.html.erb +106 -0
- data/app/views/tr8n/language/_translator_header.html.erb +2 -2
- data/app/views/tr8n/language/_translator_submit.html.erb +2 -2
- data/app/views/tr8n/language/lb_language_case_rule.html.erb +45 -39
- data/app/views/tr8n/language/select.html.erb +3 -3
- data/app/views/tr8n/language/translator.html.erb +2 -2
- data/app/views/tr8n/phrases/_breadcrumb.html.erb +1 -1
- data/app/views/tr8n/phrases/_comments_module.html.erb +19 -26
- data/app/views/tr8n/phrases/{_dictionary.rhtml → _dictionary.html.erb} +0 -0
- data/app/views/tr8n/phrases/_header.html.erb +5 -5
- data/app/views/tr8n/phrases/_new_comment.html.erb +1 -1
- data/app/views/tr8n/phrases/_permutations_module.html.erb +2 -2
- data/app/views/tr8n/phrases/_tokens.html.erb +1 -1
- data/app/views/tr8n/phrases/_toolbar.html.erb +10 -10
- data/app/views/tr8n/phrases/_translation_module.html.erb +4 -4
- data/app/views/tr8n/phrases/_translations_module.html.erb +2 -2
- data/app/views/tr8n/phrases/index.html.erb +4 -4
- data/app/views/tr8n/phrases/lb_sources.html.erb +8 -12
- data/app/views/tr8n/phrases/map.html.erb +1 -1
- data/app/views/tr8n/translations/_translation.html.erb +10 -10
- data/app/views/tr8n/translations/index.html.erb +2 -2
- data/app/views/tr8n/translator/_basic_info.html.erb +1 -1
- data/app/views/tr8n/translator/_header.html.erb +3 -3
- data/app/views/tr8n/translator/_header_key_report.html.erb +1 -1
- data/app/views/tr8n/translator/lb_report.html.erb +82 -73
- data/config/routes.rb +8 -8
- data/lib/tasks/tr8n_tasks.rake +0 -11
- data/lib/tr8n.rb +3 -1
- data/lib/tr8n/active_dumper.rb +19 -17
- data/lib/tr8n/cache.rb +27 -25
- data/lib/tr8n/config.rb +558 -556
- data/lib/tr8n/dictionary.rb +21 -19
- data/lib/tr8n/engine.rb +24 -25
- data/lib/tr8n/exception.rb +4 -2
- data/lib/tr8n/extender.rb +11 -9
- data/lib/tr8n/extensions/action_controller_extension.rb +158 -0
- data/lib/tr8n/extensions/action_view_extension.rb +395 -0
- data/lib/{core_ext/array.rb → tr8n/extensions/array_extension.rb} +0 -0
- data/lib/{core_ext/date.rb → tr8n/extensions/date_extension.rb} +0 -0
- data/lib/{core_ext/fixnum.rb → tr8n/extensions/fixnum_extension.rb} +0 -0
- data/lib/{core_ext/hash.rb → tr8n/extensions/hash_extension.rb} +0 -0
- data/lib/{core_ext/string.rb → tr8n/extensions/string_extension.rb} +0 -0
- data/lib/{core_ext/time.rb → tr8n/extensions/time_extension.rb} +0 -0
- data/lib/tr8n/ip_address.rb +26 -24
- data/lib/tr8n/key_registration_exception.rb +3 -1
- data/lib/tr8n/keyboard_mapping.rb +147 -145
- data/lib/tr8n/logger.rb +30 -28
- data/lib/{application_controller.rb → tr8n/railtie.rb} +28 -10
- data/lib/tr8n/site_map.rb +48 -46
- data/lib/tr8n/site_map_section.rb +69 -67
- data/lib/tr8n/token.rb +330 -328
- data/lib/tr8n/token_exception.rb +3 -2
- data/lib/tr8n/tokenized_label.rb +90 -88
- data/lib/tr8n/version.rb +3 -0
- data/script/rails +3 -3
- data/test/dummy/.sass-cache/32be4db30d38349a3a6e662df9bb5599dc8033b9/actions.css.scssc +0 -0
- data/test/dummy/.sass-cache/32be4db30d38349a3a6e662df9bb5599dc8033b9/buttons.css.scssc +0 -0
- data/test/dummy/.sass-cache/32be4db30d38349a3a6e662df9bb5599dc8033b9/calendar.css.scssc +0 -0
- data/test/dummy/.sass-cache/32be4db30d38349a3a6e662df9bb5599dc8033b9/exporter.css.scssc +0 -0
- data/test/dummy/.sass-cache/32be4db30d38349a3a6e662df9bb5599dc8033b9/filter.css.scssc +0 -0
- data/test/dummy/.sass-cache/32be4db30d38349a3a6e662df9bb5599dc8033b9/results.css.scssc +0 -0
- data/test/dummy/.sass-cache/3d45bab40fcae805deb2750a9342f5b355a9f2bf/components.css.scssc +0 -0
- data/test/dummy/.sass-cache/3d45bab40fcae805deb2750a9342f5b355a9f2bf/layout.css.scssc +0 -0
- data/test/dummy/.sass-cache/50f723c1dd802042d0091035528d53e6d5bc5b50/tr8n.css.scssc +0 -0
- data/test/dummy/.sass-cache/bce64928c8e2edcba72a647a44f05af1ff119c5d/actions.css.scssc +0 -0
- data/test/dummy/.sass-cache/bce64928c8e2edcba72a647a44f05af1ff119c5d/buttons.css.scssc +0 -0
- data/test/dummy/.sass-cache/bce64928c8e2edcba72a647a44f05af1ff119c5d/calendar.css.scssc +0 -0
- data/test/dummy/.sass-cache/bce64928c8e2edcba72a647a44f05af1ff119c5d/exporter.css.scssc +0 -0
- data/test/dummy/.sass-cache/bce64928c8e2edcba72a647a44f05af1ff119c5d/filter.css.scssc +0 -0
- data/test/dummy/.sass-cache/bce64928c8e2edcba72a647a44f05af1ff119c5d/results.css.scssc +0 -0
- data/test/dummy/Rakefile +7 -0
- data/test/dummy/app/assets/javascripts/application.js +7 -0
- data/test/dummy/app/assets/stylesheets/admin.css +200 -0
- data/test/dummy/app/assets/stylesheets/application.css +47 -0
- data/{public/tr8n/stylesheets/components.css → test/dummy/app/assets/stylesheets/components.css.scss} +5 -2
- data/test/dummy/app/assets/stylesheets/keyboard.css +147 -0
- data/{public/tr8n/stylesheets/layout.css → test/dummy/app/assets/stylesheets/layout.css.scss} +27 -3
- data/test/dummy/app/controllers/admin/admins_controller.rb +7 -0
- data/test/dummy/app/controllers/admin/base_controller.rb +12 -0
- data/test/dummy/app/controllers/admin/users_controller.rb +19 -0
- data/test/dummy/app/controllers/application_controller.rb +26 -0
- data/test/dummy/app/controllers/demo_controller.rb +7 -0
- data/test/dummy/app/controllers/login_controller.rb +58 -0
- data/test/dummy/app/helpers/application_helper.rb +9 -0
- data/test/dummy/app/helpers/home_helper.rb +2 -0
- data/{public/favicon.ico → test/dummy/app/mailers/.gitkeep} +0 -0
- data/test/dummy/app/models/.gitkeep +0 -0
- data/test/dummy/app/models/admin.rb +4 -0
- data/test/dummy/app/models/admin_filter.rb +9 -0
- data/test/dummy/app/models/user.rb +31 -0
- data/test/dummy/app/views/admin/admins/index.html.erb +7 -0
- data/test/dummy/app/views/admin/users/index.html.erb +10 -0
- data/test/dummy/app/views/demo/index.rhtml +108 -0
- data/test/dummy/app/views/demo/tokens.rhtml +35 -0
- data/test/dummy/app/views/layouts/_flashes.html.erb +86 -0
- data/test/dummy/app/views/layouts/_footer.html.erb +17 -0
- data/test/dummy/app/views/layouts/_header.html.erb +23 -0
- data/test/dummy/app/views/layouts/admin.html.erb +94 -0
- data/test/dummy/app/views/layouts/application.html.erb +25 -0
- data/test/dummy/app/views/login/index.html.erb +32 -0
- data/test/dummy/app/views/login/register.html.erb +61 -0
- data/{config.ru → test/dummy/config.ru} +1 -1
- data/test/dummy/config/application.rb +47 -0
- data/test/dummy/config/boot.rb +10 -0
- data/test/dummy/config/database.yml +25 -0
- data/test/dummy/config/environment.rb +5 -0
- data/{config → test/dummy/config}/environments/development.rb +8 -3
- data/test/dummy/config/environments/production.rb +60 -0
- data/{config → test/dummy/config}/environments/test.rb +9 -2
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/inflections.rb +10 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/secret_token.rb +7 -0
- data/test/dummy/config/initializers/session_store.rb +8 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +5 -0
- data/test/dummy/config/routes.rb +16 -0
- data/test/dummy/config/tr8n/config.yml +247 -0
- data/test/dummy/config/tr8n/data/ip_locations.csv +93460 -0
- data/test/dummy/config/tr8n/rules/default_cases.yml +141 -0
- data/test/dummy/config/tr8n/rules/default_date_rules.yml +20 -0
- data/test/dummy/config/tr8n/rules/default_gender_list_rules.yml +82 -0
- data/test/dummy/config/tr8n/rules/default_gender_rules.yml +20 -0
- data/test/dummy/config/tr8n/rules/default_list_rules.yml +19 -0
- data/test/dummy/config/tr8n/rules/default_numeric_rules.yml +42 -0
- data/test/dummy/config/tr8n/rules/default_value_rules.yml +18 -0
- data/test/dummy/config/tr8n/site/default_glossary.yml +18 -0
- data/test/dummy/config/tr8n/site/default_languages.yml +1591 -0
- data/test/dummy/config/tr8n/site/features.yml +111 -0
- data/test/dummy/config/tr8n/site/shortcuts.yml +55 -0
- data/test/dummy/config/tr8n/site/sitemap.json +42 -0
- data/test/dummy/config/tr8n/tokens/data.yml +19 -0
- data/test/dummy/config/tr8n/tokens/decorations.yml +16 -0
- data/{config → test/dummy/config}/will_filter/config.yml +0 -0
- data/test/dummy/db/migrate/20101207014543_create_users.rb +23 -0
- data/test/dummy/db/migrate/20110113223509_create_admins.rb +15 -0
- data/test/dummy/db/migrate/20110930041143_create_will_filter_filters.rb +15 -0
- data/test/dummy/db/migrate/20110930041150_create_tr8n_tables.rb +350 -0
- data/test/dummy/db/schema.rb +398 -0
- data/test/dummy/lib/assets/.gitkeep +0 -0
- data/test/dummy/log/.gitkeep +0 -0
- data/{public → test/dummy/public}/404.html +0 -0
- data/{public → test/dummy/public}/422.html +0 -0
- data/{public → test/dummy/public}/500.html +0 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/script/rails +6 -0
- data/test/dummy/test/functional/home_controller_test.rb +9 -0
- data/test/dummy/test/unit/helpers/home_helper_test.rb +4 -0
- data/test/integration/navigation_test.rb +10 -0
- data/test/test_helper.rb +7 -10
- data/test/tr8n_test.rb +7 -0
- data/tr8n.gemspec +33 -34
- metadata +772 -536
- data/.project +0 -18
- data/LICENSE +0 -18
- data/VERSION +0 -1
- data/app/views/tr8n/help/basic_information.html.erb +0 -13
- data/app/views/tr8n/help/context_rules.html.erb +0 -13
- data/app/views/tr8n/help/direction.html.erb +0 -13
- data/app/views/tr8n/help/enter_translation.html.erb +0 -13
- data/app/views/tr8n/help/fallback_language.html.erb +0 -13
- data/app/views/tr8n/help/generate_context_rules.html.erb +0 -17
- data/app/views/tr8n/help/inline_translations.html.erb +0 -28
- data/app/views/tr8n/help/language_dashboard.html.erb +0 -21
- data/app/views/tr8n/help/language_phrases.html.erb +0 -17
- data/app/views/tr8n/help/language_statistics.html.erb +0 -13
- data/app/views/tr8n/help/manage.html.erb +0 -13
- data/app/views/tr8n/help/manage_language.html.erb +0 -13
- data/app/views/tr8n/help/native_name.html.erb +0 -13
- data/app/views/tr8n/help/original_phrase.html.erb +0 -13
- data/app/views/tr8n/help/other_languages.html.erb +0 -15
- data/app/views/tr8n/help/other_translatable_resources.html.erb +0 -13
- data/app/views/tr8n/help/phrases_with_translations.html.erb +0 -21
- data/app/views/tr8n/help/phrases_without_translations.html.erb +0 -15
- data/app/views/tr8n/help/prohibited_words.html.erb +0 -13
- data/app/views/tr8n/help/rank.html.erb +0 -13
- data/app/views/tr8n/help/recent_discussions.html.erb +0 -13
- data/app/views/tr8n/help/recent_translation_votes.html.erb +0 -13
- data/app/views/tr8n/help/recent_translations.html.erb +0 -13
- data/app/views/tr8n/help/site_sections.html.erb +0 -13
- data/app/views/tr8n/help/suggested_translation.html.erb +0 -13
- data/app/views/tr8n/help/translating_inline.html.erb +0 -30
- data/app/views/tr8n/help/translation_context_rules.html.erb +0 -16
- data/app/views/tr8n/help/translation_tokens.html.erb +0 -13
- data/app/views/tr8n/help/translation_tools.html.erb +0 -13
- data/app/views/tr8n/help/user_rank.html.erb +0 -13
- data/app/views/tr8n/help/using_translation_tools.html.erb +0 -13
- data/app/views/tr8n/help/your_dashboard.html.erb +0 -17
- data/app/views/tr8n/help/your_languages.html.erb +0 -19
- data/app/views/tr8n/help/your_translations.html.erb +0 -17
- data/config/application.rb +0 -65
- data/config/boot.rb +0 -6
- data/config/database.yml +0 -13
- data/config/environment.rb +0 -46
- data/db/extras/20100511185330_create_test_users.rb +0 -43
- data/db/migrate/20090730070119_create_will_filter_tables.rb +0 -19
- data/db/seeds.rb +0 -7
- data/lib/application_helper.rb +0 -390
- data/lib/tr8n/controller_methods.rb +0 -156
- data/public/robots.txt +0 -5
- data/public/tr8n/images/flags/.DS_Store +0 -0
- data/rails/init.rb +0 -53
- data/test/performance/browsing_test.rb +0 -9
@@ -28,23 +28,20 @@ class Tr8n::PhrasesController < Tr8n::BaseController
|
|
28
28
|
before_filter :init_sitemap_section, :except => [:translate, :vote]
|
29
29
|
|
30
30
|
def index
|
31
|
-
|
31
|
+
@translation_keys = Tr8n::TranslationKey.for_params(params)
|
32
32
|
|
33
33
|
unless params[:section_key].blank?
|
34
34
|
source_names = sitemap_sources_for(@section_key)
|
35
|
-
|
36
|
-
source_ids = sources.collect{|source| source.id}
|
35
|
+
source_ids = Tr8n::TranslationSource.where("source in (?)", source_names).collect{|source| source.id}
|
37
36
|
|
38
37
|
if source_ids.empty?
|
39
|
-
|
38
|
+
@translation_keys = @translation_keys.where("1=2")
|
40
39
|
else
|
41
|
-
|
42
|
-
conditions[0] << "(id in (select distinct(translation_key_id) from tr8n_translation_key_sources where translation_source_id in (?)))"
|
43
|
-
conditions << source_ids.uniq
|
40
|
+
@translation_keys = @translation_keys.where("(id in (select distinct(translation_key_id) from tr8n_translation_key_sources where translation_source_id in (?)))", source_ids.uniq)
|
44
41
|
end
|
45
42
|
end
|
46
43
|
|
47
|
-
@translation_keys =
|
44
|
+
@translation_keys = @translation_keys.order("label asc").page(page).per(per_page)
|
48
45
|
end
|
49
46
|
|
50
47
|
def view
|
@@ -62,17 +59,10 @@ class Tr8n::PhrasesController < Tr8n::BaseController
|
|
62
59
|
@translation = Tr8n::Translation.new(:translation_key => @translation_key, :language => tr8n_current_language, :translator => tr8n_current_translator)
|
63
60
|
@rules = {}
|
64
61
|
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
conditions << tr8n_current_language.id
|
70
|
-
conditions << @translation_key.id
|
71
|
-
|
72
|
-
@translations = Tr8n::Translation.find(:all, :conditions => conditions, :order => "rank desc, created_at desc")
|
73
|
-
@comments = Tr8n::TranslationKeyComment.paginate(:page => page, :per_page => per_page,
|
74
|
-
:conditions => ["language_id = ? and translation_key_id = ?", tr8n_current_language.id, @translation_key.id],
|
75
|
-
:order => "created_at desc")
|
62
|
+
@translations = Tr8n::Translation.for_params(params)
|
63
|
+
@translations = @translations.where("tr8n_translations.language_id = ? and tr8n_translations.translation_key_id = ?", tr8n_current_language.id, @translation_key.id)
|
64
|
+
@translations = @translations.order("rank desc, created_at desc")
|
65
|
+
@comments = Tr8n::TranslationKeyComment.where("language_id = ? and translation_key_id = ?", tr8n_current_language.id, @translation_key.id).order("created_at desc").page(page).per(per_page)
|
76
66
|
|
77
67
|
@grouping = {}
|
78
68
|
if params[:grouped_by] != "nothing"
|
@@ -119,8 +119,7 @@ class Tr8n::TranslationsController < Tr8n::BaseController
|
|
119
119
|
|
120
120
|
# list of translations
|
121
121
|
def index
|
122
|
-
|
123
|
-
@translations = Tr8n::Translation.paginate(:per_page => per_page, :page => page, :conditions => conditions, :order => "created_at desc, rank desc")
|
122
|
+
@translations = Tr8n::Translation.for_params(params).order("created_at desc, rank desc").page(page).per(per_page)
|
124
123
|
end
|
125
124
|
|
126
125
|
# ajax based method for updating individual translations
|
@@ -40,5 +40,9 @@ module Tr8n::BaseHelper
|
|
40
40
|
def trla(label, desc = "", tokens = {}, options = {})
|
41
41
|
tra(label, desc, tokens, options.merge(:skip_decorations => true))
|
42
42
|
end
|
43
|
-
|
43
|
+
|
44
|
+
def tr8n_paginator_tag(results, subject)
|
45
|
+
render :partial => "/tr8n/common/paginator", :locals => {:objects => results, :subject => subject}
|
46
|
+
end
|
47
|
+
|
44
48
|
end
|
data/app/models/tr8n/language.rb
CHANGED
@@ -27,4 +27,8 @@ class Tr8n::LanguageForumAbuseReportFilter < Tr8n::BaseFilter
|
|
27
27
|
[["Tr8n::Language", :language_id], ["Tr8n::LanguageForumMessage", :language_forum_message_id], ["Tr8n::Translator", :translator_id]]
|
28
28
|
end
|
29
29
|
|
30
|
+
def inner_joins
|
31
|
+
[:language, :language_forum_message, :translator]
|
32
|
+
end
|
33
|
+
|
30
34
|
end
|
@@ -47,7 +47,7 @@ class Tr8n::LanguageMetric < ActiveRecord::Base
|
|
47
47
|
|
48
48
|
def self.calculate_language_metrics
|
49
49
|
last_daily_metric = Tr8n::DailyLanguageMetric.find(:first, :conditions => "metric_date is not null", :order => "metric_date desc")
|
50
|
-
metric_date = last_daily_metric.nil? ? Date.new(
|
50
|
+
metric_date = last_daily_metric.nil? ? Date.new(2011, 10, 1) : last_daily_metric.metric_date
|
51
51
|
|
52
52
|
Tr8n::Language.enabled_languages.each do |lang|
|
53
53
|
Tr8n::Logger.debug("Processing #{lang.english_name} language...")
|
@@ -23,9 +23,9 @@
|
|
23
23
|
|
24
24
|
class Tr8n::LanguageRuleFilter < Tr8n::BaseFilter
|
25
25
|
|
26
|
-
def inner_joins
|
27
|
-
|
28
|
-
end
|
26
|
+
# def inner_joins
|
27
|
+
# [["Tr8n::Language", :language_id], ["Tr8n::Translator", :translator_id]]
|
28
|
+
# end
|
29
29
|
|
30
30
|
def definition
|
31
31
|
defs = super
|
@@ -42,4 +42,8 @@ class Tr8n::LanguageRuleFilter < Tr8n::BaseFilter
|
|
42
42
|
return super
|
43
43
|
end
|
44
44
|
|
45
|
+
def inner_joins
|
46
|
+
[:language, :translator]
|
47
|
+
end
|
48
|
+
|
45
49
|
end
|
@@ -23,12 +23,12 @@
|
|
23
23
|
|
24
24
|
class Tr8n::LanguageUserFilter < Tr8n::BaseFilter
|
25
25
|
|
26
|
-
def inner_joins
|
27
|
-
[["Tr8n::Language", :language_id], ["Tr8n::Translator", :translator_id]]
|
28
|
-
end
|
29
|
-
|
30
26
|
def default_filter_if_empty
|
31
27
|
"created_today"
|
32
28
|
end
|
33
29
|
|
30
|
+
def inner_joins
|
31
|
+
[:language, :translator]
|
32
|
+
end
|
33
|
+
|
34
34
|
end
|
@@ -246,54 +246,33 @@ class Tr8n::Translation < ActiveRecord::Base
|
|
246
246
|
["date", "date"]].collect{|option| [option.first.trl("Translation filter group by option"), option.last]}
|
247
247
|
end
|
248
248
|
|
249
|
-
def self.
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
conditions[0] << " and " unless conditions[0].blank?
|
254
|
-
conditions[0] << "label like ?"
|
255
|
-
conditions << "%#{params[:search]}%"
|
256
|
-
end
|
257
|
-
|
249
|
+
def self.for_params(params, language = Tr8n::Config.current_language)
|
250
|
+
results = self.where("language_id = ?", language.id)
|
251
|
+
results = results.where("label like ?", "%#{params[:search]}%") unless params[:search].blank?
|
252
|
+
|
258
253
|
if params[:with_status] == "accepted"
|
259
|
-
|
260
|
-
conditions[0] << " rank >= ? "
|
261
|
-
conditions << Tr8n::Config.translation_threshold
|
254
|
+
results = results.where("rank >= ?", Tr8n::Config.translation_threshold)
|
262
255
|
elsif params[:with_status] == "pending"
|
263
|
-
|
264
|
-
conditions[0] << " rank >= 0 and rank < ? "
|
265
|
-
conditions << Tr8n::Config.translation_threshold
|
256
|
+
results = results.where("rank >= 0 and rank < ?", Tr8n::Config.translation_threshold)
|
266
257
|
elsif params[:with_status] == "rejected"
|
267
|
-
|
268
|
-
conditions[0] << " rank < 0 "
|
258
|
+
results = results.where("rank < 0")
|
269
259
|
end
|
270
260
|
|
271
261
|
if params[:submitted_by] == "me"
|
272
|
-
|
273
|
-
conditions[0] << " translator_id = ? "
|
274
|
-
conditions << Tr8n::Config.current_translator.id
|
262
|
+
results = results.where("translator_id = ?", Tr8n::Config.current_translator.id)
|
275
263
|
end
|
276
264
|
|
277
265
|
if params[:submitted_on] == "today"
|
278
266
|
date = Date.today
|
279
|
-
|
280
|
-
conditions[0] << "created_at >= ? and created_at < ?"
|
281
|
-
conditions << date
|
282
|
-
conditions << (date + 1.day)
|
267
|
+
results = results.where("created_at >= ? and created_at < ?", date, date + 1.day)
|
283
268
|
elsif params[:submitted_on] == "yesterday"
|
284
269
|
date = Date.today - 1.days
|
285
|
-
|
286
|
-
conditions[0] << "created_at >= ? and created_at < ?"
|
287
|
-
conditions << date
|
288
|
-
conditions << (date + 1.day)
|
270
|
+
results = results.where("created_at >= ? and created_at < ?", date, date + 1.day)
|
289
271
|
elsif params[:submitted_on] == "last_week"
|
290
272
|
date = Date.today - 7.days
|
291
|
-
|
292
|
-
conditions[0] << "created_at >= ? and created_at < ?"
|
293
|
-
conditions << date
|
294
|
-
conditions << Date.today
|
273
|
+
results = results.where("created_at >= ? and created_at < ?", date, Date.today)
|
295
274
|
end
|
296
|
-
|
275
|
+
results
|
297
276
|
end
|
298
277
|
|
299
278
|
end
|
@@ -23,12 +23,12 @@
|
|
23
23
|
|
24
24
|
class Tr8n::TranslationFilter < Tr8n::BaseFilter
|
25
25
|
|
26
|
-
def inner_joins
|
27
|
-
[["Tr8n::Language", :language_id], ["Tr8n::TranslationKey", :translation_key_id]]
|
28
|
-
end
|
29
|
-
|
30
26
|
def default_filter_if_empty
|
31
27
|
"created_today"
|
32
28
|
end
|
33
29
|
|
30
|
+
def inner_joins
|
31
|
+
[:language, :translation_key]
|
32
|
+
end
|
33
|
+
|
34
34
|
end
|
@@ -42,11 +42,10 @@ class Tr8n::TranslationKey < ActiveRecord::Base
|
|
42
42
|
alias :comments :translation_key_comments
|
43
43
|
|
44
44
|
def self.find_or_create(label, desc = "", options = {})
|
45
|
-
key = generate_key(label, desc)
|
45
|
+
key = generate_key(label, desc).to_s
|
46
46
|
|
47
|
-
# translation keys don't ever change, so no real reason to invalidate them
|
48
47
|
tkey = Tr8n::Cache.fetch("translation_key_#{key}") do
|
49
|
-
existing_key =
|
48
|
+
existing_key = where(:key => key).first
|
50
49
|
|
51
50
|
unless existing_key
|
52
51
|
if options[:api] and (not Tr8n::Config.api[:allow_key_registration])
|
@@ -63,7 +62,7 @@ class Tr8n::TranslationKey < ActiveRecord::Base
|
|
63
62
|
locale = options[:locale] || Tr8n::Config.block_options[:default_locale] || Tr8n::Config.default_locale
|
64
63
|
|
65
64
|
existing_key ||= begin
|
66
|
-
new_tkey = create(:key => key,
|
65
|
+
new_tkey = create(:key => key.to_s,
|
67
66
|
:label => label,
|
68
67
|
:description => desc,
|
69
68
|
:locale => locale,
|
@@ -81,9 +80,7 @@ class Tr8n::TranslationKey < ActiveRecord::Base
|
|
81
80
|
update_default_locale(existing_key, options)
|
82
81
|
|
83
82
|
# mark each key as verified - but only if caching is enabled
|
84
|
-
if Tr8n::Config.enable_caching?
|
85
|
-
existing_key.update_attributes(:verified_at => Time.now)
|
86
|
-
end
|
83
|
+
existing_key.update_attributes(:verified_at => Time.now) if Tr8n::Config.enable_caching?
|
87
84
|
existing_key
|
88
85
|
end
|
89
86
|
|
@@ -125,15 +122,15 @@ class Tr8n::TranslationKey < ActiveRecord::Base
|
|
125
122
|
end
|
126
123
|
|
127
124
|
def self.generate_key(label, desc = "")
|
128
|
-
|
125
|
+
# TODO: there is something iffy going on with the strings from the hash
|
126
|
+
# without the extra ~ = the strings are not seen in the sqlite database - wtf?
|
127
|
+
"#{Digest::MD5.hexdigest("#{label};;;#{desc}")}~"[0..-2]
|
129
128
|
end
|
130
129
|
|
131
130
|
def reset_key!
|
132
131
|
# remove old key from cache
|
133
132
|
Tr8n::Cache.delete("translation_key_#{key}")
|
134
|
-
|
135
|
-
self.key = self.class.generate_key(label, description)
|
136
|
-
save
|
133
|
+
self.update_attributes(:key => self.class.generate_key(label, description))
|
137
134
|
end
|
138
135
|
|
139
136
|
def language
|
@@ -143,18 +140,18 @@ class Tr8n::TranslationKey < ActiveRecord::Base
|
|
143
140
|
def tokenized_label
|
144
141
|
@tokenized_label ||= Tr8n::TokenizedLabel.new(label)
|
145
142
|
end
|
146
|
-
|
147
|
-
# comments are left for a specific language
|
148
|
-
def comments(language = Tr8n::Config.current_language)
|
149
|
-
Tr8n::TranslationKeyComment.find(:all, :conditions => ["language_id = ? and translation_key_id = ?", language.id, self.id])
|
150
|
-
end
|
151
|
-
|
143
|
+
|
152
144
|
delegate :tokens, :tokens?, :to => :tokenized_label
|
153
145
|
delegate :data_tokens, :data_tokens?, :to => :tokenized_label
|
154
146
|
delegate :decoration_tokens, :decoration_tokens?, :to => :tokenized_label
|
155
147
|
delegate :translation_tokens, :translation_tokens?, :to => :tokenized_label
|
156
148
|
delegate :sanitized_label, :tokenless_label, :suggestion_tokens, :words, :to => :tokenized_label
|
157
149
|
|
150
|
+
# comments are left for a specific language
|
151
|
+
def comments(language = Tr8n::Config.current_language)
|
152
|
+
Tr8n::TranslationKeyComment.where("language_id = ? and translation_key_id = ?", language.id, self.id)
|
153
|
+
end
|
154
|
+
|
158
155
|
# returns only the tokens that depend on one or more rules of the language, if any defined for the language
|
159
156
|
def language_rules_dependant_tokens(language = Tr8n::Config.current_language)
|
160
157
|
toks = []
|
@@ -182,7 +179,7 @@ class Tr8n::TranslationKey < ActiveRecord::Base
|
|
182
179
|
end
|
183
180
|
|
184
181
|
def glossary
|
185
|
-
@glossary ||= Tr8n::Glossary.
|
182
|
+
@glossary ||= Tr8n::Glossary.where("keyword in (?)", words).order("keyword asc")
|
186
183
|
end
|
187
184
|
|
188
185
|
def glossary?
|
@@ -230,14 +227,9 @@ class Tr8n::TranslationKey < ActiveRecord::Base
|
|
230
227
|
|
231
228
|
# returns all translations for the key, language and minimal rank
|
232
229
|
def translations_for(language, rank = nil)
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
conditions[0] << " and rank >= ?"
|
237
|
-
conditions << rank
|
238
|
-
end
|
239
|
-
|
240
|
-
Tr8n::Translation.find(:all, :conditions => conditions, :order => "rank desc")
|
230
|
+
translations = Tr8n::Translation.where("translation_key_id = ? and language_id = ?", self.id, language.id)
|
231
|
+
translations = translations.where("rank >= ?", rank) if rank
|
232
|
+
translations.order("rank desc")
|
241
233
|
end
|
242
234
|
|
243
235
|
# used by the inline popup dialog, we don't want to show blocked translations
|
@@ -247,7 +239,7 @@ class Tr8n::TranslationKey < ActiveRecord::Base
|
|
247
239
|
|
248
240
|
# returns only the translations that meet the minimum rank
|
249
241
|
def valid_translations_for(language)
|
250
|
-
Tr8n::Cache.fetch("translations_#{language.locale}_#{
|
242
|
+
Tr8n::Cache.fetch("translations_#{language.locale}_#{key}") do
|
251
243
|
translations_for(language, Tr8n::Config.translation_threshold)
|
252
244
|
end
|
253
245
|
end
|
@@ -304,7 +296,7 @@ class Tr8n::TranslationKey < ActiveRecord::Base
|
|
304
296
|
end
|
305
297
|
|
306
298
|
def self.random
|
307
|
-
|
299
|
+
self.limit(1).offset(count-1)
|
308
300
|
end
|
309
301
|
|
310
302
|
# returns back grouped by context - used by API
|
@@ -567,59 +559,44 @@ class Tr8n::TranslationKey < ActiveRecord::Base
|
|
567
559
|
["unlocked only", "unlocked"]]
|
568
560
|
end
|
569
561
|
|
570
|
-
def self.
|
571
|
-
|
562
|
+
def self.for_params(params)
|
563
|
+
results = self.where("tr8n_translation_keys.locale <> ? and (level is null or level <= ?)", Tr8n::Config.current_language.locale, Tr8n::Config.current_translator.level)
|
572
564
|
|
573
565
|
if Tr8n::Config.enable_caching?
|
574
|
-
|
566
|
+
results = results.where("verified_at is not null")
|
575
567
|
end
|
576
568
|
|
577
569
|
unless params[:search].blank?
|
578
|
-
|
579
|
-
conditions << "%#{params[:search]}%"
|
580
|
-
conditions << "%#{params[:search]}%"
|
570
|
+
results = results.where("(tr8n_translation_keys.label like ? or tr8n_translation_keys.description like ?)", "%#{params[:search]}%", "%#{params[:search]}%")
|
581
571
|
end
|
582
572
|
|
583
573
|
# for with and approved, allow user to specify the kinds
|
584
574
|
if params[:phrase_type] == "with"
|
585
|
-
|
586
|
-
conditions << Tr8n::Config.current_language.id
|
575
|
+
results = results.where("tr8n_translation_keys.id in (select tr8n_translations.translation_key_id from tr8n_translations where tr8n_translations.language_id = ?)", Tr8n::Config.current_language.id)
|
587
576
|
|
588
577
|
# if approved, ensure that translation key is locked
|
589
578
|
if params[:phrase_status] == "approved"
|
590
|
-
|
591
|
-
conditions << Tr8n::Config.current_language.id
|
592
|
-
conditions << true
|
579
|
+
results = results.where("tr8n_translation_keys.id in (select tr8n_translation_key_locks.translation_key_id from tr8n_translation_key_locks where tr8n_translation_key_locks.language_id = ? and tr8n_translation_key_locks.locked = ?)", Tr8n::Config.current_language.id, true)
|
593
580
|
|
594
581
|
# if approved, ensure that translation key does not have a lock or unlocked
|
595
582
|
elsif params[:phrase_status] == "pending"
|
596
|
-
|
597
|
-
conditions << Tr8n::Config.current_language.id
|
598
|
-
conditions << true
|
583
|
+
results = results.where("tr8n_translation_keys.id not in (select tr8n_translation_key_locks.translation_key_id from tr8n_translation_key_locks where tr8n_translation_key_locks.language_id = ? and tr8n_translation_key_locks.locked = ?)", Tr8n::Config.current_language.id, true)
|
599
584
|
end
|
600
585
|
|
601
586
|
elsif params[:phrase_type] == "without"
|
602
|
-
|
603
|
-
conditions << Tr8n::Config.current_language.id
|
587
|
+
results = results.where("tr8n_translation_keys.id not in (select tr8n_translations.translation_key_id from tr8n_translations where tr8n_translations.language_id = ?)", Tr8n::Config.current_language.id)
|
604
588
|
|
605
589
|
elsif params[:phrase_type] == "followed"
|
606
|
-
|
607
|
-
|
608
|
-
conditions << Tr8n::Config.current_translator.id
|
609
|
-
conditions << 'Tr8n::TranslationKey'
|
590
|
+
results = results.where("tr8n_translation_keys.id in (select tr8n_translator_following.object_id from tr8n_translator_following where tr8n_translator_following.translator_id = ? and tr8n_translator_following.object_type = ?)", Tr8n::Config.current_translator.id, 'Tr8n::TranslationKey')
|
610
591
|
end
|
611
592
|
|
612
593
|
if params[:phrase_lock] == "locked"
|
613
|
-
|
614
|
-
conditions << Tr8n::Config.current_language.id
|
615
|
-
conditions << true
|
594
|
+
results = results.where("tr8n_translation_keys.id in (select tr8n_translation_key_locks.translation_key_id from tr8n_translation_key_locks where tr8n_translation_key_locks.language_id = ? and tr8n_translation_key_locks.locked = ?)", Tr8n::Config.current_language.id, true)
|
616
595
|
|
617
596
|
elsif params[:phrase_lock] == "unlocked"
|
618
|
-
|
619
|
-
conditions << Tr8n::Config.current_language.id
|
620
|
-
conditions << true
|
597
|
+
results = results.where("tr8n_translation_keys.id not in (select tr8n_translation_key_locks.translation_key_id from tr8n_translation_key_locks where tr8n_translation_key_locks.language_id = ? and tr8n_translation_key_locks.locked = ?)", Tr8n::Config.current_language.id, true)
|
621
598
|
end
|
622
599
|
|
623
|
-
|
600
|
+
results
|
624
601
|
end
|
625
602
|
end
|