├── .distignore
├── CODEOWNERS
├── Changelog.md
├── Diagrams.md
├── LICENSE
├── MultisiteLanguageSwitcher.php
├── README.md
├── bin
├── deploy.sh
├── flags-png.php
├── flags-svg.php
├── git-release.sh
└── githooks
│ └── pre-commit
├── build
├── exclude
├── phploc.xml
└── translations.json
├── composer.json
├── css-flags
├── css
│ ├── flag-icon.css
│ └── flag-icon.min.css
├── flags.php
└── flags
│ ├── 1x1
│ ├── ad.svg
│ ├── ae.svg
│ ├── af.svg
│ ├── ag.svg
│ ├── ai.svg
│ ├── al.svg
│ ├── am.svg
│ ├── ao.svg
│ ├── aq.svg
│ ├── ar.svg
│ ├── as.svg
│ ├── at.svg
│ ├── au.svg
│ ├── aw.svg
│ ├── ax.svg
│ ├── az.svg
│ ├── ba.svg
│ ├── bb.svg
│ ├── bd.svg
│ ├── be.svg
│ ├── bf.svg
│ ├── bg.svg
│ ├── bh.svg
│ ├── bi.svg
│ ├── bj.svg
│ ├── bl.svg
│ ├── bm.svg
│ ├── bn.svg
│ ├── bo.svg
│ ├── bq.svg
│ ├── br.svg
│ ├── bs.svg
│ ├── bt.svg
│ ├── bv.svg
│ ├── bw.svg
│ ├── by.svg
│ ├── bz.svg
│ ├── ca.svg
│ ├── cc.svg
│ ├── cd.svg
│ ├── cf.svg
│ ├── cg.svg
│ ├── ch.svg
│ ├── ci.svg
│ ├── ck.svg
│ ├── cl.svg
│ ├── cm.svg
│ ├── cn.svg
│ ├── co.svg
│ ├── cr.svg
│ ├── cu.svg
│ ├── cv.svg
│ ├── cw.svg
│ ├── cx.svg
│ ├── cy.svg
│ ├── cz.svg
│ ├── de.svg
│ ├── dj.svg
│ ├── dk.svg
│ ├── dm.svg
│ ├── do.svg
│ ├── dz.svg
│ ├── ec.svg
│ ├── ee.svg
│ ├── eg.svg
│ ├── eh.svg
│ ├── er.svg
│ ├── es-ca.svg
│ ├── es.svg
│ ├── et.svg
│ ├── eu.svg
│ ├── fi.svg
│ ├── fj.svg
│ ├── fk.svg
│ ├── fm.svg
│ ├── fo.svg
│ ├── fr.svg
│ ├── ga.svg
│ ├── gb-eng.svg
│ ├── gb-nir.svg
│ ├── gb-sct.svg
│ ├── gb-wls.svg
│ ├── gb.svg
│ ├── gd.svg
│ ├── ge.svg
│ ├── gf.svg
│ ├── gg.svg
│ ├── gh.svg
│ ├── gi.svg
│ ├── gl.svg
│ ├── gm.svg
│ ├── gn.svg
│ ├── gp.svg
│ ├── gq.svg
│ ├── gr.svg
│ ├── gs.svg
│ ├── gt.svg
│ ├── gu.svg
│ ├── gw.svg
│ ├── gy.svg
│ ├── hk.svg
│ ├── hm.svg
│ ├── hn.svg
│ ├── hr.svg
│ ├── ht.svg
│ ├── hu.svg
│ ├── id.svg
│ ├── ie.svg
│ ├── il.svg
│ ├── im.svg
│ ├── in.svg
│ ├── io.svg
│ ├── iq.svg
│ ├── ir.svg
│ ├── is.svg
│ ├── it.svg
│ ├── je.svg
│ ├── jm.svg
│ ├── jo.svg
│ ├── jp.svg
│ ├── ke.svg
│ ├── kg.svg
│ ├── kh.svg
│ ├── ki.svg
│ ├── km.svg
│ ├── kn.svg
│ ├── kp.svg
│ ├── kr.svg
│ ├── kw.svg
│ ├── ky.svg
│ ├── kz.svg
│ ├── la.svg
│ ├── lb.svg
│ ├── lc.svg
│ ├── li.svg
│ ├── lk.svg
│ ├── lr.svg
│ ├── ls.svg
│ ├── lt.svg
│ ├── lu.svg
│ ├── lv.svg
│ ├── ly.svg
│ ├── ma.svg
│ ├── mc.svg
│ ├── md.svg
│ ├── me.svg
│ ├── mf.svg
│ ├── mg.svg
│ ├── mh.svg
│ ├── mk.svg
│ ├── ml.svg
│ ├── mm.svg
│ ├── mn.svg
│ ├── mo.svg
│ ├── mp.svg
│ ├── mq.svg
│ ├── mr.svg
│ ├── ms.svg
│ ├── mt.svg
│ ├── mu.svg
│ ├── mv.svg
│ ├── mw.svg
│ ├── mx.svg
│ ├── my.svg
│ ├── mz.svg
│ ├── na.svg
│ ├── nc.svg
│ ├── ne.svg
│ ├── nf.svg
│ ├── ng.svg
│ ├── ni.svg
│ ├── nl.svg
│ ├── no.svg
│ ├── np.svg
│ ├── nr.svg
│ ├── nu.svg
│ ├── nz.svg
│ ├── om.svg
│ ├── pa.svg
│ ├── pe.svg
│ ├── pf.svg
│ ├── pg.svg
│ ├── ph.svg
│ ├── pk.svg
│ ├── pl.svg
│ ├── pm.svg
│ ├── pn.svg
│ ├── pr.svg
│ ├── ps.svg
│ ├── pt.svg
│ ├── pw.svg
│ ├── py.svg
│ ├── qa.svg
│ ├── re.svg
│ ├── ro.svg
│ ├── rs.svg
│ ├── ru.svg
│ ├── rw.svg
│ ├── sa.svg
│ ├── sb.svg
│ ├── sc.svg
│ ├── sd.svg
│ ├── se.svg
│ ├── sg.svg
│ ├── sh.svg
│ ├── si.svg
│ ├── sj.svg
│ ├── sk.svg
│ ├── sl.svg
│ ├── sm.svg
│ ├── sn.svg
│ ├── so.svg
│ ├── sr.svg
│ ├── ss.svg
│ ├── st.svg
│ ├── sv.svg
│ ├── sx.svg
│ ├── sy.svg
│ ├── sz.svg
│ ├── tc.svg
│ ├── td.svg
│ ├── tf.svg
│ ├── tg.svg
│ ├── th.svg
│ ├── tj.svg
│ ├── tk.svg
│ ├── tl.svg
│ ├── tm.svg
│ ├── tn.svg
│ ├── to.svg
│ ├── tr.svg
│ ├── tt.svg
│ ├── tv.svg
│ ├── tw.svg
│ ├── tz.svg
│ ├── ua.svg
│ ├── ug.svg
│ ├── um.svg
│ ├── un.svg
│ ├── us.svg
│ ├── uy.svg
│ ├── uz.svg
│ ├── va.svg
│ ├── vc.svg
│ ├── ve.svg
│ ├── vg.svg
│ ├── vi.svg
│ ├── vn.svg
│ ├── vu.svg
│ ├── wf.svg
│ ├── ws.svg
│ ├── xk.svg
│ ├── ye.svg
│ ├── yt.svg
│ ├── za.svg
│ ├── zm.svg
│ └── zw.svg
│ └── 4x3
│ ├── ad.svg
│ ├── ae.svg
│ ├── af.svg
│ ├── ag.svg
│ ├── ai.svg
│ ├── al.svg
│ ├── am.svg
│ ├── ao.svg
│ ├── aq.svg
│ ├── ar.svg
│ ├── as.svg
│ ├── at.svg
│ ├── au.svg
│ ├── aw.svg
│ ├── ax.svg
│ ├── az.svg
│ ├── ba.svg
│ ├── bb.svg
│ ├── bd.svg
│ ├── be.svg
│ ├── bf.svg
│ ├── bg.svg
│ ├── bh.svg
│ ├── bi.svg
│ ├── bj.svg
│ ├── bl.svg
│ ├── bm.svg
│ ├── bn.svg
│ ├── bo.svg
│ ├── bq.svg
│ ├── br.svg
│ ├── bs.svg
│ ├── bt.svg
│ ├── bv.svg
│ ├── bw.svg
│ ├── by.svg
│ ├── bz.svg
│ ├── ca.svg
│ ├── cc.svg
│ ├── cd.svg
│ ├── cf.svg
│ ├── cg.svg
│ ├── ch.svg
│ ├── ci.svg
│ ├── ck.svg
│ ├── cl.svg
│ ├── cm.svg
│ ├── cn.svg
│ ├── co.svg
│ ├── cr.svg
│ ├── cu.svg
│ ├── cv.svg
│ ├── cw.svg
│ ├── cx.svg
│ ├── cy.svg
│ ├── cz.svg
│ ├── de.svg
│ ├── dj.svg
│ ├── dk.svg
│ ├── dm.svg
│ ├── do.svg
│ ├── dz.svg
│ ├── ec.svg
│ ├── ee.svg
│ ├── eg.svg
│ ├── eh.svg
│ ├── er.svg
│ ├── es-ca.svg
│ ├── es.svg
│ ├── et.svg
│ ├── eu.svg
│ ├── fi.svg
│ ├── fj.svg
│ ├── fk.svg
│ ├── fm.svg
│ ├── fo.svg
│ ├── fr.svg
│ ├── ga.svg
│ ├── gb-eng.svg
│ ├── gb-nir.svg
│ ├── gb-sct.svg
│ ├── gb-wls.svg
│ ├── gb.svg
│ ├── gd.svg
│ ├── ge.svg
│ ├── gf.svg
│ ├── gg.svg
│ ├── gh.svg
│ ├── gi.svg
│ ├── gl.svg
│ ├── gm.svg
│ ├── gn.svg
│ ├── gp.svg
│ ├── gq.svg
│ ├── gr.svg
│ ├── gs.svg
│ ├── gt.svg
│ ├── gu.svg
│ ├── gw.svg
│ ├── gy.svg
│ ├── hk.svg
│ ├── hm.svg
│ ├── hn.svg
│ ├── hr.svg
│ ├── ht.svg
│ ├── hu.svg
│ ├── id.svg
│ ├── ie.svg
│ ├── il.svg
│ ├── im.svg
│ ├── in.svg
│ ├── io.svg
│ ├── iq.svg
│ ├── ir.svg
│ ├── is.svg
│ ├── it.svg
│ ├── je.svg
│ ├── jm.svg
│ ├── jo.svg
│ ├── jp.svg
│ ├── ke.svg
│ ├── kg.svg
│ ├── kh.svg
│ ├── ki.svg
│ ├── km.svg
│ ├── kn.svg
│ ├── kp.svg
│ ├── kr.svg
│ ├── kw.svg
│ ├── ky.svg
│ ├── kz.svg
│ ├── la.svg
│ ├── lb.svg
│ ├── lc.svg
│ ├── li.svg
│ ├── lk.svg
│ ├── lr.svg
│ ├── ls.svg
│ ├── lt.svg
│ ├── lu.svg
│ ├── lv.svg
│ ├── ly.svg
│ ├── ma.svg
│ ├── mc.svg
│ ├── md.svg
│ ├── me.svg
│ ├── mf.svg
│ ├── mg.svg
│ ├── mh.svg
│ ├── mk.svg
│ ├── ml.svg
│ ├── mm.svg
│ ├── mn.svg
│ ├── mo.svg
│ ├── mp.svg
│ ├── mq.svg
│ ├── mr.svg
│ ├── ms.svg
│ ├── mt.svg
│ ├── mu.svg
│ ├── mv.svg
│ ├── mw.svg
│ ├── mx.svg
│ ├── my.svg
│ ├── mz.svg
│ ├── na.svg
│ ├── nc.svg
│ ├── ne.svg
│ ├── nf.svg
│ ├── ng.svg
│ ├── ni.svg
│ ├── nl.svg
│ ├── no.svg
│ ├── np.svg
│ ├── nr.svg
│ ├── nu.svg
│ ├── nz.svg
│ ├── om.svg
│ ├── pa.svg
│ ├── pe.svg
│ ├── pf.svg
│ ├── pg.svg
│ ├── ph.svg
│ ├── pk.svg
│ ├── pl.svg
│ ├── pm.svg
│ ├── pn.svg
│ ├── pr.svg
│ ├── ps.svg
│ ├── pt.svg
│ ├── pw.svg
│ ├── py.svg
│ ├── qa.svg
│ ├── re.svg
│ ├── ro.svg
│ ├── rs.svg
│ ├── ru.svg
│ ├── rw.svg
│ ├── sa.svg
│ ├── sb.svg
│ ├── sc.svg
│ ├── sd.svg
│ ├── se.svg
│ ├── sg.svg
│ ├── sh.svg
│ ├── si.svg
│ ├── sj.svg
│ ├── sk.svg
│ ├── sl.svg
│ ├── sm.svg
│ ├── sn.svg
│ ├── so.svg
│ ├── sr.svg
│ ├── ss.svg
│ ├── st.svg
│ ├── sv.svg
│ ├── sx.svg
│ ├── sy.svg
│ ├── sz.svg
│ ├── tc.svg
│ ├── td.svg
│ ├── tf.svg
│ ├── tg.svg
│ ├── th.svg
│ ├── tj.svg
│ ├── tk.svg
│ ├── tl.svg
│ ├── tm.svg
│ ├── tn.svg
│ ├── to.svg
│ ├── tr.svg
│ ├── tt.svg
│ ├── tv.svg
│ ├── tw.svg
│ ├── tz.svg
│ ├── ua.svg
│ ├── ug.svg
│ ├── um.svg
│ ├── un.svg
│ ├── us.svg
│ ├── uy.svg
│ ├── uz.svg
│ ├── va.svg
│ ├── vc.svg
│ ├── ve.svg
│ ├── vg.svg
│ ├── vi.svg
│ ├── vn.svg
│ ├── vu.svg
│ ├── wf.svg
│ ├── ws.svg
│ ├── xk.svg
│ ├── ye.svg
│ ├── yt.svg
│ ├── za.svg
│ ├── zm.svg
│ └── zw.svg
├── css
├── flags.php
├── index.php
├── msls.css
└── msls.less
├── diagrams
├── class-diagram.png
├── msls-class.puml
├── msls-package.puml
└── package-related-diagram.png
├── flags
├── ad.png
├── ae.png
├── af.png
├── ag.png
├── ai.png
├── al.png
├── am.png
├── an.png
├── ao.png
├── ar.png
├── arableague.png
├── as.png
├── at.png
├── au.png
├── aw.png
├── ax.png
├── az.png
├── ba.png
├── bb.png
├── bd.png
├── be.png
├── bf.png
├── bg.png
├── bh.png
├── bi.png
├── bj.png
├── bm.png
├── bn.png
├── bo.png
├── br.png
├── bs.png
├── bt.png
├── bv.png
├── bw.png
├── by.png
├── bz.png
├── ca.png
├── catalonia.png
├── cc.png
├── cd.png
├── cf.png
├── cg.png
├── ch.png
├── ci.png
├── ck.png
├── cl.png
├── cm.png
├── cn.png
├── co.png
├── cr.png
├── cs.png
├── cu.png
├── cv.png
├── cx.png
├── cy.png
├── cz.png
├── de.png
├── dj.png
├── dk.png
├── dm.png
├── do.png
├── dz.png
├── ec.png
├── ee.png
├── eg.png
├── eh.png
├── england.png
├── er.png
├── es.png
├── et.png
├── europeanunion.png
├── fam.png
├── fi.png
├── fj.png
├── fk.png
├── flags.php
├── fm.png
├── fo.png
├── fr.png
├── ga.png
├── gb.png
├── gd.png
├── ge.png
├── gf.png
├── gh.png
├── gi.png
├── gl.png
├── gm.png
├── gn.png
├── gp.png
├── gq.png
├── gr.png
├── gs.png
├── gt.png
├── gu.png
├── gw.png
├── gy.png
├── hk.png
├── hm.png
├── hn.png
├── hr.png
├── ht.png
├── hu.png
├── id.png
├── ie.png
├── il.png
├── in.png
├── index.php
├── io.png
├── iq.png
├── ir.png
├── is.png
├── it.png
├── jm.png
├── jo.png
├── jp.png
├── ke.png
├── kg.png
├── kh.png
├── ki.png
├── km.png
├── kn.png
├── kp.png
├── kr.png
├── kw.png
├── ky.png
├── kz.png
├── la.png
├── lb.png
├── lc.png
├── li.png
├── lk.png
├── lr.png
├── ls.png
├── lt.png
├── lu.png
├── lv.png
├── ly.png
├── ma.png
├── mc.png
├── md.png
├── me.png
├── mg.png
├── mh.png
├── mk.png
├── ml.png
├── mm.png
├── mn.png
├── mo.png
├── mp.png
├── mq.png
├── mr.png
├── ms.png
├── mt.png
├── mu.png
├── mv.png
├── mw.png
├── mx.png
├── my.png
├── mz.png
├── na.png
├── nc.png
├── ne.png
├── nf.png
├── ng.png
├── ni.png
├── nl.png
├── no.png
├── np.png
├── nr.png
├── nu.png
├── nz.png
├── om.png
├── pa.png
├── pe.png
├── pf.png
├── pg.png
├── ph.png
├── pk.png
├── pl.png
├── pm.png
├── pn.png
├── pr.png
├── ps.png
├── pt.png
├── pw.png
├── py.png
├── qa.png
├── re.png
├── ro.png
├── rs.png
├── ru.png
├── rw.png
├── sa.png
├── sb.png
├── sc.png
├── scotland.png
├── sd.png
├── se.png
├── sg.png
├── sh.png
├── si.png
├── sj.png
├── sk.png
├── sl.png
├── sm.png
├── sn.png
├── so.png
├── sr.png
├── st.png
├── sv.png
├── sy.png
├── sz.png
├── tc.png
├── td.png
├── tf.png
├── tg.png
├── th.png
├── tj.png
├── tk.png
├── tl.png
├── tm.png
├── tn.png
├── to.png
├── tr.png
├── tt.png
├── tv.png
├── tw.png
├── tz.png
├── ua.png
├── ug.png
├── um.png
├── us.png
├── uy.png
├── uz.png
├── va.png
├── vc.png
├── ve.png
├── vg.png
├── vi.png
├── vn.png
├── vu.png
├── wales.png
├── wf.png
├── ws.png
├── ye.png
├── yt.png
├── za.png
├── zm.png
└── zw.png
├── images
├── index.php
├── link_add.png
└── link_edit.png
├── includes
├── Component
│ ├── Component.php
│ ├── Icon.php
│ ├── Icon
│ │ ├── IconLabel.php
│ │ ├── IconPng.php
│ │ └── IconSvg.php
│ ├── Input
│ │ ├── Checkbox.php
│ │ ├── Group.php
│ │ ├── Label.php
│ │ ├── Option.php
│ │ ├── Select.php
│ │ └── Text.php
│ └── Wrapper.php
├── ContentImport
│ ├── AttachmentPathFinder.php
│ ├── ContentImporter.php
│ ├── ImportCoordinates.php
│ ├── ImportLogger.php
│ ├── Importers
│ │ ├── Attachments
│ │ │ └── Linking.php
│ │ ├── AttachmentsImporters.php
│ │ ├── BaseImporter.php
│ │ ├── Importer.php
│ │ ├── ImportersBaseFactory.php
│ │ ├── ImportersFactory.php
│ │ ├── Map.php
│ │ ├── PostFields
│ │ │ └── Duplicating.php
│ │ ├── PostFieldsImporters.php
│ │ ├── PostMeta
│ │ │ └── Duplicating.php
│ │ ├── PostMetaImporters.php
│ │ ├── PostThumbnail
│ │ │ └── Linking.php
│ │ ├── PostThumbnailImporters.php
│ │ ├── Terms
│ │ │ └── ShallowDuplicating.php
│ │ ├── TermsImporters.php
│ │ └── WithRequestPostAttributes.php
│ ├── LogWriters
│ │ ├── AdminNoticeLogger.php
│ │ └── LogWriter.php
│ ├── MetaBox.php
│ ├── Relations.php
│ └── Service.php
├── LinkInterface.php
├── Map
│ └── HrefLang.php
├── MslsAdmin.php
├── MslsAdminBar.php
├── MslsAdminIcon.php
├── MslsAdminIconTaxonomy.php
├── MslsBlock.php
├── MslsBlog.php
├── MslsBlogCollection.php
├── MslsCli.php
├── MslsContentFilter.php
├── MslsContentTypes.php
├── MslsCustomColumn.php
├── MslsCustomColumnTaxonomy.php
├── MslsCustomFilter.php
├── MslsFields.php
├── MslsGetSet.php
├── MslsJson.php
├── MslsLanguageArray.php
├── MslsLink.php
├── MslsLinkImageOnly.php
├── MslsLinkTextImage.php
├── MslsLinkTextOnly.php
├── MslsMain.php
├── MslsMetaBox.php
├── MslsOptions.php
├── MslsOptionsPost.php
├── MslsOptionsQuery.php
├── MslsOptionsQueryAuthor.php
├── MslsOptionsQueryDay.php
├── MslsOptionsQueryMonth.php
├── MslsOptionsQueryPostType.php
├── MslsOptionsQueryYear.php
├── MslsOptionsTax.php
├── MslsOptionsTaxTerm.php
├── MslsOptionsTaxTermCategory.php
├── MslsOutput.php
├── MslsPlugin.php
├── MslsPostTag.php
├── MslsPostTagClassic.php
├── MslsPostType.php
├── MslsRegistry.php
├── MslsRegistryInstance.php
├── MslsRequest.php
├── MslsShortCode.php
├── MslsSqlCacher.php
├── MslsTaxonomy.php
├── MslsWidget.php
├── OptionsInterface.php
├── OptionsTaxInterface.php
├── Query
│ ├── AbstractQuery.php
│ ├── AuthorPostsCounterQuery.php
│ ├── BlogsInNetworkQuery.php
│ ├── CleanupOptionsQuery.php
│ ├── DatePostsCounterQuery.php
│ ├── MonthPostsCounterQuery.php
│ ├── TranslatedPostIdQuery.php
│ └── YearPostsCounterQuery.php
└── index.php
├── index.php
├── js
└── index.php
├── languages
├── default.pot
├── index.php
├── multisite-language-switcher-ar.mo
├── multisite-language-switcher-ar.po
├── multisite-language-switcher-bg_BG.mo
├── multisite-language-switcher-bg_BG.po
├── multisite-language-switcher-bn_BD.mo
├── multisite-language-switcher-bn_BD.po
├── multisite-language-switcher-ca.mo
├── multisite-language-switcher-ca.po
├── multisite-language-switcher-cs_CZ.mo
├── multisite-language-switcher-cs_CZ.po
├── multisite-language-switcher-de_DE.mo
├── multisite-language-switcher-de_DE.po
├── multisite-language-switcher-el.mo
├── multisite-language-switcher-el.po
├── multisite-language-switcher-es_ES.mo
├── multisite-language-switcher-es_ES.po
├── multisite-language-switcher-fr_FR.mo
├── multisite-language-switcher-fr_FR.po
├── multisite-language-switcher-hr_HR.mo
├── multisite-language-switcher-hr_HR.po
├── multisite-language-switcher-hu_HU.mo
├── multisite-language-switcher-hu_HU.po
├── multisite-language-switcher-hy_AM.mo
├── multisite-language-switcher-hy_AM.po
├── multisite-language-switcher-it_IT.mo
├── multisite-language-switcher-it_IT.po
├── multisite-language-switcher-ja.mo
├── multisite-language-switcher-ja.po
├── multisite-language-switcher-ka_GE.mo
├── multisite-language-switcher-ka_GE.po
├── multisite-language-switcher-lt_LT.mo
├── multisite-language-switcher-lt_LT.po
├── multisite-language-switcher-nb_NO.mo
├── multisite-language-switcher-nb_NO.po
├── multisite-language-switcher-nl_NL.mo
├── multisite-language-switcher-nl_NL.po
├── multisite-language-switcher-pl_PL.mo
├── multisite-language-switcher-pl_PL.po
├── multisite-language-switcher-pt_BR.mo
├── multisite-language-switcher-pt_BR.po
├── multisite-language-switcher-ro_RO.mo
├── multisite-language-switcher-ro_RO.po
├── multisite-language-switcher-ru_RU.mo
├── multisite-language-switcher-ru_RU.po
├── multisite-language-switcher-sr_RS.mo
├── multisite-language-switcher-sr_RS.po
├── multisite-language-switcher-sv_SE.mo
├── multisite-language-switcher-sv_SE.po
├── multisite-language-switcher-tr.mo
├── multisite-language-switcher-tr.po
├── multisite-language-switcher-uk.mo
├── multisite-language-switcher-uk.po
├── multisite-language-switcher-zh_CN.mo
├── multisite-language-switcher-zh_CN.po
├── multisite-language-switcher-zh_TW.mo
└── multisite-language-switcher-zh_TW.po
├── package-lock.json
├── package.json
├── patchwork.json
├── phpcs.xml
├── phpdoc.xml
├── phpstan.neon.dist
├── phpunit.xml
├── playwright.config.ts
├── readme.txt
├── src
├── index.php
├── msls-widget-block
│ ├── block.json
│ ├── edit.js
│ ├── index.js
│ ├── index.php
│ └── render.php
└── msls.js
└── tests
├── phpstan
└── bootstrap.php
├── phpunit
├── Component
│ └── Icon
│ │ ├── TestIconPng.php
│ │ └── TestIconSvg.php
├── ContentImport
│ ├── Importers
│ │ ├── Attachments
│ │ │ └── TestLinking.php
│ │ ├── PostFields
│ │ │ └── TestDuplicating.php
│ │ ├── PostMeta
│ │ │ └── TestDuplicating.php
│ │ ├── TestAttachmentsImporters.php
│ │ ├── TestBaseImporter.php
│ │ ├── TestImportersBaseFactory.php
│ │ ├── TestMap.php
│ │ ├── TestPostFieldsImporters.php
│ │ ├── TestPostMetaImporters.php
│ │ ├── TestPostThumbnailImporters.php
│ │ └── TestTermsImporters.php
│ ├── LogWriters
│ │ └── TestAdminNoticeLogger.php
│ ├── TestAttachmentPathFinder.php
│ ├── TestContentImporter.php
│ ├── TestImportCoordinates.php
│ ├── TestImportLogger.php
│ ├── TestMetaBox.php
│ ├── TestRelations.php
│ └── TestService.php
├── Map
│ └── TestHrefLang.php
├── MslsUnitTestCase.php
├── Query
│ └── TestTranslatedPostsQuery.php
├── TestMslsAdmin.php
├── TestMslsAdminBar.php
├── TestMslsAdminIcon.php
├── TestMslsAdminIconTaxonomy.php
├── TestMslsBlock.php
├── TestMslsBlog.php
├── TestMslsBlogCollection.php
├── TestMslsCli.php
├── TestMslsContentFilter.php
├── TestMslsContentTypes.php
├── TestMslsCustomColumn.php
├── TestMslsCustomColumnTaxonomy.php
├── TestMslsCustomFilter.php
├── TestMslsGetSet.php
├── TestMslsJson.php
├── TestMslsLanguageArray.php
├── TestMslsLink.php
├── TestMslsLinkImageOnly.php
├── TestMslsLinkTextImage.php
├── TestMslsLinkTextOnly.php
├── TestMslsMain.php
├── TestMslsMetaBox.php
├── TestMslsOptions.php
├── TestMslsOptionsPost.php
├── TestMslsOptionsQuery.php
├── TestMslsOptionsQueryAuthor.php
├── TestMslsOptionsQueryDay.php
├── TestMslsOptionsQueryMonth.php
├── TestMslsOptionsQueryPostType.php
├── TestMslsOptionsQueryYear.php
├── TestMslsOptionsTax.php
├── TestMslsOptionsTaxTerm.php
├── TestMslsOptionsTaxTermCategory.php
├── TestMslsOutput.php
├── TestMslsPlugin.php
├── TestMslsPostTag.php
├── TestMslsPostTagClassic.php
├── TestMslsPostType.php
├── TestMslsRegistry.php
├── TestMslsRequest.php
├── TestMslsShortCode.php
├── TestMslsSqlCacher.php
├── TestMslsTaxonomy.php
├── TestMslsWidget.php
├── WP_CLI.php
├── WP_Widget.php
└── bootstrap.php
└── playwright
└── testpage.spec.ts
/.distignore:
--------------------------------------------------------------------------------
1 | .distignore
2 | .gitattributes
3 | .gitignore
4 | .scrutinizer.yml
5 | /.git
6 | /.github
7 | /.idea
8 | /.phpunit.cache
9 | /.vscode
10 | /.wordpress-org
11 | /bin
12 | /build
13 | /diagrams
14 | /docs
15 | /legacy-tests
16 | /multisite-language-switcher
17 | /node_modules
18 | /out
19 | /src
20 | /tests
21 | CODEOWNERS
22 | Changelog.md
23 | Diagrams.md
24 | README.md
25 | composer.json
26 | composer.lock
27 | multisite-language-switcher.zip
28 | package-lock.json
29 | package.json
30 | patchwork.json
31 | phpcs.xml
32 | phpdoc.xml
33 | phpstan.neon.dist
34 | phpunit.xml
35 | playwright.config.ts
36 | setup.sh
--------------------------------------------------------------------------------
/CODEOWNERS:
--------------------------------------------------------------------------------
1 | * @lloc
2 |
--------------------------------------------------------------------------------
/Diagrams.md:
--------------------------------------------------------------------------------
1 | # Diagrams
2 |
3 | Infrastructural overview about the plugin's PHP classes:
4 |
5 | 
6 |
7 | Package diagram:
8 |
9 | 
10 |
--------------------------------------------------------------------------------
/bin/deploy.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env sh
2 |
3 | set -e
4 |
5 | npm run docs:build
6 | /usr/local/bin/phpdoc
7 |
8 | cd docs/.vuepress/dist
9 | echo 'msls.co' > CNAME
10 |
11 | git init
12 | git add -A
13 | git commit -m 'deploy'
14 | git push -f https://github.com/lloc/Multisite-Language-Switcher.git master:gh-pages
15 |
16 | cd -
17 |
--------------------------------------------------------------------------------
/bin/git-release.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | PROJECT_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )/.." && pwd )"
4 | PLUGIN_NAME="multisite-language-switcher"
5 | BUILD_PATH="$PROJECT_ROOT/$PLUGIN_NAME"
6 | ZIP_ARCHIVE="$PROJECT_ROOT/$PLUGIN_NAME.zip"
7 |
8 | rm -f $ZIP_ARCHIVE
9 | rm -rf $BUILD_PATH && mkdir $BUILD_PATH
10 |
11 | rsync -arvp --exclude-from=$PROJECT_ROOT/.distignore $PROJECT_ROOT/ $BUILD_PATH/
12 | cd $PROJECT_ROOT && zip -r $ZIP_ARCHIVE $PLUGIN_NAME
13 |
--------------------------------------------------------------------------------
/build/exclude:
--------------------------------------------------------------------------------
1 | /.git/
2 | /.github/
3 | /.idea/
4 | /bin/
5 | /build/
6 | /docs/
7 | /js/msls-widget-block/
8 | /legacy-tests/
9 | /release/
10 | /multisite-language-switcher/
11 | /node_modules/
12 | /tests/
13 | .distignore
14 | .gitattributes
15 | .gitignore
16 | *.json
17 | *.lock
18 | *.sh
19 | *.md
20 | *.phar
21 | *.xml
22 | *.yml
23 | *.zip
24 |
--------------------------------------------------------------------------------
/build/phploc.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/ae.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/am.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/at.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/ax.svg:
--------------------------------------------------------------------------------
1 |
19 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/az.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/bb.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/bd.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/be.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/bf.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/bg.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/bh.svg:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/bj.svg:
--------------------------------------------------------------------------------
1 |
15 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/bl.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/bq.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/bs.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/bv.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/bw.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/ca.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/cd.svg:
--------------------------------------------------------------------------------
1 |
13 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/cf.svg:
--------------------------------------------------------------------------------
1 |
16 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/cg.svg:
--------------------------------------------------------------------------------
1 |
13 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/ch.svg:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/ci.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/cl.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/co.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/cr.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/cu.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/cz.svg:
--------------------------------------------------------------------------------
1 |
13 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/de.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/dj.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/dk.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/dz.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/ee.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/es-ca.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/fi.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/fo.svg:
--------------------------------------------------------------------------------
1 |
13 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/fr.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/ga.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/gb-eng.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/gb-sct.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/gb.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/gf.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/gg.svg:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/gh.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/gl.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/gm.svg:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/gn.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/gp.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/gy.svg:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/hu.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/id.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/ie.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/is.svg:
--------------------------------------------------------------------------------
1 |
13 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/it.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/jm.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/jp.svg:
--------------------------------------------------------------------------------
1 |
12 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/kw.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/la.svg:
--------------------------------------------------------------------------------
1 |
13 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/lc.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/lt.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/lu.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/lv.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/ly.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/ma.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/mc.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/mf.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/mg.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/mk.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/ml.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/mq.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/mr.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/mu.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/mv.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/ne.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/ng.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/nl.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/no.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/nr.svg:
--------------------------------------------------------------------------------
1 |
13 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/pa.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/pl.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/pm.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/pr.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/ps.svg:
--------------------------------------------------------------------------------
1 |
16 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/pw.svg:
--------------------------------------------------------------------------------
1 |
12 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/qa.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/re.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/ro.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/ru.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/sc.svg:
--------------------------------------------------------------------------------
1 |
15 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/sd.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/sj.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/sl.svg:
--------------------------------------------------------------------------------
1 |
13 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/sn.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/so.svg:
--------------------------------------------------------------------------------
1 |
12 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/sr.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/ss.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/sy.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/td.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/th.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/tl.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/to.svg:
--------------------------------------------------------------------------------
1 |
11 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/tr.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/tt.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/tz.svg:
--------------------------------------------------------------------------------
1 |
16 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/ua.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/vc.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/vn.svg:
--------------------------------------------------------------------------------
1 |
12 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/wf.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/ye.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/1x1/yt.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/ae.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/am.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/at.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/ax.svg:
--------------------------------------------------------------------------------
1 |
19 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/az.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/bb.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/bd.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/be.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/bf.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/bg.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/bh.svg:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/bj.svg:
--------------------------------------------------------------------------------
1 |
15 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/bl.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/bq.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/bs.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/bv.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/bw.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/cd.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/cg.svg:
--------------------------------------------------------------------------------
1 |
13 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/ch.svg:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/ci.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/cl.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/co.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/cr.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/cu.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/cz.svg:
--------------------------------------------------------------------------------
1 |
13 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/de.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/dj.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/dk.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/dz.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/ee.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/es-ca.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/fi.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/fo.svg:
--------------------------------------------------------------------------------
1 |
13 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/fr.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/ga.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/gb-eng.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/gb-sct.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/gb.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/gf.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/gg.svg:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/gh.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/gl.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/gm.svg:
--------------------------------------------------------------------------------
1 |
15 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/gn.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/gp.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/gy.svg:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/hu.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/id.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/ie.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/is.svg:
--------------------------------------------------------------------------------
1 |
13 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/it.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/jm.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/jp.svg:
--------------------------------------------------------------------------------
1 |
12 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/kw.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/la.svg:
--------------------------------------------------------------------------------
1 |
13 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/lc.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/lt.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/lu.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/lv.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/ly.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/ma.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/mc.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/mf.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/mg.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/mk.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/ml.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/mq.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/mr.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/mu.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/mv.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/ne.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/ng.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/nl.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/no.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/nr.svg:
--------------------------------------------------------------------------------
1 |
13 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/pl.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/pm.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/pr.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/ps.svg:
--------------------------------------------------------------------------------
1 |
16 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/pw.svg:
--------------------------------------------------------------------------------
1 |
12 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/qa.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/re.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/ro.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/ru.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/sc.svg:
--------------------------------------------------------------------------------
1 |
15 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/sd.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/sj.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/sl.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/sn.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/so.svg:
--------------------------------------------------------------------------------
1 |
12 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/sr.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/ss.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/sy.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/td.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/th.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/tl.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/to.svg:
--------------------------------------------------------------------------------
1 |
11 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/tr.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/tt.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/tz.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/ua.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/vc.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/vn.svg:
--------------------------------------------------------------------------------
1 |
12 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/wf.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/ws.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/ye.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css-flags/flags/4x3/yt.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/css/index.php:
--------------------------------------------------------------------------------
1 | ' . implode( '', explode( '_', $language ) ) . '';
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/includes/Component/Wrapper.php:
--------------------------------------------------------------------------------
1 | element = $element;
13 | $this->content = $content;
14 | }
15 |
16 | public function render(): string {
17 | return sprintf( '<%1$s>%2$s%1$s>', esc_html( $this->element ), wp_kses( $this->content, self::get_allowed_html() ) );
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/includes/ContentImport/LogWriters/LogWriter.php:
--------------------------------------------------------------------------------
1 | $data An array of data to log.
10 | *
11 | * @return mixed
12 | */
13 | public function write( array $data );
14 | }
15 |
--------------------------------------------------------------------------------
/includes/LinkInterface.php:
--------------------------------------------------------------------------------
1 | ';
18 |
19 | /**
20 | * Get the description
21 | *
22 | * @return string
23 | */
24 | public static function get_description(): string {
25 | return __( 'Flag only', 'multisite-language-switcher' );
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/includes/MslsLinkTextImage.php:
--------------------------------------------------------------------------------
1 | ';
18 |
19 | /**
20 | * Get the description
21 | *
22 | * @return string
23 | */
24 | public static function get_description(): string {
25 | return __( 'Description and flag', 'multisite-language-switcher' );
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/includes/MslsLinkTextOnly.php:
--------------------------------------------------------------------------------
1 | is_excluded() ) {
19 | return '';
20 | }
21 |
22 | ob_start();
23 | the_widget( MslsWidget::class );
24 | $output = ob_get_clean();
25 |
26 | return $output;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/includes/OptionsInterface.php:
--------------------------------------------------------------------------------
1 | sql_cache = $sql_cache;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/includes/Query/AuthorPostsCounterQuery.php:
--------------------------------------------------------------------------------
1 | sql_cache->prepare(
18 | "SELECT count(ID) FROM {$this->sql_cache->posts} WHERE post_author = %d AND post_status = 'publish'",
19 | $author_id
20 | );
21 |
22 | return (int) $this->sql_cache->get_var( $query );
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/includes/Query/CleanupOptionsQuery.php:
--------------------------------------------------------------------------------
1 | sql_cache->prepare(
14 | "DELETE FROM {$this->sql_cache->options} WHERE option_name LIKE %s",
15 | 'msls_%'
16 | );
17 |
18 | return (bool) $this->sql_cache->query( $sql );
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/includes/Query/MonthPostsCounterQuery.php:
--------------------------------------------------------------------------------
1 | sql_cache->prepare(
18 | "SELECT count(ID) FROM {$this->sql_cache->posts} WHERE YEAR(post_date) = %d AND MONTH(post_date) = %d AND post_status = 'publish'",
19 | $year,
20 | $monthnum
21 | );
22 |
23 | return (int) $this->sql_cache->get_var( $query );
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/includes/Query/YearPostsCounterQuery.php:
--------------------------------------------------------------------------------
1 | sql_cache->prepare(
14 | "SELECT count(ID) FROM {$this->sql_cache->posts} WHERE YEAR(post_date) = %d AND post_status = 'publish'",
15 | $year
16 | );
17 |
18 | return (int) $this->sql_cache->get_var( $query );
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/includes/index.php:
--------------------------------------------------------------------------------
1 |
2 |
3 | API - Multisite Language Switcher
4 |
5 | docs/.vuepress/public/api-documentation/cache
6 |
7 |
8 | docs/.vuepress/public/api-documentation
9 |
10 |
11 | includes
12 | tests
13 | vendor
14 |
15 |
16 |
--------------------------------------------------------------------------------
/phpstan.neon.dist:
--------------------------------------------------------------------------------
1 | parameters:
2 | level: 6
3 | inferPrivatePropertyTypeFromConstructor: true
4 | treatPhpDocTypesAsCertain: false
5 | paths:
6 | - MultisiteLanguageSwitcher.php
7 | - includes
8 | excludePaths:
9 | - vendor
10 | bootstrapFiles:
11 | - tests/phpstan/bootstrap.php
12 | ignoreErrors:
13 | - '/^Class lloc\\Msls\\MslsWidget extends generic class WP_Widget but does not specify its types: T$/'
--------------------------------------------------------------------------------
/src/index.php:
--------------------------------------------------------------------------------
1 |
8 | < ServerSideRender
9 | block = "lloc/msls-widget-block"
10 | attributes = { props.attributes }
11 | / >
12 | < / div >
13 | );
14 | }
--------------------------------------------------------------------------------
/src/msls-widget-block/index.js:
--------------------------------------------------------------------------------
1 | import { registerBlockType } from '@wordpress/blocks';
2 |
3 | import Edit from './edit';
4 | import metadata from './block.json';
5 |
6 | registerBlockType(
7 | metadata.name,
8 | {
9 | edit: Edit
10 | }
11 | );
12 |
--------------------------------------------------------------------------------
/src/msls-widget-block/index.php:
--------------------------------------------------------------------------------
1 | shouldReceive( 'get_importer_for' )->andReturn( 'post-fields' );
14 |
15 | $result = ( new Map() )->make( $coordinates );
16 |
17 | $this->assertNotEmpty( $result );
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/tests/phpunit/ContentImport/TestRelations.php:
--------------------------------------------------------------------------------
1 | assertIsArray( $test->get_data() );
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/tests/phpunit/TestMslsContentTypes.php:
--------------------------------------------------------------------------------
1 | twice()->andReturn( array() );
13 |
14 | $obj = MslsContentTypes::create();
15 |
16 | $this->assertInstanceOf( MslsPostType::class, $obj );
17 | }
18 |
19 | public function test_is_taxonomy(): void {
20 | $this->assertFalse( MslsContentTypes::create()->is_taxonomy() );
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/tests/phpunit/TestMslsLinkImageOnly.php:
--------------------------------------------------------------------------------
1 | assertIsSTring( MslsLinkImageOnly::get_description() );
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/tests/phpunit/TestMslsLinkTextImage.php:
--------------------------------------------------------------------------------
1 | assertIsSTring( MslsLinkTextImage::get_description() );
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/tests/phpunit/TestMslsLinkTextOnly.php:
--------------------------------------------------------------------------------
1 | assertIsSTring( MslsLinkTextOnly::get_description() );
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/tests/phpunit/TestMslsOptionsTaxTermCategory.php:
--------------------------------------------------------------------------------
1 | once()->andReturn( array() );
12 |
13 | $obj = new MslsOptionsTaxTermCategory( 0 );
14 |
15 | $this->assertIsSTring( $obj->get_postlink( '' ) );
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/tests/phpunit/TestMslsRegistry.php:
--------------------------------------------------------------------------------
1 | assertEquals( null, $obj->get_object( 'test_var' ) );
13 | $obj->set_object( 'test_var', 1 );
14 | $this->assertEquals( 1, $obj->get_object( 'test_var' ) );
15 | $obj->set_object( 'test_var', null );
16 | $this->assertEquals( null, $obj->get_object( 'test_var' ) );
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/tests/phpunit/WP_CLI.php:
--------------------------------------------------------------------------------
1 |