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
@@ -1,13 +0,0 @@
|
|
1
|
-
<%= render :partial => "/tr8n/help/navigation" %>
|
2
|
-
|
3
|
-
<div id="tr8n_help_content">
|
4
|
-
|
5
|
-
<h1><%= @page_title %></h1>
|
6
|
-
|
7
|
-
<p>
|
8
|
-
Displays the translation suggested by Google when you are translating a language they support. Click on their suggestion if you like it to insert it into the translation window. You can then save the translation or further edit it.
|
9
|
-
</p>
|
10
|
-
|
11
|
-
</div>
|
12
|
-
|
13
|
-
<%= render :partial => "/tr8n/common/footer" %>
|
@@ -1,30 +0,0 @@
|
|
1
|
-
<%= render :partial => "/tr8n/help/navigation" %>
|
2
|
-
|
3
|
-
<div id="tr8n_help_content">
|
4
|
-
|
5
|
-
<h1><%= @page_title %></h1>
|
6
|
-
|
7
|
-
<p>
|
8
|
-
Use Inline translations to translate phrases while you are using and browsing the site. Use the Enable inline translations link in the <%= tr8n_help_link("language selector") %> to enable inline translations. The link changes to "Disable inline translations" so you can turn it inline translations off when you are done.
|
9
|
-
</p>
|
10
|
-
|
11
|
-
<%= image_tag("/tr8n/images/help/color_coding.png") %>
|
12
|
-
|
13
|
-
<ul>
|
14
|
-
<li>Red - The phrase has not yet been translated for this language</li>
|
15
|
-
<li>Yellow - The phrase has been translated in a <%= tr8n_help_link("fallback language") %></li>
|
16
|
-
<li>Green - The phrase has been translated into this language</li>
|
17
|
-
</ul>
|
18
|
-
|
19
|
-
<p>
|
20
|
-
Right-click (or Control-click on a Mac) on any underlined word to <%= tr8n_help_link("add a translation", { :filename => "enter_translation" }) %> or to <%= tr8n_help_link("view", { :filename => "phrases_with_translations" }) %> and <%= tr8n_help_link("vote", { :filename => "phrases_with_translations" }) %> on existing translations.
|
21
|
-
</p>
|
22
|
-
|
23
|
-
<p>
|
24
|
-
<%= image_tag("/tr8n/images/help.png") %> Click on this icon next to a dropdown menu to translate each item in the menu.
|
25
|
-
</p>
|
26
|
-
|
27
|
-
|
28
|
-
</div>
|
29
|
-
|
30
|
-
<%= render :partial => "/tr8n/common/footer" %>
|
@@ -1,16 +0,0 @@
|
|
1
|
-
<%= render :partial => "/tr8n/help/navigation" %>
|
2
|
-
|
3
|
-
<div id="tr8n_help_content">
|
4
|
-
|
5
|
-
<h1><%= @page_title %></h1>
|
6
|
-
|
7
|
-
<p>
|
8
|
-
Translations for some phrases can depend on the gender of the user viewing the translation and the gender or numerical value of tokens in the phrase. For example, in some languages "Invite Family & Friends to View Your Tree" has two different translations, one if the viewer is male and one if they are female. Tokens are parts of the phrase that are not translated, such as a profile name or a number. The translation for "{actor} tagged {target} in {count} photos" can depend on the gender of the actor and target as well as the number of photos. Tokens themselves are not translated. Geni will automatically replace them with the actual value.
|
9
|
-
</p>
|
10
|
-
<p>
|
11
|
-
If the translation of the phrase depends on any of these factors, click the generate context rules for this phrase link. Select the gender or number for each token that the translation depends on and click the "Continue... " button. This will show you a list of all possible contexts so you can provide an appropriate translation for each.
|
12
|
-
</p>
|
13
|
-
|
14
|
-
</div>
|
15
|
-
|
16
|
-
<%= render :partial => "/tr8n/common/footer" %>
|
@@ -1,13 +0,0 @@
|
|
1
|
-
<%= render :partial => "/tr8n/help/navigation" %>
|
2
|
-
|
3
|
-
<div id="tr8n_help_content">
|
4
|
-
|
5
|
-
<h1><%= @page_title %></h1>
|
6
|
-
|
7
|
-
<p>
|
8
|
-
Tokens are parts of the phrase that are not translated, such as a profile name. Click on a token to add it to your translation. When a user is viewing the phrase, the tokens will automatically be replaced by Geni.
|
9
|
-
</p>
|
10
|
-
|
11
|
-
</div>
|
12
|
-
|
13
|
-
<%= render :partial => "/tr8n/common/footer" %>
|
@@ -1,13 +0,0 @@
|
|
1
|
-
<%= render :partial => "/tr8n/help/navigation" %>
|
2
|
-
|
3
|
-
<div id="tr8n_help_content">
|
4
|
-
|
5
|
-
<h1><%= @page_title %></h1>
|
6
|
-
|
7
|
-
<p>
|
8
|
-
Click Translation Tools to access the complete suite of advanced translation tools, including bulk translation tools, awards, and discussions.
|
9
|
-
</p>
|
10
|
-
|
11
|
-
</div>
|
12
|
-
|
13
|
-
<%= render :partial => "/tr8n/common/footer" %>
|
@@ -1,13 +0,0 @@
|
|
1
|
-
<%= render :partial => "/tr8n/help/navigation" %>
|
2
|
-
|
3
|
-
<div id="tr8n_help_content">
|
4
|
-
|
5
|
-
<h1><%= @page_title %></h1>
|
6
|
-
|
7
|
-
<p>
|
8
|
-
Each translator has a rank of 1 to 5 stars. Their rank is based on the percentage of the translations they've submitted that have been accepted.
|
9
|
-
</p>
|
10
|
-
|
11
|
-
</div>
|
12
|
-
|
13
|
-
<%= render :partial => "/tr8n/common/footer" %>
|
@@ -1,17 +0,0 @@
|
|
1
|
-
<%= render :partial => "/tr8n/help/navigation" %>
|
2
|
-
|
3
|
-
<div id="tr8n_help_content">
|
4
|
-
|
5
|
-
<h1><%= @page_title %></h1>
|
6
|
-
|
7
|
-
<p>
|
8
|
-
Your dashboard focuses on your rankings, translations, and other activity. Your overall rank is based on the percentage of your translations in all languages that have received positive votes. There are three states for each translation you've provided: accepted, pending, and rejected. Accepted means that its rank has meet the necessary threshold to be accepted. Pending means that the translation has not been accepted or rejected. Rejected translations have been voted down by users or reported.
|
9
|
-
</p>
|
10
|
-
|
11
|
-
<p>
|
12
|
-
Note that only the translation with the highest overall rank for that phrase will be used. This means that you can have a translation accepted but not used on the site.
|
13
|
-
</p>
|
14
|
-
|
15
|
-
</div>
|
16
|
-
|
17
|
-
<%= render :partial => "/tr8n/common/footer" %>
|
@@ -1,19 +0,0 @@
|
|
1
|
-
<%= render :partial => "/tr8n/help/navigation" %>
|
2
|
-
|
3
|
-
<div id="tr8n_help_content">
|
4
|
-
|
5
|
-
<h1><%= @page_title %></h1>
|
6
|
-
|
7
|
-
<p>
|
8
|
-
Your languages gives you quick access to the languages you've previously selected. When you first open the language selector, you will notice that English (US) has been added to Your Languages by default. Select a language from the <%= tr8n_help_link("Other Languages") %> list to add it to your languages.
|
9
|
-
</p>
|
10
|
-
|
11
|
-
<p>
|
12
|
-
Your most recently viewed languages will appear at the top of the list. Click on one of your language to select it. The percentage for each language indicates how much of the site has been translated into that language. Use the 'x' icon next to a language to remove it from your list.
|
13
|
-
</p>
|
14
|
-
|
15
|
-
<%= image_tag("/tr8n/images/help/language_selector.png") %>
|
16
|
-
|
17
|
-
</div>
|
18
|
-
|
19
|
-
<%= render :partial => "/tr8n/common/footer" %>
|
@@ -1,17 +0,0 @@
|
|
1
|
-
<%= render :partial => "/tr8n/help/navigation" %>
|
2
|
-
|
3
|
-
<div id="tr8n_help_content">
|
4
|
-
|
5
|
-
<h1><%= @page_title %></h1>
|
6
|
-
|
7
|
-
<p>
|
8
|
-
Your translations shows you the status of each translation you've provided for this language. There are three states for each translation you've provided: accepted, pending, and rejected. Accepted means that its rank has meet the necessary threshold to be accepted. Pending means that the translation has not been accepted or rejected. Rejected translations have been voted down by users or reported.
|
9
|
-
</p>
|
10
|
-
|
11
|
-
<p>
|
12
|
-
Note that only the translation with the highest overall rank for that phrase will be used. This means that you can have a translation accepted but not used on the site.
|
13
|
-
</p>
|
14
|
-
|
15
|
-
</div>
|
16
|
-
|
17
|
-
<%= render :partial => "/tr8n/common/footer" %>
|
data/config/application.rb
DELETED
@@ -1,65 +0,0 @@
|
|
1
|
-
#--
|
2
|
-
# Copyright (c) 2010-2011 Michael Berkovich
|
3
|
-
#
|
4
|
-
# Permission is hereby granted, free of charge, to any person obtaining
|
5
|
-
# a copy of this software and associated documentation files (the
|
6
|
-
# "Software"), to deal in the Software without restriction, including
|
7
|
-
# without limitation the rights to use, copy, modify, merge, publish,
|
8
|
-
# distribute, sublicense, and/or sell copies of the Software, and to
|
9
|
-
# permit persons to whom the Software is furnished to do so, subject to
|
10
|
-
# the following conditions:
|
11
|
-
#
|
12
|
-
# The above copyright notice and this permission notice shall be
|
13
|
-
# included in all copies or substantial portions of the Software.
|
14
|
-
#
|
15
|
-
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
16
|
-
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
17
|
-
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
18
|
-
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
19
|
-
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
20
|
-
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
21
|
-
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
|
-
#++
|
23
|
-
require File.expand_path('../boot', __FILE__)
|
24
|
-
|
25
|
-
require 'rails/all'
|
26
|
-
|
27
|
-
# If you have a Gemfile, require the gems listed there, including any gems
|
28
|
-
# you've limited to :test, :development, or :production.
|
29
|
-
Bundler.require(:default, Rails.env) if defined?(Bundler)
|
30
|
-
|
31
|
-
module Tr8n
|
32
|
-
class Application < Rails::Application
|
33
|
-
# Settings in config/environments/* take precedence over those specified here.
|
34
|
-
# Application configuration should go into files in config/initializers
|
35
|
-
# -- all .rb files in that directory are automatically loaded.
|
36
|
-
|
37
|
-
# Custom directories with classes and modules you want to be autoloadable.
|
38
|
-
# config.autoload_paths += %W(#{config.root}/extras)
|
39
|
-
|
40
|
-
# Only load the plugins named here, in the order given (default is alphabetical).
|
41
|
-
# :all can be used as a placeholder for all plugins not explicitly named.
|
42
|
-
# config.plugins = [ :exception_notification, :ssl_requirement, :all ]
|
43
|
-
|
44
|
-
# Activate observers that should always be running.
|
45
|
-
# config.active_record.observers = :cacher, :garbage_collector, :forum_observer
|
46
|
-
|
47
|
-
# Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
|
48
|
-
# Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
|
49
|
-
# config.time_zone = 'Central Time (US & Canada)'
|
50
|
-
|
51
|
-
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
|
52
|
-
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
|
53
|
-
# config.i18n.default_locale = :de
|
54
|
-
|
55
|
-
# JavaScript files you want as :defaults (application.js is always included).
|
56
|
-
# config.action_view.javascript_expansions[:defaults] = %w(jquery rails)
|
57
|
-
|
58
|
-
# Configure the default encoding used in templates for Ruby 1.9.
|
59
|
-
config.encoding = "utf-8"
|
60
|
-
# Configure sensitive parameters which will be filtered from the log file.
|
61
|
-
config.filter_parameters += [:password]
|
62
|
-
config.secret_token = 'd193e5e7394cf6b5900f7d2870f75fe8fb9f0cc167dbc9754b708f906d5c59ee8e3e9e70b82544e474613ea69e046c7834e00d35c7c9e6cb639d1bd79b32cf3b'
|
63
|
-
config.session_store :cookie_store, :key => '_tr8n_rails3_session'
|
64
|
-
end
|
65
|
-
end
|
data/config/boot.rb
DELETED
data/config/database.yml
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
# SQLite version 3.x
|
2
|
-
# gem install sqlite3-ruby (not necessary on OS X Leopard)
|
3
|
-
development:
|
4
|
-
adapter: sqlite3
|
5
|
-
database: db/development.sqlite3
|
6
|
-
pool: 5
|
7
|
-
timeout: 5000
|
8
|
-
|
9
|
-
test:
|
10
|
-
adapter: sqlite3
|
11
|
-
database: db/test.sqlite3
|
12
|
-
pool: 5
|
13
|
-
timeout: 5000
|
data/config/environment.rb
DELETED
@@ -1,46 +0,0 @@
|
|
1
|
-
#--
|
2
|
-
# Copyright (c) 2010-2011 Michael Berkovich
|
3
|
-
#
|
4
|
-
# Permission is hereby granted, free of charge, to any person obtaining
|
5
|
-
# a copy of this software and associated documentation files (the
|
6
|
-
# "Software"), to deal in the Software without restriction, including
|
7
|
-
# without limitation the rights to use, copy, modify, merge, publish,
|
8
|
-
# distribute, sublicense, and/or sell copies of the Software, and to
|
9
|
-
# permit persons to whom the Software is furnished to do so, subject to
|
10
|
-
# the following conditions:
|
11
|
-
#
|
12
|
-
# The above copyright notice and this permission notice shall be
|
13
|
-
# included in all copies or substantial portions of the Software.
|
14
|
-
#
|
15
|
-
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
16
|
-
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
17
|
-
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
18
|
-
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
19
|
-
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
20
|
-
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
21
|
-
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
|
-
#++
|
23
|
-
|
24
|
-
# Load the rails application
|
25
|
-
require File.expand_path('../application', __FILE__)
|
26
|
-
require 'pp'
|
27
|
-
gem 'will_filter'
|
28
|
-
|
29
|
-
Rails.configuration.after_initialize do
|
30
|
-
|
31
|
-
["../lib/core_ext/**",
|
32
|
-
"../lib/tr8n",
|
33
|
-
"../lib/tr8n/tokens",
|
34
|
-
"../lib",
|
35
|
-
"../app/models/tr8n"].each do |dir|
|
36
|
-
Dir[File.expand_path("#{File.dirname(__FILE__)}/#{dir}/*.rb")].sort.each do |file|
|
37
|
-
require_or_load file
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
Tr8n::Config.models.each do |model|
|
42
|
-
model.extend(Tr8n::ActiveDumper)
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
Tr8n::Application.initialize!
|
@@ -1,43 +0,0 @@
|
|
1
|
-
#--
|
2
|
-
# Copyright (c) 2010 Michael Berkovich, Geni Inc
|
3
|
-
#
|
4
|
-
# Permission is hereby granted, free of charge, to any person obtaining
|
5
|
-
# a copy of this software and associated documentation files (the
|
6
|
-
# "Software"), to deal in the Software without restriction, including
|
7
|
-
# without limitation the rights to use, copy, modify, merge, publish,
|
8
|
-
# distribute, sublicense, and/or sell copies of the Software, and to
|
9
|
-
# permit persons to whom the Software is furnished to do so, subject to
|
10
|
-
# the following conditions:
|
11
|
-
#
|
12
|
-
# The above copyright notice and this permission notice shall be
|
13
|
-
# included in all copies or substantial portions of the Software.
|
14
|
-
#
|
15
|
-
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
16
|
-
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
17
|
-
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
18
|
-
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
19
|
-
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
20
|
-
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
21
|
-
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
|
-
#++
|
23
|
-
|
24
|
-
# Used for testing only
|
25
|
-
class CreateTestUsers < ActiveRecord::Migration
|
26
|
-
def self.up
|
27
|
-
create_table :users do |t|
|
28
|
-
t.string :name
|
29
|
-
t.string :mugshot
|
30
|
-
t.boolean :admin
|
31
|
-
t.boolean :guest
|
32
|
-
t.string :gender
|
33
|
-
t.string :link
|
34
|
-
t.string :locale
|
35
|
-
|
36
|
-
t.timestamps
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
def self.down
|
41
|
-
drop_table :users
|
42
|
-
end
|
43
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
class CreateWillFilterTables < ActiveRecord::Migration
|
2
|
-
def self.up
|
3
|
-
create_table :wf_filters do |t|
|
4
|
-
t.string :type
|
5
|
-
t.string :name
|
6
|
-
t.text :data
|
7
|
-
t.integer :user_id
|
8
|
-
t.string :model_class_name
|
9
|
-
|
10
|
-
t.timestamps
|
11
|
-
end
|
12
|
-
|
13
|
-
add_index :wf_filters, [:user_id]
|
14
|
-
end
|
15
|
-
|
16
|
-
def self.down
|
17
|
-
drop_table :wf_filters
|
18
|
-
end
|
19
|
-
end
|
data/db/seeds.rb
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
# This file should contain all the record creation needed to seed the database with its default values.
|
2
|
-
# The data can then be loaded with the rake db:seed (or created alongside the db with db:setup).
|
3
|
-
#
|
4
|
-
# Examples:
|
5
|
-
#
|
6
|
-
# cities = City.create([{ :name => 'Chicago' }, { :name => 'Copenhagen' }])
|
7
|
-
# Mayor.create(:name => 'Daley', :city => cities.first)
|
data/lib/application_helper.rb
DELETED
@@ -1,390 +0,0 @@
|
|
1
|
-
#--
|
2
|
-
# Copyright (c) 2010-2011 Michael Berkovich
|
3
|
-
#
|
4
|
-
# Permission is hereby granted, free of charge, to any person obtaining
|
5
|
-
# a copy of this software and associated documentation files (the
|
6
|
-
# "Software"), to deal in the Software without restriction, including
|
7
|
-
# without limitation the rights to use, copy, modify, merge, publish,
|
8
|
-
# distribute, sublicense, and/or sell copies of the Software, and to
|
9
|
-
# permit persons to whom the Software is furnished to do so, subject to
|
10
|
-
# the following conditions:
|
11
|
-
#
|
12
|
-
# The above copyright notice and this permission notice shall be
|
13
|
-
# included in all copies or substantial portions of the Software.
|
14
|
-
#
|
15
|
-
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
16
|
-
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
17
|
-
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
18
|
-
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
19
|
-
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
20
|
-
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
21
|
-
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
|
-
#++
|
23
|
-
|
24
|
-
module ApplicationHelper
|
25
|
-
|
26
|
-
# generates translations json for client sdk
|
27
|
-
def tr8n_translations_js_tag(opts = {})
|
28
|
-
html = []
|
29
|
-
html << "<script>"
|
30
|
-
|
31
|
-
var_name = opts[:id] || :tr8n_translations
|
32
|
-
|
33
|
-
source_names = opts[:sources] || [opts[:source]]
|
34
|
-
sources = Tr8n::TranslationSource.find(:all, :conditions => ["source in (?)", source_names])
|
35
|
-
source_ids = sources.collect{|source| source.id}
|
36
|
-
|
37
|
-
if source_ids.empty?
|
38
|
-
conditions = ["1=2"]
|
39
|
-
else
|
40
|
-
conditions = ["(id in (select distinct(translation_key_id) from tr8n_translation_key_sources where translation_source_id in (?)))"]
|
41
|
-
conditions << source_ids.uniq
|
42
|
-
end
|
43
|
-
|
44
|
-
translations = []
|
45
|
-
Tr8n::TranslationKey.find(:all, :conditions => conditions).each_with_index do |tkey, index|
|
46
|
-
trn = tkey.translate(Tr8n::Config.current_language, {}, {:api => true})
|
47
|
-
translations << trn
|
48
|
-
end
|
49
|
-
|
50
|
-
html << "var #{var_name} = #{translations.to_json};"
|
51
|
-
|
52
|
-
html << "</script>"
|
53
|
-
html.join('').html_safe
|
54
|
-
end
|
55
|
-
|
56
|
-
# translation functions
|
57
|
-
def tr(label, desc = "", tokens = {}, options = {})
|
58
|
-
if desc.is_a?(Hash)
|
59
|
-
options = desc
|
60
|
-
tokens = options[:tokens] || {}
|
61
|
-
desc = options[:context] || ""
|
62
|
-
end
|
63
|
-
|
64
|
-
begin
|
65
|
-
url = request.url
|
66
|
-
host = request.env['HTTP_HOST']
|
67
|
-
source = "#{controller.class.name.underscore.gsub("_controller", "")}/#{controller.action_name}"
|
68
|
-
rescue Exception => ex
|
69
|
-
source = self.class.name
|
70
|
-
url = nil
|
71
|
-
host = 'localhost'
|
72
|
-
end
|
73
|
-
|
74
|
-
options.merge!(:source => source) unless options[:source]
|
75
|
-
options.merge!(:caller => caller)
|
76
|
-
options.merge!(:url => url)
|
77
|
-
options.merge!(:host => host)
|
78
|
-
|
79
|
-
# pp [source, options[:source], url]
|
80
|
-
|
81
|
-
unless Tr8n::Config.enabled?
|
82
|
-
return Tr8n::TranslationKey.substitute_tokens(label, tokens, options)
|
83
|
-
end
|
84
|
-
|
85
|
-
Tr8n::Config.current_language.translate(label, desc, tokens, options)
|
86
|
-
end
|
87
|
-
|
88
|
-
# for translating labels
|
89
|
-
def trl(label, desc = "", tokens = {}, options = {})
|
90
|
-
tr(label, desc, tokens, options.merge(:skip_decorations => true))
|
91
|
-
end
|
92
|
-
|
93
|
-
def tr8n_options_for_select(options, selected = nil, description = nil, lang = Tr8n::Config.current_language)
|
94
|
-
options_for_select(options.tro(description), selected)
|
95
|
-
end
|
96
|
-
|
97
|
-
def tr8n_phrases_link_tag(search = "", phrase_type = :without, phrase_status = :any)
|
98
|
-
return unless Tr8n::Config.enabled?
|
99
|
-
return if Tr8n::Config.current_language.default?
|
100
|
-
return unless Tr8n::Config.open_registration_mode? or Tr8n::Config.current_user_is_translator?
|
101
|
-
return unless Tr8n::Config.current_translator.enable_inline_translations?
|
102
|
-
|
103
|
-
link_to(image_tag("/tr8n/images/translate_icn.gif", :style => "vertical-align:middle; border: 0px;", :title => search),
|
104
|
-
:controller => "/tr8n/phrases", :action => :index,
|
105
|
-
:search => search, :phrase_type => phrase_type, :phrase_status => phrase_status).html_safe
|
106
|
-
end
|
107
|
-
|
108
|
-
def tr8n_dir_attribute_tag
|
109
|
-
"dir='<%=Tr8n::Config.current_language.dir%>'".html_safe
|
110
|
-
end
|
111
|
-
|
112
|
-
def tr8n_splash_screen_tag
|
113
|
-
html = "<div id='tr8n_splash_screen' style='display:none'>"
|
114
|
-
html << (render :partial => Tr8n::Config.splash_screen)
|
115
|
-
html << "</div>"
|
116
|
-
html.html_safe
|
117
|
-
end
|
118
|
-
|
119
|
-
def tr8n_language_flag_tag(lang = Tr8n::Config.current_language, opts = {})
|
120
|
-
return "" unless Tr8n::Config.enable_language_flags?
|
121
|
-
html = image_tag("/tr8n/images/flags/#{lang.flag}.png", :style => "vertical-align:middle;", :title => lang.native_name)
|
122
|
-
html << " ".html_safe
|
123
|
-
html.html_safe
|
124
|
-
end
|
125
|
-
|
126
|
-
def tr8n_language_name_tag(lang = Tr8n::Config.current_language, opts = {})
|
127
|
-
show_flag = opts[:flag].nil? ? true : opts[:flag]
|
128
|
-
name_type = opts[:name].nil? ? :full : opts[:name] # :full, :native, :english, :locale
|
129
|
-
linked = opts[:linked].nil? ? true : opts[:linked]
|
130
|
-
|
131
|
-
html = "<span style='white-space: nowrap'>"
|
132
|
-
html << tr8n_language_flag_tag(lang, opts) if show_flag
|
133
|
-
|
134
|
-
name = case name_type
|
135
|
-
when :native then lang.native_name
|
136
|
-
when :english then lang.english_name
|
137
|
-
when :locale then lang.locale
|
138
|
-
else lang.full_name
|
139
|
-
end
|
140
|
-
|
141
|
-
if linked
|
142
|
-
html << link_to(name.html_safe, :controller => "/tr8n/language",
|
143
|
-
:action => :switch, :language_action => :switch_language,
|
144
|
-
:locale => lang.locale,
|
145
|
-
:source_url => opts[:source_url])
|
146
|
-
else
|
147
|
-
html << name
|
148
|
-
end
|
149
|
-
|
150
|
-
html << "</span>"
|
151
|
-
html.html_safe
|
152
|
-
end
|
153
|
-
|
154
|
-
def tr8n_language_selector_tag(opts = {})
|
155
|
-
opts[:style] ||= "color:#1166bb;"
|
156
|
-
opts[:show_arrow] ||= true
|
157
|
-
opts[:arrow_style] ||= "font-size:8px;"
|
158
|
-
render(:partial => '/tr8n/common/language_selector', :locals => {:opts => opts})
|
159
|
-
end
|
160
|
-
|
161
|
-
def tr8n_language_strip_tag(opts = {})
|
162
|
-
opts[:flag] = opts[:flag].nil? ? false : opts[:flag]
|
163
|
-
opts[:name] = opts[:name].nil? ? :native : opts[:name]
|
164
|
-
opts[:linked] = opts[:linked].nil? ? true : opts[:linked]
|
165
|
-
opts[:javascript] = opts[:javascript].nil? ? false : opts[:javascript]
|
166
|
-
|
167
|
-
render(:partial => '/tr8n/common/language_strip', :locals => {:opts => opts})
|
168
|
-
end
|
169
|
-
|
170
|
-
def tr8n_language_table_tag(opts = {})
|
171
|
-
opts[:cols] = opts[:cols].nil? ? 4 : opts[:cols]
|
172
|
-
opts[:col_size] = opts[:col_size].nil? ? "300px" : opts[:col_size]
|
173
|
-
render(:partial => '/tr8n/common/language_table', :locals => {:opts => opts.merge(:name => :english)})
|
174
|
-
end
|
175
|
-
|
176
|
-
def tr8n_translator_login_tag(opts = {})
|
177
|
-
opts[:class] ||= 'tr8n_right_horiz_list'
|
178
|
-
render(:partial => '/tr8n/common/translator_login', :locals => {:opts => opts})
|
179
|
-
end
|
180
|
-
|
181
|
-
def tr8n_flashes_tag(opts = {})
|
182
|
-
render(:partial => '/tr8n/common/flashes', :locals => {:opts => opts})
|
183
|
-
end
|
184
|
-
|
185
|
-
def tr8n_scripts_tag(opts = {})
|
186
|
-
render(:partial => '/tr8n/common/scripts', :locals => {:opts => opts})
|
187
|
-
end
|
188
|
-
|
189
|
-
def tr8n_client_sdk_scripts_tag(opts = {})
|
190
|
-
opts[:default_source] ||= "application"
|
191
|
-
opts[:scheduler_interval] ||= 5000
|
192
|
-
|
193
|
-
opts[:enable_inline_translations] = (Tr8n::Config.current_user_is_translator? and Tr8n::Config.current_translator.enable_inline_translations? and (not Tr8n::Config.current_language.default?))
|
194
|
-
opts[:default_decorations] = Tr8n::Config.default_decoration_tokens
|
195
|
-
opts[:default_tokens] = Tr8n::Config.default_data_tokens
|
196
|
-
opts[:rules] = {
|
197
|
-
:number => Tr8n::Config.rules_engine[:numeric_rule], :gender => Tr8n::Config.rules_engine[:gender_rule],
|
198
|
-
:list => Tr8n::Config.rules_engine[:gender_list_rule], :date => Tr8n::Config.rules_engine[:date_rule]
|
199
|
-
}
|
200
|
-
|
201
|
-
html = [javascript_include_tag("/tr8n/javascripts/tr8n_client_sdk.js")]
|
202
|
-
html << "<script>"
|
203
|
-
html << "function initializeTr8nProxy() {"
|
204
|
-
html << " tr8nProxy = new Tr8n.Proxy(#{opts.to_json});"
|
205
|
-
# html << " Tr8n.Utils.addEvent(window, 'load', function() {"
|
206
|
-
# html << " tr8nProxy = new Tr8n.Proxy(#{opts.to_json});"
|
207
|
-
# html << " });"
|
208
|
-
html << "}"
|
209
|
-
html << "initializeTr8nProxy();"
|
210
|
-
html << "</script>"
|
211
|
-
html.join("\n").html_safe
|
212
|
-
end
|
213
|
-
|
214
|
-
def tr8n_translator_rank_tag(translator, rank = nil)
|
215
|
-
return "" unless translator
|
216
|
-
|
217
|
-
rank ||= translator.rank || 0
|
218
|
-
|
219
|
-
html = "<span dir='ltr'>"
|
220
|
-
1.upto(5) do |i|
|
221
|
-
if rank > i * 20 - 10 and rank < i * 20
|
222
|
-
html << image_tag("/tr8n/images/rating_star05.png")
|
223
|
-
elsif rank < i * 20 - 10
|
224
|
-
html << image_tag("/tr8n/images/rating_star0.png")
|
225
|
-
else
|
226
|
-
html << image_tag("/tr8n/images/rating_star1.png")
|
227
|
-
end
|
228
|
-
end
|
229
|
-
html << "</span>"
|
230
|
-
html.html_safe
|
231
|
-
end
|
232
|
-
|
233
|
-
def tr8n_help_icon_tag(filename = "index")
|
234
|
-
link_to(image_tag("/tr8n/images/help.png", :style => "border:0px; vertical-align:middle;", :title => trl("Help")), {:controller => "/tr8n/help", :action => filename}, :target => "_new").html_safe
|
235
|
-
end
|
236
|
-
|
237
|
-
def tr8n_help_link(text, opts = {})
|
238
|
-
filename = opts[:filename].nil? ? text.downcase.gsub(' ', '_') : opts[:filename]
|
239
|
-
classname = "tr8n_selected" if filename == controller.action_name
|
240
|
-
link_to(text, { :controller => "/tr8n/help", :action => filename }, :class => classname).html_safe
|
241
|
-
end
|
242
|
-
|
243
|
-
def tr8n_spinner_tag(id = "spinner", label = nil, cls='spinner')
|
244
|
-
html = "<div id='#{id}' class='#{cls}' style='display:none'>"
|
245
|
-
html << image_tag("/tr8n/images/spinner.gif", :style => "vertical-align:middle;")
|
246
|
-
html << " #{trl(label)}" if label
|
247
|
-
html << "</div>"
|
248
|
-
html.html_safe
|
249
|
-
end
|
250
|
-
|
251
|
-
def tr8n_toggler_tag(content_id, label = "", open = true)
|
252
|
-
html = "<span id='#{content_id}_open' "
|
253
|
-
html << "style='display:none'" unless open
|
254
|
-
html << ">"
|
255
|
-
html << link_to_function("#{image_tag("/tr8n/images/arrow_down.gif", :style=>'text-align:center; vertical-align:middle')} #{label}".html_safe, "Tr8n.Effects.hide('#{content_id}_open'); Tr8n.Effects.show('#{content_id}_closed'); Tr8n.Effects.blindUp('#{content_id}');", :style=> "text-decoration:none")
|
256
|
-
html << "</span>"
|
257
|
-
html << "<span id='#{content_id}_closed' "
|
258
|
-
html << "style='display:none'" if open
|
259
|
-
html << ">"
|
260
|
-
html << link_to_function("#{image_tag("/tr8n/images/arrow_right.gif", :style=>'text-align:center; vertical-align:middle')} #{label}".html_safe, "Tr8n.Effects.show('#{content_id}_open'); Tr8n.Effects.hide('#{content_id}_closed'); Tr8n.Effects.blindDown('#{content_id}');", :style=> "text-decoration:none")
|
261
|
-
html << "</span>"
|
262
|
-
html.html_safe
|
263
|
-
end
|
264
|
-
|
265
|
-
def tr8n_sitemap(sections, splitters, options = {})
|
266
|
-
html = ""
|
267
|
-
html << "<table style='width:100%'>"
|
268
|
-
html << "<tr>"
|
269
|
-
splitters.each do |splitter|
|
270
|
-
html << "<td style='vertical-align:top; width:" << (100 / splitters.size).to_s << "%;'>"
|
271
|
-
html << generate_sitemap(sections[splitter.first..splitter.last], options)
|
272
|
-
html << "</td>"
|
273
|
-
end
|
274
|
-
html << "</tr>"
|
275
|
-
html << "</table>"
|
276
|
-
html.html_safe
|
277
|
-
end
|
278
|
-
|
279
|
-
def tr8n_breadcrumb_tag(source = nil, opts = {})
|
280
|
-
source ||= "#{controller.class.name.underscore.gsub("_controller", "")}/#{controller.action_name}"
|
281
|
-
section = Tr8n::SiteMap.section_for_source(source)
|
282
|
-
return "" unless section
|
283
|
-
opts[:separator] ||= " >> "
|
284
|
-
opts[:min_elements] ||= 1
|
285
|
-
opts[:skip_root] ||= opts[:skip_root].nil? ? false : opts[:skip_root]
|
286
|
-
|
287
|
-
links = section.parents.collect{|node| link_to(node.title(params), node.link(params))}
|
288
|
-
return "" if links.size <= opts[:min_elements]
|
289
|
-
|
290
|
-
links.delete(links.first) if opts[:skip_root]
|
291
|
-
links.unshift(link_to(opts[:root].first, opts[:root].last)) if opts[:root]
|
292
|
-
|
293
|
-
html = "<div id='tr8n_breadcrumb' class='tr8n_breadcrumb'>"
|
294
|
-
html << links.join(opts[:separator])
|
295
|
-
html << '</div>'
|
296
|
-
html.html_safe
|
297
|
-
end
|
298
|
-
|
299
|
-
def tr8n_user_tag(translator, options = {})
|
300
|
-
return "Deleted Translator" unless translator
|
301
|
-
|
302
|
-
if options[:linked]
|
303
|
-
link_to(translator.name, translator.link).html_safe
|
304
|
-
else
|
305
|
-
translator.name
|
306
|
-
end
|
307
|
-
end
|
308
|
-
|
309
|
-
def tr8n_user_mugshot_tag(translator, options = {})
|
310
|
-
if translator and !translator.mugshot.blank?
|
311
|
-
img_url = translator.mugshot
|
312
|
-
else
|
313
|
-
img_url = Tr8n::Config.silhouette_image
|
314
|
-
end
|
315
|
-
|
316
|
-
img_tag = "<img src='#{img_url}' style='width:48px'>".html_safe
|
317
|
-
|
318
|
-
if translator and options[:linked]
|
319
|
-
link_to(img_tag, translator.link).html_safe
|
320
|
-
else
|
321
|
-
img_tag.html_safe
|
322
|
-
end
|
323
|
-
end
|
324
|
-
|
325
|
-
def tr8n_will_paginate(collection = nil, options = {})
|
326
|
-
will_paginate(collection, options.merge(:previous_label => tr("« Previous", "Previous entries in a list", {}, options),
|
327
|
-
:next_label => tr("Next »", "Next entries in a list", {}, options))).html_safe
|
328
|
-
end
|
329
|
-
|
330
|
-
def tr8n_page_entries_info(collection, options = {})
|
331
|
-
entry_name = options[:entry_name] || (collection.empty? ? 'entry' : collection.first.class.name.underscore.sub('_', ' '))
|
332
|
-
|
333
|
-
if collection.total_pages < 2
|
334
|
-
case collection.size
|
335
|
-
when 0
|
336
|
-
tr("None found", "Paginator no entries message", {}, options)
|
337
|
-
when 1
|
338
|
-
tr("Displaying [bold: 1] #{entry_name}", "Paginator one page message", {}, options)
|
339
|
-
else
|
340
|
-
tr("Displaying [bold: all {count}] #{entry_name.pluralize}", "Paginator all entries message", {:count => collection.size}, options)
|
341
|
-
end
|
342
|
-
else
|
343
|
-
tr("Displaying #{entry_name.pluralize} [bold: {start_num} - {end_num}] of [bold: {total_count}] in total",
|
344
|
-
"Paginator custom message", {
|
345
|
-
:start_num => collection.offset + 1,
|
346
|
-
:end_num => collection.offset + collection.length,
|
347
|
-
:total_count => collection.total_entries
|
348
|
-
}, options
|
349
|
-
)
|
350
|
-
end
|
351
|
-
end
|
352
|
-
|
353
|
-
def tr8n_select_month(date, options = {}, html_options = {})
|
354
|
-
month_names = options[:use_short_month] ? Tr8n::Config.default_abbr_month_names : Tr8n::Config.default_month_names
|
355
|
-
select_month(date, options.merge(
|
356
|
-
:use_month_names => month_names.collect{|month_name| Tr8n::Language.translate(month_name, options[:description] || "Month name")}
|
357
|
-
), html_options)
|
358
|
-
end
|
359
|
-
|
360
|
-
def tr8n_with_options_tag(opts, &block)
|
361
|
-
Thread.current[:tr8n_block_options] = opts
|
362
|
-
if block_given?
|
363
|
-
ret = capture(&block)
|
364
|
-
end
|
365
|
-
Thread.current[:tr8n_block_options] = {}
|
366
|
-
ret
|
367
|
-
end
|
368
|
-
|
369
|
-
def tr8n_button_tag(label, function, opts = {})
|
370
|
-
link_to_function("<span>#{label}</span>".html_safe, function, :class => "tr8n_grey_button tr8n_pcb")
|
371
|
-
end
|
372
|
-
|
373
|
-
private
|
374
|
-
|
375
|
-
def generate_sitemap(sections, options = {})
|
376
|
-
html = "<ul class='section_list'>"
|
377
|
-
sections.each do |section|
|
378
|
-
html << "<li class='section_list_item'>"
|
379
|
-
html << "<a href='/tr8n/phrases/index?section_key=#{section.key}'>" << tr(section.label, section.description) << "</a>"
|
380
|
-
html << "<a href='" << section.data[:link] << "' target='_new'><img src='/tr8n/images/bullet_go.png' style='border:0px; vertical-align:middle'></a>" if section.data[:link]
|
381
|
-
|
382
|
-
if section.children.size > 0
|
383
|
-
html << generate_sitemap(section.children, options)
|
384
|
-
end
|
385
|
-
html << "</li>"
|
386
|
-
end
|
387
|
-
html << "</ul>"
|
388
|
-
html.html_safe
|
389
|
-
end
|
390
|
-
end
|