Changeset 3265363
- Timestamp:
- 04/02/2025 01:32:02 AM (11 months ago)
- Location:
- wplingua
- Files:
-
- 473 added
- 47 edited
-
tags/2.5.4 (added)
-
tags/2.5.4/assets (added)
-
tags/2.5.4/assets/css (added)
-
tags/2.5.4/assets/css/admin (added)
-
tags/2.5.4/assets/css/admin/option-page-dictionary.css (added)
-
tags/2.5.4/assets/css/admin/option-page-dictionary.css.map (added)
-
tags/2.5.4/assets/css/admin/option-page-exclusions.css (added)
-
tags/2.5.4/assets/css/admin/option-page-exclusions.css.map (added)
-
tags/2.5.4/assets/css/admin/option-page-link-media.css (added)
-
tags/2.5.4/assets/css/admin/option-page-link-media.css.map (added)
-
tags/2.5.4/assets/css/admin/option-page-register.css (added)
-
tags/2.5.4/assets/css/admin/option-page-register.css.map (added)
-
tags/2.5.4/assets/css/admin/option-page-settings.css (added)
-
tags/2.5.4/assets/css/admin/option-page-settings.css.map (added)
-
tags/2.5.4/assets/css/admin/option-page-switcher.css (added)
-
tags/2.5.4/assets/css/admin/option-page-switcher.css.map (added)
-
tags/2.5.4/assets/css/admin/slug.css (added)
-
tags/2.5.4/assets/css/admin/slug.css.map (added)
-
tags/2.5.4/assets/css/admin/translation.css (added)
-
tags/2.5.4/assets/css/admin/translation.css.map (added)
-
tags/2.5.4/assets/css/editor.css (added)
-
tags/2.5.4/assets/css/editor.css.map (added)
-
tags/2.5.4/assets/css/front.css (added)
-
tags/2.5.4/assets/css/front.css.map (added)
-
tags/2.5.4/assets/css/list.css (added)
-
tags/2.5.4/assets/css/list.css.map (added)
-
tags/2.5.4/assets/images (added)
-
tags/2.5.4/assets/images/circle (added)
-
tags/2.5.4/assets/images/circle/_a.png (added)
-
tags/2.5.4/assets/images/circle/_c.png (added)
-
tags/2.5.4/assets/images/circle/_e.png (added)
-
tags/2.5.4/assets/images/circle/ae.png (added)
-
tags/2.5.4/assets/images/circle/ao.png (added)
-
tags/2.5.4/assets/images/circle/ar.png (added)
-
tags/2.5.4/assets/images/circle/at.png (added)
-
tags/2.5.4/assets/images/circle/au.png (added)
-
tags/2.5.4/assets/images/circle/be.png (added)
-
tags/2.5.4/assets/images/circle/bh.png (added)
-
tags/2.5.4/assets/images/circle/bo.png (added)
-
tags/2.5.4/assets/images/circle/br.png (added)
-
tags/2.5.4/assets/images/circle/by.png (added)
-
tags/2.5.4/assets/images/circle/ca.png (added)
-
tags/2.5.4/assets/images/circle/cd.png (added)
-
tags/2.5.4/assets/images/circle/cg.png (added)
-
tags/2.5.4/assets/images/circle/ch.png (added)
-
tags/2.5.4/assets/images/circle/ci.png (added)
-
tags/2.5.4/assets/images/circle/cl.png (added)
-
tags/2.5.4/assets/images/circle/cm.png (added)
-
tags/2.5.4/assets/images/circle/cn.png (added)
-
tags/2.5.4/assets/images/circle/co.png (added)
-
tags/2.5.4/assets/images/circle/cr.png (added)
-
tags/2.5.4/assets/images/circle/cu.png (added)
-
tags/2.5.4/assets/images/circle/cy.png (added)
-
tags/2.5.4/assets/images/circle/cz.png (added)
-
tags/2.5.4/assets/images/circle/de.png (added)
-
tags/2.5.4/assets/images/circle/dj.png (added)
-
tags/2.5.4/assets/images/circle/dk.png (added)
-
tags/2.5.4/assets/images/circle/do.png (added)
-
tags/2.5.4/assets/images/circle/dz.png (added)
-
tags/2.5.4/assets/images/circle/ec.png (added)
-
tags/2.5.4/assets/images/circle/eg.png (added)
-
tags/2.5.4/assets/images/circle/es.png (added)
-
tags/2.5.4/assets/images/circle/fi.png (added)
-
tags/2.5.4/assets/images/circle/fr.png (added)
-
tags/2.5.4/assets/images/circle/gb.png (added)
-
tags/2.5.4/assets/images/circle/gh.png (added)
-
tags/2.5.4/assets/images/circle/gq.png (added)
-
tags/2.5.4/assets/images/circle/gr.png (added)
-
tags/2.5.4/assets/images/circle/gt.png (added)
-
tags/2.5.4/assets/images/circle/hk.png (added)
-
tags/2.5.4/assets/images/circle/hn.png (added)
-
tags/2.5.4/assets/images/circle/hu.png (added)
-
tags/2.5.4/assets/images/circle/id.png (added)
-
tags/2.5.4/assets/images/circle/ie.png (added)
-
tags/2.5.4/assets/images/circle/il.png (added)
-
tags/2.5.4/assets/images/circle/in.png (added)
-
tags/2.5.4/assets/images/circle/iq.png (added)
-
tags/2.5.4/assets/images/circle/it.png (added)
-
tags/2.5.4/assets/images/circle/jm.png (added)
-
tags/2.5.4/assets/images/circle/jo.png (added)
-
tags/2.5.4/assets/images/circle/jp.png (added)
-
tags/2.5.4/assets/images/circle/ke.png (added)
-
tags/2.5.4/assets/images/circle/kg.png (added)
-
tags/2.5.4/assets/images/circle/km.png (added)
-
tags/2.5.4/assets/images/circle/kp.png (added)
-
tags/2.5.4/assets/images/circle/kr.png (added)
-
tags/2.5.4/assets/images/circle/kw.png (added)
-
tags/2.5.4/assets/images/circle/kz.png (added)
-
tags/2.5.4/assets/images/circle/lb.png (added)
-
tags/2.5.4/assets/images/circle/li.png (added)
-
tags/2.5.4/assets/images/circle/lr.png (added)
-
tags/2.5.4/assets/images/circle/ly.png (added)
-
tags/2.5.4/assets/images/circle/ma.png (added)
-
tags/2.5.4/assets/images/circle/mr.png (added)
-
tags/2.5.4/assets/images/circle/mx.png (added)
-
tags/2.5.4/assets/images/circle/my.png (added)
-
tags/2.5.4/assets/images/circle/mz.png (added)
-
tags/2.5.4/assets/images/circle/ng.png (added)
-
tags/2.5.4/assets/images/circle/ni.png (added)
-
tags/2.5.4/assets/images/circle/nl.png (added)
-
tags/2.5.4/assets/images/circle/nz.png (added)
-
tags/2.5.4/assets/images/circle/om.png (added)
-
tags/2.5.4/assets/images/circle/pa.png (added)
-
tags/2.5.4/assets/images/circle/pe.png (added)
-
tags/2.5.4/assets/images/circle/pk.png (added)
-
tags/2.5.4/assets/images/circle/pl.png (added)
-
tags/2.5.4/assets/images/circle/ps.png (added)
-
tags/2.5.4/assets/images/circle/pt.png (added)
-
tags/2.5.4/assets/images/circle/py.png (added)
-
tags/2.5.4/assets/images/circle/qa.png (added)
-
tags/2.5.4/assets/images/circle/ru.png (added)
-
tags/2.5.4/assets/images/circle/sa.png (added)
-
tags/2.5.4/assets/images/circle/sd.png (added)
-
tags/2.5.4/assets/images/circle/se.png (added)
-
tags/2.5.4/assets/images/circle/sg.png (added)
-
tags/2.5.4/assets/images/circle/sk.png (added)
-
tags/2.5.4/assets/images/circle/sl.png (added)
-
tags/2.5.4/assets/images/circle/so.png (added)
-
tags/2.5.4/assets/images/circle/sr.png (added)
-
tags/2.5.4/assets/images/circle/ss.png (added)
-
tags/2.5.4/assets/images/circle/sv.png (added)
-
tags/2.5.4/assets/images/circle/sy.png (added)
-
tags/2.5.4/assets/images/circle/td.png (added)
-
tags/2.5.4/assets/images/circle/tj.png (added)
-
tags/2.5.4/assets/images/circle/tn.png (added)
-
tags/2.5.4/assets/images/circle/tr.png (added)
-
tags/2.5.4/assets/images/circle/ua.png (added)
-
tags/2.5.4/assets/images/circle/us.png (added)
-
tags/2.5.4/assets/images/circle/uy.png (added)
-
tags/2.5.4/assets/images/circle/vn.png (added)
-
tags/2.5.4/assets/images/circle/ye.png (added)
-
tags/2.5.4/assets/images/circle/za.png (added)
-
tags/2.5.4/assets/images/rectangular (added)
-
tags/2.5.4/assets/images/rectangular/_a.png (added)
-
tags/2.5.4/assets/images/rectangular/_c.png (added)
-
tags/2.5.4/assets/images/rectangular/_e.png (added)
-
tags/2.5.4/assets/images/rectangular/ae.png (added)
-
tags/2.5.4/assets/images/rectangular/ao.png (added)
-
tags/2.5.4/assets/images/rectangular/ar.png (added)
-
tags/2.5.4/assets/images/rectangular/at.png (added)
-
tags/2.5.4/assets/images/rectangular/au.png (added)
-
tags/2.5.4/assets/images/rectangular/be.png (added)
-
tags/2.5.4/assets/images/rectangular/bh.png (added)
-
tags/2.5.4/assets/images/rectangular/bo.png (added)
-
tags/2.5.4/assets/images/rectangular/br.png (added)
-
tags/2.5.4/assets/images/rectangular/by.png (added)
-
tags/2.5.4/assets/images/rectangular/ca.png (added)
-
tags/2.5.4/assets/images/rectangular/cd.png (added)
-
tags/2.5.4/assets/images/rectangular/cg.png (added)
-
tags/2.5.4/assets/images/rectangular/ch.png (added)
-
tags/2.5.4/assets/images/rectangular/ci.png (added)
-
tags/2.5.4/assets/images/rectangular/cl.png (added)
-
tags/2.5.4/assets/images/rectangular/cm.png (added)
-
tags/2.5.4/assets/images/rectangular/cn.png (added)
-
tags/2.5.4/assets/images/rectangular/co.png (added)
-
tags/2.5.4/assets/images/rectangular/cr.png (added)
-
tags/2.5.4/assets/images/rectangular/cu.png (added)
-
tags/2.5.4/assets/images/rectangular/cy.png (added)
-
tags/2.5.4/assets/images/rectangular/cz.png (added)
-
tags/2.5.4/assets/images/rectangular/de.png (added)
-
tags/2.5.4/assets/images/rectangular/dj.png (added)
-
tags/2.5.4/assets/images/rectangular/dk.png (added)
-
tags/2.5.4/assets/images/rectangular/do.png (added)
-
tags/2.5.4/assets/images/rectangular/dz.png (added)
-
tags/2.5.4/assets/images/rectangular/ec.png (added)
-
tags/2.5.4/assets/images/rectangular/eg.png (added)
-
tags/2.5.4/assets/images/rectangular/es.png (added)
-
tags/2.5.4/assets/images/rectangular/fi.png (added)
-
tags/2.5.4/assets/images/rectangular/fr.png (added)
-
tags/2.5.4/assets/images/rectangular/gb.png (added)
-
tags/2.5.4/assets/images/rectangular/gh.png (added)
-
tags/2.5.4/assets/images/rectangular/gq.png (added)
-
tags/2.5.4/assets/images/rectangular/gr.png (added)
-
tags/2.5.4/assets/images/rectangular/gt.png (added)
-
tags/2.5.4/assets/images/rectangular/hk.png (added)
-
tags/2.5.4/assets/images/rectangular/hn.png (added)
-
tags/2.5.4/assets/images/rectangular/hu.png (added)
-
tags/2.5.4/assets/images/rectangular/id.png (added)
-
tags/2.5.4/assets/images/rectangular/ie.png (added)
-
tags/2.5.4/assets/images/rectangular/il.png (added)
-
tags/2.5.4/assets/images/rectangular/in.png (added)
-
tags/2.5.4/assets/images/rectangular/iq.png (added)
-
tags/2.5.4/assets/images/rectangular/it.png (added)
-
tags/2.5.4/assets/images/rectangular/jm.png (added)
-
tags/2.5.4/assets/images/rectangular/jo.png (added)
-
tags/2.5.4/assets/images/rectangular/jp.png (added)
-
tags/2.5.4/assets/images/rectangular/ke.png (added)
-
tags/2.5.4/assets/images/rectangular/kg.png (added)
-
tags/2.5.4/assets/images/rectangular/km.png (added)
-
tags/2.5.4/assets/images/rectangular/kp.png (added)
-
tags/2.5.4/assets/images/rectangular/kr.png (added)
-
tags/2.5.4/assets/images/rectangular/kw.png (added)
-
tags/2.5.4/assets/images/rectangular/kz.png (added)
-
tags/2.5.4/assets/images/rectangular/lb.png (added)
-
tags/2.5.4/assets/images/rectangular/li.png (added)
-
tags/2.5.4/assets/images/rectangular/lr.png (added)
-
tags/2.5.4/assets/images/rectangular/ly.png (added)
-
tags/2.5.4/assets/images/rectangular/ma.png (added)
-
tags/2.5.4/assets/images/rectangular/mr.png (added)
-
tags/2.5.4/assets/images/rectangular/mx.png (added)
-
tags/2.5.4/assets/images/rectangular/my.png (added)
-
tags/2.5.4/assets/images/rectangular/mz.png (added)
-
tags/2.5.4/assets/images/rectangular/ng.png (added)
-
tags/2.5.4/assets/images/rectangular/ni.png (added)
-
tags/2.5.4/assets/images/rectangular/nl.png (added)
-
tags/2.5.4/assets/images/rectangular/nz.png (added)
-
tags/2.5.4/assets/images/rectangular/om.png (added)
-
tags/2.5.4/assets/images/rectangular/pa.png (added)
-
tags/2.5.4/assets/images/rectangular/pe.png (added)
-
tags/2.5.4/assets/images/rectangular/pk.png (added)
-
tags/2.5.4/assets/images/rectangular/pl.png (added)
-
tags/2.5.4/assets/images/rectangular/ps.png (added)
-
tags/2.5.4/assets/images/rectangular/pt.png (added)
-
tags/2.5.4/assets/images/rectangular/py.png (added)
-
tags/2.5.4/assets/images/rectangular/qa.png (added)
-
tags/2.5.4/assets/images/rectangular/ru.png (added)
-
tags/2.5.4/assets/images/rectangular/sa.png (added)
-
tags/2.5.4/assets/images/rectangular/sd.png (added)
-
tags/2.5.4/assets/images/rectangular/se.png (added)
-
tags/2.5.4/assets/images/rectangular/sg.png (added)
-
tags/2.5.4/assets/images/rectangular/sk.png (added)
-
tags/2.5.4/assets/images/rectangular/sl.png (added)
-
tags/2.5.4/assets/images/rectangular/so.png (added)
-
tags/2.5.4/assets/images/rectangular/sr.png (added)
-
tags/2.5.4/assets/images/rectangular/ss.png (added)
-
tags/2.5.4/assets/images/rectangular/sv.png (added)
-
tags/2.5.4/assets/images/rectangular/sy.png (added)
-
tags/2.5.4/assets/images/rectangular/td.png (added)
-
tags/2.5.4/assets/images/rectangular/tj.png (added)
-
tags/2.5.4/assets/images/rectangular/tn.png (added)
-
tags/2.5.4/assets/images/rectangular/tr.png (added)
-
tags/2.5.4/assets/images/rectangular/ua.png (added)
-
tags/2.5.4/assets/images/rectangular/us.png (added)
-
tags/2.5.4/assets/images/rectangular/uy.png (added)
-
tags/2.5.4/assets/images/rectangular/vn.png (added)
-
tags/2.5.4/assets/images/rectangular/ye.png (added)
-
tags/2.5.4/assets/images/rectangular/za.png (added)
-
tags/2.5.4/assets/images/wave (added)
-
tags/2.5.4/assets/images/wave/_a.png (added)
-
tags/2.5.4/assets/images/wave/_c.png (added)
-
tags/2.5.4/assets/images/wave/_e.png (added)
-
tags/2.5.4/assets/images/wave/ae.png (added)
-
tags/2.5.4/assets/images/wave/ao.png (added)
-
tags/2.5.4/assets/images/wave/ar.png (added)
-
tags/2.5.4/assets/images/wave/at.png (added)
-
tags/2.5.4/assets/images/wave/au.png (added)
-
tags/2.5.4/assets/images/wave/be.png (added)
-
tags/2.5.4/assets/images/wave/bh.png (added)
-
tags/2.5.4/assets/images/wave/bo.png (added)
-
tags/2.5.4/assets/images/wave/br.png (added)
-
tags/2.5.4/assets/images/wave/by.png (added)
-
tags/2.5.4/assets/images/wave/ca.png (added)
-
tags/2.5.4/assets/images/wave/cd.png (added)
-
tags/2.5.4/assets/images/wave/cg.png (added)
-
tags/2.5.4/assets/images/wave/ch.png (added)
-
tags/2.5.4/assets/images/wave/ci.png (added)
-
tags/2.5.4/assets/images/wave/cl.png (added)
-
tags/2.5.4/assets/images/wave/cm.png (added)
-
tags/2.5.4/assets/images/wave/cn.png (added)
-
tags/2.5.4/assets/images/wave/co.png (added)
-
tags/2.5.4/assets/images/wave/cr.png (added)
-
tags/2.5.4/assets/images/wave/cu.png (added)
-
tags/2.5.4/assets/images/wave/cy.png (added)
-
tags/2.5.4/assets/images/wave/cz.png (added)
-
tags/2.5.4/assets/images/wave/de.png (added)
-
tags/2.5.4/assets/images/wave/dj.png (added)
-
tags/2.5.4/assets/images/wave/dk.png (added)
-
tags/2.5.4/assets/images/wave/do.png (added)
-
tags/2.5.4/assets/images/wave/dz.png (added)
-
tags/2.5.4/assets/images/wave/ec.png (added)
-
tags/2.5.4/assets/images/wave/eg.png (added)
-
tags/2.5.4/assets/images/wave/es.png (added)
-
tags/2.5.4/assets/images/wave/fi.png (added)
-
tags/2.5.4/assets/images/wave/fr.png (added)
-
tags/2.5.4/assets/images/wave/gb.png (added)
-
tags/2.5.4/assets/images/wave/gh.png (added)
-
tags/2.5.4/assets/images/wave/gq.png (added)
-
tags/2.5.4/assets/images/wave/gr.png (added)
-
tags/2.5.4/assets/images/wave/gt.png (added)
-
tags/2.5.4/assets/images/wave/hk.png (added)
-
tags/2.5.4/assets/images/wave/hn.png (added)
-
tags/2.5.4/assets/images/wave/hu.png (added)
-
tags/2.5.4/assets/images/wave/id.png (added)
-
tags/2.5.4/assets/images/wave/ie.png (added)
-
tags/2.5.4/assets/images/wave/il.png (added)
-
tags/2.5.4/assets/images/wave/in.png (added)
-
tags/2.5.4/assets/images/wave/iq.png (added)
-
tags/2.5.4/assets/images/wave/it.png (added)
-
tags/2.5.4/assets/images/wave/jm.png (added)
-
tags/2.5.4/assets/images/wave/jo.png (added)
-
tags/2.5.4/assets/images/wave/jp.png (added)
-
tags/2.5.4/assets/images/wave/ke.png (added)
-
tags/2.5.4/assets/images/wave/kg.png (added)
-
tags/2.5.4/assets/images/wave/km.png (added)
-
tags/2.5.4/assets/images/wave/kp.png (added)
-
tags/2.5.4/assets/images/wave/kr.png (added)
-
tags/2.5.4/assets/images/wave/kw.png (added)
-
tags/2.5.4/assets/images/wave/kz.png (added)
-
tags/2.5.4/assets/images/wave/lb.png (added)
-
tags/2.5.4/assets/images/wave/li.png (added)
-
tags/2.5.4/assets/images/wave/lr.png (added)
-
tags/2.5.4/assets/images/wave/ly.png (added)
-
tags/2.5.4/assets/images/wave/ma.png (added)
-
tags/2.5.4/assets/images/wave/mr.png (added)
-
tags/2.5.4/assets/images/wave/mx.png (added)
-
tags/2.5.4/assets/images/wave/my.png (added)
-
tags/2.5.4/assets/images/wave/mz.png (added)
-
tags/2.5.4/assets/images/wave/ng.png (added)
-
tags/2.5.4/assets/images/wave/ni.png (added)
-
tags/2.5.4/assets/images/wave/nl.png (added)
-
tags/2.5.4/assets/images/wave/nz.png (added)
-
tags/2.5.4/assets/images/wave/om.png (added)
-
tags/2.5.4/assets/images/wave/pa.png (added)
-
tags/2.5.4/assets/images/wave/pe.png (added)
-
tags/2.5.4/assets/images/wave/pk.png (added)
-
tags/2.5.4/assets/images/wave/pl.png (added)
-
tags/2.5.4/assets/images/wave/ps.png (added)
-
tags/2.5.4/assets/images/wave/pt.png (added)
-
tags/2.5.4/assets/images/wave/py.png (added)
-
tags/2.5.4/assets/images/wave/qa.png (added)
-
tags/2.5.4/assets/images/wave/ru.png (added)
-
tags/2.5.4/assets/images/wave/sa.png (added)
-
tags/2.5.4/assets/images/wave/sd.png (added)
-
tags/2.5.4/assets/images/wave/se.png (added)
-
tags/2.5.4/assets/images/wave/sg.png (added)
-
tags/2.5.4/assets/images/wave/sk.png (added)
-
tags/2.5.4/assets/images/wave/sl.png (added)
-
tags/2.5.4/assets/images/wave/so.png (added)
-
tags/2.5.4/assets/images/wave/sr.png (added)
-
tags/2.5.4/assets/images/wave/ss.png (added)
-
tags/2.5.4/assets/images/wave/sv.png (added)
-
tags/2.5.4/assets/images/wave/sy.png (added)
-
tags/2.5.4/assets/images/wave/td.png (added)
-
tags/2.5.4/assets/images/wave/tj.png (added)
-
tags/2.5.4/assets/images/wave/tn.png (added)
-
tags/2.5.4/assets/images/wave/tr.png (added)
-
tags/2.5.4/assets/images/wave/ua.png (added)
-
tags/2.5.4/assets/images/wave/us.png (added)
-
tags/2.5.4/assets/images/wave/uy.png (added)
-
tags/2.5.4/assets/images/wave/vn.png (added)
-
tags/2.5.4/assets/images/wave/ye.png (added)
-
tags/2.5.4/assets/images/wave/za.png (added)
-
tags/2.5.4/assets/js (added)
-
tags/2.5.4/assets/js/admin (added)
-
tags/2.5.4/assets/js/admin/help-box.js (added)
-
tags/2.5.4/assets/js/admin/help-box.js.map (added)
-
tags/2.5.4/assets/js/admin/option-page-dictionary.js (added)
-
tags/2.5.4/assets/js/admin/option-page-dictionary.js.map (added)
-
tags/2.5.4/assets/js/admin/option-page-link-media.js (added)
-
tags/2.5.4/assets/js/admin/option-page-link-media.js.map (added)
-
tags/2.5.4/assets/js/admin/option-page-register.js (added)
-
tags/2.5.4/assets/js/admin/option-page-register.js.map (added)
-
tags/2.5.4/assets/js/admin/option-page-settings.js (added)
-
tags/2.5.4/assets/js/admin/option-page-settings.js.map (added)
-
tags/2.5.4/assets/js/admin/option-page-switcher.js (added)
-
tags/2.5.4/assets/js/admin/option-page-switcher.js.map (added)
-
tags/2.5.4/assets/js/admin/slug.js (added)
-
tags/2.5.4/assets/js/admin/slug.js.map (added)
-
tags/2.5.4/assets/js/admin/translation.js (added)
-
tags/2.5.4/assets/js/admin/translation.js.map (added)
-
tags/2.5.4/assets/js/block-switcher.js (added)
-
tags/2.5.4/assets/js/block-switcher.js.map (added)
-
tags/2.5.4/assets/js/on-page.js (added)
-
tags/2.5.4/assets/js/on-page.js.map (added)
-
tags/2.5.4/assets/js/script.js (added)
-
tags/2.5.4/assets/js/script.js.map (added)
-
tags/2.5.4/data.php (added)
-
tags/2.5.4/inc (added)
-
tags/2.5.4/inc/admin (added)
-
tags/2.5.4/inc/admin/admin-bar.php (added)
-
tags/2.5.4/inc/admin/admin.php (added)
-
tags/2.5.4/inc/admin/assets.php (added)
-
tags/2.5.4/inc/admin/index.php (added)
-
tags/2.5.4/inc/admin/option-page-dictionary.php (added)
-
tags/2.5.4/inc/admin/option-page-exclusions.php (added)
-
tags/2.5.4/inc/admin/option-page-link-media.php (added)
-
tags/2.5.4/inc/admin/option-page-register.php (added)
-
tags/2.5.4/inc/admin/option-page-settings.php (added)
-
tags/2.5.4/inc/admin/option-page-switcher.php (added)
-
tags/2.5.4/inc/admin/option-page.php (added)
-
tags/2.5.4/inc/admin/slug-cpt.php (added)
-
tags/2.5.4/inc/admin/slug-meta.php (added)
-
tags/2.5.4/inc/admin/switcher-nav-menu.php (added)
-
tags/2.5.4/inc/admin/translation-cpt.php (added)
-
tags/2.5.4/inc/admin/translation-edit-modal.php (added)
-
tags/2.5.4/inc/admin/translation-meta.php (added)
-
tags/2.5.4/inc/api-call (added)
-
tags/2.5.4/inc/api-call/index.php (added)
-
tags/2.5.4/inc/api-call/request-api-key.php (added)
-
tags/2.5.4/inc/api-call/translate.php (added)
-
tags/2.5.4/inc/api-call/validate-api-key.php (added)
-
tags/2.5.4/inc/api-key.php (added)
-
tags/2.5.4/inc/args.php (added)
-
tags/2.5.4/inc/assets.php (added)
-
tags/2.5.4/inc/buffering.php (added)
-
tags/2.5.4/inc/dictionary.php (added)
-
tags/2.5.4/inc/dom (added)
-
tags/2.5.4/inc/dom/exclusion-put-tags.php (added)
-
tags/2.5.4/inc/dom/exclusion-replace-tags.php (added)
-
tags/2.5.4/inc/dom/index.php (added)
-
tags/2.5.4/inc/dom/load-progress.php (added)
-
tags/2.5.4/inc/dom/mode-editor.php (added)
-
tags/2.5.4/inc/dom/mode-list.php (added)
-
tags/2.5.4/inc/dom/replace-attr-dir.php (added)
-
tags/2.5.4/inc/dom/replace-attr-lang.php (added)
-
tags/2.5.4/inc/dom/replace-body-class.php (added)
-
tags/2.5.4/inc/dom/replace-links.php (added)
-
tags/2.5.4/inc/dom/translate-attr-html.php (added)
-
tags/2.5.4/inc/dom/translate-attr-texts.php (added)
-
tags/2.5.4/inc/dom/translate-js.php (added)
-
tags/2.5.4/inc/dom/translate-json.php (added)
-
tags/2.5.4/inc/dom/translate-node-texts.php (added)
-
tags/2.5.4/inc/heartbeat.php (added)
-
tags/2.5.4/inc/hreflang.php (added)
-
tags/2.5.4/inc/index.php (added)
-
tags/2.5.4/inc/languages.php (added)
-
tags/2.5.4/inc/lib (added)
-
tags/2.5.4/inc/lib/index.php (added)
-
tags/2.5.4/inc/lib/simple-html-dom.php (added)
-
tags/2.5.4/inc/link-media.php (added)
-
tags/2.5.4/inc/parser (added)
-
tags/2.5.4/inc/parser/html.php (added)
-
tags/2.5.4/inc/parser/index.php (added)
-
tags/2.5.4/inc/parser/js.php (added)
-
tags/2.5.4/inc/parser/json.php (added)
-
tags/2.5.4/inc/search.php (added)
-
tags/2.5.4/inc/shortcode.php (added)
-
tags/2.5.4/inc/slug.php (added)
-
tags/2.5.4/inc/switcher-block.php (added)
-
tags/2.5.4/inc/switcher-nav-menu.php (added)
-
tags/2.5.4/inc/switcher.php (added)
-
tags/2.5.4/inc/translation.php (added)
-
tags/2.5.4/inc/translator (added)
-
tags/2.5.4/inc/translator/html.php (added)
-
tags/2.5.4/inc/translator/index.php (added)
-
tags/2.5.4/inc/translator/js.php (added)
-
tags/2.5.4/inc/translator/json.php (added)
-
tags/2.5.4/inc/url.php (added)
-
tags/2.5.4/inc/util.php (added)
-
tags/2.5.4/index.php (added)
-
tags/2.5.4/languages (added)
-
tags/2.5.4/languages/wplingua-da_DK.mo (added)
-
tags/2.5.4/languages/wplingua-da_DK.po (added)
-
tags/2.5.4/languages/wplingua-de_DE.mo (added)
-
tags/2.5.4/languages/wplingua-de_DE.po (added)
-
tags/2.5.4/languages/wplingua-es_ES.mo (added)
-
tags/2.5.4/languages/wplingua-es_ES.po (added)
-
tags/2.5.4/languages/wplingua-fi.mo (added)
-
tags/2.5.4/languages/wplingua-fi.po (added)
-
tags/2.5.4/languages/wplingua-fr_FR.mo (added)
-
tags/2.5.4/languages/wplingua-fr_FR.po (added)
-
tags/2.5.4/languages/wplingua-hi_IN.mo (added)
-
tags/2.5.4/languages/wplingua-hi_IN.po (added)
-
tags/2.5.4/languages/wplingua-hu_HU.mo (added)
-
tags/2.5.4/languages/wplingua-hu_HU.po (added)
-
tags/2.5.4/languages/wplingua-id_ID.mo (added)
-
tags/2.5.4/languages/wplingua-id_ID.po (added)
-
tags/2.5.4/languages/wplingua-it_IT.mo (added)
-
tags/2.5.4/languages/wplingua-it_IT.po (added)
-
tags/2.5.4/languages/wplingua-ja.mo (added)
-
tags/2.5.4/languages/wplingua-ja.po (added)
-
tags/2.5.4/languages/wplingua-ko_KR.mo (added)
-
tags/2.5.4/languages/wplingua-ko_KR.po (added)
-
tags/2.5.4/languages/wplingua-nl_NL.mo (added)
-
tags/2.5.4/languages/wplingua-nl_NL.po (added)
-
tags/2.5.4/languages/wplingua-pt_PT.mo (added)
-
tags/2.5.4/languages/wplingua-pt_PT.po (added)
-
tags/2.5.4/languages/wplingua-sv_SE.mo (added)
-
tags/2.5.4/languages/wplingua-sv_SE.po (added)
-
tags/2.5.4/languages/wplingua.pot (added)
-
tags/2.5.4/loader.php (added)
-
tags/2.5.4/readme.txt (added)
-
tags/2.5.4/wplingua.php (added)
-
trunk/data.php (modified) (3 diffs)
-
trunk/inc/admin/admin-bar.php (modified) (1 diff)
-
trunk/inc/admin/admin.php (modified) (1 diff)
-
trunk/inc/admin/assets.php (modified) (9 diffs)
-
trunk/inc/admin/option-page.php (modified) (1 diff)
-
trunk/inc/admin/slug-cpt.php (modified) (5 diffs)
-
trunk/inc/admin/slug-meta.php (modified) (3 diffs)
-
trunk/inc/admin/switcher-nav-menu.php (modified) (2 diffs)
-
trunk/inc/admin/translation-cpt.php (modified) (5 diffs)
-
trunk/inc/admin/translation-edit-modal.php (modified) (1 diff)
-
trunk/inc/admin/translation-meta.php (modified) (4 diffs)
-
trunk/inc/api-call/translate.php (modified) (1 diff)
-
trunk/inc/api-key.php (modified) (1 diff)
-
trunk/inc/args.php (modified) (1 diff)
-
trunk/inc/assets.php (modified) (1 diff)
-
trunk/inc/buffering.php (modified) (1 diff)
-
trunk/inc/dictionary.php (modified) (1 diff)
-
trunk/inc/dom/exclusion-put-tags.php (modified) (1 diff)
-
trunk/inc/dom/exclusion-replace-tags.php (modified) (2 diffs)
-
trunk/inc/dom/load-progress.php (modified) (1 diff)
-
trunk/inc/dom/mode-editor.php (modified) (1 diff)
-
trunk/inc/dom/replace-attr-dir.php (modified) (1 diff)
-
trunk/inc/dom/replace-attr-lang.php (modified) (1 diff)
-
trunk/inc/dom/replace-body-class.php (modified) (1 diff)
-
trunk/inc/dom/replace-links.php (modified) (2 diffs)
-
trunk/inc/dom/translate-attr-html.php (modified) (1 diff)
-
trunk/inc/dom/translate-attr-texts.php (modified) (1 diff)
-
trunk/inc/dom/translate-js.php (modified) (1 diff)
-
trunk/inc/dom/translate-json.php (modified) (1 diff)
-
trunk/inc/dom/translate-node-texts.php (modified) (1 diff)
-
trunk/inc/heartbeat.php (modified) (5 diffs)
-
trunk/inc/languages.php (modified) (2 diffs)
-
trunk/inc/link-media.php (modified) (2 diffs)
-
trunk/inc/parser/json.php (modified) (1 diff)
-
trunk/inc/search.php (modified) (1 diff)
-
trunk/inc/shortcode.php (modified) (5 diffs)
-
trunk/inc/slug.php (modified) (10 diffs)
-
trunk/inc/switcher-nav-menu.php (modified) (4 diffs)
-
trunk/inc/translation.php (modified) (14 diffs)
-
trunk/inc/translator/html.php (modified) (1 diff)
-
trunk/inc/translator/js.php (modified) (1 diff)
-
trunk/inc/translator/json.php (modified) (2 diffs)
-
trunk/inc/url.php (modified) (1 diff)
-
trunk/inc/util.php (modified) (2 diffs)
-
trunk/loader.php (modified) (1 diff)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/wplingua.php (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
wplingua/trunk/data.php
r3258836 r3265363 11 11 */ 12 12 13 /**14 * Get JSON elements to translate15 *16 * @return array17 */13 /** 14 * Get JSON elements to translate 15 * 16 * @return array 17 */ 18 18 function wplng_data_json_to_translate() { 19 19 return apply_filters( … … 493 493 */ 494 494 495 /**496 * Get options for switcher insertion497 *498 * @return array499 */495 /** 496 * Get options for switcher insertion 497 * 498 * @return array 499 */ 500 500 function wplng_data_switcher_valid_insert() { 501 501 return array( … … 634 634 */ 635 635 636 /**637 * Get all languages data638 *639 * @return array640 */636 /** 637 * Get all languages data 638 * 639 * @return array 640 */ 641 641 function wplng_data_languages() { 642 642 return array( -
wplingua/trunk/inc/admin/admin-bar.php
r3262485 r3265363 277 277 array( 278 278 'id' => 'wplingua-edit-translations', 279 'title' => __( ' Edit translations', 'wplingua' ),279 'title' => __( 'Translations', 'wplingua' ), 280 280 'href' => $url, 281 281 ) -
wplingua/trunk/inc/admin/admin.php
r3262485 r3265363 10 10 * Add a link for edit translations on page and post list 11 11 * 12 * @param array $actions An array of row action links (string)12 * @param array $actions An array of row action links (string) 13 13 * @param WP_Post $post The post object 14 14 * @return array -
wplingua/trunk/inc/admin/assets.php
r3242916 r3265363 56 56 WPLNG_PLUGIN_VERSION 57 57 ); 58 59 58 } 60 59 … … 108 107 WPLNG_PLUGIN_VERSION 109 108 ); 110 111 109 } 112 110 … … 235 233 WPLNG_PLUGIN_VERSION 236 234 ); 237 238 235 } 239 236 … … 257 254 */ 258 255 259 wp_enqueue_script( 'jquery' );260 261 /**262 * Enqueue wpLingua JS scripts263 */256 wp_enqueue_script( 'jquery' ); 257 258 /** 259 * Enqueue wpLingua JS scripts 260 */ 264 261 265 262 wp_enqueue_script( … … 280 277 WPLNG_PLUGIN_VERSION 281 278 ); 282 283 279 } 284 280 … … 302 298 */ 303 299 304 wp_enqueue_script( 'jquery' );305 306 /**307 * Enqueue wpLingua JS scripts308 */300 wp_enqueue_script( 'jquery' ); 301 302 /** 303 * Enqueue wpLingua JS scripts 304 */ 309 305 310 306 wp_enqueue_script( … … 325 321 WPLNG_PLUGIN_VERSION 326 322 ); 327 328 323 } 329 324 … … 391 386 392 387 } 393 394 388 } 395 389 … … 457 451 458 452 } 459 460 453 } 461 454 -
wplingua/trunk/inc/admin/option-page.php
r3249995 r3265363 252 252 exit(); 253 253 } 254 255 254 } 256 255 -
wplingua/trunk/inc/admin/slug-cpt.php
r3201266 r3265363 51 51 * quick edit action from the list of actions on the slugs list page. 52 52 * 53 * @param array $actions An array of row action links.54 * @param WP_Post $post The post object.53 * @param array $actions An array of row action links. 54 * @param WP_Post $post The post object. 55 55 * 56 56 * @return array … … 129 129 ); 130 130 } else { 131 // If more than one language target id, 131 // If more than one language target id, 132 132 // then use full, partially and reviewed status options. 133 133 $options = array_merge( … … 296 296 * @param string[] $classes An array of post class names. 297 297 * @param string[] $css_class An array of additional class names added to the post. 298 * @param int $post_id The post ID.298 * @param int $post_id The post ID. 299 299 * @return string[] 300 300 */ … … 375 375 * 376 376 * @param string $column The name of the column to display. 377 * @param int $post_id The current post ID.377 * @param int $post_id The current post ID. 378 378 * @return void 379 379 */ … … 409 409 * 410 410 * @param string[] $actions An array of row action links. 411 * @param WP_Post $post The post object.411 * @param WP_Post $post The post object. 412 412 * @return string[] 413 413 */ -
wplingua/trunk/inc/admin/slug-meta.php
r3242916 r3265363 27 27 'low' // Priority within the context 28 28 ); 29 30 29 } 31 30 … … 44 43 echo wplng_slug_editor_get_html( $post ); 45 44 echo '</div>'; 46 47 45 } 48 46 … … 434 432 435 433 $has_same_slugs = true; 436 $same_slugs_counter++;434 ++$same_slugs_counter; 437 435 438 436 $temp = preg_replace( -
wplingua/trunk/inc/admin/switcher-nav-menu.php
r3145632 r3265363 76 76 */ 77 77 78 // Infinite nav menu switcher79 // Update the edit fields event listen78 // Infinite nav menu switcher 79 // Update the edit fields event listen 80 80 81 81 let wplngNewValidate = document.getElementById('submit-posttype-wplingua-endpoints'); … … 270 270 * Print option in wpLingua nav menu 271 271 * 272 * @param string $item_id272 * @param string $item_id 273 273 * @param WP_Post $menu_item 274 274 * @return void -
wplingua/trunk/inc/admin/translation-cpt.php
r3201266 r3265363 51 51 * translations list in the WordPress admin area. 52 52 * 53 * @param array $actions An array of row action links.53 * @param array $actions An array of row action links. 54 54 * @param object $post The post object. 55 55 * @return array The modified array of row action links. … … 146 146 * Filter translations by status: Apply custom query on CPT for translation_status. 147 147 * 148 * This function modifies the query for the 'wplng_translation' post type in the admin edit screen. 148 * This function modifies the query for the 'wplng_translation' post type in the admin edit screen. 149 149 * It applies a meta query based on the specified translation status. 150 150 * … … 276 276 * @param string[] $classes An array of post class names. 277 277 * @param string[] $css_class An array of additional class names added to the post. 278 * @param int $post_id The post ID.278 * @param int $post_id The post ID. 279 279 * @return string[] 280 280 */ … … 355 355 * 356 356 * @param string $column The name of the column to display. 357 * @param int $post_id The current post ID.357 * @param int $post_id The current post ID. 358 358 * @return void 359 359 */ … … 389 389 * 390 390 * @param string[] $actions An array of row action links. 391 * @param WP_Post $post The post object.391 * @param WP_Post $post The post object. 392 392 * @return string[] 393 393 */ -
wplingua/trunk/inc/admin/translation-edit-modal.php
r3201266 r3265363 179 179 return; 180 180 } 181 182 181 } -
wplingua/trunk/inc/admin/translation-meta.php
r3258836 r3265363 27 27 'low' // Priority within the context 28 28 ); 29 30 29 } 31 30 … … 46 45 echo wplng_translation_editor_get_html( $post ); 47 46 echo '</div>'; 48 49 47 } 50 48 … … 58 56 function wplng_translation_editor_get_html( $post ) { 59 57 60 // used later for security58 // used later for security 61 59 $html = wp_nonce_field( 62 60 basename( __FILE__ ), … … 413 411 */ 414 412 415 $meta_return = update_post_meta(413 $meta_return = update_post_meta( 416 414 $post_id, 417 415 'wplng_translation_translations', -
wplingua/trunk/inc/api-call/translate.php
r3242916 r3265363 38 38 * - message : Error description 39 39 * 40 * @param array $texts40 * @param array $texts 41 41 * @param string $language_source_id 42 42 * @param string $language_target_id -
wplingua/trunk/inc/api-key.php
r3249995 r3265363 304 304 wplng_clear_translations_cache(); 305 305 wplng_clear_slugs_cache(); 306 307 } 306 } -
wplingua/trunk/inc/args.php
r3254383 r3265363 222 222 */ 223 223 224 $args['count_texts'] = count( $texts );224 $args['count_texts'] = count( $texts ); 225 225 226 226 /** -
wplingua/trunk/inc/assets.php
r3258836 r3265363 101 101 102 102 } 103 104 103 } 105 104 -
wplingua/trunk/inc/buffering.php
r3258836 r3265363 88 88 89 89 ob_start( 'wplng_ob_callback_page' ); 90 91 90 } 92 91 -
wplingua/trunk/inc/dictionary.php
r3097678 r3265363 110 110 111 111 usort( 112 $entries_clear, function( $a, $b ) { 112 $entries_clear, 113 function ( $a, $b ) { 113 114 return strlen( $b['source'] ) - strlen( $a['source'] ); 114 115 } -
wplingua/trunk/inc/dom/exclusion-put-tags.php
r3097678 r3265363 11 11 * 12 12 * @param object $dom 13 * @param array $excluded_elements13 * @param array $excluded_elements 14 14 * @return object 15 15 */ -
wplingua/trunk/inc/dom/exclusion-replace-tags.php
r3201266 r3265363 14 14 * 15 15 * @param object $dom The DOM object to process. 16 * @param array $excluded_elements An array of HTML parts to replace the exclusion tags.16 * @param array $excluded_elements An array of HTML parts to replace the exclusion tags. 17 17 * @return object The modified DOM object. 18 18 */ … … 48 48 } 49 49 50 $counter++;50 ++$counter; 51 51 } 52 52 -
wplingua/trunk/inc/dom/load-progress.php
r3145632 r3265363 11 11 * 12 12 * @param object $dom 13 * @param array $args13 * @param array $args 14 14 * @return object 15 15 */ -
wplingua/trunk/inc/dom/mode-editor.php
r3145632 r3265363 11 11 * 12 12 * @param object $dom 13 * @param array $args13 * @param array $args 14 14 * @return object 15 15 */ -
wplingua/trunk/inc/dom/replace-attr-dir.php
r3057068 r3265363 11 11 * 12 12 * @param object $dom 13 * @param array $args13 * @param array $args 14 14 * @return object 15 15 */ -
wplingua/trunk/inc/dom/replace-attr-lang.php
r3145632 r3265363 11 11 * 12 12 * @param object $dom 13 * @param array $args13 * @param array $args 14 14 * @return object 15 15 */ -
wplingua/trunk/inc/dom/replace-body-class.php
r3057068 r3265363 11 11 * 12 12 * @param object $dom 13 * @param array $args13 * @param array $args 14 14 * @return object 15 15 */ -
wplingua/trunk/inc/dom/replace-links.php
r3251920 r3265363 11 11 * 12 12 * @param object $dom 13 * @param array $args13 * @param array $args 14 14 * @return object 15 15 */ … … 66 66 $element->attr['srcset'] = esc_attr( $url_link_media_applied ); 67 67 } 68 69 68 } 70 69 -
wplingua/trunk/inc/dom/translate-attr-html.php
r3251920 r3265363 11 11 * 12 12 * @param object $dom 13 * @param array $args13 * @param array $args 14 14 * @return object 15 15 */ -
wplingua/trunk/inc/dom/translate-attr-texts.php
r3251920 r3265363 11 11 * 12 12 * @param object $dom 13 * @param array $args13 * @param array $args 14 14 * @return object 15 15 */ -
wplingua/trunk/inc/dom/translate-js.php
r3227135 r3265363 11 11 * 12 12 * @param object $dom 13 * @param array $args13 * @param array $args 14 14 * @return object 15 15 */ -
wplingua/trunk/inc/dom/translate-json.php
r3227135 r3265363 11 11 * 12 12 * @param object $dom 13 * @param array $args13 * @param array $args 14 14 * @return object 15 15 */ -
wplingua/trunk/inc/dom/translate-node-texts.php
r3251920 r3265363 11 11 * 12 12 * @param object $dom 13 * @param array $args13 * @param array $args 14 14 * @return object 15 15 */ -
wplingua/trunk/inc/heartbeat.php
r3258924 r3265363 19 19 $deleted = array(); 20 20 21 // Prevents frequent execution if the last heartbeat was within 10 minutes 21 22 if ( ! empty( $last_beat ) 22 23 && ( $last_beat + ( MINUTE_IN_SECONDS * 10 ) ) > $now … … 26 27 } 27 28 29 // Update last heartbeat timestamp 28 30 update_option( 'wplng_hb_last_update', $now ); 29 31 32 // Retrieve only post IDs for better performance 30 33 $args = array( 31 34 'post_type' => 'wplng_translation', … … 35 38 'update_post_meta_cache' => false, 36 39 'cache_results' => false, 40 'fields' => 'ids', // Retrieve only post IDs 37 41 ); 38 42 39 $ the_query = new WP_Query( $args );43 $post_ids = get_posts( $args ); 40 44 41 while ( $the_query->have_posts() ) { 45 if ( empty( $post_ids ) ) { 46 wp_send_json_success(); 47 return; 48 } 49 50 foreach ( $post_ids as $id ) { 42 51 43 52 if ( $counter <= 0 ) { … … 45 54 } 46 55 47 $the_query->the_post();48 49 $id = get_the_ID();50 56 $meta = get_post_meta( $id ); 51 57 52 if ( ! isset( $meta['wplng_translation_original'][0] ) 58 // Validate translation metadata 59 if ( empty( $meta['wplng_translation_original'][0] ) 53 60 || ! is_string( $meta['wplng_translation_original'][0] ) 54 || $meta['wplng_translation_original'][0] !== trim( $meta['wplng_translation_original'][0] )61 || trim( $meta['wplng_translation_original'][0] ) === '' 55 62 || empty( $meta['wplng_translation_translations'][0] ) 56 || ! isset( $meta['wplng_translation_md5'][0] )63 || empty( $meta['wplng_translation_md5'][0] ) 57 64 ) { 58 $counter--;65 --$counter; 59 66 60 67 $deleted[] = array( 61 68 'reason' => 'Invalid translation', 62 'title' => get_the_title( ),69 'title' => get_the_title( $id ), 63 70 'id' => $id, 64 71 ); 65 72 73 // Permanently delete the invalid translation 66 74 wp_delete_post( $id, true ); 67 75 } 68 76 } 69 77 70 wp_reset_postdata(); 71 72 /** 73 * Print debug data in debug.log file 74 */ 75 78 // Debug logging (if enabled) 76 79 if ( true === WPLNG_DEBUG_BEAT ) { 77 78 80 $debug = array( 79 81 'title' => 'wpLingua HeartBeat debug', … … 82 84 ); 83 85 84 error_log( 85 var_export( 86 $debug, 87 true 88 ) 89 ); 86 error_log( var_export( $debug, true ) ); 90 87 } 91 88 -
wplingua/trunk/inc/languages.php
r3258836 r3265363 145 145 * Get language name translated from language ID or data 146 146 * 147 * @param mixed $language Language ID or data147 * @param mixed $language Language ID or data 148 148 * @param string $language_target Language ID 149 149 * @return string Language name translated … … 513 513 $languages[] = wplng_get_language_by_id( $language_id_alow ); 514 514 } 515 515 516 516 $wplng_languages_allow = $languages; 517 517 } -
wplingua/trunk/inc/link-media.php
r3254383 r3265363 42 42 43 43 $source_clear = esc_attr( $entry['source'] ); 44 $source_clear = str_replace( 45 '[WPLNG_BACKSLASH]', 46 '\\', 47 $source_clear 44 $source_clear = str_replace( 45 '[WPLNG_BACKSLASH]', 46 '\\', 47 $source_clear 48 48 ); 49 49 … … 125 125 126 126 usort( 127 $entries_clear, function( $a, $b ) { 127 $entries_clear, 128 function ( $a, $b ) { 128 129 return strlen( $b['source'] ) - strlen( $a['source'] ); 129 130 } -
wplingua/trunk/inc/parser/json.php
r3251920 r3265363 11 11 * 12 12 * @param string $json 13 * @param array $parents13 * @param array $parents 14 14 * @return array Texts 15 15 */ -
wplingua/trunk/inc/search.php
r3094255 r3265363 88 88 */ 89 89 90 $query->set( 's', $translated_search );90 $query->set( 's', $translated_search ); 91 91 } 92 92 -
wplingua/trunk/inc/shortcode.php
r3251920 r3265363 10 10 * wpLingua Shortcode : [wplng_notranslate] 11 11 * 12 * @param array $atts12 * @param array $atts 13 13 * @param string $content 14 14 * @return string … … 27 27 * wpLingua Shortcode : [wplng_only] 28 28 * 29 * @param array $atts29 * @param array $atts 30 30 * @param string $content 31 31 * @return string … … 39 39 array( 40 40 'lang' => false, 41 ), $atts 41 ), 42 $atts 42 43 ); 43 44 … … 73 74 } 74 75 76 $content = wp_kses_post( $content ); 77 $content = do_shortcode( $content ); 78 75 79 $html = '<span class="notranslate">'; 76 $html .= wp_kses_post( do_shortcode( $content ) );80 $html .= $content; 77 81 $html .= '</span>'; 78 82 … … 97 101 'flags' => false, 98 102 'class' => false, 99 ), $atts 103 ), 104 $atts 100 105 ); 101 106 -
wplingua/trunk/inc/slug.php
r3254383 r3265363 10 10 * Get the original slug from a translation (without "/") 11 11 * 12 * @param string $slug13 * @param string $language_id12 * @param string $slug 13 * @param string $language_id 14 14 * @param array|false $slugs_translations 15 15 * @return array Original slug … … 114 114 * Get a translated slug 115 115 * 116 * @param string $slug117 * @param string $language_id116 * @param string $slug 117 * @param string $language_id 118 118 * @param array|false $slugs_translations 119 119 * @return string Translated slug … … 372 372 373 373 $slug_to_delete = array(); 374 375 $slugs = array(); 376 $args = array( 374 $slugs = array(); 375 $args = array( 377 376 'post_type' => 'wplng_slug', 378 377 'posts_per_page' => -1, … … 381 380 'update_post_meta_cache' => false, 382 381 'cache_results' => false, 383 ); 384 385 $the_query = new WP_Query( $args ); 386 387 while ( $the_query->have_posts() ) { 388 389 $the_query->the_post(); 390 391 $slug_id = get_the_ID(); 392 $meta = get_post_meta( $slug_id ); 393 394 /** 395 * Check and clear source slug 396 */ 397 382 'fields' => 'ids', // Only retrieve post IDs 383 ); 384 385 // Get all slug IDs 386 $post_ids = get_posts( $args ); 387 388 if ( empty( $post_ids ) ) { 389 return $slugs; 390 } 391 392 foreach ( $post_ids as $slug_id ) { 393 $meta = get_post_meta( $slug_id ); 394 395 // Check for valid source slug 398 396 if ( ! isset( $meta['wplng_slug_original'][0] ) 399 397 || ! is_string( $meta['wplng_slug_original'][0] ) … … 404 402 $source = sanitize_title( $meta['wplng_slug_original'][0] ); 405 403 406 if ( 'index-php' === $source 407 || 'wp-includes' === $source 408 || 'wp-json' === $source 409 || 'go' === $source 410 || 'refer' === $source 411 || 'recommend' === $source 412 || 'recommends' === $source 404 // Skip unwanted slugs and mark them for deletion 405 if ( in_array( 406 $source, 407 array( 408 'index-php', 409 'wp-includes', 410 'wp-json', 411 'go', 412 'refer', 413 'recommend', 414 'recommends', 415 ), 416 true 417 ) 413 418 ) { 414 419 $slug_to_delete[] = $slug_id; … … 416 421 } 417 422 418 /** 419 * Check and clear slug translations, setup review array 420 */ 421 423 // Check for translations and build translation array 422 424 if ( empty( $meta['wplng_slug_translations'][0] ) ) { 423 425 continue; 424 426 } 425 427 426 $translations _meta = json_decode(427 $meta['wplng_slug_translations'][0],428 true 429 );430 431 $translations = array();428 $translations = array(); 429 $translations_meta = json_decode( $meta['wplng_slug_translations'][0], true ); 430 431 if ( ! is_array( $translations_meta ) ) { 432 continue; 433 } 432 434 433 435 foreach ( $translations_meta as $translation_meta ) { 434 436 435 /** 436 * Language ID 437 */ 438 437 // Validate language ID 439 438 if ( empty( $translation_meta['language_id'] ) 440 439 || ! wplng_is_valid_language_id( $translation_meta['language_id'] ) … … 445 444 $language_id = sanitize_key( $translation_meta['language_id'] ); 446 445 447 /** 448 * Slug translation 449 */ 450 446 // Check and validate slug translation 451 447 if ( empty( $translation_meta['translation'] ) 452 448 || ! is_string( $translation_meta['translation'] ) … … 457 453 } 458 454 459 $translation = sanitize_title( $translation_meta['translation'] );460 461 $translations[ $language_id ] = $translation;462 } 463 455 // Sanitize and add valid translation 456 $translations[ $language_id ] = sanitize_title( $translation_meta['translation'] ); 457 } 458 459 // Add source and translations to slugs array 464 460 $slugs[] = array( 465 461 'source' => $source, 466 462 'translations' => $translations, 467 463 ); 468 469 } 470 471 wp_reset_postdata(); 472 464 } 465 466 // Delete invalid slugs, limit to 32 deletions 473 467 if ( ! empty( $slug_to_delete ) ) { 474 foreach ( $slug_to_delete as $key => $id ) { 475 if ( $key >= 32 ) { 476 break; 477 } 468 469 foreach ( array_slice( $slug_to_delete, 0, 32 ) as $id ) { 478 470 wp_delete_post( $id, true ); 479 471 } 480 set_transient( 481 'wplng_cached_slugs', 482 $slugs, 483 30 484 ); 472 473 // Cache slugs for 30 seconds after deletion 474 set_transient( 'wplng_cached_slugs', $slugs, 30 ); 475 485 476 } else { 486 set_transient( 487 'wplng_cached_slugs', 488 $slugs, 489 MONTH_IN_SECONDS 490 ); 477 // Cache slugs for a month if no deletions occurred 478 set_transient( 'wplng_cached_slugs', $slugs, MONTH_IN_SECONDS ); 491 479 } 492 480 … … 551 539 function wplng_get_slug_saved_from_original( $original ) { 552 540 553 $translation = false; 554 $original = trim( strtolower( $original ) ); 541 $original = trim( strtolower( $original ) ); 542 543 if ( empty( $original ) ) { 544 return false; 545 } 555 546 556 547 $args = array( … … 564 555 ), 565 556 ), 566 ); 567 568 $the_query = new WP_Query( $args ); 569 570 // The Loop 571 while ( $the_query->have_posts() ) { 572 573 $the_query->the_post(); 574 575 $meta = get_post_meta( get_the_ID() ); 576 577 if ( ! isset( $meta['wplng_slug_original'][0] ) 578 || ! is_string( $meta['wplng_slug_original'][0] ) 557 'fields' => 'ids', 558 ); 559 560 $posts = get_posts( $args ); 561 562 if ( empty( $posts ) ) { 563 return false; 564 } 565 566 foreach ( $posts as $post_id ) { 567 568 $meta = get_post_meta( $post_id ); 569 570 if ( isset( $meta['wplng_slug_original'][0] ) 571 && is_string( $meta['wplng_slug_original'][0] ) 572 && $meta['wplng_slug_original'][0] === $original 579 573 ) { 580 continue; 581 } 582 583 if ( $meta['wplng_slug_original'][0] === $original ) { 584 $translation = get_post(); 585 break; 586 } 587 } 588 589 wp_reset_postdata(); 590 591 return $translation; 574 return get_post( $post_id ); 575 } 576 } 577 578 return false; 592 579 } 593 580 -
wplingua/trunk/inc/switcher-nav-menu.php
r3262485 r3265363 69 69 ), 70 70 ); 71 72 71 } 73 72 … … 277 276 $new_items[] = $new_item; 278 277 279 $offset++;278 ++$offset; 280 279 } 281 280 … … 355 354 $new_items[] = $new_item; 356 355 357 $offset++;356 ++$offset; 358 357 } 359 358 } // End foreach $items … … 366 365 * Add attribute in nav menu switcher 367 366 * 368 * @param array $atts367 * @param array $atts 369 368 * @param WP_Post $menu_item 370 369 * @return array -
wplingua/trunk/inc/translation.php
r3258924 r3265363 11 11 * 12 12 * @param string $text 13 * @param array $translations13 * @param array $translations 14 14 * @return string 15 15 */ … … 68 68 function wplng_get_translation_saved_from_original( $original ) { 69 69 70 $translation = false; 70 if ( empty( $original ) ) { 71 return false; 72 } 71 73 72 74 $args = array( … … 80 82 ), 81 83 ), 82 ); 83 84 $the_query = new WP_Query( $args ); 85 86 // The Loop 87 while ( $the_query->have_posts() ) { 88 89 $the_query->the_post(); 90 91 $meta = get_post_meta( get_the_ID() ); 92 93 if ( ! isset( $meta['wplng_translation_original'][0] ) 94 || ! is_string( $meta['wplng_translation_original'][0] ) 84 'fields' => 'ids', 85 ); 86 87 $posts = get_posts( $args ); 88 89 if ( empty( $posts ) ) { 90 return false; 91 } 92 93 foreach ( $posts as $post_id ) { 94 95 $meta = get_post_meta( $post_id ); 96 97 if ( isset( $meta['wplng_translation_original'][0] ) 98 && is_string( $meta['wplng_translation_original'][0] ) 99 && $meta['wplng_translation_original'][0] === $original 95 100 ) { 96 continue; 97 } 98 99 if ( $meta['wplng_translation_original'][0] === $original ) { 100 $translation = get_post(); 101 break; 102 } 103 } 104 105 wp_reset_postdata(); 106 107 return $translation; 101 return get_post( $post_id ); 102 } 103 } 104 105 return false; 108 106 } 109 107 … … 117 115 118 116 $translations = array(); 119 $args = array( 117 118 $args = array( 120 119 'post_type' => 'wplng_translation', 121 120 'posts_per_page' => -1, … … 124 123 'update_post_meta_cache' => false, 125 124 'cache_results' => false, 126 ); 127 128 $the_query = new WP_Query( $args ); 129 130 while ( $the_query->have_posts() ) { 131 132 $the_query->the_post(); 133 134 $id = get_the_ID(); 125 'fields' => 'ids', // Retrieve only post IDs for better performance 126 ); 127 128 $post_ids = get_posts( $args ); 129 130 if ( empty( $post_ids ) ) { 131 return array(); 132 } 133 134 foreach ( $post_ids as $id ) { 135 135 136 $meta = get_post_meta( $id ); 136 137 137 if ( ! isset( $meta['wplng_translation_original'][0] ) 138 // Ensure 'wplng_translation_original' exists and is a valid string 139 if ( empty( $meta['wplng_translation_original'][0] ) 138 140 || ! is_string( $meta['wplng_translation_original'][0] ) 139 || $meta['wplng_translation_original'][0] !== trim( $meta['wplng_translation_original'][0] )141 || trim( $meta['wplng_translation_original'][0] ) === '' 140 142 ) { 141 143 continue; 142 144 } 143 145 144 $source = wplng_text_esc( $meta['wplng_translation_original'][0]);146 $source = wplng_text_esc( trim( $meta['wplng_translation_original'][0] ) ); 145 147 146 148 $translation = array( … … 151 153 ); 152 154 153 // Get translation for current language target155 // Ensure 'wplng_translation_translations' exists 154 156 if ( empty( $meta['wplng_translation_translations'][0] ) ) { 155 157 continue; 156 158 } 157 159 158 $translations_meta = json_decode( 159 $meta['wplng_translation_translations'][0], 160 true 161 ); 160 $translations_meta = json_decode( $meta['wplng_translation_translations'][0], true ); 161 162 // Ensure JSON decoding was successful 163 if ( ! is_array( $translations_meta ) ) { 164 continue; 165 } 162 166 163 167 foreach ( $translations_meta as $translation_meta ) { 164 168 // Validate each translation entry 165 169 if ( empty( $translation_meta['language_id'] ) 166 170 || ! wplng_is_valid_language_id( $translation_meta['language_id'] ) 167 || $translation_meta['translation'] === '[WPLNG_EMPTY]' 171 || ( 172 isset( $translation_meta['translation'] ) 173 && $translation_meta['translation'] === '[WPLNG_EMPTY]' 174 ) 168 175 ) { 169 176 continue; … … 180 187 } 181 188 182 if ( isset( $translation_meta['status'] ) && is_int( $translation_meta['status'] ) ) { 189 if ( isset( $translation_meta['status'] ) 190 && is_int( $translation_meta['status'] ) 191 ) { 183 192 $translation['review'][] = $language_id; 184 193 } 185 194 } 186 195 196 // Skip entries with no valid translations 187 197 if ( empty( $translation['translations'] ) ) { 188 198 continue; … … 192 202 } 193 203 194 wp_reset_postdata(); 195 204 // Cache translations for better performance 196 205 set_transient( 197 206 'wplng_cached_translations', … … 202 211 return $translations; 203 212 } 213 204 214 205 215 … … 261 271 * @param string $language_id 262 272 * @param string $original 263 * @param array $translation273 * @param array $translation 264 274 * @return int|false Post ID or false on failure 265 275 */ … … 457 467 * @param object $post 458 468 * @param string $language_id 459 * @param array $translation469 * @param array $translation 460 470 * @return int|false Post ID, false on failure 461 471 */ … … 589 599 * Save a list of translations 590 600 * 591 * @param array $translations601 * @param array $translations 592 602 * @param string $language_target_id 593 603 * @return array $translations with post IDs … … 627 637 * @param string $target_language_id 628 638 * @param string $original 629 * @param array $translation639 * @param array $translation 630 640 * @return array $translation with post ID 631 641 */ … … 653 663 wplng_clear_translations_cache(); 654 664 } 655 656 665 } 657 666 -
wplingua/trunk/inc/translator/html.php
r3251920 r3265363 11 11 * 12 12 * @param string $html 13 * @param array $args13 * @param array $args 14 14 * @return string 15 15 */ -
wplingua/trunk/inc/translator/js.php
r3225204 r3265363 14 14 * 15 15 * @param string $js The JavaScript code to translate. 16 * @param array $args Additional arguments for translation processing.16 * @param array $args Additional arguments for translation processing. 17 17 * @return string The translated JavaScript code. 18 18 */ -
wplingua/trunk/inc/translator/json.php
r3258836 r3265363 11 11 * 12 12 * @param string $json 13 * @param array $args13 * @param array $args 14 14 * @return string 15 15 */ … … 191 191 192 192 $debug_type = 'String - JSON'; 193 $args['parents'] = array_merge( $args['parents'], [ $key ]);193 $args['parents'] = array_merge( $args['parents'], array( $key ) ); 194 194 195 195 $array_translated[ $key ] = wplng_translate_json( -
wplingua/trunk/inc/url.php
r3254383 r3265363 150 150 return apply_filters( 151 151 'wplng_url_is_translatable', 152 wplng_url_is_translatable_no_filter( $url ) 152 wplng_url_is_translatable_no_filter( $url ), 153 $url 153 154 ); 154 155 } -
wplingua/trunk/inc/util.php
r3258845 r3265363 234 234 * 235 235 * @param string $element 236 * @param array $parents236 * @param array $parents 237 237 * @return bool 238 238 */ … … 297 297 */ 298 298 299 $is_translatable = true;299 $is_translatable = true; 300 300 301 301 } elseif ( -
wplingua/trunk/loader.php
r3262485 r3265363 10 10 */ 11 11 12 // Require data functions12 // Require data functions 13 13 require_once WPLNG_PLUGIN_PATH . '/data.php'; 14 14 -
wplingua/trunk/readme.txt
r3262485 r3265363 5 5 Requires at least: 6.0 6 6 Tested up to: 6.7 7 Stable tag: 2.5. 37 Stable tag: 2.5.4 8 8 Requires PHP: 7.4 9 9 License: GPLv2 or later … … 191 191 192 192 == Changelog == 193 194 = 2.5.4 = 195 196 * Better admin UX 197 * Better shortcode: wplng_only 198 * Better hook: wplng_url_is_translatable filter 199 * Review and optimize the queries (slug and translation) 200 * Re-format all code with better formater 193 201 194 202 = 2.5.3 = -
wplingua/trunk/wplingua.php
r3262485 r3265363 8 8 * Text Domain: wplingua 9 9 * Domain Path: /languages/ 10 * Version: 2.5. 310 * Version: 2.5.4 11 11 * Requires PHP: 7.4 12 12 * License: GPL v2 or later … … 25 25 define( 'WPLNG_API_VERSION', '2.0' ); 26 26 define( 'WPLNG_API_SSLVERIFY', true ); 27 define( 'WPLNG_PLUGIN_VERSION', '2.5. 3' );27 define( 'WPLNG_PLUGIN_VERSION', '2.5.4' ); 28 28 define( 'WPLNG_PLUGIN_FILE', plugin_basename( __FILE__ ) ); 29 define( 'WPLNG_PLUGIN_PATH', dirname( __FILE__ ));29 define( 'WPLNG_PLUGIN_PATH', __DIR__ ); 30 30 define( 'WPLNG_PHP_MIN_VERSION', '7.4' ); 31 31 define( 'WPLNG_MAX_TRANSLATIONS', 256 ); … … 287 287 */ 288 288 289 // Manage URL with REQUEST_URI and start OB289 // Manage URL with REQUEST_URI and start OB 290 290 add_action( 'init', 'wplng_ob_start', 1 ); 291 291 … … 323 323 324 324 } 325 326 325 } 327 326 wplng_start();
Note: See TracChangeset
for help on using the changeset viewer.