Plugin Directory

Changeset 3279873


Ignore:
Timestamp:
04/23/2025 11:15:56 AM (10 months ago)
Author:
wplingua
Message:

2.5.8

Location:
wplingua
Files:
473 added
14 edited

Legend:

Unmodified
Added
Removed
  • wplingua/trunk/assets/js/admin/option-page-register.js

    r3242916 r3279873  
    1515 **
    1616 **/
    17 jQuery(document).ready(function(t){if(t("#wplng-language-website").length){let a="<option disabled selected value></option>";function l(){var e=t("#wplng-language-website").val();t("#wplng-language-target option").attr("disabled",!1),t("#wplng-language-target option[value="+e+"]").attr("disabled",!0),t("#wplng-language-website").val()==e&&(t("#wplng-language-target option").attr("selected",!1),t("#wplng-language-target option[value!="+e+"]").first().attr("selected",!0))}wplngAllLanguages.forEach(e=>{a+='<option value="'+e.id+'">'+e.name+"</option>"}),t("#wplng-language-website").html(a),t("#wplng-language-target").html(a),t("#wplng-language-website option[value="+t("#wplng-website-locale").text()+"]").attr("selected",!0),l(),t("#wplng-language-website").on("input",function(e){l()}),t("#wplng-get-free-api-submit").on("click",function(e){var a;t("#wplng-website-url, #wplng-email, #wplng-language-website, #wplng-language-target, #wplng-accept-eula").attr("required",!0),a={request:"register",mail_address:t("#wplng-email").val(),website:t("#wplng-website-url").val(),language_original:t("#wplng-language-website").val(),languages_target:t("#wplng-language-target").val(),accept_eula:t("#wplng-accept-eula").is(":checked")},t("#wplng_request_free_key").val(JSON.stringify(a))}),t("a[href*='#wplng-']:not([href='#'])").click(function(){var e;location.hostname==this.hostname&&this.pathname.replace(/^\//,"")==location.pathname.replace(/^\//,"")&&(e=(e=t(this.hash)).length?e:t("[name="+this.hash.slice(1)+"]")).length&&t("html, body").animate({scrollTop:e.offset().top-50},1e3)})}});//# sourceMappingURL=option-page-register.js.map
     17jQuery(document).ready(function(t){var e;if((e=new Date).setTime(e.getTime()+2592e6),document.cookie="wplingua=1;expires="+e.toUTCString()+";path=/",t("#wplng-language-website").length){let a="<option disabled selected value></option>";function l(){var e=t("#wplng-language-website").val();t("#wplng-language-target option").attr("disabled",!1),t("#wplng-language-target option[value="+e+"]").attr("disabled",!0),t("#wplng-language-website").val()==e&&(t("#wplng-language-target option").attr("selected",!1),t("#wplng-language-target option[value!="+e+"]").first().attr("selected",!0))}wplngAllLanguages.forEach(e=>{a+='<option value="'+e.id+'">'+e.name+"</option>"}),t("#wplng-language-website").html(a),t("#wplng-language-target").html(a),t("#wplng-language-website option[value="+t("#wplng-website-locale").text()+"]").attr("selected",!0),l(),t("#wplng-language-website").on("input",function(e){l()}),t("#wplng-get-free-api-submit").on("click",function(e){var a;t("#wplng-website-url, #wplng-email, #wplng-language-website, #wplng-language-target, #wplng-accept-eula").attr("required",!0),a={request:"register",mail_address:t("#wplng-email").val(),website:t("#wplng-website-url").val(),language_original:t("#wplng-language-website").val(),languages_target:t("#wplng-language-target").val(),accept_eula:t("#wplng-accept-eula").is(":checked")},t("#wplng_request_free_key").val(JSON.stringify(a))}),t("a[href*='#wplng-']:not([href='#'])").click(function(){var e;location.hostname==this.hostname&&this.pathname.replace(/^\//,"")==location.pathname.replace(/^\//,"")&&(e=(e=t(this.hash)).length?e:t("[name="+this.hash.slice(1)+"]")).length&&t("html, body").animate({scrollTop:e.offset().top-50},1e3)})}});//# sourceMappingURL=option-page-register.js.map
  • wplingua/trunk/assets/js/admin/option-page-register.js.map

    r3242916 r3279873  
    1 {"version":3,"file":"admin/option-page-register.js","sources":["admin/option-page-register.js"],"sourcesContent":["/*!*\r\n **                 _     _                         \r\n ** __      ___ __ | |   (_)_ __   __ _ _   _  __ _ \r\n ** \\ \\ /\\ / / '_ \\| |   | | '_ \\ / _` | | | |/ _` |\r\n **  \\ V  V /| |_) | |___| | | | | (_| | |_| | (_| |\r\n **   \\_/\\_/ | .__/|_____|_|_| |_|\\__, |\\__,_|\\__,_|\r\n **          |_|                  |___/             \r\n **\r\n **        -- wpLingua | WordPress plugin --\r\n **   Translate and make your website multilingual\r\n **\r\n **     https://github.com/julien-jacob/wplingua\r\n **      https://wordpress.org/plugins/wplingua/\r\n **              https://wplingua.com/\r\n **\r\n **/\r\n\r\njQuery(document).ready(function ($) {\r\n\r\n    if (!$(\"#wplng-language-website\").length) {\r\n        return;\r\n    }\r\n\r\n    /**\r\n     * Set HTML options for languages\r\n     */\r\n    let wplngHtmlLanguagesOptions = \"<option disabled selected value></option>\";\r\n    wplngAllLanguages.forEach((language) => {\r\n        wplngHtmlLanguagesOptions += '<option value=\"' + language.id + '\">' + language.name + \"</option>\";\r\n    });\r\n    $(\"#wplng-language-website\").html(wplngHtmlLanguagesOptions);\r\n    $(\"#wplng-language-target\").html(wplngHtmlLanguagesOptions);\r\n\r\n\r\n    /**\r\n     * Set default option for website language\r\n     */\r\n    $(\"#wplng-language-website option[value=\" + $(\"#wplng-website-locale\").text() + \"]\").attr(\"selected\", true);\r\n\r\n\r\n    /**\r\n     * Add disable attribute on #wplng-language-target \r\n     * depend #wplng-language-website \r\n     */\r\n    wplngDisableLanguagesOptions();\r\n    $(\"#wplng-language-website\").on(\"input\", function (event) {\r\n        wplngDisableLanguagesOptions();\r\n    });\r\n\r\n    function wplngDisableLanguagesOptions() {\r\n        let selectedLanguage = $(\"#wplng-language-website\").val();\r\n        $(\"#wplng-language-target option\").attr(\"disabled\", false);\r\n        $(\"#wplng-language-target option[value=\" + selectedLanguage + \"]\").attr(\"disabled\", true);\r\n\r\n        if ($(\"#wplng-language-website\").val() == selectedLanguage) {\r\n            $(\"#wplng-language-target option\").attr(\"selected\", false);\r\n            $(\"#wplng-language-target option[value!=\" + selectedLanguage + \"]\").first().attr(\"selected\", true);\r\n        }\r\n    }\r\n\r\n\r\n    /**\r\n     * Prepare data for free reister submit\r\n     */\r\n    $(\"#wplng-get-free-api-submit\").on(\"click\", function (event) {\r\n        wplngUpdateRegisterInput();\r\n    });\r\n\r\n    function wplngUpdateRegisterInput() {\r\n\r\n        let wplngRegisterInputSelector = \"#wplng-website-url, #wplng-email, #wplng-language-website, #wplng-language-target, #wplng-accept-eula\";\r\n\r\n        $(wplngRegisterInputSelector).attr('required', true);\r\n\r\n        let registerData = {\r\n            request: 'register',\r\n            mail_address: $(\"#wplng-email\").val(),\r\n            website: $(\"#wplng-website-url\").val(),\r\n            language_original: $(\"#wplng-language-website\").val(),\r\n            languages_target: $(\"#wplng-language-target\").val(),\r\n            accept_eula: $(\"#wplng-accept-eula\").is(':checked')\r\n        };\r\n\r\n        $(\"#wplng_request_free_key\").val(JSON.stringify(registerData))\r\n    }\r\n\r\n    /**\r\n    * Smooth scrolling to page anchor on click\r\n    **/\r\n    $(\"a[href*='#wplng-']:not([href='#'])\").click(function () {\r\n        if (\r\n            location.hostname == this.hostname\r\n            && this.pathname.replace(/^\\//, \"\") == location.pathname.replace(/^\\//, \"\")\r\n        ) {\r\n            let anchor = $(this.hash);\r\n            anchor = anchor.length ? anchor : $(\"[name=\" + this.hash.slice(1) + \"]\");\r\n            if (anchor.length) {\r\n                $(\"html, body\").animate({ scrollTop: anchor.offset().top - 50 }, 1000);\r\n            }\r\n        }\r\n    });\r\n\r\n}); // End jQuery loaded event\r\n"],"names":["jQuery","document","ready","$","length","let","wplngHtmlLanguagesOptions","wplngDisableLanguagesOptions","selectedLanguage","val","attr","first","wplngAllLanguages","forEach","language","id","name","html","text","on","event","registerData","request","mail_address","website","language_original","languages_target","accept_eula","is","JSON","stringify","click","anchor","location","hostname","this","pathname","replace","hash","slice","animate","scrollTop","offset","top"],"mappings":";;;;;;;;;;;;;;;IAiBAA;OAAOC,QAAQ,EAAEC,MAAM,SAAUC,GAE7B,GAAKA,EAAE,yBAAyB,EAAEC,OAAlC,CAOAC,IAAIC,EAA4B,4CAuBhC,SAASC,IACLF,IAAIG,EAAmBL,EAAE,yBAAyB,EAAEM,IAAI,EACxDN,EAAE,+BAA+B,EAAEO,KAAK,WAAY,CAAA,CAAK,EACzDP,EAAE,uCAAyCK,EAAmB,GAAG,EAAEE,KAAK,WAAY,CAAA,CAAI,EAEpFP,EAAE,yBAAyB,EAAEM,IAAI,GAAKD,IACtCL,EAAE,+BAA+B,EAAEO,KAAK,WAAY,CAAA,CAAK,EACzDP,EAAE,wCAA0CK,EAAmB,GAAG,EAAEG,MAAM,EAAED,KAAK,WAAY,CAAA,CAAI,EAEzG,CA/BAE,kBAAkBC,QAAQ,IACtBP,GAA6B,kBAAoBQ,EAASC,GAAK,KAAOD,EAASE,KAAO,WAC1F,CAAC,EACDb,EAAE,yBAAyB,EAAEc,KAAKX,CAAyB,EAC3DH,EAAE,wBAAwB,EAAEc,KAAKX,CAAyB,EAM1DH,EAAE,wCAA0CA,EAAE,uBAAuB,EAAEe,KAAK,EAAI,GAAG,EAAER,KAAK,WAAY,CAAA,CAAI,EAO1GH,EAA6B,EAC7BJ,EAAE,yBAAyB,EAAEgB,GAAG,QAAS,SAAUC,GAC/Cb,EAA6B,CACjC,CAAC,EAiBDJ,EAAE,4BAA4B,EAAEgB,GAAG,QAAS,SAAUC,GAItD,IAMQC,EAFJlB,EAFiC,uGAEL,EAAEO,KAAK,WAAY,CAAA,CAAI,EAE/CW,EAAe,CACfC,QAAS,WACTC,aAAcpB,EAAE,cAAc,EAAEM,IAAI,EACpCe,QAASrB,EAAE,oBAAoB,EAAEM,IAAI,EACrCgB,kBAAmBtB,EAAE,yBAAyB,EAAEM,IAAI,EACpDiB,iBAAkBvB,EAAE,wBAAwB,EAAEM,IAAI,EAClDkB,YAAaxB,EAAE,oBAAoB,EAAEyB,GAAG,UAAU,CACtD,EAEAzB,EAAE,yBAAyB,EAAEM,IAAIoB,KAAKC,UAAUT,CAAY,CAAC,CAjBjE,CAAC,EAuBDlB,EAAE,oCAAoC,EAAE4B,MAAM,WAC1C,IAKIC,EAJAC,SAASC,UAAYC,KAAKD,UACvBC,KAAKC,SAASC,QAAQ,MAAO,EAAE,GAAKJ,SAASG,SAASC,QAAQ,MAAO,EAAE,IAItEL,GAFAA,EAAS7B,EAAEgC,KAAKG,IAAI,GACRlC,OAAS4B,EAAS7B,EAAE,SAAWgC,KAAKG,KAAKC,MAAM,CAAC,EAAI,GAAG,GAC5DnC,QACPD,EAAE,YAAY,EAAEqC,QAAQ,CAAEC,UAAWT,EAAOU,OAAO,EAAEC,IAAM,EAAG,EAAG,GAAI,CAGjF,CAAC,CA/ED,CAiFJ,CAAC"}
     1{"version":3,"file":"admin/option-page-register.js","sources":["admin/option-page-register.js"],"sourcesContent":["/*!*\r\n **                 _     _                         \r\n ** __      ___ __ | |   (_)_ __   __ _ _   _  __ _ \r\n ** \\ \\ /\\ / / '_ \\| |   | | '_ \\ / _` | | | |/ _` |\r\n **  \\ V  V /| |_) | |___| | | | | (_| | |_| | (_| |\r\n **   \\_/\\_/ | .__/|_____|_|_| |_|\\__, |\\__,_|\\__,_|\r\n **          |_|                  |___/             \r\n **\r\n **        -- wpLingua | WordPress plugin --\r\n **   Translate and make your website multilingual\r\n **\r\n **     https://github.com/julien-jacob/wplingua\r\n **      https://wordpress.org/plugins/wplingua/\r\n **              https://wplingua.com/\r\n **\r\n **/\r\n\r\njQuery(document).ready(function ($) {\r\n\r\n    /**\r\n     * Sets a cookie named \"wplingua\" with a value of 1.\r\n     * The cookie expires in 30 days and is available site-wide.\r\n     */\r\n    function wplngRegisterCookieSet() {\r\n        const date = new Date();\r\n        date.setTime(date.getTime() + (30 * 24 * 60 * 60 * 1000));\r\n        document.cookie = \"wplingua=1;expires=\" + date.toUTCString() + \";path=/\";\r\n    }\r\n\r\n    wplngRegisterCookieSet();\r\n\r\n\r\n    /**\r\n     * Check the language select input\r\n     */\r\n    if (!$(\"#wplng-language-website\").length) {\r\n        return;\r\n    }\r\n\r\n    /**\r\n     * Set HTML options for languages\r\n     */\r\n    let wplngHtmlLanguagesOptions = \"<option disabled selected value></option>\";\r\n    wplngAllLanguages.forEach((language) => {\r\n        wplngHtmlLanguagesOptions += '<option value=\"' + language.id + '\">' + language.name + \"</option>\";\r\n    });\r\n    $(\"#wplng-language-website\").html(wplngHtmlLanguagesOptions);\r\n    $(\"#wplng-language-target\").html(wplngHtmlLanguagesOptions);\r\n\r\n\r\n    /**\r\n     * Set default option for website language\r\n     */\r\n    $(\"#wplng-language-website option[value=\" + $(\"#wplng-website-locale\").text() + \"]\").attr(\"selected\", true);\r\n\r\n\r\n    /**\r\n     * Add disable attribute on #wplng-language-target \r\n     * depend #wplng-language-website \r\n     */\r\n    wplngDisableLanguagesOptions();\r\n    $(\"#wplng-language-website\").on(\"input\", function (event) {\r\n        wplngDisableLanguagesOptions();\r\n    });\r\n\r\n    function wplngDisableLanguagesOptions() {\r\n        let selectedLanguage = $(\"#wplng-language-website\").val();\r\n        $(\"#wplng-language-target option\").attr(\"disabled\", false);\r\n        $(\"#wplng-language-target option[value=\" + selectedLanguage + \"]\").attr(\"disabled\", true);\r\n\r\n        if ($(\"#wplng-language-website\").val() == selectedLanguage) {\r\n            $(\"#wplng-language-target option\").attr(\"selected\", false);\r\n            $(\"#wplng-language-target option[value!=\" + selectedLanguage + \"]\").first().attr(\"selected\", true);\r\n        }\r\n    }\r\n\r\n\r\n    /**\r\n     * Prepare data for free reister submit\r\n     */\r\n    $(\"#wplng-get-free-api-submit\").on(\"click\", function (event) {\r\n        wplngUpdateRegisterInput();\r\n    });\r\n\r\n    function wplngUpdateRegisterInput() {\r\n\r\n        let wplngRegisterInputSelector = \"#wplng-website-url, #wplng-email, #wplng-language-website, #wplng-language-target, #wplng-accept-eula\";\r\n\r\n        $(wplngRegisterInputSelector).attr('required', true);\r\n\r\n        let registerData = {\r\n            request: 'register',\r\n            mail_address: $(\"#wplng-email\").val(),\r\n            website: $(\"#wplng-website-url\").val(),\r\n            language_original: $(\"#wplng-language-website\").val(),\r\n            languages_target: $(\"#wplng-language-target\").val(),\r\n            accept_eula: $(\"#wplng-accept-eula\").is(':checked')\r\n        };\r\n\r\n        $(\"#wplng_request_free_key\").val(JSON.stringify(registerData))\r\n    }\r\n\r\n    /**\r\n    * Smooth scrolling to page anchor on click\r\n    **/\r\n    $(\"a[href*='#wplng-']:not([href='#'])\").click(function () {\r\n        if (\r\n            location.hostname == this.hostname\r\n            && this.pathname.replace(/^\\//, \"\") == location.pathname.replace(/^\\//, \"\")\r\n        ) {\r\n            let anchor = $(this.hash);\r\n            anchor = anchor.length ? anchor : $(\"[name=\" + this.hash.slice(1) + \"]\");\r\n            if (anchor.length) {\r\n                $(\"html, body\").animate({ scrollTop: anchor.offset().top - 50 }, 1000);\r\n            }\r\n        }\r\n    });\r\n\r\n}); // End jQuery loaded event\r\n"],"names":["jQuery","document","ready","$","date","Date","setTime","getTime","cookie","toUTCString","length","let","wplngHtmlLanguagesOptions","wplngDisableLanguagesOptions","selectedLanguage","val","attr","first","wplngAllLanguages","forEach","language","id","name","html","text","on","event","registerData","request","mail_address","website","language_original","languages_target","accept_eula","is","JSON","stringify","click","anchor","location","hostname","this","pathname","replace","hash","slice","animate","scrollTop","offset","top"],"mappings":";;;;;;;;;;;;;;;IAiBAA;OAAOC,QAAQ,EAAEC,MAAM,SAAUC,GAM7B,IACUC,EAWV,IAXUA,EAAO,IAAIC,MACZC,QAAQF,EAAKG,QAAQ,EAAI,MAA0B,EACxDN,SAASO,OAAS,sBAAwBJ,EAAKK,YAAY,EAAI,UAS9DN,EAAE,yBAAyB,EAAEO,OAAlC,CAOAC,IAAIC,EAA4B,4CAuBhC,SAASC,IACLF,IAAIG,EAAmBX,EAAE,yBAAyB,EAAEY,IAAI,EACxDZ,EAAE,+BAA+B,EAAEa,KAAK,WAAY,CAAA,CAAK,EACzDb,EAAE,uCAAyCW,EAAmB,GAAG,EAAEE,KAAK,WAAY,CAAA,CAAI,EAEpFb,EAAE,yBAAyB,EAAEY,IAAI,GAAKD,IACtCX,EAAE,+BAA+B,EAAEa,KAAK,WAAY,CAAA,CAAK,EACzDb,EAAE,wCAA0CW,EAAmB,GAAG,EAAEG,MAAM,EAAED,KAAK,WAAY,CAAA,CAAI,EAEzG,CA/BAE,kBAAkBC,QAAQ,IACtBP,GAA6B,kBAAoBQ,EAASC,GAAK,KAAOD,EAASE,KAAO,WAC1F,CAAC,EACDnB,EAAE,yBAAyB,EAAEoB,KAAKX,CAAyB,EAC3DT,EAAE,wBAAwB,EAAEoB,KAAKX,CAAyB,EAM1DT,EAAE,wCAA0CA,EAAE,uBAAuB,EAAEqB,KAAK,EAAI,GAAG,EAAER,KAAK,WAAY,CAAA,CAAI,EAO1GH,EAA6B,EAC7BV,EAAE,yBAAyB,EAAEsB,GAAG,QAAS,SAAUC,GAC/Cb,EAA6B,CACjC,CAAC,EAiBDV,EAAE,4BAA4B,EAAEsB,GAAG,QAAS,SAAUC,GAItD,IAMQC,EAFJxB,EAFiC,uGAEL,EAAEa,KAAK,WAAY,CAAA,CAAI,EAE/CW,EAAe,CACfC,QAAS,WACTC,aAAc1B,EAAE,cAAc,EAAEY,IAAI,EACpCe,QAAS3B,EAAE,oBAAoB,EAAEY,IAAI,EACrCgB,kBAAmB5B,EAAE,yBAAyB,EAAEY,IAAI,EACpDiB,iBAAkB7B,EAAE,wBAAwB,EAAEY,IAAI,EAClDkB,YAAa9B,EAAE,oBAAoB,EAAE+B,GAAG,UAAU,CACtD,EAEA/B,EAAE,yBAAyB,EAAEY,IAAIoB,KAAKC,UAAUT,CAAY,CAAC,CAjBjE,CAAC,EAuBDxB,EAAE,oCAAoC,EAAEkC,MAAM,WAC1C,IAKIC,EAJAC,SAASC,UAAYC,KAAKD,UACvBC,KAAKC,SAASC,QAAQ,MAAO,EAAE,GAAKJ,SAASG,SAASC,QAAQ,MAAO,EAAE,IAItEL,GAFAA,EAASnC,EAAEsC,KAAKG,IAAI,GACRlC,OAAS4B,EAASnC,EAAE,SAAWsC,KAAKG,KAAKC,MAAM,CAAC,EAAI,GAAG,GAC5DnC,QACPP,EAAE,YAAY,EAAE2C,QAAQ,CAAEC,UAAWT,EAAOU,OAAO,EAAEC,IAAM,EAAG,EAAG,GAAI,CAGjF,CAAC,CA/ED,CAiFJ,CAAC"}
  • wplingua/trunk/assets/js/on-page.js

    r3258836 r3279873  
    1 jQuery(document).ready(function(e){setTimeout(function(){for(let a=0;a<5;a++)setTimeout(()=>{e.ajax({url:"[admin-ajax-php]",method:"POST",data:{action:"wplng_ajax_heartbeat"}})},1e3*a*60*11)},6e3)});//# sourceMappingURL=on-page.js.map
     1!function(){"use strict";document.cookie="wplingua=1;path=/",document.body.classList.contains("wplingua-reload")&&location.reload(),setTimeout(function(){for(let e=0;e<5;e++)setTimeout(()=>{fetch("[admin-ajax-php]",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({action:"wplng_ajax_heartbeat"})})},1e3*e*60*11)},6e3)}();//# sourceMappingURL=on-page.js.map
  • wplingua/trunk/assets/js/on-page.js.map

    r3258836 r3279873  
    1 {"version":3,"file":"on-page.js","sources":["on-page.js"],"sourcesContent":["/**\r\n *                 _     _                         \r\n * __      ___ __ | |   (_)_ __   __ _ _   _  __ _ \r\n * \\ \\ /\\ / / '_ \\| |   | | '_ \\ / _` | | | |/ _` |\r\n *  \\ V  V /| |_) | |___| | | | | (_| | |_| | (_| |\r\n *   \\_/\\_/ | .__/|_____|_|_| |_|\\__, |\\__,_|\\__,_|\r\n *          |_|                  |___/             \r\n *\r\n *        -- wpLingua | WordPress plugin --\r\n *   Translate and make your website multilingual\r\n *\r\n *     https://github.com/julien-jacob/wplingua\r\n *      https://wordpress.org/plugins/wplingua/\r\n *              https://wplingua.com/\r\n *\r\n **/\r\n\r\njQuery(document).ready(function ($) {\r\n\r\n    function wplngHeartBeat() {\r\n        for (let i = 0; i < 5; i++) {\r\n            setTimeout(() => {\r\n                $.ajax({\r\n                    url: \"[admin-ajax-php]\",\r\n                    method: \"POST\",\r\n                    data: { action: \"wplng_ajax_heartbeat\" }\r\n                });\r\n            }, i * 1000 * 60 * 11);\r\n        }\r\n    }\r\n\r\n    setTimeout(function () {\r\n        wplngHeartBeat();\r\n    }, 6000);\r\n});\r\n"],"names":["jQuery","document","ready","$","setTimeout","let","i","ajax","url","method","data","action"],"mappings":"AAiBAA,OAAOC,QAAQ,EAAEC,MAAM,SAAUC,GAc7BC,WAAW,WAXP,IAAKC,IAAIC,EAAI,EAAGA,EAAI,EAAGA,CAAC,GACpBF,WAAW,KACPD,EAAEI,KAAK,CACHC,IAAK,mBACLC,OAAQ,OACRC,KAAM,CAAEC,OAAQ,sBAAuB,CAC3C,CAAC,CACL,EAAO,IAAJL,EAAW,GAAK,EAAE,CAM7B,EAAG,GAAI,CACX,CAAC"}
     1{"version":3,"file":"on-page.js","sources":["on-page.js"],"sourcesContent":["/**\r\n *                 _     _                         \r\n * __      ___ __ | |   (_)_ __   __ _ _   _  __ _ \r\n * \\ \\ /\\ / / '_ \\| |   | | '_ \\ / _` | | | |/ _` |\r\n *  \\ V  V /| |_) | |___| | | | | (_| | |_| | (_| |\r\n *   \\_/\\_/ | .__/|_____|_|_| |_|\\__, |\\__,_|\\__,_|\r\n *          |_|                  |___/             \r\n *\r\n *        -- wpLingua | WordPress plugin --\r\n *   Translate and make your website multilingual\r\n *\r\n *     https://github.com/julien-jacob/wplingua\r\n *      https://wordpress.org/plugins/wplingua/\r\n *              https://wplingua.com/\r\n *\r\n **/\r\n\r\n(function () {\r\n\r\n    \"use strict\";\r\n\r\n    // ------------------------------------------------------------------------\r\n    // Manage the wpLingua Cookie\r\n    // ------------------------------------------------------------------------\r\n\r\n    /**\r\n     * Sets a cookie named \"wplingua\" with a value of 1.\r\n     */\r\n    document.cookie = \"wplingua=1;path=/\";\r\n\r\n    // ------------------------------------------------------------------------\r\n    // Reload the page if BODY contains the class \"wplingua-reload\"\r\n    // ------------------------------------------------------------------------\r\n\r\n    if (document.body.classList.contains('wplingua-reload')) {\r\n        location.reload();\r\n    }\r\n\r\n    // ------------------------------------------------------------------------\r\n    // Manage the wpLingua HeartBeat\r\n    // ------------------------------------------------------------------------\r\n\r\n    /**\r\n     * Sends periodic AJAX requests to the server to keep the session alive.\r\n     * The requests are sent every 11 minutes, 5 times in total.\r\n     */\r\n    function wplngHeartBeat() {\r\n        for (let i = 0; i < 5; i++) {\r\n            setTimeout(() => {\r\n                fetch(\"[admin-ajax-php]\", {\r\n                    method: \"POST\",\r\n                    headers: {\r\n                        \"Content-Type\": \"application/x-www-form-urlencoded\"\r\n                    },\r\n                    body: new URLSearchParams({ action: \"wplng_ajax_heartbeat\" })\r\n                });\r\n            }, i * 1000 * 60 * 11);\r\n        }\r\n    }\r\n\r\n    /**\r\n     * Initializes the heartbeat functionality after a 6-second delay.\r\n     */\r\n    setTimeout(wplngHeartBeat, 6000);\r\n\r\n})();\r\n\r\n"],"names":["document","cookie","body","classList","contains","location","reload","setTimeout","let","i","fetch","method","headers","Content-Type","URLSearchParams","action"],"mappings":"AAiBA,CAAA,WAEI,aASAA,SAASC,OAAS,oBAMdD,SAASE,KAAKC,UAAUC,SAAS,iBAAiB,GAClDC,SAASC,OAAO,EA4BpBC,WAjBA,WACI,IAAKC,IAAIC,EAAI,EAAGA,EAAI,EAAGA,CAAC,GACpBF,WAAW,KACPG,MAAM,mBAAoB,CACtBC,OAAQ,OACRC,QAAS,CACLC,eAAgB,mCACpB,EACAX,KAAM,IAAIY,gBAAgB,CAAEC,OAAQ,sBAAuB,CAAC,CAChE,CAAC,CACL,EAAO,IAAJN,EAAW,GAAK,EAAE,CAE7B,EAK2B,GAAI,CAElC,EAAE"}
  • wplingua/trunk/inc/admin/option-page.php

    r3265363 r3279873  
    144144
    145145/**
    146  * Set custom admin_footer_text on wpLingua options pages
    147  *
    148  * @param string $text
    149  * @return string
     146 * Customize the admin footer text displayed on wpLingua option pages.
     147 *
     148 * @param string $text The default footer text.
     149 * @return string The customized footer text for wpLingua pages.
    150150 */
    151151function wplng_admin_footer_text( $text ) {
     
    183183 * Set custom update_footer text on wpLingua options pages
    184184 *
    185  * @param string $text
    186  * @return string
     185 * @param string $text The default footer text to be modified.
     186 * @return string The customized footer text for wpLingua pages.
    187187 */
    188188function wplng_update_footer( $text ) {
     
    239239
    240240/**
    241  * Redirect to the settings page on plugin activation
    242  *
    243  * @param string $plugin
     241 * Redirect to the wpLingua settings page upon plugin activation.
     242 *
     243 * @param string $plugin The plugin file path that was activated.
    244244 * @return void
    245245 */
     
    334334
    335335/**
    336  * Display a notice if an incompatible plugin is detected
    337  *
    338  * @return void|string
     336 * Display a notice if an incompatible plugin is detected.
     337 *
     338 * @return void|string Outputs the admin notice or returns nothing if no conflicts are found.
    339339 */
    340340function wplng_admin_notice_incompatible_plugin() {
     
    345345        return;
    346346    }
    347 
    348     /**
    349      * Make and echo the admin notice
    350      */
    351347
    352348    $html  = '<div ';
     
    413409 * Display a notice if is a multisite
    414410 *
    415  * @return void|string
     411 * @return void|string Outputs the admin notice if applicable, or returns void if no action is needed.
    416412 */
    417413function wplng_admin_notice_incompatible_multisite() {
     
    420416        return;
    421417    }
    422 
    423     /**
    424      * Make and echo the admin notice
    425      */
    426418
    427419    $html  = '<div ';
     
    444436 * Display a notice if the WordPress installed in a subfolder
    445437 *
    446  * @return void|string
     438 * @return void|string Outputs the admin notice if applicable, or returns void if no notice is needed.
    447439 */
    448440function wplng_admin_notice_incompatible_sub_folder() {
     
    451443        return;
    452444    }
    453 
    454     /**
    455      * Make and echo the admin notice
    456      */
    457445
    458446    $html  = '<div ';
     
    475463 * Display a notice if the PHP version is incompatible
    476464 *
    477  * @return void|string
     465 * @return void|string Outputs the admin notice if applicable, or returns void if no notice is required.
    478466 */
    479467function wplng_admin_notice_incompatible_php_version() {
     
    482470        return;
    483471    }
    484 
    485     /**
    486      * Make and echo the admin notice
    487      */
    488472
    489473    $html  = '<div ';
  • wplingua/trunk/inc/api-call/translate.php

    r3265363 r3279873  
    4949) {
    5050
    51     /**
    52      * Get and check data
    53      */
    54 
    55     // Ckeck and sanitize texts list
    56 
     51    // Check texts array
    5752    if ( empty( $texts ) || ! is_array( $texts ) ) {
    5853        return array();
    5954    }
     55
     56    // Check cookie
     57    if ( empty( $_COOKIE['wplingua'] )
     58        && apply_filters( 'wplng_cookie_check', true )
     59    ) {
     60
     61        global $wplng_class_reload;
     62        $wplng_class_reload = true;
     63
     64        return array();
     65    }
     66
     67    // Ckeck and sanitize texts list
    6068
    6169    foreach ( $texts as $key => $text ) {
     
    152160    $response = json_decode( wp_remote_retrieve_body( $request ), true );
    153161
     162    // Check error
    154163    if ( isset( $response['error'] )
    155         || empty( $response['translations'] )
     164        && ( true === $response['error'] )
     165    ) {
     166        if ( isset( $response['disconnect'] )
     167            && true === $response['disconnect']
     168        ) {
     169           
     170            delete_option( 'wplng_api_key_data' );
     171            delete_option( 'wplng_api_key' );
     172            wplng_clear_translations_cache();
     173            wplng_clear_slugs_cache();
     174        }
     175
     176        return $texts;
     177    }
     178
     179    // Check translations
     180    if ( empty( $response['translations'] )
    156181        || ! is_array( $response['translations'] )
    157182    ) {
  • wplingua/trunk/inc/api-call/validate-api-key.php

    r3276252 r3279873  
    190190
    191191        $error_message  = __( 'Code', 'wplingua' ) . ' ';
    192         $error_message  = $response['code'] . ' - ';
     192        $error_message .= $response['code'] . ' - ';
    193193        $error_message .= $response['message'];
    194194
     
    199199        );
    200200
     201        if ( isset( $response['disconnect'] )
     202            && true === $response['disconnect']
     203        ) {
     204            delete_option( 'wplng_api_key_data' );
     205            delete_option( 'wplng_api_key' );
     206            wplng_clear_translations_cache();
     207            wplng_clear_slugs_cache();
     208        }
    201209    } else {
    202210
  • wplingua/trunk/inc/args.php

    r3265363 r3279873  
    3030
    3131    /**
     32     * Check language website DIR
     33     */
     34
     35    if ( empty( $args['language_source_dir'] ) ) {
     36
     37        $language = wplng_get_language_by_id( $args_clear['language_source'] );
     38
     39        $args_clear['language_source_dir'] = $language['dir'];
     40
     41    } else {
     42        $args_clear['language_source_dir'] = $args['language_source_dir'];
     43    }
     44
     45    /**
    3246     * Check language target ID
    3347     */
     
    3953    } else {
    4054        $args_clear['language_target'] = $args['language_target'];
     55    }
     56
     57    /**
     58     * Check language target DIR
     59     */
     60
     61    if ( empty( $args['language_target_dir'] ) ) {
     62
     63        $language = wplng_get_language_by_id( $args_clear['language_target'] );
     64
     65        $args_clear['language_target_dir'] = $language['dir'];
     66
     67    } else {
     68        $args_clear['language_target_dir'] = $args['language_target_dir'];
    4169    }
    4270
     
    219247
    220248    /**
     249     * Limit $texts_unknow for a total of 1000 char
     250     */
     251
     252    $current_length = 0;
     253    $limited_texts_unknow = array();
     254
     255    foreach ( $texts_unknow as $text ) {
     256        $text_length = strlen( $text );
     257        if ( $current_length + $text_length > WPLNG_MAX_TRANSLATIONS_CHAR ) {
     258            break;
     259        }
     260        $limited_texts_unknow[] = $text;
     261        $current_length += $text_length + 8;
     262    }
     263
     264    $texts_unknow = $limited_texts_unknow;
     265
     266    /**
    221267     * Get count_texts
    222268     */
  • wplingua/trunk/inc/buffering.php

    r3265363 r3279873  
    2323    if ( $language_website_id === $language_current_id ) {
    2424        return;
     25    }
     26
     27    if ( empty( $_COOKIE['wplingua'] )
     28        && apply_filters( 'wplng_cookie_check', true )
     29    ) {
     30        // Set HTTP no-cache header
     31        nocache_headers();
     32
     33        // Disable cache for plugins
     34        if ( ! defined( 'DONOTCACHEPAGE' ) ) {
     35            define( 'DONOTCACHEPAGE', true );
     36        }
    2537    }
    2638
  • wplingua/trunk/inc/dom/replace-attr-dir.php

    r3265363 r3279873  
    2222    }
    2323
    24     $language_target = wplng_get_language_by_id( $args['language_target'] );
    25 
    26     if ( ! empty( $language_target['dir'] ) ) {
    27         foreach ( $dom->find( 'body' ) as $element ) {
    28             $element->{'dir'} = esc_attr( $language_target['dir'] );
    29         }
     24    foreach ( $dom->find( 'body' ) as $element ) {
     25        $element->{'dir'} = esc_attr( $args['language_target_dir'] );
    3026    }
    3127
  • wplingua/trunk/inc/dom/replace-body-class.php

    r3265363 r3279873  
    3131                $class_array[ $key ] = $args['language_target'];
    3232            } elseif ( 'ltr' === $class || 'rtl' === $class ) {
    33                 if ( ! empty( $language_target['dir'] ) ) {
    34                     $class_array[ $key ] = $language_target['dir'];
    35                 } else {
    36                     $class_array[ $key ] = 'ltr';
    37                 }
     33                $class_array[ $key ] = $args['language_target_dir'];
    3834            }
    3935        }
     
    4137        $class_array[] = 'wplingua-translated';
    4238
     39        global $wplng_class_reload;
     40
     41        if ( true === $wplng_class_reload ) {
     42            $class_array[] = 'wplingua-reload';
     43        }
     44
    4345        $class_array = array_unique( $class_array ); // Remove duplicate
    4446        $class_str   = '';
    4547
    46         foreach ( $class_array as $key => $class ) {
     48        foreach ( $class_array as $class ) {
    4749            $class_str .= $class . ' ';
    4850        }
  • wplingua/trunk/inc/url.php

    r3265363 r3279873  
    148148 */
    149149function wplng_url_is_translatable( $url = '' ) {
     150
     151    global $wplng_request_uri;
     152
     153    // Get current URL if $url is empty
     154    if ( '' === $url ) {
     155        $url = sanitize_url( $wplng_request_uri );
     156    }
     157
     158    $url = trailingslashit( $url );
     159    $url = wp_make_link_relative( $url );
     160    $url = strtolower( $url );
     161
    150162    return apply_filters(
    151163        'wplng_url_is_translatable',
     
    162174 * @return bool
    163175 */
    164 function wplng_url_is_translatable_no_filter( $url = '' ) {
    165 
    166     global $wplng_request_uri;
    167 
    168     // Get current URL if $url is empty
    169     if ( '' === $url ) {
    170         $url = sanitize_url( $wplng_request_uri );
    171     }
    172 
    173     $url = trailingslashit( $url );
    174     $url = wp_make_link_relative( $url );
    175     $url = strtolower( $url );
     176function wplng_url_is_translatable_no_filter( $url ) {
    176177
    177178    // Check if is an admin page
  • wplingua/trunk/readme.txt

    r3276252 r3279873  
    55Requires at least: 6.0
    66Tested up to: 6.8
    7 Stable tag: 2.5.7
     7Stable tag: 2.5.8
    88Requires PHP: 7.4
    99License: GPLv2 or later
     
    191191
    192192== Changelog ==
     193
     194= 2.5.8 =
     195
     196* Fix wplng_url_is_translatable filter
     197* Better management:
     198 * API translation calls
     199 * DIR (LTR and RTL)
     200 * Error reception
    193201
    194202= 2.5.7 =
  • wplingua/trunk/wplingua.php

    r3276252 r3279873  
    88 * Text Domain: wplingua
    99 * Domain Path: /languages/
    10  * Version: 2.5.7
     10 * Version: 2.5.8
    1111 * Requires PHP: 7.4
    1212 * License: GPL v2 or later
     
    2525define( 'WPLNG_API_VERSION', '2.0' );
    2626define( 'WPLNG_API_SSLVERIFY', true );
    27 define( 'WPLNG_PLUGIN_VERSION', '2.5.7' );
     27define( 'WPLNG_PLUGIN_VERSION', '2.5.8' );
    2828define( 'WPLNG_PLUGIN_FILE', plugin_basename( __FILE__ ) );
    2929define( 'WPLNG_PLUGIN_PATH', __DIR__ );
    3030define( 'WPLNG_PHP_MIN_VERSION', '7.4' );
    31 define( 'WPLNG_MAX_TRANSLATIONS', 200 );
     31define( 'WPLNG_MAX_TRANSLATIONS', 256 );
     32define( 'WPLNG_MAX_TRANSLATIONS_CHAR', 4200 );
    3233define( 'WPLNG_MAX_FILE_SIZE', 5000000 );
    3334
     
    6465function wplng_start() {
    6566
    66     // Define $wplng_request_uri
     67    // Setup $wplng_class_reload
     68    global $wplng_class_reload;
     69    $wplng_class_reload = false;
     70
     71    // Setup $wplng_request_uri
    6772    if ( isset( $_SERVER['REQUEST_URI'] ) ) {
    6873
     
    7681        global $wplng_request_uri;
    7782        $wplng_request_uri = $request_uri;
    78 
    7983    }
    8084
Note: See TracChangeset for help on using the changeset viewer.