?????????????? charmap/plugin.js000064400000055252151222602260010022 0ustar00(function () { var charmap = (function () { 'use strict'; var global = tinymce.util.Tools.resolve('tinymce.PluginManager'); var fireInsertCustomChar = function (editor, chr) { return editor.fire('insertCustomChar', { chr: chr }); }; var Events = { fireInsertCustomChar: fireInsertCustomChar }; var insertChar = function (editor, chr) { var evtChr = Events.fireInsertCustomChar(editor, chr).chr; editor.execCommand('mceInsertContent', false, evtChr); }; var Actions = { insertChar: insertChar }; var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools'); var getCharMap = function (editor) { return editor.settings.charmap; }; var getCharMapAppend = function (editor) { return editor.settings.charmap_append; }; var Settings = { getCharMap: getCharMap, getCharMapAppend: getCharMapAppend }; var isArray = global$1.isArray; var getDefaultCharMap = function () { return [ [ '160', 'no-break space' ], [ '173', 'soft hyphen' ], [ '34', 'quotation mark' ], [ '162', 'cent sign' ], [ '8364', 'euro sign' ], [ '163', 'pound sign' ], [ '165', 'yen sign' ], [ '169', 'copyright sign' ], [ '174', 'registered sign' ], [ '8482', 'trade mark sign' ], [ '8240', 'per mille sign' ], [ '181', 'micro sign' ], [ '183', 'middle dot' ], [ '8226', 'bullet' ], [ '8230', 'three dot leader' ], [ '8242', 'minutes / feet' ], [ '8243', 'seconds / inches' ], [ '167', 'section sign' ], [ '182', 'paragraph sign' ], [ '223', 'sharp s / ess-zed' ], [ '8249', 'single left-pointing angle quotation mark' ], [ '8250', 'single right-pointing angle quotation mark' ], [ '171', 'left pointing guillemet' ], [ '187', 'right pointing guillemet' ], [ '8216', 'left single quotation mark' ], [ '8217', 'right single quotation mark' ], [ '8220', 'left double quotation mark' ], [ '8221', 'right double quotation mark' ], [ '8218', 'single low-9 quotation mark' ], [ '8222', 'double low-9 quotation mark' ], [ '60', 'less-than sign' ], [ '62', 'greater-than sign' ], [ '8804', 'less-than or equal to' ], [ '8805', 'greater-than or equal to' ], [ '8211', 'en dash' ], [ '8212', 'em dash' ], [ '175', 'macron' ], [ '8254', 'overline' ], [ '164', 'currency sign' ], [ '166', 'broken bar' ], [ '168', 'diaeresis' ], [ '161', 'inverted exclamation mark' ], [ '191', 'turned question mark' ], [ '710', 'circumflex accent' ], [ '732', 'small tilde' ], [ '176', 'degree sign' ], [ '8722', 'minus sign' ], [ '177', 'plus-minus sign' ], [ '247', 'division sign' ], [ '8260', 'fraction slash' ], [ '215', 'multiplication sign' ], [ '185', 'superscript one' ], [ '178', 'superscript two' ], [ '179', 'superscript three' ], [ '188', 'fraction one quarter' ], [ '189', 'fraction one half' ], [ '190', 'fraction three quarters' ], [ '402', 'function / florin' ], [ '8747', 'integral' ], [ '8721', 'n-ary sumation' ], [ '8734', 'infinity' ], [ '8730', 'square root' ], [ '8764', 'similar to' ], [ '8773', 'approximately equal to' ], [ '8776', 'almost equal to' ], [ '8800', 'not equal to' ], [ '8801', 'identical to' ], [ '8712', 'element of' ], [ '8713', 'not an element of' ], [ '8715', 'contains as member' ], [ '8719', 'n-ary product' ], [ '8743', 'logical and' ], [ '8744', 'logical or' ], [ '172', 'not sign' ], [ '8745', 'intersection' ], [ '8746', 'union' ], [ '8706', 'partial differential' ], [ '8704', 'for all' ], [ '8707', 'there exists' ], [ '8709', 'diameter' ], [ '8711', 'backward difference' ], [ '8727', 'asterisk operator' ], [ '8733', 'proportional to' ], [ '8736', 'angle' ], [ '180', 'acute accent' ], [ '184', 'cedilla' ], [ '170', 'feminine ordinal indicator' ], [ '186', 'masculine ordinal indicator' ], [ '8224', 'dagger' ], [ '8225', 'double dagger' ], [ '192', 'A - grave' ], [ '193', 'A - acute' ], [ '194', 'A - circumflex' ], [ '195', 'A - tilde' ], [ '196', 'A - diaeresis' ], [ '197', 'A - ring above' ], [ '256', 'A - macron' ], [ '198', 'ligature AE' ], [ '199', 'C - cedilla' ], [ '200', 'E - grave' ], [ '201', 'E - acute' ], [ '202', 'E - circumflex' ], [ '203', 'E - diaeresis' ], [ '274', 'E - macron' ], [ '204', 'I - grave' ], [ '205', 'I - acute' ], [ '206', 'I - circumflex' ], [ '207', 'I - diaeresis' ], [ '298', 'I - macron' ], [ '208', 'ETH' ], [ '209', 'N - tilde' ], [ '210', 'O - grave' ], [ '211', 'O - acute' ], [ '212', 'O - circumflex' ], [ '213', 'O - tilde' ], [ '214', 'O - diaeresis' ], [ '216', 'O - slash' ], [ '332', 'O - macron' ], [ '338', 'ligature OE' ], [ '352', 'S - caron' ], [ '217', 'U - grave' ], [ '218', 'U - acute' ], [ '219', 'U - circumflex' ], [ '220', 'U - diaeresis' ], [ '362', 'U - macron' ], [ '221', 'Y - acute' ], [ '376', 'Y - diaeresis' ], [ '562', 'Y - macron' ], [ '222', 'THORN' ], [ '224', 'a - grave' ], [ '225', 'a - acute' ], [ '226', 'a - circumflex' ], [ '227', 'a - tilde' ], [ '228', 'a - diaeresis' ], [ '229', 'a - ring above' ], [ '257', 'a - macron' ], [ '230', 'ligature ae' ], [ '231', 'c - cedilla' ], [ '232', 'e - grave' ], [ '233', 'e - acute' ], [ '234', 'e - circumflex' ], [ '235', 'e - diaeresis' ], [ '275', 'e - macron' ], [ '236', 'i - grave' ], [ '237', 'i - acute' ], [ '238', 'i - circumflex' ], [ '239', 'i - diaeresis' ], [ '299', 'i - macron' ], [ '240', 'eth' ], [ '241', 'n - tilde' ], [ '242', 'o - grave' ], [ '243', 'o - acute' ], [ '244', 'o - circumflex' ], [ '245', 'o - tilde' ], [ '246', 'o - diaeresis' ], [ '248', 'o slash' ], [ '333', 'o macron' ], [ '339', 'ligature oe' ], [ '353', 's - caron' ], [ '249', 'u - grave' ], [ '250', 'u - acute' ], [ '251', 'u - circumflex' ], [ '252', 'u - diaeresis' ], [ '363', 'u - macron' ], [ '253', 'y - acute' ], [ '254', 'thorn' ], [ '255', 'y - diaeresis' ], [ '563', 'y - macron' ], [ '913', 'Alpha' ], [ '914', 'Beta' ], [ '915', 'Gamma' ], [ '916', 'Delta' ], [ '917', 'Epsilon' ], [ '918', 'Zeta' ], [ '919', 'Eta' ], [ '920', 'Theta' ], [ '921', 'Iota' ], [ '922', 'Kappa' ], [ '923', 'Lambda' ], [ '924', 'Mu' ], [ '925', 'Nu' ], [ '926', 'Xi' ], [ '927', 'Omicron' ], [ '928', 'Pi' ], [ '929', 'Rho' ], [ '931', 'Sigma' ], [ '932', 'Tau' ], [ '933', 'Upsilon' ], [ '934', 'Phi' ], [ '935', 'Chi' ], [ '936', 'Psi' ], [ '937', 'Omega' ], [ '945', 'alpha' ], [ '946', 'beta' ], [ '947', 'gamma' ], [ '948', 'delta' ], [ '949', 'epsilon' ], [ '950', 'zeta' ], [ '951', 'eta' ], [ '952', 'theta' ], [ '953', 'iota' ], [ '954', 'kappa' ], [ '955', 'lambda' ], [ '956', 'mu' ], [ '957', 'nu' ], [ '958', 'xi' ], [ '959', 'omicron' ], [ '960', 'pi' ], [ '961', 'rho' ], [ '962', 'final sigma' ], [ '963', 'sigma' ], [ '964', 'tau' ], [ '965', 'upsilon' ], [ '966', 'phi' ], [ '967', 'chi' ], [ '968', 'psi' ], [ '969', 'omega' ], [ '8501', 'alef symbol' ], [ '982', 'pi symbol' ], [ '8476', 'real part symbol' ], [ '978', 'upsilon - hook symbol' ], [ '8472', 'Weierstrass p' ], [ '8465', 'imaginary part' ], [ '8592', 'leftwards arrow' ], [ '8593', 'upwards arrow' ], [ '8594', 'rightwards arrow' ], [ '8595', 'downwards arrow' ], [ '8596', 'left right arrow' ], [ '8629', 'carriage return' ], [ '8656', 'leftwards double arrow' ], [ '8657', 'upwards double arrow' ], [ '8658', 'rightwards double arrow' ], [ '8659', 'downwards double arrow' ], [ '8660', 'left right double arrow' ], [ '8756', 'therefore' ], [ '8834', 'subset of' ], [ '8835', 'superset of' ], [ '8836', 'not a subset of' ], [ '8838', 'subset of or equal to' ], [ '8839', 'superset of or equal to' ], [ '8853', 'circled plus' ], [ '8855', 'circled times' ], [ '8869', 'perpendicular' ], [ '8901', 'dot operator' ], [ '8968', 'left ceiling' ], [ '8969', 'right ceiling' ], [ '8970', 'left floor' ], [ '8971', 'right floor' ], [ '9001', 'left-pointing angle bracket' ], [ '9002', 'right-pointing angle bracket' ], [ '9674', 'lozenge' ], [ '9824', 'black spade suit' ], [ '9827', 'black club suit' ], [ '9829', 'black heart suit' ], [ '9830', 'black diamond suit' ], [ '8194', 'en space' ], [ '8195', 'em space' ], [ '8201', 'thin space' ], [ '8204', 'zero width non-joiner' ], [ '8205', 'zero width joiner' ], [ '8206', 'left-to-right mark' ], [ '8207', 'right-to-left mark' ] ]; }; var charmapFilter = function (charmap) { return global$1.grep(charmap, function (item) { return isArray(item) && item.length === 2; }); }; var getCharsFromSetting = function (settingValue) { if (isArray(settingValue)) { return [].concat(charmapFilter(settingValue)); } if (typeof settingValue === 'function') { return settingValue(); } return []; }; var extendCharMap = function (editor, charmap) { var userCharMap = Settings.getCharMap(editor); if (userCharMap) { charmap = getCharsFromSetting(userCharMap); } var userCharMapAppend = Settings.getCharMapAppend(editor); if (userCharMapAppend) { return [].concat(charmap).concat(getCharsFromSetting(userCharMapAppend)); } return charmap; }; var getCharMap$1 = function (editor) { return extendCharMap(editor, getDefaultCharMap()); }; var CharMap = { getCharMap: getCharMap$1 }; var get = function (editor) { var getCharMap = function () { return CharMap.getCharMap(editor); }; var insertChar = function (chr) { Actions.insertChar(editor, chr); }; return { getCharMap: getCharMap, insertChar: insertChar }; }; var Api = { get: get }; var getHtml = function (charmap) { var gridHtml, x, y; var width = Math.min(charmap.length, 25); var height = Math.ceil(charmap.length / width); gridHtml = ''; for (y = 0; y < height; y++) { gridHtml += ''; for (x = 0; x < width; x++) { var index = y * width + x; if (index < charmap.length) { var chr = charmap[index]; var charCode = parseInt(chr[0], 10); var chrText = chr ? String.fromCharCode(charCode) : ' '; gridHtml += ''; } else { gridHtml += ''; } gridHtml += ''; return gridHtml; }; var GridHtml = { getHtml: getHtml }; var getParentTd = function (elm) { while (elm) { if (elm.nodeName === 'TD') { return elm; } elm = elm.parentNode; } }; var open = function (editor) { var win; var charMapPanel = { type: 'container', html: GridHtml.getHtml(CharMap.getCharMap(editor)), onclick: function (e) { var target = e.target; if (/^(TD|DIV)$/.test(target.nodeName)) { var charDiv = getParentTd(target).firstChild; if (charDiv && charDiv.hasAttribute('data-chr')) { var charCodeString = charDiv.getAttribute('data-chr'); var charCode = parseInt(charCodeString, 10); if (!isNaN(charCode)) { Actions.insertChar(editor, String.fromCharCode(charCode)); } if (!e.ctrlKey) { win.close(); } } } }, onmouseover: function (e) { var td = getParentTd(e.target); if (td && td.firstChild) { win.find('#preview').text(td.firstChild.firstChild.data); win.find('#previewTitle').text(td.title); } else { win.find('#preview').text(' '); win.find('#previewTitle').text(' '); } } }; win = editor.windowManager.open({ title: 'Special character', spacing: 10, padding: 10, items: [ charMapPanel, { type: 'container', layout: 'flex', direction: 'column', align: 'center', spacing: 5, minWidth: 160, minHeight: 160, items: [ { type: 'label', name: 'preview', text: ' ', style: 'font-size: 40px; text-align: center', border: 1, minWidth: 140, minHeight: 80 }, { type: 'spacer', minHeight: 20 }, { type: 'label', name: 'previewTitle', text: ' ', style: 'white-space: pre-wrap;', border: 1, minWidth: 140 } ] } ], buttons: [{ text: 'Close', onclick: function () { win.close(); } }] }); }; var Dialog = { open: open }; var register = function (editor) { editor.addCommand('mceShowCharmap', function () { Dialog.open(editor); }); }; var Commands = { register: register }; var register$1 = function (editor) { editor.addButton('charmap', { icon: 'charmap', tooltip: 'Special character', cmd: 'mceShowCharmap' }); editor.addMenuItem('charmap', { icon: 'charmap', text: 'Special character', cmd: 'mceShowCharmap', context: 'insert' }); }; var Buttons = { register: register$1 }; global.add('charmap', function (editor) { Commands.register(editor); Buttons.register(editor); return Api.get(editor); }); function Plugin () { } return Plugin; }()); })(); charmap/plugin.min.js000064400000020631151222602260010575 0ustar00!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),i=function(e,t){return e.fire("insertCustomChar",{chr:t})},l=function(e,t){var a=i(e,t).chr;e.execCommand("mceInsertContent",!1,a)},a=tinymce.util.Tools.resolve("tinymce.util.Tools"),r=function(e){return e.settings.charmap},n=function(e){return e.settings.charmap_append},o=a.isArray,c=function(e){return o(e)?[].concat((t=e,a.grep(t,function(e){return o(e)&&2===e.length}))):"function"==typeof e?e():[];var t},s=function(e){return function(e,t){var a=r(e);a&&(t=c(a));var i=n(e);return i?[].concat(t).concat(c(i)):t}(e,[["160","no-break space"],["173","soft hyphen"],["34","quotation mark"],["162","cent sign"],["8364","euro sign"],["163","pound sign"],["165","yen sign"],["169","copyright sign"],["174","registered sign"],["8482","trade mark sign"],["8240","per mille sign"],["181","micro sign"],["183","middle dot"],["8226","bullet"],["8230","three dot leader"],["8242","minutes / feet"],["8243","seconds / inches"],["167","section sign"],["182","paragraph sign"],["223","sharp s / ess-zed"],["8249","single left-pointing angle quotation mark"],["8250","single right-pointing angle quotation mark"],["171","left pointing guillemet"],["187","right pointing guillemet"],["8216","left single quotation mark"],["8217","right single quotation mark"],["8220","left double quotation mark"],["8221","right double quotation mark"],["8218","single low-9 quotation mark"],["8222","double low-9 quotation mark"],["60","less-than sign"],["62","greater-than sign"],["8804","less-than or equal to"],["8805","greater-than or equal to"],["8211","en dash"],["8212","em dash"],["175","macron"],["8254","overline"],["164","currency sign"],["166","broken bar"],["168","diaeresis"],["161","inverted exclamation mark"],["191","turned question mark"],["710","circumflex accent"],["732","small tilde"],["176","degree sign"],["8722","minus sign"],["177","plus-minus sign"],["247","division sign"],["8260","fraction slash"],["215","multiplication sign"],["185","superscript one"],["178","superscript two"],["179","superscript three"],["188","fraction one quarter"],["189","fraction one half"],["190","fraction three quarters"],["402","function / florin"],["8747","integral"],["8721","n-ary sumation"],["8734","infinity"],["8730","square root"],["8764","similar to"],["8773","approximately equal to"],["8776","almost equal to"],["8800","not equal to"],["8801","identical to"],["8712","element of"],["8713","not an element of"],["8715","contains as member"],["8719","n-ary product"],["8743","logical and"],["8744","logical or"],["172","not sign"],["8745","intersection"],["8746","union"],["8706","partial differential"],["8704","for all"],["8707","there exists"],["8709","diameter"],["8711","backward difference"],["8727","asterisk operator"],["8733","proportional to"],["8736","angle"],["180","acute accent"],["184","cedilla"],["170","feminine ordinal indicator"],["186","masculine ordinal indicator"],["8224","dagger"],["8225","double dagger"],["192","A - grave"],["193","A - acute"],["194","A - circumflex"],["195","A - tilde"],["196","A - diaeresis"],["197","A - ring above"],["256","A - macron"],["198","ligature AE"],["199","C - cedilla"],["200","E - grave"],["201","E - acute"],["202","E - circumflex"],["203","E - diaeresis"],["274","E - macron"],["204","I - grave"],["205","I - acute"],["206","I - circumflex"],["207","I - diaeresis"],["298","I - macron"],["208","ETH"],["209","N - tilde"],["210","O - grave"],["211","O - acute"],["212","O - circumflex"],["213","O - tilde"],["214","O - diaeresis"],["216","O - slash"],["332","O - macron"],["338","ligature OE"],["352","S - caron"],["217","U - grave"],["218","U - acute"],["219","U - circumflex"],["220","U - diaeresis"],["362","U - macron"],["221","Y - acute"],["376","Y - diaeresis"],["562","Y - macron"],["222","THORN"],["224","a - grave"],["225","a - acute"],["226","a - circumflex"],["227","a - tilde"],["228","a - diaeresis"],["229","a - ring above"],["257","a - macron"],["230","ligature ae"],["231","c - cedilla"],["232","e - grave"],["233","e - acute"],["234","e - circumflex"],["235","e - diaeresis"],["275","e - macron"],["236","i - grave"],["237","i - acute"],["238","i - circumflex"],["239","i - diaeresis"],["299","i - macron"],["240","eth"],["241","n - tilde"],["242","o - grave"],["243","o - acute"],["244","o - circumflex"],["245","o - tilde"],["246","o - diaeresis"],["248","o slash"],["333","o macron"],["339","ligature oe"],["353","s - caron"],["249","u - grave"],["250","u - acute"],["251","u - circumflex"],["252","u - diaeresis"],["363","u - macron"],["253","y - acute"],["254","thorn"],["255","y - diaeresis"],["563","y - macron"],["913","Alpha"],["914","Beta"],["915","Gamma"],["916","Delta"],["917","Epsilon"],["918","Zeta"],["919","Eta"],["920","Theta"],["921","Iota"],["922","Kappa"],["923","Lambda"],["924","Mu"],["925","Nu"],["926","Xi"],["927","Omicron"],["928","Pi"],["929","Rho"],["931","Sigma"],["932","Tau"],["933","Upsilon"],["934","Phi"],["935","Chi"],["936","Psi"],["937","Omega"],["945","alpha"],["946","beta"],["947","gamma"],["948","delta"],["949","epsilon"],["950","zeta"],["951","eta"],["952","theta"],["953","iota"],["954","kappa"],["955","lambda"],["956","mu"],["957","nu"],["958","xi"],["959","omicron"],["960","pi"],["961","rho"],["962","final sigma"],["963","sigma"],["964","tau"],["965","upsilon"],["966","phi"],["967","chi"],["968","psi"],["969","omega"],["8501","alef symbol"],["982","pi symbol"],["8476","real part symbol"],["978","upsilon - hook symbol"],["8472","Weierstrass p"],["8465","imaginary part"],["8592","leftwards arrow"],["8593","upwards arrow"],["8594","rightwards arrow"],["8595","downwards arrow"],["8596","left right arrow"],["8629","carriage return"],["8656","leftwards double arrow"],["8657","upwards double arrow"],["8658","rightwards double arrow"],["8659","downwards double arrow"],["8660","left right double arrow"],["8756","therefore"],["8834","subset of"],["8835","superset of"],["8836","not a subset of"],["8838","subset of or equal to"],["8839","superset of or equal to"],["8853","circled plus"],["8855","circled times"],["8869","perpendicular"],["8901","dot operator"],["8968","left ceiling"],["8969","right ceiling"],["8970","left floor"],["8971","right floor"],["9001","left-pointing angle bracket"],["9002","right-pointing angle bracket"],["9674","lozenge"],["9824","black spade suit"],["9827","black club suit"],["9829","black heart suit"],["9830","black diamond suit"],["8194","en space"],["8195","em space"],["8201","thin space"],["8204","zero width non-joiner"],["8205","zero width joiner"],["8206","left-to-right mark"],["8207","right-to-left mark"]])},t=function(t){return{getCharMap:function(){return s(t)},insertChar:function(e){l(t,e)}}},u=function(e){var t,a,i,r=Math.min(e.length,25),n=Math.ceil(e.length/r);for(t='',i=0;i",a=0;a
'+s+"
"}else t+="
"}return t+=""},d=function(e){for(;e;){if("TD"===e.nodeName)return e;e=e.parentNode}},m=function(n){var o,e={type:"container",html:u(s(n)),onclick:function(e){var t=e.target;if(/^(TD|DIV)$/.test(t.nodeName)){var a=d(t).firstChild;if(a&&a.hasAttribute("data-chr")){var i=a.getAttribute("data-chr"),r=parseInt(i,10);isNaN(r)||l(n,String.fromCharCode(r)),e.ctrlKey||o.close()}}},onmouseover:function(e){var t=d(e.target);t&&t.firstChild?(o.find("#preview").text(t.firstChild.firstChild.data),o.find("#previewTitle").text(t.title)):(o.find("#preview").text(" "),o.find("#previewTitle").text(" "))}};o=n.windowManager.open({title:"Special character",spacing:10,padding:10,items:[e,{type:"container",layout:"flex",direction:"column",align:"center",spacing:5,minWidth:160,minHeight:160,items:[{type:"label",name:"preview",text:" ",style:"font-size: 40px; text-align: center",border:1,minWidth:140,minHeight:80},{type:"spacer",minHeight:20},{type:"label",name:"previewTitle",text:" ",style:"white-space: pre-wrap;",border:1,minWidth:140}]}],buttons:[{text:"Close",onclick:function(){o.close()}}]})},g=function(e){e.addCommand("mceShowCharmap",function(){m(e)})},p=function(e){e.addButton("charmap",{icon:"charmap",tooltip:"Special character",cmd:"mceShowCharmap"}),e.addMenuItem("charmap",{icon:"charmap",text:"Special character",cmd:"mceShowCharmap",context:"insert"})};e.add("charmap",function(e){return g(e),p(e),t(e)})}();colorpicker/plugin.js000064400000006751151222602260010723 0ustar00(function () { var colorpicker = (function () { 'use strict'; var global = tinymce.util.Tools.resolve('tinymce.PluginManager'); var global$1 = tinymce.util.Tools.resolve('tinymce.util.Color'); var showPreview = function (win, hexColor) { win.find('#preview')[0].getEl().style.background = hexColor; }; var setColor = function (win, value) { var color = global$1(value), rgb = color.toRgb(); win.fromJSON({ r: rgb.r, g: rgb.g, b: rgb.b, hex: color.toHex().substr(1) }); showPreview(win, color.toHex()); }; var open = function (editor, callback, value) { var win = editor.windowManager.open({ title: 'Color', items: { type: 'container', layout: 'flex', direction: 'row', align: 'stretch', padding: 5, spacing: 10, items: [ { type: 'colorpicker', value: value, onchange: function () { var rgb = this.rgb(); if (win) { win.find('#r').value(rgb.r); win.find('#g').value(rgb.g); win.find('#b').value(rgb.b); win.find('#hex').value(this.value().substr(1)); showPreview(win, this.value()); } } }, { type: 'form', padding: 0, labelGap: 5, defaults: { type: 'textbox', size: 7, value: '0', flex: 1, spellcheck: false, onchange: function () { var colorPickerCtrl = win.find('colorpicker')[0]; var name, value; name = this.name(); value = this.value(); if (name === 'hex') { value = '#' + value; setColor(win, value); colorPickerCtrl.value(value); return; } value = { r: win.find('#r').value(), g: win.find('#g').value(), b: win.find('#b').value() }; colorPickerCtrl.value(value); setColor(win, value); } }, items: [ { name: 'r', label: 'R', autofocus: 1 }, { name: 'g', label: 'G' }, { name: 'b', label: 'B' }, { name: 'hex', label: '#', value: '000000' }, { name: 'preview', type: 'container', border: 1 } ] } ] }, onSubmit: function () { callback('#' + win.toJSON().hex); } }); setColor(win, value); }; var Dialog = { open: open }; global.add('colorpicker', function (editor) { if (!editor.settings.color_picker_callback) { editor.settings.color_picker_callback = function (callback, value) { Dialog.open(editor, callback, value); }; } }); function Plugin () { } return Plugin; }()); })(); colorpicker/plugin.min.js000064400000002505151222602260011476 0ustar00!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),l=tinymce.util.Tools.resolve("tinymce.util.Color"),a=function(e,n){e.find("#preview")[0].getEl().style.background=n},o=function(e,n){var i=l(n),t=i.toRgb();e.fromJSON({r:t.r,g:t.g,b:t.b,hex:i.toHex().substr(1)}),a(e,i.toHex())},t=function(e,n,i){var t=e.windowManager.open({title:"Color",items:{type:"container",layout:"flex",direction:"row",align:"stretch",padding:5,spacing:10,items:[{type:"colorpicker",value:i,onchange:function(){var e=this.rgb();t&&(t.find("#r").value(e.r),t.find("#g").value(e.g),t.find("#b").value(e.b),t.find("#hex").value(this.value().substr(1)),a(t,this.value()))}},{type:"form",padding:0,labelGap:5,defaults:{type:"textbox",size:7,value:"0",flex:1,spellcheck:!1,onchange:function(){var e,n,i=t.find("colorpicker")[0];if(e=this.name(),n=this.value(),"hex"===e)return o(t,n="#"+n),void i.value(n);n={r:t.find("#r").value(),g:t.find("#g").value(),b:t.find("#b").value()},i.value(n),o(t,n)}},items:[{name:"r",label:"R",autofocus:1},{name:"g",label:"G"},{name:"b",label:"B"},{name:"hex",label:"#",value:"000000"},{name:"preview",type:"container",border:1}]}]},onSubmit:function(){n("#"+t.toJSON().hex)}});o(t,i)};e.add("colorpicker",function(i){i.settings.color_picker_callback||(i.settings.color_picker_callback=function(e,n){t(i,e,n)})})}();compat3x/css/dialog.css000064400000017763151222602260011057 0ustar00/* * Edited for compatibility with old TinyMCE 3.x plugins in WordPress. * More info: https://core.trac.wordpress.org/ticket/31596#comment:10 */ /* Generic */ body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; font-size:13px; background:#fcfcfc; padding:0; margin:8px 8px 0 8px; } textarea {resize:none;outline:none;} a:link, a:hover { color: #2B6FB6; } a:visited { color: #3C2BB6; } .nowrap {white-space: nowrap} /* Forms */ form {margin: 0;} fieldset {margin:0; padding:4px; border:1px solid #dfdfdf; font-family:Verdana, Arial; font-size:10px;} legend {color:#2B6FB6; font-weight:bold;} label.msg {display:none;} label.invalid {color:#EE0000; display:inline;} input.invalid {border:1px solid #EE0000;} input {background:#FFF; border:1px solid #dfdfdf;} input, select, textarea {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;} input, select, textarea {border:1px solid #dfdfdf;} input.radio {border:1px none #000000; background:transparent; vertical-align:middle;} input.checkbox {border:1px none #000000; background:transparent; vertical-align:middle;} .input_noborder {border:0;} /* Buttons */ #insert, #cancel, #apply, .mceActionPanel .button, input.mceButton, .updateButton { display: inline-block; text-decoration: none; border: 1px solid #adadad; margin: 0; padding: 0 10px 1px; font-size: 13px; height: 24px; line-height: 22px; color: #333; cursor: pointer; -webkit-border-radius: 3px; -webkit-appearance: none; border-radius: 3px; white-space: nowrap; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; background: #fafafa; background-image: -webkit-gradient(linear, left top, left bottom, from(#fafafa), to(#e9e9e9)); background-image: -webkit-linear-gradient(top, #fafafa, #e9e9e9); background-image: -moz-linear-gradient(top, #fafafa, #e9e9e9); background-image: -o-linear-gradient(top, #fafafa, #e9e9e9); background-image: linear-gradient(to bottom, #fafafa, #e9e9e9); text-shadow: 0 1px 0 #fff; -webkit-box-shadow: inset 0 1px 0 #fff; -moz-box-shadow: inset 0 1px 0 #fff; box-shadow: inset 0 1px 0 #fff; } #insert { background: #2ea2cc; background: -webkit-gradient(linear, left top, left bottom, from(#2ea2cc), to(#1e8cbe)); background: -webkit-linear-gradient(top, #2ea2cc 0%,#1e8cbe 100%); background: linear-gradient(top, #2ea2cc 0%,#1e8cbe 100%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#2ea2cc', endColorstr='#1e8cbe',GradientType=0 ); border-color: #0074a2; -webkit-box-shadow: inset 0 1px 0 rgba(120,200,230,0.5); box-shadow: inset 0 1px 0 rgba(120,200,230,0.5); color: #fff; text-decoration: none; text-shadow: 0 1px 0 rgba(0,86,132,0.7); } #cancel:hover, input.mceButton:hover, .updateButton:hover, #cancel:focus, input.mceButton:focus, .updateButton:focus { background: #f3f3f3; background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f3f3f3)); background-image: -webkit-linear-gradient(top, #fff, #f3f3f3); background-image: -moz-linear-gradient(top, #fff, #f3f3f3); background-image: -ms-linear-gradient(top, #fff, #f3f3f3); background-image: -o-linear-gradient(top, #fff, #f3f3f3); background-image: linear-gradient(to bottom, #fff, #f3f3f3); border-color: #999; color: #222; } #insert:hover, #insert:focus { background: #1e8cbe; background: -webkit-gradient(linear, left top, left bottom, from(#1e8cbe), to(#0074a2)); background: -webkit-linear-gradient(top, #1e8cbe 0%,#0074a2 100%); background: linear-gradient(top, #1e8cbe 0%,#0074a2 100%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1e8cbe', endColorstr='#0074a2',GradientType=0 ); border-color: #0074a2; -webkit-box-shadow: inset 0 1px 0 rgba(120,200,230,0.6); box-shadow: inset 0 1px 0 rgba(120,200,230,0.6); color: #fff; } .mceActionPanel #insert { float: right; } /* Browse */ a.pickcolor, a.browse {text-decoration:none} a.browse span {display:block; width:20px; height:18px; border:1px solid #FFF; margin-left:1px;} .mceOldBoxModel a.browse span {width:22px; height:20px;} a.browse:hover span {border:1px solid #0A246A; background-color:#B2BBD0;} a.browse span.disabled {border:1px solid white; opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30);} a.browse:hover span.disabled {border:1px solid white; background-color:transparent;} a.pickcolor span {display:block; width:20px; height:16px; margin-left:2px;} .mceOldBoxModel a.pickcolor span {width:21px; height:17px;} a.pickcolor:hover span {background-color:#B2BBD0;} div.iframecontainer {background: #fff;} /* Charmap */ table.charmap {border:1px solid #AAA; text-align:center} td.charmap, #charmap a {width:18px; height:18px; color:#000; border:1px solid #AAA; text-align:center; font-size:12px; vertical-align:middle; line-height: 18px;} #charmap a {display:block; color:#000; text-decoration:none; border:0} #charmap a:hover {background:#CCC;color:#2B6FB6} #charmap #codeN {font-size:10px; font-family:Arial,Helvetica,sans-serif; text-align:center} #charmap #codeV {font-size:40px; height:80px; border:1px solid #AAA; text-align:center} #charmap #charmapView {background-color:#fff;} /* Source */ .wordWrapCode {vertical-align:middle; border:1px none #000000; background:transparent;} .mceActionPanel {margin-top:5px;} /* Tabs classes */ .tabs {width:100%; height:19px; line-height:normal; border-bottom: 1px solid #aaa;} .tabs ul {margin:0; padding:0; list-style:none;} .tabs li {float:left; border: 1px solid #aaa; margin:0 2px 0 0; padding:0 0 0 10px; line-height:17px; height:18px; display:block;} .tabs li.current {border-bottom: 1px solid #fff; margin-right:2px;} .tabs span {float:left; display:block; padding:0px 10px 0 0;} .tabs a {text-decoration:none; font-family:Verdana, Arial; font-size:10px;} .tabs a:link, .tabs a:visited, .tabs a:hover {color:black;} .wp-core-ui #tabs { padding-bottom: 5px; background-color: transparent; } .wp-core-ui #tabs a { padding: 6px 10px; margin: 0 2px; } /* Panels */ .panel_wrapper div.panel {display:none;} .panel_wrapper div.current {display:block; width:100%; height:300px; overflow:visible;} .panel_wrapper {border:1px solid #919B9C; border-top:0px; padding:10px; padding-top:5px; clear:both; background:white;} /* Columns */ .column {float:left;} .properties {width:100%;} .properties .column1 {} .properties .column2 {text-align:left;} /* Titles */ h1, h2, h3, h4 {color:#2B6FB6; margin:0; padding:0; padding-top:5px;} h3 {font-size:14px;} .title {font-size:12px; font-weight:bold; color:#2B6FB6;} /* Dialog specific */ #link .panel_wrapper, #link div.current {height:125px;} #image .panel_wrapper, #image div.current {height:200px;} #plugintable thead {font-weight:bold; background:#DDD;} #plugintable, #about #plugintable td {border:1px solid #919B9C;} #plugintable {width:96%; margin-top:10px;} #pluginscontainer {height:290px; overflow:auto;} #colorpicker #preview {display:inline-block; padding-left:40px; height:14px; border:1px solid black; margin-left:5px; margin-right: 5px} #colorpicker #previewblock {position: relative; top: -3px; padding-left:5px; padding-top: 0px; display:inline} #colorpicker #preview_wrapper {text-align:center; padding-top:4px; white-space: nowrap; float: right;} #colorpicker #insert, #colorpicker #cancel {width: 90px} #colorpicker #colors {float:left; border:1px solid gray; cursor:crosshair;} #colorpicker #light {border:1px solid gray; margin-left:5px; float:left;width:15px; height:150px; cursor:crosshair;} #colorpicker #light div {overflow:hidden;} #colorpicker .panel_wrapper div.current {height:175px;} #colorpicker #namedcolors {width:150px;} #colorpicker #namedcolors a {display:block; float:left; width:10px; height:10px; margin:1px 1px 0 0; overflow:hidden;} #colorpicker #colornamecontainer {margin-top:5px;} #colorpicker #picker_panel fieldset {margin:auto;width:325px;} /* Localization */ body[dir="rtl"], body[dir="rtl"] fieldset, body[dir="rtl"] input, body[dir="rtl"] select, body[dir="rtl"] textarea, body[dir="rtl"] #charmap #codeN, body[dir="rtl"] .tabs a { font-family: Tahoma, sans-serif; } compat3x/plugin.js000064400000022352151222602260010140 0ustar00/** * plugin.js * * Released under LGPL License. * Copyright (c) 1999-2017 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing */ /*global tinymce:true, console:true */ /*eslint no-console:0, new-cap:0 */ /** * This plugin adds missing events form the 4.x API back. Not every event is * properly supported but most things should work. * * Unsupported things: * - No editor.onEvent * - Can't cancel execCommands with beforeExecCommand */ (function (tinymce) { var reported; function noop() { } function log(apiCall) { if (!reported && window && window.console) { reported = true; console.log("Deprecated TinyMCE API call: " + apiCall); } } function Dispatcher(target, newEventName, argsMap, defaultScope) { target = target || this; var cbs = []; if (!newEventName) { this.add = this.addToTop = this.remove = this.dispatch = noop; return; } this.add = function (callback, scope, prepend) { log('.on' + newEventName + ".add(..)"); // Convert callback({arg1:x, arg2:x}) -> callback(arg1, arg2) function patchedEventCallback(e) { var callbackArgs = []; if (typeof argsMap == "string") { argsMap = argsMap.split(" "); } if (argsMap && typeof argsMap !== "function") { for (var i = 0; i < argsMap.length; i++) { callbackArgs.push(e[argsMap[i]]); } } if (typeof argsMap == "function") { callbackArgs = argsMap(newEventName, e, target); if (!callbackArgs) { return; } } if (!argsMap) { callbackArgs = [e]; } callbackArgs.unshift(defaultScope || target); if (callback.apply(scope || defaultScope || target, callbackArgs) === false) { e.stopImmediatePropagation(); } } target.on(newEventName, patchedEventCallback, prepend); var handlers = { original: callback, patched: patchedEventCallback }; cbs.push(handlers); return patchedEventCallback; }; this.addToTop = function (callback, scope) { this.add(callback, scope, true); }; this.remove = function (callback) { cbs.forEach(function (item, i) { if (item.original === callback) { cbs.splice(i, 1); return target.off(newEventName, item.patched); } }); return target.off(newEventName, callback); }; this.dispatch = function () { target.fire(newEventName); return true; }; } tinymce.util.Dispatcher = Dispatcher; tinymce.onBeforeUnload = new Dispatcher(tinymce, "BeforeUnload"); tinymce.onAddEditor = new Dispatcher(tinymce, "AddEditor", "editor"); tinymce.onRemoveEditor = new Dispatcher(tinymce, "RemoveEditor", "editor"); tinymce.util.Cookie = { get: noop, getHash: noop, remove: noop, set: noop, setHash: noop }; function patchEditor(editor) { function translate(str) { var prefix = editor.settings.language || "en"; var prefixedStr = [prefix, str].join('.'); var translatedStr = tinymce.i18n.translate(prefixedStr); return prefixedStr !== translatedStr ? translatedStr : tinymce.i18n.translate(str); } function patchEditorEvents(oldEventNames, argsMap) { tinymce.each(oldEventNames.split(" "), function (oldName) { editor["on" + oldName] = new Dispatcher(editor, oldName, argsMap); }); } function convertUndoEventArgs(type, event, target) { return [ event.level, target ]; } function filterSelectionEvents(needsSelection) { return function (type, e) { if ((!e.selection && !needsSelection) || e.selection == needsSelection) { return [e]; } }; } if (editor.controlManager) { return; } function cmNoop() { var obj = {}, methods = 'add addMenu addSeparator collapse createMenu destroy displayColor expand focus ' + 'getLength hasMenus hideMenu isActive isCollapsed isDisabled isRendered isSelected mark ' + 'postRender remove removeAll renderHTML renderMenu renderNode renderTo select selectByIndex ' + 'setActive setAriaProperty setColor setDisabled setSelected setState showMenu update'; log('editor.controlManager.*'); function _noop() { return cmNoop(); } tinymce.each(methods.split(' '), function (method) { obj[method] = _noop; }); return obj; } editor.controlManager = { buttons: {}, setDisabled: function (name, state) { log("controlManager.setDisabled(..)"); if (this.buttons[name]) { this.buttons[name].disabled(state); } }, setActive: function (name, state) { log("controlManager.setActive(..)"); if (this.buttons[name]) { this.buttons[name].active(state); } }, onAdd: new Dispatcher(), onPostRender: new Dispatcher(), add: function (obj) { return obj; }, createButton: cmNoop, createColorSplitButton: cmNoop, createControl: cmNoop, createDropMenu: cmNoop, createListBox: cmNoop, createMenuButton: cmNoop, createSeparator: cmNoop, createSplitButton: cmNoop, createToolbar: cmNoop, createToolbarGroup: cmNoop, destroy: noop, get: noop, setControlType: cmNoop }; patchEditorEvents("PreInit BeforeRenderUI PostRender Load Init Remove Activate Deactivate", "editor"); patchEditorEvents("Click MouseUp MouseDown DblClick KeyDown KeyUp KeyPress ContextMenu Paste Submit Reset"); patchEditorEvents("BeforeExecCommand ExecCommand", "command ui value args"); // args.terminate not supported patchEditorEvents("PreProcess PostProcess LoadContent SaveContent Change"); patchEditorEvents("BeforeSetContent BeforeGetContent SetContent GetContent", filterSelectionEvents(false)); patchEditorEvents("SetProgressState", "state time"); patchEditorEvents("VisualAid", "element hasVisual"); patchEditorEvents("Undo Redo", convertUndoEventArgs); patchEditorEvents("NodeChange", function (type, e) { return [ editor.controlManager, e.element, editor.selection.isCollapsed(), e ]; }); var originalAddButton = editor.addButton; editor.addButton = function (name, settings) { var originalOnPostRender; function patchedPostRender() { editor.controlManager.buttons[name] = this; if (originalOnPostRender) { return originalOnPostRender.apply(this, arguments); } } for (var key in settings) { if (key.toLowerCase() === "onpostrender") { originalOnPostRender = settings[key]; settings.onPostRender = patchedPostRender; } } if (!originalOnPostRender) { settings.onPostRender = patchedPostRender; } if (settings.title) { settings.title = translate(settings.title); } return originalAddButton.call(this, name, settings); }; editor.on('init', function () { var undoManager = editor.undoManager, selection = editor.selection; undoManager.onUndo = new Dispatcher(editor, "Undo", convertUndoEventArgs, null, undoManager); undoManager.onRedo = new Dispatcher(editor, "Redo", convertUndoEventArgs, null, undoManager); undoManager.onBeforeAdd = new Dispatcher(editor, "BeforeAddUndo", null, undoManager); undoManager.onAdd = new Dispatcher(editor, "AddUndo", null, undoManager); selection.onBeforeGetContent = new Dispatcher(editor, "BeforeGetContent", filterSelectionEvents(true), selection); selection.onGetContent = new Dispatcher(editor, "GetContent", filterSelectionEvents(true), selection); selection.onBeforeSetContent = new Dispatcher(editor, "BeforeSetContent", filterSelectionEvents(true), selection); selection.onSetContent = new Dispatcher(editor, "SetContent", filterSelectionEvents(true), selection); }); editor.on('BeforeRenderUI', function () { var windowManager = editor.windowManager; windowManager.onOpen = new Dispatcher(); windowManager.onClose = new Dispatcher(); windowManager.createInstance = function (className, a, b, c, d, e) { log("windowManager.createInstance(..)"); var constr = tinymce.resolve(className); return new constr(a, b, c, d, e); }; }); } tinymce.on('SetupEditor', function (e) { patchEditor(e.editor); }); tinymce.PluginManager.add("compat3x", patchEditor); tinymce.addI18n = function (prefix, o) { var I18n = tinymce.util.I18n, each = tinymce.each; if (typeof prefix == "string" && prefix.indexOf('.') === -1) { I18n.add(prefix, o); return; } if (!tinymce.is(prefix, 'string')) { each(prefix, function (o, lc) { each(o, function (o, g) { each(o, function (o, k) { if (g === 'common') { I18n.data[lc + '.' + k] = o; } else { I18n.data[lc + '.' + g + '.' + k] = o; } }); }); }); } else { each(o, function (o, k) { I18n.data[prefix + '.' + k] = o; }); } }; })(tinymce); compat3x/plugin.min.js000064400000010041151222602260010712 0ustar00!function(u){var t;function l(){}function f(e){!t&&window&&window.console&&(t=!0,console.log("Deprecated TinyMCE API call: "+e))}function i(i,a,d,s){i=i||this;var c=[];a?(this.add=function(o,r,e){function t(e){var t=[];if("string"==typeof d&&(d=d.split(" ")),d&&"function"!=typeof d)for(var n=0;n.on"+a+".add(..)"),i.on(a,t,e);var n={original:o,patched:t};return c.push(n),t},this.addToTop=function(e,t){this.add(e,t,!0)},this.remove=function(n){return c.forEach(function(e,t){if(e.original===n)return c.splice(t,1),i.off(a,e.patched)}),i.off(a,n)},this.dispatch=function(){return i.fire(a),!0}):this.add=this.addToTop=this.remove=this.dispatch=l}function n(s){function e(e,t){u.each(e.split(" "),function(e){s["on"+e]=new i(s,e,t)})}function n(e,t,n){return[t.level,n]}function o(n){return function(e,t){if(!t.selection&&!n||t.selection==n)return[t]}}if(!s.controlManager){s.controlManager={buttons:{},setDisabled:function(e,t){f("controlManager.setDisabled(..)"),this.buttons[e]&&this.buttons[e].disabled(t)},setActive:function(e,t){f("controlManager.setActive(..)"),this.buttons[e]&&this.buttons[e].active(t)},onAdd:new i,onPostRender:new i,add:function(e){return e},createButton:r,createColorSplitButton:r,createControl:r,createDropMenu:r,createListBox:r,createMenuButton:r,createSeparator:r,createSplitButton:r,createToolbar:r,createToolbarGroup:r,destroy:l,get:l,setControlType:r},e("PreInit BeforeRenderUI PostRender Load Init Remove Activate Deactivate","editor"),e("Click MouseUp MouseDown DblClick KeyDown KeyUp KeyPress ContextMenu Paste Submit Reset"),e("BeforeExecCommand ExecCommand","command ui value args"),e("PreProcess PostProcess LoadContent SaveContent Change"),e("BeforeSetContent BeforeGetContent SetContent GetContent",o(!1)),e("SetProgressState","state time"),e("VisualAid","element hasVisual"),e("Undo Redo",n),e("NodeChange",function(e,t){return[s.controlManager,t.element,s.selection.isCollapsed(),t]});var c=s.addButton;s.addButton=function(e,t){var n,o,r,i;function a(){if(s.controlManager.buttons[e]=this,n)return n.apply(this,arguments)}for(var d in t)"onpostrender"===d.toLowerCase()&&(n=t[d],t.onPostRender=a);return n||(t.onPostRender=a),t.title&&(t.title=(o=t.title,r=[s.settings.language||"en",o].join("."),i=u.i18n.translate(r),r!==i?i:u.i18n.translate(o))),c.call(this,e,t)},s.on("init",function(){var e=s.undoManager,t=s.selection;e.onUndo=new i(s,"Undo",n,null,e),e.onRedo=new i(s,"Redo",n,null,e),e.onBeforeAdd=new i(s,"BeforeAddUndo",null,e),e.onAdd=new i(s,"AddUndo",null,e),t.onBeforeGetContent=new i(s,"BeforeGetContent",o(!0),t),t.onGetContent=new i(s,"GetContent",o(!0),t),t.onBeforeSetContent=new i(s,"BeforeSetContent",o(!0),t),t.onSetContent=new i(s,"SetContent",o(!0),t)}),s.on("BeforeRenderUI",function(){var e=s.windowManager;e.onOpen=new i,e.onClose=new i,e.createInstance=function(e,t,n,o,r,i){return f("windowManager.createInstance(..)"),new(u.resolve(e))(t,n,o,r,i)}})}function r(){var t={};function n(){return r()}return f("editor.controlManager.*"),u.each("add addMenu addSeparator collapse createMenu destroy displayColor expand focus getLength hasMenus hideMenu isActive isCollapsed isDisabled isRendered isSelected mark postRender remove removeAll renderHTML renderMenu renderNode renderTo select selectByIndex setActive setAriaProperty setColor setDisabled setSelected setState showMenu update".split(" "),function(e){t[e]=n}),t}}u.util.Dispatcher=i,u.onBeforeUnload=new i(u,"BeforeUnload"),u.onAddEditor=new i(u,"AddEditor","editor"),u.onRemoveEditor=new i(u,"RemoveEditor","editor"),u.util.Cookie={get:l,getHash:l,remove:l,set:l,setHash:l},u.on("SetupEditor",function(e){n(e.editor)}),u.PluginManager.add("compat3x",n),u.addI18n=function(n,e){var r=u.util.I18n,t=u.each;"string"!=typeof n||-1!==n.indexOf(".")?u.is(n,"string")?t(e,function(e,t){r.data[n+"."+t]=e}):t(n,function(e,o){t(e,function(e,n){t(e,function(e,t){"common"===n?r.data[o+"."+t]=e:r.data[o+"."+n+"."+t]=e})})}):r.add(n,e)}}(tinymce);directionality/plugin.js000064400000003544151222602260011427 0ustar00(function () { var directionality = (function () { 'use strict'; var global = tinymce.util.Tools.resolve('tinymce.PluginManager'); var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools'); var setDir = function (editor, dir) { var dom = editor.dom; var curDir; var blocks = editor.selection.getSelectedBlocks(); if (blocks.length) { curDir = dom.getAttrib(blocks[0], 'dir'); global$1.each(blocks, function (block) { if (!dom.getParent(block.parentNode, '*[dir="' + dir + '"]', dom.getRoot())) { dom.setAttrib(block, 'dir', curDir !== dir ? dir : null); } }); editor.nodeChanged(); } }; var Direction = { setDir: setDir }; var register = function (editor) { editor.addCommand('mceDirectionLTR', function () { Direction.setDir(editor, 'ltr'); }); editor.addCommand('mceDirectionRTL', function () { Direction.setDir(editor, 'rtl'); }); }; var Commands = { register: register }; var generateSelector = function (dir) { var selector = []; global$1.each('h1 h2 h3 h4 h5 h6 div p'.split(' '), function (name) { selector.push(name + '[dir=' + dir + ']'); }); return selector.join(','); }; var register$1 = function (editor) { editor.addButton('ltr', { title: 'Left to right', cmd: 'mceDirectionLTR', stateSelector: generateSelector('ltr') }); editor.addButton('rtl', { title: 'Right to left', cmd: 'mceDirectionRTL', stateSelector: generateSelector('rtl') }); }; var Buttons = { register: register$1 }; global.add('directionality', function (editor) { Commands.register(editor); Buttons.register(editor); }); function Plugin () { } return Plugin; }()); })(); directionality/plugin.min.js000064400000001531151222602260012203 0ustar00!function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager"),c=tinymce.util.Tools.resolve("tinymce.util.Tools"),e=function(t,e){var i,n=t.dom,o=t.selection.getSelectedBlocks();o.length&&(i=n.getAttrib(o[0],"dir"),c.each(o,function(t){n.getParent(t.parentNode,'*[dir="'+e+'"]',n.getRoot())||n.setAttrib(t,"dir",i!==e?e:null)}),t.nodeChanged())},i=function(t){t.addCommand("mceDirectionLTR",function(){e(t,"ltr")}),t.addCommand("mceDirectionRTL",function(){e(t,"rtl")})},n=function(e){var i=[];return c.each("h1 h2 h3 h4 h5 h6 div p".split(" "),function(t){i.push(t+"[dir="+e+"]")}),i.join(",")},o=function(t){t.addButton("ltr",{title:"Left to right",cmd:"mceDirectionLTR",stateSelector:n("ltr")}),t.addButton("rtl",{title:"Right to left",cmd:"mceDirectionRTL",stateSelector:n("rtl")})};t.add("directionality",function(t){i(t),o(t)})}();fullscreen/plugin.js000064400000012733151222602260010546 0ustar00(function () { var fullscreen = (function (domGlobals) { 'use strict'; var Cell = function (initial) { var value = initial; var get = function () { return value; }; var set = function (v) { value = v; }; var clone = function () { return Cell(get()); }; return { get: get, set: set, clone: clone }; }; var global = tinymce.util.Tools.resolve('tinymce.PluginManager'); var get = function (fullscreenState) { return { isFullscreen: function () { return fullscreenState.get() !== null; } }; }; var Api = { get: get }; var global$1 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils'); var fireFullscreenStateChanged = function (editor, state) { editor.fire('FullscreenStateChanged', { state: state }); }; var Events = { fireFullscreenStateChanged: fireFullscreenStateChanged }; var DOM = global$1.DOM; var getWindowSize = function () { var w; var h; var win = domGlobals.window; var doc = domGlobals.document; var body = doc.body; if (body.offsetWidth) { w = body.offsetWidth; h = body.offsetHeight; } if (win.innerWidth && win.innerHeight) { w = win.innerWidth; h = win.innerHeight; } return { w: w, h: h }; }; var getScrollPos = function () { var vp = DOM.getViewPort(); return { x: vp.x, y: vp.y }; }; var setScrollPos = function (pos) { domGlobals.window.scrollTo(pos.x, pos.y); }; var toggleFullscreen = function (editor, fullscreenState) { var body = domGlobals.document.body; var documentElement = domGlobals.document.documentElement; var editorContainerStyle; var editorContainer, iframe, iframeStyle; var fullscreenInfo = fullscreenState.get(); var resize = function () { DOM.setStyle(iframe, 'height', getWindowSize().h - (editorContainer.clientHeight - iframe.clientHeight)); }; var removeResize = function () { DOM.unbind(domGlobals.window, 'resize', resize); }; editorContainer = editor.getContainer(); editorContainerStyle = editorContainer.style; iframe = editor.getContentAreaContainer().firstChild; iframeStyle = iframe.style; if (!fullscreenInfo) { var newFullScreenInfo = { scrollPos: getScrollPos(), containerWidth: editorContainerStyle.width, containerHeight: editorContainerStyle.height, iframeWidth: iframeStyle.width, iframeHeight: iframeStyle.height, resizeHandler: resize, removeHandler: removeResize }; iframeStyle.width = iframeStyle.height = '100%'; editorContainerStyle.width = editorContainerStyle.height = ''; DOM.addClass(body, 'mce-fullscreen'); DOM.addClass(documentElement, 'mce-fullscreen'); DOM.addClass(editorContainer, 'mce-fullscreen'); DOM.bind(domGlobals.window, 'resize', resize); editor.on('remove', removeResize); resize(); fullscreenState.set(newFullScreenInfo); Events.fireFullscreenStateChanged(editor, true); } else { iframeStyle.width = fullscreenInfo.iframeWidth; iframeStyle.height = fullscreenInfo.iframeHeight; if (fullscreenInfo.containerWidth) { editorContainerStyle.width = fullscreenInfo.containerWidth; } if (fullscreenInfo.containerHeight) { editorContainerStyle.height = fullscreenInfo.containerHeight; } DOM.removeClass(body, 'mce-fullscreen'); DOM.removeClass(documentElement, 'mce-fullscreen'); DOM.removeClass(editorContainer, 'mce-fullscreen'); setScrollPos(fullscreenInfo.scrollPos); DOM.unbind(domGlobals.window, 'resize', fullscreenInfo.resizeHandler); editor.off('remove', fullscreenInfo.removeHandler); fullscreenState.set(null); Events.fireFullscreenStateChanged(editor, false); } }; var Actions = { toggleFullscreen: toggleFullscreen }; var register = function (editor, fullscreenState) { editor.addCommand('mceFullScreen', function () { Actions.toggleFullscreen(editor, fullscreenState); }); }; var Commands = { register: register }; var postRender = function (editor) { return function (e) { var ctrl = e.control; editor.on('FullscreenStateChanged', function (e) { ctrl.active(e.state); }); }; }; var register$1 = function (editor) { editor.addMenuItem('fullscreen', { text: 'Fullscreen', shortcut: 'Ctrl+Shift+F', selectable: true, cmd: 'mceFullScreen', onPostRender: postRender(editor), context: 'view' }); editor.addButton('fullscreen', { active: false, tooltip: 'Fullscreen', cmd: 'mceFullScreen', onPostRender: postRender(editor) }); }; var Buttons = { register: register$1 }; global.add('fullscreen', function (editor) { var fullscreenState = Cell(null); if (editor.settings.inline) { return Api.get(fullscreenState); } Commands.register(editor, fullscreenState); Buttons.register(editor); editor.addShortcut('Ctrl+Shift+F', '', 'mceFullScreen'); return Api.get(fullscreenState); }); function Plugin () { } return Plugin; }(window)); })(); fullscreen/plugin.min.js000064400000004210151222602260011317 0ustar00!function(m){"use strict";var i=function(e){var n=e,t=function(){return n};return{get:t,set:function(e){n=e},clone:function(){return i(t())}}},e=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=function(e){return{isFullscreen:function(){return null!==e.get()}}},n=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),g=function(e,n){e.fire("FullscreenStateChanged",{state:n})},w=n.DOM,r=function(e,n){var t,r,l,i,o,c,s=m.document.body,u=m.document.documentElement,d=n.get(),a=function(){var e,n,t,i;w.setStyle(l,"height",(t=m.window,i=m.document.body,i.offsetWidth&&(e=i.offsetWidth,n=i.offsetHeight),t.innerWidth&&t.innerHeight&&(e=t.innerWidth,n=t.innerHeight),{w:e,h:n}).h-(r.clientHeight-l.clientHeight))},h=function(){w.unbind(m.window,"resize",a)};if(t=(r=e.getContainer()).style,i=(l=e.getContentAreaContainer().firstChild).style,d)i.width=d.iframeWidth,i.height=d.iframeHeight,d.containerWidth&&(t.width=d.containerWidth),d.containerHeight&&(t.height=d.containerHeight),w.removeClass(s,"mce-fullscreen"),w.removeClass(u,"mce-fullscreen"),w.removeClass(r,"mce-fullscreen"),o=d.scrollPos,m.window.scrollTo(o.x,o.y),w.unbind(m.window,"resize",d.resizeHandler),e.off("remove",d.removeHandler),n.set(null),g(e,!1);else{var f={scrollPos:(c=w.getViewPort(),{x:c.x,y:c.y}),containerWidth:t.width,containerHeight:t.height,iframeWidth:i.width,iframeHeight:i.height,resizeHandler:a,removeHandler:h};i.width=i.height="100%",t.width=t.height="",w.addClass(s,"mce-fullscreen"),w.addClass(u,"mce-fullscreen"),w.addClass(r,"mce-fullscreen"),w.bind(m.window,"resize",a),e.on("remove",h),a(),n.set(f),g(e,!0)}},l=function(e,n){e.addCommand("mceFullScreen",function(){r(e,n)})},o=function(t){return function(e){var n=e.control;t.on("FullscreenStateChanged",function(e){n.active(e.state)})}},c=function(e){e.addMenuItem("fullscreen",{text:"Fullscreen",shortcut:"Ctrl+Shift+F",selectable:!0,cmd:"mceFullScreen",onPostRender:o(e),context:"view"}),e.addButton("fullscreen",{active:!1,tooltip:"Fullscreen",cmd:"mceFullScreen",onPostRender:o(e)})};e.add("fullscreen",function(e){var n=i(null);return e.settings.inline||(l(e,n),c(e),e.addShortcut("Ctrl+Shift+F","","mceFullScreen")),t(n)})}(window);hr/plugin.js000064400000001627151222602260007015 0ustar00(function () { var hr = (function () { 'use strict'; var global = tinymce.util.Tools.resolve('tinymce.PluginManager'); var register = function (editor) { editor.addCommand('InsertHorizontalRule', function () { editor.execCommand('mceInsertContent', false, '
'); }); }; var Commands = { register: register }; var register$1 = function (editor) { editor.addButton('hr', { icon: 'hr', tooltip: 'Horizontal line', cmd: 'InsertHorizontalRule' }); editor.addMenuItem('hr', { icon: 'hr', text: 'Horizontal line', cmd: 'InsertHorizontalRule', context: 'insert' }); }; var Buttons = { register: register$1 }; global.add('hr', function (editor) { Commands.register(editor); Buttons.register(editor); }); function Plugin () { } return Plugin; }()); })(); hr/plugin.min.js000064400000000654151222602260007576 0ustar00!function(){"use strict";var n=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=function(n){n.addCommand("InsertHorizontalRule",function(){n.execCommand("mceInsertContent",!1,"
")})},o=function(n){n.addButton("hr",{icon:"hr",tooltip:"Horizontal line",cmd:"InsertHorizontalRule"}),n.addMenuItem("hr",{icon:"hr",text:"Horizontal line",cmd:"InsertHorizontalRule",context:"insert"})};n.add("hr",function(n){t(n),o(n)})}();image/plugin.js000064400000116126151222602260007467 0ustar00(function () { var image = (function (domGlobals) { 'use strict'; var global = tinymce.util.Tools.resolve('tinymce.PluginManager'); var hasDimensions = function (editor) { return editor.settings.image_dimensions === false ? false : true; }; var hasAdvTab = function (editor) { return editor.settings.image_advtab === true ? true : false; }; var getPrependUrl = function (editor) { return editor.getParam('image_prepend_url', ''); }; var getClassList = function (editor) { return editor.getParam('image_class_list'); }; var hasDescription = function (editor) { return editor.settings.image_description === false ? false : true; }; var hasImageTitle = function (editor) { return editor.settings.image_title === true ? true : false; }; var hasImageCaption = function (editor) { return editor.settings.image_caption === true ? true : false; }; var getImageList = function (editor) { return editor.getParam('image_list', false); }; var hasUploadUrl = function (editor) { return editor.getParam('images_upload_url', false); }; var hasUploadHandler = function (editor) { return editor.getParam('images_upload_handler', false); }; var getUploadUrl = function (editor) { return editor.getParam('images_upload_url'); }; var getUploadHandler = function (editor) { return editor.getParam('images_upload_handler'); }; var getUploadBasePath = function (editor) { return editor.getParam('images_upload_base_path'); }; var getUploadCredentials = function (editor) { return editor.getParam('images_upload_credentials'); }; var Settings = { hasDimensions: hasDimensions, hasAdvTab: hasAdvTab, getPrependUrl: getPrependUrl, getClassList: getClassList, hasDescription: hasDescription, hasImageTitle: hasImageTitle, hasImageCaption: hasImageCaption, getImageList: getImageList, hasUploadUrl: hasUploadUrl, hasUploadHandler: hasUploadHandler, getUploadUrl: getUploadUrl, getUploadHandler: getUploadHandler, getUploadBasePath: getUploadBasePath, getUploadCredentials: getUploadCredentials }; var Global = typeof domGlobals.window !== 'undefined' ? domGlobals.window : Function('return this;')(); var path = function (parts, scope) { var o = scope !== undefined && scope !== null ? scope : Global; for (var i = 0; i < parts.length && o !== undefined && o !== null; ++i) { o = o[parts[i]]; } return o; }; var resolve = function (p, scope) { var parts = p.split('.'); return path(parts, scope); }; var unsafe = function (name, scope) { return resolve(name, scope); }; var getOrDie = function (name, scope) { var actual = unsafe(name, scope); if (actual === undefined || actual === null) { throw new Error(name + ' not available on this browser'); } return actual; }; var Global$1 = { getOrDie: getOrDie }; function FileReader () { var f = Global$1.getOrDie('FileReader'); return new f(); } var global$1 = tinymce.util.Tools.resolve('tinymce.util.Promise'); var global$2 = tinymce.util.Tools.resolve('tinymce.util.Tools'); var global$3 = tinymce.util.Tools.resolve('tinymce.util.XHR'); var parseIntAndGetMax = function (val1, val2) { return Math.max(parseInt(val1, 10), parseInt(val2, 10)); }; var getImageSize = function (url, callback) { var img = domGlobals.document.createElement('img'); function done(width, height) { if (img.parentNode) { img.parentNode.removeChild(img); } callback({ width: width, height: height }); } img.onload = function () { var width = parseIntAndGetMax(img.width, img.clientWidth); var height = parseIntAndGetMax(img.height, img.clientHeight); done(width, height); }; img.onerror = function () { done(0, 0); }; var style = img.style; style.visibility = 'hidden'; style.position = 'fixed'; style.bottom = style.left = '0px'; style.width = style.height = 'auto'; domGlobals.document.body.appendChild(img); img.src = url; }; var buildListItems = function (inputList, itemCallback, startItems) { function appendItems(values, output) { output = output || []; global$2.each(values, function (item) { var menuItem = { text: item.text || item.title }; if (item.menu) { menuItem.menu = appendItems(item.menu); } else { menuItem.value = item.value; itemCallback(menuItem); } output.push(menuItem); }); return output; } return appendItems(inputList, startItems || []); }; var removePixelSuffix = function (value) { if (value) { value = value.replace(/px$/, ''); } return value; }; var addPixelSuffix = function (value) { if (value.length > 0 && /^[0-9]+$/.test(value)) { value += 'px'; } return value; }; var mergeMargins = function (css) { if (css.margin) { var splitMargin = css.margin.split(' '); switch (splitMargin.length) { case 1: css['margin-top'] = css['margin-top'] || splitMargin[0]; css['margin-right'] = css['margin-right'] || splitMargin[0]; css['margin-bottom'] = css['margin-bottom'] || splitMargin[0]; css['margin-left'] = css['margin-left'] || splitMargin[0]; break; case 2: css['margin-top'] = css['margin-top'] || splitMargin[0]; css['margin-right'] = css['margin-right'] || splitMargin[1]; css['margin-bottom'] = css['margin-bottom'] || splitMargin[0]; css['margin-left'] = css['margin-left'] || splitMargin[1]; break; case 3: css['margin-top'] = css['margin-top'] || splitMargin[0]; css['margin-right'] = css['margin-right'] || splitMargin[1]; css['margin-bottom'] = css['margin-bottom'] || splitMargin[2]; css['margin-left'] = css['margin-left'] || splitMargin[1]; break; case 4: css['margin-top'] = css['margin-top'] || splitMargin[0]; css['margin-right'] = css['margin-right'] || splitMargin[1]; css['margin-bottom'] = css['margin-bottom'] || splitMargin[2]; css['margin-left'] = css['margin-left'] || splitMargin[3]; } delete css.margin; } return css; }; var createImageList = function (editor, callback) { var imageList = Settings.getImageList(editor); if (typeof imageList === 'string') { global$3.send({ url: imageList, success: function (text) { callback(JSON.parse(text)); } }); } else if (typeof imageList === 'function') { imageList(callback); } else { callback(imageList); } }; var waitLoadImage = function (editor, data, imgElm) { function selectImage() { imgElm.onload = imgElm.onerror = null; if (editor.selection) { editor.selection.select(imgElm); editor.nodeChanged(); } } imgElm.onload = function () { if (!data.width && !data.height && Settings.hasDimensions(editor)) { editor.dom.setAttribs(imgElm, { width: imgElm.clientWidth, height: imgElm.clientHeight }); } selectImage(); }; imgElm.onerror = selectImage; }; var blobToDataUri = function (blob) { return new global$1(function (resolve, reject) { var reader = FileReader(); reader.onload = function () { resolve(reader.result); }; reader.onerror = function () { reject(reader.error.message); }; reader.readAsDataURL(blob); }); }; var Utils = { getImageSize: getImageSize, buildListItems: buildListItems, removePixelSuffix: removePixelSuffix, addPixelSuffix: addPixelSuffix, mergeMargins: mergeMargins, createImageList: createImageList, waitLoadImage: waitLoadImage, blobToDataUri: blobToDataUri }; var global$4 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils'); var hasOwnProperty = Object.prototype.hasOwnProperty; var shallow = function (old, nu) { return nu; }; var baseMerge = function (merger) { return function () { var objects = new Array(arguments.length); for (var i = 0; i < objects.length; i++) { objects[i] = arguments[i]; } if (objects.length === 0) { throw new Error('Can\'t merge zero objects'); } var ret = {}; for (var j = 0; j < objects.length; j++) { var curObject = objects[j]; for (var key in curObject) { if (hasOwnProperty.call(curObject, key)) { ret[key] = merger(ret[key], curObject[key]); } } } return ret; }; }; var merge = baseMerge(shallow); var DOM = global$4.DOM; var getHspace = function (image) { if (image.style.marginLeft && image.style.marginRight && image.style.marginLeft === image.style.marginRight) { return Utils.removePixelSuffix(image.style.marginLeft); } else { return ''; } }; var getVspace = function (image) { if (image.style.marginTop && image.style.marginBottom && image.style.marginTop === image.style.marginBottom) { return Utils.removePixelSuffix(image.style.marginTop); } else { return ''; } }; var getBorder = function (image) { if (image.style.borderWidth) { return Utils.removePixelSuffix(image.style.borderWidth); } else { return ''; } }; var getAttrib = function (image, name) { if (image.hasAttribute(name)) { return image.getAttribute(name); } else { return ''; } }; var getStyle = function (image, name) { return image.style[name] ? image.style[name] : ''; }; var hasCaption = function (image) { return image.parentNode !== null && image.parentNode.nodeName === 'FIGURE'; }; var setAttrib = function (image, name, value) { image.setAttribute(name, value); }; var wrapInFigure = function (image) { var figureElm = DOM.create('figure', { class: 'image' }); DOM.insertAfter(figureElm, image); figureElm.appendChild(image); figureElm.appendChild(DOM.create('figcaption', { contentEditable: true }, 'Caption')); figureElm.contentEditable = 'false'; }; var removeFigure = function (image) { var figureElm = image.parentNode; DOM.insertAfter(image, figureElm); DOM.remove(figureElm); }; var toggleCaption = function (image) { if (hasCaption(image)) { removeFigure(image); } else { wrapInFigure(image); } }; var normalizeStyle = function (image, normalizeCss) { var attrValue = image.getAttribute('style'); var value = normalizeCss(attrValue !== null ? attrValue : ''); if (value.length > 0) { image.setAttribute('style', value); image.setAttribute('data-mce-style', value); } else { image.removeAttribute('style'); } }; var setSize = function (name, normalizeCss) { return function (image, name, value) { if (image.style[name]) { image.style[name] = Utils.addPixelSuffix(value); normalizeStyle(image, normalizeCss); } else { setAttrib(image, name, value); } }; }; var getSize = function (image, name) { if (image.style[name]) { return Utils.removePixelSuffix(image.style[name]); } else { return getAttrib(image, name); } }; var setHspace = function (image, value) { var pxValue = Utils.addPixelSuffix(value); image.style.marginLeft = pxValue; image.style.marginRight = pxValue; }; var setVspace = function (image, value) { var pxValue = Utils.addPixelSuffix(value); image.style.marginTop = pxValue; image.style.marginBottom = pxValue; }; var setBorder = function (image, value) { var pxValue = Utils.addPixelSuffix(value); image.style.borderWidth = pxValue; }; var setBorderStyle = function (image, value) { image.style.borderStyle = value; }; var getBorderStyle = function (image) { return getStyle(image, 'borderStyle'); }; var isFigure = function (elm) { return elm.nodeName === 'FIGURE'; }; var defaultData = function () { return { src: '', alt: '', title: '', width: '', height: '', class: '', style: '', caption: false, hspace: '', vspace: '', border: '', borderStyle: '' }; }; var getStyleValue = function (normalizeCss, data) { var image = domGlobals.document.createElement('img'); setAttrib(image, 'style', data.style); if (getHspace(image) || data.hspace !== '') { setHspace(image, data.hspace); } if (getVspace(image) || data.vspace !== '') { setVspace(image, data.vspace); } if (getBorder(image) || data.border !== '') { setBorder(image, data.border); } if (getBorderStyle(image) || data.borderStyle !== '') { setBorderStyle(image, data.borderStyle); } return normalizeCss(image.getAttribute('style')); }; var create = function (normalizeCss, data) { var image = domGlobals.document.createElement('img'); write(normalizeCss, merge(data, { caption: false }), image); setAttrib(image, 'alt', data.alt); if (data.caption) { var figure = DOM.create('figure', { class: 'image' }); figure.appendChild(image); figure.appendChild(DOM.create('figcaption', { contentEditable: true }, 'Caption')); figure.contentEditable = 'false'; return figure; } else { return image; } }; var read = function (normalizeCss, image) { return { src: getAttrib(image, 'src'), alt: getAttrib(image, 'alt'), title: getAttrib(image, 'title'), width: getSize(image, 'width'), height: getSize(image, 'height'), class: getAttrib(image, 'class'), style: normalizeCss(getAttrib(image, 'style')), caption: hasCaption(image), hspace: getHspace(image), vspace: getVspace(image), border: getBorder(image), borderStyle: getStyle(image, 'borderStyle') }; }; var updateProp = function (image, oldData, newData, name, set) { if (newData[name] !== oldData[name]) { set(image, name, newData[name]); } }; var normalized = function (set, normalizeCss) { return function (image, name, value) { set(image, value); normalizeStyle(image, normalizeCss); }; }; var write = function (normalizeCss, newData, image) { var oldData = read(normalizeCss, image); updateProp(image, oldData, newData, 'caption', function (image, _name, _value) { return toggleCaption(image); }); updateProp(image, oldData, newData, 'src', setAttrib); updateProp(image, oldData, newData, 'alt', setAttrib); updateProp(image, oldData, newData, 'title', setAttrib); updateProp(image, oldData, newData, 'width', setSize('width', normalizeCss)); updateProp(image, oldData, newData, 'height', setSize('height', normalizeCss)); updateProp(image, oldData, newData, 'class', setAttrib); updateProp(image, oldData, newData, 'style', normalized(function (image, value) { return setAttrib(image, 'style', value); }, normalizeCss)); updateProp(image, oldData, newData, 'hspace', normalized(setHspace, normalizeCss)); updateProp(image, oldData, newData, 'vspace', normalized(setVspace, normalizeCss)); updateProp(image, oldData, newData, 'border', normalized(setBorder, normalizeCss)); updateProp(image, oldData, newData, 'borderStyle', normalized(setBorderStyle, normalizeCss)); }; var normalizeCss = function (editor, cssText) { var css = editor.dom.styles.parse(cssText); var mergedCss = Utils.mergeMargins(css); var compressed = editor.dom.styles.parse(editor.dom.styles.serialize(mergedCss)); return editor.dom.styles.serialize(compressed); }; var getSelectedImage = function (editor) { var imgElm = editor.selection.getNode(); var figureElm = editor.dom.getParent(imgElm, 'figure.image'); if (figureElm) { return editor.dom.select('img', figureElm)[0]; } if (imgElm && (imgElm.nodeName !== 'IMG' || imgElm.getAttribute('data-mce-object') || imgElm.getAttribute('data-mce-placeholder'))) { return null; } return imgElm; }; var splitTextBlock = function (editor, figure) { var dom = editor.dom; var textBlock = dom.getParent(figure.parentNode, function (node) { return editor.schema.getTextBlockElements()[node.nodeName]; }, editor.getBody()); if (textBlock) { return dom.split(textBlock, figure); } else { return figure; } }; var readImageDataFromSelection = function (editor) { var image = getSelectedImage(editor); return image ? read(function (css) { return normalizeCss(editor, css); }, image) : defaultData(); }; var insertImageAtCaret = function (editor, data) { var elm = create(function (css) { return normalizeCss(editor, css); }, data); editor.dom.setAttrib(elm, 'data-mce-id', '__mcenew'); editor.focus(); editor.selection.setContent(elm.outerHTML); var insertedElm = editor.dom.select('*[data-mce-id="__mcenew"]')[0]; editor.dom.setAttrib(insertedElm, 'data-mce-id', null); if (isFigure(insertedElm)) { var figure = splitTextBlock(editor, insertedElm); editor.selection.select(figure); } else { editor.selection.select(insertedElm); } }; var syncSrcAttr = function (editor, image) { editor.dom.setAttrib(image, 'src', image.getAttribute('src')); }; var deleteImage = function (editor, image) { if (image) { var elm = editor.dom.is(image.parentNode, 'figure.image') ? image.parentNode : image; editor.dom.remove(elm); editor.focus(); editor.nodeChanged(); if (editor.dom.isEmpty(editor.getBody())) { editor.setContent(''); editor.selection.setCursorLocation(); } } }; var writeImageDataToSelection = function (editor, data) { var image = getSelectedImage(editor); write(function (css) { return normalizeCss(editor, css); }, data, image); syncSrcAttr(editor, image); if (isFigure(image.parentNode)) { var figure = image.parentNode; splitTextBlock(editor, figure); editor.selection.select(image.parentNode); } else { editor.selection.select(image); Utils.waitLoadImage(editor, data, image); } }; var insertOrUpdateImage = function (editor, data) { var image = getSelectedImage(editor); if (image) { if (data.src) { writeImageDataToSelection(editor, data); } else { deleteImage(editor, image); } } else if (data.src) { insertImageAtCaret(editor, data); } }; var updateVSpaceHSpaceBorder = function (editor) { return function (evt) { var dom = editor.dom; var rootControl = evt.control.rootControl; if (!Settings.hasAdvTab(editor)) { return; } var data = rootControl.toJSON(); var css = dom.parseStyle(data.style); rootControl.find('#vspace').value(''); rootControl.find('#hspace').value(''); css = Utils.mergeMargins(css); if (css['margin-top'] && css['margin-bottom'] || css['margin-right'] && css['margin-left']) { if (css['margin-top'] === css['margin-bottom']) { rootControl.find('#vspace').value(Utils.removePixelSuffix(css['margin-top'])); } else { rootControl.find('#vspace').value(''); } if (css['margin-right'] === css['margin-left']) { rootControl.find('#hspace').value(Utils.removePixelSuffix(css['margin-right'])); } else { rootControl.find('#hspace').value(''); } } if (css['border-width']) { rootControl.find('#border').value(Utils.removePixelSuffix(css['border-width'])); } else { rootControl.find('#border').value(''); } if (css['border-style']) { rootControl.find('#borderStyle').value(css['border-style']); } else { rootControl.find('#borderStyle').value(''); } rootControl.find('#style').value(dom.serializeStyle(dom.parseStyle(dom.serializeStyle(css)))); }; }; var updateStyle = function (editor, win) { win.find('#style').each(function (ctrl) { var value = getStyleValue(function (css) { return normalizeCss(editor, css); }, merge(defaultData(), win.toJSON())); ctrl.value(value); }); }; var makeTab = function (editor) { return { title: 'Advanced', type: 'form', pack: 'start', items: [ { label: 'Style', name: 'style', type: 'textbox', onchange: updateVSpaceHSpaceBorder(editor) }, { type: 'form', layout: 'grid', packV: 'start', columns: 2, padding: 0, defaults: { type: 'textbox', maxWidth: 50, onchange: function (evt) { updateStyle(editor, evt.control.rootControl); } }, items: [ { label: 'Vertical space', name: 'vspace' }, { label: 'Border width', name: 'border' }, { label: 'Horizontal space', name: 'hspace' }, { label: 'Border style', type: 'listbox', name: 'borderStyle', width: 90, maxWidth: 90, onselect: function (evt) { updateStyle(editor, evt.control.rootControl); }, values: [ { text: 'Select...', value: '' }, { text: 'Solid', value: 'solid' }, { text: 'Dotted', value: 'dotted' }, { text: 'Dashed', value: 'dashed' }, { text: 'Double', value: 'double' }, { text: 'Groove', value: 'groove' }, { text: 'Ridge', value: 'ridge' }, { text: 'Inset', value: 'inset' }, { text: 'Outset', value: 'outset' }, { text: 'None', value: 'none' }, { text: 'Hidden', value: 'hidden' } ] } ] } ] }; }; var AdvTab = { makeTab: makeTab }; var doSyncSize = function (widthCtrl, heightCtrl) { widthCtrl.state.set('oldVal', widthCtrl.value()); heightCtrl.state.set('oldVal', heightCtrl.value()); }; var doSizeControls = function (win, f) { var widthCtrl = win.find('#width')[0]; var heightCtrl = win.find('#height')[0]; var constrained = win.find('#constrain')[0]; if (widthCtrl && heightCtrl && constrained) { f(widthCtrl, heightCtrl, constrained.checked()); } }; var doUpdateSize = function (widthCtrl, heightCtrl, isContrained) { var oldWidth = widthCtrl.state.get('oldVal'); var oldHeight = heightCtrl.state.get('oldVal'); var newWidth = widthCtrl.value(); var newHeight = heightCtrl.value(); if (isContrained && oldWidth && oldHeight && newWidth && newHeight) { if (newWidth !== oldWidth) { newHeight = Math.round(newWidth / oldWidth * newHeight); if (!isNaN(newHeight)) { heightCtrl.value(newHeight); } } else { newWidth = Math.round(newHeight / oldHeight * newWidth); if (!isNaN(newWidth)) { widthCtrl.value(newWidth); } } } doSyncSize(widthCtrl, heightCtrl); }; var syncSize = function (win) { doSizeControls(win, doSyncSize); }; var updateSize = function (win) { doSizeControls(win, doUpdateSize); }; var createUi = function () { var recalcSize = function (evt) { updateSize(evt.control.rootControl); }; return { type: 'container', label: 'Dimensions', layout: 'flex', align: 'center', spacing: 5, items: [ { name: 'width', type: 'textbox', maxLength: 5, size: 5, onchange: recalcSize, ariaLabel: 'Width' }, { type: 'label', text: 'x' }, { name: 'height', type: 'textbox', maxLength: 5, size: 5, onchange: recalcSize, ariaLabel: 'Height' }, { name: 'constrain', type: 'checkbox', checked: true, text: 'Constrain proportions' } ] }; }; var SizeManager = { createUi: createUi, syncSize: syncSize, updateSize: updateSize }; var onSrcChange = function (evt, editor) { var srcURL, prependURL, absoluteURLPattern; var meta = evt.meta || {}; var control = evt.control; var rootControl = control.rootControl; var imageListCtrl = rootControl.find('#image-list')[0]; if (imageListCtrl) { imageListCtrl.value(editor.convertURL(control.value(), 'src')); } global$2.each(meta, function (value, key) { rootControl.find('#' + key).value(value); }); if (!meta.width && !meta.height) { srcURL = editor.convertURL(control.value(), 'src'); prependURL = Settings.getPrependUrl(editor); absoluteURLPattern = new RegExp('^(?:[a-z]+:)?//', 'i'); if (prependURL && !absoluteURLPattern.test(srcURL) && srcURL.substring(0, prependURL.length) !== prependURL) { srcURL = prependURL + srcURL; } control.value(srcURL); Utils.getImageSize(editor.documentBaseURI.toAbsolute(control.value()), function (data) { if (data.width && data.height && Settings.hasDimensions(editor)) { rootControl.find('#width').value(data.width); rootControl.find('#height').value(data.height); SizeManager.syncSize(rootControl); } }); } }; var onBeforeCall = function (evt) { evt.meta = evt.control.rootControl.toJSON(); }; var getGeneralItems = function (editor, imageListCtrl) { var generalFormItems = [ { name: 'src', type: 'filepicker', filetype: 'image', label: 'Source', autofocus: true, onchange: function (evt) { onSrcChange(evt, editor); }, onbeforecall: onBeforeCall }, imageListCtrl ]; if (Settings.hasDescription(editor)) { generalFormItems.push({ name: 'alt', type: 'textbox', label: 'Image description' }); } if (Settings.hasImageTitle(editor)) { generalFormItems.push({ name: 'title', type: 'textbox', label: 'Image Title' }); } if (Settings.hasDimensions(editor)) { generalFormItems.push(SizeManager.createUi()); } if (Settings.getClassList(editor)) { generalFormItems.push({ name: 'class', type: 'listbox', label: 'Class', values: Utils.buildListItems(Settings.getClassList(editor), function (item) { if (item.value) { item.textStyle = function () { return editor.formatter.getCssText({ inline: 'img', classes: [item.value] }); }; } }) }); } if (Settings.hasImageCaption(editor)) { generalFormItems.push({ name: 'caption', type: 'checkbox', label: 'Caption' }); } return generalFormItems; }; var makeTab$1 = function (editor, imageListCtrl) { return { title: 'General', type: 'form', items: getGeneralItems(editor, imageListCtrl) }; }; var MainTab = { makeTab: makeTab$1, getGeneralItems: getGeneralItems }; var url = function () { return Global$1.getOrDie('URL'); }; var createObjectURL = function (blob) { return url().createObjectURL(blob); }; var revokeObjectURL = function (u) { url().revokeObjectURL(u); }; var URL = { createObjectURL: createObjectURL, revokeObjectURL: revokeObjectURL }; var global$5 = tinymce.util.Tools.resolve('tinymce.ui.Factory'); function XMLHttpRequest () { var f = Global$1.getOrDie('XMLHttpRequest'); return new f(); } var noop = function () { }; var pathJoin = function (path1, path2) { if (path1) { return path1.replace(/\/$/, '') + '/' + path2.replace(/^\//, ''); } return path2; }; function Uploader (settings) { var defaultHandler = function (blobInfo, success, failure, progress) { var xhr, formData; xhr = XMLHttpRequest(); xhr.open('POST', settings.url); xhr.withCredentials = settings.credentials; xhr.upload.onprogress = function (e) { progress(e.loaded / e.total * 100); }; xhr.onerror = function () { failure('Image upload failed due to a XHR Transport error. Code: ' + xhr.status); }; xhr.onload = function () { var json; if (xhr.status < 200 || xhr.status >= 300) { failure('HTTP Error: ' + xhr.status); return; } json = JSON.parse(xhr.responseText); if (!json || typeof json.location !== 'string') { failure('Invalid JSON: ' + xhr.responseText); return; } success(pathJoin(settings.basePath, json.location)); }; formData = new domGlobals.FormData(); formData.append('file', blobInfo.blob(), blobInfo.filename()); xhr.send(formData); }; var uploadBlob = function (blobInfo, handler) { return new global$1(function (resolve, reject) { try { handler(blobInfo, resolve, reject, noop); } catch (ex) { reject(ex.message); } }); }; var isDefaultHandler = function (handler) { return handler === defaultHandler; }; var upload = function (blobInfo) { return !settings.url && isDefaultHandler(settings.handler) ? global$1.reject('Upload url missing from the settings.') : uploadBlob(blobInfo, settings.handler); }; settings = global$2.extend({ credentials: false, handler: defaultHandler }, settings); return { upload: upload }; } var onFileInput = function (editor) { return function (evt) { var Throbber = global$5.get('Throbber'); var rootControl = evt.control.rootControl; var throbber = new Throbber(rootControl.getEl()); var file = evt.control.value(); var blobUri = URL.createObjectURL(file); var uploader = Uploader({ url: Settings.getUploadUrl(editor), basePath: Settings.getUploadBasePath(editor), credentials: Settings.getUploadCredentials(editor), handler: Settings.getUploadHandler(editor) }); var finalize = function () { throbber.hide(); URL.revokeObjectURL(blobUri); }; throbber.show(); return Utils.blobToDataUri(file).then(function (dataUrl) { var blobInfo = editor.editorUpload.blobCache.create({ blob: file, blobUri: blobUri, name: file.name ? file.name.replace(/\.[^\.]+$/, '') : null, base64: dataUrl.split(',')[1] }); return uploader.upload(blobInfo).then(function (url) { var src = rootControl.find('#src'); src.value(url); rootControl.find('tabpanel')[0].activateTab(0); src.fire('change'); finalize(); return url; }); }).catch(function (err) { editor.windowManager.alert(err); finalize(); }); }; }; var acceptExts = '.jpg,.jpeg,.png,.gif'; var makeTab$2 = function (editor) { return { title: 'Upload', type: 'form', layout: 'flex', direction: 'column', align: 'stretch', padding: '20 20 20 20', items: [ { type: 'container', layout: 'flex', direction: 'column', align: 'center', spacing: 10, items: [ { text: 'Browse for an image', type: 'browsebutton', accept: acceptExts, onchange: onFileInput(editor) }, { text: 'OR', type: 'label' } ] }, { text: 'Drop an image here', type: 'dropzone', accept: acceptExts, height: 100, onchange: onFileInput(editor) } ] }; }; var UploadTab = { makeTab: makeTab$2 }; function curry(fn) { var initialArgs = []; for (var _i = 1; _i < arguments.length; _i++) { initialArgs[_i - 1] = arguments[_i]; } return function () { var restArgs = []; for (var _i = 0; _i < arguments.length; _i++) { restArgs[_i] = arguments[_i]; } var all = initialArgs.concat(restArgs); return fn.apply(null, all); }; } var submitForm = function (editor, evt) { var win = evt.control.getRoot(); SizeManager.updateSize(win); editor.undoManager.transact(function () { var data = merge(readImageDataFromSelection(editor), win.toJSON()); insertOrUpdateImage(editor, data); }); editor.editorUpload.uploadImagesAuto(); }; function Dialog (editor) { function showDialog(imageList) { var data = readImageDataFromSelection(editor); var win, imageListCtrl; if (imageList) { imageListCtrl = { type: 'listbox', label: 'Image list', name: 'image-list', values: Utils.buildListItems(imageList, function (item) { item.value = editor.convertURL(item.value || item.url, 'src'); }, [{ text: 'None', value: '' }]), value: data.src && editor.convertURL(data.src, 'src'), onselect: function (e) { var altCtrl = win.find('#alt'); if (!altCtrl.value() || e.lastControl && altCtrl.value() === e.lastControl.text()) { altCtrl.value(e.control.text()); } win.find('#src').value(e.control.value()).fire('change'); }, onPostRender: function () { imageListCtrl = this; } }; } if (Settings.hasAdvTab(editor) || Settings.hasUploadUrl(editor) || Settings.hasUploadHandler(editor)) { var body = [MainTab.makeTab(editor, imageListCtrl)]; if (Settings.hasAdvTab(editor)) { body.push(AdvTab.makeTab(editor)); } if (Settings.hasUploadUrl(editor) || Settings.hasUploadHandler(editor)) { body.push(UploadTab.makeTab(editor)); } win = editor.windowManager.open({ title: 'Insert/edit image', data: data, bodyType: 'tabpanel', body: body, onSubmit: curry(submitForm, editor) }); } else { win = editor.windowManager.open({ title: 'Insert/edit image', data: data, body: MainTab.getGeneralItems(editor, imageListCtrl), onSubmit: curry(submitForm, editor) }); } SizeManager.syncSize(win); } function open() { Utils.createImageList(editor, showDialog); } return { open: open }; } var register = function (editor) { editor.addCommand('mceImage', Dialog(editor).open); }; var Commands = { register: register }; var hasImageClass = function (node) { var className = node.attr('class'); return className && /\bimage\b/.test(className); }; var toggleContentEditableState = function (state) { return function (nodes) { var i = nodes.length, node; var toggleContentEditable = function (node) { node.attr('contenteditable', state ? 'true' : null); }; while (i--) { node = nodes[i]; if (hasImageClass(node)) { node.attr('contenteditable', state ? 'false' : null); global$2.each(node.getAll('figcaption'), toggleContentEditable); } } }; }; var setup = function (editor) { editor.on('preInit', function () { editor.parser.addNodeFilter('figure', toggleContentEditableState(true)); editor.serializer.addNodeFilter('figure', toggleContentEditableState(false)); }); }; var FilterContent = { setup: setup }; var register$1 = function (editor) { editor.addButton('image', { icon: 'image', tooltip: 'Insert/edit image', onclick: Dialog(editor).open, stateSelector: 'img:not([data-mce-object],[data-mce-placeholder]),figure.image' }); editor.addMenuItem('image', { icon: 'image', text: 'Image', onclick: Dialog(editor).open, context: 'insert', prependToContext: true }); }; var Buttons = { register: register$1 }; global.add('image', function (editor) { FilterContent.setup(editor); Buttons.register(editor); Commands.register(editor); }); function Plugin () { } return Plugin; }(window)); })(); image/plugin.min.js000064400000036754151222602260010261 0ustar00!function(l){"use strict";var i,e=tinymce.util.Tools.resolve("tinymce.PluginManager"),d=function(e){return!1!==e.settings.image_dimensions},u=function(e){return!0===e.settings.image_advtab},m=function(e){return e.getParam("image_prepend_url","")},n=function(e){return e.getParam("image_class_list")},r=function(e){return!1!==e.settings.image_description},a=function(e){return!0===e.settings.image_title},o=function(e){return!0===e.settings.image_caption},c=function(e){return e.getParam("image_list",!1)},s=function(e){return e.getParam("images_upload_url",!1)},g=function(e){return e.getParam("images_upload_handler",!1)},f=function(e){return e.getParam("images_upload_url")},p=function(e){return e.getParam("images_upload_handler")},h=function(e){return e.getParam("images_upload_base_path")},v=function(e){return e.getParam("images_upload_credentials")},b="undefined"!=typeof l.window?l.window:Function("return this;")(),y=function(e,t){return function(e,t){for(var n=t!==undefined&&null!==t?t:b,r=0;r 10) { var link = domGlobals.document.createElement('a'); link.target = '_blank'; link.href = url; link.rel = 'noreferrer noopener'; var evt = domGlobals.document.createEvent('MouseEvents'); evt.initMouseEvent('click', true, true, domGlobals.window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); appendClickRemove(link, evt); } else { var win = domGlobals.window.open('', '_blank'); if (win) { win.opener = null; var doc = win.document; doc.open(); doc.write(''); doc.close(); } } }; var OpenUrl = { open: open }; var global$4 = tinymce.util.Tools.resolve('tinymce.util.Tools'); var toggleTargetRules = function (rel, isUnsafe) { var rules = ['noopener']; var newRel = rel ? rel.split(/\s+/) : []; var toString = function (rel) { return global$4.trim(rel.sort().join(' ')); }; var addTargetRules = function (rel) { rel = removeTargetRules(rel); return rel.length ? rel.concat(rules) : rules; }; var removeTargetRules = function (rel) { return rel.filter(function (val) { return global$4.inArray(rules, val) === -1; }); }; newRel = isUnsafe ? addTargetRules(newRel) : removeTargetRules(newRel); return newRel.length ? toString(newRel) : null; }; var trimCaretContainers = function (text) { return text.replace(/\uFEFF/g, ''); }; var getAnchorElement = function (editor, selectedElm) { selectedElm = selectedElm || editor.selection.getNode(); if (isImageFigure(selectedElm)) { return editor.dom.select('a[href]', selectedElm)[0]; } else { return editor.dom.getParent(selectedElm, 'a[href]'); } }; var getAnchorText = function (selection, anchorElm) { var text = anchorElm ? anchorElm.innerText || anchorElm.textContent : selection.getContent({ format: 'text' }); return trimCaretContainers(text); }; var isLink = function (elm) { return elm && elm.nodeName === 'A' && elm.href; }; var hasLinks = function (elements) { return global$4.grep(elements, isLink).length > 0; }; var isOnlyTextSelected = function (html) { if (/]+>[^<]+<\/a>$/.test(html) || html.indexOf('href=') === -1)) { return false; } return true; }; var isImageFigure = function (node) { return node && node.nodeName === 'FIGURE' && /\bimage\b/i.test(node.className); }; var link = function (editor, attachState) { return function (data) { editor.undoManager.transact(function () { var selectedElm = editor.selection.getNode(); var anchorElm = getAnchorElement(editor, selectedElm); var linkAttrs = { href: data.href, target: data.target ? data.target : null, rel: data.rel ? data.rel : null, class: data.class ? data.class : null, title: data.title ? data.title : null }; if (!Settings.hasRelList(editor.settings) && Settings.allowUnsafeLinkTarget(editor.settings) === false) { linkAttrs.rel = toggleTargetRules(linkAttrs.rel, linkAttrs.target === '_blank'); } if (data.href === attachState.href) { attachState.attach(); attachState = {}; } if (anchorElm) { editor.focus(); if (data.hasOwnProperty('text')) { if ('innerText' in anchorElm) { anchorElm.innerText = data.text; } else { anchorElm.textContent = data.text; } } editor.dom.setAttribs(anchorElm, linkAttrs); editor.selection.select(anchorElm); editor.undoManager.add(); } else { if (isImageFigure(selectedElm)) { linkImageFigure(editor, selectedElm, linkAttrs); } else if (data.hasOwnProperty('text')) { editor.insertContent(editor.dom.createHTML('a', linkAttrs, editor.dom.encode(data.text))); } else { editor.execCommand('mceInsertLink', false, linkAttrs); } } }); }; }; var unlink = function (editor) { return function () { editor.undoManager.transact(function () { var node = editor.selection.getNode(); if (isImageFigure(node)) { unlinkImageFigure(editor, node); } else { editor.execCommand('unlink'); } }); }; }; var unlinkImageFigure = function (editor, fig) { var a, img; img = editor.dom.select('img', fig)[0]; if (img) { a = editor.dom.getParents(img, 'a[href]', fig)[0]; if (a) { a.parentNode.insertBefore(img, a); editor.dom.remove(a); } } }; var linkImageFigure = function (editor, fig, attrs) { var a, img; img = editor.dom.select('img', fig)[0]; if (img) { a = editor.dom.create('a', attrs); img.parentNode.insertBefore(a, img); a.appendChild(img); } }; var Utils = { link: link, unlink: unlink, isLink: isLink, hasLinks: hasLinks, isOnlyTextSelected: isOnlyTextSelected, getAnchorElement: getAnchorElement, getAnchorText: getAnchorText, toggleTargetRules: toggleTargetRules }; var global$5 = tinymce.util.Tools.resolve('tinymce.util.Delay'); var global$6 = tinymce.util.Tools.resolve('tinymce.util.XHR'); var attachState = {}; var createLinkList = function (editor, callback) { var linkList = Settings.getLinkList(editor.settings); if (typeof linkList === 'string') { global$6.send({ url: linkList, success: function (text) { callback(editor, JSON.parse(text)); } }); } else if (typeof linkList === 'function') { linkList(function (list) { callback(editor, list); }); } else { callback(editor, linkList); } }; var buildListItems = function (inputList, itemCallback, startItems) { var appendItems = function (values, output) { output = output || []; global$4.each(values, function (item) { var menuItem = { text: item.text || item.title }; if (item.menu) { menuItem.menu = appendItems(item.menu); } else { menuItem.value = item.value; if (itemCallback) { itemCallback(menuItem); } } output.push(menuItem); }); return output; }; return appendItems(inputList, startItems || []); }; var delayedConfirm = function (editor, message, callback) { var rng = editor.selection.getRng(); global$5.setEditorTimeout(editor, function () { editor.windowManager.confirm(message, function (state) { editor.selection.setRng(rng); callback(state); }); }); }; var showDialog = function (editor, linkList) { var data = {}; var selection = editor.selection; var dom = editor.dom; var anchorElm, initialText; var win, onlyText, textListCtrl, linkListCtrl, relListCtrl, targetListCtrl, classListCtrl, linkTitleCtrl, value; var linkListChangeHandler = function (e) { var textCtrl = win.find('#text'); if (!textCtrl.value() || e.lastControl && textCtrl.value() === e.lastControl.text()) { textCtrl.value(e.control.text()); } win.find('#href').value(e.control.value()); }; var buildAnchorListControl = function (url) { var anchorList = []; global$4.each(editor.dom.select('a:not([href])'), function (anchor) { var id = anchor.name || anchor.id; if (id) { anchorList.push({ text: id, value: '#' + id, selected: url.indexOf('#' + id) !== -1 }); } }); if (anchorList.length) { anchorList.unshift({ text: 'None', value: '' }); return { name: 'anchor', type: 'listbox', label: 'Anchors', values: anchorList, onselect: linkListChangeHandler }; } }; var updateText = function () { if (!initialText && onlyText && !data.text) { this.parent().parent().find('#text')[0].value(this.value()); } }; var urlChange = function (e) { var meta = e.meta || {}; if (linkListCtrl) { linkListCtrl.value(editor.convertURL(this.value(), 'href')); } global$4.each(e.meta, function (value, key) { var inp = win.find('#' + key); if (key === 'text') { if (initialText.length === 0) { inp.value(value); data.text = value; } } else { inp.value(value); } }); if (meta.attach) { attachState = { href: this.value(), attach: meta.attach }; } if (!meta.text) { updateText.call(this); } }; var onBeforeCall = function (e) { e.meta = win.toJSON(); }; onlyText = Utils.isOnlyTextSelected(selection.getContent()); anchorElm = Utils.getAnchorElement(editor); data.text = initialText = Utils.getAnchorText(editor.selection, anchorElm); data.href = anchorElm ? dom.getAttrib(anchorElm, 'href') : ''; if (anchorElm) { data.target = dom.getAttrib(anchorElm, 'target'); } else if (Settings.hasDefaultLinkTarget(editor.settings)) { data.target = Settings.getDefaultLinkTarget(editor.settings); } if (value = dom.getAttrib(anchorElm, 'rel')) { data.rel = value; } if (value = dom.getAttrib(anchorElm, 'class')) { data.class = value; } if (value = dom.getAttrib(anchorElm, 'title')) { data.title = value; } if (onlyText) { textListCtrl = { name: 'text', type: 'textbox', size: 40, label: 'Text to display', onchange: function () { data.text = this.value(); } }; } if (linkList) { linkListCtrl = { type: 'listbox', label: 'Link list', values: buildListItems(linkList, function (item) { item.value = editor.convertURL(item.value || item.url, 'href'); }, [{ text: 'None', value: '' }]), onselect: linkListChangeHandler, value: editor.convertURL(data.href, 'href'), onPostRender: function () { linkListCtrl = this; } }; } if (Settings.shouldShowTargetList(editor.settings)) { if (Settings.getTargetList(editor.settings) === undefined) { Settings.setTargetList(editor, [ { text: 'None', value: '' }, { text: 'New window', value: '_blank' } ]); } targetListCtrl = { name: 'target', type: 'listbox', label: 'Target', values: buildListItems(Settings.getTargetList(editor.settings)) }; } if (Settings.hasRelList(editor.settings)) { relListCtrl = { name: 'rel', type: 'listbox', label: 'Rel', values: buildListItems(Settings.getRelList(editor.settings), function (item) { if (Settings.allowUnsafeLinkTarget(editor.settings) === false) { item.value = Utils.toggleTargetRules(item.value, data.target === '_blank'); } }) }; } if (Settings.hasLinkClassList(editor.settings)) { classListCtrl = { name: 'class', type: 'listbox', label: 'Class', values: buildListItems(Settings.getLinkClassList(editor.settings), function (item) { if (item.value) { item.textStyle = function () { return editor.formatter.getCssText({ inline: 'a', classes: [item.value] }); }; } }) }; } if (Settings.shouldShowLinkTitle(editor.settings)) { linkTitleCtrl = { name: 'title', type: 'textbox', label: 'Title', value: data.title }; } win = editor.windowManager.open({ title: 'Insert link', data: data, body: [ { name: 'href', type: 'filepicker', filetype: 'file', size: 40, autofocus: true, label: 'Url', onchange: urlChange, onkeyup: updateText, onpaste: updateText, onbeforecall: onBeforeCall }, textListCtrl, linkTitleCtrl, buildAnchorListControl(data.href), linkListCtrl, relListCtrl, targetListCtrl, classListCtrl ], onSubmit: function (e) { var assumeExternalTargets = Settings.assumeExternalTargets(editor.settings); var insertLink = Utils.link(editor, attachState); var removeLink = Utils.unlink(editor); var resultData = global$4.extend({}, data, e.data); var href = resultData.href; if (!href) { removeLink(); return; } if (!onlyText || resultData.text === initialText) { delete resultData.text; } if (href.indexOf('@') > 0 && href.indexOf('//') === -1 && href.indexOf('mailto:') === -1) { delayedConfirm(editor, 'The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?', function (state) { if (state) { resultData.href = 'mailto:' + href; } insertLink(resultData); }); return; } if (assumeExternalTargets === true && !/^\w+:/i.test(href) || assumeExternalTargets === false && /^\s*www[\.|\d\.]/i.test(href)) { delayedConfirm(editor, 'The URL you entered seems to be an external link. Do you want to add the required http:// prefix?', function (state) { if (state) { resultData.href = 'http://' + href; } insertLink(resultData); }); return; } insertLink(resultData); } }); }; var open$1 = function (editor) { createLinkList(editor, showDialog); }; var Dialog = { open: open$1 }; var getLink = function (editor, elm) { return editor.dom.getParent(elm, 'a[href]'); }; var getSelectedLink = function (editor) { return getLink(editor, editor.selection.getStart()); }; var getHref = function (elm) { var href = elm.getAttribute('data-mce-href'); return href ? href : elm.getAttribute('href'); }; var isContextMenuVisible = function (editor) { var contextmenu = editor.plugins.contextmenu; return contextmenu ? contextmenu.isContextMenuVisible() : false; }; var hasOnlyAltModifier = function (e) { return e.altKey === true && e.shiftKey === false && e.ctrlKey === false && e.metaKey === false; }; var gotoLink = function (editor, a) { if (a) { var href = getHref(a); if (/^#/.test(href)) { var targetEl = editor.$(href); if (targetEl.length) { editor.selection.scrollIntoView(targetEl[0], true); } } else { OpenUrl.open(a.href); } } }; var openDialog = function (editor) { return function () { Dialog.open(editor); }; }; var gotoSelectedLink = function (editor) { return function () { gotoLink(editor, getSelectedLink(editor)); }; }; var leftClickedOnAHref = function (editor) { return function (elm) { var sel, rng, node; if (Settings.hasContextToolbar(editor.settings) && !isContextMenuVisible(editor) && Utils.isLink(elm)) { sel = editor.selection; rng = sel.getRng(); node = rng.startContainer; if (node.nodeType === 3 && sel.isCollapsed() && rng.startOffset > 0 && rng.startOffset < node.data.length) { return true; } } return false; }; }; var setupGotoLinks = function (editor) { editor.on('click', function (e) { var link = getLink(editor, e.target); if (link && global$1.metaKeyPressed(e)) { e.preventDefault(); gotoLink(editor, link); } }); editor.on('keydown', function (e) { var link = getSelectedLink(editor); if (link && e.keyCode === 13 && hasOnlyAltModifier(e)) { e.preventDefault(); gotoLink(editor, link); } }); }; var toggleActiveState = function (editor) { return function () { var self = this; editor.on('nodechange', function (e) { self.active(!editor.readonly && !!Utils.getAnchorElement(editor, e.element)); }); }; }; var toggleViewLinkState = function (editor) { return function () { var self = this; var toggleVisibility = function (e) { if (Utils.hasLinks(e.parents)) { self.show(); } else { self.hide(); } }; if (!Utils.hasLinks(editor.dom.getParents(editor.selection.getStart()))) { self.hide(); } editor.on('nodechange', toggleVisibility); self.on('remove', function () { editor.off('nodechange', toggleVisibility); }); }; }; var Actions = { openDialog: openDialog, gotoSelectedLink: gotoSelectedLink, leftClickedOnAHref: leftClickedOnAHref, setupGotoLinks: setupGotoLinks, toggleActiveState: toggleActiveState, toggleViewLinkState: toggleViewLinkState }; var register = function (editor) { editor.addCommand('mceLink', Actions.openDialog(editor)); }; var Commands = { register: register }; var setup = function (editor) { editor.addShortcut('Meta+K', '', Actions.openDialog(editor)); }; var Keyboard = { setup: setup }; var setupButtons = function (editor) { editor.addButton('link', { active: false, icon: 'link', tooltip: 'Insert/edit link', onclick: Actions.openDialog(editor), onpostrender: Actions.toggleActiveState(editor) }); editor.addButton('unlink', { active: false, icon: 'unlink', tooltip: 'Remove link', onclick: Utils.unlink(editor), onpostrender: Actions.toggleActiveState(editor) }); if (editor.addContextToolbar) { editor.addButton('openlink', { icon: 'newtab', tooltip: 'Open link', onclick: Actions.gotoSelectedLink(editor) }); } }; var setupMenuItems = function (editor) { editor.addMenuItem('openlink', { text: 'Open link', icon: 'newtab', onclick: Actions.gotoSelectedLink(editor), onPostRender: Actions.toggleViewLinkState(editor), prependToContext: true }); editor.addMenuItem('link', { icon: 'link', text: 'Link', shortcut: 'Meta+K', onclick: Actions.openDialog(editor), stateSelector: 'a[href]', context: 'insert', prependToContext: true }); editor.addMenuItem('unlink', { icon: 'unlink', text: 'Remove link', onclick: Utils.unlink(editor), stateSelector: 'a[href]' }); }; var setupContextToolbars = function (editor) { if (editor.addContextToolbar) { editor.addContextToolbar(Actions.leftClickedOnAHref(editor), 'openlink | link unlink'); } }; var Controls = { setupButtons: setupButtons, setupMenuItems: setupMenuItems, setupContextToolbars: setupContextToolbars }; global.add('link', function (editor) { Controls.setupButtons(editor); Controls.setupMenuItems(editor); Controls.setupContextToolbars(editor); Actions.setupGotoLinks(editor); Commands.register(editor); Keyboard.setup(editor); }); function Plugin () { } return Plugin; }(window)); })(); link/plugin.min.js000064400000021354151222602270010123 0ustar00!function(l){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager"),n=tinymce.util.Tools.resolve("tinymce.util.VK"),e=function(t){return t.target_list},o=function(t){return t.rel_list},i=function(t){return t.link_class_list},p=function(t){return"boolean"==typeof t.link_assume_external_targets&&t.link_assume_external_targets},a=function(t){return"boolean"==typeof t.link_context_toolbar&&t.link_context_toolbar},r=function(t){return t.link_list},k=function(t){return"string"==typeof t.default_link_target},y=function(t){return t.default_link_target},b=e,_=function(t,e){t.settings.target_list=e},w=function(t){return!1!==e(t)},T=o,C=function(t){return o(t)!==undefined},M=i,O=function(t){return i(t)!==undefined},R=function(t){return!1!==t.link_title},N=function(t){return"boolean"==typeof t.allow_unsafe_link_target&&t.allow_unsafe_link_target},u=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),c=tinymce.util.Tools.resolve("tinymce.Env"),s=function(t){if(!c.ie||10'),i.close()}}var r,a},A=tinymce.util.Tools.resolve("tinymce.util.Tools"),f=function(t,e){var n,o,i=["noopener"],r=t?t.split(/\s+/):[],a=function(t){return t.filter(function(t){return-1===A.inArray(i,t)})};return(r=e?(n=a(n=r)).length?n.concat(i):i:a(r)).length?(o=r,A.trim(o.sort().join(" "))):null},d=function(t,e){return e=e||t.selection.getNode(),v(e)?t.dom.select("a[href]",e)[0]:t.dom.getParent(e,"a[href]")},m=function(t){return t&&"A"===t.nodeName&&t.href},v=function(t){return t&&"FIGURE"===t.nodeName&&/\bimage\b/i.test(t.className)},g=function(t,e){var n,o;(o=t.dom.select("img",e)[0])&&(n=t.dom.getParents(o,"a[href]",e)[0])&&(n.parentNode.insertBefore(o,n),t.dom.remove(n))},h=function(t,e,n){var o,i;(i=t.dom.select("img",e)[0])&&(o=t.dom.create("a",n),i.parentNode.insertBefore(o,i),o.appendChild(i))},L=function(i,r){return function(o){i.undoManager.transact(function(){var t=i.selection.getNode(),e=d(i,t),n={href:o.href,target:o.target?o.target:null,rel:o.rel?o.rel:null,"class":o["class"]?o["class"]:null,title:o.title?o.title:null};C(i.settings)||!1!==N(i.settings)||(n.rel=f(n.rel,"_blank"===n.target)),o.href===r.href&&(r.attach(),r={}),e?(i.focus(),o.hasOwnProperty("text")&&("innerText"in e?e.innerText=o.text:e.textContent=o.text),i.dom.setAttribs(e,n),i.selection.select(e),i.undoManager.add()):v(t)?h(i,t,n):o.hasOwnProperty("text")?i.insertContent(i.dom.createHTML("a",n,i.dom.encode(o.text))):i.execCommand("mceInsertLink",!1,n)})}},P=function(e){return function(){e.undoManager.transact(function(){var t=e.selection.getNode();v(t)?g(e,t):e.execCommand("unlink")})}},x=m,E=function(t){return 0]+>[^<]+<\/a>$/.test(t)||-1===t.indexOf("href=")))},I=d,K=function(t,e){var n=e?e.innerText||e.textContent:t.getContent({format:"text"});return n.replace(/\uFEFF/g,"")},U=f,D=tinymce.util.Tools.resolve("tinymce.util.Delay"),B=tinymce.util.Tools.resolve("tinymce.util.XHR"),F={},q=function(t,o,e){var i=function(t,n){return n=n||[],A.each(t,function(t){var e={text:t.text||t.title};t.menu?e.menu=i(t.menu):(e.value=t.value,o&&o(e)),n.push(e)}),n};return i(t,e||[])},V=function(e,t,n){var o=e.selection.getRng();D.setEditorTimeout(e,function(){e.windowManager.confirm(t,function(t){e.selection.setRng(o),n(t)})})},z=function(a,t){var e,l,o,u,n,i,r,c,s,f,d,m={},v=a.selection,g=a.dom,h=function(t){var e=o.find("#text");(!e.value()||t.lastControl&&e.value()===t.lastControl.text())&&e.value(t.control.text()),o.find("#href").value(t.control.value())},x=function(){l||!u||m.text||this.parent().parent().find("#text")[0].value(this.value())};u=S(v.getContent()),e=I(a),m.text=l=K(a.selection,e),m.href=e?g.getAttrib(e,"href"):"",e?m.target=g.getAttrib(e,"target"):k(a.settings)&&(m.target=y(a.settings)),(d=g.getAttrib(e,"rel"))&&(m.rel=d),(d=g.getAttrib(e,"class"))&&(m["class"]=d),(d=g.getAttrib(e,"title"))&&(m.title=d),u&&(n={name:"text",type:"textbox",size:40,label:"Text to display",onchange:function(){m.text=this.value()}}),t&&(i={type:"listbox",label:"Link list",values:q(t,function(t){t.value=a.convertURL(t.value||t.url,"href")},[{text:"None",value:""}]),onselect:h,value:a.convertURL(m.href,"href"),onPostRender:function(){i=this}}),w(a.settings)&&(b(a.settings)===undefined&&_(a,[{text:"None",value:""},{text:"New window",value:"_blank"}]),c={name:"target",type:"listbox",label:"Target",values:q(b(a.settings))}),C(a.settings)&&(r={name:"rel",type:"listbox",label:"Rel",values:q(T(a.settings),function(t){!1===N(a.settings)&&(t.value=U(t.value,"_blank"===m.target))})}),O(a.settings)&&(s={name:"class",type:"listbox",label:"Class",values:q(M(a.settings),function(t){t.value&&(t.textStyle=function(){return a.formatter.getCssText({inline:"a",classes:[t.value]})})})}),R(a.settings)&&(f={name:"title",type:"textbox",label:"Title",value:m.title}),o=a.windowManager.open({title:"Insert link",data:m,body:[{name:"href",type:"filepicker",filetype:"file",size:40,autofocus:!0,label:"Url",onchange:function(t){var e=t.meta||{};i&&i.value(a.convertURL(this.value(),"href")),A.each(t.meta,function(t,e){var n=o.find("#"+e);"text"===e?0===l.length&&(n.value(t),m.text=t):n.value(t)}),e.attach&&(F={href:this.value(),attach:e.attach}),e.text||x.call(this)},onkeyup:x,onpaste:x,onbeforecall:function(t){t.meta=o.toJSON()}},n,f,function(n){var o=[];if(A.each(a.dom.select("a:not([href])"),function(t){var e=t.name||t.id;e&&o.push({text:e,value:"#"+e,selected:-1!==n.indexOf("#"+e)})}),o.length)return o.unshift({text:"None",value:""}),{name:"anchor",type:"listbox",label:"Anchors",values:o,onselect:h}}(m.href),i,r,c,s],onSubmit:function(t){var e=p(a.settings),n=L(a,F),o=P(a),i=A.extend({},m,t.data),r=i.href;r?(u&&i.text!==l||delete i.text,0 0) { return false; } return empty; }; var isChildOfBody = function (dom, elm) { return dom.isChildOf(elm, dom.getRoot()); }; var NodeType = { isTextNode: isTextNode, isListNode: isListNode, isOlUlNode: isOlUlNode, isDlItemNode: isDlItemNode, isListItemNode: isListItemNode, isTableCellNode: isTableCellNode, isBr: isBr, isFirstChild: isFirstChild, isLastChild: isLastChild, isTextBlock: isTextBlock, isBlock: isBlock, isBogusBr: isBogusBr, isEmpty: isEmpty, isChildOfBody: isChildOfBody }; var getNormalizedPoint = function (container, offset) { if (NodeType.isTextNode(container)) { return { container: container, offset: offset }; } var node = global$1.getNode(container, offset); if (NodeType.isTextNode(node)) { return { container: node, offset: offset >= container.childNodes.length ? node.data.length : 0 }; } else if (node.previousSibling && NodeType.isTextNode(node.previousSibling)) { return { container: node.previousSibling, offset: node.previousSibling.data.length }; } else if (node.nextSibling && NodeType.isTextNode(node.nextSibling)) { return { container: node.nextSibling, offset: 0 }; } return { container: container, offset: offset }; }; var normalizeRange = function (rng) { var outRng = rng.cloneRange(); var rangeStart = getNormalizedPoint(rng.startContainer, rng.startOffset); outRng.setStart(rangeStart.container, rangeStart.offset); var rangeEnd = getNormalizedPoint(rng.endContainer, rng.endOffset); outRng.setEnd(rangeEnd.container, rangeEnd.offset); return outRng; }; var Range = { getNormalizedPoint: getNormalizedPoint, normalizeRange: normalizeRange }; var DOM = global$6.DOM; var createBookmark = function (rng) { var bookmark = {}; var setupEndPoint = function (start) { var offsetNode, container, offset; container = rng[start ? 'startContainer' : 'endContainer']; offset = rng[start ? 'startOffset' : 'endOffset']; if (container.nodeType === 1) { offsetNode = DOM.create('span', { 'data-mce-type': 'bookmark' }); if (container.hasChildNodes()) { offset = Math.min(offset, container.childNodes.length - 1); if (start) { container.insertBefore(offsetNode, container.childNodes[offset]); } else { DOM.insertAfter(offsetNode, container.childNodes[offset]); } } else { container.appendChild(offsetNode); } container = offsetNode; offset = 0; } bookmark[start ? 'startContainer' : 'endContainer'] = container; bookmark[start ? 'startOffset' : 'endOffset'] = offset; }; setupEndPoint(true); if (!rng.collapsed) { setupEndPoint(); } return bookmark; }; var resolveBookmark = function (bookmark) { function restoreEndPoint(start) { var container, offset, node; var nodeIndex = function (container) { var node = container.parentNode.firstChild, idx = 0; while (node) { if (node === container) { return idx; } if (node.nodeType !== 1 || node.getAttribute('data-mce-type') !== 'bookmark') { idx++; } node = node.nextSibling; } return -1; }; container = node = bookmark[start ? 'startContainer' : 'endContainer']; offset = bookmark[start ? 'startOffset' : 'endOffset']; if (!container) { return; } if (container.nodeType === 1) { offset = nodeIndex(container); container = container.parentNode; DOM.remove(node); if (!container.hasChildNodes() && DOM.isBlock(container)) { container.appendChild(DOM.create('br')); } } bookmark[start ? 'startContainer' : 'endContainer'] = container; bookmark[start ? 'startOffset' : 'endOffset'] = offset; } restoreEndPoint(true); restoreEndPoint(); var rng = DOM.createRng(); rng.setStart(bookmark.startContainer, bookmark.startOffset); if (bookmark.endContainer) { rng.setEnd(bookmark.endContainer, bookmark.endOffset); } return Range.normalizeRange(rng); }; var Bookmark = { createBookmark: createBookmark, resolveBookmark: resolveBookmark }; var noop = function () { }; var constant = function (value) { return function () { return value; }; }; var not = function (f) { return function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } return !f.apply(null, args); }; }; var never = constant(false); var always = constant(true); var none = function () { return NONE; }; var NONE = function () { var eq = function (o) { return o.isNone(); }; var call = function (thunk) { return thunk(); }; var id = function (n) { return n; }; var me = { fold: function (n, s) { return n(); }, is: never, isSome: never, isNone: always, getOr: id, getOrThunk: call, getOrDie: function (msg) { throw new Error(msg || 'error: getOrDie called on none.'); }, getOrNull: constant(null), getOrUndefined: constant(undefined), or: id, orThunk: call, map: none, each: noop, bind: none, exists: never, forall: always, filter: none, equals: eq, equals_: eq, toArray: function () { return []; }, toString: constant('none()') }; if (Object.freeze) { Object.freeze(me); } return me; }(); var some = function (a) { var constant_a = constant(a); var self = function () { return me; }; var bind = function (f) { return f(a); }; var me = { fold: function (n, s) { return s(a); }, is: function (v) { return a === v; }, isSome: always, isNone: never, getOr: constant_a, getOrThunk: constant_a, getOrDie: constant_a, getOrNull: constant_a, getOrUndefined: constant_a, or: self, orThunk: self, map: function (f) { return some(f(a)); }, each: function (f) { f(a); }, bind: bind, exists: bind, forall: bind, filter: function (f) { return f(a) ? me : NONE; }, toArray: function () { return [a]; }, toString: function () { return 'some(' + a + ')'; }, equals: function (o) { return o.is(a); }, equals_: function (o, elementEq) { return o.fold(never, function (b) { return elementEq(a, b); }); } }; return me; }; var from = function (value) { return value === null || value === undefined ? NONE : some(value); }; var Option = { some: some, none: none, from: from }; var typeOf = function (x) { if (x === null) { return 'null'; } var t = typeof x; if (t === 'object' && (Array.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'Array')) { return 'array'; } if (t === 'object' && (String.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'String')) { return 'string'; } return t; }; var isType = function (type) { return function (value) { return typeOf(value) === type; }; }; var isString = isType('string'); var isArray = isType('array'); var isBoolean = isType('boolean'); var isFunction = isType('function'); var isNumber = isType('number'); var nativeSlice = Array.prototype.slice; var nativePush = Array.prototype.push; var map = function (xs, f) { var len = xs.length; var r = new Array(len); for (var i = 0; i < len; i++) { var x = xs[i]; r[i] = f(x, i); } return r; }; var each = function (xs, f) { for (var i = 0, len = xs.length; i < len; i++) { var x = xs[i]; f(x, i); } }; var filter = function (xs, pred) { var r = []; for (var i = 0, len = xs.length; i < len; i++) { var x = xs[i]; if (pred(x, i)) { r.push(x); } } return r; }; var groupBy = function (xs, f) { if (xs.length === 0) { return []; } else { var wasType = f(xs[0]); var r = []; var group = []; for (var i = 0, len = xs.length; i < len; i++) { var x = xs[i]; var type = f(x); if (type !== wasType) { r.push(group); group = []; } wasType = type; group.push(x); } if (group.length !== 0) { r.push(group); } return r; } }; var foldl = function (xs, f, acc) { each(xs, function (x) { acc = f(acc, x); }); return acc; }; var find = function (xs, pred) { for (var i = 0, len = xs.length; i < len; i++) { var x = xs[i]; if (pred(x, i)) { return Option.some(x); } } return Option.none(); }; var flatten = function (xs) { var r = []; for (var i = 0, len = xs.length; i < len; ++i) { if (!isArray(xs[i])) { throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs); } nativePush.apply(r, xs[i]); } return r; }; var bind = function (xs, f) { var output = map(xs, f); return flatten(output); }; var reverse = function (xs) { var r = nativeSlice.call(xs, 0); r.reverse(); return r; }; var head = function (xs) { return xs.length === 0 ? Option.none() : Option.some(xs[0]); }; var last = function (xs) { return xs.length === 0 ? Option.none() : Option.some(xs[xs.length - 1]); }; var from$1 = isFunction(Array.from) ? Array.from : function (x) { return nativeSlice.call(x); }; var Global = typeof domGlobals.window !== 'undefined' ? domGlobals.window : Function('return this;')(); var path = function (parts, scope) { var o = scope !== undefined && scope !== null ? scope : Global; for (var i = 0; i < parts.length && o !== undefined && o !== null; ++i) { o = o[parts[i]]; } return o; }; var resolve = function (p, scope) { var parts = p.split('.'); return path(parts, scope); }; var unsafe = function (name, scope) { return resolve(name, scope); }; var getOrDie = function (name, scope) { var actual = unsafe(name, scope); if (actual === undefined || actual === null) { throw new Error(name + ' not available on this browser'); } return actual; }; var Global$1 = { getOrDie: getOrDie }; var htmlElement = function (scope) { return Global$1.getOrDie('HTMLElement', scope); }; var isPrototypeOf = function (x) { var scope = resolve('ownerDocument.defaultView', x); return htmlElement(scope).prototype.isPrototypeOf(x); }; var HTMLElement = { isPrototypeOf: isPrototypeOf }; var global$7 = tinymce.util.Tools.resolve('tinymce.dom.DomQuery'); var getParentList = function (editor) { var selectionStart = editor.selection.getStart(true); return editor.dom.getParent(selectionStart, 'OL,UL,DL', getClosestListRootElm(editor, selectionStart)); }; var isParentListSelected = function (parentList, selectedBlocks) { return parentList && selectedBlocks.length === 1 && selectedBlocks[0] === parentList; }; var findSubLists = function (parentList) { return global$5.grep(parentList.querySelectorAll('ol,ul,dl'), function (elm) { return NodeType.isListNode(elm); }); }; var getSelectedSubLists = function (editor) { var parentList = getParentList(editor); var selectedBlocks = editor.selection.getSelectedBlocks(); if (isParentListSelected(parentList, selectedBlocks)) { return findSubLists(parentList); } else { return global$5.grep(selectedBlocks, function (elm) { return NodeType.isListNode(elm) && parentList !== elm; }); } }; var findParentListItemsNodes = function (editor, elms) { var listItemsElms = global$5.map(elms, function (elm) { var parentLi = editor.dom.getParent(elm, 'li,dd,dt', getClosestListRootElm(editor, elm)); return parentLi ? parentLi : elm; }); return global$7.unique(listItemsElms); }; var getSelectedListItems = function (editor) { var selectedBlocks = editor.selection.getSelectedBlocks(); return global$5.grep(findParentListItemsNodes(editor, selectedBlocks), function (block) { return NodeType.isListItemNode(block); }); }; var getSelectedDlItems = function (editor) { return filter(getSelectedListItems(editor), NodeType.isDlItemNode); }; var getClosestListRootElm = function (editor, elm) { var parentTableCell = editor.dom.getParents(elm, 'TD,TH'); var root = parentTableCell.length > 0 ? parentTableCell[0] : editor.getBody(); return root; }; var findLastParentListNode = function (editor, elm) { var parentLists = editor.dom.getParents(elm, 'ol,ul', getClosestListRootElm(editor, elm)); return last(parentLists); }; var getSelectedLists = function (editor) { var firstList = findLastParentListNode(editor, editor.selection.getStart()); var subsequentLists = filter(editor.selection.getSelectedBlocks(), NodeType.isOlUlNode); return firstList.toArray().concat(subsequentLists); }; var getSelectedListRoots = function (editor) { var selectedLists = getSelectedLists(editor); return getUniqueListRoots(editor, selectedLists); }; var getUniqueListRoots = function (editor, lists) { var listRoots = map(lists, function (list) { return findLastParentListNode(editor, list).getOr(list); }); return global$7.unique(listRoots); }; var isList = function (editor) { var list = getParentList(editor); return HTMLElement.isPrototypeOf(list); }; var Selection = { isList: isList, getParentList: getParentList, getSelectedSubLists: getSelectedSubLists, getSelectedListItems: getSelectedListItems, getClosestListRootElm: getClosestListRootElm, getSelectedDlItems: getSelectedDlItems, getSelectedListRoots: getSelectedListRoots }; var fromHtml = function (html, scope) { var doc = scope || domGlobals.document; var div = doc.createElement('div'); div.innerHTML = html; if (!div.hasChildNodes() || div.childNodes.length > 1) { domGlobals.console.error('HTML does not have a single root node', html); throw new Error('HTML must have a single root node'); } return fromDom(div.childNodes[0]); }; var fromTag = function (tag, scope) { var doc = scope || domGlobals.document; var node = doc.createElement(tag); return fromDom(node); }; var fromText = function (text, scope) { var doc = scope || domGlobals.document; var node = doc.createTextNode(text); return fromDom(node); }; var fromDom = function (node) { if (node === null || node === undefined) { throw new Error('Node cannot be null or undefined'); } return { dom: constant(node) }; }; var fromPoint = function (docElm, x, y) { var doc = docElm.dom(); return Option.from(doc.elementFromPoint(x, y)).map(fromDom); }; var Element = { fromHtml: fromHtml, fromTag: fromTag, fromText: fromText, fromDom: fromDom, fromPoint: fromPoint }; var lift2 = function (oa, ob, f) { return oa.isSome() && ob.isSome() ? Option.some(f(oa.getOrDie(), ob.getOrDie())) : Option.none(); }; var fromElements = function (elements, scope) { var doc = scope || domGlobals.document; var fragment = doc.createDocumentFragment(); each(elements, function (element) { fragment.appendChild(element.dom()); }); return Element.fromDom(fragment); }; var Immutable = function () { var fields = []; for (var _i = 0; _i < arguments.length; _i++) { fields[_i] = arguments[_i]; } return function () { var values = []; for (var _i = 0; _i < arguments.length; _i++) { values[_i] = arguments[_i]; } if (fields.length !== values.length) { throw new Error('Wrong number of arguments to struct. Expected "[' + fields.length + ']", got ' + values.length + ' arguments'); } var struct = {}; each(fields, function (name, i) { struct[name] = constant(values[i]); }); return struct; }; }; var keys = Object.keys; var each$1 = function (obj, f) { var props = keys(obj); for (var k = 0, len = props.length; k < len; k++) { var i = props[k]; var x = obj[i]; f(x, i); } }; var node = function () { var f = Global$1.getOrDie('Node'); return f; }; var compareDocumentPosition = function (a, b, match) { return (a.compareDocumentPosition(b) & match) !== 0; }; var documentPositionPreceding = function (a, b) { return compareDocumentPosition(a, b, node().DOCUMENT_POSITION_PRECEDING); }; var documentPositionContainedBy = function (a, b) { return compareDocumentPosition(a, b, node().DOCUMENT_POSITION_CONTAINED_BY); }; var Node = { documentPositionPreceding: documentPositionPreceding, documentPositionContainedBy: documentPositionContainedBy }; var cached = function (f) { var called = false; var r; return function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } if (!called) { called = true; r = f.apply(null, args); } return r; }; }; var firstMatch = function (regexes, s) { for (var i = 0; i < regexes.length; i++) { var x = regexes[i]; if (x.test(s)) { return x; } } return undefined; }; var find$1 = function (regexes, agent) { var r = firstMatch(regexes, agent); if (!r) { return { major: 0, minor: 0 }; } var group = function (i) { return Number(agent.replace(r, '$' + i)); }; return nu(group(1), group(2)); }; var detect = function (versionRegexes, agent) { var cleanedAgent = String(agent).toLowerCase(); if (versionRegexes.length === 0) { return unknown(); } return find$1(versionRegexes, cleanedAgent); }; var unknown = function () { return nu(0, 0); }; var nu = function (major, minor) { return { major: major, minor: minor }; }; var Version = { nu: nu, detect: detect, unknown: unknown }; var edge = 'Edge'; var chrome = 'Chrome'; var ie = 'IE'; var opera = 'Opera'; var firefox = 'Firefox'; var safari = 'Safari'; var isBrowser = function (name, current) { return function () { return current === name; }; }; var unknown$1 = function () { return nu$1({ current: undefined, version: Version.unknown() }); }; var nu$1 = function (info) { var current = info.current; var version = info.version; return { current: current, version: version, isEdge: isBrowser(edge, current), isChrome: isBrowser(chrome, current), isIE: isBrowser(ie, current), isOpera: isBrowser(opera, current), isFirefox: isBrowser(firefox, current), isSafari: isBrowser(safari, current) }; }; var Browser = { unknown: unknown$1, nu: nu$1, edge: constant(edge), chrome: constant(chrome), ie: constant(ie), opera: constant(opera), firefox: constant(firefox), safari: constant(safari) }; var windows = 'Windows'; var ios = 'iOS'; var android = 'Android'; var linux = 'Linux'; var osx = 'OSX'; var solaris = 'Solaris'; var freebsd = 'FreeBSD'; var isOS = function (name, current) { return function () { return current === name; }; }; var unknown$2 = function () { return nu$2({ current: undefined, version: Version.unknown() }); }; var nu$2 = function (info) { var current = info.current; var version = info.version; return { current: current, version: version, isWindows: isOS(windows, current), isiOS: isOS(ios, current), isAndroid: isOS(android, current), isOSX: isOS(osx, current), isLinux: isOS(linux, current), isSolaris: isOS(solaris, current), isFreeBSD: isOS(freebsd, current) }; }; var OperatingSystem = { unknown: unknown$2, nu: nu$2, windows: constant(windows), ios: constant(ios), android: constant(android), linux: constant(linux), osx: constant(osx), solaris: constant(solaris), freebsd: constant(freebsd) }; var DeviceType = function (os, browser, userAgent) { var isiPad = os.isiOS() && /ipad/i.test(userAgent) === true; var isiPhone = os.isiOS() && !isiPad; var isAndroid3 = os.isAndroid() && os.version.major === 3; var isAndroid4 = os.isAndroid() && os.version.major === 4; var isTablet = isiPad || isAndroid3 || isAndroid4 && /mobile/i.test(userAgent) === true; var isTouch = os.isiOS() || os.isAndroid(); var isPhone = isTouch && !isTablet; var iOSwebview = browser.isSafari() && os.isiOS() && /safari/i.test(userAgent) === false; return { isiPad: constant(isiPad), isiPhone: constant(isiPhone), isTablet: constant(isTablet), isPhone: constant(isPhone), isTouch: constant(isTouch), isAndroid: os.isAndroid, isiOS: os.isiOS, isWebView: constant(iOSwebview) }; }; var detect$1 = function (candidates, userAgent) { var agent = String(userAgent).toLowerCase(); return find(candidates, function (candidate) { return candidate.search(agent); }); }; var detectBrowser = function (browsers, userAgent) { return detect$1(browsers, userAgent).map(function (browser) { var version = Version.detect(browser.versionRegexes, userAgent); return { current: browser.name, version: version }; }); }; var detectOs = function (oses, userAgent) { return detect$1(oses, userAgent).map(function (os) { var version = Version.detect(os.versionRegexes, userAgent); return { current: os.name, version: version }; }); }; var UaString = { detectBrowser: detectBrowser, detectOs: detectOs }; var contains = function (str, substr) { return str.indexOf(substr) !== -1; }; var normalVersionRegex = /.*?version\/\ ?([0-9]+)\.([0-9]+).*/; var checkContains = function (target) { return function (uastring) { return contains(uastring, target); }; }; var browsers = [ { name: 'Edge', versionRegexes: [/.*?edge\/ ?([0-9]+)\.([0-9]+)$/], search: function (uastring) { return contains(uastring, 'edge/') && contains(uastring, 'chrome') && contains(uastring, 'safari') && contains(uastring, 'applewebkit'); } }, { name: 'Chrome', versionRegexes: [ /.*?chrome\/([0-9]+)\.([0-9]+).*/, normalVersionRegex ], search: function (uastring) { return contains(uastring, 'chrome') && !contains(uastring, 'chromeframe'); } }, { name: 'IE', versionRegexes: [ /.*?msie\ ?([0-9]+)\.([0-9]+).*/, /.*?rv:([0-9]+)\.([0-9]+).*/ ], search: function (uastring) { return contains(uastring, 'msie') || contains(uastring, 'trident'); } }, { name: 'Opera', versionRegexes: [ normalVersionRegex, /.*?opera\/([0-9]+)\.([0-9]+).*/ ], search: checkContains('opera') }, { name: 'Firefox', versionRegexes: [/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/], search: checkContains('firefox') }, { name: 'Safari', versionRegexes: [ normalVersionRegex, /.*?cpu os ([0-9]+)_([0-9]+).*/ ], search: function (uastring) { return (contains(uastring, 'safari') || contains(uastring, 'mobile/')) && contains(uastring, 'applewebkit'); } } ]; var oses = [ { name: 'Windows', search: checkContains('win'), versionRegexes: [/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/] }, { name: 'iOS', search: function (uastring) { return contains(uastring, 'iphone') || contains(uastring, 'ipad'); }, versionRegexes: [ /.*?version\/\ ?([0-9]+)\.([0-9]+).*/, /.*cpu os ([0-9]+)_([0-9]+).*/, /.*cpu iphone os ([0-9]+)_([0-9]+).*/ ] }, { name: 'Android', search: checkContains('android'), versionRegexes: [/.*?android\ ?([0-9]+)\.([0-9]+).*/] }, { name: 'OSX', search: checkContains('os x'), versionRegexes: [/.*?os\ x\ ?([0-9]+)_([0-9]+).*/] }, { name: 'Linux', search: checkContains('linux'), versionRegexes: [] }, { name: 'Solaris', search: checkContains('sunos'), versionRegexes: [] }, { name: 'FreeBSD', search: checkContains('freebsd'), versionRegexes: [] } ]; var PlatformInfo = { browsers: constant(browsers), oses: constant(oses) }; var detect$2 = function (userAgent) { var browsers = PlatformInfo.browsers(); var oses = PlatformInfo.oses(); var browser = UaString.detectBrowser(browsers, userAgent).fold(Browser.unknown, Browser.nu); var os = UaString.detectOs(oses, userAgent).fold(OperatingSystem.unknown, OperatingSystem.nu); var deviceType = DeviceType(os, browser, userAgent); return { browser: browser, os: os, deviceType: deviceType }; }; var PlatformDetection = { detect: detect$2 }; var detect$3 = cached(function () { var userAgent = domGlobals.navigator.userAgent; return PlatformDetection.detect(userAgent); }); var PlatformDetection$1 = { detect: detect$3 }; var ATTRIBUTE = domGlobals.Node.ATTRIBUTE_NODE; var CDATA_SECTION = domGlobals.Node.CDATA_SECTION_NODE; var COMMENT = domGlobals.Node.COMMENT_NODE; var DOCUMENT = domGlobals.Node.DOCUMENT_NODE; var DOCUMENT_TYPE = domGlobals.Node.DOCUMENT_TYPE_NODE; var DOCUMENT_FRAGMENT = domGlobals.Node.DOCUMENT_FRAGMENT_NODE; var ELEMENT = domGlobals.Node.ELEMENT_NODE; var TEXT = domGlobals.Node.TEXT_NODE; var PROCESSING_INSTRUCTION = domGlobals.Node.PROCESSING_INSTRUCTION_NODE; var ENTITY_REFERENCE = domGlobals.Node.ENTITY_REFERENCE_NODE; var ENTITY = domGlobals.Node.ENTITY_NODE; var NOTATION = domGlobals.Node.NOTATION_NODE; var ELEMENT$1 = ELEMENT; var is = function (element, selector) { var dom = element.dom(); if (dom.nodeType !== ELEMENT$1) { return false; } else { var elem = dom; if (elem.matches !== undefined) { return elem.matches(selector); } else if (elem.msMatchesSelector !== undefined) { return elem.msMatchesSelector(selector); } else if (elem.webkitMatchesSelector !== undefined) { return elem.webkitMatchesSelector(selector); } else if (elem.mozMatchesSelector !== undefined) { return elem.mozMatchesSelector(selector); } else { throw new Error('Browser lacks native selectors'); } } }; var eq = function (e1, e2) { return e1.dom() === e2.dom(); }; var regularContains = function (e1, e2) { var d1 = e1.dom(); var d2 = e2.dom(); return d1 === d2 ? false : d1.contains(d2); }; var ieContains = function (e1, e2) { return Node.documentPositionContainedBy(e1.dom(), e2.dom()); }; var browser = PlatformDetection$1.detect().browser; var contains$1 = browser.isIE() ? ieContains : regularContains; var is$1 = is; var parent = function (element) { return Option.from(element.dom().parentNode).map(Element.fromDom); }; var children = function (element) { return map(element.dom().childNodes, Element.fromDom); }; var child = function (element, index) { var cs = element.dom().childNodes; return Option.from(cs[index]).map(Element.fromDom); }; var firstChild = function (element) { return child(element, 0); }; var lastChild = function (element) { return child(element, element.dom().childNodes.length - 1); }; var spot = Immutable('element', 'offset'); var before = function (marker, element) { var parent$1 = parent(marker); parent$1.each(function (v) { v.dom().insertBefore(element.dom(), marker.dom()); }); }; var append = function (parent, element) { parent.dom().appendChild(element.dom()); }; var before$1 = function (marker, elements) { each(elements, function (x) { before(marker, x); }); }; var append$1 = function (parent, elements) { each(elements, function (x) { append(parent, x); }); }; var remove = function (element) { var dom = element.dom(); if (dom.parentNode !== null) { dom.parentNode.removeChild(dom); } }; var name = function (element) { var r = element.dom().nodeName; return r.toLowerCase(); }; var type = function (element) { return element.dom().nodeType; }; var isType$1 = function (t) { return function (element) { return type(element) === t; }; }; var isElement = isType$1(ELEMENT); var rawSet = function (dom, key, value) { if (isString(value) || isBoolean(value) || isNumber(value)) { dom.setAttribute(key, value + ''); } else { domGlobals.console.error('Invalid call to Attr.set. Key ', key, ':: Value ', value, ':: Element ', dom); throw new Error('Attribute value was not simple'); } }; var setAll = function (element, attrs) { var dom = element.dom(); each$1(attrs, function (v, k) { rawSet(dom, k, v); }); }; var clone = function (element) { return foldl(element.dom().attributes, function (acc, attr) { acc[attr.name] = attr.value; return acc; }, {}); }; var isSupported = function (dom) { return dom.style !== undefined && isFunction(dom.style.getPropertyValue); }; var internalSet = function (dom, property, value) { if (!isString(value)) { domGlobals.console.error('Invalid call to CSS.set. Property ', property, ':: Value ', value, ':: Element ', dom); throw new Error('CSS value must be a string: ' + value); } if (isSupported(dom)) { dom.style.setProperty(property, value); } }; var set = function (element, property, value) { var dom = element.dom(); internalSet(dom, property, value); }; var clone$1 = function (original, isDeep) { return Element.fromDom(original.dom().cloneNode(isDeep)); }; var deep = function (original) { return clone$1(original, true); }; var shallowAs = function (original, tag) { var nu = Element.fromTag(tag); var attributes = clone(original); setAll(nu, attributes); return nu; }; var mutate = function (original, tag) { var nu = shallowAs(original, tag); before(original, nu); var children$1 = children(original); append$1(nu, children$1); remove(original); return nu; }; var joinSegment = function (parent, child) { append(parent.item, child.list); }; var joinSegments = function (segments) { for (var i = 1; i < segments.length; i++) { joinSegment(segments[i - 1], segments[i]); } }; var appendSegments = function (head$1, tail) { lift2(last(head$1), head(tail), joinSegment); }; var createSegment = function (scope, listType) { var segment = { list: Element.fromTag(listType, scope), item: Element.fromTag('li', scope) }; append(segment.list, segment.item); return segment; }; var createSegments = function (scope, entry, size) { var segments = []; for (var i = 0; i < size; i++) { segments.push(createSegment(scope, entry.listType)); } return segments; }; var populateSegments = function (segments, entry) { for (var i = 0; i < segments.length - 1; i++) { set(segments[i].item, 'list-style-type', 'none'); } last(segments).each(function (segment) { setAll(segment.list, entry.listAttributes); setAll(segment.item, entry.itemAttributes); append$1(segment.item, entry.content); }); }; var normalizeSegment = function (segment, entry) { if (name(segment.list) !== entry.listType) { segment.list = mutate(segment.list, entry.listType); } setAll(segment.list, entry.listAttributes); }; var createItem = function (scope, attr, content) { var item = Element.fromTag('li', scope); setAll(item, attr); append$1(item, content); return item; }; var appendItem = function (segment, item) { append(segment.list, item); segment.item = item; }; var writeShallow = function (scope, cast, entry) { var newCast = cast.slice(0, entry.depth); last(newCast).each(function (segment) { var item = createItem(scope, entry.itemAttributes, entry.content); appendItem(segment, item); normalizeSegment(segment, entry); }); return newCast; }; var writeDeep = function (scope, cast, entry) { var segments = createSegments(scope, entry, entry.depth - cast.length); joinSegments(segments); populateSegments(segments, entry); appendSegments(cast, segments); return cast.concat(segments); }; var composeList = function (scope, entries) { var cast = foldl(entries, function (cast, entry) { return entry.depth > cast.length ? writeDeep(scope, cast, entry) : writeShallow(scope, cast, entry); }, []); return head(cast).map(function (segment) { return segment.list; }); }; var isList$1 = function (el) { return is$1(el, 'OL,UL'); }; var hasFirstChildList = function (el) { return firstChild(el).map(isList$1).getOr(false); }; var hasLastChildList = function (el) { return lastChild(el).map(isList$1).getOr(false); }; var isIndented = function (entry) { return entry.depth > 0; }; var isSelected = function (entry) { return entry.isSelected; }; var cloneItemContent = function (li) { var children$1 = children(li); var content = hasLastChildList(li) ? children$1.slice(0, -1) : children$1; return map(content, deep); }; var createEntry = function (li, depth, isSelected) { return parent(li).filter(isElement).map(function (list) { return { depth: depth, isSelected: isSelected, content: cloneItemContent(li), itemAttributes: clone(li), listAttributes: clone(list), listType: name(list) }; }); }; var indentEntry = function (indentation, entry) { switch (indentation) { case 'Indent': entry.depth++; break; case 'Outdent': entry.depth--; break; case 'Flatten': entry.depth = 0; } }; var hasOwnProperty = Object.prototype.hasOwnProperty; var shallow = function (old, nu) { return nu; }; var baseMerge = function (merger) { return function () { var objects = new Array(arguments.length); for (var i = 0; i < objects.length; i++) { objects[i] = arguments[i]; } if (objects.length === 0) { throw new Error('Can\'t merge zero objects'); } var ret = {}; for (var j = 0; j < objects.length; j++) { var curObject = objects[j]; for (var key in curObject) { if (hasOwnProperty.call(curObject, key)) { ret[key] = merger(ret[key], curObject[key]); } } } return ret; }; }; var merge = baseMerge(shallow); var cloneListProperties = function (target, source) { target.listType = source.listType; target.listAttributes = merge({}, source.listAttributes); }; var previousSiblingEntry = function (entries, start) { var depth = entries[start].depth; for (var i = start - 1; i >= 0; i--) { if (entries[i].depth === depth) { return Option.some(entries[i]); } if (entries[i].depth < depth) { break; } } return Option.none(); }; var normalizeEntries = function (entries) { each(entries, function (entry, i) { previousSiblingEntry(entries, i).each(function (matchingEntry) { cloneListProperties(entry, matchingEntry); }); }); }; var Cell = function (initial) { var value = initial; var get = function () { return value; }; var set = function (v) { value = v; }; var clone = function () { return Cell(get()); }; return { get: get, set: set, clone: clone }; }; var parseItem = function (depth, itemSelection, selectionState, item) { return firstChild(item).filter(isList$1).fold(function () { itemSelection.each(function (selection) { if (eq(selection.start, item)) { selectionState.set(true); } }); var currentItemEntry = createEntry(item, depth, selectionState.get()); itemSelection.each(function (selection) { if (eq(selection.end, item)) { selectionState.set(false); } }); var childListEntries = lastChild(item).filter(isList$1).map(function (list) { return parseList(depth, itemSelection, selectionState, list); }).getOr([]); return currentItemEntry.toArray().concat(childListEntries); }, function (list) { return parseList(depth, itemSelection, selectionState, list); }); }; var parseList = function (depth, itemSelection, selectionState, list) { return bind(children(list), function (element) { var parser = isList$1(element) ? parseList : parseItem; var newDepth = depth + 1; return parser(newDepth, itemSelection, selectionState, element); }); }; var parseLists = function (lists, itemSelection) { var selectionState = Cell(false); var initialDepth = 0; return map(lists, function (list) { return { sourceList: list, entries: parseList(initialDepth, itemSelection, selectionState, list) }; }); }; var global$8 = tinymce.util.Tools.resolve('tinymce.Env'); var createTextBlock = function (editor, contentNode) { var dom = editor.dom; var blockElements = editor.schema.getBlockElements(); var fragment = dom.createFragment(); var node, textBlock, blockName, hasContentNode; if (editor.settings.forced_root_block) { blockName = editor.settings.forced_root_block; } if (blockName) { textBlock = dom.create(blockName); if (textBlock.tagName === editor.settings.forced_root_block) { dom.setAttribs(textBlock, editor.settings.forced_root_block_attrs); } if (!NodeType.isBlock(contentNode.firstChild, blockElements)) { fragment.appendChild(textBlock); } } if (contentNode) { while (node = contentNode.firstChild) { var nodeName = node.nodeName; if (!hasContentNode && (nodeName !== 'SPAN' || node.getAttribute('data-mce-type') !== 'bookmark')) { hasContentNode = true; } if (NodeType.isBlock(node, blockElements)) { fragment.appendChild(node); textBlock = null; } else { if (blockName) { if (!textBlock) { textBlock = dom.create(blockName); fragment.appendChild(textBlock); } textBlock.appendChild(node); } else { fragment.appendChild(node); } } } } if (!editor.settings.forced_root_block) { fragment.appendChild(dom.create('br')); } else { if (!hasContentNode && (!global$8.ie || global$8.ie > 10)) { textBlock.appendChild(dom.create('br', { 'data-mce-bogus': '1' })); } } return fragment; }; var outdentedComposer = function (editor, entries) { return map(entries, function (entry) { var content = fromElements(entry.content); return Element.fromDom(createTextBlock(editor, content.dom())); }); }; var indentedComposer = function (editor, entries) { normalizeEntries(entries); return composeList(editor.contentDocument, entries).toArray(); }; var composeEntries = function (editor, entries) { return bind(groupBy(entries, isIndented), function (entries) { var groupIsIndented = head(entries).map(isIndented).getOr(false); return groupIsIndented ? indentedComposer(editor, entries) : outdentedComposer(editor, entries); }); }; var indentSelectedEntries = function (entries, indentation) { each(filter(entries, isSelected), function (entry) { return indentEntry(indentation, entry); }); }; var getItemSelection = function (editor) { var selectedListItems = map(Selection.getSelectedListItems(editor), Element.fromDom); return lift2(find(selectedListItems, not(hasFirstChildList)), find(reverse(selectedListItems), not(hasFirstChildList)), function (start, end) { return { start: start, end: end }; }); }; var listsIndentation = function (editor, lists, indentation) { var entrySets = parseLists(lists, getItemSelection(editor)); each(entrySets, function (entrySet) { indentSelectedEntries(entrySet.entries, indentation); before$1(entrySet.sourceList, composeEntries(editor, entrySet.entries)); remove(entrySet.sourceList); }); }; var DOM$1 = global$6.DOM; var splitList = function (editor, ul, li) { var tmpRng, fragment, bookmarks, node, newBlock; var removeAndKeepBookmarks = function (targetNode) { global$5.each(bookmarks, function (node) { targetNode.parentNode.insertBefore(node, li.parentNode); }); DOM$1.remove(targetNode); }; bookmarks = DOM$1.select('span[data-mce-type="bookmark"]', ul); newBlock = createTextBlock(editor, li); tmpRng = DOM$1.createRng(); tmpRng.setStartAfter(li); tmpRng.setEndAfter(ul); fragment = tmpRng.extractContents(); for (node = fragment.firstChild; node; node = node.firstChild) { if (node.nodeName === 'LI' && editor.dom.isEmpty(node)) { DOM$1.remove(node); break; } } if (!editor.dom.isEmpty(fragment)) { DOM$1.insertAfter(fragment, ul); } DOM$1.insertAfter(newBlock, ul); if (NodeType.isEmpty(editor.dom, li.parentNode)) { removeAndKeepBookmarks(li.parentNode); } DOM$1.remove(li); if (NodeType.isEmpty(editor.dom, ul)) { DOM$1.remove(ul); } }; var SplitList = { splitList: splitList }; var outdentDlItem = function (editor, item) { if (is$1(item, 'dd')) { mutate(item, 'dt'); } else if (is$1(item, 'dt')) { parent(item).each(function (dl) { return SplitList.splitList(editor, dl.dom(), item.dom()); }); } }; var indentDlItem = function (item) { if (is$1(item, 'dt')) { mutate(item, 'dd'); } }; var dlIndentation = function (editor, indentation, dlItems) { if (indentation === 'Indent') { each(dlItems, indentDlItem); } else { each(dlItems, function (item) { return outdentDlItem(editor, item); }); } }; var selectionIndentation = function (editor, indentation) { var lists = map(Selection.getSelectedListRoots(editor), Element.fromDom); var dlItems = map(Selection.getSelectedDlItems(editor), Element.fromDom); var isHandled = false; if (lists.length || dlItems.length) { var bookmark = editor.selection.getBookmark(); listsIndentation(editor, lists, indentation); dlIndentation(editor, indentation, dlItems); editor.selection.moveToBookmark(bookmark); editor.selection.setRng(Range.normalizeRange(editor.selection.getRng())); editor.nodeChanged(); isHandled = true; } return isHandled; }; var indentListSelection = function (editor) { return selectionIndentation(editor, 'Indent'); }; var outdentListSelection = function (editor) { return selectionIndentation(editor, 'Outdent'); }; var flattenListSelection = function (editor) { return selectionIndentation(editor, 'Flatten'); }; var updateListStyle = function (dom, el, detail) { var type = detail['list-style-type'] ? detail['list-style-type'] : null; dom.setStyle(el, 'list-style-type', type); }; var setAttribs = function (elm, attrs) { global$5.each(attrs, function (value, key) { elm.setAttribute(key, value); }); }; var updateListAttrs = function (dom, el, detail) { setAttribs(el, detail['list-attributes']); global$5.each(dom.select('li', el), function (li) { setAttribs(li, detail['list-item-attributes']); }); }; var updateListWithDetails = function (dom, el, detail) { updateListStyle(dom, el, detail); updateListAttrs(dom, el, detail); }; var removeStyles = function (dom, element, styles) { global$5.each(styles, function (style) { var _a; return dom.setStyle(element, (_a = {}, _a[style] = '', _a)); }); }; var getEndPointNode = function (editor, rng, start, root) { var container, offset; container = rng[start ? 'startContainer' : 'endContainer']; offset = rng[start ? 'startOffset' : 'endOffset']; if (container.nodeType === 1) { container = container.childNodes[Math.min(offset, container.childNodes.length - 1)] || container; } if (!start && NodeType.isBr(container.nextSibling)) { container = container.nextSibling; } while (container.parentNode !== root) { if (NodeType.isTextBlock(editor, container)) { return container; } if (/^(TD|TH)$/.test(container.parentNode.nodeName)) { return container; } container = container.parentNode; } return container; }; var getSelectedTextBlocks = function (editor, rng, root) { var textBlocks = [], dom = editor.dom; var startNode = getEndPointNode(editor, rng, true, root); var endNode = getEndPointNode(editor, rng, false, root); var block; var siblings = []; for (var node = startNode; node; node = node.nextSibling) { siblings.push(node); if (node === endNode) { break; } } global$5.each(siblings, function (node) { if (NodeType.isTextBlock(editor, node)) { textBlocks.push(node); block = null; return; } if (dom.isBlock(node) || NodeType.isBr(node)) { if (NodeType.isBr(node)) { dom.remove(node); } block = null; return; } var nextSibling = node.nextSibling; if (global$4.isBookmarkNode(node)) { if (NodeType.isTextBlock(editor, nextSibling) || !nextSibling && node.parentNode === root) { block = null; return; } } if (!block) { block = dom.create('p'); node.parentNode.insertBefore(block, node); textBlocks.push(block); } block.appendChild(node); }); return textBlocks; }; var hasCompatibleStyle = function (dom, sib, detail) { var sibStyle = dom.getStyle(sib, 'list-style-type'); var detailStyle = detail ? detail['list-style-type'] : ''; detailStyle = detailStyle === null ? '' : detailStyle; return sibStyle === detailStyle; }; var applyList = function (editor, listName, detail) { if (detail === void 0) { detail = {}; } var rng = editor.selection.getRng(true); var bookmark; var listItemName = 'LI'; var root = Selection.getClosestListRootElm(editor, editor.selection.getStart(true)); var dom = editor.dom; if (dom.getContentEditable(editor.selection.getNode()) === 'false') { return; } listName = listName.toUpperCase(); if (listName === 'DL') { listItemName = 'DT'; } bookmark = Bookmark.createBookmark(rng); global$5.each(getSelectedTextBlocks(editor, rng, root), function (block) { var listBlock, sibling; sibling = block.previousSibling; if (sibling && NodeType.isListNode(sibling) && sibling.nodeName === listName && hasCompatibleStyle(dom, sibling, detail)) { listBlock = sibling; block = dom.rename(block, listItemName); sibling.appendChild(block); } else { listBlock = dom.create(listName); block.parentNode.insertBefore(listBlock, block); listBlock.appendChild(block); block = dom.rename(block, listItemName); } removeStyles(dom, block, [ 'margin', 'margin-right', 'margin-bottom', 'margin-left', 'margin-top', 'padding', 'padding-right', 'padding-bottom', 'padding-left', 'padding-top' ]); updateListWithDetails(dom, listBlock, detail); mergeWithAdjacentLists(editor.dom, listBlock); }); editor.selection.setRng(Bookmark.resolveBookmark(bookmark)); }; var isValidLists = function (list1, list2) { return list1 && list2 && NodeType.isListNode(list1) && list1.nodeName === list2.nodeName; }; var hasSameListStyle = function (dom, list1, list2) { var targetStyle = dom.getStyle(list1, 'list-style-type', true); var style = dom.getStyle(list2, 'list-style-type', true); return targetStyle === style; }; var hasSameClasses = function (elm1, elm2) { return elm1.className === elm2.className; }; var shouldMerge = function (dom, list1, list2) { return isValidLists(list1, list2) && hasSameListStyle(dom, list1, list2) && hasSameClasses(list1, list2); }; var mergeWithAdjacentLists = function (dom, listBlock) { var sibling, node; sibling = listBlock.nextSibling; if (shouldMerge(dom, listBlock, sibling)) { while (node = sibling.firstChild) { listBlock.appendChild(node); } dom.remove(sibling); } sibling = listBlock.previousSibling; if (shouldMerge(dom, listBlock, sibling)) { while (node = sibling.lastChild) { listBlock.insertBefore(node, listBlock.firstChild); } dom.remove(sibling); } }; var updateList = function (dom, list, listName, detail) { if (list.nodeName !== listName) { var newList = dom.rename(list, listName); updateListWithDetails(dom, newList, detail); } else { updateListWithDetails(dom, list, detail); } }; var toggleMultipleLists = function (editor, parentList, lists, listName, detail) { if (parentList.nodeName === listName && !hasListStyleDetail(detail)) { flattenListSelection(editor); } else { var bookmark = Bookmark.createBookmark(editor.selection.getRng(true)); global$5.each([parentList].concat(lists), function (elm) { updateList(editor.dom, elm, listName, detail); }); editor.selection.setRng(Bookmark.resolveBookmark(bookmark)); } }; var hasListStyleDetail = function (detail) { return 'list-style-type' in detail; }; var toggleSingleList = function (editor, parentList, listName, detail) { if (parentList === editor.getBody()) { return; } if (parentList) { if (parentList.nodeName === listName && !hasListStyleDetail(detail)) { flattenListSelection(editor); } else { var bookmark = Bookmark.createBookmark(editor.selection.getRng(true)); updateListWithDetails(editor.dom, parentList, detail); mergeWithAdjacentLists(editor.dom, editor.dom.rename(parentList, listName)); editor.selection.setRng(Bookmark.resolveBookmark(bookmark)); } } else { applyList(editor, listName, detail); } }; var toggleList = function (editor, listName, detail) { var parentList = Selection.getParentList(editor); var selectedSubLists = Selection.getSelectedSubLists(editor); detail = detail ? detail : {}; if (parentList && selectedSubLists.length > 0) { toggleMultipleLists(editor, parentList, selectedSubLists, listName, detail); } else { toggleSingleList(editor, parentList, listName, detail); } }; var ToggleList = { toggleList: toggleList, mergeWithAdjacentLists: mergeWithAdjacentLists }; var DOM$2 = global$6.DOM; var normalizeList = function (dom, ul) { var sibling; var parentNode = ul.parentNode; if (parentNode.nodeName === 'LI' && parentNode.firstChild === ul) { sibling = parentNode.previousSibling; if (sibling && sibling.nodeName === 'LI') { sibling.appendChild(ul); if (NodeType.isEmpty(dom, parentNode)) { DOM$2.remove(parentNode); } } else { DOM$2.setStyle(parentNode, 'listStyleType', 'none'); } } if (NodeType.isListNode(parentNode)) { sibling = parentNode.previousSibling; if (sibling && sibling.nodeName === 'LI') { sibling.appendChild(ul); } } }; var normalizeLists = function (dom, element) { global$5.each(global$5.grep(dom.select('ol,ul', element)), function (ul) { normalizeList(dom, ul); }); }; var NormalizeLists = { normalizeList: normalizeList, normalizeLists: normalizeLists }; var findNextCaretContainer = function (editor, rng, isForward, root) { var node = rng.startContainer; var offset = rng.startOffset; var nonEmptyBlocks, walker; if (node.nodeType === 3 && (isForward ? offset < node.data.length : offset > 0)) { return node; } nonEmptyBlocks = editor.schema.getNonEmptyElements(); if (node.nodeType === 1) { node = global$1.getNode(node, offset); } walker = new global$2(node, root); if (isForward) { if (NodeType.isBogusBr(editor.dom, node)) { walker.next(); } } while (node = walker[isForward ? 'next' : 'prev2']()) { if (node.nodeName === 'LI' && !node.hasChildNodes()) { return node; } if (nonEmptyBlocks[node.nodeName]) { return node; } if (node.nodeType === 3 && node.data.length > 0) { return node; } } }; var hasOnlyOneBlockChild = function (dom, elm) { var childNodes = elm.childNodes; return childNodes.length === 1 && !NodeType.isListNode(childNodes[0]) && dom.isBlock(childNodes[0]); }; var unwrapSingleBlockChild = function (dom, elm) { if (hasOnlyOneBlockChild(dom, elm)) { dom.remove(elm.firstChild, true); } }; var moveChildren = function (dom, fromElm, toElm) { var node, targetElm; targetElm = hasOnlyOneBlockChild(dom, toElm) ? toElm.firstChild : toElm; unwrapSingleBlockChild(dom, fromElm); if (!NodeType.isEmpty(dom, fromElm, true)) { while (node = fromElm.firstChild) { targetElm.appendChild(node); } } }; var mergeLiElements = function (dom, fromElm, toElm) { var node, listNode; var ul = fromElm.parentNode; if (!NodeType.isChildOfBody(dom, fromElm) || !NodeType.isChildOfBody(dom, toElm)) { return; } if (NodeType.isListNode(toElm.lastChild)) { listNode = toElm.lastChild; } if (ul === toElm.lastChild) { if (NodeType.isBr(ul.previousSibling)) { dom.remove(ul.previousSibling); } } node = toElm.lastChild; if (node && NodeType.isBr(node) && fromElm.hasChildNodes()) { dom.remove(node); } if (NodeType.isEmpty(dom, toElm, true)) { dom.$(toElm).empty(); } moveChildren(dom, fromElm, toElm); if (listNode) { toElm.appendChild(listNode); } var contains = contains$1(Element.fromDom(toElm), Element.fromDom(fromElm)); var nestedLists = contains ? dom.getParents(fromElm, NodeType.isListNode, toElm) : []; dom.remove(fromElm); each(nestedLists, function (list) { if (NodeType.isEmpty(dom, list) && list !== dom.getRoot()) { dom.remove(list); } }); }; var mergeIntoEmptyLi = function (editor, fromLi, toLi) { editor.dom.$(toLi).empty(); mergeLiElements(editor.dom, fromLi, toLi); editor.selection.setCursorLocation(toLi); }; var mergeForward = function (editor, rng, fromLi, toLi) { var dom = editor.dom; if (dom.isEmpty(toLi)) { mergeIntoEmptyLi(editor, fromLi, toLi); } else { var bookmark = Bookmark.createBookmark(rng); mergeLiElements(dom, fromLi, toLi); editor.selection.setRng(Bookmark.resolveBookmark(bookmark)); } }; var mergeBackward = function (editor, rng, fromLi, toLi) { var bookmark = Bookmark.createBookmark(rng); mergeLiElements(editor.dom, fromLi, toLi); var resolvedBookmark = Bookmark.resolveBookmark(bookmark); editor.selection.setRng(resolvedBookmark); }; var backspaceDeleteFromListToListCaret = function (editor, isForward) { var dom = editor.dom, selection = editor.selection; var selectionStartElm = selection.getStart(); var root = Selection.getClosestListRootElm(editor, selectionStartElm); var li = dom.getParent(selection.getStart(), 'LI', root); var ul, rng, otherLi; if (li) { ul = li.parentNode; if (ul === editor.getBody() && NodeType.isEmpty(dom, ul)) { return true; } rng = Range.normalizeRange(selection.getRng(true)); otherLi = dom.getParent(findNextCaretContainer(editor, rng, isForward, root), 'LI', root); if (otherLi && otherLi !== li) { if (isForward) { mergeForward(editor, rng, otherLi, li); } else { mergeBackward(editor, rng, li, otherLi); } return true; } else if (!otherLi) { if (!isForward) { flattenListSelection(editor); return true; } } } return false; }; var removeBlock = function (dom, block, root) { var parentBlock = dom.getParent(block.parentNode, dom.isBlock, root); dom.remove(block); if (parentBlock && dom.isEmpty(parentBlock)) { dom.remove(parentBlock); } }; var backspaceDeleteIntoListCaret = function (editor, isForward) { var dom = editor.dom; var selectionStartElm = editor.selection.getStart(); var root = Selection.getClosestListRootElm(editor, selectionStartElm); var block = dom.getParent(selectionStartElm, dom.isBlock, root); if (block && dom.isEmpty(block)) { var rng = Range.normalizeRange(editor.selection.getRng(true)); var otherLi_1 = dom.getParent(findNextCaretContainer(editor, rng, isForward, root), 'LI', root); if (otherLi_1) { editor.undoManager.transact(function () { removeBlock(dom, block, root); ToggleList.mergeWithAdjacentLists(dom, otherLi_1.parentNode); editor.selection.select(otherLi_1, true); editor.selection.collapse(isForward); }); return true; } } return false; }; var backspaceDeleteCaret = function (editor, isForward) { return backspaceDeleteFromListToListCaret(editor, isForward) || backspaceDeleteIntoListCaret(editor, isForward); }; var backspaceDeleteRange = function (editor) { var selectionStartElm = editor.selection.getStart(); var root = Selection.getClosestListRootElm(editor, selectionStartElm); var startListParent = editor.dom.getParent(selectionStartElm, 'LI,DT,DD', root); if (startListParent || Selection.getSelectedListItems(editor).length > 0) { editor.undoManager.transact(function () { editor.execCommand('Delete'); NormalizeLists.normalizeLists(editor.dom, editor.getBody()); }); return true; } return false; }; var backspaceDelete = function (editor, isForward) { return editor.selection.isCollapsed() ? backspaceDeleteCaret(editor, isForward) : backspaceDeleteRange(editor); }; var setup = function (editor) { editor.on('keydown', function (e) { if (e.keyCode === global$3.BACKSPACE) { if (backspaceDelete(editor, false)) { e.preventDefault(); } } else if (e.keyCode === global$3.DELETE) { if (backspaceDelete(editor, true)) { e.preventDefault(); } } }); }; var Delete = { setup: setup, backspaceDelete: backspaceDelete }; var get = function (editor) { return { backspaceDelete: function (isForward) { Delete.backspaceDelete(editor, isForward); } }; }; var Api = { get: get }; var queryListCommandState = function (editor, listName) { return function () { var parentList = editor.dom.getParent(editor.selection.getStart(), 'UL,OL,DL'); return parentList && parentList.nodeName === listName; }; }; var register = function (editor) { editor.on('BeforeExecCommand', function (e) { var cmd = e.command.toLowerCase(); if (cmd === 'indent') { indentListSelection(editor); } else if (cmd === 'outdent') { outdentListSelection(editor); } }); editor.addCommand('InsertUnorderedList', function (ui, detail) { ToggleList.toggleList(editor, 'UL', detail); }); editor.addCommand('InsertOrderedList', function (ui, detail) { ToggleList.toggleList(editor, 'OL', detail); }); editor.addCommand('InsertDefinitionList', function (ui, detail) { ToggleList.toggleList(editor, 'DL', detail); }); editor.addCommand('RemoveList', function () { flattenListSelection(editor); }); editor.addQueryStateHandler('InsertUnorderedList', queryListCommandState(editor, 'UL')); editor.addQueryStateHandler('InsertOrderedList', queryListCommandState(editor, 'OL')); editor.addQueryStateHandler('InsertDefinitionList', queryListCommandState(editor, 'DL')); }; var Commands = { register: register }; var shouldIndentOnTab = function (editor) { return editor.getParam('lists_indent_on_tab', true); }; var Settings = { shouldIndentOnTab: shouldIndentOnTab }; var setupTabKey = function (editor) { editor.on('keydown', function (e) { if (e.keyCode !== global$3.TAB || global$3.metaKeyPressed(e)) { return; } editor.undoManager.transact(function () { if (e.shiftKey ? outdentListSelection(editor) : indentListSelection(editor)) { e.preventDefault(); } }); }); }; var setup$1 = function (editor) { if (Settings.shouldIndentOnTab(editor)) { setupTabKey(editor); } Delete.setup(editor); }; var Keyboard = { setup: setup$1 }; var findIndex = function (list, predicate) { for (var index = 0; index < list.length; index++) { var element = list[index]; if (predicate(element)) { return index; } } return -1; }; var listState = function (editor, listName) { return function (e) { var ctrl = e.control; editor.on('NodeChange', function (e) { var tableCellIndex = findIndex(e.parents, NodeType.isTableCellNode); var parents = tableCellIndex !== -1 ? e.parents.slice(0, tableCellIndex) : e.parents; var lists = global$5.grep(parents, NodeType.isListNode); ctrl.active(lists.length > 0 && lists[0].nodeName === listName); }); }; }; var register$1 = function (editor) { var hasPlugin = function (editor, plugin) { var plugins = editor.settings.plugins ? editor.settings.plugins : ''; return global$5.inArray(plugins.split(/[ ,]/), plugin) !== -1; }; if (!hasPlugin(editor, 'advlist')) { editor.addButton('numlist', { active: false, title: 'Numbered list', cmd: 'InsertOrderedList', onPostRender: listState(editor, 'OL') }); editor.addButton('bullist', { active: false, title: 'Bullet list', cmd: 'InsertUnorderedList', onPostRender: listState(editor, 'UL') }); } editor.addButton('indent', { icon: 'indent', title: 'Increase indent', cmd: 'Indent' }); }; var Buttons = { register: register$1 }; global.add('lists', function (editor) { Keyboard.setup(editor); Buttons.register(editor); Commands.register(editor); return Api.get(editor); }); function Plugin () { } return Plugin; }(window)); })(); lists/plugin.min.js000064400000064530151222602270010327 0ustar00!function(u){"use strict";var e,n,t,r,o,i,s,a,c,f=tinymce.util.Tools.resolve("tinymce.PluginManager"),d=tinymce.util.Tools.resolve("tinymce.dom.RangeUtils"),l=tinymce.util.Tools.resolve("tinymce.dom.TreeWalker"),m=tinymce.util.Tools.resolve("tinymce.util.VK"),p=tinymce.util.Tools.resolve("tinymce.dom.BookmarkManager"),v=tinymce.util.Tools.resolve("tinymce.util.Tools"),g=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),h=function(e){return e&&"BR"===e.nodeName},y=function(e){return e&&3===e.nodeType},N=function(e){return e&&/^(OL|UL|DL)$/.test(e.nodeName)},S=function(e){return e&&/^(OL|UL)$/.test(e.nodeName)},C=function(e){return e&&/^(DT|DD)$/.test(e.nodeName)},O=function(e){return e&&/^(LI|DT|DD)$/.test(e.nodeName)},b=function(e){return e&&/^(TH|TD)$/.test(e.nodeName)},T=h,E=function(e,n){return n&&!!e.schema.getTextBlockElements()[n.nodeName]},L=function(e,n){return e&&e.nodeName in n},D=function(e,n){return!!h(n)&&!(!e.isBlock(n.nextSibling)||h(n.previousSibling))},w=function(e,n,t){var r=e.isEmpty(n);return!(t&&0=e.childNodes.length?t.data.length:0}:t.previousSibling&&y(t.previousSibling)?{container:t.previousSibling,offset:t.previousSibling.data.length}:t.nextSibling&&y(t.nextSibling)?{container:t.nextSibling,offset:0}:{container:e,offset:n}},x=function(e){var n=e.cloneRange(),t=A(e.startContainer,e.startOffset);n.setStart(t.container,t.offset);var r=A(e.endContainer,e.endOffset);return n.setEnd(r.container,r.offset),n},R=g.DOM,I=function(o){var i={},e=function(e){var n,t,r;t=o[e?"startContainer":"endContainer"],r=o[e?"startOffset":"endOffset"],1===t.nodeType&&(n=R.create("span",{"data-mce-type":"bookmark"}),t.hasChildNodes()?(r=Math.min(r,t.childNodes.length-1),e?t.insertBefore(n,t.childNodes[r]):R.insertAfter(n,t.childNodes[r])):t.appendChild(n),t=n,r=0),i[e?"startContainer":"endContainer"]=t,i[e?"startOffset":"endOffset"]=r};return e(!0),o.collapsed||e(),i},_=function(o){function e(e){var n,t,r;n=r=o[e?"startContainer":"endContainer"],t=o[e?"startOffset":"endOffset"],n&&(1===n.nodeType&&(t=function(e){for(var n=e.parentNode.firstChild,t=0;n;){if(n===e)return t;1===n.nodeType&&"bookmark"===n.getAttribute("data-mce-type")||t++,n=n.nextSibling}return-1}(n),n=n.parentNode,R.remove(r),!n.hasChildNodes()&&R.isBlock(n)&&n.appendChild(R.create("br"))),o[e?"startContainer":"endContainer"]=n,o[e?"startOffset":"endOffset"]=t)}e(!0),e();var n=R.createRng();return n.setStart(o.startContainer,o.startOffset),o.endContainer&&n.setEnd(o.endContainer,o.endOffset),x(n)},B=function(){},P=function(e){return function(){return e}},M=function(t){return function(){for(var e=[],n=0;ne.length?Sn(t,e,n):Nn(t,e,n)},[]),oe(o).map(function(e){return e.list})).toArray();var t,r,o},Pn=function(e){var n,t,r=J(ve.getSelectedListItems(e),ye.fromDom);return Ne(te(r,M(On)),te((n=r,(t=Y.call(n,0)).reverse(),t),M(On)),function(e,n){return{start:e,end:n}})},Mn=function(s,e,a){var n,t,r,o=(n=e,t=Pn(s),r=kn(!1),J(n,function(e){return{sourceList:e,entries:xn(0,t,r,e)}}));Z(o,function(e){var n,t,r,o,i,u;n=e.entries,t=a,Z(ee(n,Tn),function(e){return function(e,n){switch(e){case"Indent":n.depth++;break;case"Outdent":n.depth--;break;case"Flatten":n.depth=0}}(t,e)}),r=e.sourceList,i=s,u=e.entries,o=re(function(e,n){if(0===e.length)return[];for(var t=n(e[0]),r=[],o=[],i=0,u=e.length;i 0) { return global$2.extend({}, pattern[0], { url: getUrl(pattern[0], url) }); } else { return null; } }; var getIframeHtml = function (data) { var allowFullscreen = data.allowFullscreen ? ' allowFullscreen="1"' : ''; return ''; }; var getFlashHtml = function (data) { var html = ''; if (data.poster) { html += ''; } html += ''; return html; }; var getAudioHtml = function (data, audioTemplateCallback) { if (audioTemplateCallback) { return audioTemplateCallback(data); } else { return ''; } }; var getVideoHtml = function (data, videoTemplateCallback) { if (videoTemplateCallback) { return videoTemplateCallback(data); } else { return ''; } }; var getScriptHtml = function (data) { return ''; }; var dataToHtml = function (editor, dataIn) { var data = global$2.extend({}, dataIn); if (!data.source1) { global$2.extend(data, HtmlToData.htmlToData(Settings.getScripts(editor), data.embed)); if (!data.source1) { return ''; } } if (!data.source2) { data.source2 = ''; } if (!data.poster) { data.poster = ''; } data.source1 = editor.convertURL(data.source1, 'source'); data.source2 = editor.convertURL(data.source2, 'source'); data.source1mime = Mime.guess(data.source1); data.source2mime = Mime.guess(data.source2); data.poster = editor.convertURL(data.poster, 'poster'); var pattern = matchPattern(data.source1); if (pattern) { data.source1 = pattern.url; data.type = pattern.type; data.allowFullscreen = pattern.allowFullscreen; data.width = data.width || pattern.w; data.height = data.height || pattern.h; } if (data.embed) { return UpdateHtml.updateHtml(data.embed, data, true); } else { var videoScript = VideoScript.getVideoScriptMatch(Settings.getScripts(editor), data.source1); if (videoScript) { data.type = 'script'; data.width = videoScript.width; data.height = videoScript.height; } var audioTemplateCallback = Settings.getAudioTemplateCallback(editor); var videoTemplateCallback = Settings.getVideoTemplateCallback(editor); data.width = data.width || 300; data.height = data.height || 150; global$2.each(data, function (value, key) { data[key] = editor.dom.encode(value); }); if (data.type === 'iframe') { return getIframeHtml(data); } else if (data.source1mime === 'application/x-shockwave-flash') { return getFlashHtml(data); } else if (data.source1mime.indexOf('audio') !== -1) { return getAudioHtml(data, audioTemplateCallback); } else if (data.type === 'script') { return getScriptHtml(data); } else { return getVideoHtml(data, videoTemplateCallback); } } }; var DataToHtml = { dataToHtml: dataToHtml }; var cache = {}; var embedPromise = function (data, dataToHtml, handler) { return new global$5(function (res, rej) { var wrappedResolve = function (response) { if (response.html) { cache[data.source1] = response; } return res({ url: data.source1, html: response.html ? response.html : dataToHtml(data) }); }; if (cache[data.source1]) { wrappedResolve(cache[data.source1]); } else { handler({ url: data.source1 }, wrappedResolve, rej); } }); }; var defaultPromise = function (data, dataToHtml) { return new global$5(function (res) { res({ html: dataToHtml(data), url: data.source1 }); }); }; var loadedData = function (editor) { return function (data) { return DataToHtml.dataToHtml(editor, data); }; }; var getEmbedHtml = function (editor, data) { var embedHandler = Settings.getUrlResolver(editor); return embedHandler ? embedPromise(data, loadedData(editor), embedHandler) : defaultPromise(data, loadedData(editor)); }; var isCached = function (url) { return cache.hasOwnProperty(url); }; var Service = { getEmbedHtml: getEmbedHtml, isCached: isCached }; var trimPx$1 = function (value) { return value.replace(/px$/, ''); }; var addPx$1 = function (value) { return /^[0-9.]+$/.test(value) ? value + 'px' : value; }; var getSize = function (name) { return function (elm) { return elm ? trimPx$1(elm.style[name]) : ''; }; }; var setSize = function (name) { return function (elm, value) { if (elm) { elm.style[name] = addPx$1(value); } }; }; var Size = { getMaxWidth: getSize('maxWidth'), getMaxHeight: getSize('maxHeight'), setMaxWidth: setSize('maxWidth'), setMaxHeight: setSize('maxHeight') }; var doSyncSize = function (widthCtrl, heightCtrl) { widthCtrl.state.set('oldVal', widthCtrl.value()); heightCtrl.state.set('oldVal', heightCtrl.value()); }; var doSizeControls = function (win, f) { var widthCtrl = win.find('#width')[0]; var heightCtrl = win.find('#height')[0]; var constrained = win.find('#constrain')[0]; if (widthCtrl && heightCtrl && constrained) { f(widthCtrl, heightCtrl, constrained.checked()); } }; var doUpdateSize = function (widthCtrl, heightCtrl, isContrained) { var oldWidth = widthCtrl.state.get('oldVal'); var oldHeight = heightCtrl.state.get('oldVal'); var newWidth = widthCtrl.value(); var newHeight = heightCtrl.value(); if (isContrained && oldWidth && oldHeight && newWidth && newHeight) { if (newWidth !== oldWidth) { newHeight = Math.round(newWidth / oldWidth * newHeight); if (!isNaN(newHeight)) { heightCtrl.value(newHeight); } } else { newWidth = Math.round(newHeight / oldHeight * newWidth); if (!isNaN(newWidth)) { widthCtrl.value(newWidth); } } } doSyncSize(widthCtrl, heightCtrl); }; var syncSize = function (win) { doSizeControls(win, doSyncSize); }; var updateSize = function (win) { doSizeControls(win, doUpdateSize); }; var createUi = function (onChange) { var recalcSize = function () { onChange(function (win) { updateSize(win); }); }; return { type: 'container', label: 'Dimensions', layout: 'flex', align: 'center', spacing: 5, items: [ { name: 'width', type: 'textbox', maxLength: 5, size: 5, onchange: recalcSize, ariaLabel: 'Width' }, { type: 'label', text: 'x' }, { name: 'height', type: 'textbox', maxLength: 5, size: 5, onchange: recalcSize, ariaLabel: 'Height' }, { name: 'constrain', type: 'checkbox', checked: true, text: 'Constrain proportions' } ] }; }; var SizeManager = { createUi: createUi, syncSize: syncSize, updateSize: updateSize }; var embedChange = global$1.ie && global$1.ie <= 8 ? 'onChange' : 'onInput'; var handleError = function (editor) { return function (error) { var errorMessage = error && error.msg ? 'Media embed handler error: ' + error.msg : 'Media embed handler threw unknown error.'; editor.notificationManager.open({ type: 'error', text: errorMessage }); }; }; var getData = function (editor) { var element = editor.selection.getNode(); var dataEmbed = element.getAttribute('data-ephox-embed-iri'); if (dataEmbed) { return { 'source1': dataEmbed, 'data-ephox-embed-iri': dataEmbed, 'width': Size.getMaxWidth(element), 'height': Size.getMaxHeight(element) }; } return element.getAttribute('data-mce-object') ? HtmlToData.htmlToData(Settings.getScripts(editor), editor.serializer.serialize(element, { selection: true })) : {}; }; var getSource = function (editor) { var elm = editor.selection.getNode(); if (elm.getAttribute('data-mce-object') || elm.getAttribute('data-ephox-embed-iri')) { return editor.selection.getContent(); } }; var addEmbedHtml = function (win, editor) { return function (response) { var html = response.html; var embed = win.find('#embed')[0]; var data = global$2.extend(HtmlToData.htmlToData(Settings.getScripts(editor), html), { source1: response.url }); win.fromJSON(data); if (embed) { embed.value(html); SizeManager.updateSize(win); } }; }; var selectPlaceholder = function (editor, beforeObjects) { var i; var y; var afterObjects = editor.dom.select('img[data-mce-object]'); for (i = 0; i < beforeObjects.length; i++) { for (y = afterObjects.length - 1; y >= 0; y--) { if (beforeObjects[i] === afterObjects[y]) { afterObjects.splice(y, 1); } } } editor.selection.select(afterObjects[0]); }; var handleInsert = function (editor, html) { var beforeObjects = editor.dom.select('img[data-mce-object]'); editor.insertContent(html); selectPlaceholder(editor, beforeObjects); editor.nodeChanged(); }; var submitForm = function (win, editor) { var data = win.toJSON(); data.embed = UpdateHtml.updateHtml(data.embed, data); if (data.embed && Service.isCached(data.source1)) { handleInsert(editor, data.embed); } else { Service.getEmbedHtml(editor, data).then(function (response) { handleInsert(editor, response.html); }).catch(handleError(editor)); } }; var populateMeta = function (win, meta) { global$2.each(meta, function (value, key) { win.find('#' + key).value(value); }); }; var showDialog = function (editor) { var win; var data; var generalFormItems = [{ name: 'source1', type: 'filepicker', filetype: 'media', size: 40, autofocus: true, label: 'Source', onpaste: function () { setTimeout(function () { Service.getEmbedHtml(editor, win.toJSON()).then(addEmbedHtml(win, editor)).catch(handleError(editor)); }, 1); }, onchange: function (e) { Service.getEmbedHtml(editor, win.toJSON()).then(addEmbedHtml(win, editor)).catch(handleError(editor)); populateMeta(win, e.meta); }, onbeforecall: function (e) { e.meta = win.toJSON(); } }]; var advancedFormItems = []; var reserialise = function (update) { update(win); data = win.toJSON(); win.find('#embed').value(UpdateHtml.updateHtml(data.embed, data)); }; if (Settings.hasAltSource(editor)) { advancedFormItems.push({ name: 'source2', type: 'filepicker', filetype: 'media', size: 40, label: 'Alternative source' }); } if (Settings.hasPoster(editor)) { advancedFormItems.push({ name: 'poster', type: 'filepicker', filetype: 'image', size: 40, label: 'Poster' }); } if (Settings.hasDimensions(editor)) { var control = SizeManager.createUi(reserialise); generalFormItems.push(control); } data = getData(editor); var embedTextBox = { id: 'mcemediasource', type: 'textbox', flex: 1, name: 'embed', value: getSource(editor), multiline: true, rows: 5, label: 'Source' }; var updateValueOnChange = function () { data = global$2.extend({}, HtmlToData.htmlToData(Settings.getScripts(editor), this.value())); this.parent().parent().fromJSON(data); }; embedTextBox[embedChange] = updateValueOnChange; var body = [ { title: 'General', type: 'form', items: generalFormItems }, { title: 'Embed', type: 'container', layout: 'flex', direction: 'column', align: 'stretch', padding: 10, spacing: 10, items: [ { type: 'label', text: 'Paste your embed code below:', forId: 'mcemediasource' }, embedTextBox ] } ]; if (advancedFormItems.length > 0) { body.push({ title: 'Advanced', type: 'form', items: advancedFormItems }); } win = editor.windowManager.open({ title: 'Insert/edit media', data: data, bodyType: 'tabpanel', body: body, onSubmit: function () { SizeManager.updateSize(win); submitForm(win, editor); } }); SizeManager.syncSize(win); }; var Dialog = { showDialog: showDialog }; var get$1 = function (editor) { var showDialog = function () { Dialog.showDialog(editor); }; return { showDialog: showDialog }; }; var Api = { get: get$1 }; var register = function (editor) { var showDialog = function () { Dialog.showDialog(editor); }; editor.addCommand('mceMedia', showDialog); }; var Commands = { register: register }; var global$8 = tinymce.util.Tools.resolve('tinymce.html.Node'); var sanitize = function (editor, html) { if (Settings.shouldFilterHtml(editor) === false) { return html; } var writer = global$7(); var blocked; global$4({ validate: false, allow_conditional_comments: false, special: 'script,noscript', comment: function (text) { writer.comment(text); }, cdata: function (text) { writer.cdata(text); }, text: function (text, raw) { writer.text(text, raw); }, start: function (name, attrs, empty) { blocked = true; if (name === 'script' || name === 'noscript' || name === 'svg') { return; } for (var i = attrs.length - 1; i >= 0; i--) { var attrName = attrs[i].name; if (attrName.indexOf('on') === 0) { delete attrs.map[attrName]; attrs.splice(i, 1); } if (attrName === 'style') { attrs[i].value = editor.dom.serializeStyle(editor.dom.parseStyle(attrs[i].value), name); } } writer.start(name, attrs, empty); blocked = false; }, end: function (name) { if (blocked) { return; } writer.end(name); } }, global$6({})).parse(html); return writer.getContent(); }; var Sanitize = { sanitize: sanitize }; var createPlaceholderNode = function (editor, node) { var placeHolder; var name = node.name; placeHolder = new global$8('img', 1); placeHolder.shortEnded = true; retainAttributesAndInnerHtml(editor, node, placeHolder); placeHolder.attr({ 'width': node.attr('width') || '300', 'height': node.attr('height') || (name === 'audio' ? '30' : '150'), 'style': node.attr('style'), 'src': global$1.transparentSrc, 'data-mce-object': name, 'class': 'mce-object mce-object-' + name }); return placeHolder; }; var createPreviewIframeNode = function (editor, node) { var previewWrapper; var previewNode; var shimNode; var name = node.name; previewWrapper = new global$8('span', 1); previewWrapper.attr({ 'contentEditable': 'false', 'style': node.attr('style'), 'data-mce-object': name, 'class': 'mce-preview-object mce-object-' + name }); retainAttributesAndInnerHtml(editor, node, previewWrapper); previewNode = new global$8(name, 1); previewNode.attr({ src: node.attr('src'), allowfullscreen: node.attr('allowfullscreen'), style: node.attr('style'), class: node.attr('class'), width: node.attr('width'), height: node.attr('height'), frameborder: '0' }); shimNode = new global$8('span', 1); shimNode.attr('class', 'mce-shim'); previewWrapper.append(previewNode); previewWrapper.append(shimNode); return previewWrapper; }; var retainAttributesAndInnerHtml = function (editor, sourceNode, targetNode) { var attrName; var attrValue; var attribs; var ai; var innerHtml; attribs = sourceNode.attributes; ai = attribs.length; while (ai--) { attrName = attribs[ai].name; attrValue = attribs[ai].value; if (attrName !== 'width' && attrName !== 'height' && attrName !== 'style') { if (attrName === 'data' || attrName === 'src') { attrValue = editor.convertURL(attrValue, attrName); } targetNode.attr('data-mce-p-' + attrName, attrValue); } } innerHtml = sourceNode.firstChild && sourceNode.firstChild.value; if (innerHtml) { targetNode.attr('data-mce-html', escape(Sanitize.sanitize(editor, innerHtml))); targetNode.firstChild = null; } }; var isWithinEphoxEmbed = function (node) { while (node = node.parent) { if (node.attr('data-ephox-embed-iri')) { return true; } } return false; }; var placeHolderConverter = function (editor) { return function (nodes) { var i = nodes.length; var node; var videoScript; while (i--) { node = nodes[i]; if (!node.parent) { continue; } if (node.parent.attr('data-mce-object')) { continue; } if (node.name === 'script') { videoScript = VideoScript.getVideoScriptMatch(Settings.getScripts(editor), node.attr('src')); if (!videoScript) { continue; } } if (videoScript) { if (videoScript.width) { node.attr('width', videoScript.width.toString()); } if (videoScript.height) { node.attr('height', videoScript.height.toString()); } } if (node.name === 'iframe' && Settings.hasLiveEmbeds(editor) && global$1.ceFalse) { if (!isWithinEphoxEmbed(node)) { node.replace(createPreviewIframeNode(editor, node)); } } else { if (!isWithinEphoxEmbed(node)) { node.replace(createPlaceholderNode(editor, node)); } } } }; }; var Nodes = { createPreviewIframeNode: createPreviewIframeNode, createPlaceholderNode: createPlaceholderNode, placeHolderConverter: placeHolderConverter }; var setup = function (editor) { editor.on('preInit', function () { var specialElements = editor.schema.getSpecialElements(); global$2.each('video audio iframe object'.split(' '), function (name) { specialElements[name] = new RegExp(']*>', 'gi'); }); var boolAttrs = editor.schema.getBoolAttrs(); global$2.each('webkitallowfullscreen mozallowfullscreen allowfullscreen'.split(' '), function (name) { boolAttrs[name] = {}; }); editor.parser.addNodeFilter('iframe,video,audio,object,embed,script', Nodes.placeHolderConverter(editor)); editor.serializer.addAttributeFilter('data-mce-object', function (nodes, name) { var i = nodes.length; var node; var realElm; var ai; var attribs; var innerHtml; var innerNode; var realElmName; var className; while (i--) { node = nodes[i]; if (!node.parent) { continue; } realElmName = node.attr(name); realElm = new global$8(realElmName, 1); if (realElmName !== 'audio' && realElmName !== 'script') { className = node.attr('class'); if (className && className.indexOf('mce-preview-object') !== -1) { realElm.attr({ width: node.firstChild.attr('width'), height: node.firstChild.attr('height') }); } else { realElm.attr({ width: node.attr('width'), height: node.attr('height') }); } } realElm.attr({ style: node.attr('style') }); attribs = node.attributes; ai = attribs.length; while (ai--) { var attrName = attribs[ai].name; if (attrName.indexOf('data-mce-p-') === 0) { realElm.attr(attrName.substr(11), attribs[ai].value); } } if (realElmName === 'script') { realElm.attr('type', 'text/javascript'); } innerHtml = node.attr('data-mce-html'); if (innerHtml) { innerNode = new global$8('#text', 3); innerNode.raw = true; innerNode.value = Sanitize.sanitize(editor, unescape(innerHtml)); realElm.append(innerNode); } node.replace(realElm); } }); }); editor.on('setContent', function () { editor.$('span.mce-preview-object').each(function (index, elm) { var $elm = editor.$(elm); if ($elm.find('span.mce-shim', elm).length === 0) { $elm.append(''); } }); }); }; var FilterContent = { setup: setup }; var setup$1 = function (editor) { editor.on('ResolveName', function (e) { var name; if (e.target.nodeType === 1 && (name = e.target.getAttribute('data-mce-object'))) { e.name = name; } }); }; var ResolveName = { setup: setup$1 }; var setup$2 = function (editor) { editor.on('click keyup', function () { var selectedNode = editor.selection.getNode(); if (selectedNode && editor.dom.hasClass(selectedNode, 'mce-preview-object')) { if (editor.dom.getAttrib(selectedNode, 'data-mce-selected')) { selectedNode.setAttribute('data-mce-selected', '2'); } } }); editor.on('ObjectSelected', function (e) { var objectType = e.target.getAttribute('data-mce-object'); if (objectType === 'audio' || objectType === 'script') { e.preventDefault(); } }); editor.on('objectResized', function (e) { var target = e.target; var html; if (target.getAttribute('data-mce-object')) { html = target.getAttribute('data-mce-html'); if (html) { html = unescape(html); target.setAttribute('data-mce-html', escape(UpdateHtml.updateHtml(html, { width: e.width, height: e.height }))); } } }); }; var Selection = { setup: setup$2 }; var register$1 = function (editor) { editor.addButton('media', { tooltip: 'Insert/edit media', cmd: 'mceMedia', stateSelector: [ 'img[data-mce-object]', 'span[data-mce-object]', 'div[data-ephox-embed-iri]' ] }); editor.addMenuItem('media', { icon: 'media', text: 'Media', cmd: 'mceMedia', context: 'insert', prependToContext: true }); }; var Buttons = { register: register$1 }; global.add('media', function (editor) { Commands.register(editor); Buttons.register(editor); ResolveName.setup(editor); FilterContent.setup(editor); Selection.setup(editor); return Api.get(editor); }); function Plugin () { } return Plugin; }()); })(); media/plugin.min.js000064400000040300151222602270010235 0ustar00!function(){"use strict";var e,t,r,n,i=tinymce.util.Tools.resolve("tinymce.PluginManager"),o=tinymce.util.Tools.resolve("tinymce.Env"),v=tinymce.util.Tools.resolve("tinymce.util.Tools"),w=function(e){return e.getParam("media_scripts")},b=function(e){return e.getParam("audio_template_callback")},y=function(e){return e.getParam("video_template_callback")},a=function(e){return e.getParam("media_live_embeds",!0)},u=function(e){return e.getParam("media_filter_html",!0)},s=function(e){return e.getParam("media_url_resolver")},m=function(e){return e.getParam("media_alt_source",!0)},d=function(e){return e.getParam("media_poster",!0)},h=function(e){return e.getParam("media_dimensions",!0)},f=function(e){var t=e,r=function(){return t};return{get:r,set:function(e){t=e},clone:function(){return f(r())}}},c=function(){},l=function(e){return function(){return e}},p=l(!1),g=l(!0),x=function(){return O},O=(e=function(e){return e.isNone()},n={fold:function(e,t){return e()},is:p,isSome:p,isNone:g,getOr:r=function(e){return e},getOrThunk:t=function(e){return e()},getOrDie:function(e){throw new Error(e||"error: getOrDie called on none.")},getOrNull:l(null),getOrUndefined:l(undefined),or:r,orThunk:t,map:x,each:c,bind:x,exists:p,forall:g,filter:x,equals:e,equals_:e,toArray:function(){return[]},toString:l("none()")},Object.freeze&&Object.freeze(n),n),j=function(r){var e=l(r),t=function(){return i},n=function(e){return e(r)},i={fold:function(e,t){return t(r)},is:function(e){return r===e},isSome:g,isNone:p,getOr:e,getOrThunk:e,getOrDie:e,getOrNull:e,getOrUndefined:e,or:t,orThunk:t,map:function(e){return j(e(r))},each:function(e){e(r)},bind:n,exists:n,forall:n,filter:function(e){return e(r)?i:O},toArray:function(){return[r]},toString:function(){return"some("+r+")"},equals:function(e){return e.is(r)},equals_:function(e,t){return e.fold(p,function(e){return t(r,e)})}};return i},_=x,S=function(e){return null===e||e===undefined?O:j(e)},k=Object.hasOwnProperty,N=function(e,t){return M(e,t)?S(e[t]):_()},M=function(e,t){return k.call(e,t)},T=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),z=tinymce.util.Tools.resolve("tinymce.html.SaxParser"),A=function(e,t){if(e)for(var r=0;r"):"application/x-shockwave-flash"===n.source1mime?(d='',m.poster&&(d+=''),d+=""):-1!==n.source1mime.indexOf("audio")?(s=n,(l=p)?l(s):'"):"script"===n.type?'
'; echo '
'; echo '
'; echo '
'; } /** * Returns whether or not the given Post ID was built with Divi. * * @since 4.1.7 * * @param int $postId The Post ID. * @return boolean Whether or not the Post was built with Divi. */ public function isBuiltWith( $postId ) { if ( ! function_exists( 'et_pb_is_pagebuilder_used' ) ) { return false; } return et_pb_is_pagebuilder_used( $postId ); } /** * Returns the Divi edit url for the given Post ID. * * @since 4.3.1 * * @param int $postId The Post ID. * @return string The Edit URL. */ public function getEditUrl( $postId ) { if ( ! function_exists( 'et_fb_get_vb_url' ) ) { return ''; } $isDiviLibrary = 'et_pb_layout' === get_post_type( $postId ); $editUrl = $isDiviLibrary ? get_edit_post_link( $postId, 'raw' ) : get_permalink( $postId ); if ( et_pb_is_pagebuilder_used( $postId ) ) { $editUrl = et_fb_get_vb_url( $editUrl ); } else { if ( ! et_pb_is_allowed( 'divi_builder_control' ) ) { // Prevent link when user lacks `Toggle Divi Builder` capability. return ''; } $editUrl = add_query_arg( [ 'et_fb_activation_nonce' => wp_create_nonce( 'et_fb_activation_nonce_' . $postId ) ], $editUrl ); } return $editUrl; } /** * Checks whether or not we should prevent the date from being modified. * * @since 4.5.2 * * @param int $postId The Post ID. * @return bool Whether or not we should prevent the date from being modified. */ public function limitModifiedDate( $postId ) { // This method is supposed to be used in the `wp_ajax_et_fb_ajax_save` action. if ( empty( $_REQUEST['et_fb_save_nonce'] ) || ! wp_verify_nonce( wp_unslash( $_REQUEST['et_fb_save_nonce'] ), 'et_fb_save_nonce' ) ) { return false; } $editorPostId = ! empty( $_REQUEST['post_id'] ) ? intval( $_REQUEST['post_id'] ) : 0; if ( $editorPostId !== $postId ) { return false; } return ! empty( $_REQUEST['options']['conditional_tags']['aioseo_limit_modified_date'] ); } }all-in-one-seo-pack/app/Common/Standalone/PageBuilders/Elementor.php000064400000012571151222735770021331 0ustar00postSettings->canAddPostSettingsMetabox( get_post_type( $this->getPostId() ) ) ) { return; } if ( ! did_action( 'elementor/init' ) ) { add_action( 'elementor/init', [ $this, 'addPanelTab' ] ); } else { $this->addPanelTab(); } add_action( 'elementor/editor/before_enqueue_scripts', [ $this, 'enqueue' ] ); add_action( 'elementor/documents/register_controls', [ $this, 'registerDocumentControls' ] ); add_action( 'elementor/editor/footer', [ $this, 'addContainers' ] ); // Add the SEO tab to the main Elementor panel. add_action( 'elementor/editor/footer', [ $this, 'startCapturing' ], 0 ); add_action( 'elementor/editor/footer', [ $this, 'endCapturing' ], 999 ); } /** * Start capturing buffer. * * @since 4.3.5 * * @return void */ public function startCapturing() { ob_start(); } /** * End capturing buffer and add button. * This is a hack to add the SEO tab to the main Elementor panel. * We need to do this because Elementor doesn't provide a filter to add tabs to the main panel. * * @since 4.3.5 * * @return void */ public function endCapturing() { $output = ob_get_clean(); $search = '/(
.*<\/div>)/m'; $replace = '${1}
SEO
'; echo preg_replace( $search, $replace, $output ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } /** * Add the AIOSEO Panel Tab on Elementor. * * @since 4.1.7 * * @return void */ public function addPanelTab() { ControlsManager::add_tab( 'aioseo', AIOSEO_PLUGIN_SHORT_NAME ); } /** * Register the Elementor Document Controls. * * @since 4.1.7 * * @return void */ public function registerDocumentControls( $document ) { // PageBase is the base class for documents like `post` `page` and etc. if ( ! $document instanceof PageBase || ! $document::get_property( 'has_elements' ) ) { return; } // This is needed to get the tab to appear, but will be overwritten in the JavaScript. $document->start_controls_section( 'aioseo_section', [ 'label' => AIOSEO_PLUGIN_SHORT_NAME, 'tab' => 'aioseo', ] ); $document->end_controls_section(); } /** * Returns whether or not the given Post ID was built with Elementor. * * @since 4.1.7 * * @param int $postId The Post ID. * @return boolean Whether or not the Post was built with Elementor. */ public function isBuiltWith( $postId ) { $document = $this->getElementorDocument( $postId ); if ( ! $document ) { return false; } return $document->is_built_with_elementor(); } /** * Returns the Elementor edit url for the given Post ID. * * @since 4.3.1 * * @param int $postId The Post ID. * @return string The Edit URL. */ public function getEditUrl( $postId ) { $document = $this->getElementorDocument( $postId ); if ( ! $document || ! $document->is_editable_by_current_user() ) { return ''; } return esc_url( $document->get_edit_url() ); } /** * Add the containers to mount our panel. * * @since 4.1.9 * * @return void */ public function addContainers() { echo '
'; } /** * Returns the Elementor Document instance for the given Post ID. * * @since 4.3.5 * * @param int $postId The Post ID. * @return object The Elementor Document instance. */ private function getElementorDocument( $postId ) { if ( ! class_exists( '\Elementor\Plugin' ) || ! is_object( \Elementor\Plugin::instance()->documents ) || ! method_exists( \Elementor\Plugin::instance()->documents, 'get' ) ) { return false; } $elementorDocument = \Elementor\Plugin::instance()->documents->get( $postId ); if ( empty( $elementorDocument ) ) { return false; } return $elementorDocument; } /** * Checks whether or not we should prevent the date from being modified. * This method is supposed to be used in the `wp_ajax_seedprod_pro_save_lpage` action. * * @since 4.5.2 * * @param int $postId The Post ID. * @return bool Whether or not we should prevent the date from being modified. */ public function limitModifiedDate( $postId ) { // This method is supposed to be used in the `wp_ajax_elementor_ajax` action. if ( empty( $_REQUEST['_nonce'] ) || ! wp_verify_nonce( $_REQUEST['_nonce'], 'elementor_ajax' ) ) { return false; } $editorPostId = ! empty( $_REQUEST['editor_post_id'] ) ? (int) $_REQUEST['editor_post_id'] : false; if ( $editorPostId !== $postId ) { return false; } return ! empty( $_REQUEST['aioseo_limit_modified_date'] ); } }all-in-one-seo-pack/app/Common/Standalone/PageBuilders/SeedProd.php000064400000007114151222735770021101 0ustar00getPostId() ); if ( ! aioseo()->postSettings->canAddPostSettingsMetabox( $postType ) ) { return; } // SeedProd de-enqueues and de-register scripts/styles on priority PHP_INT_MAX. // Thus, we need to enqueue our scripts at the same priority for more compatibility. add_action( 'admin_enqueue_scripts', [ $this, 'enqueue' ], PHP_INT_MAX ); add_filter( 'style_loader_tag', [ $this, 'replaceStyleTag' ], 10, 2 ); } /** * Enqueue the scripts and styles. * * @since 4.1.7 * * @return void */ public function enqueue() { if ( ! $this->isBuilderScreen() ) { return; } parent::enqueue(); } /** * Check whether or not is builder screen. * * @since 4.1.7 * * @return boolean Whether or not is builder screen. */ public function isBuilderScreen() { $currentScreen = aioseo()->helpers->getCurrentScreen(); return $currentScreen && preg_match( '/seedprod.*?_builder$/i', $currentScreen->base ); } /** * Replace original tag to prevent being removed by SeedProd. * * @param string $tag The tag for the enqueued style. * @param string $handle The style's registered handle. * @return string The tag. */ public function replaceStyleTag( $tag, $handle = '' ) { if ( ! $this->isBuilderScreen() ) { return $tag; } $aioseoCommonHandle = 'aioseo-' . $this->integrationSlug . '-common'; if ( $aioseoCommonHandle === $handle ) { // All the *common.css links are removed from SeedProd. // https://github.com/awesomemotive/seedprod-plugins/blob/32854442979bfa068aadf9b8a8a929e5f9f353e5/seedprod-pro/resources/views/builder.php#L406 $tag = str_ireplace( 'href=', 'data-href=', $tag ); } return $tag; } /** * Returns whether or not the given Post ID was built with SeedProd. * * @since 4.1.7 * * @param int $postId The Post ID. * @return boolean Whether or not the Post was built with SeedProd. */ public function isBuiltWith( $postId ) { $isSeedProd = get_post_meta( $postId, '_seedprod_page', true ); if ( ! empty( $isSeedProd ) ) { return true; } return false; } /** * Checks whether or not we should prevent the date from being modified. * * @since 4.5.2 * * @param int $postId The Post ID. * @return bool Whether or not we should prevent the date from being modified. */ public function limitModifiedDate( $postId ) { // This method is supposed to be used in the `wp_ajax_seedprod_pro_save_lpage` action. if ( wp_doing_ajax() && ! check_ajax_referer( 'seedprod_nonce', false, false ) ) { return false; } $landingPageId = ! empty( $_REQUEST['lpage_id'] ) ? (int) $_REQUEST['lpage_id'] : false; if ( $landingPageId !== $postId ) { return false; } $settings = ! empty( $_REQUEST['settings'] ) ? json_decode( wp_unslash( $_REQUEST['settings'] ) ) : false; if ( empty( $settings ) || empty( $settings->aioseo_limit_modified_date ) ) { return false; } return true; } }all-in-one-seo-pack/app/Common/Standalone/PageBuilders/WPBakery.php000064400000005405151222735770021061 0ustar00postSettings->canAddPostSettingsMetabox( get_post_type( $this->getPostId() ) ) ) { return; } add_action( 'vc_frontend_editor_enqueue_js_css', [ $this, 'enqueue' ] ); add_action( 'vc_backend_editor_enqueue_js_css', [ $this, 'enqueue' ] ); add_filter( 'vc_nav_front_controls', [ $this, 'addNavbarCotnrols' ] ); add_filter( 'vc_nav_controls', [ $this, 'addNavbarCotnrols' ] ); } public function addNavbarCotnrols( $controlList ) { $controlList[] = [ 'aioseo', '
  • ' ]; return $controlList; } /** * Returns whether or not the given Post ID was built with WPBakery. * * @since 4.5.2 * * @param int $postId The Post ID. * @return boolean Whether or not the Post was built with WPBakery. */ public function isBuiltWith( $postId ) { $postObj = get_post( $postId ); if ( ! empty( $postObj ) && preg_match( '/vc_row/', $postObj->post_content ) ) { return true; } return false; } /** * Returns whether should or not limit the modified date. * * @since 4.5.2 * * @param int $postId The Post ID. * @return boolean Whether or not sholud limit the modified date. */ public function limitModifiedDate( $postId ) { // This method is supposed to be used in the `saveAjaxFe` action. if ( empty( $_REQUEST['_vcnonce'] ) || ! wp_verify_nonce( wp_unslash( $_REQUEST['_vcnonce'] ), 'vc-nonce-vc-admin-nonce' ) ) { return false; } $editorPostId = ! empty( $_REQUEST['post_id'] ) ? intval( $_REQUEST['post_id'] ) : 0; if ( $editorPostId !== $postId ) { return false; } return ! empty( $_REQUEST['aioseo_limit_modified_date'] ) && (bool) $_REQUEST['aioseo_limit_modified_date']; } /** * Returns the processed page builder content. * * @since 4.5.2 * * @param int $postId The post id. * @param string $content The raw content. * @return string The processed content. */ public function processContent( $postId, $content = '' ) { if ( method_exists( '\WPBMap', 'addAllMappedShortcodes' ) ) { \WPBMap::addAllMappedShortcodes(); } return parent::processContent( $postId, $content ); } }all-in-one-seo-pack/app/Common/Standalone/DetailsColumn.php000064400000016033151222735770017571 0ustar00helpers->getCurrentScreen(); if ( empty( $screen->base ) || empty( $screen->post_type ) ) { return; } if ( ! $this->shouldRegisterColumn( $screen->base, $screen->post_type ) ) { return; } add_action( 'admin_enqueue_scripts', [ $this, 'enqueueScripts' ] ); if ( 'product' === $screen->post_type ) { add_filter( 'manage_edit-product_columns', [ $this, 'addColumn' ] ); add_action( 'manage_posts_custom_column', [ $this, 'renderColumn' ], 10, 2 ); return; } if ( 'attachment' === $screen->post_type ) { $enabled = apply_filters( 'aioseo_image_seo_media_columns', true ); if ( ! $enabled ) { return; } add_filter( 'manage_media_columns', [ $this, 'addColumn' ] ); add_action( 'manage_media_custom_column', [ $this, 'renderColumn' ], 10, 2 ); return; } add_filter( "manage_edit-{$screen->post_type}_columns", [ $this, 'addColumn' ] ); add_action( "manage_{$screen->post_type}_posts_custom_column", [ $this, 'renderColumn' ], 10, 2 ); } /** * Registers our post columns after a post has been quick-edited. * * @since 4.2.3 * * @return void */ public function addPostColumnsAjax() { if ( ! isset( $_POST['_inline_edit'], $_POST['post_ID'], $_POST['aioseo-has-details-column'] ) || ! wp_verify_nonce( $_POST['_inline_edit'], 'inlineeditnonce' ) ) { return; } $postId = (int) $_POST['post_ID']; if ( ! $postId ) { return; } $post = get_post( $postId ); $postType = $post->post_type; add_filter( "manage_edit-{$postType}_columns", [ $this, 'addColumn' ] ); add_action( "manage_{$postType}_posts_custom_column", [ $this, 'renderColumn' ], 10, 2 ); } /** * Enqueues the JS/CSS for the page/posts table page. * * @since 4.0.0 * * @return void */ public function enqueueScripts() { $data = aioseo()->helpers->getVueData(); $data['posts'] = []; $data['terms'] = []; aioseo()->core->assets->load( $this->scriptSlug, [], $data ); } /** * Adds the AIOSEO Details column to the page/post tables in the admin. * * @since 4.0.0 * * @param array $columns The columns we are adding ours onto. * @return array The modified columns. */ public function addColumn( $columns ) { $canManageSeo = apply_filters( 'aioseo_manage_seo', 'aioseo_manage_seo' ); if ( ! current_user_can( $canManageSeo ) && ( ! current_user_can( 'aioseo_page_general_settings' ) && ! current_user_can( 'aioseo_page_analysis' ) ) ) { return $columns; } // Translators: 1 - The short plugin name ("AIOSEO"). $columns['aioseo-details'] = sprintf( esc_html__( '%1$s Details', 'all-in-one-seo-pack' ), AIOSEO_PLUGIN_SHORT_NAME ); return $columns; } /** * Renders the column in the page/post table. * * @since 4.0.0 * * @param string $columnName The column name. * @param int $postId The current rows, post id. * @return void */ public function renderColumn( $columnName, $postId = 0 ) { if ( ! current_user_can( 'edit_post', $postId ) && ! current_user_can( 'aioseo_manage_seo' ) ) { return; } if ( 'aioseo-details' !== $columnName ) { return; } // Add this column/post to the localized array. global $wp_scripts; $data = $wp_scripts->get_data( 'aioseo/js/' . $this->scriptSlug, 'data' ); if ( ! is_array( $data ) ) { $data = json_decode( str_replace( 'var aioseo = ', '', substr( $data, 0, -1 ) ), true ); } // We have to temporarily modify the query here since the query incorrectly identifies // the current page as a category page when posts are filtered by a specific category. global $wp_query; $originalQuery = clone $wp_query; $wp_query->is_category = false; $wp_query->is_tag = false; $wp_query->is_tax = false; $posts = ! empty( $data['posts'] ) ? $data['posts'] : []; $postData = $this->getPostData( $postId, $columnName ); $addonsColumnData = array_filter( aioseo()->addons->doAddonFunction( 'admin', 'renderColumnData', [ $columnName, $postId, $postData ] ) ); $wp_query = $originalQuery; foreach ( $addonsColumnData as $addonColumnData ) { $postData = array_merge( $postData, $addonColumnData ); } $posts[] = $postData; $data['posts'] = $posts; $wp_scripts->add_data( 'aioseo/js/' . $this->scriptSlug, 'data', '' ); wp_localize_script( 'aioseo/js/' . $this->scriptSlug, 'aioseo', $data ); require AIOSEO_DIR . '/app/Common/Views/admin/posts/columns.php'; } /** * Gets the post data for the column. * * @since 4.5.0 * * @param int $postId The Post ID. * @param string $columnName The column name. * @return array The post data. */ protected function getPostData( $postId, $columnName ) { $nonce = wp_create_nonce( "aioseo_meta_{$columnName}_{$postId}" ); $thePost = Models\Post::getPost( $postId ); $postType = get_post_type( $postId ); $postData = [ 'id' => $postId, 'columnName' => $columnName, 'nonce' => $nonce, 'title' => $thePost->title, 'defaultTitle' => aioseo()->meta->title->getPostTypeTitle( $postType ), 'description' => $thePost->description, 'defaultDescription' => aioseo()->meta->description->getPostTypeDescription( $postType ), 'value' => ! empty( $thePost->seo_score ) ? (int) $thePost->seo_score : 0, 'showMedia' => false, 'isSpecialPage' => aioseo()->helpers->isSpecialPage( $postId ), 'postType' => $postType, 'isPostVisible' => aioseo()->helpers->isPostPubliclyViewable( $postId ) ]; return $postData; } /** * Checks whether the AIOSEO Details column should be registered. * * @since 4.0.0 * * @return bool Whether the column should be registered. */ public function shouldRegisterColumn( $screen, $postType ) { if ( 'type' === $postType ) { $postType = '_aioseo_type'; } if ( 'edit' === $screen || 'upload' === $screen ) { if ( aioseo()->options->advanced->postTypes->all && in_array( $postType, aioseo()->helpers->getPublicPostTypes( true ), true ) ) { return true; } $postTypes = aioseo()->options->advanced->postTypes->included; if ( in_array( $postType, $postTypes, true ) ) { return true; } } return false; } }all-in-one-seo-pack/app/Common/Standalone/FlyoutMenu.php000064400000003453151222735770017137 0ustar00isEnabled() ) { return; } add_action( 'admin_enqueue_scripts', [ $this, 'enqueueAssets' ], 11 ); add_filter( 'admin_body_class', [ $this, 'addBodyClass' ] ); } /** * Enqueues the required assets. * * @since 4.2.0 * * @return void */ public function enqueueAssets() { if ( ! $this->shouldEnqueue() ) { return; } aioseo()->core->assets->load( 'src/vue/standalone/flyout-menu/main.js' ); } /** * Filters the CSS classes for the body tag in the admin. * * @since 4.2.0 * * @param string $classes Space-separated list of CSS classes. * @return string Space-separated list of CSS classes. */ public function addBodyClass( $classes ) { if ( $this->shouldEnqueue() ) { // This adds a bottom margin to our menu so that we push the footer down and prevent the flyout menu from overlapping the "Save Changes" button. $classes .= ' aioseo-flyout-menu-enabled '; } return $classes; } /** * Checks whether the flyout menu script should be enqueued. * * @since 4.2.0 * * @return bool Whether the flyout menu script should be enqueued. */ private function shouldEnqueue() { if ( aioseo()->admin->isAioseoScreen() ) { return true; } return false; } /** * Checks whether the flyout menu is enabled. * * @since 4.2.0 * * @return bool Whether the flyout menu is enabled. */ public function isEnabled() { return apply_filters( 'aioseo_flyout_menu_enable', true ); } }all-in-one-seo-pack/app/Common/Standalone/HeadlineAnalyzer.php000064400000040314151222735770020244 0ustar00options->advanced->headlineAnalyzer ) { return; } add_filter( 'monsterinsights_headline_analyzer_enabled', '__return_false' ); add_filter( 'exactmetrics_headline_analyzer_enabled', '__return_false' ); } /** * Enqueues the headline analyzer. * * @since 4.1.2 * * @return void */ public function enqueue() { if ( ! aioseo()->helpers->isScreenBase( 'post' ) || ! aioseo()->access->hasCapability( 'aioseo_page_analysis' ) ) { return; } if ( ! aioseo()->options->advanced->headlineAnalyzer ) { return; } $path = '/vendor/jwhennessey/phpinsight/autoload.php'; if ( ! aioseo()->core->fs->exists( AIOSEO_DIR . $path ) ) { return; } require AIOSEO_DIR . $path; aioseo()->core->assets->load( 'src/react/headline-analyzer/main.js' ); } /** * Returns the result of the analsyis. * * @since 4.1.2 * * @param string $title The title. * @return array The result. */ public function getResult( $title ) { $result = $this->getHeadlineScore( $title ); if ( ! empty( $result->err ) ) { return false; } return [ 'result' => $result, 'analysed' => ! $result->err, 'sentence' => ucwords( wp_unslash( sanitize_text_field( $title ) ) ), 'score' => ! empty( $result->score ) ? $result->score : 0 ]; } /** * Returns the score. * * @since 4.1.2 * * @param string $title The title. * @return \stdClass The result. */ public function getHeadlineScore( $title ) { $result = new \stdClass(); $result->originalExplodedHeadline = explode( ' ', wp_unslash( $title ) ); // Strip useless characters and whitespace. $title = preg_replace( '/[^A-Za-z0-9 ]/', '', $title ); $title = preg_replace( '!\s+!', ' ', $title ); $title = strtolower( $title ); $result->input = $title; // If the headline is invalid, return an error. if ( ! $title || ' ' === $title || trim( $title ) === '' ) { $result->err = true; $result->msg = 'The headline is invalid.'; return $result; } $totalScore = 0; $explodedHeadline = explode( ' ', $title ); $result->explodedHeadline = $explodedHeadline; $result->err = false; // The optimal length is 55 characters. $result->length = strlen( str_replace( ' ', '', $title ) ); $totalScore = $totalScore + 3; //phpcs:disable Squiz.ControlStructures.ControlSignature if ( $result->length <= 19 ) { $totalScore += 5; } elseif ( $result->length >= 20 && $result->length <= 34 ) { $totalScore += 8; } elseif ( $result->length >= 35 && $result->length <= 66 ) { $totalScore += 11; } elseif ( $result->length >= 67 && $result->length <= 79 ) { $totalScore += 8; } elseif ( $result->length >= 80 ) { $totalScore += 5; } // The average headline is 6-7 words long. $result->wordCount = count( $explodedHeadline ); $totalScore = $totalScore + 3; if ( 0 === $result->wordCount ) { $totalScore = 0; } elseif ( $result->wordCount >= 2 && $result->wordCount <= 4 ) { $totalScore += 5; } elseif ( $result->wordCount >= 5 && $result->wordCount <= 9 ) { $totalScore += 11; } elseif ( $result->wordCount >= 10 && $result->wordCount <= 11 ) { $totalScore += 8; } elseif ( $result->wordCount >= 12 ) { $totalScore += 5; } // Check for power words, emotional words, etc. $result->powerWords = $this->matchWords( $result->input, $result->explodedHeadline, $this->powerWords() ); $result->powerWordsPercentage = count( $result->powerWords ) / $result->wordCount; $result->emotionWords = $this->matchWords( $result->input, $result->explodedHeadline, $this->emotionPowerWords() ); $result->emotionalWordsPercentage = count( $result->emotionWords ) / $result->wordCount; $result->commonWords = $this->matchWords( $result->input, $result->explodedHeadline, $this->commonWords() ); $result->commonWordsPercentage = count( $result->commonWords ) / $result->wordCount; $result->uncommonWords = $this->matchWords( $result->input, $result->explodedHeadline, $this->uncommonWords() ); $result->uncommonWordsPercentage = count( $result->uncommonWords ) / $result->wordCount; $result->detectedWordTypes = []; if ( $result->emotionalWordsPercentage < 0.1 ) { $result->detectedWordTypes[] = 'emotion'; } else { $totalScore = $totalScore + 15; } if ( $result->commonWordsPercentage < 0.2 ) { $result->detectedWordTypes[] = 'common'; } else { $totalScore = $totalScore + 11; } if ( $result->uncommonWordsPercentage < 0.1 ) { $result->detectedWordTypes[] = 'uncommon'; } else { $totalScore = $totalScore + 15; } if ( count( $result->powerWords ) < 1 ) { $result->detectedWordTypes[] = 'power'; } else { $totalScore = $totalScore + 19; } if ( $result->emotionalWordsPercentage >= 0.1 && $result->commonWordsPercentage >= 0.2 && $result->uncommonWordsPercentage >= 0.1 && count( $result->powerWords ) >= 1 ) { $totalScore = $totalScore + 3; } $sentiment = new \PHPInsight\Sentiment(); $sentimentClass = $sentiment->categorise( $title ); $result->sentiment = $sentimentClass; $totalScore = $totalScore + ( 'pos' === $result->sentiment ? 10 : ( 'neg' === $result->sentiment ? 10 : 7 ) ); $headlineTypes = []; if ( strpos( $title, 'how to' ) !== false || strpos( $title, 'howto' ) !== false ) { $headlineTypes[] = __( 'How-To', 'all-in-one-seo-pack' ); $totalScore = $totalScore + 7; } $listWords = array_intersect( $explodedHeadline, $this->numericalIndicators() ); if ( preg_match( '~[0-9]+~', $title ) || ! empty( $listWords ) ) { $headlineTypes[] = __( 'List', 'all-in-one-seo-pack' ); $totalScore = $totalScore + 7; } if ( in_array( $explodedHeadline[0], $this->primaryQuestionIndicators(), true ) ) { if ( in_array( $explodedHeadline[1], $this->secondaryQuestionIndicators(), true ) ) { $headlineTypes[] = __( 'Question', 'all-in-one-seo-pack' ); $totalScore = $totalScore + 7; } } if ( empty( $headlineTypes ) ) { $headlineTypes[] = __( 'General', 'all-in-one-seo-pack' ); $totalScore = $totalScore + 5; } $result->headlineTypes = $headlineTypes; $result->score = $totalScore >= 93 ? 93 : $totalScore; return $result; } /** * Tries to find matches for power words, emotional words, etc. in the headline. * * @since 4.1.2 * * @param string $headline The headline. * @param array $explodedHeadline The exploded headline. * @param array $words The words to match. * @return array The matches that were found. */ public function matchWords( $headline, $explodedHeadline, $words ) { $foundMatches = []; foreach ( $words as $word ) { $strippedWord = preg_replace( '/[^A-Za-z0-9 ]/', '', $word ); // Check if word is a phrase. if ( strpos( $word, ' ' ) !== false ) { if ( strpos( $headline, $strippedWord ) !== false ) { $foundMatches[] = $word; } continue; } // Check if it is a single word. if ( in_array( $strippedWord, $explodedHeadline, true ) ) { $foundMatches[] = $word; } } return $foundMatches; } /** * Returns a list of numerical indicators. * * @since 4.1.2 * * @return array The list of numerical indicators. */ private function numericalIndicators() { return [ 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'eleven', 'twelve', 'thirt', 'fift', 'hundred', 'thousand' // phpcs:ignore Generic.Files.LineLength.MaxExceeded, WordPress.Arrays.ArrayDeclarationSpacing.ArrayItemNoNewLine ]; } /** * Returns a list of primary question indicators. * * @since 4.1.2 * * @return array The list of primary question indicators. */ private function primaryQuestionIndicators() { return [ 'where', 'when', 'how', 'what', 'have', 'has', 'does', 'do', 'can', 'are', 'will' // phpcs:ignore Generic.Files.LineLength.MaxExceeded, WordPress.Arrays.ArrayDeclarationSpacing.ArrayItemNoNewLine ]; } /** * Returns a list of secondary question indicators. * * @since 4.1.2 * * @return array The list of secondary question indicators. */ private function secondaryQuestionIndicators() { return [ 'you', 'they', 'he', 'she', 'your', 'it', 'they', 'my', 'have', 'has', 'does', 'do', 'can', 'are', 'will' // phpcs:ignore Generic.Files.LineLength.MaxExceeded, WordPress.Arrays.ArrayDeclarationSpacing.ArrayItemNoNewLine ]; } /** * Returns a list of power words. * * @since 4.1.2 * * @return array The list of power words. */ private function powerWords() { return [ 'great', 'free', 'focus', 'remarkable', 'confidential', 'sale', 'wanted', 'obsession', 'sizable', 'new', 'absolutely lowest', 'surging', 'wonderful', 'professional', 'interesting', 'revisited', 'delivered', 'guaranteed', 'challenge', 'unique', 'secrets', 'special', 'lifetime', 'bargain', 'scarce', 'tested', 'highest', 'hurry', 'alert famous', 'improved', 'expert', 'daring', 'strong', 'immediately', 'advice', 'pioneering', 'unusual', 'limited', 'the truth about', 'destiny', 'outstanding', 'simplistic', 'compare', 'unsurpassed', 'energy', 'powerful', 'colorful', 'genuine', 'instructive', 'big', 'affordable', 'informative', 'liberal', 'popular', 'ultimate', 'mainstream', 'rare', 'exclusive', 'willpower', 'complete', 'edge', 'valuable', 'attractive', 'last chance', 'superior', 'how to', 'easily', 'exploit', 'unparalleled', 'endorsed', 'approved', 'quality', 'fascinating', 'unlimited', 'competitive', 'gigantic', 'compromise', 'discount', 'full', 'love', 'odd', 'fundamentals', 'mammoth', 'lavishly', 'bottom line', 'under priced', 'innovative', 'reliable', 'zinger', 'suddenly', 'it\'s here', 'terrific', 'simplified', 'perspective', 'just arrived', 'breakthrough', 'tremendous', 'launching', 'sure fire', 'emerging', 'helpful', 'skill', 'soar', 'profitable', 'special offer', 'reduced', 'beautiful', 'sampler', 'technology', 'better', 'crammed', 'noted', 'selected', 'shrewd', 'growth', 'luxury', 'sturdy', 'enormous', 'promising', 'unconditional', 'wealth', 'spotlight', 'astonishing', 'timely', 'successful', 'useful', 'imagination', 'bonanza', 'opportunities', 'survival', 'greatest', 'security', 'last minute', 'largest', 'high tech', 'refundable', 'monumental', 'colossal', 'latest', 'quickly', 'startling', 'now', 'important', 'revolutionary', 'quick', 'unlock', 'urgent', 'miracle', 'easy', 'fortune', 'amazing', 'magic', 'direct', 'authentic', 'exciting', 'proven', 'simple', 'announcing', 'portfolio', 'reward', 'strange', 'huge gift', 'revealing', 'weird', 'value', 'introducing', 'sensational', 'surprise', 'insider', 'practical', 'excellent', 'delighted', 'download' // phpcs:ignore Generic.Files.LineLength.MaxExceeded, WordPress.Arrays.ArrayDeclarationSpacing.ArrayItemNoNewLine ]; } /** * Returns a list of common words. * * @since 4.1.2 * * @return array The list of common words. */ private function commonWords() { return [ 'a', 'for', 'about', 'from', 'after', 'get', 'all', 'has', 'an', 'have', 'and', 'he', 'are', 'her', 'as', 'his', 'at', 'how', 'be', 'I', 'but', 'if', 'by', 'in', 'can', 'is', 'did', 'it', 'do', 'just', 'ever', 'like', 'll', 'these', 'me', 'they', 'most', 'things', 'my', 'this', 'no', 'to', 'not', 'up', 'of', 'was', 'on', 'what', 're', 'when', 'she', 'who', 'sould', 'why', 'so', 'will', 'that', 'with', 'the', 'you', 'their', 'your', 'there' // phpcs:ignore Generic.Files.LineLength.MaxExceeded, WordPress.Arrays.ArrayDeclarationSpacing.ArrayItemNoNewLine ]; } /** * Returns a list of uncommon words. * * @since 4.1.2 * * @return array The list of uncommon words. */ private function uncommonWords() { return [ 'actually', 'happened', 'need', 'thing', 'awesome', 'heart', 'never', 'think', 'baby', 'here', 'new', 'time', 'beautiful', 'its', 'now', 'valentines', 'being', 'know', 'old', 'video', 'best', 'life', 'one', 'want', 'better', 'little', 'out', 'watch', 'boy', 'look', 'people', 'way', 'dog', 'love', 'photos', 'ways', 'down', 'made', 'really', 'world', 'facebook', 'make', 'reasons', 'year', 'first', 'makes', 'right', 'years', 'found', 'man', 'see', 'you’ll', 'girl', 'media', 'seen', 'good', 'mind', 'social', 'guy', 'more', 'something' // phpcs:ignore Generic.Files.LineLength.MaxExceeded, WordPress.Arrays.ArrayDeclarationSpacing.ArrayItemNoNewLine ]; } /** * Returns a list of emotional power words. * * @since 4.1.2 * * @return array The list of emotional power words. */ private function emotionPowerWords() { return [ 'destroy', 'extra', 'in a', 'devastating', 'eye-opening', 'gift', 'in the world', 'devoted', 'fail', 'in the', 'faith', 'grateful', 'inexpensive', 'dirty', 'famous', 'disastrous', 'fantastic', 'greed', 'grit', 'insanely', 'disgusting', 'fearless', 'disinformation', 'feast', 'insidious', 'dollar', 'feeble', 'gullible', 'double', 'fire', 'hack', 'fleece', 'had enough', 'invasion', 'drowning', 'floundering', 'happy', 'ironclad', 'dumb', 'flush', 'hate', 'irresistibly', 'hazardous', 'is the', 'fool', 'is what happens when', 'fooled', 'helpless', 'it looks like a', 'embarrass', 'for the first time', 'help are the', 'jackpot', 'forbidden', 'hidden', 'jail', 'empower', 'force-fed', 'high', 'jaw-dropping', 'forgotten', 'jeopardy', 'energize', 'hoax', 'jubilant', 'foul', 'hope', 'killer', 'frantic', 'horrific', 'know it all', 'epic', 'how to make', 'evil', 'freebie', 'frenzy', 'hurricane', 'excited', 'fresh on the mind', 'frightening', 'hypnotic', 'lawsuit', 'frugal', 'illegal', 'fulfill', 'lick', 'explode', 'lies', 'exposed', 'gambling', 'like a normal', 'nightmare', 'results', 'line', 'no good', 'pound', 'loathsome', 'no questions asked', 'revenge', 'lonely', 'looks like a', 'obnoxious', 'preposterous', 'revolting', 'looming', 'priced', 'lost', 'prison', 'lowest', 'of the', 'privacy', 'rich', 'lunatic', 'off-limits', 'private', 'risky', 'lurking', 'offer', 'prize', 'ruthless', 'lust', 'official', 'luxurious', 'on the', 'profit', 'scary', 'lying', 'outlawed', 'protected', 'scream', 'searing', 'overcome', 'provocative', 'make you', 'painful', 'pummel', 'secure', 'pale', 'punish', 'marked down', 'panic', 'quadruple', 'seductively', 'massive', 'pay zero', 'seize', 'meltdown', 'payback', 'might look like a', 'peril', 'mind-blowing', 'shameless', 'minute', 'rave', 'shatter', 'piranha', 'reckoning', 'shellacking', 'mired', 'pitfall', 'reclaim', 'mistakes', 'plague', 'sick and tired', 'money', 'played', 'refugee', 'silly', 'money-grubbing', 'pluck', 'refund', 'moneyback', 'plummet', 'plunge', 'murder', 'pointless', 'sinful', 'myths', 'poor', 'remarkably', 'six-figure', 'never again', 'research', 'surrender', 'to the', 'varify', 'skyrocket', 'toxic', 'vibrant', 'slaughter', 'swindle', 'trap', 'victim', 'sleazy', 'taboo', 'treasure', 'victory', 'smash', 'tailspin', 'vindication', 'smug', 'tank', 'triple', 'viral', 'smuggled', 'tantalizing', 'triumph', 'volatile', 'sniveling', 'targeted', 'truth', 'vulnerable', 'snob', 'tawdry', 'try before you buy', 'tech', 'turn the tables', 'wanton', 'soaring', 'warning', 'teetering', 'unauthorized', 'spectacular', 'temporary fix', 'unbelievably', 'spine', 'tempting', 'uncommonly', 'what happened', 'spirit', 'what happens when', 'terror', 'under', 'what happens', 'staggering', 'underhanded', 'what this', 'that will make you', 'undo","when you see', 'that will make', 'unexpected', 'when you', 'strangle', 'that will', 'whip', 'the best', 'whopping', 'stuck up', 'the ranking of', 'wicked', 'stunning', 'the most', 'will make you', 'stupid', 'the reason why is', 'unscrupulous', 'thing ive ever seen', 'withheld', 'this is the', 'this is what happens', 'unusually', 'wondrous', 'this is what', 'uplifting', 'worry', 'sure', 'this is', 'wounded', 'surge', 'thrilled', 'you need to know', 'thrilling', 'valor', 'you need to', 'you see what', 'surprising', 'tired', 'you see', 'surprisingly', 'to be', 'vaporize' // phpcs:ignore Generic.Files.LineLength.MaxExceeded, WordPress.Arrays.ArrayDeclarationSpacing.ArrayItemNoNewLine ]; } }all-in-one-seo-pack/app/Common/Standalone/LimitModifiedDate.php000064400000014436151222735770020350 0ustar00helpers->getPublicPostTypes( true ) as $postType ) { add_filter( "rest_pre_insert_$postType", [ $this, 'addLimitModifiedDateValue' ], 10, 2 ); } } /** * Enqueues the scripts for the Limited Modified Date functionality. * * @since 4.1.8 * * @return void */ public function enqueueScripts() { if ( ! $this->isAllowed() || ! aioseo()->helpers->isScreenBase( 'post' ) ) { return; } // Only enqueue this script if the post-settings-metabox is already enqueued. if ( wp_script_is( 'aioseo/js/src/vue/standalone/post-settings/main.js', 'enqueued' ) ) { aioseo()->core->assets->load( 'src/vue/standalone/limit-modified-date/main.js' ); } } /** * Adds the Limit Modified Date field to the post object to prevent it from being dropped. * * @since 4.1.8 * * @param object $preparedPost The post data. * @param \WP_REST_Request $restRequest The request. * @return object The modified post data. */ public function addLimitModifiedDateValue( $preparedPost, $restRequest = null ) { if ( 'PUT' !== $restRequest->get_method() ) { return $preparedPost; } $params = $restRequest->get_json_params(); if ( empty( $params ) || ! isset( $params['aioseo_limit_modified_date'] ) ) { return $preparedPost; } $preparedPost->aioseo_limit_modified_date = $params['aioseo_limit_modified_date']; return $preparedPost; } /** * Resets the modified date when a post is updated if the Limit Modified Date option is enabled. * * @since 4.1.8 * * @param array $sanitizedData The sanitized post data. * @param array $unsanitizedData The unsanitized post data. * @return array The modified sanitized post data. */ public function resetModifiedDate( $sanitizedData, $unsanitizedData = [] ) { // If the ID isn't set, a new post is being inserted. if ( ! isset( $unsanitizedData['ID'] ) ) { return $sanitizedData; } $shouldReset = false; // Handle the REST API request from the Block Editor. if ( aioseo()->helpers->isRestApiRequest() ) { // If the value isn't set, then the value wasn't changed in the editor, and we can grab it from the post. if ( ! isset( $unsanitizedData['aioseo_limit_modified_date'] ) ) { $aioseoPost = Models\Post::getPost( $unsanitizedData['ID'] ); if ( $aioseoPost->exists() && $aioseoPost->limit_modified_date ) { $shouldReset = true; } } else { if ( $unsanitizedData['aioseo_limit_modified_date'] ) { $shouldReset = true; } } } // Handle the POST request. if ( isset( $unsanitizedData['aioseo-post-settings'] ) ) { $aioseoData = json_decode( stripslashes( $unsanitizedData['aioseo-post-settings'] ) ); if ( ! empty( $aioseoData->limit_modified_date ) ) { $shouldReset = true; } } // Handle post revision. if ( ! empty( $GLOBALS['action'] ) && 'restore' === $GLOBALS['action'] ) { $aioseoPost = Models\Post::getPost( $unsanitizedData['ID'] ); if ( $aioseoPost->exists() && $aioseoPost->limit_modified_date ) { $shouldReset = true; } } foreach ( aioseo()->standalone->pageBuilderIntegrations as $pageBuilder ) { if ( $pageBuilder->isBuiltWith( $unsanitizedData['ID'] ) && $pageBuilder->limitModifiedDate( $unsanitizedData['ID'] ) ) { $shouldReset = true; break; } } if ( $shouldReset ) { $sanitizedData['post_modified'] = $unsanitizedData['post_modified']; $sanitizedData['post_modified_gmt'] = $unsanitizedData['post_modified_gmt']; } return $sanitizedData; } /** * Add the checkbox in the Classic Editor. * * @since 4.1.8 * * @param \WP_Post $post The post object. * @return void */ public function classicEditorField( $post ) { if ( ! $this->isAllowed( $post->post_type ) ) { return; } ?>
    isAllowedPostType( $postType ) ) { return false; } if ( ! aioseo()->access->hasCapability( 'aioseo_page_general_settings' ) ) { return false; } return true; } /** * Check if the given post type is allowed to limit the modified date. * * @since 4.1.8 * * @param string $postType The post type name. * @return bool Whether the post type is allowed. */ private function isAllowedPostType( $postType ) { $dynamicOptions = aioseo()->dynamicOptions->noConflict(); $postTypes = aioseo()->helpers->getPublicPostTypes( true ); $postTypes = apply_filters( 'aioseo_limit_modified_date_post_types', $postTypes ); if ( ! in_array( $postType, $postTypes, true ) ) { return false; } if ( ! $dynamicOptions->searchAppearance->postTypes->has( $postType ) || ! $dynamicOptions->searchAppearance->postTypes->$postType->advanced->showMetaBox ) { return false; } return true; } }all-in-one-seo-pack/app/Common/Standalone/Notifications.php000064400000001357151222735770017642 0ustar00core->assets->load( 'src/vue/standalone/notifications/main.js', [], [ 'newNotifications' => count( Models\Notification::getNewNotifications() ) ], 'aioseoNotifications' ); } }all-in-one-seo-pack/app/Common/Standalone/PrimaryTerm.php000064400000002402151222735770017274 0ustar00helpers->isScreenBase( 'post' ) ) { return; } aioseo()->core->assets->load( 'src/vue/standalone/primary-term/main.js', [], aioseo()->helpers->getVueData( 'post' ) ); } /** * Returns the primary term for the given taxonomy name. * * @since 4.3.6 * * @param int $postId The post ID. * @param string $taxonomyName The taxonomy name. * @return \WP_Term|false The term or false. */ public function getPrimaryTerm( $postId, $taxonomyName ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable return false; } }all-in-one-seo-pack/app/Common/Standalone/PublishPanel.php000064400000001365151222735770017416 0ustar00helpers->isScreenBase( 'post' ) ) { return; } aioseo()->core->assets->load( 'src/vue/standalone/publish-panel/main.js' ); } }all-in-one-seo-pack/app/Common/Standalone/SeoPreview.php000064400000021236151222735770017117 0ustar00helpers->isAmpPage() ) { return; } $allow = [ 'archive', 'attachment', 'author', 'date', 'dynamic_home', 'page', 'search', 'single', 'taxonomy', ]; if ( ! in_array( aioseo()->helpers->getTemplateType(), $allow, true ) ) { return; } $this->enable = true; // Prevent Autoptimize from optimizing the translations for the SEO Preview. If we don't do this, Autoptimize can break the frontend for certain languages - #5235. if ( is_user_logged_in() && 'en_US' !== get_user_locale() ) { add_filter( 'autoptimize_filter_noptimize', '__return_true' ); } // As WordPress uses priority 10 to print footer scripts we use 9 to make sure our script still gets output. add_action( 'wp_print_footer_scripts', [ $this, 'enqueueScript' ], 9 ); } /** * Hooked into `wp_print_footer_scripts` action hook. * Enqueue the standalone JS the latest possible and prevent 3rd-party performance plugins from merging it. * * @since 4.3.1 * * @return void */ public function enqueueScript() { aioseo()->core->assets->load( $this->mainAssetRelativeFilename, [], $this->getVueData(), 'aioseoSeoPreview' ); aioseo()->main->enqueueTranslations(); } /** * Returns the data for Vue. * * @since 4.2.8 * * @return array The data. */ private function getVueData() { $queriedObject = get_queried_object(); $templateType = aioseo()->helpers->getTemplateType(); if ( 'taxonomy' === $templateType || 'single' === $templateType || 'page' === $templateType || 'attachment' === $templateType ) { $labels = null; if ( is_a( $queriedObject, 'WP_Term' ) ) { $wpObject = $queriedObject; $labels = get_taxonomy_labels( get_taxonomy( $queriedObject->taxonomy ) ); $editObjectUrl = get_edit_term_link( $queriedObject, $queriedObject->taxonomy ); } else { $wpObject = aioseo()->helpers->getPost(); if ( is_a( $wpObject, 'WP_Post' ) ) { $labels = get_post_type_labels( get_post_type_object( $wpObject->post_type ) ); $editObjectUrl = get_edit_post_link( $wpObject, 'url' ); if ( ! aioseo()->helpers->isSpecialPage( $wpObject->ID ) && 'attachment' !== $templateType ) { $aioseoPost = Models\Post::getPost( $wpObject->ID ); $pageAnalysis = ! empty( $aioseoPost->page_analysis ) ? json_decode( $aioseoPost->page_analysis ) : [ 'analysis' => [] ]; $keyphrases = Models\Post::getKeyphrasesDefaults( $aioseoPost->keyphrases ); } } } // At this point if `$wpObject` is not an instance of WP_Term nor WP_Post, then we can't have the URLs. if ( is_object( $wpObject ) && is_object( $labels ) ) { $editObjectBtnText = sprintf( // Translators: 1 - A noun for something that's being edited ("Post", "Page", "Article", "Product", etc.). esc_html__( 'Edit %1$s', 'all-in-one-seo-pack' ), $labels->singular_name ); $editGoogleSnippetUrl = $this->getEditSnippetUrl( $templateType, 'google', $wpObject ); $editFacebookSnippetUrl = $this->getEditSnippetUrl( $templateType, 'facebook', $wpObject ); $editTwitterSnippetUrl = $this->getEditSnippetUrl( $templateType, 'twitter', $wpObject ); } } elseif ( 'archive' === $templateType || 'author' === $templateType || 'date' === $templateType || 'search' === $templateType ) { if ( is_a( $queriedObject, 'WP_User' ) ) { $editObjectUrl = get_edit_user_link( $queriedObject->ID ); $editObjectBtnText = esc_html__( 'Edit User', 'all-in-one-seo-pack' ); } $editGoogleSnippetUrl = $this->getEditSnippetUrl( $templateType, 'google' ); } elseif ( 'dynamic_home' === $templateType ) { $editGoogleSnippetUrl = $this->getEditSnippetUrl( $templateType, 'google' ); $editFacebookSnippetUrl = $this->getEditSnippetUrl( $templateType, 'facebook' ); $editTwitterSnippetUrl = $this->getEditSnippetUrl( $templateType, 'twitter' ); } return [ 'editGoogleSnippetUrl' => isset( $editGoogleSnippetUrl ) ? $editGoogleSnippetUrl : '', 'editFacebookSnippetUrl' => isset( $editFacebookSnippetUrl ) ? $editFacebookSnippetUrl : '', 'editTwitterSnippetUrl' => isset( $editTwitterSnippetUrl ) ? $editTwitterSnippetUrl : '', 'editObjectBtnText' => isset( $editObjectBtnText ) ? $editObjectBtnText : '', 'editObjectUrl' => isset( $editObjectUrl ) ? $editObjectUrl : '', 'keyphrases' => isset( $keyphrases ) ? $keyphrases : '', 'page_analysis' => isset( $pageAnalysis ) ? $pageAnalysis : '', 'urls' => [ 'home' => home_url(), 'domain' => aioseo()->helpers->getSiteDomain(), 'mainSiteUrl' => aioseo()->helpers->getSiteUrl(), ], 'mainAssetCssQueue' => aioseo()->core->assets->getJsAssetCssQueue( $this->mainAssetRelativeFilename ), 'data' => [ 'isDev' => aioseo()->helpers->isDev() ] ]; } /** * Get the URL to the place where the snippet details can be edited. * * @since 4.2.8 * * @param string $templateType The WP template type {@see WpContext::getTemplateType}. * @param string $snippet 'google', 'facebook' or 'twitter'. * @param \WP_Post|\WP_Term|null $object Post or term object. * @return string The URL. Returns an empty string if nothing matches. */ private function getEditSnippetUrl( $templateType, $snippet, $object = null ) { $url = ''; // Bail if `$snippet` doesn't fit requirements. if ( ! in_array( $snippet, [ 'google', 'facebook', 'twitter' ], true ) ) { return $url; } // If we're in a post/page/term (not an attachment) we'll have a URL directly to the meta box. if ( in_array( $templateType, [ 'single', 'page', 'attachment', 'taxonomy' ], true ) ) { $url = 'taxonomy' === $templateType ? get_edit_term_link( $object, $object->taxonomy ) . '#aioseo-term-settings-field' : get_edit_post_link( $object, 'url' ) . '#aioseo-settings'; $queryArgs = [ 'aioseo-tab' => 'general' ]; if ( in_array( $snippet, [ 'facebook', 'twitter' ], true ) ) { $queryArgs = [ 'aioseo-tab' => 'social', 'social-tab' => $snippet ]; } return add_query_arg( $queryArgs, $url ); } // If we're in any sort of archive let's point to the global archive editing. if ( in_array( $templateType, [ 'archive', 'author', 'date', 'search' ], true ) ) { return admin_url( 'admin.php?page=aioseo-search-appearance' ) . '#/archives'; } // If homepage is set to show the latest posts let's point to the global home page editing. if ( 'dynamic_home' === $templateType ) { // Default `$url` for 'google' snippet. $url = add_query_arg( [ 'aioseo-scroll' => 'home-page-settings' ], admin_url( 'admin.php?page=aioseo-search-appearance' ) . '#/global-settings' ); if ( in_array( $snippet, [ 'facebook', 'twitter' ], true ) ) { $url = admin_url( 'admin.php?page=aioseo-social-networks' ) . '#/' . $snippet; } return $url; } return $url; } /** * Returns the "SEO Preview" submenu item data ("node" as WP calls it). * * @since 4.2.8 * * @return array The admin bar menu item data or an empty array if this feature is disabled. */ public function getAdminBarMenuItemNode() { if ( ! $this->enable ) { return []; } $title = esc_html__( 'SEO Preview', 'all-in-one-seo-pack' ); // @TODO Remove 'NEW' after a couple months. $title .= ''; $title .= esc_html__( 'NEW', 'all-in-one-seo-pack' ) . '!'; $title .= ''; return [ 'id' => 'aioseo-seo-preview', 'parent' => 'aioseo-main', 'title' => $title, 'href' => '#', ]; } }all-in-one-seo-pack/app/Common/Standalone/SetupWizard.php000064400000013525151222735770017312 0ustar00core->cache->get( 'activation_redirect' ) ) { return; } // If we are redirecting, clear the transient so it only happens once. aioseo()->core->cache->delete( 'activation_redirect' ); // Check option to disable welcome redirect. if ( get_option( 'aioseo_activation_redirect', false ) ) { return; } // Only do this for single site installs. if ( isset( $_GET['activate-multi'] ) || is_network_admin() ) { // phpcs:ignore HM.Security.NonceVerification.Recommended return; } wp_safe_redirect( admin_url( 'index.php?page=aioseo-setup-wizard' ) ); exit; } /** * Adds a dashboard page for our setup wizard. * * @since 4.0.0 * * @return void */ public function addDashboardPage() { add_dashboard_page( '', '', aioseo()->admin->getPageRequiredCapability( 'aioseo-setup-wizard' ), 'aioseo-setup-wizard', '' ); } /** * Hide the dashboard page from the menu. * * @since 4.1.5 * * @return void */ public function hideDashboardPageFromMenu() { remove_submenu_page( 'index.php', 'aioseo-setup-wizard' ); } /** * Checks to see if we should load the setup wizard. * * @since 4.0.0 * * @return void */ public function maybeLoadOnboardingWizard() { // Don't load the interface if doing an ajax call. if ( wp_doing_ajax() || wp_doing_cron() ) { return; } // Check for wizard-specific parameter // Allow plugins to disable the setup wizard // Check if current user is allowed to save settings. if ( ! isset( $_GET['page'] ) || // phpcs:ignore HM.Security.NonceVerification.Recommended 'aioseo-setup-wizard' !== sanitize_text_field( wp_unslash( $_GET['page'] ) ) || // phpcs:ignore HM.Security.NonceVerification.Recommended ! current_user_can( aioseo()->admin->getPageRequiredCapability( 'aioseo-setup-wizard' ) ) ) { return; } set_current_screen(); // Remove an action in the Gutenberg plugin ( not core Gutenberg ) which throws an error. remove_action( 'admin_print_styles', 'gutenberg_block_editor_admin_print_styles' ); // If we are redirecting, clear the transient so it only happens once. aioseo()->core->cache->delete( 'activation_redirect' ); $this->loadOnboardingWizard(); } /** * Load the Onboarding Wizard template. * * @since 4.0.0 * * @return void */ private function loadOnboardingWizard() { $this->enqueueScripts(); $this->setupWizardHeader(); $this->setupWizardContent(); $this->setupWizardFooter(); exit; } /** * Enqueue's scripts for the setup wizard. * * @since 4.0.0 * * @return void */ public function enqueueScripts() { // We don't want any plugin adding notices to our screens. Let's clear them out here. remove_all_actions( 'admin_notices' ); remove_all_actions( 'all_admin_notices' ); aioseo()->core->assets->load( 'src/vue/standalone/setup-wizard/main.js', [], aioseo()->helpers->getVueData( 'setup-wizard' ) ); aioseo()->main->enqueueTranslations(); wp_enqueue_style( 'common' ); wp_enqueue_media(); } /** * Outputs the simplified header used for the Onboarding Wizard. * * @since 4.0.0 * * @return void */ public function setupWizardHeader() { ?> > <?php // Translators: 1 - The plugin name ("All in One SEO"). echo sprintf( esc_html__( '%1$s › Onboarding Wizard', 'all-in-one-seo-pack' ), esc_html( AIOSEO_PLUGIN_SHORT_NAME ) ); ?> '; aioseo()->templates->getTemplate( 'admin/settings-page.php' ); echo '
    '; } /** * Outputs the simplified footer used for the Onboarding Wizard. * * @since 4.0.0 * * @return void */ public function setupWizardFooter() { ?> internalOptions->internal->wizard; $wizard = json_decode( $wizard ); if ( ! $wizard ) { return false; } $totalStageCount = count( $wizard->stages ); $currentStageCount = array_search( $wizard->currentStage, $wizard->stages, true ); // If not found, let's assume it's completed. if ( false === $currentStageCount ) { return true; } return $currentStageCount + 1 === $totalStageCount; } }all-in-one-seo-pack/app/Common/Standalone/Standalone.php000064400000004232151222735770017114 0ustar00headlineAnalyzer = new HeadlineAnalyzer(); $this->flyoutMenu = new FlyoutMenu(); $this->seoPreview = new SeoPreview(); $this->setupWizard = new SetupWizard(); $this->primaryTerm = aioseo()->pro ? new ProStandalone\PrimaryTerm() : new PrimaryTerm(); $this->userProfileTab = new UserProfileTab(); aioseo()->pro ? new ProStandalone\DetailsColumn() : new DetailsColumn(); new UserProfileTab(); new PublishPanel(); new LimitModifiedDate(); new Notifications(); new WpCode(); $this->pageBuilderIntegrations = [ 'elementor' => new PageBuilders\Elementor(), 'divi' => new PageBuilders\Divi(), 'seedprod' => new PageBuilders\SeedProd(), 'wpbakery' => new PageBuilders\WPBakery(), 'avada' => new PageBuilders\Avada() ]; $this->standaloneBlocks = [ 'tocBlock' => new Blocks\TableOfContents(), 'faqBlock' => new Blocks\FaqPage() ]; } }all-in-one-seo-pack/app/Common/Standalone/UserProfileTab.php000064400000011010151222735770017702 0ustar00helpers->getCurrentScreen(); if ( empty( $screen->id ) ) { return; } if ( ! in_array( $screen->id, [ 'user-edit', 'profile' ], true ) ) { if ( 'follow-up_page_followup-emails-reports' === $screen->id ) { aioseo()->core->assets->load( 'src/vue/standalone/user-profile-tab/follow-up-emails-nav-bar.js' ); } return; } global $user_id; if ( ! intval( $user_id ) ) { return; } aioseo()->core->assets->load( 'src/vue/standalone/user-profile-tab/main.js', [], $this->getVueData() ); } /** * Returns the data Vue requires. * * @since 4.2.2 * * @return array */ public function getVueData() { global $user_id; $socialProfiles = $this->getSocialProfiles(); foreach ( $socialProfiles as $platformKey => $v ) { $metaName = 'aioseo_' . aioseo()->helpers->toSnakeCase( $platformKey ); $socialProfiles[ $platformKey ] = get_user_meta( $user_id, $metaName, true ); } $sameUsername = get_user_meta( $user_id, 'aioseo_profiles_same_username', true ); if ( empty( $sameUsername ) ) { $sameUsername = [ 'enable' => false, 'username' => '', 'included' => [ 'facebookPageUrl', 'twitterUrl', 'tiktokUrl', 'pinterestUrl', 'instagramUrl', 'youtubeUrl', 'linkedinUrl' ] // Same as in Options.php. ]; } $additionalurls = get_user_meta( $user_id, 'aioseo_profiles_additional_urls', true ); $extraVueData = [ 'userProfile' => [ 'userData' => get_userdata( $user_id )->data, 'profiles' => [ 'sameUsername' => $sameUsername, 'urls' => $socialProfiles, 'additionalUrls' => $additionalurls ], 'isWooCommerceFollowupEmailsActive' => aioseo()->helpers->isWooCommerceFollowupEmailsActive() ] ]; $vueData = aioseo()->helpers->getVueData(); $vueData = array_merge( $vueData, $extraVueData ); return $vueData; } /** * Updates the user social profile URLs when a user's profile is updated. * * @since 4.2.2 * * @param int $userId The user ID. * @return void */ public function updateUserSocialProfiles( $userId ) { if ( empty( $_POST['_wpnonce'] ) || ! wp_verify_nonce( $_POST['_wpnonce'], 'update-user_' . $userId ) ) { return; } if ( empty( $_POST['aioseo-user-social-profiles'] ) ) { return; } $data = json_decode( sanitize_text_field( wp_unslash( $_POST['aioseo-user-social-profiles'] ) ), true ); if ( empty( $data ) ) { return; } $sanitizedIncluded = []; foreach ( $data['sameUsername']['included'] as $platformKey ) { $sanitizedIncluded[] = sanitize_text_field( $platformKey ); } $sanitizedSameUsernameData = [ 'enable' => (bool) $data['sameUsername']['enable'], 'username' => sanitize_text_field( $data['sameUsername']['username'] ), 'included' => array_filter( $sanitizedIncluded ) ]; update_user_meta( $userId, 'aioseo_profiles_same_username', $sanitizedSameUsernameData ); foreach ( $data['urls'] as $platformKey => $value ) { $value = sanitize_text_field( $value ); $metaName = 'aioseo_' . aioseo()->helpers->toSnakeCase( $platformKey ); update_user_meta( $userId, $metaName, $value ); } $additionalUrls = sanitize_text_field( $data['additionalUrls'] ); $sanitizedAdditionalUrls = preg_replace( '/\h/', "\n", $additionalUrls ); update_user_meta( $userId, 'aioseo_profiles_additional_urls', $sanitizedAdditionalUrls ); } /** * Returns a list of supported social profiles. * * @since 4.2.2 * * @return array */ public function getSocialProfiles() { return [ 'facebookPageUrl' => '', 'twitterUrl' => '', 'instagramUrl' => '', 'tiktokUrl' => '', 'pinterestUrl' => '', 'youtubeUrl' => '', 'linkedinUrl' => '', 'tumblrUrl' => '', 'yelpPageUrl' => '', 'soundCloudUrl' => '', 'wikipediaUrl' => '', 'myspaceUrl' => '' ]; } }all-in-one-seo-pack/app/Common/Standalone/WpCode.php000064400000001354151222735770016207 0ustar00options->deprecated->tools->blocker->blockBots ) { $uploadDirectory = wp_upload_dir(); $logDirectory = $uploadDirectory['basedir'] . '/aioseo/logs/'; if ( wp_mkdir_p( $logDirectory ) ) { $fs = aioseo()->core->fs; $filePath = $logDirectory . 'aioseo-bad-bot-blocker.log'; if ( ! $fs->exists( $filePath ) ) { $fs->touch( $filePath ); } if ( $fs->exists( $filePath ) ) { $this->log = new \AIOSEO\Vendor\Monolog\Logger( 'aioseo-bad-bot-blocker' ); $this->log->pushHandler( new \AIOSEO\Vendor\Monolog\Handler\StreamHandler( $filePath ) ); } } $blockReferer = aioseo()->options->deprecated->tools->blocker->blockReferer; $track = aioseo()->options->deprecated->tools->blocker->track; $ip = ! empty( $_SERVER['REMOTE_ADDR'] ) ? $_SERVER['REMOTE_ADDR'] : ''; $ip = aioseo()->helpers->validateIp( $ip ) ? $ip : __( '(Invalid IP)', 'all-in-one-seo-pack' ); if ( ! $this->allowBot() ) { if ( $track ) { $userAgent = $_SERVER['HTTP_USER_AGENT']; // Translators: 1 - The IP address. 2 - The user agent. $this->track( sprintf( __( 'Blocked bot with IP %1$s -- matched user agent %2$s found in blocklist.', 'all-in-one-seo-pack' ), $ip, $userAgent ) ); } status_header( 503 ); exit; } elseif ( $blockReferer && $this->isBadReferer() ) { status_header( 503 ); if ( $track ) { $referer = ! empty( $_SERVER['HTTP_REFERER'] ) ? esc_url_raw( wp_unslash( $_SERVER['HTTP_REFERER'] ) ) : ''; // Translators: 1 - The IP address. 2 - The referer. $this->track( sprintf( __( 'Blocked bot with IP %1$s -- matched referer %2$s found in blocklist.', 'all-in-one-seo-pack' ), $ip, $referer ) ); } status_header( 503 ); exit; } } } /** * Get the size of the log file. * * @since 4.0.0 * * @return integer The size of the log file. */ public function getLogSize() { $uploadDirectory = wp_upload_dir(); $logDirectory = $uploadDirectory['basedir'] . '/aioseo/logs/'; $filePath = $logDirectory . 'aioseo-bad-bot-blocker.log'; $fs = aioseo()->core->fs; if ( $fs->exists( $filePath ) ) { return $fs->size( $filePath ); } return 0; } /** * Clears the log for the bad bot blocker. * * @since 4.0.0 * * @return integer The file size. */ public function clearLog() { $uploadDirectory = wp_upload_dir(); $logDirectory = $uploadDirectory['basedir'] . '/aioseo/logs/'; $filePath = $logDirectory . 'aioseo-bad-bot-blocker.log'; $fs = aioseo()->core->fs; if ( $fs->exists( $filePath ) ) { $fs->putContents( $filePath, '' ); } return $this->getLogSize(); } /** * Returns the bot list. * * @since 4.0.0 * * @return array The bot list. */ public function getBotList() { return $this->botList; } /** * Returns the referer list. * * @since 4.0.0 * * @return array The referer list. */ public function getRefererList() { return $this->refererList; } /** * Whether or not to allow the bot through. * * @since 4.0.0 * * @return boolean True if this is a good bot and we can allow it through. */ private function allowBot() { $allow = true; if ( ! $this->isGoodBot() && $this->isBadBot() && ! is_user_logged_in() ) { $allow = false; } return apply_filters( 'aioseo_allow_bot', $allow ); } /** * Is this a good bot? * * @see Original code, thanks to Sean M. Brown. * @link http://smbrown.wordpress.com/2009/04/29/verify-googlebot-forward-reverse-dns/ * * @since 4.0.0 * * @return boolean True if this is a good bot. */ private function isGoodBot() { $botList = [ 'Yahoo! Slurp' => 'crawl.yahoo.net', 'googlebot' => '.googlebot.com', 'msnbot' => 'search.msn.com', ]; $botList = apply_filters( 'aioseo_good_bot_list', $botList ); if ( ! empty( $botList ) ) { if ( ! isset( $_SERVER['HTTP_USER_AGENT'] ) ) { return false; } $ua = $_SERVER['HTTP_USER_AGENT']; $uas = $this->prepareList( $botList ); if ( preg_match( '/' . $uas . '/i', $ua ) ) { $ip = $_SERVER['REMOTE_ADDR']; $hostname = gethostbyaddr( $ip ); $ipByHostName = gethostbyname( $hostname ); if ( $ipByHostName === $ip ) { $hosts = array_values( $botList ); foreach ( $hosts as $k => $h ) { $hosts[ $k ] = preg_quote( $h ) . '$'; } $hosts = join( '|', $hosts ); if ( preg_match( '/' . $hosts . '/i', $hostname ) ) { return true; } } } } return false; } /** * Is this a bad bot? * * @since 4.0.0 * * @return boolean True if it is a bad bot. */ private function isBadBot() { $botList = aioseo()->options->deprecated->tools->blocker->custom->enable ? explode( "\n", aioseo()->options->deprecated->tools->blocker->custom->bots ) : $this->botList; $botList = apply_filters( 'aioseo_bad_bot_list', $botList ); if ( ! empty( $botList ) ) { if ( ! isset( $_SERVER['HTTP_USER_AGENT'] ) ) { return false; } $ua = $_SERVER['HTTP_USER_AGENT']; $uas = $this->prepareList( $botList ); if ( preg_match( '/' . $uas . '/i', $ua ) ) { return true; } } return false; } /** * Is this a bad referer? * * @since 4.0.0 * * @return boolean True if this is a bad referer. */ private function isBadReferer() { $refererList = aioseo()->options->deprecated->tools->blocker->custom->enable ? explode( "\n", aioseo()->options->deprecated->tools->blocker->custom->referer ) : $this->refererList; $refererList = apply_filters( 'aioseo_bad_referer_list', $refererList ); if ( ! empty( $refererList ) && ! empty( $_SERVER ) && ! empty( $_SERVER['HTTP_REFERER'] ) ) { $referer = esc_url_raw( wp_unslash( $_SERVER['HTTP_REFERER'] ) ); $regex = $this->prepareList( $refererList ); if ( preg_match( '/' . $regex . '/i', $referer ) ) { return true; } } return false; } /** * Quote List for Regex * * @since 4.0.0 * * @param $list * @param string $quote * @return string */ private function prepareList( $list, $quote = '/' ) { $regex = ''; $cont = 0; foreach ( $list as $l ) { $trim_l = trim( $l ); if ( ! empty( $trim_l ) ) { if ( $cont ) { $regex .= '|'; } $cont = 1; $regex .= preg_quote( trim( $l ), $quote ); } } return $regex; } /** * Tracks the bad bot that was blocked. * * @since 4.0.0 * * @param string $message The message to log. * @return void */ public function track( $message ) { if ( $this->log ) { $this->log->info( $message ); } } }all-in-one-seo-pack/app/Common/Tools/Htaccess.php000064400000004320151222735770015567 0ustar00path = ABSPATH . '.htaccess'; } /** * Get the contents of the .htaccess file. * * @since 4.0.0 * * @return string The contents of the file. */ public function getContents() { $fs = aioseo()->core->fs; if ( ! $fs->exists( $this->path ) ) { return false; } $contents = $fs->getContents( $this->path ); return aioseo()->helpers->encodeOutputHtml( $contents ); } /** * Saves the contents of the .htaccess file. * * @since 4.0.0 * * @param string $contents The contents to write. * @return boolean True if the file was updated. */ public function saveContents( $contents ) { $fs = aioseo()->core->fs; if ( ! $fs->isWritable( $this->path ) ) { return [ 'success' => false, 'reason' => 'file-not-writable', 'message' => __( 'We were unable to save the .htaccess file because the file was not writable. Please check the file permissions and try again.', 'all-in-one-seo-pack' ) ]; } $fileExists = $fs->exists( $this->path ); $originalContents = $fileExists ? $fs->getContents( $this->path ) : null; $fileSaved = $fs->putContents( $this->path, $contents ); if ( false === $fileSaved ) { return [ 'success' => false, 'reason' => 'file-not-saved' ]; } $response = wp_remote_get( home_url( '?' . time() ) ); $isValidRequest = wp_remote_retrieve_response_code( $response ); if ( // Add an exception for Windows devs since the request fails in Local. ! defined( 'AIOSEO_DEV_WINDOWS' ) && ( is_wp_error( $response ) || 200 !== $isValidRequest ) ) { $fs->putContents( $this->path, $originalContents ); return [ 'success' => false, 'reason' => 'syntax-errors', 'message' => __( 'We were unable to save the .htaccess file due to syntax errors. Please check the code below and try again.', 'all-in-one-seo-pack' ) ]; } return [ 'success' => true ]; } }all-in-one-seo-pack/app/Common/Tools/RobotsTxt.php000064400000042677151222735770016023 0ustar00extractRules( $original ); $networkRules = []; if ( is_multisite() ) { $networkRules = aioseo()->networkOptions->tools->robots->enable ? aioseo()->networkOptions->tools->robots->rules : []; } if ( ! aioseo()->options->tools->robots->enable ) { $ruleset = $this->mergeRules( $originalRules, $this->groupRulesByUserAgent( $networkRules ) ); } else { $ruleset = $this->mergeRules( $originalRules, $this->mergeRules( $this->groupRulesByUserAgent( $networkRules ), $this->groupRulesByUserAgent( aioseo()->options->tools->robots->rules ) ), true ); } /** * Any plugin can wrongly modify the robots.txt output by hoking into the `do_robots` action hook, * instead of hooking into the `robots_txt` filter hook. * For the first scenario, to make sure our output doesn't conflict with theirs, a new line is necessary. */ return $this->stringifyRuleset( $ruleset ) . "\n"; } /** * Merges two rulesets. * * @since 4.0.0 * @version 4.4.2 * * @param array $rules1 An array of rules to merge with. * @param array $rules2 An array of rules to merge. * @param boolean $allowOverride Whether to allow overriding. * @param boolean $allowDuplicates Whether to allow duplicates. * @return array The validated rules. */ private function mergeRules( $rules1, $rules2, $allowOverride = false, $allowDuplicates = false ) { foreach ( $rules2 as $userAgent => $rules ) { if ( empty( $userAgent ) ) { continue; } if ( empty( $rules1[ $userAgent ] ) ) { $rules1[ $userAgent ] = array_unique( $rules2[ $userAgent ] ); continue; } list( $rules1, $rules2 ) = $this->mergeRulesHelper( 'allow', $userAgent, $rules, $rules1, $rules2, $allowDuplicates, $allowOverride ); list( $rules1, $rules2 ) = $this->mergeRulesHelper( 'disallow', $userAgent, $rules, $rules1, $rules2, $allowDuplicates, $allowOverride ); $rules1[ $userAgent ] = array_unique( array_merge( $rules1[ $userAgent ], $rules2[ $userAgent ] ) ); } return $rules1; } /** * Helper function for {@see mergeRules()}. * * @since 4.1.2 * @version 4.4.2 * * @param string $directive The directive (allow/disallow). * @param string $userAgent The user agent. * @param array $rules The rules. * @param array $rules1 The original rules. * @param array $rules2 The extra rules. * @param bool $allowDuplicates Whether duplicates should be allowed * @param bool $allowOverride Whether the extra rules can override the original ones. * @return array The original and extra rules. */ private function mergeRulesHelper( $directive, $userAgent, $rules, $rules1, $rules2, $allowDuplicates, $allowOverride ) { $otherDirective = ( 'allow' === $directive ) ? 'disallow' : 'allow'; foreach ( $rules as $index1 => $rule ) { list( , $ruleValue ) = $this->parseRule( $rule ); $index2 = array_search( "$otherDirective: $ruleValue", $rules1[ $userAgent ], true ); if ( false !== $index2 && ! $allowDuplicates ) { if ( $allowOverride ) { unset( $rules1[ $userAgent ][ $index2 ] ); } else { unset( $rules2[ $userAgent ][ $index1 ] ); } } $pattern = str_replace( [ '.', '*', '?', '$' ], [ '\.', '(.*)', '\?', '\$' ], $ruleValue ); foreach ( $rules1[ $userAgent ] as $rule1 ) { $matches = []; preg_match( "#^$otherDirective: $pattern$#", $rule1, $matches ); } if ( ! empty( $matches ) && ! $allowDuplicates ) { unset( $rules2[ $userAgent ][ $index1 ] ); } } return [ $rules1, $rules2 ]; } /** * Parses a rule and extracts the directive and value. * * @since 4.4.2 * * @param string $rule The rule to parse. * @return array An array containing the parsed directive and value. */ private function parseRule( $rule ) { list( $directive, $value ) = array_map( 'trim', array_pad( explode( ':', $rule, 2 ), 2, '' ) ); return [ $directive, $value ]; } /** * Stringifies the parsed rules. * * @since 4.0.0 * @version 4.4.2 * * @param array $allRules The rules array. * @return string The stringified rules. */ private function stringifyRuleset( $allRules ) { $robots = []; foreach ( $allRules as $userAgent => $rules ) { if ( empty( $userAgent ) ) { continue; } $robots[] = "\r\nUser-agent: $userAgent"; foreach ( $rules as $rule ) { list( $directive, $value ) = $this->parseRule( $rule ); if ( empty( $directive ) || empty( $value ) ) { continue; } $robots[] = sprintf( '%s: %s', ucfirst( $directive ), $value ); } } $robots = implode( "\r\n", $robots ); $sitemapUrls = $this->getSitemapRules(); if ( ! empty( $sitemapUrls ) ) { $sitemapUrls = implode( "\r\n", $sitemapUrls ); $robots .= "\r\n\r\n$sitemapUrls"; } return trim( $robots ); } /** * Get Sitemap URLs excluding the default ones. * * @since 4.1.7 * * @return array An array of the Sitemap URLs. */ private function getSitemapRules() { $defaultSitemaps = $this->extractSitemapUrls( aioseo()->robotsTxt->getDefaultRobotsTxtContent() ); $sitemapRules = aioseo()->sitemap->helpers->getSitemapUrls(); return array_diff( $sitemapRules, $defaultSitemaps ); } /** * Parses the rules. * * @since 4.0.0 * @version 4.4.2 * * @param array $rules An array of rules. * @return array The rules grouped by user agent. */ private function groupRulesByUserAgent( $rules ) { $groups = []; foreach ( $rules as $rule ) { $r = json_decode( $rule, true ); if ( empty( $r['userAgent'] ) || empty( $r['fieldValue'] ) ) { continue; } if ( empty( $groups[ $r['userAgent'] ] ) ) { $groups[ $r['userAgent'] ] = []; } $groups[ $r['userAgent'] ][] = "{$r['directive']}: {$r['fieldValue']}"; } return $groups; } /** * Extract rules from a string. * * @since 4.0.0 * @version 4.4.2 * * @param string $lines The lines to extract from. * @return array An array of extracted rules. */ public function extractRules( $lines ) { $lines = array_filter( array_map( 'trim', explode( "\n", (string) $lines ) ) ); $rules = []; $userAgent = null; $prevDirective = null; $prevValue = null; $siblingsUserAgents = []; foreach ( $lines as $line ) { list( $directive, $value ) = $this->parseRule( $line ); if ( empty( $directive ) || empty( $value ) ) { continue; } $directive = strtolower( $directive ); if ( ! in_array( $directive, $this->allowedDirectives, true ) ) { continue; } $value = $this->sanitizeDirectiveValue( $directive, $value ); if ( ! $value ) { continue; } if ( 'user-agent' === $directive ) { if ( ! empty( $prevDirective ) && ! empty( $prevValue ) && 'user-agent' === $prevDirective ) { $siblingsUserAgents[] = $prevValue; } $userAgent = $value; $rules[ $userAgent ] = []; } else { $rules[ $userAgent ][] = "$directive: $value"; if ( $siblingsUserAgents ) { foreach ( $siblingsUserAgents as $siblingUserAgent ) { $rules[ $siblingUserAgent ] = $rules[ $userAgent ]; } $siblingsUserAgents = []; } } $prevDirective = $directive; $prevValue = $value; } return $rules; } /** * Extract sitemap URLs from a string. * * @since 4.0.10 * * @param string $lines The lines to extract from. * @return array An array of sitemap URLs. */ public function extractSitemapUrls( $lines ) { $lines = array_filter( array_map( 'trim', explode( "\n", (string) $lines ) ) ); $sitemapUrls = []; foreach ( $lines as $line ) { $array = array_map( 'trim', explode( 'sitemap:', strtolower( $line ) ) ); if ( ! empty( $array[1] ) ) { $sitemapUrls[] = trim( $line ); } } return $sitemapUrls; } /** * Sanitize the robots.txt rule directive value. * * @since 4.0.0 * @version 4.4.2 * * @param string $directive The directive. * @param string $value The value. * @return string The directive value. */ private function sanitizeDirectiveValue( $directive, $value ) { // Percent-encoded characters are stripped from our option values, so we decode. $value = rawurldecode( trim( $value ) ); if ( ! $value ) { return $value; } $value = preg_replace( '/[><]/', '', $value ); if ( 'user-agent' === $directive ) { $value = preg_replace( '/[^a-z0-9\-_*,.\s]/i', '', $value ); } if ( 'allow' === $directive || 'disallow' === $directive ) { $value = preg_replace( '/^\/+/', '/', $value ); } return $value; } /** * Check if a physical robots.txt file exists, and if it does add a notice. * * @since 4.0.0 * * @return void */ public function checkForPhysicalFiles() { if ( ! $this->hasPhysicalRobotsTxt() ) { return; } $notification = Models\Notification::getNotificationByName( 'robots-physical-file' ); if ( $notification->exists() ) { return; } Models\Notification::addNotification( [ 'slug' => uniqid(), 'notification_name' => 'robots-physical-file', 'title' => __( 'Physical Robots.txt File Detected', 'all-in-one-seo-pack' ), 'content' => sprintf( // Translators: 1 - The plugin short name ("AIOSEO"), 2 - The plugin short name ("AIOSEO"). __( '%1$s has detected a physical robots.txt file in the root folder of your WordPress installation. We recommend removing this file as it could cause conflicts with WordPress\' dynamically generated one. %2$s can import this file and delete it, or you can simply delete it.', 'all-in-one-seo-pack' ), // phpcs:ignore Generic.Files.LineLength.MaxExceeded AIOSEO_PLUGIN_SHORT_NAME, AIOSEO_PLUGIN_SHORT_NAME ), 'type' => 'error', 'level' => [ 'all' ], 'button1_label' => __( 'Import and Delete', 'all-in-one-seo-pack' ), 'button1_action' => 'http://action#tools/import-robots-txt?redirect=aioseo-tools:robots-editor', 'button2_label' => __( 'Delete', 'all-in-one-seo-pack' ), 'button2_action' => 'http://action#tools/delete-robots-txt?redirect=aioseo-tools:robots-editor', 'start' => gmdate( 'Y-m-d H:i:s' ) ] ); } /** * Import physical robots.txt file. * * @since 4.0.0 * @version 4.4.2 * * @param bool $network True if inside WordPress network administration pages. * @throws \Exception If request fails or file is not readable. * @return boolean Whether or not the file imported correctly. */ public function importPhysicalRobotsTxt( $network = false ) { try { $fs = aioseo()->core->fs; if ( ! $fs->isWpfsValid() ) { $invalid = true; } $file = trailingslashit( $fs->fs->abspath() ) . 'robots.txt'; if ( isset( $invalid ) || ! $fs->isReadable( $file ) ) { throw new \Exception( esc_html__( 'There was an error importing the static robots.txt file.', 'all-in-one-seo-pack' ) ); } $lines = trim( (string) $fs->getContents( $file ) ); if ( $lines ) { $this->importRobotsTxtFromText( $lines, $network ); } return true; } catch ( \Exception $e ) { throw new \Exception( esc_html( $e->getMessage() ) ); } } /** * Import robots.txt from a URL. * * @since 4.4.2 * * @param string $text The text to import from. * @param bool $network True if inside WordPress network administration pages. * @throws \Exception If no User-agent is found. * @return boolean Whether the file imported correctly or not. */ public function importRobotsTxtFromText( $text, $network ) { $ruleset = $this->extractRules( $text ); if ( ! key( $ruleset ) ) { throw new \Exception( esc_html__( 'No User-agent found in the content beginning.', 'all-in-one-seo-pack' ) ); } $options = aioseo()->options; if ( $network ) { $options = aioseo()->networkOptions; } $currentRules = $this->groupRulesByUserAgent( $options->tools->robots->rules ); $ruleset = $this->mergeRules( $currentRules, $ruleset, false, true ); $options->tools->robots->rules = aioseo()->robotsTxt->prepareRobotsTxt( $ruleset ); return true; } /** * Import robots.txt from a URL. * * @since 4.4.2 * * @param string $url The URL to import from. * @param bool $network True if inside WordPress network administration pages. * @throws \Exception If request fails. * @return bool Whether the import was successful or not. */ public function importRobotsTxtFromUrl( $url, $network ) { $request = wp_remote_get( $url, [ 'timeout' => 10, 'sslverify' => false ] ); $robotsTxtContent = wp_remote_retrieve_body( $request ); if ( ! $robotsTxtContent ) { throw new \Exception( esc_html__( 'There was an error importing the robots.txt content from the URL.', 'all-in-one-seo-pack' ) ); } $options = aioseo()->options; if ( $network ) { $options = aioseo()->networkOptions; } $newRules = $this->extractRules( $robotsTxtContent ); $currentRules = $this->groupRulesByUserAgent( $options->tools->robots->rules ); $newRules = $this->mergeRules( $currentRules, $newRules, false, true ); $options->tools->robots->rules = aioseo()->robotsTxt->prepareRobotsTxt( $newRules ); return true; } /** * Deletes the physical robots.txt file. * * @since 4.4.5 * * @throws \Exception If the file is not readable, or it can't be deleted. * @return true True if the file was successfully deleted. */ public function deletePhysicalRobotsTxt() { try { $fs = aioseo()->core->fs; if ( ! $fs->isWpfsValid() || ! $fs->fs->delete( trailingslashit( $fs->fs->abspath() ) . 'robots.txt' ) ) { throw new \Exception( __( 'There was an error deleting the physical robots.txt file.', 'all-in-one-seo-pack' ) ); } Models\Notification::deleteNotificationByName( 'robots-physical-file' ); return true; } catch ( \Exception $e ) { throw new \Exception( esc_html( $e->getMessage() ) ); } } /** * Prepare robots.txt rules to save. * * @since 4.1.4 * * @param array $allRules Array with the rules. * @return array The prepared rules array. */ public function prepareRobotsTxt( $allRules = [] ) { $robots = []; foreach ( $allRules as $userAgent => $rules ) { if ( empty( $userAgent ) ) { continue; } foreach ( $rules as $rule ) { list( $directive, $value ) = $this->parseRule( $rule ); if ( empty( $directive ) || empty( $value ) ) { continue; } if ( '*' === $userAgent && ( 'allow' === $directive && '/wp-admin/admin-ajax.php' === $value || 'disallow' === $directive && '/wp-admin/' === $value ) ) { continue; } $robots[] = wp_json_encode( [ 'userAgent' => $userAgent, 'directive' => $directive, 'fieldValue' => $value ] ); } } return $robots; } /** * Checks if a physical robots.txt file exists. * * @since 4.0.0 * * @return boolean True if it does, false if not. */ public function hasPhysicalRobotsTxt() { $fs = aioseo()->core->fs; if ( ! $fs->isWpfsValid() ) { return false; } $accessType = get_filesystem_method(); if ( 'direct' === $accessType ) { $file = trailingslashit( $fs->fs->abspath() ) . 'robots.txt'; return $fs->exists( $file ); } return false; } /** * Get the default Robots.txt lines (excluding our own). * * @since 4.1.7 * @version 4.4.2 * * @return string The robots.txt content rules (excluding our own). */ public function getDefaultRobotsTxtContent() { // First, we need to remove our filter, so that it doesn't run unintentionally. remove_filter( 'robots_txt', [ $this, 'buildRules' ], 10000 ); ob_start(); do_robots(); if ( is_admin() ) { header( 'Content-Type: text/html; charset=utf-8' ); } $rules = strval( ob_get_clean() ); // Add the filter back. add_filter( 'robots_txt', [ $this, 'buildRules' ], 10000 ); return $rules; } /** * A check to see if the rewrite rules are set. * This isn't perfect, but it will help us know in most cases. * * @since 4.0.0 * * @return boolean Whether the rewrite rules are set or not. */ public function rewriteRulesExist() { // If we have a physical file, it's almost impossible to tell if the rewrite rules are set. // The only scenario is if we still get a 404. $response = wp_remote_get( aioseo()->helpers->getSiteUrl() . '/robots.txt' ); if ( 299 < wp_remote_retrieve_response_code( $response ) ) { return false; } return true; } }all-in-one-seo-pack/app/Common/Tools/SystemStatus.php000064400000031021151222735770016520 0ustar00 self::getWordPressInfo(), 'constants' => self::getConstants(), 'serverInfo' => self::getServerInfo(), 'muPlugins' => self::mustUsePlugins(), 'activeTheme' => self::activeTheme(), 'activePlugins' => self::activePlugins(), 'inactivePlugins' => self::inactivePlugins(), 'database' => self::getDatabaseInfo() ]; } /** * Get an array of system info from WordPress. * * @since 4.0.0 * * @return array An array of system info. */ public static function getWordPressInfo() { $uploadsDir = wp_upload_dir(); $version = get_bloginfo( 'version' ); $updates = get_site_transient( 'update_core' ); $updateVersion = ! empty( $updates->updates[0]->version ) ? $updates->updates[0]->version : null; if ( version_compare( $version, $updateVersion, '<' ) ) { $version .= ' (' . __( 'Latest version:', 'all-in-one-seo-pack' ) . ' ' . $updateVersion . ')'; } return [ 'label' => 'WordPress', 'results' => [ [ 'header' => __( 'Version', 'all-in-one-seo-pack' ), 'value' => $version ], [ 'header' => __( 'Site Title', 'all-in-one-seo-pack' ), 'value' => get_bloginfo( 'name' ) ], [ 'header' => __( 'Site Language', 'all-in-one-seo-pack' ), 'value' => get_locale() ?: 'en_US' ], [ 'header' => __( 'User Language', 'all-in-one-seo-pack' ), 'value' => get_user_locale( get_current_user_id() ) ], [ 'header' => __( 'Timezone', 'all-in-one-seo-pack' ), 'value' => aioseo()->helpers->getTimeZoneOffset() ], [ 'header' => __( 'Home URL', 'all-in-one-seo-pack' ), 'value' => home_url() ], [ 'header' => __( 'Site URL', 'all-in-one-seo-pack' ), 'value' => site_url() ], [ 'header' => __( 'Permalink Structure', 'all-in-one-seo-pack' ), 'value' => get_option( 'permalink_structure' ) ? get_option( 'permalink_structure' ) : __( 'Default', 'all-in-one-seo-pack' ) ], [ 'header' => __( 'Multisite', 'all-in-one-seo-pack' ), 'value' => is_multisite() ? __( 'Yes', 'all-in-one-seo-pack' ) : __( 'No', 'all-in-one-seo-pack' ) ], [ 'header' => 'HTTPS', 'value' => is_ssl() ? __( 'Yes', 'all-in-one-seo-pack' ) : __( 'No', 'all-in-one-seo-pack' ) ], [ 'header' => __( 'User Count', 'all-in-one-seo-pack' ), 'value' => count_users()['total_users'] ], [ 'header' => __( 'Front Page Info', 'all-in-one-seo-pack' ), 'value' => 'page' === get_option( 'show_on_front' ) ? get_option( 'show_on_front' ) . ' [ID: ' . get_option( 'page_on_front' ) . ']' : get_option( 'show_on_front' ) ], [ 'header' => __( 'Search Engine Visibility', 'all-in-one-seo-pack' ), 'value' => get_option( 'blog_public' ) ? __( 'Visible', 'all-in-one-seo-pack' ) : __( 'Hidden', 'all-in-one-seo-pack' ) ], [ 'header' => __( 'Upload Directory Info', 'all-in-one-seo-pack' ), 'value' => __( 'Path:', 'all-in-one-seo-pack' ) . ' ' . $uploadsDir['path'] . ', ' . __( 'Url:', 'all-in-one-seo-pack' ) . ' ' . $uploadsDir['url'] . ', ' . __( 'Base Directory:', 'all-in-one-seo-pack' ) . ' ' . $uploadsDir['basedir'] . ', ' . __( 'Base URL:', 'all-in-one-seo-pack' ) . ' ' . $uploadsDir['baseurl'] ] ] ]; } /** * Get an array of database info from WordPress. * * @since 4.4.5 * * @return array An array of database info. */ public static function getDatabaseInfo() { $dbInfo = aioseo()->core->db->getDatabaseInfo(); if ( empty( $dbInfo['tables'] ) ) { return []; } if ( ! aioseo()->helpers->isDev() ) { return []; } $results = []; $tables = array_merge( $dbInfo['tables']['aioseo'], $dbInfo['tables']['other'] ); foreach ( $tables as $tableName => $tableData ) { $results[] = [ 'header' => $tableName, 'value' => sprintf( // Translators: %1$s is the data size, %2$s is the index size, %3$s is the engine type. __( 'Data: %1$.2f MB / Index: %2$.2f MB / Engine: %3$s / Collation: %4$s', 'all-in-one-seo-pack' ), $tableData['data'], $tableData['index'], $tableData['engine'], $tableData['collation'] ) ]; } return [ 'label' => __( 'Database', 'all-in-one-seo-pack' ), 'results' => array_merge( [ [ 'header' => __( 'Database Size', 'all-in-one-seo-pack' ), 'value' => sprintf( '%.2f MB', $dbInfo['size']['data'] + $dbInfo['size']['index'] ) ] ], $results ) ]; } /** * Get an array of system info from WordPress constants. * * @since 4.0.0 * * @return array An array of system info. */ public static function getConstants() { return [ 'label' => __( 'Constants', 'all-in-one-seo-pack' ), 'results' => [ [ 'header' => 'ABSPATH', 'value' => ABSPATH ], [ 'header' => 'WP_CONTENT_DIR', 'value' => defined( 'WP_CONTENT_DIR' ) ? ( WP_CONTENT_DIR ? WP_CONTENT_DIR : __( 'Disabled', 'all-in-one-seo-pack' ) ) : __( 'Not set', 'all-in-one-seo-pack' ) ], [ 'header' => 'WP_CONTENT_URL', 'value' => defined( 'WP_CONTENT_URL' ) ? ( WP_CONTENT_URL ? WP_CONTENT_URL : __( 'Disabled', 'all-in-one-seo-pack' ) ) : __( 'Not set', 'all-in-one-seo-pack' ) ], [ 'header' => 'UPLOADS', 'value' => defined( 'UPLOADS' ) ? ( UPLOADS ? UPLOADS : __( 'Disabled', 'all-in-one-seo-pack' ) ) : __( 'Not set', 'all-in-one-seo-pack' ) ], [ 'header' => 'WP_DEBUG', 'value' => defined( 'WP_DEBUG' ) ? ( WP_DEBUG ? WP_DEBUG : __( 'Disabled', 'all-in-one-seo-pack' ) ) : __( 'Not set', 'all-in-one-seo-pack' ) ], [ 'header' => 'WP_DEBUG_LOG', 'value' => defined( 'WP_DEBUG_LOG' ) ? ( WP_DEBUG_LOG ? WP_DEBUG_LOG : __( 'Disabled', 'all-in-one-seo-pack' ) ) : __( 'Not set', 'all-in-one-seo-pack' ) ], [ 'header' => 'WP_DEBUG_DISPLAY', 'value' => defined( 'WP_DEBUG_DISPLAY' ) ? ( WP_DEBUG_DISPLAY ? WP_DEBUG_DISPLAY : __( 'Disabled', 'all-in-one-seo-pack' ) ) : __( 'Not set', 'all-in-one-seo-pack' ) ], [ 'header' => 'WPS_DEBUG', 'value' => defined( 'WPS_DEBUG' ) ? ( WPS_DEBUG ? WPS_DEBUG : __( 'Disabled', 'all-in-one-seo-pack' ) ) : __( 'Not set', 'all-in-one-seo-pack' ) ], [ 'header' => 'DB_CHARSET', 'value' => defined( 'DB_CHARSET' ) ? ( DB_CHARSET ? DB_CHARSET : __( 'Disabled', 'all-in-one-seo-pack' ) ) : __( 'Not set', 'all-in-one-seo-pack' ) ], [ 'header' => 'DB_COLLATE', 'value' => defined( 'DB_COLLATE' ) ? ( DB_COLLATE ? DB_COLLATE : __( 'Disabled', 'all-in-one-seo-pack' ) ) : __( 'Not set', 'all-in-one-seo-pack' ) ] ] ]; } /** * Get an array of system info from the server. * * @since 4.0.0 * * @return array An array of system info. */ public static function getServerInfo() { $sqlMode = null; $mysqlInfo = aioseo()->core->db->db->get_results( "SHOW VARIABLES LIKE 'sql_mode'" ); if ( ! empty( $mysqlInfo ) && is_array( $mysqlInfo ) ) { $sqlMode = $mysqlInfo[0]->Value; } $dbServerInfo = method_exists( aioseo()->core->db->db, 'db_server_info' ) ? aioseo()->core->db->db->db_server_info() : ( function_exists( 'mysqli_get_server_info' ) ? mysqli_get_server_info( aioseo()->core->db->db->dbh ) // phpcs:ignore WordPress.DB.RestrictedFunctions.mysql_mysqli_get_server_info : '' ); return [ 'label' => __( 'Server Info', 'all-in-one-seo-pack' ), 'results' => [ [ 'header' => __( 'Operating System', 'all-in-one-seo-pack' ), 'value' => PHP_OS ], [ 'header' => __( 'Web Server', 'all-in-one-seo-pack' ), 'value' => ! empty( $_SERVER['SERVER_SOFTWARE'] ) ? sanitize_text_field( wp_unslash( $_SERVER['SERVER_SOFTWARE'] ) ) : __( 'unknown', 'all-in-one-seo-pack' ) ], [ 'header' => __( 'Memory Usage', 'all-in-one-seo-pack' ), 'value' => function_exists( 'memory_get_usage' ) ? round( memory_get_usage() / 1024 / 1024, 2 ) . 'M' : __( 'N/A', 'all-in-one-seo-pack' ) ], [ 'header' => __( 'Database Powered By', 'all-in-one-seo-pack' ), 'value' => stripos( $dbServerInfo, 'mariadb' ) !== false ? 'MariaDB' : 'MySQL' ], [ 'header' => __( 'Database Version', 'all-in-one-seo-pack' ), 'value' => aioseo()->core->db->db->db_version() ], [ 'header' => __( 'SQL Mode', 'all-in-one-seo-pack' ), 'value' => $sqlMode ?? __( 'Not Set', 'all-in-one-seo-pack' ), ], [ 'header' => __( 'PHP Version', 'all-in-one-seo-pack' ), 'value' => PHP_VERSION ], [ 'header' => __( 'PHP Memory Limit', 'all-in-one-seo-pack' ), 'value' => ini_get( 'memory_limit' ) ], [ 'header' => __( 'PHP Max Upload Size', 'all-in-one-seo-pack' ), 'value' => ini_get( 'upload_max_filesize' ) ], [ 'header' => __( 'PHP Max Post Size', 'all-in-one-seo-pack' ), 'value' => ini_get( 'post_max_size' ) ], [ 'header' => __( 'PHP Max Script Execution Time', 'all-in-one-seo-pack' ), 'value' => ini_get( 'max_execution_time' ) ], [ 'header' => __( 'PHP Exif Support', 'all-in-one-seo-pack' ), 'value' => is_callable( 'exif_read_data' ) ? __( 'Yes', 'all-in-one-seo-pack' ) : __( 'No', 'all-in-one-seo-pack' ) ], [ 'header' => __( 'PHP IPTC Support', 'all-in-one-seo-pack' ), 'value' => is_callable( 'iptcparse' ) ? __( 'Yes', 'all-in-one-seo-pack' ) : __( 'No', 'all-in-one-seo-pack' ) ], [ 'header' => __( 'PHP XML Support', 'all-in-one-seo-pack' ), 'value' => is_callable( 'xml_parser_create' ) ? __( 'Yes', 'all-in-one-seo-pack' ) : __( 'No', 'all-in-one-seo-pack' ) ] ] ]; } /** * Get an array of system info from the active theme. * * @since 4.0.0 * * @return array An array of system info. */ public static function activeTheme() { $themeData = wp_get_theme(); return [ 'label' => __( 'Active Theme', 'all-in-one-seo-pack' ), 'results' => [ [ 'header' => $themeData->name, 'value' => $themeData->version ] ] ]; } /** * Get an array of system info from must-use plugins. * * @since 4.0.0 * * @return array An array of system info. */ public static function mustUsePlugins() { $plugins = []; $muPlugins = get_mu_plugins(); if ( ! empty( $muPlugins ) ) { foreach ( $muPlugins as $pluginData ) { $plugins[] = [ 'header' => $pluginData['Name'], 'value' => $pluginData['Version'] ]; } } return [ 'label' => __( 'Must-Use Plugins', 'all-in-one-seo-pack' ), 'results' => $plugins ]; } /** * Get an array of system info from active plugins. * * @since 4.0.0 * * @return array An array of system info. */ public static function activePlugins() { $plugins = []; $allPlugins = get_plugins(); $activePlugins = get_option( 'active_plugins', [] ); $updates = get_plugin_updates(); if ( ! empty( $allPlugins ) ) { foreach ( $allPlugins as $pluginPath => $pluginData ) { if ( ! in_array( $pluginPath, $activePlugins, true ) ) { continue; } $update = ( array_key_exists( $pluginPath, $updates ) ) ? ' (' . __( 'needs update', 'all-in-one-seo-pack' ) . ' - ' . $updates[ $pluginPath ]->update->new_version . ')' : ''; $plugins[] = [ 'header' => $pluginData['Name'], 'value' => $pluginData['Version'] . $update ]; } } return [ 'label' => __( 'Active Plugins', 'all-in-one-seo-pack' ), 'results' => $plugins ]; } /** * Get an array of system info from inactive plugins. * * @since 4.0.0 * * @return array An array of system info. */ public static function inactivePlugins() { $plugins = []; $allPlugins = get_plugins(); $activePlugins = get_option( 'active_plugins', [] ); $updates = get_plugin_updates(); if ( ! empty( $allPlugins ) ) { foreach ( $allPlugins as $pluginPath => $pluginData ) { if ( in_array( $pluginPath, $activePlugins, true ) ) { continue; } $update = ( array_key_exists( $pluginPath, $updates ) ) ? ' (' . __( 'needs update', 'all-in-one-seo-pack' ) . ' - ' . $updates[ $pluginPath ]->update->new_version . ')' : ''; $plugins[] = [ 'header' => $pluginData['Name'], 'value' => $pluginData['Version'] . $update ]; } } return [ 'label' => __( 'Inactive Plugins', 'all-in-one-seo-pack' ), 'results' => $plugins ]; } }all-in-one-seo-pack/app/Common/Traits/Helpers/Api.php000064400000004752151222735770016324 0ustar00 'application/json' ] ); // Setup variable for wp_remote_post. $requestArgs = [ 'headers' => $headers, 'body' => $body, 'timeout' => 20 ]; // Perform the query and retrieve the response. $response = $this->wpRemotePost( $url, $requestArgs ); $responseBody = wp_remote_retrieve_body( $response ); // Bail out early if there are any errors. if ( ! $responseBody ) { return null; } // Return the json decoded content. return json_decode( $responseBody ); } /** * Default arguments for wp_remote_get and wp_remote_post. * * @since 4.2.4 * * @return array An array of default arguments for the request. */ private function getWpApiRequestDefaults() { return [ 'timeout' => 10, 'headers' => aioseo()->helpers->getApiHeaders(), 'user-agent' => aioseo()->helpers->getApiUserAgent() ]; } /** * Sends a request using wp_remote_post. * * @since 4.2.4 * * @param string $url The URL to send the request to. * @param array $args The args to use in the request. * @return array|\WP_Error The response as an array or WP_Error on failure. */ public function wpRemotePost( $url, $args = [] ) { return wp_remote_post( $url, array_replace_recursive( $this->getWpApiRequestDefaults(), $args ) ); } /** * Sends a request using wp_remote_get. * * @since 4.2.4 * * @param string $url The URL to send the request to. * @param array $args The args to use in the request. * @return array|\WP_Error The response as an array or WP_Error on failure. */ public function wpRemoteGet( $url, $args = [] ) { return wp_remote_get( $url, array_replace_recursive( $this->getWpApiRequestDefaults(), $args ) ); } }all-in-one-seo-pack/app/Common/Traits/Helpers/Arrays.php000064400000016243151222735770017052 0ustar00 $value ) { // Check for non-existing values. if ( ! isset( $array2[ $key ] ) ) { return true; } if ( is_array( $value ) ) { if ( $this->arraysDifferent( $value, $array2[ $key ] ) ) { return true; } } else { if ( $value !== $array2[ $key ] ) { return true; } } } return false; } /** * Checks whether the given array is associative. * Arrays that only have consecutive, sequential numeric keys are numeric. * Otherwise they are associative. * * @since 4.1.4 * * @param array $array The array. * @return bool Whether the array is associative. */ public function isArrayAssociative( $array ) { return 0 < count( array_filter( array_keys( $array ), 'is_string' ) ); } /** * Checks whether the given array is numeric. * * @since 4.1.4 * * @param array $array The array. * @return bool Whether the array is numeric. */ public function isArrayNumeric( $array ) { return ! $this->isArrayAssociative( $array ); } /** * Recursively replaces the values from one array with the ones from another. * This function should act identical to the built-in array_replace_recursive(), with the exception that it also replaces array values with empty arrays. * * @since 4.2.4 * * @param array $targetArray The target array * @param array $replacementArray The array with values to replace in the target array. * @return array The modified array. */ public function arrayReplaceRecursive( $targetArray, $replacementArray ) { // In some cases the target array isn't an array yet (due to e.g. race conditions in InternalOptions), so in that case we can just return the replacement array. if ( ! is_array( $targetArray ) ) { return $replacementArray; } foreach ( $replacementArray as $k => $v ) { // If the key does not exist yet on the target array, add it. if ( ! isset( $targetArray[ $k ] ) ) { $targetArray[ $k ] = $replacementArray[ $k ]; continue; } // If the value is an array, only try to recursively replace it if the value isn't empty. // Otherwise empty arrays will be ignored and won't override the existing value of the target array. if ( is_array( $v ) && ! empty( $v ) ) { $targetArray[ $k ] = $this->arrayReplaceRecursive( $targetArray[ $k ], $v ); continue; } // Replace with non-array value or empty array. $targetArray[ $k ] = $v; } return $targetArray; } /** * Recursively intersects the two given arrays. * You can pass in an optional argument (allowedKey) to restrict the intersect to arrays with a specific key. * This is needed when we are e.g. sanitizing array values before setting/saving them to an option. * This helper method was mainly built to support our complex options architecture. * * @since 4.2.5 * * @param array $array1 The first array. * @param array $array2 The second array. * @param string $allowedKey The only key the method should run for (optional). * @param string $parentKey The parent key. * @return array The intersected array. */ public function arrayIntersectRecursive( $array1, $array2, $allowedKey = '', $parentKey = '' ) { if ( ! $allowedKey || $allowedKey === $parentKey ) { $array1 = $this->arrayIntersectRecursiveHelper( $array1, $array2 ); } if ( empty( $array1 ) ) { return []; } foreach ( $array1 as $k => $v ) { if ( is_array( $v ) && isset( $array2[ $k ] ) ) { $array1[ $k ] = $this->arrayIntersectRecursive( $array1[ $k ], $array2[ $k ], $allowedKey, $k ); } } if ( $this->isArrayNumeric( $array1 ) ) { $array1 = array_values( $array1 ); } return $array1; } /** * Recursively intersects the two given arrays. Supports arrays with a mix of nested arrays and primitive values. * Helper function for arrayIntersectRecursive(). * * @since 4.5.4 * * @param array $array1 The first array. * @param array $array2 The second array. * @return array The intersected array. */ private function arrayIntersectRecursiveHelper( $array1, $array2 ) { if ( null === $array2 ) { $array2 = []; } if ( is_array( $array1 ) ) { // First, check with keys are nested arrays and which are primitive values. $arrays = []; $primitives = []; foreach ( $array1 as $k => $v ) { if ( is_array( $v ) ) { $arrays[ $k ] = $v; } else { $primitives[ $k ] = $v; } } // Then, intersect the primitive values. $intersectedPrimitives = array_intersect_assoc( $primitives, $array2 ); // Finally, recursively intersect the nested arrays. $intersectedArrays = []; foreach ( $arrays as $k => $v ) { if ( isset( $array2[ $k ] ) ) { $intersectedArrays[ $k ] = $this->arrayIntersectRecursiveHelper( $v, $array2[ $k ] ); } else { // If the nested array doesn't exist in the second array, we can just unset it. unset( $arrays[ $k ] ); } } // Merge the intersected arrays and primitive values. return array_merge( $intersectedPrimitives, $intersectedArrays ); } return array_intersect_assoc( $array1, $array2 ); } /** * Sorts the keys of an array alphabetically. * The array is passed by reference, so it's not returned the same as in `ksort()`. * * @since 4.4.0.3 * * @param array $array The array to sort, passed by reference. */ public function arrayRecursiveKsort( &$array ) { foreach ( $array as &$value ) { if ( is_array( $value ) ) { $this->arrayRecursiveKsort( $value ); } } ksort( $array ); } /** * Creates a multidimensional array from a list of keys and a value. * * @since 4.5.3 * * @param array $keys The keys to create the array from. * @param mixed $value The value to assign to the last key. * @param array $array The array when recursing. * @return array The multidimensional array. */ public function createMultidimensionalArray( $keys, $value, $array = [] ) { $key = array_shift( $keys ); if ( empty( $array[ $key ] ) ) { $array[ $key ] = null; } if ( 0 < count( $keys ) ) { $array[ $key ] = $this->createMultidimensionalArray( $keys, $value, $array[ $key ] ); } else { $array[ $key ] = $value; } return $array; } }all-in-one-seo-pack/app/Common/Traits/Helpers/Constants.php000064400000025466151222735770017574 0ustar00'; // phpcs:ignore Generic.Files.LineLength.MaxExceeded } /** * Returns the country name by code. * * @since 4.0.17 * * @param string $countryCode The country code. * @return string Country name. */ public function getCountryName( $countryCode ) { return isset( $this->countryList()[ $countryCode ] ) ? $this->countryList()[ $countryCode ] : ''; } /** * Returns a list of countries. * * @since 4.0.17 * * @return array A list of countries. */ public function countryList() { return [ 'AF' => 'Afghanistan', 'AL' => 'Albania', 'DZ' => 'Algeria', 'AS' => 'American Samoa', 'AD' => 'Andorra', 'AO' => 'Angola', 'AI' => 'Anguilla', 'AQ' => 'Antarctica', 'AG' => 'Antigua and Barbuda', 'AR' => 'Argentina', 'AM' => 'Armenia', 'AW' => 'Aruba', 'AU' => 'Australia', 'AT' => 'Austria', 'AZ' => 'Azerbaijan', 'BS' => 'Bahamas', 'BH' => 'Bahrain', 'BD' => 'Bangladesh', 'BB' => 'Barbados', 'BY' => 'Belarus', 'BE' => 'Belgium', 'BZ' => 'Belize', 'BJ' => 'Benin', 'BM' => 'Bermuda', 'BT' => 'Bhutan', 'BO' => 'Bolivia', 'BQ' => 'Bonaire', 'BA' => 'Bosnia and Herzegovina', 'BW' => 'Botswana', 'BV' => 'Bouvet Island', 'BR' => 'Brazil', 'IO' => 'British Indian Ocean Territory', 'BN' => 'Brunei Darussalam', 'BG' => 'Bulgaria', 'BF' => 'Burkina Faso', 'BI' => 'Burundi', 'CV' => 'Cabo Verde', 'KH' => 'Cambodia', 'CM' => 'Cameroon', 'CA' => 'Canada', 'KY' => 'Cayman Islands', 'CF' => 'Central African Republic', 'TD' => 'Chad', 'CL' => 'Chile', 'CN' => 'China', 'CX' => 'Christmas Island', 'CC' => 'Cocos (Keeling) Islands', 'CO' => 'Colombia', 'KM' => 'Comoros', 'CD' => 'Democratic Republic of the Congo', 'CG' => 'Congo', 'CK' => 'Cook Islands', 'CR' => 'Costa Rica', 'HR' => 'Croatia', 'CU' => 'Cuba', 'CW' => 'Curaçao', 'CY' => 'Cyprus', 'CZ' => 'Czechia', 'CI' => 'Côte d\'Ivoire', 'DK' => 'Denmark', 'DJ' => 'Djibouti', 'DM' => 'Dominica', 'DO' => 'Dominican Republic', 'EC' => 'Ecuador', 'EG' => 'Egypt', 'SV' => 'El Salvador', 'GQ' => 'Equatorial Guinea', 'ER' => 'Eritrea', 'EE' => 'Estonia', 'SZ' => 'Eswatini', 'ET' => 'Ethiopia', 'FK' => 'Falkland Islands', 'FO' => 'Faroe Islands', 'FJ' => 'Fiji', 'FI' => 'Finland', 'FR' => 'France', 'GF' => 'French Guiana', 'PF' => 'French Polynesia', 'TF' => 'French Southern Territories', 'GA' => 'Gabon', 'GM' => 'Gambia', 'GE' => 'Georgia', 'DE' => 'Germany', 'GH' => 'Ghana', 'GI' => 'Gibraltar', 'GR' => 'Greece', 'GL' => 'Greenland', 'GD' => 'Grenada', 'GP' => 'Guadeloupe', 'GU' => 'Guam', 'GT' => 'Guatemala', 'GG' => 'Guernsey', 'GN' => 'Guinea', 'GW' => 'Guinea-Bissau', 'GY' => 'Guyana', 'HT' => 'Haiti', 'HM' => 'Heard Island and McDonald Islands', 'VA' => 'Holy See', 'HN' => 'Honduras', 'HK' => 'Hong Kong', 'HU' => 'Hungary', 'IS' => 'Iceland', 'IN' => 'India', 'ID' => 'Indonesia', 'IR' => 'Iran', 'IQ' => 'Iraq', 'IE' => 'Ireland', 'IM' => 'Isle of Man', 'IL' => 'Israel', 'IT' => 'Italy', 'JM' => 'Jamaica', 'JP' => 'Japan', 'JE' => 'Jersey', 'JO' => 'Jordan', 'KZ' => 'Kazakhstan', 'KE' => 'Kenya', 'KI' => 'Kiribati', 'KP' => 'South Korea', 'KR' => 'North Korea', 'KW' => 'Kuwait', 'KG' => 'Kyrgyzstan', 'LA' => 'Lao People\'s Democratic Republic', 'LV' => 'Latvia', 'LB' => 'Lebanon', 'LS' => 'Lesotho', 'LR' => 'Liberia', 'LY' => 'Libya', 'LI' => 'Liechtenstein', 'LT' => 'Lithuania', 'LU' => 'Luxembourg', 'MO' => 'Macao', 'MG' => 'Madagascar', 'MW' => 'Malawi', 'MY' => 'Malaysia', 'MV' => 'Maldives', 'ML' => 'Mali', 'MT' => 'Malta', 'MH' => 'Marshall Islands', 'MQ' => 'Martinique', 'MR' => 'Mauritania', 'MU' => 'Mauritius', 'YT' => 'Mayotte', 'MX' => 'Mexico', 'FM' => 'Micronesia', 'MD' => 'Moldova', 'MC' => 'Monaco', 'MN' => 'Mongolia', 'ME' => 'Montenegro', 'MS' => 'Montserrat', 'MA' => 'Morocco', 'MZ' => 'Mozambique', 'MM' => 'Myanmar', 'NA' => 'Namibia', 'NR' => 'Nauru', 'NP' => 'Nepal', 'NL' => 'Netherlands', 'NC' => 'New Caledonia', 'NZ' => 'New Zealand', 'NI' => 'Nicaragua', 'NE' => 'Niger', 'NG' => 'Nigeria', 'NU' => 'Niue', 'NF' => 'Norfolk Island', 'MP' => 'Northern Mariana Islands', 'NO' => 'Norway', 'OM' => 'Oman', 'PK' => 'Pakistan', 'PW' => 'Palau', 'PS' => 'Palestine, State of', 'PA' => 'Panama', 'PG' => 'Papua New Guinea', 'PY' => 'Paraguay', 'PE' => 'Peru', 'PH' => 'Philippines', 'PN' => 'Pitcairn', 'PL' => 'Poland', 'PT' => 'Portugal', 'PR' => 'Puerto Rico', 'QA' => 'Qatar', 'MK' => 'Republic of North Macedonia', 'RO' => 'Romania', 'RU' => 'Russian Federation', 'RW' => 'Rwanda', 'RE' => 'Réunion', 'BL' => 'Saint Barthélemy', 'SH' => 'Saint Helena, Ascension and Tristan da Cunha', 'KN' => 'Saint Kitts and Nevis', 'LC' => 'Saint Lucia', 'MF' => 'Saint Martin', 'PM' => 'Saint Pierre and Miquelon', 'VC' => 'Saint Vincent and the Grenadines', 'WS' => 'Samoa', 'SM' => 'San Marino', 'ST' => 'Sao Tome and Principe', 'SA' => 'Saudi Arabia', 'SN' => 'Senegal', 'RS' => 'Serbia', 'SC' => 'Seychelles', 'SL' => 'Sierra Leone', 'SG' => 'Singapore', 'SX' => 'Sint Maarten', 'SK' => 'Slovakia', 'SI' => 'Slovenia', 'SB' => 'Solomon Islands', 'SO' => 'Somalia', 'ZA' => 'South Africa', 'GS' => 'South Georgia and the South Sandwich Islands', 'SS' => 'South Sudan', 'ES' => 'Spain', 'LK' => 'Sri Lanka', 'SD' => 'Sudan', 'SR' => 'Suriname', 'SJ' => 'Svalbard and Jan Mayen', 'SE' => 'Sweden', 'CH' => 'Switzerland', 'SY' => 'Syrian Arab Republic', 'TW' => 'Taiwan', 'TJ' => 'Tajikistan', 'TZ' => 'Tanzania, United Republic of', 'TH' => 'Thailand', 'TL' => 'Timor-Leste', 'TG' => 'Togo', 'TK' => 'Tokelau', 'TO' => 'Tonga', 'TT' => 'Trinidad and Tobago', 'TN' => 'Tunisia', 'TR' => 'Turkey', 'TM' => 'Turkmenistan', 'TC' => 'Turks and Caicos Islands', 'TV' => 'Tuvalu', 'UG' => 'Uganda', 'UA' => 'Ukraine', 'AE' => 'United Arab Emirates', 'GB' => 'United Kingdom of Great Britain and Northern Ireland', 'UM' => 'United States Minor Outlying Islands', 'US' => 'United States of America', 'UY' => 'Uruguay', 'UZ' => 'Uzbekistan', 'VU' => 'Vanuatu', 'VE' => 'Venezuela', 'VN' => 'Vietnam', 'VG' => 'Virgin Islands (British)', 'VI' => 'Virgin Islands (U.S.)', 'WF' => 'Wallis and Futuna', 'EH' => 'Western Sahara', 'YE' => 'Yemen', 'ZM' => 'Zambia', 'ZW' => 'Zimbabwe', 'AX' => 'Åland Islands' ]; } }all-in-one-seo-pack/app/Common/Traits/Helpers/DateTime.php000064400000005341151222735770017302 0ustar00getScriptUrl( $url, $vue ), [], aioseo()->version, true ); } } /** * Helper method to enqueue stylesheets. * * @since 4.0.0 * * @param string $style The stylesheet to enqueue. * @param string $url The URL of the stylesheet. * @param bool $vue Whether or not this is a vue stylesheet. * @return void */ public function enqueueStyle( $style, $url, $vue = true ) { if ( ! wp_style_is( $style, 'enqueued' ) && $this->shouldEnqueue( $url ) ) { wp_enqueue_style( $style, $this->getScriptUrl( $url, $vue ), [], aioseo()->version ); } } /** * Whether or not we should enqueue a file. * * @since 4.0.0 * * @param string $url The url to check against. * @return bool Whether or not we should enqueue. */ private function shouldEnqueue( $url ) { $version = strtoupper( aioseo()->versionPath ); $host = defined( 'AIOSEO_DEV_' . $version ) ? constant( 'AIOSEO_DEV_' . $version ) : false; if ( ! $host ) { return true; } if ( false !== strpos( $url, 'chunk-common.css' ) ) { // return false; } return true; } /** * Retrieve the proper URL for this script or style. * * @since 4.0.0 * * @param string $url The url. * @param bool $vue Whether or not this is a vue script. * @return string The modified url. */ public function getScriptUrl( $url, $vue = true ) { $version = strtoupper( aioseo()->versionPath ); $host = $vue && defined( 'AIOSEO_DEV_' . $version ) ? constant( 'AIOSEO_DEV_' . $version ) : false; $localUrl = $url; $url = plugins_url( 'dist/' . aioseo()->versionPath . '/assets/' . $url, AIOSEO_FILE ); if ( ! $host ) { return $url; } if ( $host && ! self::$connection ) { $splitHost = explode( ':', str_replace( '/', '', str_replace( 'http://', '', str_replace( 'https://', '', $host ) ) ) ); self::$connection = @fsockopen( $splitHost[0], $splitHost[1] ); // phpcs:ignore WordPress } if ( ! self::$connection ) { return $url; } return $host . $localUrl; } /** * Returns the filesystem object if we have access to it. * * @since 4.0.0 * * @param array $args The connection args. * @return \WP_Filesystem_Base|bool The filesystem object. */ public function wpfs( $args = [] ) { require_once ABSPATH . 'wp-admin/includes/file.php'; WP_Filesystem( $args ); global $wp_filesystem; if ( is_object( $wp_filesystem ) ) { return $wp_filesystem; } return false; } /** * Checks whether the current request is an AJAX, CRON or REST request. * * @since 4.1.9.1 * * @return bool Whether the current request is an AJAX, CRON or REST request. */ public function isAjaxCronRest() { return $this->isAjaxCronRestRequest(); } }all-in-one-seo-pack/app/Common/Traits/Helpers/Language.php000064400000000744151222735770017333 0ustar00$feature ) ) { return false; } return $postType->$feature; } }all-in-one-seo-pack/app/Common/Traits/Helpers/Request.php000064400000003317151222735770017237 0ustar00getRequestServerName(); if ( isset( $_SERVER['SERVER_NAME'] ) ) { $host = wp_unslash( $_SERVER['SERVER_NAME'] ); // phpcs:ignore HM.Security.ValidatedSanitizedInput.InputNotSanitized } return $host; } /** * Get the request server name (from $_SERVER['HTTP_HOST]). * * @since 4.2.1 * * @return string The request server name. */ private function getRequestServerName() { $host = ''; if ( isset( $_SERVER['HTTP_HOST'] ) ) { $host = $_SERVER['HTTP_HOST']; } return $host; } /** * Retrieve the request URL. * * @since 4.2.1 * * @return string The request URL. */ public function getRequestUrl() { $url = ''; if ( isset( $_SERVER['REQUEST_URI'] ) ) { $url = $_SERVER['REQUEST_URI']; } return rawurldecode( stripslashes( $url ) ); } }all-in-one-seo-pack/app/Common/Traits/Helpers/Shortcodes.php000064400000013771151222735770017731 0ustar00 'woocommerce_my_account', 'WooCommerce Checkout' => 'woocommerce_checkout', 'WooCommerce Order Tracking' => 'woocommerce_order_tracking', 'WooCommerce Cart' => 'woocommerce_cart', 'WooCommerce Registration' => 'wwp_registration_form', 'WISDM Group Registration' => 'wdm_group_users', 'WISDM Quiz Reporting' => 'wdm_quiz_statistics_details', 'WISDM Course Review' => 'rrf_course_review', 'Simple Membership Login' => 'swpm_login_form', 'Simple Membership Mini Login' => 'swpm_mini_login', 'Simple Membership Payment Button' => 'swpm_payment_button', 'Simple Membership Thank You Page' => 'swpm_thank_you_page_registration', 'Simple Membership Registration' => 'swpm_registration_form', 'Simple Membership Profile' => 'swpm_profile_form', 'Simple Membership Reset' => 'swpm_reset_form', 'Simple Membership Update Level' => 'swpm_update_level_to', 'Simple Membership Member Info' => 'swpm_show_member_info', 'Revslider' => 'rev_slider' ]; /** * Returns the content with shortcodes replaced. * * @since 4.0.5 * * @param string $content The post content. * @param bool $override Whether shortcodes should be parsed regardless of the context. Needed for ActionScheduler actions. * @param int $postId The post ID (optional). * @return string $content The post content with shortcodes replaced. */ public function doShortcodes( $content, $override = false, $postId = 0 ) { // NOTE: This is_admin() check can never be removed because themes like Avada will otherwise load the wrong post. if ( ! $override && is_admin() ) { return $content; } if ( ! wp_doing_cron() && ! wp_doing_ajax() ) { if ( ! $override && apply_filters( 'aioseo_disable_shortcode_parsing', false ) ) { return $content; } if ( ! $override && ! aioseo()->options->searchAppearance->advanced->runShortcodes ) { return $this->doAllowedShortcodes( $content, $postId ); } } $content = $this->doShortcodesHelper( $content, [], $postId ); return $content; } /** * Returns the content with only the allowed shortcodes and wildcards replaced. * * @since 4.1.2 * * @param string $content The content. * @param int $postId The post ID (optional). * @return string The content with shortcodes replaced. */ public function doAllowedShortcodes( $content, $postId = null ) { // Extract list of shortcodes from the post content. $tags = $this->getShortcodeTags( $content ); if ( ! count( $tags ) ) { return $content; } $allowedTags = apply_filters( 'aioseo_allowed_shortcode_tags', [] ); $tagsToRemove = array_diff( $tags, $allowedTags ); $content = $this->doShortcodesHelper( $content, $tagsToRemove, $postId ); return $content; } /** * Returns the content with only the allowed shortcodes and wildcards replaced. * * @since 4.1.2 * * @param string $content The content. * @param array $tagsToRemove The shortcode tags to remove (optional). * @param int $postId The post ID (optional). * @return string The content with shortcodes replaced. */ private function doShortcodesHelper( $content, $tagsToRemove = [], $postId = 0 ) { global $shortcode_tags; $conflictingShortcodes = array_merge( $tagsToRemove, $this->conflictingShortcodes ); $conflictingShortcodes = apply_filters( 'aioseo_conflicting_shortcodes', $conflictingShortcodes ); $tagsToRemove = []; foreach ( $conflictingShortcodes as $shortcode ) { $shortcodeTag = str_replace( [ '[', ']' ], '', $shortcode ); if ( array_key_exists( $shortcodeTag, $shortcode_tags ) ) { $tagsToRemove[ $shortcodeTag ] = $shortcode_tags[ $shortcodeTag ]; } } // Remove all conflicting shortcodes before parsing the content. foreach ( $tagsToRemove as $shortcodeTag => $shortcodeCallback ) { remove_shortcode( $shortcodeTag ); } if ( $postId ) { global $post; $post = get_post( $postId ); if ( is_a( $post, 'WP_Post' ) ) { // Add the current post to the loop so that shortcodes can use it if needed. setup_postdata( $post ); } } // Set a flag to indicate Divi that it's processing internal content. // https://github.com/awesomemotive/aioseo/issues/5099 $default = aioseo()->helpers->setDiviInternalRendering( true ); $content = do_shortcode( $content ); // Reset the Divi flag to its default value. aioseo()->helpers->setDiviInternalRendering( $default ); if ( $postId ) { wp_reset_postdata(); } // Add back shortcodes as remove_shortcode() disables them site-wide. foreach ( $tagsToRemove as $shortcodeTag => $shortcodeCallback ) { add_shortcode( $shortcodeTag, $shortcodeCallback ); } return $content; } /** * Extracts the shortcode tags from the content. * * @since 4.1.2 * * @param string $content The content. * @return array $tags The shortcode tags. */ private function getShortcodeTags( $content ) { $tags = []; $pattern = '\\[(\\[?)([^\s]*)(?![\\w-])([^\\]\\/]*(?:\\/(?!\\])[^\\]\\/]*)*?)(?:(\\/)\\]|\\](?:([^\\[]*+(?:\\[(?!\\/\\2\\])[^\\[]*+)*+)\\[\\/\\2\\])?)(\\]?)'; if ( preg_match_all( "#$pattern#s", $content, $matches ) && array_key_exists( 2, $matches ) ) { $tags = array_unique( $matches[2] ); } if ( ! count( $tags ) ) { return $tags; } // Extract nested shortcodes. foreach ( $matches[5] as $innerContent ) { $tags = array_merge( $tags, $this->getShortcodeTags( $innerContent ) ); } return $tags; } }all-in-one-seo-pack/app/Common/Traits/Helpers/Strings.php000064400000040017151222735770017236 0ustar00escapeRegexReplacement( $replacement ); $pregReplace[ $key ] = preg_replace( $pattern, $replacement, $subject ); return $pregReplace[ $key ]; } /** * Returns string after converting it to lowercase. * * @since 4.0.13 * * @param string $string The original string. * @return string The string converted to lowercase. */ public function toLowerCase( $string ) { static $lowerCased = []; if ( isset( $lowerCased[ $string ] ) ) { return $lowerCased[ $string ]; } $lowerCased[ $string ] = function_exists( 'mb_strtolower' ) ? mb_strtolower( $string, $this->getCharset() ) : strtolower( $string ); return $lowerCased[ $string ]; } /** * Returns the index of a substring in a string. * * @since 4.1.6 * * @param string $stack The stack. * @param string $needle The needle. * @param int $offset The offset. * @return int|bool The index where the string starts or false if it does not exist. */ public function stringIndex( $stack, $needle, $offset = 0 ) { $key = $stack . $needle . $offset; static $stringIndex = []; if ( isset( $stringIndex[ $key ] ) ) { return $stringIndex[ $key ]; } $stringIndex[ $key ] = function_exists( 'mb_strpos' ) ? mb_strpos( $stack, $needle, $offset, $this->getCharset() ) : strpos( $stack, $needle, $offset ); return $stringIndex[ $key ]; } /** * Checks if the given string contains the given substring. * * @since 4.1.0.2 * * @param string $stack The stack. * @param string $needle The needle. * @param int $offset The offset. * @return bool Whether the substring occurs in the main string. */ public function stringContains( $stack, $needle, $offset = 0 ) { $key = $stack . $needle . $offset; static $stringContains = []; if ( isset( $stringContains[ $key ] ) ) { return $stringContains[ $key ]; } $stringContains[ $key ] = false !== $this->stringIndex( $stack, $needle, $offset ); return $stringContains[ $key ]; } /** * Check if a string is JSON encoded or not. * * @since 4.1.2 * * @param mixed $string The string to check. * @return bool True if it is JSON or false if not. */ public function isJsonString( $string ) { if ( ! is_string( $string ) ) { return false; } json_decode( $string ); // Return a boolean whether or not the last error matches. return json_last_error() === JSON_ERROR_NONE; } /** * Strips punctuation from a given string. * * @since 4.0.0 * * @param string $string The string. * @param array $charactersToKeep The characters that can't be stripped (optional). * @return string The string without punctuation. */ public function stripPunctuation( $string, $charactersToKeep = [] ) { $characterRegexPattern = ''; if ( ! empty( $charactersToKeep ) ) { $characterString = implode( '', $charactersToKeep ); $characterRegexPattern = "(?![$characterString])"; } $string = aioseo()->helpers->decodeHtmlEntities( $string ); $string = preg_replace( "/{$characterRegexPattern}[\p{P}\d+]/u", '', $string ); $string = aioseo()->helpers->encodeOutputHtml( $string ); // Trim both internal and external whitespace. return preg_replace( '/\s\s+/u', ' ', trim( $string ) ); } /** * Returns the string after it is encoded with htmlspecialchars(). * * @since 4.0.0 * * @param string $string The string to encode. * @return string The encoded string. */ public function encodeOutputHtml( $string ) { return htmlspecialchars( $string, ENT_COMPAT | ENT_HTML401, $this->getCharset(), false ); } /** * Returns the string after all HTML entities have been decoded. * * @since 4.0.0 * * @param string $string The string to decode. * @return string The decoded string. */ public function decodeHtmlEntities( $string ) { static $decodeHtmlEntities = []; if ( isset( $decodeHtmlEntities[ $string ] ) ) { return $decodeHtmlEntities[ $string ]; } // We must manually decode non-breaking spaces since html_entity_decode doesn't do this. $string = $this->pregReplace( '/ /', ' ', $string ); $decodeHtmlEntities[ $string ] = html_entity_decode( (string) $string, ENT_QUOTES ); return $decodeHtmlEntities[ $string ]; } /** * Returns the string with script tags stripped. * * @since 4.0.0 * * @param string $string The string. * @return string The modified string. */ public function stripScriptTags( $string ) { static $stripScriptTags = []; if ( isset( $stripScriptTags[ $string ] ) ) { return $stripScriptTags[ $string ]; } $stripScriptTags[ $string ] = $this->pregReplace( '/(.*?)<\/script>/is', '', $string ); return $stripScriptTags[ $string ]; } /** * Returns the string with incomplete HTML tags stripped. * Incomplete tags are not unopened/unclosed pairs but rather single tags that aren't properly formed. * e.g. * * @since 4.1.6 * * @param string $string The string. * @return string The modified string. */ public function stripIncompleteHtmlTags( $string ) { static $stripIncompleteHtmlTags = []; if ( isset( $stripIncompleteHtmlTags[ $string ] ) ) { return $stripIncompleteHtmlTags[ $string ]; } $stripIncompleteHtmlTags[ $string ] = $this->pregReplace( '/(^(?!<).*?(\/>)|<[^>]*?(?!\/>)$)/is', '', $string ); return $stripIncompleteHtmlTags[ $string ]; } /** * Returns the given JSON formatted data tags as a comma separated list with their values instead. * * @since 4.1.0 * * @param string $tags The JSON formatted data tags. * @return string The comma separated values. */ public function jsonTagsToCommaSeparatedList( $tags ) { $tags = json_decode( $tags ); $values = []; foreach ( $tags as $k => $tag ) { $values[ $k ] = $tag->value; } return implode( ',', $values ); } /** * Returns the character length of the given string. * * @since 4.1.6 * * @param string $string The string. * @return int The string length. */ public function stringLength( $string ) { static $stringLength = []; if ( isset( $stringLength[ $string ] ) ) { return $stringLength[ $string ]; } $stringLength[ $string ] = function_exists( 'mb_strlen' ) ? mb_strlen( $string, $this->getCharset() ) : strlen( $string ); return $stringLength[ $string ]; } /** * Returns the word count of the given string. * * @since 4.1.6 * * @param string $string The string. * @return int The word count. */ public function stringWordCount( $string ) { static $stringWordCount = []; if ( isset( $stringWordCount[ $string ] ) ) { return $stringWordCount[ $string ]; } $stringWordCount[ $string ] = str_word_count( $string ); return $stringWordCount[ $string ]; } /** * Explodes the given string into an array. * * @since 4.1.6 * * @param string $delimiter The delimiter. * @param string $string The string. * @return array The exploded words. */ public function explode( $delimiter, $string ) { $key = $delimiter . $string; static $exploded = []; if ( isset( $exploded[ $key ] ) ) { return $exploded[ $key ]; } $exploded[ $key ] = explode( $delimiter, $string ); return $exploded[ $key ]; } /** * Implodes an array into a WHEREIN clause useable string. * * @since 4.1.6 * * @param array $array The array. * @param bool $outerQuotes Whether outer quotes should be added. * @return string The imploded array. */ public function implodeWhereIn( $array, $outerQuotes = false ) { // Reset the keys first in case there is no 0 index. $array = array_values( $array ); if ( ! isset( $array[0] ) ) { return ''; } if ( is_numeric( $array[0] ) ) { return implode( ', ', $array ); } return $outerQuotes ? "'" . implode( "', '", $array ) . "'" : implode( "', '", $array ); } /** * Returns an imploded string of placeholders for usage in a WPDB prepare statement. * * @since 4.1.9 * * @param array $array The array. * @param string $placeholder The placeholder (e.g. "%s" or "%d"). * @return string The imploded string with placeholders. */ public function implodePlaceholders( $array, $placeholder = '%s' ) { return implode( ', ', array_fill( 0, count( $array ), $placeholder ) ); } /** * Verifies that a string is indeed a valid regular expression. * * @since 4.2.1 * * @return boolean True if the string is a valid regular expression. */ public function isValidRegex( $pattern ) { // Set a custom error handler to prevent throwing errors on a bad Regular Expression. set_error_handler( function() {}, E_WARNING ); $isValid = true; if ( false === preg_match( $pattern, '' ) ) { $isValid = false; } // Restore the error handler. restore_error_handler(); return $isValid; } /** * Removes the leading slash(es) from a string. * * @since 4.2.3 * * @param string $string The string. * @return string The modified string. */ public function unleadingSlashIt( $string ) { return ltrim( $string, '/' ); } /** * Convert the case of the given string. * * @since 4.2.4 * * @param string $string The string. * @param string $type The casing ("lower", "title", "sentence"). * @return string The converted string. */ public function convertCase( $string, $type ) { switch ( $type ) { case 'lower': return strtolower( $string ); case 'title': return $this->toTitleCase( $string ); case 'sentence': return $this->toSentenceCase( $string ); default: return $string; } } /** * Converts the given string to title case. * * @since 4.2.4 * * @param string $string The string. * @return string The converted string. */ public function toTitleCase( $string ) { // List of common English words that aren't typically modified. $exceptions = apply_filters( 'aioseo_title_case_exceptions', [ 'of', 'a', 'the', 'and', 'an', 'or', 'nor', 'but', 'is', 'if', 'then', 'else', 'when', 'at', 'from', 'by', 'on', 'off', 'for', 'in', 'out', 'over', 'to', 'into', 'with' ] ); $words = explode( ' ', strtolower( $string ) ); foreach ( $words as $k => $word ) { if ( ! in_array( $word, $exceptions, true ) ) { $words[ $k ] = ucfirst( $word ); } } $string = implode( ' ', $words ); return $string; } /** * Converts the given string to sentence case. * * @since 4.2.4 * * @param string $string The string. * @return string The converted string. */ public function toSentenceCase( $string ) { $phrases = preg_split( '/([.?!]+)/', $string, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE ); $convertedString = ''; foreach ( $phrases as $index => $sentence ) { $convertedString .= ( $index & 1 ) === 0 ? ucfirst( strtolower( trim( $sentence ) ) ) : $sentence . ' '; } return trim( $convertedString ); } /** * Returns the substring with a given start index and length. * * @since 4.2.5 * * @param string $string The string. * @param int $startIndex The start index. * @param int $length The length. * @return string The substring. */ public function substring( $string, $startIndex, $length ) { return function_exists( 'mb_substr' ) ? mb_substr( $string, $startIndex, $length, $this->getCharset() ) : substr( $string, $startIndex, $length ); } }all-in-one-seo-pack/app/Common/Traits/Helpers/Svg.php000064400000002017151222735770016342 0ustar00 [ 'class' => true, 'aria-hidden' => true, 'aria-labelledby' => true, 'role' => true, 'xmlns' => true, 'width' => true, 'height' => true, 'viewbox' => true, // <= Must be lower case! ], 'g' => [ 'fill' => true ], 'title' => [ 'title' => true ], 'path' => [ 'd' => true, 'fill' => true, ] ]; return wp_kses( $svgString, array_merge( $ksesDefaults, $svgArgs ) ); } }all-in-one-seo-pack/app/Common/Traits/Helpers/ThirdParty.php000064400000043321151222735770017700 0ustar00isWooCommerceActive() ) { return false; } $postId = $postId ? $postId : get_the_ID(); static $cartPageId; if ( ! $cartPageId ) { $cartPageId = (int) get_option( 'woocommerce_cart_page_id' ); } static $checkoutPageId; if ( ! $checkoutPageId ) { $checkoutPageId = (int) get_option( 'woocommerce_checkout_page_id' ); } static $myAccountPageId; if ( ! $myAccountPageId ) { $myAccountPageId = (int) get_option( 'woocommerce_myaccount_page_id' ); } static $termsPageId; if ( ! $termsPageId ) { $termsPageId = (int) get_option( 'woocommerce_terms_page_id' ); } switch ( $postId ) { case $cartPageId: return 'cart'; case $checkoutPageId: return 'checkout'; case $myAccountPageId: return 'myAccount'; case $termsPageId: return 'terms'; default: return false; } } /** * Checks whether the current page is a special WooCommerce page we shouldn't show our schema settings for. * * @since 4.1.6 * * @param int $postId The post ID. * @return bool Whether the current page is a disallowed WooCommerce page. */ public function isWooCommercePageWithoutSchema( $postId = 0 ) { $page = $this->isWooCommercePage( $postId ); if ( ! $page ) { return false; } $disallowedPages = [ 'cart', 'checkout', 'myAccount' ]; return in_array( $page, $disallowedPages, true ); } /** * Checks whether the queried object is the WooCommerce shop page. * * @since 4.0.0 * * @param int $id The post ID to check against (optional). * @return bool Whether the current page is the WooCommerce shop page. */ public function isWooCommerceShopPage( $id = 0 ) { if ( ! $this->isWooCommerceActive() ) { return false; } if ( ! is_admin() && ! aioseo()->helpers->isAjaxCronRestRequest() && function_exists( 'is_shop' ) ) { return is_shop(); } $id = ! $id && ! empty( $_GET['post'] ) ? (int) wp_unslash( $_GET['post'] ) : (int) $id; // phpcs:ignore HM.Security.ValidatedSanitizedInput, HM.Security.NonceVerification.Recommended return $id && wc_get_page_id( 'shop' ) === $id; } /** * Checks whether the queried object is the WooCommerce cart page. * * @since 4.1.3 * * @param int $id The post ID to check against (optional). * @return bool Whether the current page is the WooCommerce cart page. */ public function isWooCommerceCartPage( $id = 0 ) { if ( ! $this->isWooCommerceActive() ) { return false; } if ( ! is_admin() && ! aioseo()->helpers->isAjaxCronRestRequest() && function_exists( 'is_cart' ) ) { return is_cart(); } $id = ! $id && ! empty( $_GET['post'] ) ? (int) wp_unslash( $_GET['post'] ) : (int) $id; // phpcs:ignore HM.Security.ValidatedSanitizedInput, HM.Security.NonceVerification.Recommended return $id && wc_get_page_id( 'cart' ) === $id; } /** * Checks whether the queried object is the WooCommerce checkout page. * * @since 4.1.3 * * @param int $id The post ID to check against (optional). * @return bool Whether the current page is the WooCommerce checkout page. */ public function isWooCommerceCheckoutPage( $id = 0 ) { if ( ! $this->isWooCommerceActive() ) { return false; } if ( ! is_admin() && ! aioseo()->helpers->isAjaxCronRestRequest() && function_exists( 'is_checkout' ) ) { return is_checkout(); } $id = ! $id && ! empty( $_GET['post'] ) ? (int) wp_unslash( $_GET['post'] ) : (int) $id; // phpcs:ignore HM.Security.ValidatedSanitizedInput, HM.Security.NonceVerification.Recommended return $id && wc_get_page_id( 'checkout' ) === $id; } /** * Checks whether the queried object is the WooCommerce account page. * * @since 4.1.3 * * @param int $id The post ID to check against (optional). * @return bool Whether the current page is the WooCommerce account page. */ public function isWooCommerceAccountPage( $id = 0 ) { if ( ! $this->isWooCommerceActive() ) { return false; } if ( ! is_admin() && ! aioseo()->helpers->isAjaxCronRestRequest() && function_exists( 'is_account_page' ) ) { return is_account_page(); } $id = ! $id && ! empty( $_GET['post'] ) ? (int) wp_unslash( $_GET['post'] ) : (int) $id; // phpcs:ignore HM.Security.ValidatedSanitizedInput, HM.Security.NonceVerification.Recommended return $id && wc_get_page_id( 'myaccount' ) === $id; } /** * Checks whether the queried object is a WooCommerce product page. * * @since 4.5.5 * * @return bool Whether the current page is a WooCommerce product page. */ public function isWooCommerceProductPage() { if ( ! $this->isWooCommerceActive() || ! function_exists( 'is_product' ) ) { return false; } return is_product(); } /** * Checks whether the queried object is a WooCommerce taxonomy page. * * @since 4.5.5 * * @return bool Whether the current page is a WooCommerce taxonomy page. */ public function isWooCommerceTaxonomyPage() { if ( ! $this->isWooCommerceActive() || ! function_exists( 'is_product_taxonomy' ) ) { return false; } return is_product_taxonomy(); } /** * Internationalize. * * @since 4.0.0 * * @param $in * @return mixed|void */ public function internationalize( $in ) { if ( function_exists( 'langswitch_filter_langs_with_message' ) ) { $in = langswitch_filter_langs_with_message( $in ); } if ( function_exists( 'polyglot_filter' ) ) { $in = polyglot_filter( $in ); } if ( function_exists( 'qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage' ) ) { $in = qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage( $in ); } elseif ( function_exists( 'ppqtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage' ) ) { $in = ppqtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage( $in ); } elseif ( function_exists( 'qtranxf_useCurrentLanguageIfNotFoundUseDefaultLanguage' ) ) { $in = qtranxf_useCurrentLanguageIfNotFoundUseDefaultLanguage( $in ); } return apply_filters( 'localization', $in ); } /** * Checks if WPML is active. * * @since 4.0.0 * * @return bool True if it is, false if not. */ public function isWpmlActive() { return class_exists( 'SitePress' ); } /** * Localizes a given URL. * * This is required for compatibility with WPML. * * @since 4.0.0 * * @param string $path The relative path of the URL. * @return string $url The filtered URL. */ public function localizedUrl( $path ) { $url = apply_filters( 'wpml_home_url', home_url( '/' ) ); // Remove URL parameters. preg_match_all( '/\?[\s\S]+/', $url, $matches ); // Get the base URL. $url = preg_replace( '/\?[\s\S]+/', '', $url ); $url = trailingslashit( $url ); $url .= preg_replace( '/\//', '', $path, 1 ); // Readd URL parameters. if ( $matches && $matches[0] ) { $url .= $matches[0][0]; } return $url; } /** * Checks whether BuddyPress is active. * * @since 4.0.0 * * @return boolean */ public function isBuddyPressActive() { return class_exists( 'BuddyPress' ); } /** * Checks whether the queried object is a buddy press user page. * * @since 4.0.0 * * @return boolean */ public function isBuddyPressUser() { return $this->isBuddyPressActive() && function_exists( 'bp_is_user' ) && bp_is_user(); } /** * Returns if the page is a BuddyPress page (Activity, Members, Groups). * * @since 4.0.0 * * @param int $postId The post ID. * @return bool If the page is a BuddyPress page or not. */ public function isBuddyPressPage( $postId = 0 ) { $bpPages = get_option( 'bp-pages' ); if ( empty( $bpPages ) ) { return false; } foreach ( $bpPages as $page ) { if ( (int) $page === (int) $postId ) { return true; } } return false; } /** * Check if is a BBpress post type. * * @since 4.2.8 * * @param string $postType The post type to check. * @return bool Whether this is a bbPress post type. */ public function isBBPressPostType( $postType ) { if ( ! class_exists( 'bbPress' ) ) { return false; } $bbPressPostTypes = [ 'forum', 'topic', 'reply' ]; return in_array( $postType, $bbPressPostTypes, true ); } /** * Returns ACF fields as an array of meta keys and values. * * @since 4.0.6 * * @param \WP_Post|int $post The post. * @param array $types A whitelist of ACF field types. * @return array An array of meta keys and values. */ public function getAcfContent( $post = null, $types = [] ) { $post = ( $post && is_object( $post ) ) ? $post : $this->getPost( $post ); if ( ! class_exists( 'ACF' ) || ! function_exists( 'get_field_objects' ) ) { return []; } if ( defined( 'ACF_VERSION' ) && version_compare( ACF_VERSION, '5.7.0', '<' ) ) { return []; } // Set defaults. $allowedTypes = [ 'text', 'textarea', 'email', 'url', 'wysiwyg', 'image', 'gallery', 'link', // 'taxonomy', ]; $types = wp_parse_args( $types, $allowedTypes ); $fieldObjects = get_field_objects( $post->ID ); if ( empty( $fieldObjects ) ) { return []; } // Filter out any fields that are not in our allowed types. $fields = array_filter( $fieldObjects, function( $object ) use ( $types ) { return ! empty( $object['value'] ) && in_array( $object['type'], $types, true ); }); // Create an array with the field names and values with added HTML markup. $acfFields = []; foreach ( $fields as $field ) { switch ( $field['type'] ) { case 'url': $value = make_clickable( $field['value'] ?? '' ); break; case 'image': // Image format options are array, URL (string), id (int). $imageUrl = is_array( $field['value'] ) ? $field['value']['url'] : $field['value']; $imageUrl = is_numeric( $imageUrl ) ? wp_get_attachment_image_url( $imageUrl ) : $imageUrl; $value = ""; break; case 'gallery': $imageUrl = $field['value']; // The value of a gallery field should always be an array. if ( is_array( $imageUrl ) ) { $imageUrl = current( $imageUrl ); } // Image array format. if ( is_array( $imageUrl ) && ! empty( $imageUrl['url'] ) ) { $imageUrl = $imageUrl['url']; } // Image ID format. $imageUrl = is_numeric( $imageUrl ) ? wp_get_attachment_image_url( $imageUrl ) : $imageUrl; $value = ! empty( $imageUrl ) ? "" : ''; break; case 'link': $value = make_clickable( $field['value']['url'] ?? $field['value'] ?? '' ); break; default: $value = $field['value']; break; } if ( $value ) { $acfFields[ $field['name'] ] = $value; } } return $acfFields; } /** * Checks whether the Smash Balloon Custom Facebook Feed plugin is active. * * @since 4.2.0 * * @return bool Whether the SB CFF plugin is active. */ public function isSbCustomFacebookFeedActive() { static $isActive = null; if ( null !== $isActive ) { return $isActive; } $isActive = defined( 'CFFVER' ) || is_plugin_active( 'custom-facebook-feed/custom-facebook-feed.php' ); return $isActive; } /** * Returns the access token for Facebook from Smash Balloon if there is one. * * @since 4.2.0 * * @return string|false The access token or false if there is none. */ public function getSbAccessToken() { static $accessToken = null; if ( null !== $accessToken ) { return $accessToken; } if ( ! $this->isSbCustomFacebookFeedActive() ) { $accessToken = false; return $accessToken; } $oembedTokenData = get_option( 'cff_oembed_token', [] ); if ( ! $oembedTokenData || empty( $oembedTokenData['access_token'] ) ) { $accessToken = false; return $accessToken; } $sbFacebookDataEncryptionInstance = new \CustomFacebookFeed\SB_Facebook_Data_Encryption(); $accessToken = $sbFacebookDataEncryptionInstance->maybe_decrypt( $oembedTokenData['access_token'] ); return $accessToken; } /** * Returns the homepage URL for a language code. * * @since 4.2.1 * * @param string|int $identifier The language code or the post id to return the url. * @return string The home URL. */ public function wpmlHomeUrl( $identifier ) { foreach ( $this->wpmlHomePages() as $langCode => $wpmlHomePage ) { if ( ( is_string( $identifier ) && $langCode === $identifier ) || ( is_numeric( $identifier ) && $wpmlHomePage['id'] === $identifier ) ) { return $wpmlHomePage['url']; } } return ''; } /** * Returns the homepage IDs. * * @since 4.2.1 * * @return array An array of home page ids. */ public function wpmlHomePages() { global $sitepress; static $homePages = []; if ( ! $this->isWpmlActive() || empty( $sitepress ) || ! method_exists( $sitepress, 'language_url' ) ) { return $homePages; } if ( empty( $homePages ) ) { $languages = apply_filters( 'wpml_active_languages', [] ); $homePageId = (int) get_option( 'page_on_front' ); foreach ( $languages as $language ) { $homePages[ $language['code'] ] = [ 'id' => apply_filters( 'wpml_object_id', $homePageId, 'page', false, $language['code'] ), 'url' => $sitepress->language_url( $language['code'] ) ]; } } return $homePages; } /** * Returns if the post id os a WPML home page. * * @since 4.2.1 * * @param int $postId The post ID. * @return bool Is the post id a home page. */ public function wpmlIsHomePage( $postId ) { foreach ( $this->wpmlHomePages() as $wpmlHomePage ) { if ( $wpmlHomePage['id'] === $postId ) { return true; } } return false; } /** * Returns the WPML url format. * * @since 4.2.8 * * @return string The format. */ public function getWpmlUrlFormat() { global $sitepress; if ( ! $this->isWpmlActive() || empty( $sitepress ) || ! method_exists( $sitepress, 'get_setting' ) ) { return ''; } switch ( $sitepress->get_setting( 'language_negotiation_type' ) ) { case WPML_LANGUAGE_NEGOTIATION_TYPE_DIRECTORY: case 1: return 'directory'; case WPML_LANGUAGE_NEGOTIATION_TYPE_DOMAIN: case 2: return 'domain'; case WPML_LANGUAGE_NEGOTIATION_TYPE_PARAMETER: case 3: return 'parameter'; default: return ''; } } /** * Checks whether the WooCommerce Follow Up Emails plugin is active. * * @since 4.2.2 * * @return bool Whether the plugin is active. */ public function isWooCommerceFollowupEmailsActive() { $isActive = defined( 'FUE_VERSION' ) || is_plugin_active( 'woocommerce-follow-up-emails/woocommerce-follow-up-emails.php' ); return $isActive; } /** * Checks if the current page is an AMP page. * * @since 4.2.3 * * @param string $pluginName The name of the AMP plugin to check for (optional). * @return bool Whether the current page is an AMP page. */ public function isAmpPage( $pluginName = '' ) { // Official AMP plugin. if ( 'amp' === $pluginName ) { // If we're checking for the AMP page plugin specifically, return early if it's not active. // Otherwise, we'll return true if AMP for WP is enabled because the helper method doesn't distinguish between the two. if ( ! defined( 'AMP__VERSION' ) ) { return false; } $options = get_option( 'amp-options' ); if ( ! empty( $options['theme_support'] ) && 'standard' === strtolower( $options['theme_support'] ) ) { return true; } } return $this->isAmpPageHelper(); } /** * Checks if the current page is an AMP page. * Helper function for isAmpPage(). Contains common logic that applies to both AMP and AMP for WP. * * @since 4.2.4 * * @return bool Whether the current page is an AMP page. */ private function isAmpPageHelper() { // Check if the AMP or AMP for WP plugin is active. if ( ! function_exists( 'is_amp_endpoint' ) ) { return false; } global $wp; // This URL param is set when using plain permalinks. return isset( $_GET['amp'] ) || preg_match( '/amp$/', untrailingslashit( $wp->request ) ); // phpcs:ignore HM.Security.NonceVerification.Recommended } /** * If we're in a LearnPress lesson page, return the lesson ID. * * @since 4.3.1 * * @return int|false */ public function getLearnPressLesson() { global $lp_course_item; if ( $lp_course_item && method_exists( $lp_course_item, 'get_id' ) ) { return $lp_course_item->get_id(); } return false; } /** * Set a flag to indicate Divi whether it is processing internal content or not. * * @since 4.4.3 * * @param null|bool $flag The flag value. * @return null|bool The previous flag value to reset it later. */ public function setDiviInternalRendering( $flag ) { if ( ! defined( 'ET_BUILDER_VERSION' ) ) { return null; } global $et_pb_rendering_column_content; $originalValue = $et_pb_rendering_column_content; $et_pb_rendering_column_content = $flag; return $originalValue; } /** * Checks whether the current request is being done by a crawler from Yandex. * * @since 4.4.0 * * @return bool Whether the current request is being done by a crawler from Yandex. */ public function isYandexUserAgent() { if ( ! isset( $_SERVER['HTTP_USER_AGENT'] ) ) { return false; } return preg_match( '#.*Yandex.*#', $_SERVER['HTTP_USER_AGENT'] ); } }all-in-one-seo-pack/app/Common/Traits/Helpers/Url.php000064400000005030151222735770016343 0ustar00buildUrl( $url ); } return $url; } /** * Builds a URL from a parse_url array. * * @since 4.2.5 * * @param array $params The params array. * @param array $include The keys to include [scheme, user, pass, host, port, path, query, fragment]. * @param array $exclude The keys to exclude [scheme, user, pass, host, port, path, query, fragment]. * @return string The built url. */ public function buildUrl( $params, $include = [], $exclude = [] ) { if ( ! is_array( $params ) ) { return $params; } if ( ! empty( $include ) ) { foreach ( array_keys( $params ) as $includeKey ) { if ( ! in_array( $includeKey, $include, true ) ) { unset( $params[ $includeKey ] ); } } } if ( ! empty( $exclude ) ) { foreach ( array_keys( $params ) as $excludeKey ) { if ( in_array( $excludeKey, $exclude, true ) ) { unset( $params[ $excludeKey ] ); } } } $url = ''; if ( ! empty( $params['scheme'] ) ) { $url .= $params['scheme'] . '://'; } if ( ! empty( $params['user'] ) ) { $url .= $params['user']; if ( isset( $params['pass'] ) ) { $url .= ':' . $params['pass']; } $url .= '@'; } if ( ! empty( $params['host'] ) ) { $url .= $params['host']; } if ( ! empty( $params['port'] ) ) { $url .= ':' . $params['port']; } if ( ! empty( $params['path'] ) ) { $url .= $params['path']; } if ( ! empty( $params['query'] ) ) { $url .= '?' . $params['query']; } if ( ! empty( $params['fragment'] ) ) { $url .= '#' . $params['fragment']; } return $url; } }all-in-one-seo-pack/app/Common/Traits/Helpers/Vue.php000064400000060235151222735770016350 0ustar00args = compact( 'page', 'staticPostId', 'integration' ); $hash = md5( implode( '', array_map( 'strval', $this->args ) ) ); if ( isset( $this->cache[ $hash ] ) ) { return $this->cache[ $hash ]; } // Clear the data so we start fresh. $this->data = []; $this->setInitialData(); $this->setMultisiteData(); $this->setPostData(); $this->setDashboardData(); $this->setSearchStatisticsData(); $this->setSitemapsData(); $this->setSetupWizardData(); $this->setSearchAppearanceData(); $this->setSocialNetworksData(); $this->setSeoRevisionsData(); $this->setToolsOrSettingsData(); $this->setPageBuilderData(); $this->cache[ $hash ] = $this->data; return $this->cache[ $hash ]; } /** * Set Vue initial data. * * @since 4.4.9 * * @return void */ private function setInitialData() { $screen = aioseo()->helpers->getCurrentScreen(); $isStaticHomePage = 'page' === get_option( 'show_on_front' ); $staticHomePage = intval( get_option( 'page_on_front' ) ); $this->data = [ 'page' => $this->args['page'], 'screen' => [ 'base' => isset( $screen->base ) ? $screen->base : '', 'postType' => isset( $screen->post_type ) ? $screen->post_type : '', 'blockEditor' => isset( $screen->is_block_editor ) ? $screen->is_block_editor : false, 'new' => isset( $screen->action ) && 'add' === $screen->action ], 'internalOptions' => aioseo()->internalOptions->all(), 'options' => aioseo()->options->all(), 'dynamicOptions' => aioseo()->dynamicOptions->all(), 'deprecatedOptions' => aioseo()->internalOptions->getAllDeprecatedOptions( true ), 'settings' => aioseo()->settings->all(), 'tags' => aioseo()->tags->all( true ), 'nonce' => wp_create_nonce( 'wp_rest' ), 'urls' => [ 'domain' => $this->getSiteDomain(), 'mainSiteUrl' => $this->getSiteUrl(), 'siteLogo' => aioseo()->helpers->getSiteLogoUrl(), 'home' => home_url(), 'restUrl' => aioseo()->helpers->getRestUrl(), 'editScreen' => admin_url( 'edit.php' ), 'publicPath' => aioseo()->core->assets->normalizeAssetsHost( plugin_dir_url( AIOSEO_FILE ) ), 'assetsPath' => aioseo()->core->assets->getAssetsPath(), 'generalSitemapUrl' => aioseo()->sitemap->helpers->getUrl( 'general' ), 'rssSitemapUrl' => aioseo()->sitemap->helpers->getUrl( 'rss' ), 'robotsTxtUrl' => $this->getSiteUrl() . '/robots.txt', 'blockedBotsLogUrl' => wp_upload_dir()['baseurl'] . '/aioseo/logs/aioseo-bad-bot-blocker.log', 'upgradeUrl' => apply_filters( 'aioseo_upgrade_link', AIOSEO_MARKETING_URL ), 'staticHomePage' => 'page' === get_option( 'show_on_front' ) ? get_edit_post_link( get_option( 'page_on_front' ), 'url' ) : null, 'feeds' => [ 'rdf' => get_bloginfo( 'rdf_url' ), 'rss' => get_bloginfo( 'rss_url' ), 'atom' => get_bloginfo( 'atom_url' ), 'global' => get_bloginfo( 'rss2_url' ), 'globalComments' => get_bloginfo( 'comments_rss2_url' ), 'staticBlogPage' => $this->getBlogPageId() ? trailingslashit( get_permalink( $this->getBlogPageId() ) ) . 'feed' : '' ], 'connect' => add_query_arg( [ 'siteurl' => site_url(), 'homeurl' => home_url(), 'redirect' => rawurldecode( base64_encode( admin_url( 'index.php?page=aioseo-connect' ) ) ) ], defined( 'AIOSEO_CONNECT_URL' ) ? AIOSEO_CONNECT_URL : 'https://connect.aioseo.com' ), 'aio' => [ 'about' => is_network_admin() ? network_admin_url( 'admin.php?page=aioseo-about' ) : admin_url( 'admin.php?page=aioseo-about' ), 'dashboard' => admin_url( 'admin.php?page=aioseo' ), 'featureManager' => admin_url( 'admin.php?page=aioseo-feature-manager' ), 'linkAssistant' => admin_url( 'admin.php?page=aioseo-link-assistant' ), 'localSeo' => admin_url( 'admin.php?page=aioseo-local-seo' ), 'monsterinsights' => admin_url( 'admin.php?page=aioseo-monsterinsights' ), 'redirects' => admin_url( 'admin.php?page=aioseo-redirects' ), 'searchAppearance' => admin_url( 'admin.php?page=aioseo-search-appearance' ), 'searchStatistics' => admin_url( 'admin.php?page=aioseo-search-statistics' ), 'seoAnalysis' => admin_url( 'admin.php?page=aioseo-seo-analysis' ), 'settings' => admin_url( 'admin.php?page=aioseo-settings' ), 'sitemaps' => admin_url( 'admin.php?page=aioseo-sitemaps' ), 'socialNetworks' => admin_url( 'admin.php?page=aioseo-social-networks' ), 'tools' => admin_url( 'admin.php?page=aioseo-tools' ), 'wizard' => admin_url( 'index.php?page=aioseo-setup-wizard' ), 'networkSettings' => is_network_admin() ? network_admin_url( 'admin.php?page=aioseo-settings' ) : '', 'seoRevisions' => admin_url( 'admin.php?page=aioseo-seo-revisions' ), ], 'admin' => [ 'widgets' => admin_url( 'widgets.php' ), 'optionsReading' => admin_url( 'options-reading.php' ), 'scheduledActions' => admin_url( '/tools.php?page=action-scheduler&status=pending&s=aioseo' ), 'generalSettings' => admin_url( 'options-general.php' ) ], 'truSeoWorker' => aioseo()->core->assets->jsUrl( 'src/app/tru-seo/analyzer/main.js' ) ], 'backups' => [], 'importers' => [], 'data' => [ 'server' => aioseo()->helpers->getServerName(), 'robots' => [ 'defaultRules' => [], 'hasPhysicalRobots' => null, 'rewriteExists' => null, 'sitemapUrls' => [] ], 'logSizes' => [ 'badBotBlockerLog' => null ], 'status' => [], 'htaccess' => '', 'isMultisite' => is_multisite(), 'isNetworkAdmin' => is_network_admin(), 'currentBlogId' => get_current_blog_id(), 'mainSite' => is_main_site(), 'subdomain' => $this->isSubdomain(), 'isWooCommerceActive' => $this->isWooCommerceActive(), 'isBBPressActive' => class_exists( 'bbPress' ), 'staticHomePage' => $isStaticHomePage ? $staticHomePage : false, 'staticBlogPage' => $this->getBlogPageId(), 'staticBlogPageTitle' => get_the_title( $this->getBlogPageId() ), 'isDev' => $this->isDev(), 'isSsl' => is_ssl(), 'hasUrlTrailingSlash' => '/' === user_trailingslashit( '' ), 'permalinkStructure' => get_option( 'permalink_structure' ), 'dateFormat' => get_option( 'date_format' ), 'timeFormat' => get_option( 'time_format' ) ], 'user' => [ 'canManage' => aioseo()->access->canManage(), 'capabilities' => aioseo()->access->getAllCapabilities(), 'customRoles' => $this->getCustomRoles(), 'data' => wp_get_current_user(), 'locale' => function_exists( 'get_user_locale' ) ? get_user_locale() : get_locale(), 'roles' => $this->getUserRoles(), 'unfilteredHtml' => current_user_can( 'unfiltered_html' ) ], 'plugins' => $this->getPluginData(), 'postData' => [ 'postTypes' => $this->getPublicPostTypes( false, false, true ), 'taxonomies' => $this->getPublicTaxonomies( false, true ), 'archives' => $this->getPublicPostTypes( false, true, true ), 'postStatuses' => $this->getPublicPostStatuses() ], 'notifications' => array_merge( Models\Notification::getNotifications( false ), [ 'force' => $this->showNotificationsDrawer() ] ), 'addons' => aioseo()->addons->getAddons(), 'features' => aioseo()->features->getFeatures(), 'version' => AIOSEO_VERSION, 'wpVersion' => get_bloginfo( 'version' ), 'helpPanel' => aioseo()->help->getDocs(), 'scheduledActions' => [ 'sitemaps' => [] ], 'integration' => $this->args['integration'], 'theme' => [ 'features' => aioseo()->helpers->getThemeFeatures() ] ]; } /** * Set Vue multisite data. * * @since 4.4.9 * * @return void */ private function setMultisiteData() { if ( ! is_multisite() ) { return; } $this->data['internalNetworkOptions'] = aioseo()->internalNetworkOptions->all(); $this->data['networkOptions'] = aioseo()->networkOptions->all(); } /** * Set Vue post data. * * @since 4.4.9 * * @return void */ private function setPostData() { if ( 'post' !== $this->args['page'] ) { return; } $postId = $this->args['staticPostId'] ?: get_the_ID(); $postTypeObj = get_post_type_object( get_post_type( $postId ) ); $post = Models\Post::getPost( $postId ); $wpPost = get_post( $postId ); $staticHomePage = intval( get_option( 'page_on_front' ) ); $this->data['currentPost'] = [ 'context' => 'post', 'tags' => aioseo()->tags->getDefaultPostTags( $postId ), 'id' => $postId, 'priority' => isset( $post->priority ) && 'default' !== $post->priority ? $post->priority : 'default', 'frequency' => ! empty( $post->frequency ) ? $post->frequency : 'default', 'permalink' => get_permalink( $postId ), 'editlink' => aioseo()->helpers->getPostEditLink( $postId ), 'title' => ! empty( $post->title ) ? $post->title : aioseo()->meta->title->getPostTypeTitle( $postTypeObj->name ), 'description' => ! empty( $post->description ) ? $post->description : aioseo()->meta->description->getPostTypeDescription( $postTypeObj->name ), 'descriptionIncludeCustomFields' => apply_filters( 'aioseo_description_include_custom_fields', true, $post ), 'keywords' => ! empty( $post->keywords ) ? $post->keywords : wp_json_encode( [] ), 'keyphrases' => Models\Post::getKeyphrasesDefaults( $post->keyphrases ), 'page_analysis' => ! empty( $post->page_analysis ) ? json_decode( $post->page_analysis ) : Models\Post::getPageAnalysisDefaults(), 'loading' => [ 'focus' => false, 'additional' => [], ], 'type' => $postTypeObj->labels->singular_name, 'postType' => 'type' === $postTypeObj->name ? '_aioseo_type' : $postTypeObj->name, 'postStatus' => get_post_status( $postId ), 'postAuthor' => (int) $wpPost->post_author, 'isSpecialPage' => $this->isSpecialPage( $postId ), 'isStaticPostsPage' => aioseo()->helpers->isStaticPostsPage(), 'isHomePage' => $postId === $staticHomePage, 'isWooCommercePageWithoutSchema' => $this->isWooCommercePageWithoutSchema( $postId ), 'seo_score' => (int) $post->seo_score, 'pillar_content' => ( (int) $post->pillar_content ) === 0 ? false : true, 'canonicalUrl' => $post->canonical_url, 'default' => ( (int) $post->robots_default ) === 0 ? false : true, 'noindex' => ( (int) $post->robots_noindex ) === 0 ? false : true, 'noarchive' => ( (int) $post->robots_noarchive ) === 0 ? false : true, 'nosnippet' => ( (int) $post->robots_nosnippet ) === 0 ? false : true, 'nofollow' => ( (int) $post->robots_nofollow ) === 0 ? false : true, 'noimageindex' => ( (int) $post->robots_noimageindex ) === 0 ? false : true, 'noodp' => ( (int) $post->robots_noodp ) === 0 ? false : true, 'notranslate' => ( (int) $post->robots_notranslate ) === 0 ? false : true, 'maxSnippet' => null === $post->robots_max_snippet ? - 1 : (int) $post->robots_max_snippet, 'maxVideoPreview' => null === $post->robots_max_videopreview ? - 1 : (int) $post->robots_max_videopreview, 'maxImagePreview' => $post->robots_max_imagepreview, 'modalOpen' => false, 'generalMobilePrev' => false, 'og_object_type' => ! empty( $post->og_object_type ) ? $post->og_object_type : 'default', 'og_title' => $post->og_title, 'og_description' => $post->og_description, 'og_image_custom_url' => $post->og_image_custom_url, 'og_image_custom_fields' => $post->og_image_custom_fields, 'og_image_type' => ! empty( $post->og_image_type ) ? $post->og_image_type : 'default', 'og_video' => ! empty( $post->og_video ) ? $post->og_video : '', 'og_article_section' => ! empty( $post->og_article_section ) ? $post->og_article_section : '', 'og_article_tags' => ! empty( $post->og_article_tags ) ? $post->og_article_tags : wp_json_encode( [] ), 'twitter_use_og' => ( (int) $post->twitter_use_og ) === 0 ? false : true, 'twitter_card' => $post->twitter_card, 'twitter_image_custom_url' => $post->twitter_image_custom_url, 'twitter_image_custom_fields' => $post->twitter_image_custom_fields, 'twitter_image_type' => $post->twitter_image_type, 'twitter_title' => $post->twitter_title, 'twitter_description' => $post->twitter_description, 'schema' => ( ! empty( $post->schema ) ) ? Models\Post::getDefaultSchemaOptions( $post->schema, aioseo()->helpers->getPost( $postId ) ) : Models\Post::getDefaultSchemaOptions( '', aioseo()->helpers->getPost( $postId ) ), 'metaDefaults' => [ 'title' => aioseo()->meta->title->getPostTypeTitle( $postTypeObj->name ), 'description' => aioseo()->meta->description->getPostTypeDescription( $postTypeObj->name ) ], 'linkAssistant' => [ 'modalOpen' => false ], 'limit_modified_date' => ( (int) $post->limit_modified_date ) === 0 ? false : true, 'redirects' => [ 'modalOpen' => false ], 'options' => $post->options ]; if ( empty( $this->args['integration'] ) ) { $this->data['integration'] = aioseo()->helpers->getPostPageBuilderName( $postId ); } if ( ! $post->exists() ) { $oldPostMeta = aioseo()->migration->meta->getMigratedPostMeta( $postId ); foreach ( $oldPostMeta as $k => $v ) { if ( preg_match( '#robots_.*#', $k ) ) { $oldPostMeta[ preg_replace( '#robots_#', '', $k ) ] = $v; continue; } if ( 'canonical_url' === $k ) { $oldPostMeta['canonicalUrl'] = $v; } } $this->data['currentPost'] = array_merge( $this->data['currentPost'], $oldPostMeta ); } } /** * Set Vue dashboard data. * * @since 4.4.9 * * @return void */ private function setDashboardData() { if ( 'dashboard' !== $this->args['page'] ) { return; } $this->data['setupWizard']['isCompleted'] = aioseo()->standalone->setupWizard->isCompleted(); $this->data['seoOverview'] = aioseo()->postSettings->getPostTypesOverview(); $this->data['importers'] = aioseo()->importExport->plugins(); } /** * Set Vue search statistics data. * * @since 4.4.9 * * @return void */ private function setSearchStatisticsData() { if ( 'search-statistics' !== $this->args['page'] ) { return; } $this->data['seoOverview'] = aioseo()->postSettings->getPostTypesOverview(); $this->data['searchStatistics'] = aioseo()->searchStatistics->getVueData(); } /** * Set Vue sitemaps data. * * @since 4.4.9 * * @return void */ private function setSitemapsData() { if ( 'sitemaps' !== $this->args['page'] ) { return; } try { if ( as_next_scheduled_action( 'aioseo_static_sitemap_regeneration' ) ) { $this->data['scheduledActions']['sitemap'][] = 'staticSitemapRegeneration'; } } catch ( \Exception $e ) { // Do nothing. } } /** * Set Vue setup wizard data. * * @since 4.4.9 * * @return void */ private function setSetupWizardData() { if ( 'setup-wizard' !== $this->args['page'] ) { return; } $isStaticHomePage = 'page' === get_option( 'show_on_front' ); $staticHomePage = intval( get_option( 'page_on_front' ) ); $this->data['users'] = $this->getSiteUsers( [ 'administrator', 'editor', 'author' ] ); $this->data['importers'] = aioseo()->importExport->plugins(); $this->data['data'] += [ 'staticHomePageTitle' => $isStaticHomePage ? aioseo()->meta->title->getTitle( $staticHomePage ) : '', 'staticHomePageDescription' => $isStaticHomePage ? aioseo()->meta->description->getDescription( $staticHomePage ) : '', ]; } /** * Set Vue search appearance data. * * @since 4.4.9 * * @return void */ private function setSearchAppearanceData() { if ( 'search-appearance' !== $this->args['page'] ) { return; } $isStaticHomePage = 'page' === get_option( 'show_on_front' ); $staticHomePage = intval( get_option( 'page_on_front' ) ); $this->data['users'] = $this->getSiteUsers( [ 'administrator', 'editor', 'author' ] ); $this->data['data'] += [ 'staticHomePageTitle' => $isStaticHomePage ? aioseo()->meta->title->getTitle( $staticHomePage ) : '', 'staticHomePageDescription' => $isStaticHomePage ? aioseo()->meta->description->getDescription( $staticHomePage ) : '', ]; } /** * Set Vue social networks data. * * @since 4.4.9 * * @return void */ private function setSocialNetworksData() { if ( 'social-networks' !== $this->args['page'] ) { return; } $isStaticHomePage = 'page' === get_option( 'show_on_front' ); $staticHomePage = intval( get_option( 'page_on_front' ) ); $this->data['data'] += [ 'staticHomePageOgTitle' => $isStaticHomePage ? aioseo()->social->facebook->getTitle( $staticHomePage ) : '', 'staticHomePageOgDescription' => $isStaticHomePage ? aioseo()->social->facebook->getDescription( $staticHomePage ) : '', 'staticHomePageTwitterTitle' => $isStaticHomePage ? aioseo()->social->twitter->getTitle( $staticHomePage ) : '', 'staticHomePageTwitterDescription' => $isStaticHomePage ? aioseo()->social->twitter->getDescription( $staticHomePage ) : '', ]; } /** * Set Vue seo revisions data. * * @since 4.4.9 * * @return void */ private function setSeoRevisionsData() { if ( 'post' === $this->args['page'] ) { $this->data['seoRevisions'] = aioseo()->seoRevisions->getVueDataEdit(); } if ( 'seo-revisions' === $this->args['page'] ) { $this->data['seoRevisions'] = aioseo()->seoRevisions->getVueDataCompare(); } } /** * Set Vue tools or settings data. * * @since 4.4.9 * * @return void */ private function setToolsOrSettingsData() { if ( 'tools' !== $this->args['page'] && 'settings' !== $this->args['page'] ) { return; } if ( 'tools' === $this->args['page'] ) { $this->data['backups'] = array_reverse( aioseo()->backup->all() ); $this->data['importers'] = aioseo()->importExport->plugins(); $this->data['data']['robots'] = [ 'defaultRules' => $this->args['page'] ? aioseo()->robotsTxt->extractRules( aioseo()->robotsTxt->getDefaultRobotsTxtContent() ) : [], 'hasPhysicalRobots' => aioseo()->robotsTxt->hasPhysicalRobotsTxt(), 'rewriteExists' => aioseo()->robotsTxt->rewriteRulesExist(), 'sitemapUrls' => array_merge( aioseo()->sitemap->helpers->getSitemapUrls(), aioseo()->sitemap->helpers->extractSitemapUrlsFromRobotsTxt() ) ]; $this->data['data']['logSizes'] = [ 'badBotBlockerLog' => $this->convertFileSize( aioseo()->badBotBlocker->getLogSize() ) ]; $this->data['data']['status'] = Tools\SystemStatus::getSystemStatusInfo(); $this->data['data']['htaccess'] = aioseo()->htaccess->getContents(); $this->data['data']['v3Options'] = ! empty( get_option( 'aioseop_options' ) ); $this->data['integrations']['wpcode'] = [ 'snippets' => WpCodeIntegration::loadWpCodeSnippets(), 'pluginInstalled' => WpCodeIntegration::isPluginInstalled(), 'pluginActive' => WpCodeIntegration::isPluginActive(), 'pluginNeedsUpdate' => WpCodeIntegration::pluginNeedsUpdate() ]; } if ( 'settings' === $this->args['page'] ) { $this->data['breadcrumbs']['defaultTemplate'] = aioseo()->helpers->encodeOutputHtml( aioseo()->breadcrumbs->frontend->getDefaultTemplate() ); } if ( is_multisite() && is_network_admin() ) { $this->data['data']['network'] = [ 'sites' => aioseo()->helpers->getSites( aioseo()->settings->tablePagination['networkDomains'] ), 'backups' => [] ]; } } /** * Set Vue Page Builder data. * * @since 4.4.9 * @version 4.5.2 Renamed. * * @return void */ private function setPageBuilderData() { if ( empty( $this->args['integration'] ) ) { return; } if ( 'divi' === $this->args['integration'] ) { // This needs to be dropped in order to prevent JavaScript errors in Divi's visual builder. // Some of the data from the site analysis can contain HTML tags, e.g. the search preview, and somehow that causes JSON.parse to fail on our localized Vue data. unset( $this->data['internalOptions']['internal']['siteAnalysis'] ); } } /** * Returns Jed-formatted localization data. Added for backwards-compatibility. * * @since 4.0.0 * * @param string $domain Translation domain. * @return array The information of the locale. */ public function getJedLocaleData( $domain ) { $translations = get_translations_for_domain( $domain ); $locale = [ '' => [ 'domain' => $domain, 'lang' => is_admin() && function_exists( 'get_user_locale' ) ? get_user_locale() : get_locale(), ], ]; if ( ! empty( $translations->headers['Plural-Forms'] ) ) { $locale['']['plural_forms'] = $translations->headers['Plural-Forms']; } foreach ( $translations->entries as $entry ) { if ( empty( $entry->translations ) || ! is_array( $entry->translations ) ) { continue; } foreach ( $entry->translations as $translation ) { // If any of the translated strings contains an HTML line break, we need to ignore it. Otherwise, logging into the admin breaks. if ( preg_match( '//', $translation ) ) { continue 2; } } // Set the translation data using the singular string as the index. This is how Jed expects it, even for plural strings. $locale[ $entry->singular ] = $entry->translations; } return $locale; } /** * Whether the notifications drawer should be shown or not. * * @since 4.4.9 * * @return bool True if it should be shown, false otherwise. */ private function showNotificationsDrawer() { static $showNotificationsDrawer = null; if ( null === $showNotificationsDrawer ) { $showNotificationsDrawer = (bool) aioseo()->core->cache->get( 'show_notifications_drawer' ); // If this is set to true, let's disable it now, so it doesn't pop up again. if ( $showNotificationsDrawer ) { aioseo()->core->cache->delete( 'show_notifications_drawer' ); } } return $showNotificationsDrawer; } }all-in-one-seo-pack/app/Common/Traits/Helpers/WpContext.php000064400000055352151222735770017550 0ustar00getHomePageId(); return $homePageId ? get_post( $homePageId ) : null; } /** * Get the ID of the home page. * * @since 4.0.0 * * @return int|null The home page ID. */ public function getHomePageId() { $pageShowOnFront = ( 'page' === get_option( 'show_on_front' ) ); $pageOnFrontId = get_option( 'page_on_front' ); return $pageShowOnFront && $pageOnFrontId ? (int) $pageOnFrontId : null; } /** * Returns the blog page. * * @since 4.0.0 * * @return \WP_Post|null The blog page. */ public function getBlogPage() { $blogPageId = $this->getBlogPageId(); return $blogPageId ? get_post( $blogPageId ) : null; } /** * Gets the current blog page id if it's configured. * * @since 4.1.1 * * @return int|null */ public function getBlogPageId() { $pageShowOnFront = ( 'page' === get_option( 'show_on_front' ) ); $blogPageId = (int) get_option( 'page_for_posts' ); return $pageShowOnFront && $blogPageId ? $blogPageId : null; } /** * Checks whether the current page is a taxonomy term archive. * * @since 4.0.0 * * @return bool Whether the current page is a taxonomy term archive. */ public function isTaxTerm() { $object = get_queried_object(); return $object instanceof \WP_Term; } /** * Checks whether the current page is a static one. * * @since 4.0.0 * * @return bool Whether the current page is a static one. */ public function isStaticPage() { return $this->isStaticHomePage() || $this->isStaticPostsPage() || $this->isWooCommerceShopPage(); } /** * Checks whether the current page is the static homepage. * * @since 4.0.0 * * @param mixed $post Pass in an optional post to check if its the static home page. * @return bool Whether the current page is the static homepage. */ public function isStaticHomePage( $post = null ) { static $isHomePage = null; if ( null !== $isHomePage ) { return $isHomePage; } $post = aioseo()->helpers->getPost( $post ); $isHomePage = ( 'page' === get_option( 'show_on_front' ) && ! empty( $post->ID ) && (int) get_option( 'page_on_front' ) === $post->ID ); return $isHomePage; } /** * Checks whether the current page is the dynamic homepage. * * @since 4.2.3 * * @return bool Whether the current page is the dynamic homepage. */ public function isDynamicHomePage() { return is_front_page() && is_home(); } /** * Checks whether the current page is the static posts page. * * @since 4.0.0 * * @return bool Whether the current page is the static posts page. */ public function isStaticPostsPage( $post = null ) { static $isStaticPostsPage = null; if ( null !== $isStaticPostsPage ) { return $isStaticPostsPage; } $post = aioseo()->helpers->getPost( $post ); $isStaticPostsPage = ( ( is_home() && ( 0 !== (int) get_option( 'page_for_posts' ) ) ) || ( ! empty( $post->ID ) && (int) get_option( 'page_for_posts' ) === $post->ID ) ); return $isStaticPostsPage; } /** * Checks whether current page supports meta. * * @since 4.0.0 * * @return bool Whether the current page supports meta. */ public function supportsMeta() { return ! is_date() && ! is_author() && ! is_search() && ! is_404(); } /** * Returns the current post object. * * @since 4.0.0 * * @param \WP_Post|int|bool $postId The post ID. * @return \WP_Post|null The post object. */ public function getPost( $postId = false ) { $postId = is_a( $postId, 'WP_Post' ) ? $postId->ID : $postId; if ( aioseo()->helpers->isWooCommerceShopPage( $postId ) ) { return get_post( wc_get_page_id( 'shop' ) ); } if ( is_front_page() || is_home() ) { $showOnFront = 'page' === get_option( 'show_on_front' ); if ( $showOnFront ) { if ( is_front_page() ) { $pageOnFront = (int) get_option( 'page_on_front' ); return get_post( $pageOnFront ); } elseif ( is_home() ) { $pageForPosts = (int) get_option( 'page_for_posts' ); return get_post( $pageForPosts ); } } } // Learnpress lessons load the course. So here we need to switch to the lesson. $learnPressLesson = aioseo()->helpers->getLearnPressLesson(); if ( ! $postId && $learnPressLesson ) { $postId = $learnPressLesson; } // Allow other plugins to filter the post ID e.g. for a special archive page. $postId = apply_filters( 'aioseo_get_post_id', $postId ); // We need to check these conditions and cannot always return get_post() because we'll return the first post on archive pages (dynamic homepage, term pages, etc.). if ( $this->isScreenBase( 'post' ) || $postId || is_singular() ) { return get_post( $postId ); } return null; } /** * Returns the current post ID. * * @since 4.3.1 * * @return int|null The post ID. */ public function getPostId() { $post = $this->getPost(); return is_object( $post ) && property_exists( $post, 'ID' ) ? $post->ID : null; } /** * Returns the post content after parsing it. * * @since 4.1.5 * * @param \WP_Post|int $post The post (optional). * @return string The post content. */ public function getPostContent( $post = null ) { $post = is_a( $post, 'WP_Post' ) ? $post : $this->getPost( $post ); static $content = []; if ( isset( $content[ $post->ID ] ) ) { return $content[ $post->ID ]; } // We need to process the content for page builders. $postContent = $post->post_content; $pageBuilder = aioseo()->helpers->getPostPageBuilderName( $post->ID ); if ( ! empty( $pageBuilder ) ) { $postContent = aioseo()->standalone->pageBuilderIntegrations[ $pageBuilder ]->processContent( $post->ID, $postContent ); } $content[ $post->ID ] = $this->theContent( $postContent ); if ( apply_filters( 'aioseo_description_include_custom_fields', true, $post ) ) { $content[ $post->ID ] .= $this->theContent( $this->getPostCustomFieldsContent( $post ) ); } return $content[ $post->ID ]; } /** * Gets the content from configured custom fields. * * @since 4.2.7 * * @param \WP_Post|int $post A post object or ID. * @return string The content. */ public function getPostCustomFieldsContent( $post = null ) { $post = is_a( $post, 'WP_Post' ) ? $post : $this->getPost( $post ); if ( ! aioseo()->dynamicOptions->searchAppearance->postTypes->has( $post->post_type ) ) { return ''; } $customFieldKeys = aioseo()->dynamicOptions->searchAppearance->postTypes->{$post->post_type}->customFields; if ( empty( $customFieldKeys ) ) { return ''; } $customFieldKeys = explode( ' ', sanitize_text_field( $customFieldKeys ) ); return aioseo()->helpers->getCustomFieldsContent( $post, $customFieldKeys ); } /** * Returns the post content after parsing shortcodes and blocks. * We avoid using the "the_content" hook because it breaks stuff if we call it outside the loop or main query. * See https://developer.wordpress.org/reference/hooks/the_content/ * * @since 4.1.5.2 * * @param string $postContent The post content. * @return string The parsed post content. */ public function theContent( $postContent ) { if ( ! aioseo()->options->searchAppearance->advanced->runShortcodes ) { return $postContent; } // Because do_blocks() and do_shortcodes() can trigger conflicts, we need to clone these objects and restore them afterwards. // We need to clone deep to sever pointers/references because these have nested object properties. global $wp_query, $post; $this->originalQuery = $this->deepClone( $wp_query ); $this->originalPost = is_a( $post, 'WP_Post' ) ? $this->deepClone( $post ) : null; // The order of the function calls below is intentional and should NOT change. $postContent = do_blocks( $postContent ); $postContent = wpautop( $postContent ); $postContent = $this->doShortcodes( $postContent ); $this->restoreWpQuery(); return $postContent; } /** * Returns the description based on the post content. * * @since 4.0.0 * * @param \WP_Post|int $post The post (optional). * @return string The description. */ public function getDescriptionFromContent( $post = null ) { $post = is_a( $post, 'WP_Post' ) ? $post : $this->getPost( $post ); static $content = []; if ( isset( $content[ $post->ID ] ) ) { return $content[ $post->ID ]; } $content[ $post->ID ] = ''; if ( ! empty( $post->post_password ) ) { return $content[ $post->ID ]; } $postContent = $this->getPostContent( $post ); // Strip images, captions and WP oembed wrappers (e.g. YouTube URLs) from the post content. $postContent = preg_replace( '/(||.*?<\/div>)/s', '', $postContent ); $postContent = str_replace( ']]>', ']]>', $postContent ); $postContent = trim( wp_strip_all_tags( strip_shortcodes( $postContent ) ) ); $content[ $post->ID ] = wp_trim_words( $postContent, 55, '' ); return $content[ $post->ID ]; } /** * Returns custom fields as a string. * * @since 4.0.6 * * @param \WP_Post|int $post The post. * @param array $keys The post meta_keys to check for values. * @return string The custom field content. */ public function getCustomFieldsContent( $post = null, $keys = [] ) { $post = is_a( $post, 'WP_Post' ) ? $post : $this->getPost( $post ); $customFieldContent = ''; $acfFields = $this->getAcfContent( $post ); foreach ( $keys as $key ) { // Try ACF. if ( isset( $acfFields[ $key ] ) ) { $customFieldContent .= "$acfFields[$key] "; continue; } // Fallback to post meta. $value = get_post_meta( $post->ID, $key, true ); if ( $value && is_scalar( $value ) ) { $customFieldContent .= $value . ' '; } } return $customFieldContent; } /** * Returns if the page is a special type (WooCommerce pages, Privacy page). * * @since 4.0.0 * * @param int $postId The post ID. * @return bool If the page is special or not. */ public function isSpecialPage( $postId = 0 ) { if ( (int) get_option( 'page_for_posts' ) === (int) $postId || (int) get_option( 'wp_page_for_privacy_policy' ) === (int) $postId || $this->isBuddyPressPage( $postId ) || $this->isWooCommercePage( $postId ) ) { return true; } return false; } /** * Returns the page number of the current page. * * @since 4.0.0 * * @return int The page number. */ public function getPageNumber() { $page = get_query_var( 'page' ); if ( ! empty( $page ) ) { return (int) $page; } $paged = get_query_var( 'paged' ); if ( ! empty( $paged ) ) { return (int) $paged; } return 1; } /** * Returns the page number for the comment page. * * @since 4.2.1 * * @return int|false The page number or false if we're not on a comment page. */ public function getCommentPageNumber() { $cpage = get_query_var( 'cpage', null ); if ( $this->isBlockTheme() ) { global $wp_query; // For block themes we can't rely on `get_query_var()` because of {@see build_comment_query_vars_from_block()}, // so we need to check the query directly. $cpage = $wp_query->query['cpage'] ?? null; } return isset( $cpage ) ? (int) $cpage : false; } /** * Check if the post passed in is a valid post, not a revision or autosave. * * @since 4.0.5 * * @param \WP_Post $post The Post object to check. * @param array $allowedPostStatuses Allowed post statuses. * @return bool True if valid, false if not. */ public function isValidPost( $post, $allowedPostStatuses = [ 'publish' ] ) { if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) { return false; } if ( ! is_object( $post ) ) { $post = get_post( $post ); } // No post, no go. if ( empty( $post ) ) { return false; } // In order to prevent recursion, we are skipping scheduled-action posts and revisions. if ( 'scheduled-action' === $post->post_type || 'revision' === $post->post_type ) { return false; } // Ensure this post has the proper post status. if ( ! in_array( $post->post_status, $allowedPostStatuses, true ) && ! in_array( 'all', $allowedPostStatuses, true ) ) { return false; } return true; } /** * Checks whether the given URL is a valid attachment. * * @since 4.0.13 * * @param string $url The URL. * @return bool Whether the URL is a valid attachment. */ public function isValidAttachment( $url ) { $uploadDirUrl = aioseo()->helpers->escapeRegex( $this->getWpContentUrl() ); return preg_match( "/$uploadDirUrl.*/", $url ); } /** * Tries to convert an attachment URL into a post ID. * * This our own optimized version of attachment_url_to_postid(). * * @since 4.0.13 * * @param string $url The attachment URL. * @return int|bool The attachment ID or false if no attachment could be found. */ public function attachmentUrlToPostId( $url ) { $cacheName = 'attachment_url_to_post_id_' . sha1( "aioseo_attachment_url_to_post_id_$url" ); $cachedId = aioseo()->core->cache->get( $cacheName ); if ( $cachedId ) { return 'none' !== $cachedId && is_numeric( $cachedId ) ? (int) $cachedId : false; } $path = $url; $uploadDirInfo = wp_get_upload_dir(); $siteUrl = wp_parse_url( $uploadDirInfo['url'] ); $imagePath = wp_parse_url( $path ); // Force the protocols to match if needed. if ( isset( $imagePath['scheme'] ) && ( $imagePath['scheme'] !== $siteUrl['scheme'] ) ) { $path = str_replace( $imagePath['scheme'], $siteUrl['scheme'], $path ); } if ( ! $this->isValidAttachment( $path ) ) { aioseo()->core->cache->update( $cacheName, 'none' ); return false; } if ( 0 === strpos( $path, $uploadDirInfo['baseurl'] . '/' ) ) { $path = substr( $path, strlen( $uploadDirInfo['baseurl'] . '/' ) ); } $results = aioseo()->core->db->start( 'postmeta' ) ->select( 'post_id' ) ->where( 'meta_key', '_wp_attached_file' ) ->where( 'meta_value', $path ) ->limit( 1 ) ->run() ->result(); if ( empty( $results[0]->post_id ) ) { aioseo()->core->cache->update( $cacheName, 'none' ); return false; } aioseo()->core->cache->update( $cacheName, $results[0]->post_id ); return $results[0]->post_id; } /** * Returns true if the request is a non-legacy REST API request. * This function was copied from WooCommerce and improved. * * @since 4.1.2 * * @return bool True if this is a REST API request. */ public function isRestApiRequest() { if ( defined( 'REST_REQUEST' ) && REST_REQUEST ) { return true; } global $wp_rewrite; if ( empty( $wp_rewrite ) ) { return false; } if ( empty( $_SERVER['REQUEST_URI'] ) ) { return false; } $restUrl = wp_parse_url( get_rest_url() ); $restUrl = $restUrl['path'] . ( ! empty( $restUrl['query'] ) ? '?' . $restUrl['query'] : '' ); $isRestApiRequest = ( 0 === strpos( $_SERVER['REQUEST_URI'], $restUrl ) ); return apply_filters( 'aioseo_is_rest_api_request', $isRestApiRequest ); } /** * Checks whether the current request is an AJAX, CRON or REST request. * * @since 4.1.3 * * @return bool Wether the request is an AJAX, CRON or REST request. */ public function isAjaxCronRestRequest() { return wp_doing_ajax() || wp_doing_cron() || $this->isRestApiRequest(); } /** * Check if we are in the middle of a WP-CLI call. * * @since 4.2.8 * * @return bool True if we are in the WP_CLI context. */ public function isDoingWpCli() { return defined( 'WP_CLI' ) && WP_CLI; } /** * Checks whether we're on the given screen. * * @since 4.0.7 * @version 4.3.1 * * @param string $screenName The screen name. * @param string $comparison Check as a prefix. * @return bool Whether we're on the given screen. */ public function isScreenBase( $screenName, $comparison = '' ) { $screen = $this->getCurrentScreen(); if ( ! $screen || ! isset( $screen->base ) ) { return false; } if ( 'prefix' === $comparison ) { return 0 === stripos( $screen->base, $screenName ); } return $screen->base === $screenName; } /** * Returns if current screen is of a post type * * @since 4.0.17 * * @param string $postType Post type slug * @return bool True if the current screen is a post type screen. */ public function isScreenPostType( $postType ) { $screen = $this->getCurrentScreen(); if ( ! $screen || ! isset( $screen->post_type ) ) { return false; } return $screen->post_type === $postType; } /** * Returns if current screen is a post list, optionaly of a post type. * * @since 4.2.4 * * @param string $postType Post type slug. * @return bool Is a post list. */ public function isScreenPostList( $postType = '' ) { $screen = $this->getCurrentScreen(); if ( ! $this->isScreenBase( 'edit' ) || empty( $screen->post_type ) ) { return false; } if ( ! empty( $postType ) && $screen->post_type !== $postType ) { return false; } return true; } /** * Returns if current screen is a post edit screen, optionaly of a post type. * * @since 4.2.4 * * @param string $postType Post type slug. * @return bool Is a post editing screen. */ public function isScreenPostEdit( $postType = '' ) { $screen = $this->getCurrentScreen(); if ( ! $this->isScreenBase( 'post' ) || empty( $screen->post_type ) ) { return false; } if ( ! empty( $postType ) && $screen->post_type !== $postType ) { return false; } return true; } /** * Gets current admin screen. * * @since 4.0.17 * * @return false|\WP_Screen|null */ public function getCurrentScreen() { if ( ! is_admin() || ! function_exists( 'get_current_screen' ) ) { return false; } return get_current_screen(); } /** * Checks whether the current site is a multisite subdomain. * * @since 4.1.9 * * @return bool Whether the current site is a subdomain. */ public function isSubdomain() { if ( ! is_multisite() ) { return false; } return apply_filters( 'aioseo_multisite_subdomain', is_subdomain_install() ); } /** * Returns if the current page is the login or register page. * * @since 4.2.1 * * @return bool Login or register page. */ public function isWpLoginPage() { // We can't sanitize the filename using sanitize_file_name() here because it will cause issues with custom login pages and certain plugins/themes where this function is not defined. $self = ! empty( $_SERVER['PHP_SELF'] ) ? wp_unslash( $_SERVER['PHP_SELF'] ) : ''; // phpcs:ignore HM.Security.ValidatedSanitizedInput.InputNotSanitized if ( preg_match( '/wp-login\.php$|wp-register\.php$/', $self ) ) { return true; } return false; } /** * Returns which type of WordPress page we're seeing. * It will only work if {@see \WP_Query::$queried_object} has been set. * * @link https://developer.wordpress.org/themes/basics/template-hierarchy/#filter-hierarchy * * @since 4.2.8 * * @return string|null The template type or `null` if no match. */ public function getTemplateType() { static $type = null; if ( ! empty( $type ) ) { return $type; } if ( is_attachment() ) { $type = 'attachment'; } elseif ( is_single() ) { $type = 'single'; } elseif ( is_page() || $this->isStaticPostsPage() || $this->isWooCommerceShopPage() ) { $type = 'page'; } elseif ( is_author() ) { // An author page is an archive page, so it needs to be checked before `is_archive()`. $type = 'author'; } elseif ( is_tax() || is_category() || is_tag() ) { // A taxonomy term page is an archive page, so it needs to be checked before `is_archive()`. $type = 'taxonomy'; } elseif ( is_date() ) { // A date page is an archive page, so it needs to be checked before `is_archive()`. $type = 'date'; } elseif ( is_archive() ) { $type = 'archive'; } elseif ( is_home() && is_front_page() ) { $type = 'dynamic_home'; } elseif ( is_search() ) { $type = 'search'; } return $type; } /** * Sets the given post as the queried object of the main query. * * @since 4.3.0 * * @param \WP_Post|int $wpPost The post object or ID. * @return void */ public function setWpQueryPost( $wpPost ) { $wpPost = is_a( $wpPost, 'WP_Post' ) ? $wpPost : get_post( $wpPost ); global $wp_query, $post; $this->originalQuery = $this->deepClone( $wp_query ); $this->originalPost = is_a( $post, 'WP_Post' ) ? $this->deepClone( $post ) : null; $wp_query->posts = [ $wpPost ]; $wp_query->post = $wpPost; $wp_query->post_count = 1; $wp_query->get_queried_object_id = (int) $wpPost->ID; $wp_query->queried_object = $wpPost; $wp_query->is_single = true; $wp_query->is_singular = true; if ( 'page' === $wpPost->post_type ) { $wp_query->is_page = true; } $post = $wpPost; } /** * Restores the main query back to the original query. * * @since 4.3.0 * * @return void */ public function restoreWpQuery() { global $wp_query, $post; if ( is_a( $this->originalQuery, 'WP_Query' ) ) { // Loop over all properties and replace the ones that have changed. // We want to avoid replacing the entire object because it can cause issues with other plugins. foreach ( $this->originalQuery as $key => $value ) { if ( $value !== $wp_query->{$key} ) { $wp_query->{$key} = $value; } } } if ( is_a( $this->originalPost, 'WP_Post' ) ) { foreach ( $this->originalPost as $key => $value ) { if ( $value !== $post->{$key} ) { $post->{$key} = $value; } } } $this->originalQuery = null; $this->originalPost = null; } /** * Gets the list of theme features. * * @since 4.4.9 * * @return array List of theme features. */ public function getThemeFeatures() { global $_wp_theme_features; return isset( $_wp_theme_features ) && is_array( $_wp_theme_features ) ? $_wp_theme_features : []; } /** * Returns whether the active theme is a block-based theme or not. * * @since 4.5.3 * * @return bool Whether the active theme is a block-based theme or not. */ public function isBlockTheme() { if ( function_exists( 'wp_is_block_theme' ) ) { return wp_is_block_theme(); // phpcs:ignore AIOSEO.WpFunctionUse.NewFunctions.wp_is_block_themeFound } return false; } }all-in-one-seo-pack/app/Common/Traits/Helpers/WpMultisite.php000064400000016600151222735770020074 0ustar00site_id; } return get_current_blog_id(); } /** * Get a site (with aliases) by it's blog ID. * * @since 4.2.5 * * @param int $blogId The blog ID. * @return \WP_Site|null The site. */ public function getSiteByBlogId( $blogId ) { $sites = $this->getSites(); foreach ( $sites['sites'] as $site ) { if ( $site->blog_id === $blogId ) { return $site; } } return null; } /** * Get the current site. * * @since 4.2.5 * * @return \WP_Site|object A WP_Site instance of the current site or an object representing the same. */ public function getSite() { if ( is_multisite() ) { return get_site(); } return (object) [ 'domain' => $this->getSiteDomain(), 'path' => $this->getHomePath() ]; } /** * Get all sites in the multisite network. * * @since 4.2.5 * * @param int|string $limit The number of sites to get or 'all'. * @param int $offset The offset to start at. * @param null|string $searchTerm The search term to look for. * @param null|string $filter A filter to look up sites by. * @param null|string $orderBy The column to order results by. Defaults to null. * @param string $orderDir The direction to order results by. Defaults to 'DESC'. * @return array An array of sites. */ public function getSites( $limit = 'all', $offset = 0, $searchTerm = null, $filter = 'all', $orderBy = null, $orderDir = 'DESC' ) { $countSites = $this->countSites(); $sites = get_sites( [ 'network_id' => get_current_network_id(), 'number' => $countSites['public'], 'public' => 1 ] ); $allSites = []; foreach ( $sites as $site ) { $clonedSite = clone $site; $clonedSite->adminUrl = get_admin_url( $site->blog_id ); $clonedSite->homeUrl = get_home_url( $site->blog_id ); if ( $this->includeSite( $clonedSite, $filter ) ) { $allSites[] = $clonedSite; } // We need to look up aliases for Mercator, this checks to see if it's even enabled. if ( ! class_exists( '\Mercator\Mapping' ) ) { continue; } $aliases = $this->getSiteAliases( $site ); foreach ( $aliases as $alias ) { $aliasSite = clone $clonedSite; $aliasSite->domain = $alias['domain']; $aliasSite->path = '/'; $aliasSite->alias = $alias; $aliasSite->parentDomain = $site->domain; $aliasSite->parentPath = $site->path; if ( $this->includeSite( $aliasSite, $filter ) ) { $allSites[] = $aliasSite; } } } // If we have a search term, let's filter down these results. if ( ! empty( $searchTerm ) ) { foreach ( $allSites as $key => $site ) { $keep = false; if ( false !== stripos( $site->domain, $searchTerm ) || false !== stripos( $site->path, $searchTerm ) || false !== stripos( $site->parentDomain, $searchTerm ) || false !== stripos( $site->parentPath, $searchTerm ) ) { $keep = true; } if ( ! $keep ) { unset( $allSites[ $key ] ); } } } // Ordering the sites. if ( ! empty( $orderBy ) ) { usort( $allSites, function( $site1, $site2 ) use ( $orderBy, $orderDir ) { if ( empty( $site1->{ $orderBy } ) ) { return 0; } return 'ASC' === strtoupper( $orderDir ) ? ( $site1->{ $orderBy } > $site2->{ $orderBy } ? 1 : 0 ) : ( $site1->{ $orderBy } < $site2->{ $orderBy } ? 1 : 0 ); } ); } return [ 'total' => count( $allSites ), 'limit' => $limit, 'sites' => 'all' === $limit ? $allSites : array_slice( $allSites, $offset, $limit ) ]; } /** * Count the number of sites in the network. A clone of wp_count_sites. We use this because * we don't yet support WordPress 5.3. Once we do, we can revert to wp_count_sites. * * @since 4.4.5 * * @return array An array of aliases. */ private function countSites() { $networkId = get_current_network_id(); $counts = []; $args = [ 'network_id' => $networkId, 'number' => 1, 'fields' => 'ids', 'no_found_rows' => false, ]; $q = new \WP_Site_Query( $args ); $counts['all'] = $q->found_sites; $_args = $args; $statuses = [ 'public', 'archived', 'mature', 'spam', 'deleted' ]; foreach ( $statuses as $status ) { $_args = $args; $_args[ $status ] = 1; $q = new \WP_Site_Query( $_args ); $counts[ $status ] = $q->found_sites; } return $counts; } /** * Filter sites based on a passed in filter. Options include 'all', 'activated' or 'deactivated'. * * @since 4.2.5 * * @param Object $site The site object. * @param string $filter The filter to use. * @return bool The site if allowed or null if not. */ private function includeSite( $site, $filter ) { if ( 'all' === $filter ) { return true; } $siteIsActive = aioseo()->networkLicense->isSiteActive( $site ); if ( ( 'deactivated' === $filter && ! $siteIsActive ) || ( 'activated' === $filter && $siteIsActive ) ) { return true; } return false; } /** * Get an array of aliases for a WP_Site. * * @since 4.2.5 * * @param \WP_Site $site The Site. * @return array An array of aliases. */ public function getSiteAliases( $site ) { // We need to look up aliases for Mercator, this checks to see if it's even enabled. if ( ! class_exists( '\Mercator\Mapping' ) ) { return []; } $aliases = \Mercator\Mapping::get_by_site( $site->blog_id ); if ( empty( $aliases ) ) { return []; } $aliasData = []; foreach ( $aliases as $alias ) { $aliasData[] = [ 'alias_id' => $alias->get_id(), 'domain' => $alias->get_domain(), 'active' => $alias->is_active() ]; } return $aliasData; } /** * Wrapper for switch_to_blog especially for non-multisite setups. * * @since 4.2.5 * * @param int $blogId The blog ID to switch to. * @return bool Always returns true. */ public function switchToBlog( $blogId ) { if ( ! is_multisite() ) { return true; } return switch_to_blog( $blogId ); } /** * Wrapper for restore_current_blog especially for non-multisite setups. * * @since 4.2.5 * * @return bool True on success, false if we're already on the current blog or not in a multisite environment. */ public function restoreCurrentBlog() { if ( ! is_multisite() ) { return false; } return restore_current_blog(); } /** * Checks if the current plugin is network activated. * * @since 4.2.8 * * @param string|null $plugin The plugin to check for network activation. * @return bool True if network activated, false if not. */ public function isPluginNetworkActivated( $plugin = null ) { require_once ABSPATH . 'wp-admin/includes/plugin.php'; if ( ! is_multisite() ) { return false; } $plugin = $plugin ? $plugin : plugin_basename( AIOSEO_FILE ); // If the plugin is not network activated, then no it's not network licensed. if ( ! is_plugin_active_for_network( $plugin ) ) { return false; } return true; } }all-in-one-seo-pack/app/Common/Traits/Helpers/Wp.php000064400000054623151222735770016203 0ustar00get_names(); asort( $roleNames ); return $roleNames; } /** * Returns the custom roles in the current WP install. * * @since 4.1.3 * * @return array An array of custom roles. */ public function getCustomRoles() { $allRoles = $this->getUserRoles(); $toSkip = array_merge( // Default WordPress roles. [ 'superadmin', 'administrator', 'editor', 'author', 'contributor' ], // Default AIOSEO roles. [ 'aioseo_manager', 'aioseo_editor' ], // Filterable roles. apply_filters( 'aioseo_access_control_excluded_roles', array_merge( [ 'subscriber' ], aioseo()->helpers->isWooCommerceActive() ? [ 'customer' ] : [] ) ) ); // Remove empty entries. $toSkip = array_filter( $toSkip ); $customRoles = []; foreach ( $allRoles as $roleName => $role ) { // Skip specific roles. if ( in_array( $roleName, $toSkip, true ) ) { continue; } $customRoles[ $roleName ] = $role; } return $customRoles; } /** * Returns an array of plugins with the active status. * * @since 4.0.0 * * @return array An array of plugins with active status. */ public function getPluginData() { $pluginUpgrader = new Utils\PluginUpgraderSilentAjax(); $installedPlugins = array_keys( get_plugins() ); $plugins = []; foreach ( $pluginUpgrader->pluginSlugs as $key => $slug ) { $adminUrl = admin_url( $pluginUpgrader->pluginAdminUrls[ $key ] ); $networkAdminUrl = null; if ( is_multisite() && is_network_admin() && ! empty( $pluginUpgrader->hasNetworkAdmin[ $key ] ) ) { $networkAdminUrl = network_admin_url( $pluginUpgrader->hasNetworkAdmin[ $key ] ); if ( aioseo()->helpers->isPluginNetworkActivated( $pluginUpgrader->pluginSlugs[ $key ] ) ) { $adminUrl = $networkAdminUrl; } } $plugins[ $key ] = [ 'basename' => $slug, 'installed' => in_array( $slug, $installedPlugins, true ), 'activated' => is_plugin_active( $slug ), 'adminUrl' => $adminUrl, 'networkAdminUrl' => $networkAdminUrl, 'canInstall' => aioseo()->addons->canInstall(), 'canActivate' => aioseo()->addons->canActivate(), 'canUpdate' => aioseo()->addons->canUpdate(), 'wpLink' => ! empty( $pluginUpgrader->wpPluginLinks[ $key ] ) ? $pluginUpgrader->wpPluginLinks[ $key ] : null ]; } return $plugins; } /** * Returns all registered Post Statuses. * * @since 4.1.6 * * @param boolean $statusesOnly Whether or not to only return statuses. * @return array An array of post statuses. */ public function getPublicPostStatuses( $statusesOnly = false ) { $allStatuses = get_post_stati( [ 'show_in_admin_all_list' => true ], 'objects' ); $postStatuses = []; foreach ( $allStatuses as $status => $data ) { if ( ! $data->public && ! $data->protected && ! $data->private ) { continue; } if ( $statusesOnly ) { $postStatuses[] = $status; continue; } $postStatuses[] = [ 'label' => $data->label, 'status' => $status ]; } return $postStatuses; } /** * Returns a list of public post types objects or names. * * @since 4.0.0 * * @param bool $namesOnly Whether only the names should be returned. * @param bool $hasArchivesOnly Whether to only include post types which have archives. * @param bool $rewriteType Whether to rewrite the type slugs. * @return array List of public post types. */ public function getPublicPostTypes( $namesOnly = false, $hasArchivesOnly = false, $rewriteType = false ) { $postTypes = []; $postTypeObjects = get_post_types( [], 'objects' ); foreach ( $postTypeObjects as $postTypeObject ) { if ( ! is_post_type_viewable( $postTypeObject ) ) { continue; } $postTypeArray = $this->getPostType( $postTypeObject, $namesOnly, $hasArchivesOnly, $rewriteType ); if ( ! empty( $postTypeArray ) ) { $postTypes[] = $postTypeArray; } } return apply_filters( 'aioseo_public_post_types', $postTypes, $namesOnly, $hasArchivesOnly ); } /** * Returns the data for the given post type. * * @since 4.2.2 * * @param \WP_Post_Type $postTypeObject The post type object. * @param bool $namesOnly Whether only the names should be returned. * @param bool $hasArchivesOnly Whether to only include post types which have archives. * @param bool $rewriteType Whether to rewrite the type slugs. * @return mixed Data for the post type. */ public function getPostType( $postTypeObject, $namesOnly = false, $hasArchivesOnly = false, $rewriteType = false ) { if ( empty( $postTypeObject->label ) ) { return $namesOnly ? null : []; } // We don't want to include archives for the WooCommerce shop page. if ( $hasArchivesOnly && ( ! $postTypeObject->has_archive || ( 'product' === $postTypeObject->name && $this->isWooCommerceActive() ) ) ) { return $namesOnly ? null : []; } if ( $namesOnly ) { return $postTypeObject->name; } if ( 'attachment' === $postTypeObject->name ) { $postTypeObject->label = __( 'Attachments', 'all-in-one-seo-pack' ); } if ( 'product' === $postTypeObject->name && $this->isWooCommerceActive() ) { $postTypeObject->menu_icon = 'dashicons-products'; } $name = $postTypeObject->name; if ( 'type' === $postTypeObject->name && $rewriteType ) { $name = '_aioseo_type'; } return [ 'name' => $name, 'label' => ucwords( $postTypeObject->label ), 'singular' => ucwords( $postTypeObject->labels->singular_name ), 'icon' => $postTypeObject->menu_icon, 'hasExcerpt' => post_type_supports( $postTypeObject->name, 'excerpt' ), 'hasArchive' => $postTypeObject->has_archive, 'hierarchical' => $postTypeObject->hierarchical, 'taxonomies' => get_object_taxonomies( $name ), 'slug' => isset( $postTypeObject->rewrite['slug'] ) ? $postTypeObject->rewrite['slug'] : $name ]; } /** * Returns a list of public taxonomies objects or names. * * @since 4.0.0 * * @param bool $namesOnly Whether only the names should be returned. * @param bool $rewriteType Whether to rewrite the type slugs. * @return array List of public taxonomies. */ public function getPublicTaxonomies( $namesOnly = false, $rewriteType = false ) { $taxonomies = []; if ( count( $taxonomies ) ) { return $taxonomies; } $taxObjects = get_taxonomies( [], 'objects' ); foreach ( $taxObjects as $taxObject ) { if ( empty( $taxObject->label ) || ! is_taxonomy_viewable( $taxObject ) ) { continue; } if ( in_array( $taxObject->name, [ 'product_shipping_class', 'post_format' ], true ) ) { continue; } // We need to exclude product attributes from this list as well. if ( 'pa_' === substr( $taxObject->name, 0, 3 ) && 'manage_product_terms' === $taxObject->cap->manage_terms && ! apply_filters( 'aioseo_woocommerce_product_attributes', false ) ) { continue; } if ( $namesOnly ) { $taxonomies[] = $taxObject->name; continue; } $name = $taxObject->name; if ( 'type' === $taxObject->name && $rewriteType ) { $name = '_aioseo_type'; } global $wp_taxonomies; $taxonomyPostTypes = ! empty( $wp_taxonomies[ $name ] ) ? $wp_taxonomies[ $name ]->object_type : []; $taxonomies[] = [ 'name' => $name, 'label' => ucwords( $taxObject->label ), 'singular' => ucwords( $taxObject->labels->singular_name ), 'icon' => strpos( $taxObject->label, 'categor' ) !== false ? 'dashicons-category' : 'dashicons-tag', 'hierarchical' => $taxObject->hierarchical, 'slug' => isset( $taxObject->rewrite['slug'] ) ? $taxObject->rewrite['slug'] : '', 'primaryTermSupport' => (bool) $taxObject->hierarchical, 'restBase' => ( $taxObject->rest_base ) ? $taxObject->rest_base : $taxObject->name, 'postTypes' => $taxonomyPostTypes ]; } return apply_filters( 'aioseo_public_taxonomies', $taxonomies, $namesOnly ); } /** * Retrieve a list of users that match passed in roles. * * @since 4.0.0 * * @return array An array of user data. */ public function getSiteUsers( $roles ) { static $users = []; if ( ! empty( $users ) ) { return $users; } $rolesWhere = []; foreach ( $roles as $role ) { $rolesWhere[] = '(um.meta_key = \'' . aioseo()->core->db->db->prefix . 'capabilities\' AND um.meta_value LIKE \'%\"' . $role . '\"%\')'; } $dbUsers = aioseo()->core->db->start( 'users as u' ) ->select( 'u.ID, u.display_name, u.user_nicename, u.user_email' ) ->join( 'usermeta as um', 'u.ID = um.user_id' ) ->whereRaw( '(' . implode( ' OR ', $rolesWhere ) . ')' ) ->orderBy( 'u.user_nicename' ) ->run() ->result(); foreach ( $dbUsers as $dbUser ) { $users[] = [ 'id' => (int) $dbUser->ID, 'displayName' => $dbUser->display_name, 'niceName' => $dbUser->user_nicename, 'email' => $dbUser->user_email, 'gravatar' => get_avatar_url( $dbUser->user_email ) ]; } return $users; } /** * Returns the ID of the site logo if it exists. * * @since 4.0.0 * * @return int */ public function getSiteLogoId() { if ( ! get_theme_support( 'custom-logo' ) ) { return false; } return get_theme_mod( 'custom_logo' ); } /** * Returns the URL of the site logo if it exists. * * @since 4.0.0 * * @return string */ public function getSiteLogoUrl() { $id = $this->getSiteLogoId(); if ( ! $id ) { return false; } $image = wp_get_attachment_image_src( $id, 'full' ); if ( empty( $image ) ) { return false; } return $image[0]; } /** * Returns noindexed post types. * * @since 4.0.0 * * @return array A list of noindexed post types. */ public function getNoindexedPostTypes() { return $this->getNoindexedObjects( 'postTypes' ); } /** * Checks whether a given post type is noindexed. * * @since 4.0.0 * * @param string $postType The post type. * @return bool Whether the post type is noindexed. */ public function isPostTypeNoindexed( $postType ) { $noindexedPostTypes = $this->getNoindexedPostTypes(); return in_array( $postType, $noindexedPostTypes, true ); } /** * Checks whether a given post type is public. * * @since 4.2.2 * * @param string $postType The post type. * @return bool Whether the post type is public. */ public function isPostTypePublic( $postType ) { $publicPostTypes = $this->getPublicPostTypes( true ); return in_array( $postType, $publicPostTypes, true ); } /** * Returns noindexed taxonomies. * * @since 4.0.0 * * @return array A list of noindexed taxonomies. */ public function getNoindexedTaxonomies() { return $this->getNoindexedObjects( 'taxonomies' ); } /** * Checks whether a given post type is noindexed. * * @since 4.0.0 * * @param string $taxonomy The taxonomy. * @return bool Whether the taxonomy is noindexed. */ public function isTaxonomyNoindexed( $taxonomy ) { $noindexedTaxonomies = $this->getNoindexedTaxonomies(); return in_array( $taxonomy, $noindexedTaxonomies, true ); } /** * Checks whether a given taxonomy is public. * * @since 4.2.2 * * @param string $taxonomy The taxonomy. * @return bool Whether the taxonomy is public. */ public function isTaxonomyPublic( $taxonomy ) { $publicTaxonomies = $this->getPublicTaxonomies( true ); return in_array( $taxonomy, $publicTaxonomies, true ); } /** * Returns noindexed object types of a given parent type. * * @since 4.0.0 * * @param string $type The parent object type ("postTypes" or "taxonomies"). * @return array A list of noindexed objects types. */ private function getNoindexedObjects( $type ) { $noindexed = []; foreach ( aioseo()->dynamicOptions->searchAppearance->$type->all() as $name => $object ) { if ( ! $object['show'] || ( $object['advanced']['robotsMeta'] && ! $object['advanced']['robotsMeta']['default'] && $object['advanced']['robotsMeta']['noindex'] ) ) { $noindexed[] = $name; } } return $noindexed; } /** * Returns all categories for a post. * * @since 4.1.4 * * @param int $postId The post ID. * @return array The category names. */ public function getAllCategories( $postId = 0 ) { $names = []; $categories = get_the_category( $postId ); if ( $categories && count( $categories ) ) { foreach ( $categories as $category ) { $names[] = aioseo()->helpers->internationalize( $category->name ); } } return $names; } /** * Returns all tags for a post. * * @since 4.1.4 * * @param int $postId The post ID. * @return array $names The tag names. */ public function getAllTags( $postId = 0 ) { $names = []; $tags = get_the_tags( $postId ); if ( ! empty( $tags ) && ! is_wp_error( $tags ) ) { foreach ( $tags as $tag ) { if ( ! empty( $tag->name ) ) { $names[] = aioseo()->helpers->internationalize( $tag->name ); } } } return $names; } /** * Loads the translations for a given domain. * * @since 4.1.4 * * @return void */ public function loadTextDomain( $domain ) { if ( ! is_user_logged_in() ) { return; } // Unload the domain in case WordPress has enqueued the translations for the site language instead of profile language. // Reloading the text domain will otherwise not override the existing loaded translations. unload_textdomain( $domain ); $mofile = $domain . '-' . get_user_locale() . '.mo'; load_textdomain( $domain, WP_LANG_DIR . '/plugins/' . $mofile ); } /** * Get the page builder the given Post ID was built with. * * @since 4.1.7 * * @param int $postId The Post ID. * @return bool|string The page builder or false if not built with page builders. */ public function getPostPageBuilderName( $postId ) { foreach ( aioseo()->standalone->pageBuilderIntegrations as $integration => $pageBuilder ) { if ( $pageBuilder->isBuiltWith( $postId ) ) { return $integration; } } return false; } /** * Get the edit link for the given Post ID. * * @since 4.3.1 * * @param int $postId The Post ID. * @return bool|string The edit link or false if not built with page builders. */ public function getPostEditLink( $postId ) { $pageBuilder = $this->getPostPageBuilderName( $postId ); if ( ! empty( $pageBuilder ) ) { return aioseo()->standalone->pageBuilderIntegrations[ $pageBuilder ]->getEditUrl( $postId ); } return get_edit_post_link( $postId ); } /** * Checks if the current user can edit posts of the given post type. * * @since 4.1.9 * * @param string $postType The name of the post type. * @return bool Whether the user can edit posts of the given post type. */ public function canEditPostType( $postType ) { $capabilities = $this->getPostTypeCapabilities( $postType ); return current_user_can( $capabilities['edit_posts'] ); } /** * Returns a list of capabilities for the given post type. * * @since 4.1.9 * * @param string $postType The name of the post type. * @return array The capabilities. */ public function getPostTypeCapabilities( $postType ) { static $capabilities = []; if ( isset( $capabilities[ $postType ] ) ) { return $capabilities[ $postType ]; } $postTypeObject = get_post_type_object( $postType ); if ( ! is_a( $postTypeObject, 'WP_Post_Type' ) ) { $capabilities[ $postType ] = []; return $capabilities[ $postType ]; } $capabilityType = $postTypeObject->capability_type; if ( ! is_array( $capabilityType ) ) { $capabilityType = [ $capabilityType, $capabilityType . 's' ]; } // Singular base for meta capabilities, plural base for primitive capabilities. list( $singularBase, $pluralBase ) = $capabilityType; $capabilities[ $postType ] = [ 'edit_post' => 'edit_' . $singularBase, 'read_post' => 'read_' . $singularBase, 'delete_post' => 'delete_' . $singularBase, 'edit_posts' => 'edit_' . $pluralBase, 'edit_others_posts' => 'edit_others_' . $pluralBase, 'delete_posts' => 'delete_' . $pluralBase, 'publish_posts' => 'publish_' . $pluralBase, 'read_private_posts' => 'read_private_' . $pluralBase, ]; return $capabilities[ $postType ]; } /** * Checks if the current user can edit terms of the given taxonomy. * * @since 4.1.9 * * @param string $taxonomy The name of the taxonomy. * @return bool Whether the user can edit posts of the given taxonomy. */ public function canEditTaxonomy( $taxonomy ) { $capabilities = $this->getTaxonomyCapabilities( $taxonomy ); return current_user_can( $capabilities['edit_terms'] ); } /** * Returns a list of capabilities for the given taxonomy. * * @since 4.1.9 * * @param string $taxonomy The name of the taxonomy. * @return array The capabilities. */ public function getTaxonomyCapabilities( $taxonomy ) { static $capabilities = []; if ( isset( $capabilities[ $taxonomy ] ) ) { return $capabilities[ $taxonomy ]; } $taxonomyObject = get_taxonomy( $taxonomy ); if ( ! is_a( $taxonomyObject, 'WP_Taxonomy' ) ) { $capabilities[ $taxonomy ] = []; return $capabilities[ $taxonomy ]; } $capabilities[ $taxonomy ] = (array) $taxonomyObject->cap; return $capabilities[ $taxonomy ]; } /** * Returns the charset for the site. * * @since 4.2.3 * * @return string The name of the charset. */ public function getCharset() { static $charset = null; if ( null !== $charset ) { return $charset; } $charset = get_option( 'blog_charset' ); $charset = $charset ? $charset : 'UTF-8'; return $charset; } /** * Returns the given data as JSON. * We temporarily change the floating point precision in order to prevent rounding errors. * Otherwise e.g. 4.9 could be output as 4.90000004. * * @since 4.2.7 * * @param mixed $data The data. * @param int $flags The flags. * @return string The JSON output. */ public function wpJsonEncode( $data, $flags = 0 ) { $originalPrecision = false; $originalSerializePrecision = false; if ( version_compare( PHP_VERSION, '7.1', '>=' ) ) { $originalPrecision = ini_get( 'precision' ); $originalSerializePrecision = ini_get( 'serialize_precision' ); ini_set( 'precision', 17 ); ini_set( 'serialize_precision', -1 ); } $json = wp_json_encode( $data, $flags ); if ( version_compare( PHP_VERSION, '7.1', '>=' ) ) { ini_set( 'precision', $originalPrecision ); ini_set( 'serialize_precision', $originalSerializePrecision ); } return $json; } /** * Returns the post title or a placeholder if there isn't one. * * @since 4.3.0 * * @param int $postId The post ID. * @return string The post title. */ public function getPostTitle( $postId ) { static $titles = []; if ( isset( $titles[ $postId ] ) ) { return $titles[ $postId ]; } $post = aioseo()->helpers->getPost( $postId ); if ( ! is_a( $post, 'WP_Post' ) ) { $titles[ $postId ] = __( '(no title)' ); // phpcs:ignore AIOSEO.Wp.I18n.MissingArgDomain return $titles[ $postId ]; } $title = $post->post_title; $title = $title ? $title : __( '(no title)' ); // phpcs:ignore AIOSEO.Wp.I18n.MissingArgDomain $titles[ $postId ] = aioseo()->helpers->decodeHtmlEntities( $title ); return $titles[ $postId ]; } /** * Checks whether the post status should be considered viewable. * This function is a copy of the WordPress core function is_post_status_viewable() which was introduced in WP 5.7. * * @since 4.5.0 * * @param string|\stdClass $postStatus The post status name or object. * @return bool Whether the post status is viewable. */ public function isPostStatusViewable( $postStatus ) { if ( is_scalar( $postStatus ) ) { $postStatus = get_post_status_object( $postStatus ); if ( ! $postStatus ) { return false; } } if ( ! is_object( $postStatus ) || $postStatus->internal || $postStatus->protected ) { return false; } return $postStatus->publicly_queryable || ( $postStatus->_builtin && $postStatus->public ); } /** * Checks whether the given post is publicly viewable. * This function is a copy of the WordPress core function is_post_publicly_viewable() which was introduced in WP 5.7. * * @since 4.5.0 * * @param int|\WP_Post $post Optional. Post ID or post object. Defaults to global $post. * @return boolean Whether the post is publicly viewable or not. */ public function isPostPubliclyViewable( $post = null ) { $post = get_post( $post ); if ( empty( $post ) ) { return false; } $postType = get_post_type( $post ); $postStatus = get_post_status( $post ); return is_post_type_viewable( $postType ) && $this->isPostStatusViewable( $postStatus ); } /** * Only register a legacy widget if the WP version is lower than 5.8 or the widget is being used. * The "Block-based Widgets Editor" was released in WP 5.8, so for WP versions below 5.8 it's okay to register them. * The main purpose here is to avoid blocks and widgets with the same name to be displayed on the Customizer, * like e.g. the "Breadcrumbs" Block and Widget. * * @since 4.3.9 * * @param string $idBase The base ID of a widget created by extending WP_Widget. * @return bool Whether the legacy widget can be registered. */ public function canRegisterLegacyWidget( $idBase ) { global $wp_version; if ( version_compare( $wp_version, '5.8', '<' ) || is_active_widget( false, false, $idBase ) || aioseo()->standalone->pageBuilderIntegrations['elementor']->isPluginActive() ) { return true; } return false; } }all-in-one-seo-pack/app/Common/Traits/Helpers/WpUri.php000064400000030130151222735770016646 0ustar00helpers->getPostId(); if ( $canonical ) { $url = wp_get_canonical_url( $objectId ); } if ( ! $url ) { // wp_get_canonical_url() returns false if the post isn't published. // Therefore, we must to fall back to the permalink if the post isn't published, e.g. draft post or attachment (inherit). $url = get_permalink( $objectId ); } } if ( $url ) { return $url; } global $wp, $wp_rewrite; // Permalink url without the query string. $url = user_trailingslashit( home_url( $wp->request ) ); // If permalinks are not being used we need to append the query string to the home url. if ( ! $wp_rewrite->using_permalinks() ) { $url = home_url( ! empty( $wp->query_string ) ? '?' . $wp->query_string : '' ); } return $url; } /** * Gets the canonical URL for the current page/post. * * @since 4.0.0 * * @return string $url The canonical URL. */ public function canonicalUrl() { static $url = null; if ( null !== $url ) { return $url; } if ( is_404() || is_search() ) { $url = apply_filters( 'aioseo_canonical_url', '' ); return $url; } $metaData = []; $post = $this->getPost(); if ( $post ) { $metaData = aioseo()->meta->metaData->getMetaData( $post ); } if ( is_category() || is_tag() || is_tax() ) { $metaData = aioseo()->meta->metaData->getMetaData( get_queried_object() ); } if ( $metaData && ! empty( $metaData->canonical_url ) ) { $url = apply_filters( 'aioseo_canonical_url', $this->makeUrlAbsolute( $metaData->canonical_url ) ); return $url; } $url = $this->getUrl( true ); $noPaginationForCanonical = aioseo()->options->searchAppearance->advanced->noPaginationForCanonical; $pageNumber = $this->getPageNumber(); if ( $noPaginationForCanonical ) { global $wp_rewrite; if ( 1 < $pageNumber ) { if ( $wp_rewrite->using_permalinks() ) { // Replace /page/3 and /page/3/. $url = preg_replace( "@(?<=/)page/$pageNumber(/|)$@", '', $url ); // Replace /3 and /3/. $url = preg_replace( "@(?<=/)$pageNumber(/|)$@", '', $url ); } else { // Replace /?page_id=457&paged=1 and /?page_id=457&page=1. $url = aioseo()->helpers->urlRemoveQueryParameter( $url, [ 'page', 'paged' ] ); } } // Comment pages. $url = preg_replace( '/(?<=\/)comment-page-\d+\/*(#comments)*$/', '', $url ); } $url = $this->maybeRemoveTrailingSlash( $url ); // Get rid of /amp at the end of the URL. if ( ! apply_filters( 'aioseo_disable_canonical_url_amp', false ) ) { $url = preg_replace( '/\/amp$/', '', $url ); $url = preg_replace( '/\/amp\/$/', '/', $url ); } $url = apply_filters( 'aioseo_canonical_url', $url ); return $url; } /** * Formats a given URL as an absolute URL if it is relative. * * @since 4.0.0 * * @param string $url The URL. * @return string $url The absolute URL. */ public function makeUrlAbsolute( $url ) { if ( 0 !== strpos( $url, 'http' ) && '/' !== $url ) { if ( 0 === strpos( $url, '//' ) ) { $scheme = wp_parse_url( home_url(), PHP_URL_SCHEME ); $url = $scheme . ':' . $url; } else { $url = home_url( $url ); } } return $url; } /** * Sanitizes a given domain. * * @since 4.0.0 * * @param string $domain The domain to sanitize. * @return mixed|string The sanitized domain. */ public function sanitizeDomain( $domain ) { $domain = trim( $domain ); $domain = strtolower( $domain ); if ( 0 === strpos( $domain, 'http://' ) ) { $domain = substr( $domain, 7 ); } elseif ( 0 === strpos( $domain, 'https://' ) ) { $domain = substr( $domain, 8 ); } $domain = untrailingslashit( $domain ); return $domain; } /** * Remove trailing slashes if not set in the permalink structure. * * @since 4.0.0 * * @param string $url The original URL. * @return string The adjusted URL. */ public function maybeRemoveTrailingSlash( $url ) { $permalinks = get_option( 'permalink_structure' ); if ( $permalinks && ( ! is_home() || ! is_front_page() ) ) { $trailing = substr( $permalinks, -1 ); if ( '/' !== $trailing ) { $url = untrailingslashit( $url ); } } // Don't slash urls with query args. if ( false !== strpos( $url, '?' ) ) { $url = untrailingslashit( $url ); } return $url; } /** * Removes image dimensions from the slug of a URL. * * @since 4.0.0 * * @param string $url The image URL. * @return string The formatted image URL. */ public function removeImageDimensions( $url ) { return $this->isValidAttachment( $url ) ? preg_replace( '#(-[0-9]*x[0-9]*|-scaled)#', '', $url ) : $url; } /** * Returns the URL for the WP content folder. * * @since 4.0.5 * * @return string The URL. */ public function getWpContentUrl() { $info = wp_get_upload_dir(); return isset( $info['baseurl'] ) ? $info['baseurl'] : ''; } /** * Retrieves a post by its given path. * Based on the built-in get_page_by_path() function, but only checks ancestry if the post type is actually hierarchical. * * @since 4.1.4 * * @param string $path The path. * @param string $output The output type. OBJECT, ARRAY_A, or ARRAY_N. * @param string|array $postType The post type(s) to check against. * @return object|false The post or false on failure. */ public function getPostByPath( $path, $output = OBJECT, $postType = 'page' ) { $lastChanged = wp_cache_get_last_changed( 'aioseo_posts_by_path' ); $hash = md5( $path . serialize( $postType ) ); $cacheKey = "get_page_by_path:$hash:$lastChanged"; $cached = wp_cache_get( $cacheKey, 'aioseo_posts_by_path' ); if ( false !== $cached ) { // Special case: '0' is a bad `$path`. if ( '0' === $cached || 0 === $cached ) { return false; } return get_post( $cached, $output ); } $path = rawurlencode( urldecode( $path ) ); $path = str_replace( '%2F', '/', $path ); $path = str_replace( '%20', ' ', $path ); $parts = explode( '/', trim( $path, '/' ) ); $reversedParts = array_reverse( $parts ); $postNames = "'" . implode( "','", $parts ) . "'"; $postTypes = is_array( $postType ) ? $postType : [ $postType, 'attachment' ]; $postTypes = "'" . implode( "','", $postTypes ) . "'"; $posts = aioseo()->core->db->start( 'posts' ) ->select( 'ID, post_name, post_parent, post_type' ) ->whereRaw( "post_name in ( $postNames )" ) ->whereRaw( "post_type in ( $postTypes )" ) ->run() ->result(); $foundId = 0; foreach ( $posts as $post ) { if ( $post->post_name === $reversedParts[0] ) { $count = 0; $p = $post; // Loop through the given path parts from right to left, ensuring each matches the post ancestry. while ( 0 !== (int) $p->post_parent && isset( $posts[ $p->post_parent ] ) ) { $count++; $parent = $posts[ $p->post_parent ]; if ( ! isset( $reversedParts[ $count ] ) || $parent->post_name !== $reversedParts[ $count ] ) { break; } $p = $parent; } if ( 0 === (int) $p->post_parent && ( ! is_post_type_hierarchical( $p->post_type ) || count( $reversedParts ) === $count + 1 ) && $p->post_name === $reversedParts[ $count ] ) { $foundId = $post->ID; if ( $post->post_type === $postType ) { break; } } } } // We cache misses as well as hits. wp_cache_set( $cacheKey, $foundId, 'aioseo_posts_by_path' ); return $foundId ? get_post( $foundId, $output ) : false; } /** * Validates a URL. * * @since 4.1.2 * * @param string $url The url. * @return bool Is it a valid/safe url. */ public function isUrl( $url ) { return esc_url_raw( $url ) === $url; } /** * Retrieves the parameters for a given URL. * * @since 4.1.5 * * @param string $url The url. * @return array The parameters. */ public function getParametersFromUrl( $url ) { $parsedUrl = wp_parse_url( wp_unslash( $url ) ); $parameters = []; if ( empty( $parsedUrl['query'] ) ) { return []; } wp_parse_str( $parsedUrl['query'], $parameters ); return $parameters; } /** * Adds a leading slash to an url. * * @since 4.1.8 * * @param string $url The url. * @return string The url with a leading slash. */ public function leadingSlashIt( $url ) { return '/' . ltrim( $url, '/' ); } /** * Returns the path from a permalink. * This function will help get the correct path from WP installations in subfolders. * * @since 4.1.8 * * @param string $permalink A permalink from get_permalink(). * @return string The path without the home_url(). */ public function getPermalinkPath( $permalink ) { return $this->leadingSlashIt( str_replace( get_home_url(), '', $permalink ) ); } /** * Changed if permalinks are different and the before wasn't * the site url (we don't want to redirect the site URL). * * @since 4.2.3 * * @param string $before The URL before the change. * @param string $after The URL after the change. * @return boolean True if the permalink has changed. */ public function hasPermalinkChanged( $before, $after ) { // Check it's not redirecting from the root. if ( $this->getHomePath() === $before || '/' === $before ) { return false; } // Are the URLs the same? return ( $before !== $after ); } /** * Retrieve the home path. * * @since 4.2.3 * * @return string The home path. */ public function getHomePath() { $path = wp_parse_url( get_home_url(), PHP_URL_PATH ); return $path ? trailingslashit( $path ) : '/'; } /** * Checks if the given URL is an internal URL for the current site. * * @since 4.2.6 * * @param string $urlToCheck The URL to check. * @return bool Whether the given URL is an internal one. */ public function isInternalUrl( $urlToCheck ) { $parsedHomeUrl = wp_parse_url( home_url() ); $parsedUrlToCheck = wp_parse_url( $urlToCheck ); return ! empty( $parsedHomeUrl['host'] ) && ! empty( $parsedUrlToCheck['host'] ) ? $parsedHomeUrl['host'] === $parsedUrlToCheck['host'] : false; } /** * Helper for the rest url. * * @since 4.4.9 * * @return string */ public function getRestUrl() { $restUrl = get_rest_url(); if ( aioseo()->helpers->isWpmlActive() ) { global $sitepress; // Replace the rest url 'all' language prefix so our rest calls don't fail. if ( is_object( $sitepress ) && method_exists( $sitepress, 'get_current_language' ) && method_exists( $sitepress, 'get_default_language' ) && 'all' === $sitepress->get_current_language() ) { $restUrl = str_replace( get_home_url( null, '/all/' ), get_home_url( null, '/' . $sitepress->get_default_language() . '/' ), $restUrl ); } } return $restUrl; } /** * Exclude the home path from a full path. * * @since 1.2.3 Moved from aioseo-redirects. * @version 4.5.8 * * @param string $path The original path. * @return string The path without WP's home path. */ public function excludeHomePath( $path ) { return preg_replace( '@^' . $this->getHomePath() . '@', '/', $path ); } }all-in-one-seo-pack/app/Common/Traits/Assets.php000064400000034066151222735770015454 0ustar00jsPreloadImports( $asset ); $this->loadCss( $asset ); $this->enqueueJs( $asset, $dependencies, $data, $objectName ); } /** * Filter the script loader tag if this is our script. * * @since 4.1.9 * * @param string $tag The tag that is going to be output. * @param string $handle The handle for the script. * @return string The modified tag. */ public function scriptLoaderTag( $tag, $handle = '', $src = '' ) { if ( $this->skipModuleTag( $handle ) ) { return $tag; } $tag = str_replace( $src, $this->normalizeAssetsHost( $src ), $tag ); // Remove the type and re-add it as module. $tag = preg_replace( '/type=[\'"].*?[\'"]/', '', $tag ); $tag = preg_replace( '/', $this->getDevUrl() ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } } }all-in-one-seo-pack/app/Common/Utils/Backup.php000064400000003774151222735770015253 0ustar00optionsName ), true ); if ( empty( $backups ) ) { $backups = []; } return $backups; } /** * Creates a backup of the settings state. * * @since 4.0.0 * * @return void */ public function create() { $backupTime = time(); $options = $this->getOptions(); update_option( $this->optionsName . '_' . $backupTime, wp_json_encode( $options ) ); $backups = $this->all(); $backups[] = $backupTime; update_option( $this->optionsName, wp_json_encode( $backups ) ); } /** * Deletes a backup of the settings. * * @since 4.0.0 * * @return void */ public function delete( $backupTime ) { delete_option( $this->optionsName . '_' . $backupTime ); $backups = $this->all(); foreach ( $backups as $key => $backup ) { if ( $backup === $backupTime ) { unset( $backups[ $key ] ); } } update_option( $this->optionsName, wp_json_encode( array_values( $backups ) ) ); } /** * Restores a backup of the settings. * * @since 4.0.0 * * @return void */ public function restore( $backupTime ) { $backup = json_decode( get_option( $this->optionsName . '_' . $backupTime ), true ); aioseo()->options->sanitizeAndSave( $backup['options'] ); aioseo()->internalOptions->sanitizeAndSave( $backup['internalOptions'] ); } /** * Get the options to save. * * @since 4.0.0 * * @return array An array of options to save. */ private function getOptions() { return [ 'options' => aioseo()->options->all(), 'internalOptions' => aioseo()->internalOptions->all() ]; } }all-in-one-seo-pack/app/Common/Utils/Blocks.php000064400000007557151222735770015266 0ustar00isBlockEditorActive() ) { return false; } // Check if the block requires a minimum WP version. if ( ! empty( $args['wp_min_version'] ) && version_compare( $wp_version, $args['wp_min_version'], '>' ) ) { return false; } // Checking whether block is registered to ensure it isn't registered twice. if ( $this->isRegistered( $slug ) ) { return false; } $defaults = [ 'render_callback' => null, 'editor_script' => aioseo()->core->assets->jsHandle( 'src/vue/standalone/blocks/main.js' ), 'editor_style' => aioseo()->core->assets->cssHandle( 'src/vue/assets/scss/blocks-editor.scss' ), 'attributes' => null, 'supports' => null ]; $args = wp_parse_args( $args, $defaults ); return register_block_type( $slug, $args ); } /** * Registers Gutenberg editor assets. * * @since 4.2.1 * * @return void */ public function registerBlockEditorAssets() { $postSettingJsAsset = 'src/vue/standalone/post-settings/main.js'; if ( aioseo()->helpers->isScreenBase( 'widgets' ) || aioseo()->helpers->isScreenBase( 'customize' ) ) { /** * Make sure the post settings JS asset is registered before adding it as a dependency below. * This is needed because this asset is not loaded on widgets and customizer screens, * {@see \AIOSEO\Plugin\Common\Admin\PostSettings::enqueuePostSettingsAssets}. * */ aioseo()->core->assets->load( $postSettingJsAsset, [], aioseo()->helpers->getVueData() ); } aioseo()->core->assets->loadCss( 'src/vue/standalone/blocks/main.js' ); $dependencies = [ 'wp-annotations', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-element', 'wp-i18n', 'wp-data', 'wp-url', 'wp-polyfill', aioseo()->core->assets->jsHandle( $postSettingJsAsset ) ]; aioseo()->core->assets->enqueueJs( 'src/vue/standalone/blocks/main.js', $dependencies ); aioseo()->core->assets->registerCss( 'src/vue/assets/scss/blocks-editor.scss' ); } /** * Check if a block is already registered. * * @since 4.2.1 * * @param string $slug Name of block to check. * * @return bool */ public function isRegistered( $slug ) { if ( ! class_exists( 'WP_Block_Type_Registry' ) ) { return false; } return \WP_Block_Type_Registry::get_instance()->is_registered( $slug ); } /** * Helper function to determine if we're rendering the block inside Gutenberg. * * @since 4.1.1 * * @return bool In gutenberg. */ public function isGBEditor() { return defined( 'REST_REQUEST' ) && REST_REQUEST && ! empty( $_REQUEST['context'] ) && 'edit' === $_REQUEST['context']; // phpcs:ignore HM.Security.NonceVerification.Recommended } /** * Helper function to determine if we can register blocks. * * @since 4.1.1 * * @return bool Can register block. */ public function isBlockEditorActive() { return function_exists( 'register_block_type' ); } }all-in-one-seo-pack/app/Common/Utils/Cache.php000064400000013522151222735770015041 0ustar00prepareKey( $key ); if ( isset( self::$cache[ $key ] ) ) { return self::$cache[ $key ]; } // Are we searching for a group of keys? $isLikeGet = preg_match( '/%/', $key ); $result = aioseo()->core->db ->start( $this->table ) ->select( '`key`, `value`' ) ->whereRaw( '( `expiration` IS NULL OR `expiration` > \'' . aioseo()->helpers->timeToMysql( time() ) . '\' )' ); $isLikeGet ? $result->whereRaw( '`key` LIKE \'' . $key . '\'' ) : $result->where( 'key', $key ); $result->output( ARRAY_A )->run(); // If we have nothing in the cache let's return a hard null. $values = $result->nullSet() ? null : $result->result(); // If we have something let's normalize it. if ( $values ) { foreach ( $values as &$value ) { $value['value'] = maybe_unserialize( $value['value'] ); } // Return only the single cache value. if ( ! $isLikeGet ) { $values = $values[0]['value']; } } // Return values without a static cache. // This is here because clearing the like cache is not simple. if ( $isLikeGet ) { return $values; } self::$cache[ $key ] = $values; return self::$cache[ $key ]; } /** * Updates the given cache or creates it if it doesn't exist. * * @since 4.1.5 * * @param string $key The cache key name. * @param mixed $value The value. * @param int $expiration The expiration time in seconds. Defaults to 24 hours. 0 to no expiration. * @return void */ public function update( $key, $value, $expiration = DAY_IN_SECONDS ) { // If the value is null we'll convert it and give it a shorter expiration. if ( null === $value ) { $value = false; $expiration = 10 * MINUTE_IN_SECONDS; } $value = serialize( $value ); $expiration = 0 < $expiration ? aioseo()->helpers->timeToMysql( time() + $expiration ) : null; aioseo()->core->db->insert( $this->table ) ->set( [ 'key' => $this->prepareKey( $key ), 'value' => $value, 'expiration' => $expiration, 'created' => aioseo()->helpers->timeToMysql( time() ), 'updated' => aioseo()->helpers->timeToMysql( time() ) ] ) ->onDuplicate( [ 'value' => $value, 'expiration' => $expiration, 'updated' => aioseo()->helpers->timeToMysql( time() ) ] ) ->run(); $this->clearStatic( $key ); } /** * Deletes the given cache key. * * @since 4.1.5 * * @param string $key The cache key. * @return void */ public function delete( $key ) { $key = $this->prepareKey( $key ); aioseo()->core->db->delete( $this->table ) ->where( 'key', $key ) ->run(); $this->clearStatic( $key ); } /** * Prepares the key before using the cache. * * @since 4.1.5 * * @param string $key The key to prepare. * @return string The prepared key. */ private function prepareKey( $key ) { $key = trim( $key ); $key = $this->prefix && 0 !== strpos( $key, $this->prefix ) ? $this->prefix . $key : $key; if ( aioseo()->helpers->isDev() && 80 < mb_strlen( $key, 'UTF-8' ) ) { throw new \Exception( 'You are using a cache key that is too large, shorten your key and try again: [' . esc_html( $key ) . ']' ); } return $key; } /** * Clears all of our cache. * * @since 4.1.5 * * @return void */ public function clear() { if ( $this->prefix ) { $this->clearPrefix( '' ); return; } // If we find the activation redirect, we'll need to reset it after clearing. $activationRedirect = $this->get( 'activation_redirect' ); aioseo()->core->db->truncate( $this->table )->run(); $this->clearStatic(); if ( $activationRedirect ) { $this->update( 'activation_redirect', $activationRedirect, 30 ); } // Bust the tableExists and columnExists cache. aioseo()->internalOptions->database->installedTables = ''; } /** * Clears all of our cache under a certain prefix. * * @since 4.1.5 * * @param string $prefix A prefix to clear or empty to clear everything. * @return void */ public function clearPrefix( $prefix ) { $prefix = $this->prepareKey( $prefix ); aioseo()->core->db->delete( $this->table ) ->whereRaw( "`key` LIKE '$prefix%'" ) ->run(); $this->clearStaticPrefix( $prefix ); } /** * Clears all of our static in-memory cache of a prefix. * * @since 4.1.5 * * @param string $prefix A prefix to clear. * @return void */ private function clearStaticPrefix( $prefix ) { $prefix = $this->prepareKey( $prefix ); foreach ( array_keys( self::$cache ) as $key ) { if ( 0 === strpos( $key, $prefix ) ) { unset( self::$cache[ $key ] ); } } } /** * Clears all of our static in-memory cache. * * @since 4.1.5 * * @param string $key A key to clear. * @return void */ private function clearStatic( $key = null ) { if ( empty( $key ) ) { self::$cache = []; return; } unset( self::$cache[ $this->prepareKey( $key ) ] ); } /** * Returns the cache table name. * * @since 4.1.5 * * @return string */ public function getTableName() { return $this->table; } }all-in-one-seo-pack/app/Common/Utils/CachePrune.php000064400000004074151222735770016055 0ustar00pruneAction, [ $this, 'prune' ] ); add_action( $this->optionCacheCleanAction, [ $this, 'optionCacheClean' ] ); if ( ! is_admin() ) { return; } if ( ! aioseo()->actionScheduler->isScheduled( $this->pruneAction ) ) { aioseo()->actionScheduler->scheduleRecurrent( $this->pruneAction, 0, DAY_IN_SECONDS ); } } /** * Prunes our expired cache. * * @since 4.1.5 * * @return void */ public function prune() { aioseo()->core->db->delete( aioseo()->core->cache->getTableName() ) ->whereRaw( '( `expiration` IS NOT NULL AND expiration <= \'' . aioseo()->helpers->timeToMysql( time() ) . '\' )' ) ->run(); } /** * Cleans our old options cache. * * @since 4.1.5 * * @return void */ public function optionCacheClean() { $optionCache = aioseo()->core->db->delete( aioseo()->core->db->db->options, true ) ->whereRaw( "option_name LIKE '\_aioseo\_cache\_%'" ) ->limit( 10000 ) ->run(); // Schedule a new run if we're not done cleaning. if ( 0 !== $optionCache->db->rows_affected ) { aioseo()->actionScheduler->scheduleSingle( $this->optionCacheCleanAction, MINUTE_IN_SECONDS, [], true ); } } /** * Returns the action name for the old cache clean. * * @since 4.1.5 * * @return string */ public function getOptionCacheCleanAction() { return $this->optionCacheCleanAction; } }all-in-one-seo-pack/app/Common/Utils/Database.php000064400000126257151222735770015554 0ustar00db = $wpdb; $this->prefix = $wpdb->prefix; $this->escapeOptions = self::ESCAPE_STRIP_HTML | self::ESCAPE_QUOTE; } /** * If this is a clone, lets reset all the data. * * @since 4.0.0 */ public function __clone() { // We need to reset the result separately as well since it is not in the default array. $this->reset( [ 'result' ] ); $this->reset(); } /** * Gets all AIOSEO installed tables. * * @since 4.0.0 * * @return array An array of custom AIOSEO tables. */ public function getInstalledTables() { $results = $this->db->get_results( 'SHOW TABLES', 'ARRAY_N' ); return ! empty( $results ) ? wp_list_pluck( $results, 0 ) : []; } /** * Get all the database info such as data size, index size, table list. * * @since 4.4.5 * * @return array An array of the database info. */ public function getDatabaseInfo() { $tables = []; $databaseSize = []; if ( defined( 'DB_NAME' ) ) { $databaseTableInformation = $this->db->get_results( $this->db->prepare( "SELECT table_name AS 'name', table_collation AS 'collation', engine AS 'engine', round( ( data_length / 1024 / 1024 ), 2 ) 'data', round( ( index_length / 1024 / 1024 ), 2 ) 'index' FROM information_schema.TABLES WHERE table_schema = %s ORDER BY name ASC;", DB_NAME ) ); $databaseSize = [ 'data' => 0, 'index' => 0, ]; $siteTablesPrefix = $this->db->get_blog_prefix( get_current_blog_id() ); $globalTables = $this->db->tables( 'global', true ); foreach ( $databaseTableInformation as $table ) { // Only include tables matching the prefix of the current site, this is to prevent displaying all tables on a MS install not relating to the current. if ( is_multisite() && 0 !== strpos( $table->name, $siteTablesPrefix ) && ! in_array( $table->name, $globalTables, true ) ) { continue; } $tableType = ( 0 === strpos( $table->name, aioseo()->core->db->prefix . 'aioseo' ) ) ? 'aioseo' : 'other'; $tables[ $tableType ][ $table->name ] = [ 'data' => $table->data, 'index' => $table->index, 'engine' => $table->engine, 'collation' => $table->collation ]; $databaseSize['data'] += $table->data; $databaseSize['index'] += $table->index; } } return [ 'tables' => $tables, 'size' => $databaseSize, ]; } /** * Gets all columns from a table. * * @since 4.0.0 * * @param string $table The name of the table to lookup columns for. * @return array An array of custom AIOSEO tables. */ public function getColumns( $table ) { $installedTables = json_decode( aioseo()->internalOptions->database->installedTables, true ); $table = $this->prefix . $table; if ( ! isset( $installedTables[ $table ] ) ) { return []; } if ( empty( $installedTables[ $table ] ) ) { $installedTables[ $table ] = $this->db->get_col( 'SHOW COLUMNS FROM `' . $table . '`' ); aioseo()->internalOptions->database->installedTables = wp_json_encode( $installedTables ); } return $installedTables[ $table ]; } /** * Checks if a table exists. * * @since 4.0.0 * * @param string $table The name of the table. * @return bool Whether or not the table exists. */ public function tableExists( $table ) { $table = $this->prefix . $table; $installedTables = json_decode( aioseo()->internalOptions->database->installedTables, true ) ?: []; if ( isset( $installedTables[ $table ] ) ) { return true; } $results = $this->db->get_results( "SHOW TABLES LIKE '" . $table . "'" ); if ( empty( $results ) ) { return false; } $installedTables[ $table ] = []; aioseo()->internalOptions->database->installedTables = wp_json_encode( $installedTables ); return true; } /** * Checks if a column exists on a given table. * * @since 4.0.5 * * @param string $table The name of the table. * @param string $column The name of the column. * @return bool Whether or not the column exists. */ public function columnExists( $table, $column ) { if ( ! $this->tableExists( $table ) ) { return false; } $columns = $this->getColumns( $table ); return in_array( $column, $columns, true ); } /** * Gets the size of a table in bytes. * * @since 4.1.0 * * @param string $table The table to check. * @return int The size of the table in bytes. */ public function getTableSize( $table ) { $this->db->query( 'ANALYZE TABLE ' . $this->prefix . $table ); $results = $this->db->get_results( ' SELECT TABLE_NAME AS `table`, ROUND(SUM(DATA_LENGTH + INDEX_LENGTH)) AS `size` FROM information_schema.TABLES WHERE TABLE_SCHEMA = "' . $this->db->dbname . '" AND TABLE_NAME = "' . $this->prefix . $table . '" ORDER BY (DATA_LENGTH + INDEX_LENGTH) DESC; ' ); return ! empty( $results ) ? $results[0]->size : 0; } /** * The query string in all its glory. * * @since 4.0.0 * * @return string The actual query string. */ public function __toString() { switch ( strtoupper( $this->statement ) ) { case 'INSERT': $insert = 'INSERT '; if ( $this->ignore ) { $insert .= 'IGNORE '; } $insert .= 'INTO ' . $this->table; $clauses = []; $clauses[] = $insert; $clauses[] = 'SET ' . implode( ', ', $this->set ); if ( ! empty( $this->onDuplicate ) ) { $clauses[] = 'ON DUPLICATE KEY UPDATE ' . implode( ', ', $this->onDuplicate ); } break; case 'REPLACE': $clauses = []; $clauses[] = "REPLACE INTO $this->table"; $clauses[] = 'SET ' . implode( ', ', $this->set ); break; case 'UPDATE': $clauses = []; $clauses[] = "UPDATE $this->table"; if ( count( $this->join ) > 0 ) { foreach ( (array) $this->join as $join ) { if ( is_array( $join[1] ) ) { $join_on = []; foreach ( (array) $join[1] as $left => $right ) { $join_on[] = "$this->table.`$left` = `{$join[0]}`.`$right`"; } $clauses[] = "\t" . ( ( 'LEFT' === $join[2] || 'RIGHT' === $join[2] ) ? $join[2] . ' JOIN ' : 'JOIN ' ) . $join[0] . ' ON ' . implode( ' AND ', $join_on ); } else { $clauses[] = "\t" . ( ( 'LEFT' === $join[2] || 'RIGHT' === $join[2] ) ? $join[2] . ' JOIN ' : 'JOIN ' ) . "{$join[0]} ON {$join[1]}"; } } } $clauses[] = 'SET ' . implode( ', ', $this->set ); if ( count( $this->where ) > 0 ) { $clauses[] = "WHERE 1 = 1 AND\n\t" . implode( "\n\tAND ", $this->where ); } if ( count( $this->order ) > 0 ) { $clauses[] = 'ORDER BY ' . implode( ', ', $this->order ); } if ( $this->limit ) { $clauses[] = 'LIMIT ' . $this->limit; } break; case 'TRUNCATE': $clauses = []; $clauses[] = "TRUNCATE TABLE $this->table"; break; case 'DELETE': $clauses = []; $clauses[] = "DELETE FROM $this->table"; if ( count( $this->where ) > 0 ) { $clauses[] = "WHERE 1 = 1 AND\n\t" . implode( "\n\tAND ", $this->where ); } if ( count( $this->order ) > 0 ) { $clauses[] = 'ORDER BY ' . implode( ', ', $this->order ); } if ( $this->limit ) { $clauses[] = 'LIMIT ' . $this->limit; } break; case 'SELECT': case 'SELECT DISTINCT': default: // Select fields. $clauses = []; $distinct = ( $this->distinct || stripos( $this->statement, 'DISTINCT' ) !== false ) ? 'DISTINCT ' : ''; $select = ( count( $this->select ) > 0 ) ? implode( ",\n\t", $this->select ) : '*'; $clauses[] = "SELECT {$distinct}\n\t{$select}"; // Select table. $clauses[] = "FROM $this->table"; // Select joins. if ( ! empty( $this->join ) && count( $this->join ) > 0 ) { foreach ( (array) $this->join as $join ) { if ( is_array( $join[1] ) ) { $join_on = []; foreach ( (array) $join[1] as $left => $right ) { $join_on[] = "$this->table.`$left` = `{$join[0]}`.`$right`"; } $clauses[] = "\t" . ( ( 'LEFT' === $join[2] || 'RIGHT' === $join[2] ) ? $join[2] . ' JOIN ' : 'JOIN ' ) . $join[0] . ' ON ' . implode( ' AND ', $join_on ); } else { $clauses[] = "\t" . ( ( 'LEFT' === $join[2] || 'RIGHT' === $join[2] ) ? $join[2] . ' JOIN ' : 'JOIN ' ) . "{$join[0]} ON {$join[1]}"; } } } // Select conditions. if ( count( $this->where ) > 0 ) { $clauses[] = "WHERE 1 = 1 AND\n\t" . implode( "\n\tAND ", $this->where ); } // Union queries. if ( count( $this->union ) > 0 ) { foreach ( $this->union as $union ) { $keyword = ( $union[1] ) ? 'UNION' : 'UNION ALL'; $clauses[] = "\n$keyword\n\n$union[0]"; } $clauses[] = ''; } // Select groups. if ( count( $this->group ) > 0 ) { $clauses[] = 'GROUP BY ' . implode( ', ', $this->escapeColNames( $this->group ) ); } // Select order. if ( count( $this->order ) > 0 ) { $orderFragments = []; foreach ( $this->escapeColNames( $this->order ) as $col ) { $orderFragments[] = ( preg_match( '/ (ASC|DESC|RAND\(\))$/i', $col ) ) ? $col : "$col $this->orderDirection"; } $clauses[] = 'ORDER BY ' . implode( ', ', $orderFragments ); } // Select limit. if ( $this->limit ) { $clauses[] = 'LIMIT ' . $this->limit; } break; } // @HACK for wpdb::prepare. $clauses[] = '/* %d = %d */'; $this->query = str_replace( '%%d = %%d', '%d = %d', str_replace( '%', '%%', implode( "\n", $clauses ) ) ); // Flag queries with double quotes down, but not if the double quotes are contained within a string value (like JSON). if ( aioseo()->isDev && preg_match( '/\{[^}]*\}(*SKIP)(*FAIL)|\[[^]]*\](*SKIP)(*FAIL)|\'[^\']*\'(*SKIP)(*FAIL)|\\"(*SKIP)(*FAIL)|"/i', $this->query ) ) { error_log( "Query with double quotes detected - this may cause isues when ANSI_QUOTES is enabled:\r\n" . $this->query . "\r\n" . wp_debug_backtrace_summary() ); } $this->lastQuery = $this->query; return $this->query; } /** * Shortcut method to return the query string. * * @since 4.0.0 * * @return string The query string. */ public function query() { return $this->__toString(); } /** * Start a new Database Query. * * @since 4.0.0 * * @param string $table The name of the table without the WordPress prefix unless includes_prefix is true. * @param bool $includesPrefix This determines if the table name includes the WordPress prefix or not. * @param string $statement The MySQL statement for the query. * @return Database Returns the Database class which can then be method chained for building the query. */ public function start( $table = '', $includesPrefix = false, $statement = 'SELECT' ) { // Always reset everything when starting a new query. $this->reset(); $this->table = $includesPrefix ? $table : $this->prefix . $table; $this->statement = $statement; return $this; } /** * Shortcut method for start with INSERT as the statement. * * @since 4.0.0 * * @param string $table The name of the table without the WordPress prefix unless includes_prefix is true. * @param bool $includesPrefix This determines if the table name includes the WordPress prefix or not. * @return Database Returns the Database class which can then be method chained for building the query. */ public function insert( $table = '', $includesPrefix = false ) { return $this->start( $table, $includesPrefix, 'INSERT' ); } /** * Shortcut method for start with INSERT IGNORE as the statement. * * @since 4.1.6 * * @param string $table The name of the table without the WordPress prefix unless includes_prefix is true. * @param bool $includesPrefix This determines if the table name includes the WordPress prefix or not. * @return Database Returns the Database class which can then be method chained for building the query. */ public function insertIgnore( $table = '', $includesPrefix = false ) { $this->ignore = true; return $this->start( $table, $includesPrefix, 'INSERT' ); } /** * Shortcut method for start with UPDATE as the statement. * * @since 4.0.0 * * @param string $table The name of the table without the WordPress prefix unless includes_prefix is true. * @param bool $includesPrefix This determines if the table name includes the WordPress prefix or not. * @return Database Returns the Database class which can then be method chained for building the query. */ public function update( $table = '', $includesPrefix = false ) { return $this->start( $table, $includesPrefix, 'UPDATE' ); } /** * Shortcut method for start with REPLACE as the statement. * * @since 4.0.0 * * @param string $table The name of the table without the WordPress prefix unless includes_prefix is true. * @param bool $includesPrefix This determines if the table name includes the WordPress prefix or not. * @return Database Returns the Database class which can then be method chained for building the query. */ public function replace( $table = '', $includesPrefix = false ) { return $this->start( $table, $includesPrefix, 'REPLACE' ); } /** * Shortcut method for start with TRUNCATE as the statement. * * @since 4.0.0 * * @param string $table The name of the table without the WordPress prefix unless includes_prefix is true. * @param bool $includesPrefix This determines if the table name includes the WordPress prefix or not. * @return Database Returns the Database class which can then be method chained for building the query. */ public function truncate( $table = '', $includesPrefix = false ) { return $this->start( $table, $includesPrefix, 'TRUNCATE' ); } /** * Shortcut method for start with DELETE as the statement. * * @since 4.0.0 * * @param string $table The name of the table without the WordPress prefix unless includes_prefix is true. * @param bool $includesPrefix This determines if the table name includes the WordPress prefix or not. * @return Database Returns the Database class which can then be method chained for building the query. */ public function delete( $table = '', $includesPrefix = false ) { return $this->start( $table, $includesPrefix, 'DELETE' ); } /** * Adds a SELECT clause. * * @since 4.0.0 * * @return Database Returns the Database class which can be method chained for more query building. */ public function select() { $args = (array) func_get_args(); if ( count( $args ) === 1 && is_array( $args[0] ) ) { $args = $args[0]; } $this->select = array_merge( $this->select, $this->escapeColNames( $args ) ); return $this; } /** * Adds a WHERE clause. * * @since 4.0.0 * * @return Database Returns the Database class which can be method chained for more query building. */ public function where() { $criteria = $this->prepArgs( func_get_args() ); foreach ( (array) $criteria as $field => $value ) { if ( ! preg_match( '/[\(\)<=>!]+/', $field ) && false === stripos( $field, ' IS ' ) ) { $operator = ( is_null( $value ) ) ? 'IS' : '='; $escaped = $this->escapeColNames( $field ); $field = array_pop( $escaped ) . ' ' . $operator; } if ( is_null( $value ) && false !== stripos( $field, ' IS ' ) ) { // WHERE `field` IS NOT NULL. $this->where[] = "$field NULL"; continue; } if ( is_null( $value ) ) { // WHERE `field` IS NULL. $this->where[] = "$field NULL"; continue; } if ( is_array( $value ) ) { $wheres = []; foreach ( (array) $value as $val ) { $wheres[] = sprintf( "$field %s", $this->escape( $val, $this->getEscapeOptions() | self::ESCAPE_QUOTE ) ); } $this->where[] = '(' . implode( ' OR ', $wheres ) . ')'; continue; } $this->where[] = sprintf( "$field %s", $this->escape( $value, $this->getEscapeOptions() | self::ESCAPE_QUOTE ) ); } return $this; } /** * Adds a complex WHERE clause. * * @since 4.0.0 * * @return Database Returns the Database class which can be method chained for more query building. */ public function whereRaw() { $criteria = $this->prepArgs( func_get_args() ); foreach ( (array) $criteria as $clause ) { $this->where[] = $clause; } return $this; } /** * Adds a WHERE clause with all arguments sent separated by OR instead of AND inside a subclause. * @example [ 'a' => 1, 'b' => 2 ] becomes "AND (a = 1 OR b = 2)" * * @since 4.0.0 * * @return Database Returns the Database class which can be method chained for more query building. */ public function whereOr() { $criteria = $this->prepArgs( func_get_args() ); $or = []; foreach ( (array) $criteria as $field => $value ) { if ( ! preg_match( '/[\(\)<=>!]+/', $field ) && false === stripos( $field, ' IS ' ) ) { $operator = ( is_null( $value ) ) ? 'IS' : '='; $field = $this->escapeColNames( $field ); $field = array_pop( $field ) . ' ' . $operator; } if ( is_null( $value ) && false !== stripos( $field, ' IS ' ) ) { // WHERE `field` IS NOT NULL. $or[] = "$field NULL"; continue; } if ( is_null( $value ) ) { // WHERE `field` IS NULL. $or[] = "$field NULL"; } $or[] = sprintf( "$field %s", $this->escape( $value, $this->getEscapeOptions() | self::ESCAPE_QUOTE ) ); } // Create our subclause, and add it to the WHERE array. $this->where[] = '(' . implode( ' OR ', $or ) . ')'; return $this; } /** * Adds a WHERE IN() clause. * * @since 4.0.0 * * @return Database Returns the Database class which can be method chained for more query building. */ public function whereIn() { $criteria = $this->prepArgs( func_get_args() ); foreach ( (array) $criteria as $field => $values ) { if ( ! is_array( $values ) ) { $values = [ $values ]; } if ( count( $values ) === 0 ) { continue; } foreach ( $values as &$value ) { // Note: We can no longer check for `is_numeric` because a value like `61021e6242255` returns true and breaks the query. if ( is_int( $value ) || is_float( $value ) ) { // No change. continue; } if ( is_null( $value ) || 'null' === strtolower( $value ) ) { // Change to a true NULL value. $value = null; continue; } $value = sprintf( '%s', $this->escape( $value, $this->getEscapeOptions() | self::ESCAPE_QUOTE ) ); } $values = implode( ',', $values ); $this->whereRaw( "$field IN ($values)" ); } return $this; } /** * Adds a WHERE NOT IN() clause. * * @since 4.0.0 * * @return Database Returns the Database class which can be method chained for more query building. */ public function whereNotIn() { $criteria = $this->prepArgs( func_get_args() ); foreach ( (array) $criteria as $field => $values ) { if ( ! is_array( $values ) ) { $values = [ $values ]; } if ( count( $values ) === 0 ) { continue; } foreach ( $values as &$value ) { if ( is_numeric( $value ) ) { // No change. continue; } if ( is_null( $value ) || false !== stristr( $value, 'NULL' ) ) { // Change to a true NULL value. $value = null; continue; } $value = sprintf( '%s', $this->escape( $value, $this->getEscapeOptions() | self::ESCAPE_QUOTE ) ); } $values = implode( ',', $values ); $this->whereRaw( "$field NOT IN($values)" ); } return $this; } /** * Adds a WHERE BETWEEN clause. * * @since 4.3.0 * * @return Database Returns the Database class which can be method chained for more query building. */ public function whereBetween() { $criteria = $this->prepArgs( func_get_args() ); foreach ( (array) $criteria as $field => $values ) { if ( ! is_array( $values ) ) { $values = [ $values ]; } if ( count( $values ) === 0 ) { continue; } foreach ( $values as &$value ) { // Note: We can no longer check for `is_numeric` because a value like `61021e6242255` returns true and breaks the query. if ( is_int( $value ) || is_float( $value ) ) { // No change. continue; } if ( is_null( $value ) || false !== stristr( $value, 'NULL' ) ) { // Change to a true NULL value. $value = null; continue; } $value = sprintf( '%s', $this->escape( $value, $this->getEscapeOptions() | self::ESCAPE_QUOTE ) ); } $values = implode( ' AND ', $values ); $this->whereRaw( "$field BETWEEN $values" ); } return $this; } /** * Adds a LEFT JOIN clause. * * @since 4.0.0 * * @param string $table The name of the table to join to this query. * @param string|array $conditions The conditions of the join clause. * @param bool $includesPrefix This determines if the table name includes the WordPress prefix or not. * @return Database Returns the Database class which can be method chained for more query building. */ public function leftJoin( $table = '', $conditions = '', $includesPrefix = false ) { return $this->join( $table, $conditions, 'LEFT', $includesPrefix ); } /** * Adds a JOIN clause. * * @since 4.0.0 * * @param string $table The name of the table to join to this query. * @param string|array $conditions The conditions of the join clause. * @param string $direction This can take 'LEFT' or 'RIGHT' as arguments. * @param bool $includesPrefix This determines if the table name includes the WordPress prefix or not. * @return Database Returns the Database class which can be method chained for more query building. */ public function join( $table = '', $conditions = '', $direction = '', $includesPrefix = false ) { $this->join[] = [ $includesPrefix ? $table : $this->prefix . $table, $conditions, $direction ]; return $this; } /** * Add a UNION query. * * @since 4.0.0 * * @param Database|string $query The query (Database object or query string) to be joined with. * @param bool $distinct Set whether this union should be distinct or not. * @return Database Returns the Database class which can be method chained for more query building. */ public function union( $query, $distinct = true ) { $this->union[] = [ $query, $distinct ]; return $this; } /** * Adds am GROUP BY clause. * * @since 4.0.0 * * @return Database Returns the Database class which can be method chained for more query building. */ public function groupBy() { $args = (array) func_get_args(); if ( count( $args ) === 1 && is_array( $args[0] ) ) { $args = $args[0]; } $this->group = array_merge( $this->group, $args ); return $this; } /** * Adds am ORDER BY clause. * * @since 4.0.0 * * @return Database Returns the Database class which can be method chained for more query building. */ public function orderBy() { // Normalize arguments. $args = (array) func_get_args(); if ( count( $args ) === 1 && is_array( $args[0] ) ) { $args = $args[0]; } // Escape the order by clause. $args = array_map( 'esc_sql', $args ); if ( ! empty( $args[0] ) && true !== $args[0] ) { $this->order = array_merge( $this->order, $args ); } else { // This allows for overwriting a preexisting order-by setting. array_shift( $args ); $this->order = $args; } return $this; } /** * Sets the sort direction for ORDER BY clauses. * * @since 4.0.0 * * @param string $direction This sets the direction of the order by clause, default is 'ASC'. * @return Database Returns the Database class which can be method chained for more query building. */ public function orderDirection( $direction = 'ASC' ) { $this->orderDirection = $direction; return $this; } /** * Adds a LIMIT clause. * * @since 4.0.0 * * @param int $limit The amount of rows to limit the query to. * @param int $offset The amount of rows the result of the query should be ofset with. * @return Database Returns the Database class which can be method chained for more query building. */ public function limit( $limit = 0, $offset = -1 ) { if ( ! $limit ) { return $this; } $this->limit = ( -1 === $offset ) ? $limit : "$offset, $limit"; return $this; } /** * Converts associative arrays to a SET argument. * * @since 4.1.5 * * @param array $args The arguments. * @return array The prepared arguments. */ private function prepareSet( $args ) { $args = $this->prepArgs( $args ); $preparedSet = []; foreach ( (array) $args as $field => $value ) { if ( is_null( $value ) ) { $preparedSet[] = "`$field` = NULL"; continue; } if ( is_array( $value ) ) { throw new \Exception( 'Cannot save an unserialized array in the database. Data passed was: ' . wp_json_encode( $value ) ); } if ( is_object( $value ) ) { throw new \Exception( 'Cannot save an unserialized object in the database. Data passed was: ' . esc_html( $value ) ); } $preparedSet[] = sprintf( "`$field` = %s", $this->escape( $value, $this->getEscapeOptions() | self::ESCAPE_QUOTE ) ); } return $preparedSet; } /** * Adds a SET clause. * * @since 4.0.0 * * @return Database Returns the Database class which can be method chained for more query building. */ public function set() { $this->set = array_merge( $this->set, $this->prepareSet( func_get_args() ) ); return $this; } /** * Adds an ON DUPLICATE clause. * * @since 4.1.5 * * @return Database Returns the Database class which can be method chained for more query building. */ public function onDuplicate() { $this->onDuplicate = array_merge( $this->onDuplicate, $this->prepareSet( func_get_args() ) ); return $this; } /** * Set the output for the query. * * @since 4.0.0 * * @param string $output This can be one of the following: ARRAY_A | ARRAY_N | OBJECT | OBJECT_K. * @return Database Returns the Database class which can be method chained for more query building. */ public function output( $output = 'OBJECT' ) { if ( ! $output ) { $output = 'OBJECT'; } $this->output = $output; return $this; } /** * Reset the cache so we make sure the query gets to the DB. * * @since 4.1.6 * * @return Database Returns the Database class which can be method chained for more query building. */ public function resetCache() { $this->shouldResetCache = true; return $this; } /** * Run this query. * * @since 4.0.0 * * @param bool $reset Whether to reset the results/query. * @param string $return Determine which method to call on the $wpdb object * @param array $params Optional extra parameters to pass to the db method call * @return Database Returns the Database class which can be method chained for more query building. */ public function run( $reset = true, $return = 'results', $params = [] ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable if ( ! in_array( $return, [ 'results', 'col', 'var', 'row' ], true ) ) { $return = 'results'; } $prepare = $this->db->prepare( $this->query(), 1, 1 ); $queryHash = sha1( $this->query() ); $cacheTableName = $this->getCacheTableName(); // Pull the result from the in-memory cache if everything checks out. if ( ! $this->shouldResetCache && isset( $this->cache[ $cacheTableName ][ $queryHash ][ $return ] ) && empty( $this->join ) ) { $this->result = $this->cache[ $cacheTableName ][ $queryHash ][ $return ]; return $this; } switch ( $return ) { case 'col': $this->result = $this->db->get_col( $prepare ); break; case 'var': $this->result = $this->db->get_var( $prepare ); break; case 'row': $this->result = $this->db->get_row( $prepare ); break; default: $this->result = $this->db->get_results( $prepare, $this->output ); } if ( $reset ) { $this->reset(); } $this->cache[ $cacheTableName ][ $queryHash ][ $return ] = $this->result; // Reset the cache trigger for the next run. $this->shouldResetCache = false; return $this; } /** * Inject a count select statement and return the result. * * @since 4.1.0 * * @param string $countColumn The column to count with. Defaults to '*' all. * @return int The number of rows that were found. */ public function count( $countColumn = '*' ) { $usingGroup = ! empty( $this->group ); $results = $this->select( 'count(' . $countColumn . ') as count' ) ->run() ->result(); return 1 === $this->numRows() && ! $usingGroup ? (int) $results[0]->count : $this->numRows(); } /** * Returns the query results based on the value of the output property. * * @since 4.0.0 * * @return mixed This depends on what was set in the output property. */ public function result() { return $this->result; } /** * Return a model model from a row. * * @since 4.0.0 * * @param string $class The name of the model class to call. * @return object The model class instance. */ public function model( $class ) { $result = $this->result(); return ! empty( $result ) ? ( is_array( $result ) ? new $class( (array) current( $result ) ) : $result ) : new $class(); } /** * Return an array of model class instancnes from the result. * * @since 4.0.0 * * @param string $class The name of the model class to call. * @param string $id The ID of the index to use. * @param bool $toJson The index if necessary. * @return array An array of model class instances. */ public function models( $class, $id = null, $toJson = false ) { if ( ! empty( $this->models ) ) { return $this->models; } $i = 0; $models = []; foreach ( $this->result() as $row ) { $var = ( null === $id ) ? $row : $row[ $id ]; $class = new $class( $var ); // Lets add the class to the array using the class ID. $models[ $class->id ] = $toJson ? $class->jsonSerialize() : $class; $i++; } $this->models = $models; return $this->models; } /** * Returns the last error reported by MySQL. * * @since 4.0.0 * * @return string The last error message. */ public function lastError() { return $this->db->last_error; } /** * Return the $wpdb insert_id from the last query. * * @since 4.0.0 * * @return int The ID of the most recent INSERT query. */ public function insertId() { return $this->db->insert_id; } /** * Return the $wpdb rows_affected from the last query. * * @since 4.0.0 * * @return int The number of rows affected. */ public function rowsAffected() { return $this->db->rows_affected; } /** * Return the $wpdb num_rows from the last query. * * @since 4.0.0 * * @return int The count for the number of rows in the last query. */ public function numRows() { return $this->db->num_rows; } /** * Check if the last query had any rows. * * @since 4.0.0 * * @return bool Whether there were any rows retrived by the last query. */ public function nullSet() { return ( $this->numRows() < 1 ); } /** * This will start a MySQL transaction. Be sure to commit or rollback! * * @since 4.0.0 */ public function startTransaction() { $this->db->query( 'START TRANSACTION' ); } /** * This will commit a MySQL transaction. Used in conjunction with startTransaction. * * @since 4.0.0 */ public function commit() { $this->db->query( 'COMMIT' ); } /** * This will rollback a MySQL transaction. Used in conjunction with startTransaction. * * @since 4.0.0 */ public function rollback() { $this->db->query( 'ROLLBACK' ); } /** * Fast way to execute raw queries. * NOTE: When using this method, all arguments must be sanitized manually! * * @since 4.0.0 * * @param string $sql The sql query to execute. * @param bool $results Whether to return the results or not. * @param bool $useCache Whether to use the cache or not. * @return mixed Could be an array or object depending on the result set. */ public function execute( $sql, $results = false, $useCache = false ) { $this->lastQuery = $sql; $queryHash = sha1( $sql ); $cacheTableName = $this->getCacheTableName(); // Pull the result from the in-memory cache if everything checks out. if ( $useCache && ! $this->shouldResetCache && isset( $this->cache[ $cacheTableName ][ $queryHash ] ) ) { if ( $results ) { $this->result = $this->cache[ $cacheTableName ][ $queryHash ]; } return $this; } if ( $results ) { $this->result = $this->db->get_results( $sql, $this->output ); if ( $useCache ) { $this->cache[ $cacheTableName ][ $queryHash ] = $this->result; // Reset the cache trigger for the next run. $this->shouldResetCache = false; } return $this; } return $this->db->query( $sql ); } /** * Escape a value for safe use in SQL queries. * * @param string $value The value to be escaped. * @param int|null $options The escape options. * @return string The escaped SQL value. */ public function escape( $value, $options = null ) { if ( is_array( $value ) ) { foreach ( $value as &$val ) { $val = $this->escape( $val, $options ); } return $value; } $options = ( is_null( $options ) ) ? $this->getEscapeOptions() : $options; if ( ( $options & self::ESCAPE_STRIP_HTML ) !== 0 && isset( $this->stripTags ) && true === $this->stripTags ) { $value = wp_strip_all_tags( $value ); } if ( ( ( $options & self::ESCAPE_FORCE ) !== 0 || php_sapi_name() === 'cli' ) || ( ( $options & self::ESCAPE_QUOTE ) !== 0 && ! is_int( $value ) ) ) { $value = esc_sql( $value ); if ( ! is_int( $value ) ) { $value = "'$value'"; } } return $value; } /** * Returns the current escape options value. * * @since 4.0.0 * * @return int The current escape options value. */ public function getEscapeOptions() { return $this->escapeOptions; } /** * Sets the current escape options value. * * @since 4.0.0 * * @param int $options The escape options value. */ public function setEscapeOptions( $options ) { $this->escapeOptions = $options; } /** * Backtick-escapes an array of column and/or table names. * * @since 4.0.0 * * @param array $cols An array of column names to be escaped. * @return array An array of escaped column names. */ private function escapeColNames( $cols ) { if ( ! is_array( $cols ) ) { $cols = [ $cols ]; } foreach ( $cols as &$col ) { if ( false === stripos( $col, '(' ) && false === stripos( $col, ' ' ) && false === stripos( $col, '*' ) ) { if ( stripos( $col, '.' ) ) { list( $table, $c ) = explode( '.', $col ); $col = "`$table`.`$c`"; continue; } $col = "`$col`"; } } return $cols; } /** * Gets a variable list of function arguments and reformats them as needed for many of the functions of this class. * * @since 4.0.0 * * @param mixed $values This could be anything, but if used properly it usually is a string or an array. * @return mixed If the preparation was successful, it will return an array of arguments. Otherwise it could be anything. */ private function prepArgs( $values ) { $values = (array) $values; if ( ! is_array( $values[0] ) && count( $values ) === 2 ) { $values = [ $values[0] => $values[1] ]; } elseif ( is_array( $values[0] ) && count( $values ) === 1 ) { $values = $values[0]; } return $values; } /** * Resets all the variables that make up the query. * * @since 4.0.0 * * @param array $what Set which properties you want to reset. All are selected by default. * @return Database Returns the Database instance. */ public function reset( $what = [ 'table', 'statement', 'limit', 'group', 'order', 'select', 'set', 'onDuplicate', 'ignore', 'where', 'union', 'distinct', 'orderDirection', 'query', 'output', 'stripTags', 'models', 'join' ] ) { // If we are not running a select query, let's bust the cache for this table. $selectStatements = [ 'SELECT', 'SELECT DISTINCT' ]; if ( ! empty( $this->statement ) && ! in_array( $this->statement, $selectStatements, true ) ) { $this->bustCache( $this->getCacheTableName() ); } foreach ( (array) $what as $var ) { switch ( $var ) { case 'group': case 'order': case 'select': case 'set': case 'onDuplicate': case 'where': case 'union': case 'join': $this->$var = []; break; case 'orderDirection': $this->$var = 'ASC'; break; case 'ignore': case 'stripTags': $this->$var = false; break; case 'output': $this->$var = 'OBJECT'; break; default: if ( isset( $this->$var ) ) { $this->$var = null; } break; } } return $this; } /** * Returns the current value of one or more query properties. * * @since 4.0.0 * * @param string|array $what You can pass in an array of options to retrieve. By default it selects all if them. * @return string|array Returns the value of whichever variables are passed in. */ public function getQueryProperty( $what = [ 'table', 'statement', 'limit', 'group', 'order', 'select', 'set', 'onDuplicate', 'where', 'union', 'distinct', 'orderDirection', 'query', 'output', 'result' ] ) { if ( is_array( $what ) ) { $return = []; foreach ( (array) $what as $which ) { $return[ $which ] = $this->$which; } return $return; } return $this->$what; } /** * Get a table name for the cache key. * * @since 4.1.6 * * @param string $cacheTableName The table name to check against. * @return string The cache key table name. */ private function getCacheTableName( $cacheTableName = '' ) { $cacheTableName = empty( $cacheTableName ) ? $this->table : $cacheTableName; foreach ( $this->customTables as $tableName ) { if ( false !== stripos( (string) $cacheTableName, $this->prefix . $tableName ) ) { $cacheTableName = $tableName; break; } } return $cacheTableName; } /** * Busts the cache for the given table name. * * @since 4.1.6 * * @param string $tableName The table name. * @return void */ public function bustCache( $tableName = '' ) { if ( ! $tableName ) { // Bust all the cache. $this->cache = []; return; } unset( $this->cache[ $tableName ] ); } /** * In order to not have a conflict, we need to return a clone. * * @since 4.1.0 * * @return Database The cloned Database instance. */ public function noConflict() { return clone $this; } /** * Checks whether the given index exists on the given table. * * @since 4.4.8 * * @param string $tableName The table name. * @param string $indexName The index name. * @param bool $includesPrefix Whether the table name includes the WordPress prefix or not. * @return bool Whether the index exists or not. */ public function indexExists( $tableName, $indexName, $includesPrefix = false ) { $prefix = $includesPrefix ? '' : $this->prefix; $tableName = strtolower( $prefix . $tableName ); $indexName = strtolower( $indexName ); $indexes = $this->db->get_results( "SHOW INDEX FROM `$tableName`" ); foreach ( $indexes as $index ) { if ( empty( $index->Key_name ) ) { continue; } if ( strtolower( $index->Key_name ) === $indexName ) { return true; } } return false; } }all-in-one-seo-pack/app/Common/Utils/Features.php000064400000011377151222735770015622 0ustar00core->networkCache->get( 'license_features' ); if ( null === $features || $flushCache ) { $response = aioseo()->helpers->wpRemoteGet( $this->getFeaturesUrl() ); if ( 200 === wp_remote_retrieve_response_code( $response ) ) { $features = json_decode( wp_remote_retrieve_body( $response ) ); } if ( ! $features || ! empty( $features->error ) ) { $features = $this->getDefaultFeatures(); } aioseo()->core->networkCache->update( 'license_features', $features ); } return $features; } /** * Get the URL to get features. * * @since 4.1.8 * * @return string The URL. */ protected function getFeaturesUrl() { $url = $this->featuresUrl; if ( defined( 'AIOSEO_FEATURES_URL' ) ) { $url = AIOSEO_FEATURES_URL; } return $url; } /** * Retrieves a default list of all external saas features available for the current user if the API cannot be reached. * * @since 4.3.0 * * @return array An array of features. */ protected function getDefaultFeatures() { return json_decode( wp_json_encode( [ [ 'license_level' => 'pro', 'section' => 'schema', 'feature' => 'event' ], [ 'license_level' => 'elite', 'section' => 'schema', 'feature' => 'event' ], [ 'license_level' => 'elite', 'section' => 'schema', 'feature' => 'job-posting' ], [ 'license_level' => 'elite', 'section' => 'tools', 'feature' => 'network-tools-site-activation' ], [ 'license_level' => 'elite', 'section' => 'tools', 'feature' => 'network-tools-database' ], [ 'license_level' => 'elite', 'section' => 'tools', 'feature' => 'network-tools-import-export' ], [ 'license_level' => 'elite', 'section' => 'tools', 'feature' => 'network-tools-robots' ], [ 'license_level' => 'elite', 'section' => 'search-statistics', 'feature' => 'seo-statistics' ], [ 'license_level' => 'elite', 'section' => 'search-statistics', 'feature' => 'keyword-rankings' ], [ 'license_level' => 'elite', 'section' => 'search-statistics', 'feature' => 'keyword-rankings-pages' ], [ 'license_level' => 'elite', 'section' => 'search-statistics', 'feature' => 'content-rankings' ], [ 'license_level' => 'elite', 'section' => 'search-statistics', 'feature' => 'post-detail' ], [ 'license_level' => 'elite', 'section' => 'search-statistics', 'feature' => 'post-detail-page-speed' ], [ 'license_level' => 'elite', 'section' => 'search-statistics', 'feature' => 'post-detail-seo-statistics' ], [ 'license_level' => 'elite', 'section' => 'search-statistics', 'feature' => 'post-detail-keywords' ], [ 'license_level' => 'elite', 'section' => 'search-statistics', 'feature' => 'post-detail-focus-keyword-trend' ], [ 'license_level' => 'elite', 'section' => 'search-statistics', 'feature' => 'keyword-tracking' ], [ 'license_level' => 'elite', 'section' => 'search-statistics', 'feature' => 'post-detail-keyword-tracking' ], [ 'license_level' => 'elite', 'section' => 'search-statistics', 'feature' => 'index-status' ] ] ) ); } /** * Get the plans for a given feature. * * @since 4.3.0 * * @param string $sectionSlug The section name. * @param string $feature The feature name. * @return array The plans for the feature. */ public function getPlansForFeature( $sectionSlug, $feature = '' ) { $plans = []; // Loop through all the features and find the plans that have access to the feature. foreach ( $this->getFeatures() as $featureArray ) { if ( $featureArray->section !== $sectionSlug ) { continue; } if ( ! empty( $feature ) && $featureArray->feature !== $feature ) { continue; } $plans[] = ucfirst( $featureArray->license_level ); } return array_unique( $plans ); } }all-in-one-seo-pack/app/Common/Utils/Filesystem.php000064400000013756151222735770016173 0ustar00core = $core; $this->init( $args ); } /** * Initialize the filesystem. * * @since 4.1.9 * * @param array $args An array of arguments for the WP_Filesystem * @return void */ public function init( $args = [] ) { require_once ABSPATH . 'wp-admin/includes/file.php'; WP_Filesystem( $args ); global $wp_filesystem; if ( is_object( $wp_filesystem ) ) { $this->fs = $wp_filesystem; } } /** * Wrapper method to check if a file exists. * * @since 4.1.9 * * @param string $filename The filename to check if it exists. * @return bool Returns true if the file or directory specified by filename exists; false otherwise. */ public function exists( $filename ) { if ( ! $this->isWpfsValid() ) { return @file_exists( $filename ); } return $this->fs->exists( $filename ); } /** * Retrieve the contents of a file. * * @since 4.1.9 * * @param string $filename The filename to get the contents for. * @return string|bool The function returns the read data or false on failure. */ public function getContents( $filename ) { if ( ! $this->exists( $filename ) ) { return false; } if ( ! $this->isWpfsValid() ) { return @file_get_contents( $filename ); } return $this->fs->get_contents( $filename ); } /** * Reads entire file into an array. * * @since 4.1.9 * * @param string $file Path to the file. * @return array|bool File contents in an array on success, false on failure. */ public function getContentsArray( $file ) { if ( ! $this->exists( $file ) ) { return false; } if ( ! $this->isWpfsValid() ) { return @file( $file ); } return $this->fs->get_contents_array( $file ); } /** * Sets the access and modification times of a file. * Note: If $file doesn't exist, it will be created. * * @since 4.1.9 * * @param string $file Path to file. * @param int $time Optional. Modified time to set for file. Default 0. * @param int $atime Optional. Access time to set for file. Default 0. * @return bool True on success, false on failure. */ public function touch( $file, $time = 0, $atime = 0 ) { if ( 0 === $time ) { $time = time(); } if ( 0 === $atime ) { $atime = time(); } if ( ! $this->isWpfsValid() ) { return @touch( $file, $time, $atime ); } return $this->fs->touch( $file, $time, $atime ); } /** * Writes a string to a file. * * @since 4.1.9 * * @param string $file Remote path to the file where to write the data. * @param string $contents The data to write. * @param int|false $mode Optional. The file permissions as octal number, usually 0644. Default false. * @return int|bool True on success, false on failure. */ public function putContents( $file, $contents, $mode = false ) { if ( ! $this->isWpfsValid() ) { return @file_put_contents( $file, $contents ); } return $this->fs->put_contents( $file, $contents, $mode ); } /** * Checks if a file or directory is writable. * * @since 4.1.9 * * @param string $file Path to file or directory. * @return bool Whether $file is writable. */ public function isWritable( $file ) { if ( ! $this->isWpfsValid() ) { return @is_writable( $file ); } return $this->fs->is_writable( $file ); } /** * Checks if a file is readable. * * @since 4.1.9 * * @param string $file Path to file. * @return bool Whether $file is readable. */ public function isReadable( $file ) { if ( ! $this->isWpfsValid() ) { return @is_readable( $file ); } return $this->fs->is_readable( $file ); } /** * Gets the file size (in bytes). * * @since 4.1.9 * * @param string $file Path to file. * @return int|bool Size of the file in bytes on success, false on failure. */ public function size( $file ) { if ( ! $this->isWpfsValid() ) { return @filesize( $file ); } return $this->fs->size( $file ); } /** * Checks if resource is a file. * * @since 4.1.9 * * @param string $file File path. * @return bool Whether $file is a file. */ public function isFile( $file ) { if ( ! $this->isWpfsValid() ) { return @is_file( $file ); } return $this->fs->is_file( $file ); } /** * Checks if resource is a directory. * * @since 4.1.9 * * @param string $path Directory path. * @return bool Whether $path is a directory. */ public function isDir( $path ) { if ( ! $this->isWpfsValid() ) { return @is_dir( $path ); } return $this->fs->is_dir( $path ); } /** * A simple check to ensure that the WP_Filesystem is valid. * * @since 4.1.9 * * @return bool True if valid, false if not. */ public function isWpfsValid() { if ( ! is_a( $this->fs, 'WP_Filesystem_Base' ) || ( // Errors is a WP_Error object. ! empty( $this->fs->errors ) && // We directly check if the errors array is empty for compatibility with WP < 5.1. ! empty( $this->fs->errors->errors ) ) ) { return false; } return true; } /** * In order to not have a conflict, we need to return a clone. * * @since 4.1.9 * * @return Filesystem The cloned Filesystem object. */ public function noConflict() { return clone $this; } }all-in-one-seo-pack/app/Common/Utils/Helpers.php000064400000020426151222735770015441 0ustar00 'WordPress', 'utm_campaign' => aioseo()->pro ? 'proplugin' : 'liteplugin', 'utm_medium' => $medium ]; // Content is not used by default. if ( $content ) { $args['utm_content'] = $content; } // Return the new URL. $url = add_query_arg( $args, $url ); return $esc ? esc_url( $url ) : $url; } /** * Checks if we are in a dev environment or not. * * @since 4.1.0 * * @return boolean True if we are, false if not. */ public function isDev() { return aioseo()->isDev || isset( $_REQUEST['aioseo-dev'] ); // phpcs:ignore HM.Security.NonceVerification.Recommended } /** * Checks if the server is running on Apache. * * @since 4.0.0 * * @return boolean Whether or not it is on apache. */ public function isApache() { if ( ! isset( $_SERVER['SERVER_SOFTWARE'] ) ) { return false; } return stripos( sanitize_text_field( wp_unslash( $_SERVER['SERVER_SOFTWARE'] ) ), 'apache' ) !== false; } /** * Checks if the server is running on nginx. * * @since 4.0.0 * * @return bool Whether or not it is on nginx. */ public function isNginx() { if ( ! isset( $_SERVER['SERVER_SOFTWARE'] ) ) { return false; } $server = sanitize_text_field( wp_unslash( $_SERVER['SERVER_SOFTWARE'] ) ); if ( false !== stripos( $server, 'Flywheel' ) || false !== stripos( $server, 'nginx' ) ) { return true; } return false; } /** * Checks if the server is running on LiteSpeed. * * @since 4.5.3 * * @return bool Whether it is on LiteSpeed. */ public function isLiteSpeed() { if ( ! isset( $_SERVER['SERVER_SOFTWARE'] ) ) { return false; } $server = strtolower( sanitize_text_field( wp_unslash( $_SERVER['SERVER_SOFTWARE'] ) ) ); return false !== stripos( $server, 'litespeed' ); } /** * Returns the server name: Apache, nginx or LiteSpeed. * * @since 4.5.3 * * @return string The server name. An empty string if it's unknown. */ public function getServerName() { if ( aioseo()->helpers->isApache() ) { return 'apache'; } if ( aioseo()->helpers->isNginx() ) { return 'nginx'; } if ( aioseo()->helpers->isLiteSpeed() ) { return 'litespeed'; } return ''; } /** * Validate IP addresses. * * @since 4.0.0 * * @param string $ip The IP address to validate. * @return boolean If the IP address is valid or not. */ public function validateIp( $ip ) { if ( filter_var( $ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 ) ) { return true; } if ( filter_var( $ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6 ) ) { return true; } // Doesn't seem to be a valid IP. return false; } /** * Convert bytes to readable format. * * @since 4.0.0 * * @param integer $bytes The size of the file. * @return string The size as a string. */ public function convertFileSize( $bytes ) { if ( empty( $bytes ) ) { return [ 'original' => 0, 'readable' => '0 B' ]; } $i = floor( log( $bytes ) / log( 1024 ) ); $sizes = [ 'B', 'KB', 'MB', 'GB', 'TB' ]; return [ 'original' => $bytes, 'readable' => sprintf( '%.02F', $bytes / pow( 1024, $i ) ) * 1 . ' ' . $sizes[ $i ] ]; } /** * Sanitizes a given option value before we store it in the DB. * * Used by the migration and importer classes. * * @since 4.0.0 * * @param mixed $value The value. * @return mixed $value The sanitized value. */ public function sanitizeOption( $value ) { switch ( gettype( $value ) ) { case 'boolean': return (bool) $value; case 'string': $value = aioseo()->helpers->decodeHtmlEntities( $value ); return aioseo()->helpers->encodeOutputHtml( wp_strip_all_tags( wp_check_invalid_utf8( trim( $value ) ) ) ); case 'integer': return intval( $value ); case 'double': return floatval( $value ); case 'array': $sanitized = []; foreach ( (array) $value as $child ) { $sanitized[] = aioseo()->helpers->sanitizeOption( $child ); } return $sanitized; default: return false; } } /** * Checks if the given string is serialized, and if so, unserializes it. * If the serialized string contains an object, we abort to prevent PHP object injection. * * @since 4.1.0.2 * * @param string $string The string. * @return string|array The string or unserialized data. */ public function maybeUnserialize( $string ) { if ( ! is_string( $string ) ) { return $string; } $string = trim( $string ); if ( is_serialized( $string ) && ! $this->stringContains( $string, 'O:' ) ) { // We want to add extra hardening for PHP versions greater than 5.6. return version_compare( PHP_VERSION, '7.0', '<' ) ? @unserialize( $string ) : @unserialize( $string, [ 'allowed_classes' => false ] ); // phpcs:disable PHPCompatibility.FunctionUse.NewFunctionParameters.unserialize_optionsFound } return $string; } /** * Returns a deep clone of the given object. * The built-in PHP clone KW provides a shallow clone. This method returns a deep clone that also clones nested object properties. * You can use this method to sever the reference to nested objects. * * @since 4.4.7 * * @return object The cloned object. */ public function deepClone( $object ) { return unserialize( serialize( $object ) ); } /** * Sanitizes a given variable * * @since 4.5.6 * * @param mixed $variable The variable. * @param bool $preserveHtml Whether or not to preserve HTML for ALL fields. * @param array $fieldsToPreserveHtml Specific fields to preserve HTML for. * @param string $fieldName The name of the current field (when looping over a list). * @return mixed The sanitized variable. */ public function sanitize( $variable, $preserveHtml = false, $fieldsToPreserveHtml = [], $fieldName = '' ) { $type = gettype( $variable ); switch ( $type ) { case 'boolean': return (bool) $variable; case 'string': if ( $preserveHtml || in_array( $fieldName, $fieldsToPreserveHtml, true ) ) { return aioseo()->helpers->decodeHtmlEntities( sanitize_text_field( htmlspecialchars( $variable, ENT_NOQUOTES, 'UTF-8' ) ) ); } return sanitize_text_field( $variable ); case 'integer': return intval( $variable ); case 'float': case 'double': return floatval( $variable ); case 'array': $array = []; foreach ( (array) $variable as $k => $v ) { $array[ $k ] = $this->sanitize( $v, $preserveHtml, $fieldsToPreserveHtml, $k ); } return $array; default: return false; } } /** * Return the version number with a filter to enable users to hide the version. * * @since 4.3.7 * * @return string The current version or empty if the filter is active. Using ?aioseo-dev will override the filter. */ public function getAioseoVersion() { $version = aioseo()->version; if ( ! $this->isDev() && apply_filters( 'aioseo_hide_version_number', false ) ) { $version = ''; } return $version; } }all-in-one-seo-pack/app/Common/Utils/NetworkCache.php000064400000004712151222735770016414 0ustar00helpers->switchToBlog( aioseo()->helpers->getNetworkId() ); $value = parent::get( $key ); aioseo()->helpers->restoreCurrentBlog(); return $value; } /** * Updates the given cache or creates it if it doesn't exist. * * @since 4.2.5 * * @param string $key The cache key name. * @param mixed $value The value. * @param int $expiration The expiration time in seconds. Defaults to 24 hours. 0 to no expiration. * @return void */ public function update( $key, $value, $expiration = DAY_IN_SECONDS ) { if ( ! is_multisite() ) { parent::update( $key, $value, $expiration ); return; } aioseo()->helpers->switchToBlog( aioseo()->helpers->getNetworkId() ); parent::update( $key, $value, $expiration ); aioseo()->helpers->restoreCurrentBlog(); } /** * Deletes the given cache key. * * @since 4.2.5 * * @param string $key The cache key. * @return void */ public function delete( $key ) { if ( ! is_multisite() ) { parent::delete( $key ); return; } aioseo()->helpers->switchToBlog( aioseo()->helpers->getNetworkId() ); parent::delete( $key ); aioseo()->helpers->restoreCurrentBlog(); } /** * Clears all of our cache. * * @since 4.2.5 * * @return void */ public function clear() { if ( ! is_multisite() ) { parent::clear(); return; } aioseo()->helpers->switchToBlog( aioseo()->helpers->getNetworkId() ); parent::clear(); aioseo()->helpers->restoreCurrentBlog(); } /** * Clears all of our cache under a certain prefix. * * @since 4.2.5 * * @param string $prefix A prefix to clear or empty to clear everything. * @return void */ public function clearPrefix( $prefix ) { if ( ! is_multisite() ) { parent::clearPrefix( $prefix ); return; } aioseo()->helpers->switchToBlog( aioseo()->helpers->getNetworkId() ); parent::clearPrefix( $prefix ); aioseo()->helpers->restoreCurrentBlog(); } }all-in-one-seo-pack/app/Common/Utils/PluginUpgraderSilentAjax.php000064400000023674151222735770020762 0ustar00 'https://downloads.wordpress.org/plugin/broken-link-checker-seo.zip', 'optinMonster' => 'https://downloads.wordpress.org/plugin/optinmonster.zip', 'wpForms' => 'https://downloads.wordpress.org/plugin/wpforms-lite.zip', 'miLite' => 'https://downloads.wordpress.org/plugin/google-analytics-for-wordpress.zip', 'emLite' => 'https://downloads.wordpress.org/plugin/google-analytics-dashboard-for-wp.zip', 'wpMail' => 'https://downloads.wordpress.org/plugin/wp-mail-smtp.zip', 'rafflePress' => 'https://downloads.wordpress.org/plugin/rafflepress.zip', 'seedProd' => 'https://downloads.wordpress.org/plugin/coming-soon.zip', 'trustPulse' => 'https://downloads.wordpress.org/plugin/trustpulse-api.zip', 'instagramFeed' => 'https://downloads.wordpress.org/plugin/instagram-feed.zip', 'facebookFeed' => 'https://downloads.wordpress.org/plugin/custom-facebook-feed.zip', 'twitterFeed' => 'https://downloads.wordpress.org/plugin/custom-twitter-feeds.zip', 'youTubeFeed' => 'https://downloads.wordpress.org/plugin/feeds-for-youtube.zip', 'pushEngage' => 'https://downloads.wordpress.org/plugins/pushengage.zip', 'sugarCalendar' => 'https://downloads.wordpress.org/plugins/sugar-calendar-lite.zip', 'wpSimplePay' => 'https://downloads.wordpress.org/plugins/stripe.zip', 'easyDigitalDownloads' => 'https://downloads.wordpress.org/plugins/easy-digital-downloads.zip', 'wpcode' => 'https://downloads.wordpress.org/plugin/insert-headers-and-footers.zip', 'searchWp' => '', 'affiliateWp' => '', 'charitable' => 'https://downloads.wordpress.org/plugin/charitable.zip', 'duplicator' => 'https://downloads.wordpress.org/plugin/duplicator.zip' ]; /** * An array of links to install the plugins from wordpress.org. * * @since 4.0.0 * * @var array */ public $wpPluginLinks = [ 'brokenLinkChecker' => 'https://wordpress.org/plugins/broken-link-checker-seo/', 'optinMonster' => 'https://wordpress.org/plugin/optinmonster/', 'wpForms' => 'https://wordpress.org/plugin/wpforms-lite/', 'miLite' => 'https://wordpress.org/plugin/google-analytics-for-wordpress/', 'emLite' => 'https://wordpress.org/plugin/google-analytics-dashboard-for-wp/', 'wpMail' => 'https://wordpress.org/plugin/wp-mail-smtp/', 'rafflePress' => 'https://wordpress.org/plugin/rafflepress/', 'seedProd' => 'https://wordpress.org/plugin/coming-soon/', 'trustPulse' => 'https://wordpress.org/plugin/trustpulse-api/', 'instagramFeed' => 'https://wordpress.org/plugin/instagram-feed/', 'facebookFeed' => 'https://wordpress.org/plugin/custom-facebook-feed/', 'twitterFeed' => 'https://wordpress.org/plugin/custom-twitter-feeds/', 'youTubeFeed' => 'https://wordpress.org/plugin/feeds-for-youtube/', 'pushEngage' => 'https://wordpress.org/plugins/pushengage/', 'sugarCalendar' => 'https://wordpress.org/plugins/sugar-calendar-lite/', 'wpSimplePay' => 'https://wordpress.org/plugins/stripe/', 'searchWp' => 'https://searchwp.com/', 'affiliateWp' => 'https://affiliatewp.com/', 'wpcode' => 'https://wordpress.org/plugins/insert-headers-and-footers/', 'charitable' => 'https://wordpress.org/plugins/charitable/', 'duplicator' => 'https://wordpress.org/plugins/duplicator/' ]; /** * An array of slugs to check if plugins are activated. * * @since 4.0.0 * * @var array */ public $pluginSlugs = [ 'brokenLinkChecker' => 'broken-link-checker-seo/aioseo-broken-link-checker.php', 'optinMonster' => 'optinmonster/optin-monster-wp-api.php', 'wpForms' => 'wpforms-lite/wpforms.php', 'wpFormsPro' => 'wpforms/wpforms.php', 'miLite' => 'google-analytics-for-wordpress/googleanalytics.php', 'miPro' => 'google-analytics-premium/googleanalytics-premium.php', 'emLite' => 'google-analytics-dashboard-for-wp/gadwp.php', 'emPro' => 'exactmetrics-premium/exactmetrics-premium.php', 'wpMail' => 'wp-mail-smtp/wp_mail_smtp.php', 'wpMailPro' => 'wp-mail-smtp-pro/wp_mail_smtp.php', 'rafflePress' => 'rafflepress/rafflepress.php', 'rafflePressPro' => 'rafflepress-pro/rafflepress-pro.php', 'seedProd' => 'coming-soon/coming-soon.php', 'seedProdPro' => 'seedprod-coming-soon-pro-5/seedprod-coming-soon-pro-5.php', 'trustPulse' => 'trustpulse-api/trustpulse.php', 'instagramFeed' => 'instagram-feed/instagram-feed.php', 'instagramFeedPro' => 'instagram-feed-pro/instagram-feed.php', 'facebookFeed' => 'custom-facebook-feed/custom-facebook-feed.php', 'facebookFeedPro' => 'custom-facebook-feed-pro/custom-facebook-feed.php', 'twitterFeed' => 'custom-twitter-feeds/custom-twitter-feed.php', 'twitterFeedPro' => 'custom-twitter-feeds-pro/custom-twitter-feed.php', 'youTubeFeed' => 'feeds-for-youtube/youtube-feed.php', 'youTubeFeedPro' => 'youtube-feed-pro/youtube-feed.php', 'pushEngage' => 'pushengage/main.php', 'sugarCalendar' => 'sugar-calendar-lite/sugar-calendar-lite.php', 'sugarCalendarPro' => 'sugar-calendar/sugar-calendar.php', 'wpSimplePay' => 'stripe/stripe-checkout.php', 'wpSimplePayPro' => 'wp-simple-pay-pro-3/simple-pay.php', 'easyDigitalDownloads' => 'easy-digital-downloads/easy-digital-downloads.php', 'easyDigitalDownloadsPro' => 'easy-digital-downloads-pro/easy-digital-downloads.php', 'searchWp' => 'searchwp/index.php', 'affiliateWp' => 'affiliate-wp/affiliate-wp.php', 'wpcode' => 'insert-headers-and-footers/ihaf.php', 'wpcodePro' => 'wpcode-premium/wpcode.php', 'charitable' => 'charitable/charitable.php', 'duplicator' => 'duplicator/duplicator.php' ]; /** * An array of links for admin settings. * * @since 4.0.0 * * @var array */ public $pluginAdminUrls = [ 'brokenLinkChecker' => 'admin.php?page=broken-link-checker#/settings', 'optinMonster' => 'admin.php?page=optin-monster-api-settings', 'wpForms' => 'admin.php?page=wpforms-settings', 'wpFormsPro' => 'admin.php?page=wpforms-settings', 'miLite' => 'admin.php?page=monsterinsights_settings#/', 'miPro' => 'admin.php?page=monsterinsights_settings#/', 'emLite' => 'admin.php?page=exactmetrics_settings#/', 'emPro' => 'admin.php?page=exactmetrics_settings#/', 'wpMail' => 'admin.php?page=wp-mail-smtp', 'wpMailPro' => 'admin.php?page=wp-mail-smtp', 'seedProd' => 'admin.php?page=seedprod_lite', 'seedProdPro' => 'admin.php?page=seedprod_pro', 'rafflePress' => 'admin.php?page=rafflepress_lite#/settings', 'rafflePressPro' => 'admin.php?page=rafflepress_pro#/settings', 'trustPulse' => 'admin.php?page=trustpulse', 'instagramFeed' => 'admin.php?page=sb-instagram-feed', 'instagramFeedPro' => 'admin.php?page=sb-instagram-feed', 'facebookFeed' => 'admin.php?page=cff-top', 'facebookFeedPro' => 'admin.php?page=cff-top', 'twitterFeed' => 'admin.php?page=ctf-settings', 'twitterFeedPro' => 'admin.php?page=ctf-settings', 'youTubeFeed' => 'admin.php?page=youtube-feed-settings', 'youTubeFeedPro' => 'admin.php?page=youtube-feed-settings', 'pushEngage' => 'admin.php?page=pushengage', 'sugarCalendar' => 'admin.php?page=sugar-calendar', 'sugarCalendarPro' => 'admin.php?page=sugar-calendar', 'wpSimplePay' => 'edit.php?post_type=simple-pay', 'wpSimplePayPro' => 'edit.php?post_type=simple-pay', 'easyDigitalDownloads' => 'edit.php?post_type=download&page=edd-settings', 'easyDigitalDownloadsPro' => 'edit.php?post_type=download&page=edd-settings', 'searchWp' => 'options-general.php?page=searchwp', 'affiliateWp' => 'admin.php?page=affiliate-wp', 'wpcode' => 'admin.php?page=wpcode', 'wpcodePro' => 'admin.php?page=wpcode', 'charitable' => 'admin.php?page=charitable-settings', 'duplicator' => 'admin.php?page=duplicator-settings' ]; /** * An array of slugs that work in the network admin. * * @since 4.2.8 * * @var array */ public $hasNetworkAdmin = [ 'miLite' => 'admin.php?page=monsterinsights_network', 'miPro' => 'admin.php?page=monsterinsights_network', 'emLite' => 'admin.php?page=exactmetrics_network', 'emPro' => 'admin.php?page=exactmetrics_network', 'wpMail' => 'admin.php?page=wp-mail-smtp', 'wpMailPro' => 'admin.php?page=wp-mail-smtp', ]; }all-in-one-seo-pack/app/Common/Utils/PluginUpgraderSkin.php000064400000003257151222735770017617 0ustar00 [ 'author_link', 'author_link_alt', 'author_name', 'featured_image', 'post_date', 'post_link', 'post_link_alt', 'post_title', 'site_link', 'site_link_alt', 'site_title', 'taxonomy_title' ], 'homePage' => [ 'author_first_name', 'author_last_name', 'author_name', 'current_date', 'current_day', 'current_month', 'current_year', 'post_date', 'post_day', 'post_excerpt', 'post_excerpt_only', 'post_month', 'post_title', 'post_year', 'separator_sa', 'site_title', 'tagline' ], 'postTitle' => [ 'author_first_name', 'author_last_name', 'author_name', 'taxonomy_title', 'categories', 'current_date', 'current_day', 'current_month', 'current_year', 'custom_field', 'tax_name', 'permalink', 'post_content', 'post_date', 'post_day', 'post_excerpt', 'post_excerpt_only', 'post_month', 'post_title', 'post_year', 'separator_sa', 'site_title', 'tagline' ], 'postDescription' => [ 'author_first_name', 'author_last_name', 'author_name', 'taxonomy_title', 'current_date', 'current_day', 'current_month', 'current_year', 'custom_field', 'tax_name', 'permalink', 'post_content', 'post_date', 'post_day', 'post_excerpt', 'post_excerpt_only', 'post_month', 'post_title', 'post_year', 'separator_sa', 'site_title', 'tagline' ], 'authorTitle' => [ 'author_first_name', 'author_last_name', 'author_name', 'current_date', 'current_day', 'current_month', 'current_year', 'custom_field', 'separator_sa', 'site_title', 'tagline', ], 'authorDescription' => [ 'author_bio', 'author_first_name', 'author_last_name', 'author_name', 'current_date', 'current_day', 'current_month', 'current_year', 'custom_field', 'separator_sa', 'site_title', 'tagline', ], 'dateTitle' => [ 'archive_title', 'current_date', 'current_day', 'current_month', 'current_year', 'custom_field', 'archive_date', 'post_day', 'post_month', 'post_year', 'separator_sa', 'site_title', 'tagline', ], 'dateDescription' => [ 'archive_title', 'current_date', 'current_day', 'current_month', 'current_year', 'archive_date', 'post_day', 'post_month', 'post_year', 'custom_field', 'separator_sa', 'site_title', 'tagline', ], 'searchTitle' => [ 'current_date', 'current_day', 'current_month', 'current_year', 'custom_field', 'search_term', 'separator_sa', 'site_title', 'tagline', ], 'searchDescription' => [ 'current_date', 'current_day', 'current_month', 'current_year', 'custom_field', 'search_term', 'separator_sa', 'site_title', 'tagline', ], 'siteTitle' => [ 'current_date', 'current_day', 'current_month', 'current_year', 'permalink', 'post_date', 'post_day', 'post_month', 'post_year', 'search_term', 'separator_sa', 'tagline' ], 'siteDescription' => [ 'current_date', 'current_day', 'current_month', 'current_year', 'permalink', 'post_date', 'post_day', 'post_month', 'post_year', 'search_term', 'separator_sa', 'tagline' ], 'taxonomyTitle' => [ 'taxonomy_description', 'taxonomy_title', 'current_date', 'current_day', 'current_month', 'current_year', 'custom_field', 'permalink', 'separator_sa', 'site_title', 'tagline', 'tax_parent_name' ], 'taxonomyDescription' => [ 'taxonomy_description', 'taxonomy_title', 'current_date', 'current_day', 'current_month', 'current_year', 'custom_field', 'permalink', 'separator_sa', 'site_title', 'tagline' ], 'descriptionFormat' => [ 'description', 'current_date', 'current_day', 'current_month', 'current_year', 'custom_field', 'post_title', 'post_date', 'post_month', 'post_year', 'separator_sa', 'site_title', 'tagline', ], 'pagedFormat' => [ 'page_number', 'separator_sa' ], 'schema' => [ 'author_first_name', 'author_last_name', 'author_name', 'author_url', 'taxonomy_title', 'categories', 'current_date', 'current_day', 'current_month', 'current_year', 'custom_field', 'tax_name', 'permalink', 'post_content', 'post_date', 'post_day', 'post_excerpt', 'post_excerpt_only', 'post_month', 'post_title', 'post_year', 'separator_sa', 'site_title', 'tagline' ] ]; /** * Class Contructor. * * @since 4.0.0 */ public function __construct() { $this->tags = [ [ 'id' => 'alt_tag', 'name' => __( 'Image Alt Tag', 'all-in-one-seo-pack' ), 'description' => __( 'Your image\'s alt tag attribute.', 'all-in-one-seo-pack' ) ], [ 'id' => 'attachment_caption', 'name' => __( 'Media Caption', 'all-in-one-seo-pack' ), 'description' => __( 'Caption for the current media file.', 'all-in-one-seo-pack' ) ], [ 'id' => 'attachment_description', 'name' => __( 'Media Description', 'all-in-one-seo-pack' ), 'description' => __( 'Description for the current media file.', 'all-in-one-seo-pack' ) ], [ 'id' => 'archive_date', 'name' => __( 'Archive Date', 'all-in-one-seo-pack' ), 'description' => __( 'The date of the current archive, localized.', 'all-in-one-seo-pack' ) ], [ 'id' => 'author_link', 'name' => __( 'Author Link', 'all-in-one-seo-pack' ), 'description' => __( 'Author archive link (name as text).', 'all-in-one-seo-pack' ) ], [ 'id' => 'author_link_alt', 'name' => __( 'Author Link (Alt)', 'all-in-one-seo-pack' ), 'description' => __( 'Author archive link (link as text).', 'all-in-one-seo-pack' ) ], [ 'id' => 'author_bio', 'name' => __( 'Author Biography', 'all-in-one-seo-pack' ), 'description' => __( 'The biography of the author.', 'all-in-one-seo-pack' ) ], [ 'id' => 'author_name', 'name' => __( 'Author Name', 'all-in-one-seo-pack' ), 'description' => __( 'The display name of the post author.', 'all-in-one-seo-pack' ) ], [ 'id' => 'author_first_name', 'name' => __( 'Author First Name', 'all-in-one-seo-pack' ), 'description' => __( 'The first name of the post author.', 'all-in-one-seo-pack' ) ], [ 'id' => 'author_last_name', 'name' => __( 'Author Last Name', 'all-in-one-seo-pack' ), 'description' => __( 'The last name of the post author.', 'all-in-one-seo-pack' ) ], [ 'id' => 'author_url', 'name' => __( 'Author URL', 'all-in-one-seo-pack' ), 'description' => __( 'The URL of the author page.', 'all-in-one-seo-pack' ) ], [ 'id' => 'archive_title', 'name' => __( 'Archive Title', 'all-in-one-seo-pack' ), 'description' => __( 'The title of the current archive.', 'all-in-one-seo-pack' ) ], [ 'id' => 'blog_link', 'name' => __( 'Site Link', 'all-in-one-seo-pack' ), 'description' => __( 'Site link (link as text).', 'all-in-one-seo-pack' ), 'html' => true ], [ 'id' => 'blog_title', 'name' => __( 'Site Title', 'all-in-one-seo-pack' ), 'description' => __( 'Your site title.', 'all-in-one-seo-pack' ), 'deprecated' => true ], [ 'id' => 'category', 'name' => __( 'Category', 'all-in-one-seo-pack' ), 'description' => __( 'Current or first category title.', 'all-in-one-seo-pack' ), 'deprecated' => true ], [ 'id' => 'categories', 'name' => __( 'Categories', 'all-in-one-seo-pack' ), 'description' => __( 'All categories that are assigned to the current post, comma-separated.', 'all-in-one-seo-pack' ) ], [ 'id' => 'category_link', // Translators: 1 - The type of page (Post, Page, Category, Tag, etc.). 'name' => sprintf( __( '%1$s Link', 'all-in-one-seo-pack' ), 'Category' ), 'description' => __( 'Current or first term link (name as text).', 'all-in-one-seo-pack' ), 'html' => true ], [ 'id' => 'category_link_alt', // Translators: 1 - The type of page (Post, Page, Category, Tag, etc.). 'name' => sprintf( __( '%1$s Link (Alt)', 'all-in-one-seo-pack' ), 'Category' ), 'description' => __( 'Current or first term link (link as text).', 'all-in-one-seo-pack' ), 'html' => true ], [ 'id' => 'current_date', 'name' => __( 'Current Date', 'all-in-one-seo-pack' ), 'description' => __( 'The current date, localized.', 'all-in-one-seo-pack' ) ], [ 'id' => 'current_day', 'name' => __( 'Current Day', 'all-in-one-seo-pack' ), 'description' => __( 'The current day of the month, localized.', 'all-in-one-seo-pack' ) ], [ 'id' => 'current_month', 'name' => __( 'Current Month', 'all-in-one-seo-pack' ), 'description' => __( 'The current month, localized.', 'all-in-one-seo-pack' ) ], [ 'id' => 'current_year', 'name' => __( 'Current Year', 'all-in-one-seo-pack' ), 'description' => __( 'The current year, localized.', 'all-in-one-seo-pack' ) ], [ 'id' => 'custom_field', 'name' => __( 'Custom Field', 'all-in-one-seo-pack' ), 'description' => __( 'A custom field from the current page/post.', 'all-in-one-seo-pack' ), 'custom' => true ], [ 'id' => 'description', 'name' => __( 'Description', 'all-in-one-seo-pack' ), 'description' => __( 'The meta description for the current page/post.', 'all-in-one-seo-pack' ) ], [ 'id' => 'featured_image', 'name' => __( 'Featured Image', 'all-in-one-seo-pack' ), 'description' => __( 'The featured image of the current page/post.', 'all-in-one-seo-pack' ) ], [ 'id' => 'page_number', 'name' => __( 'Page Number', 'all-in-one-seo-pack' ), 'description' => __( 'The page number for the current paginated page.', 'all-in-one-seo-pack' ) ], [ 'id' => 'parent_title', 'name' => __( 'Parent Title', 'all-in-one-seo-pack' ), 'description' => __( 'The title of the parent post of the current page/post.', 'all-in-one-seo-pack' ) ], [ 'id' => 'permalink', 'name' => __( 'Permalink', 'all-in-one-seo-pack' ), 'description' => __( 'The permalink for the current page/post.', 'all-in-one-seo-pack' ) ], [ 'id' => 'post_content', // Translators: 1 - The singular name of the post type. 'name' => sprintf( __( '%1$s Content', 'all-in-one-seo-pack' ), 'Post' ), 'description' => __( 'The content of your page/post.', 'all-in-one-seo-pack' ) ], [ 'id' => 'post_date', // Translators: 1 - The singular name of the post type. 'name' => sprintf( __( '%1$s Date', 'all-in-one-seo-pack' ), 'Post' ), 'description' => __( 'The date when the page/post was published, localized.', 'all-in-one-seo-pack' ) ], [ 'id' => 'post_day', // Translators: 1 - The singular name of the post type. 'name' => sprintf( __( '%1$s Day', 'all-in-one-seo-pack' ), 'Post' ), 'description' => __( 'The day of the month when the page/post was published, localized.', 'all-in-one-seo-pack' ) ], [ 'id' => 'post_excerpt', // Translators: 1 - The singular name of the post type. 'name' => sprintf( __( '%1$s Excerpt', 'all-in-one-seo-pack' ), 'Post' ), 'description' => __( 'The excerpt defined on your page/post.', 'all-in-one-seo-pack' ) ], [ 'id' => 'post_excerpt_only', // Translators: 1 - The singular name of the post type. 'name' => sprintf( __( '%1$s Excerpt Only', 'all-in-one-seo-pack' ), 'Post' ), 'description' => __( 'The excerpt defined on your page/post. Will not fall back to the post content.', 'all-in-one-seo-pack' ) ], [ 'id' => 'post_month', // Translators: 1 - The singular name of the post type. 'name' => sprintf( __( '%1$s Month', 'all-in-one-seo-pack' ), 'Post' ), 'description' => __( 'The month when the page/post was published, localized.', 'all-in-one-seo-pack' ) ], [ 'id' => 'post_year', // Translators: 1 - The singular name of the post type. 'name' => sprintf( __( '%1$s Year', 'all-in-one-seo-pack' ), 'Post' ), 'description' => __( 'The year when the page/post was published, localized.', 'all-in-one-seo-pack' ) ], [ 'id' => 'post_link', // Translators: 1 - The type of page (Post, Page, Category, Tag, etc.). 'name' => sprintf( __( '%1$s Link', 'all-in-one-seo-pack' ), 'Post' ), 'description' => __( 'Post link (name as anchor text).', 'all-in-one-seo-pack' ), 'html' => true ], [ 'id' => 'post_link_alt', // Translators: 1 - The type of page (Post, Page, Category, Tag, etc.). 'name' => sprintf( __( '%1$s Link (Alt)', 'all-in-one-seo-pack' ), 'Post' ), 'description' => __( 'Post link (link as anchor text).', 'all-in-one-seo-pack' ), 'html' => true ], [ 'id' => 'post_title', // Translators: 1 - The type of page (Post, Page, Category, Tag, etc.). 'name' => sprintf( __( '%1$s Title', 'all-in-one-seo-pack' ), 'Post' ), 'description' => __( 'The original title of the current post.', 'all-in-one-seo-pack' ) ], [ 'id' => 'search_term', 'name' => __( 'Search Term', 'all-in-one-seo-pack' ), 'description' => __( 'The term the user is searching for.', 'all-in-one-seo-pack' ) ], [ 'id' => 'separator_sa', 'name' => __( 'Separator', 'all-in-one-seo-pack' ), 'description' => __( 'The separator defined in the search appearance settings.', 'all-in-one-seo-pack' ) ], [ 'id' => 'site_description', 'name' => __( 'Site Description', 'all-in-one-seo-pack' ), 'description' => __( 'The description for your site.', 'all-in-one-seo-pack' ), 'deprecated' => true ], [ 'id' => 'site_link', 'name' => __( 'Site Link', 'all-in-one-seo-pack' ), 'description' => __( 'Site link (name as text).', 'all-in-one-seo-pack' ), 'html' => true ], [ 'id' => 'site_link_alt', 'name' => __( 'Site Link (Alt)', 'all-in-one-seo-pack' ), 'description' => __( 'Site link (link as text).', 'all-in-one-seo-pack' ), 'html' => true ], [ 'id' => 'site_title', 'name' => __( 'Site Title', 'all-in-one-seo-pack' ), 'description' => __( 'Your site title.', 'all-in-one-seo-pack' ), 'html' => true ], [ 'id' => 'tagline', 'name' => __( 'Tagline', 'all-in-one-seo-pack' ), 'description' => __( 'The tagline for your site, set in the general settings.', 'all-in-one-seo-pack' ) ], [ 'id' => 'tax_name', 'name' => __( 'Taxonomy Name', 'all-in-one-seo-pack' ), 'description' => __( 'The name of the first term of a given taxonomy that is assigned to the current page/post.', 'all-in-one-seo-pack' ), 'custom' => true ], [ 'id' => 'tax_parent_name', 'name' => __( 'Parent Term', 'all-in-one-seo-pack' ), 'description' => __( 'The name of the parent term of the current term.', 'all-in-one-seo-pack' ), ], [ 'id' => 'taxonomy_description', // Translators: 1 - The singular name of the current taxonomy. 'name' => sprintf( __( '%1$s Description', 'all-in-one-seo-pack' ), 'Category' ), 'description' => __( 'The description of the primary term, first assigned term or the current term.', 'all-in-one-seo-pack' ) ], [ 'id' => 'taxonomy_title', // Translators: 1 - The type of page (Post, Page, Category, Tag, etc.). 'name' => sprintf( __( '%1$s Title', 'all-in-one-seo-pack' ), 'Category' ), 'description' => __( 'The title of the primary term, first assigned term or the current term.', 'all-in-one-seo-pack' ) ] ]; } /** * Returns all the tags. * * @since 4.0.0 * * @param bool $sampleData Whether or not to fill empty values with sample data. * @return array An array of tags. */ public function all( $sampleData = false ) { $tags = $this->tags; foreach ( $tags as $key => $tag ) { $tags[ $key ]['value'] = $this->getTagValue( $tag, null, $sampleData ); } usort( $tags, function ( $a, $b ) { return $a['name'] < $b['name'] ? -1 : ( $a['name'] > $b['name'] ? 1 : 0 ); } ); return [ 'tags' => $tags, 'context' => $this->getContext() ]; } /** * Add the context for all the post/page types. * * @since 4.0.0 * * @return array An array of contextual data. */ public function getContext() { $context = $this->context; // Post types including CPT's. foreach ( aioseo()->helpers->getPublicPostTypes() as $postType ) { if ( 'post' === $postType['name'] ) { continue; } if ( $postType['hasArchive'] ) { $context[ $postType['name'] . 'ArchiveTitle' ] = $context['dateTitle']; $context[ $postType['name'] . 'ArchiveDescription' ] = $context['dateDescription']; } $context[ $postType['name'] . 'Title' ] = $context['postTitle']; $context[ $postType['name'] . 'Description' ] = $context['postDescription']; // Check if the post type has an excerpt. if ( empty( $postType['hasExcerpt'] ) ) { $phpTitleKey = array_search( 'post_excerpt', $context[ $postType['name'] . 'Title' ], true ); if ( false !== $phpTitleKey ) { unset( $context[ $postType['name'] . 'Title' ][ $phpTitleKey ] ); } $phpTitleKey = array_search( 'post_excerpt_only', $context[ $postType['name'] . 'Title' ], true ); if ( false !== $phpTitleKey ) { unset( $context[ $postType['name'] . 'Title' ][ $phpTitleKey ] ); } $phpDescriptionKey = array_search( 'post_excerpt', $context[ $postType['name'] . 'Description' ], true ); if ( false !== $phpDescriptionKey ) { unset( $context[ $postType['name'] . 'Description' ][ $phpDescriptionKey ] ); } $phpDescriptionKey = array_search( 'post_excerpt_only', $context[ $postType['name'] . 'Description' ], true ); if ( false !== $phpDescriptionKey ) { unset( $context[ $postType['name'] . 'Description' ][ $phpDescriptionKey ] ); } asort( $context[ $postType['name'] . 'Title' ] ); $context[ $postType['name'] . 'Title' ] = array_values( $context[ $postType['name'] . 'Title' ] ); asort( $context[ $postType['name'] . 'Description' ] ); $context[ $postType['name'] . 'Description' ] = array_values( $context[ $postType['name'] . 'Description' ] ); } if ( 'page' === $postType['name'] ) { $phpTitleKey = array_search( 'taxonomy_title', $context['pageTitle'], true ); if ( false !== $phpTitleKey ) { unset( $context['pageTitle'][ $phpTitleKey ] ); } $phpTitleKey = array_search( 'category', $context['pageTitle'], true ); if ( false !== $phpTitleKey ) { unset( $context['pageTitle'][ $phpTitleKey ] ); } $phpDescriptionKey = array_search( 'taxonomy_title', $context['pageDescription'], true ); if ( false !== $phpDescriptionKey ) { unset( $context['pageDescription'][ $phpDescriptionKey ] ); } $phpDescriptionKey = array_search( 'category', $context['pageDescription'], true ); if ( false !== $phpDescriptionKey ) { unset( $context['pageDescription'][ $phpDescriptionKey ] ); } $context['pageTitle'] = array_values( $context['pageTitle'] ); $context['pageDescription'] = array_values( $context['pageDescription'] ); asort( $context['pageTitle'] ); $context['pageTitle'] = array_values( $context['pageTitle'] ); asort( $context['pageDescription'] ); $context['pageDescription'] = array_values( $context['pageDescription'] ); } if ( 'attachment' === $postType['name'] ) { $context['attachmentTitle'][] = 'alt_tag'; asort( $context['attachmentTitle'] ); $context['attachmentTitle'] = array_values( $context['attachmentTitle'] ); $context['attachmentDescription'][] = 'alt_tag'; asort( $context['attachmentDescription'] ); $context['attachmentDescription'] = array_values( $context['attachmentDescription'] ); $phpTitleKey = array_search( 'taxonomy_title', $context['attachmentTitle'], true ); if ( false !== $phpTitleKey ) { unset( $context['attachmentTitle'][ $phpTitleKey ] ); } $phpTitleKey = array_search( 'post_content', $context['attachmentTitle'], true ); if ( false !== $phpTitleKey ) { unset( $context['attachmentTitle'][ $phpTitleKey ] ); } $phpTitleKey = array_search( 'post_excerpt', $context['attachmentTitle'], true ); if ( false !== $phpTitleKey ) { unset( $context['attachmentTitle'][ $phpTitleKey ] ); } $phpTitleKey = array_search( 'post_excerpt_only', $context['attachmentTitle'], true ); if ( false !== $phpTitleKey ) { unset( $context['attachmentTitle'][ $phpTitleKey ] ); } $phpDescriptionKey = array_search( 'taxonomy_title', $context['attachmentDescription'], true ); if ( false !== $phpDescriptionKey ) { unset( $context['attachmentDescription'][ $phpDescriptionKey ] ); } $phpDescriptionKey = array_search( 'post_content', $context['attachmentDescription'], true ); if ( false !== $phpDescriptionKey ) { unset( $context['attachmentDescription'][ $phpDescriptionKey ] ); } $phpDescriptionKey = array_search( 'post_excerpt', $context['attachmentDescription'], true ); if ( false !== $phpDescriptionKey ) { unset( $context['attachmentDescription'][ $phpDescriptionKey ] ); } $phpDescriptionKey = array_search( 'post_excerpt_only', $context['attachmentDescription'], true ); if ( false !== $phpDescriptionKey ) { unset( $context['attachmentDescription'][ $phpDescriptionKey ] ); } $context['attachmentTitle'] = array_merge( $context['attachmentTitle'], [ 'attachment_caption', 'attachment_description' ] ); $context['attachmentDescription'] = array_merge( $context['attachmentDescription'], [ 'attachment_caption', 'attachment_description' ] ); asort( $context['attachmentTitle'] ); $context['attachmentTitle'] = array_values( $context['attachmentTitle'] ); asort( $context['attachmentDescription'] ); $context['attachmentDescription'] = array_values( $context['attachmentDescription'] ); } if ( ! in_array( 'category', get_object_taxonomies( $postType['name'] ), true ) ) { $phpTitleKey = array_search( 'categories', $context[ $postType['name'] . 'Title' ], true ); if ( false !== $phpTitleKey ) { unset( $context[ $postType['name'] . 'Title' ][ $phpTitleKey ] ); } $phpTitleKey = array_search( 'categories', $context[ $postType['name'] . 'Description' ], true ); if ( false !== $phpTitleKey ) { unset( $context[ $postType['name'] . 'Description' ][ $phpTitleKey ] ); } asort( $context[ $postType['name'] . 'Title' ] ); $context[ $postType['name'] . 'Title' ] = array_values( $context[ $postType['name'] . 'Title' ] ); asort( $context[ $postType['name'] . 'Description' ] ); $context[ $postType['name'] . 'Description' ] = array_values( $context[ $postType['name'] . 'Description' ] ); } if ( $postType['hierarchical'] ) { $context[ $postType['name'] . 'Title' ][] = 'parent_title'; } } // Taxonomies including from CPT's. foreach ( aioseo()->helpers->getPublicTaxonomies() as $taxonomy ) { $context[ $taxonomy['name'] . 'Title' ] = $context['taxonomyTitle']; $context[ $taxonomy['name'] . 'Description' ] = $context['taxonomyDescription']; } return $context; } /** * Replace the tags in the string provided. * * @since 4.0.0 * * @param string $string The string to look for tags in. * @param int $id The page or post ID. * @return string The string with tags replaced. */ public function replaceTags( $string, $id ) { if ( ! $string || ! preg_match( '/#/', $string ) ) { return $string; } foreach ( $this->tags as $tag ) { if ( 'custom_field' === $tag['id'] || 'tax_name' === $tag['id'] ) { continue; } $tagId = $this->denotationChar . $tag['id']; // Pattern explained: Exact match of tag, not followed by any additional letter, number or underscore. // This allows us to have tags like: #post_link and #post_link_alt // and it will always replace the correct one. $pattern = "/$tagId(?![a-zA-Z0-9_])/im"; if ( preg_match( $pattern, $string ) ) { $tagValue = $this->getTagValue( $tag, $id ); $string = preg_replace( $pattern, '%|%' . aioseo()->helpers->escapeRegexReplacement( $tagValue ), $string ); } } $string = $this->parseTaxonomyNames( $string, $id ); // Custom fields are parsed separately. $string = $this->parseCustomFields( $string ); return preg_replace( '/%\|%/im', '', $string ); } /** * Get the value of the tag to replace. * * @since 4.0.0 * * @param string $tag The tag to look for. * @param int $id The post ID. * @param bool $sampleData Whether or not to fill empty values with sample data. * @return mixed The value of the tag. */ public function getTagValue( $tag, $id, $sampleData = false ) { $author = new \WP_User(); $post = aioseo()->helpers->getPost( $id ); $postId = null; $category = null; if ( $post ) { $author = new \WP_User( $post->post_author ); $postId = empty( $id ) ? $post->ID : $id; $category = get_the_category( $postId ); } elseif ( is_author() && is_a( get_queried_object(), 'WP_User' ) ) { $author = get_queried_object(); } switch ( $tag['id'] ) { case 'alt_tag': return empty( $id ) ? ( $sampleData ? __( 'A sample alt tag for your image', 'all-in-one-seo-pack' ) : '' ) : get_post_meta( $id, '_wp_attachment_image_alt', true ); case 'archive_date': $date = null; if ( is_year() ) { $date = get_the_date( 'Y' ); } if ( is_month() ) { $date = get_the_date( 'F, Y' ); } if ( is_day() ) { $date = get_the_date(); } if ( $sampleData ) { $date = $this->formatDateAsI18n( date_i18n( 'U' ) ); } if ( ! empty( $date ) ) { return $date; } break; case 'archive_title': $title = is_post_type_archive() ? post_type_archive_title( '', false ) : get_the_archive_title(); return $sampleData ? __( 'Sample Archive Title', 'all-in-one-seo-pack' ) : wp_strip_all_tags( $title ); case 'author_bio': $bio = get_the_author_meta( 'description', $author->ID ); return empty( $bio ) && $sampleData ? __( 'Sample author biography', 'all-in-one-seo-pack' ) : $bio; case 'author_first_name': $name = $author->first_name; return empty( $name ) && $sampleData ? wp_get_current_user()->first_name : $author->first_name; case 'author_last_name': $name = $author->last_name; return empty( $name ) && $sampleData ? wp_get_current_user()->last_name : $author->last_name; case 'author_link': return '' . esc_html( $author->display_name ) . ''; case 'author_link_alt': return '' . esc_url( get_author_posts_url( $author->ID ) ) . ''; case 'author_name': $name = $author->display_name; return empty( $name ) && $sampleData ? wp_get_current_user()->display_name : $author->display_name; case 'author_url': $authorUrl = get_author_posts_url( $author->ID ); return ! empty( $authorUrl ) ? $authorUrl : ''; case 'attachment_caption': $caption = wp_get_attachment_caption( $postId ); return empty( $caption ) && $sampleData ? __( 'Sample caption for media.', 'all-in-one-seo-pack' ) : $caption; case 'attachment_description': $description = ! empty( $post->post_content ) ? $post->post_content : ''; return empty( $description ) && $sampleData ? __( 'Sample description for media.', 'all-in-one-seo-pack' ) : $description; case 'categories': if ( ! is_object( $post ) || 'post' !== $post->post_type ) { return ! is_object( $post ) && $sampleData ? __( 'Sample Category 1, Sample Category 2', 'all-in-one-seo-pack' ) : ''; } $categories = get_the_terms( $post->ID, 'category' ); $names = []; if ( ! is_array( $categories ) ) { return ''; } foreach ( $categories as $category ) { $names[] = $category->name; } return implode( ', ', $names ); case 'category_link': return '' . ( $category ? $category[0]->name : '' ) . ''; case 'category_link_alt': return '' . esc_url( get_category_link( $category ) ) . ''; case 'current_date': return $this->formatDateAsI18n( date_i18n( 'U' ) ); case 'current_day': return date_i18n( 'd' ); case 'current_month': return date_i18n( 'F' ); case 'current_year': return date_i18n( 'Y' ); case 'custom_field': return $sampleData ? __( 'Sample Custom Field Value', 'all-in-one-seo-pack' ) : ''; case 'featured_image': if ( ! has_post_thumbnail( $postId ) ) { return $sampleData ? __( 'Sample featured image', 'all-in-one-seo-pack' ) : ''; } $imageId = get_post_thumbnail_id( $postId ); $image = (array) wp_get_attachment_image_src( $imageId, 'full' ); $image = isset( $image[0] ) ? '' : ''; return $sampleData ? __( 'Sample featured image', 'all-in-one-seo-pack' ) : $image; case 'page_number': return aioseo()->helpers->getPageNumber(); case 'parent_title': if ( ! is_object( $post ) || ! $post->post_parent ) { return ! is_object( $post ) && $sampleData ? __( 'Sample Parent', 'all-in-one-seo-pack' ) : ''; } $parent = get_post( $post->post_parent ); return $parent ? $parent->post_title : ''; case 'permalink': return aioseo()->helpers->getUrl(); case 'post_date': $date = $this->formatDateAsI18n( get_the_date( 'U' ) ); return empty( $date ) && $sampleData ? $this->formatDateAsI18n( date_i18n( 'U' ) ) : $date; case 'post_day': $day = get_the_date( 'd', $post ); return empty( $day ) && $sampleData ? date_i18n( 'd' ) : $day; case 'post_excerpt_only': return empty( $postId ) ? ( $sampleData ? __( 'Sample excerpt from a page/post.', 'all-in-one-seo-pack' ) : '' ) : $post->post_excerpt; case 'post_excerpt': if ( empty( $postId ) ) { return $sampleData ? __( 'Sample excerpt from a page/post.', 'all-in-one-seo-pack' ) : ''; } if ( $post->post_excerpt ) { return $post->post_excerpt; } // Fall through if the post doesn't have an excerpt set. In that case getDescriptionFromContent() will generate it for us. case 'post_content': return empty( $postId ) ? ( $sampleData ? __( 'An example of content from your page/post.', 'all-in-one-seo-pack' ) : '' ) : aioseo()->helpers->getDescriptionFromContent( $post ); case 'post_link': return '' . esc_html( get_the_title( $post ) ) . ''; case 'post_link_alt': return '' . esc_url( get_permalink( $post ) ) . ''; case 'post_month': $month = get_the_date( 'F', $post ); return empty( $month ) && $sampleData ? date_i18n( 'F' ) : $month; case 'post_title': $title = esc_html( get_the_title( $post ) ); return empty( $title ) && $sampleData ? __( 'Sample Post', 'all-in-one-seo-pack' ) : $title; case 'post_year': $year = get_the_date( 'Y', $post ); return empty( $year ) && $sampleData ? date_i18n( 'Y' ) : $year; case 'search_term': $search = get_search_query(); return empty( $search ) && $sampleData ? __( 'Example search string', 'all-in-one-seo-pack' ) : esc_attr( stripslashes( $search ) ); case 'separator_sa': return aioseo()->helpers->decodeHtmlEntities( aioseo()->options->searchAppearance->global->separator ); case 'site_link': case 'blog_link': return '' . esc_html( get_bloginfo( 'name' ) ) . ''; case 'site_link_alt': return '' . esc_url( get_bloginfo( 'url' ) ) . ''; case 'tag': return single_term_title( '', false ); case 'tax_name': return $sampleData ? __( 'Sample Taxonomy Name Value', 'all-in-one-seo-pack' ) : ''; case 'tax_parent_name': $termObject = get_term( $id ); $parentTermObject = ! empty( $termObject->parent ) ? get_term( $termObject->parent ) : ''; $name = is_a( $parentTermObject, 'WP_Term' ) && ! empty( $parentTermObject->name ) ? $parentTermObject->name : ''; return $sampleData ? __( 'Sample Parent Term Name', 'all-in-one-seo-pack' ) : $name; case 'taxonomy_description': $description = term_description(); return empty( $description ) && $sampleData ? __( 'Sample taxonomy description', 'all-in-one-seo-pack' ) : $description; case 'taxonomy_title': case 'category': $title = $this->getTaxonomyTitle( $postId ); return ! $title && $sampleData ? __( 'Sample Taxonomy Title', 'all-in-one-seo-pack' ) : $title; case 'site_description': case 'blog_description': case 'tagline': return aioseo()->helpers->decodeHtmlEntities( get_bloginfo( 'description' ) ); case 'site_title': case 'blog_title': return aioseo()->helpers->decodeHtmlEntities( get_bloginfo( 'name' ) ); default: return ''; } } /** * Get the category title. * * @since 4.0.0 * * @param integer $postId The post ID if set. * @return string The category title. */ private function getTaxonomyTitle( $postId = null ) { $title = ''; if ( aioseo()->helpers->isWooCommerceActive() && is_product_category() ) { $title = single_cat_title( '', false ); } elseif ( is_category() ) { $title = single_cat_title( '', false ); } elseif ( is_tag() ) { $title = single_tag_title( '', false ); } elseif ( is_author() ) { $title = get_the_author(); } elseif ( is_tax() ) { $title = single_term_title( '', false ); } elseif ( is_post_type_archive() ) { $title = post_type_archive_title( '', false ); } elseif ( is_archive() ) { $title = get_the_archive_title(); } if ( $postId ) { $post = aioseo()->helpers->getPost( $postId ); $postTaxonomies = get_object_taxonomies( $post, 'objects' ); $postTerms = []; foreach ( $postTaxonomies as $taxonomySlug => $taxonomy ) { if ( ! $taxonomy->hierarchical ) { continue; } $primaryTerm = aioseo()->standalone->primaryTerm->getPrimaryTerm( $postId, $taxonomySlug ); if ( $primaryTerm ) { $postTerms[] = get_term( $primaryTerm, $taxonomySlug ); continue; } $postTaxonomyTerms = get_the_terms( $postId, $taxonomySlug ); if ( is_array( $postTaxonomyTerms ) ) { $postTerms = array_merge( $postTerms, $postTaxonomyTerms ); } } $title = $postTerms ? $postTerms[0]->name : ''; if ( aioseo()->helpers->isWooCommerceActive() && is_product() ) { $terms = get_the_terms( $postId, 'product_cat' ); $title = $terms ? $terms[0]->name : ''; } } return wp_strip_all_tags( (string) $title ); } /** * Formatted Date * * Get formatted date based on WP options. * * @since 4.0.0 * * @param null|int $date Date in UNIX timestamp format. Otherwise, current time. * @return string Date internationalized. */ public function formatDateAsI18n( $date = null ) { if ( ! $date ) { $date = time(); } $format = get_option( 'date_format' ); $formattedDate = date_i18n( $format, $date ); return apply_filters( 'aioseo_format_date', $formattedDate, [ $date, $format ] ); } /** * Parses custom taxonomy tags by replacing them with the name of the first assigned term of the given taxonomy. * * @since 4.0.0 * * @param string $string The string to parse. * @return mixed The new title. */ private function parseTaxonomyNames( $string, $id ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable $pattern = '/' . $this->denotationChar . 'tax_name-([a-zA-Z0-9_-]+)/im'; $string = preg_replace_callback( $pattern, [ $this, 'replaceTaxonomyName' ], $string ); $pattern = '/' . $this->denotationChar . 'tax_name(?![a-zA-Z0-9_-])/im'; return preg_replace( $pattern, '', $string ); } /** * Adds support for using #custom_field-[custom_field_title] for using * custom fields / Advanced Custom Fields in titles / descriptions etc. * * @since 4.0.0 * * @param string $string The string to parse customs fields out of. * @return mixed The new title. */ public function parseCustomFields( $string ) { $pattern = '/' . $this->denotationChar . 'custom_field-([a-zA-Z0-9_-]+)/im'; $string = preg_replace_callback( $pattern, [ $this, 'replaceCustomField' ], $string ); $pattern = '/' . $this->denotationChar . 'custom_field(?![a-zA-Z0-9_-])/im'; return preg_replace( $pattern, '', $string ); } /** * Add context to our internal context. * * @since 4.0.0 * * @param array $context A context array to append. * @return void */ public function addContext( $context ) { $this->context = array_merge( $this->context, $context ); } /** * Add tags to our internal tags. * * @since 4.0.0 * * @param array $tags A tags array to append. * @return void */ public function addTags( $tags ) { $this->tags = array_merge( $this->tags, $tags ); } /** * Replaces a taxonomy name tag with its respective value. * * @since 4.0.0 * * @param array $matches The matches. * @return string The replaced matches. */ private function replaceTaxonomyName( $matches ) { $termName = ''; $post = aioseo()->helpers->getPost(); if ( ! empty( $matches[1] ) && $post ) { $taxonomy = get_taxonomy( $matches[1] ); if ( ! $taxonomy ) { return ''; } $term = aioseo()->standalone->primaryTerm->getPrimaryTerm( $post->ID, $taxonomy->name ); if ( ! $term ) { $terms = get_the_terms( $post->ID, $taxonomy->name ); if ( ! $terms || is_wp_error( $terms ) ) { return ''; } $term = array_shift( $terms ); } $termName = $term->name; } return '%|%' . $termName; } /** * (ACF) Custom Field Replace. * * @since 4.0.0 * * @param array $matches Array of matched values. * @return bool|string New title/text. */ private function replaceCustomField( $matches ) { $result = ''; if ( ! empty( $matches ) ) { if ( ! empty( $matches[1] ) ) { if ( function_exists( 'get_field' ) ) { $result = get_field( $matches[1], get_queried_object() ); } if ( empty( $result ) ) { global $post; if ( ! empty( $post ) ) { $result = get_post_meta( $post->ID, $matches[1], true ); } } } else { $result = $matches[0]; } } $result = wp_strip_all_tags( $result ); return '%|%' . $result; } /** * Get the default tags for the current post. * * @since 4.0.0 * * @param integer $postId The Post ID. * @return array An array of tags. */ public function getDefaultPostTags( $postId ) { $post = get_post( $postId ); $title = aioseo()->meta->title->getTitle( $post, true ); $description = aioseo()->meta->description->getDescription( $post, true ); return [ 'title' => empty( $title ) ? '' : $title, 'description' => empty( $description ) ? '' : $description ]; } }all-in-one-seo-pack/app/Common/Utils/Templates.php000064400000005504151222735770015775 0ustar00getThemeTemplatePath() ) . trailingslashit( $this->getThemeTemplateSubpath() ) . $templateName ] ); if ( ! $template ) { // Try paths, in order. foreach ( $this->paths as $path ) { $template = trailingslashit( $this->addPluginPath( $path ) ) . $templateName; if ( aioseo()->core->fs->exists( $template ) ) { break; } } } return apply_filters( 'aioseo_locate_template', $template, $templateName ); } /** * Includes a template if the file exists. * * @param string $templateName The template path/name.php to be included. * @param null $data Data passed down to the template. * @return void */ public function getTemplate( $templateName, $data = null ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable $template = $this->locateTemplate( $templateName ); if ( ! empty( $template ) and aioseo()->core->fs->exists( $template ) ) { include $template; } } /** * Add this plugin path when trying the paths. * * @since 4.0.17 * * @param string $path A path. * @return string A path with the plugin absolute path. */ protected function addPluginPath( $path ) { return trailingslashit( $this->pluginPath ) . $path; } /** * Returns the theme folder for templates. * * @since 4.0.17 * * @return string The theme folder for templates. */ public function getThemeTemplatePath() { return apply_filters( 'aioseo_template_path', $this->themeTemplatePath ); } /** * * Returns the theme subfolder for templates. * * @since 4.0.17 * * @return string The theme subfolder for templates. */ public function getThemeTemplateSubpath() { return apply_filters( 'aioseo_template_subpath', $this->themeTemplateSubpath ); } }all-in-one-seo-pack/app/Common/Utils/VueSettings.php000064400000022122151222735770016312 0ustar00 true, 'showSetupWizard' => true, 'toggledCards' => [ 'dashboardOverview' => true, 'dashboardSeoSetup' => true, 'dashboardSeoSiteScore' => true, 'dashboardNotifications' => true, 'dashboardSupport' => true, 'license' => true, 'webmasterTools' => true, 'enableBreadcrumbs' => true, 'breadcrumbSettings' => true, 'breadcrumbTemplates' => true, 'advanced' => true, 'accessControl' => true, 'rssContent' => true, 'generalSitemap' => true, 'generalSitemapSettings' => true, 'imageSitemap' => true, 'videoSitemap' => true, 'newsSitemap' => true, 'rssSitemap' => true, 'rssSitemapSettings' => true, 'rssAdditionalPages' => true, 'rssAdvancedSettings' => true, 'additionalPages' => true, 'advancedSettings' => true, 'videoSitemapSettings' => true, 'videoAdditionalPages' => true, 'videoAdvancedSettings' => true, 'videoEmbedSettings' => true, 'newsSitemapSettings' => true, 'newsAdditionalPages' => true, 'newsAdvancedSettings' => true, 'newsEmbedSettings' => true, 'socialProfiles' => true, 'facebook' => true, 'facebookHomePageSettings' => true, 'facebookAdvancedSettings' => true, 'twitter' => true, 'twitterHomePageSettings' => true, 'pinterest' => true, 'searchTitleSeparator' => true, 'searchHomePage' => true, 'searchSchema' => true, 'searchMediaAttachments' => true, 'searchAdvanced' => true, 'searchAdvancedCrawlCleanup' => true, 'authorArchives' => true, 'dateArchives' => true, 'searchArchives' => true, 'imageSeo' => true, 'completeSeoChecklist' => true, 'localBusinessInfo' => true, 'localBusinessOpeningHours' => true, 'locationsSettings' => true, 'advancedLocationsSettings' => true, 'localBusinessMapsApiKey' => true, 'localBusinessMapsSettings' => true, 'robotsEditor' => true, 'badBotBlocker' => true, 'databaseTools' => true, 'htaccessEditor' => true, 'databaseToolsLogs' => true, 'systemStatusInfo' => true, 'addNewRedirection' => true, 'redirectSettings' => true, 'debug' => true, 'fullSiteRedirectsRelocate' => true, 'fullSiteRedirectsAliases' => true, 'fullSiteRedirectsCanonical' => true, 'fullSiteRedirectsHttpHeaders' => true, 'htmlSitemap' => true, 'htmlSitemapSettings' => true, 'htmlSitemapAdvancedSettings' => true, 'linkAssistantSettings' => true, 'domainActivations' => true, '404Settings' => true, 'userProfiles' => true, 'queryArgLogs' => true, ], 'toggledRadio' => [ 'breadcrumbsShowMoreSeparators' => false, 'searchShowMoreSeparators' => false, 'overviewPostType' => 'post', ], 'dismissedAlerts' => [ 'searchStatisticsContentRankings' => false ], 'internalTabs' => [ 'authorArchives' => 'title-description', 'dateArchives' => 'title-description', 'searchArchives' => 'title-description', 'seoAuditChecklist' => 'all-items' ], 'tablePagination' => [ 'networkDomains' => 20, 'redirects' => 20, 'redirectLogs' => 20, 'redirect404Logs' => 20, 'sitemapAdditionalPages' => 20, 'linkAssistantLinksReport' => 20, 'linkAssistantPostsReport' => 20, 'linkAssistantDomainsReport' => 20, 'searchStatisticsSeoStatistics' => 20, 'searchStatisticsKeywordRankings' => 20, 'searchStatisticsContentRankings' => 20, 'searchStatisticsPostDetailKeywords' => 20, 'queryArgs' => 20 ] ]; /** * The Construct method. * * @since 4.0.0 * * @param string $settings An array of settings. */ public function __construct( $settings = '_aioseo_settings' ) { $this->addDynamicDefaults(); $this->settingsName = $settings; $dbSettings = get_user_meta( get_current_user_id(), $settings, true ); $this->settings = $dbSettings ? array_replace_recursive( $this->defaults, $dbSettings ) : $this->defaults; } /** * Adds some defaults that are dynamically generated. * * @since 4.0.0 * * @return void */ private function addDynamicDefaults() { $postTypes = aioseo()->helpers->getPublicPostTypes( false, false, true ); foreach ( $postTypes as $postType ) { $this->defaults['toggledCards'][ $postType['name'] . 'SA' ] = true; $this->defaults['internalTabs'][ $postType['name'] . 'SA' ] = 'title-description'; } $taxonomies = aioseo()->helpers->getPublicTaxonomies( false, true ); foreach ( $taxonomies as $taxonomy ) { $this->defaults['toggledCards'][ $taxonomy['name'] . 'SA' ] = true; $this->defaults['internalTabs'][ $taxonomy['name'] . 'SA' ] = 'title-description'; } $postTypes = aioseo()->helpers->getPublicPostTypes( false, true, true ); foreach ( $postTypes as $postType ) { $this->defaults['toggledCards'][ $postType['name'] . 'ArchiveArchives' ] = true; $this->defaults['internalTabs'][ $postType['name'] . 'ArchiveArchives' ] = 'title-description'; } // Check any addons for defaults. $addonsDefaults = array_filter( aioseo()->addons->doAddonFunction( 'vueSettings', 'addDynamicDefaults' ) ); foreach ( $addonsDefaults as $addonDefaults ) { $this->defaults = array_merge_recursive( $this->defaults, $addonDefaults ); } } /** * Retrieves all settings. * * @since 4.0.0 * * @return array An array of settings. */ public function all() { return array_replace_recursive( $this->defaults, $this->settings ); } /** * Retrieve a setting or null if missing. * * @since 4.0.0 * * @param string $name The name of the property that is missing on the class. * @param array $arguments The arguments passed into the method. * @return mixed The value from the settings or default/null. */ public function __call( $name, $arguments = [] ) { $value = isset( $this->settings[ $name ] ) ? $this->settings[ $name ] : ( ! empty( $arguments[0] ) ? $arguments[0] : $this->getDefault( $name ) ); return $value; } /** * Retrieve a setting or null if missing. * * @since 4.0.0 * * @param string $name The name of the property that is missing on the class. * @return mixed The value from the settings or default/null. */ public function __get( $name ) { $value = isset( $this->settings[ $name ] ) ? $this->settings[ $name ] : $this->getDefault( $name ); return $value; } /** * Sets the settings value and saves to the database. * * @since 4.0.0 * * @param string $name The name of the settings. * @param mixed $value The value to set. * @return void */ public function __set( $name, $value ) { $this->settings[ $name ] = $value; $this->update(); } /** * Checks if an settings is set or returns null if not. * * @since 4.0.0 * * @param string $name The name of the settings. * @return mixed True or null. */ public function __isset( $name ) { return isset( $this->settings[ $name ] ) ? false === empty( $this->settings[ $name ] ) : null; } /** * Unsets the settings value and saves to the database. * * @since 4.0.0 * * @param string $name The name of the settings. * @return void */ public function __unset( $name ) { if ( ! isset( $this->settings[ $name ] ) ) { return; } unset( $this->settings[ $name ] ); $this->update(); } /** * Gets the default value for a setting. * * @since 4.0.0 * * @param string $name The settings name. * @return mixed The default value. */ public function getDefault( $name ) { return isset( $this->defaults[ $name ] ) ? $this->defaults[ $name ] : null; } /** * Updates the settings in the database. * * @since 4.0.0 * * @return void */ public function update() { update_user_meta( get_current_user_id(), $this->settingsName, $this->settings ); } }all-in-one-seo-pack/app/Common/Views/admin/posts/columns.php000064400000000637151222735770017756 0ustar00
    all-in-one-seo-pack/app/Common/Views/admin/terms/columns.php000064400000000636151222735770017737 0ustar00
    all-in-one-seo-pack/app/Common/Views/admin/settings-page.php000064400000027706151222735770017706 0ustar00

    ', esc_attr( AIOSEO_PLUGIN_SHORT_NAME ) ); ?>

    all-in-one-seo-pack/app/Common/Views/main/clarity.php000064400000001402151222735770016420 0ustar00options->webmasterTools->microsoftClarityProjectId; if ( empty( $projectId ) || aioseo()->helpers->isAmpPage() ) { return; } ?> helpers->encodeOutputHtml( aioseo()->meta->description->getDescription() ); $robots = aioseo()->meta->robots->meta(); $keywords = $this->keywords->getKeywords(); $canonical = aioseo()->helpers->canonicalUrl(); $links = $this->links->getLinks(); ?> verification->meta() as $metaName => $value ) : ?> helpers->isAmpPage( 'amp' ) ) : ?> helpers->decodeHtmlEntities( aioseo()->options->webmasterTools->miscellaneousVerification ); $miscellaneous = trim( $miscellaneous ); if ( ! empty( $miscellaneous ) ) { echo "\n\t\t$miscellaneous\n"; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped }all-in-one-seo-pack/app/Common/Views/main/schema.php000064400000001501151222735770016211 0ustar00schema->get(); ?> options->searchAppearance->advanced->sitelinks ) : ?> social->output->getFacebookMeta(); foreach ( $facebookMeta as $key => $meta ) : // Each article tag needs to be output in a separate meta tag so we cast and loop over each key. if ( ! is_array( $meta ) ) { $meta = [ $meta ]; } foreach ( $meta as $m ) : ?> social->output->getTwitterMeta(); foreach ( $twitterMeta as $key => $meta ) : ?>
    all-in-one-seo-pack/app/Common/Views/sitemap/html/compact-archive.php000064400000001202151222735770021476 0ustar00
    all-in-one-seo-pack/app/Common/Views/sitemap/html/widget-options.php000064400000015531151222735770021417 0ustar00

    $postTypeObject ) : ?>

    $taxonomyObject ) : ?>

    all-in-one-seo-pack/app/Common/Views/sitemap/xml/default.php000064400000003335151222735770017722 0ustar00 sitemap->helpers->excludeImages() ): ?> xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" > sitemap->output->escapeAndEcho( $entry['loc'] ); ?> sitemap->output->escapeAndEcho( $entry['lastmod'] ); ?> sitemap->output->escapeAndEcho( $entry['changefreq'] ); ?> sitemap->output->escapeAndEcho( $entry['priority'] ); ?> sitemap->helpers->excludeImages() && ! empty( $entry['images'] ) ) { foreach ( $entry['images'] as $image ) { $image = (array) $image; ?> sitemap->output->escapeAndEcho( $image['image:loc'] ); ?> all-in-one-seo-pack/app/Common/Views/sitemap/xml/root.php000064400000001147151222735770017260 0ustar00 sitemap->output->escapeAndEcho( $entry['loc'] ); ?> sitemap->output->escapeAndEcho( $entry['lastmod'] ); ?> all-in-one-seo-pack/app/Common/Views/sitemap/xml/rss.php000064400000003306151222735770017103 0ustar00 helpers->isYandexUserAgent() ) { ?> <?php aioseo()->sitemap->output->escapeAndEcho( $title, false ); ?> sitemap->output->escapeAndEcho( $link ); ?> sitemap->output->escapeAndEcho( $description ); ?> sitemap->output->escapeAndEcho( $entries[0]['pubDate'] ); ?> https://validator.w3.org/feed/docs/rss2.html sitemap->output->escapeAndEcho( $ttl ); ?> sitemap->output->escapeAndEcho( $entry['guid'] ); ?> sitemap->output->escapeAndEcho( $entry['guid'] ); ?> <?php aioseo()->sitemap->output->escapeAndEcho( $entry['title'], false ); ?> sitemap->output->escapeAndEcho( $entry['pubDate'] ); ?> all-in-one-seo-pack/app/Common/Views/sitemap/xsl/partials/breadcrumb.php000064400000002372151222735770022231 0ustar00sitemap->helpers->filename( 'general' ); $sitemapIndex = $sitemapIndex ? $sitemapIndex : 'sitemap'; ?> all-in-one-seo-pack/app/Common/Views/sitemap/xsl/partials/date-time.php000064400000001605151222735770021772 0ustar00
    $datetime ) : ?>
    $datetime ) : ?>
    all-in-one-seo-pack/app/Common/Views/sitemap/xsl/partials/pagination.php000064400000003623151222735770022254 0ustar00 $currentPage; $hasPrevPage = $currentPage > 1; $nextPageUri = $hasNextPage ? preg_replace( '/sitemap([0-9]*)\.xml/', 'sitemap' . ( $currentPage + 1 ) . '.xml', $data['sitemapUrl'] ) : '#'; $prevPageUri = $hasPrevPage ? preg_replace( '/sitemap([0-9]*)\.xml/', 'sitemap' . ( $currentPage - 1 ) . '.xml', $data['sitemapUrl'] ) : '#'; ?> all-in-one-seo-pack/app/Common/Views/sitemap/xsl/partials/sortable-column.php000064400000001673151222735770023234 0ustar00 $data['column'], 'sitemap-orderby' => 'ascending' === $orderBy ? 'descending' : 'ascending' ], $data['sitemapUrl'] ); ?> */all-in-one-seo-pack/app/Common/Views/sitemap/xsl/partials/xsl-sort.php000064400000001176151222735770021717 0ustar00 all-in-one-seo-pack/app/Common/Views/sitemap/xsl/templates/empty-sitemap.php000064400000004177151222735770023105 0ustar00access->hasCapability( 'aioseo_sitemap_settings' ); $adminUrl = admin_url( 'admin.php?page=aioseo-sitemaps' ); // phpcs:disable if ( 'xml-sitemap' !== $data['utmMedium'] ) { $adminUrl .= '#/' . str_replace( 'aioseo-', '', $data['utmMedium'] ); } ?> templates->getTemplate( 'sitemap/xsl/partials/breadcrumb.php', [ 'items' => $data['items'] ] ); } ?>


    helpers->utmUrl( AIOSEO_MARKETING_URL . 'docs/how-to-fix-a-404-error-when-viewing-your-sitemap/', $data['utmMedium'], 'learn-more' ) . '">', '' ); ?>
    all-in-one-seo-pack/app/Common/Views/sitemap/xsl/templates/format-priority.php000064400000002127151222735770023447 0ustar00 low medium high
    all-in-one-seo-pack/app/Common/Views/sitemap/xsl/templates/header.php000064400000004402151222735770021526 0ustar00

    ,

    ', ''); ?>

    all-in-one-seo-pack/app/Common/Views/sitemap/xsl/default.php000064400000031440151222735770017726 0ustar00 RSS Sitemap SitemapIndex <xsl:choose> <xsl:when test="$fileType='Sitemap' or $fileType='RSS'"><?php echo $title; ?></xsl:when> <xsl:otherwise><?php _e( 'Sitemap Index', 'all-in-one-seo-pack' ); ?></xsl:otherwise> </xsl:choose> templates->getTemplate( 'sitemap/xsl/styles.php' ); ?>
    sitemap->helpers->filename( 'general' ); $sitemapIndex = $sitemapIndex ? $sitemapIndex : 'sitemap'; aioseo()->templates->getTemplate( 'sitemap/xsl/partials/breadcrumb.php', [ 'items' => [ [ 'title' => __( 'Sitemap Index', 'all-in-one-seo-pack' ), 'url' => $sitemapUrl ], ] ] ); ?>
    templates->getTemplate( 'sitemap/xsl/partials/xsl-sort.php', [ 'parameters' => $sitemapParams, 'node' => 'sitemap:lastmod', ] ); ?> stripe
    templates->getTemplate( 'sitemap/xsl/partials/sortable-column.php', [ 'parameters' => $sitemapParams, 'sitemapUrl' => $sitemapUrl, 'column' => 'date', 'title' => __( 'Last Updated', 'all-in-one-seo-pack' ) ] ); ?>
    $count ) : ?>
    templates->getTemplate( 'sitemap/xsl/partials/date-time.php', [ 'datetime' => $xslParams['datetime'], 'node' => 'sitemap:loc' ] ); } ?>
    templates->getTemplate( 'sitemap/xsl/partials/breadcrumb.php', [ 'items' => [ [ 'title' => $title, 'url' => $sitemapUrl ], ] ] ); ?>
    templates->getTemplate( 'sitemap/xsl/partials/xsl-sort.php', [ 'parameters' => $sitemapParams, 'node' => 'pubDate', ] ); } ?> stripe
    templates->getTemplate( 'sitemap/xsl/partials/sortable-column.php', [ 'parameters' => $sitemapParams, 'sitemapUrl' => $sitemapUrl, 'column' => 'date', 'title' => __( 'Publication Date', 'all-in-one-seo-pack' ) ] ); ?>
    templates->getTemplate( 'sitemap/xsl/partials/date-time.php', [ 'datetime' => $xslParams['datetime'], 'node' => 'link' ] ); } ?>
    sitemap->helpers->filename( 'general' ); $sitemapIndex = $sitemapIndex ? $sitemapIndex : 'sitemap'; aioseo()->templates->getTemplate( 'sitemap/xsl/partials/breadcrumb.php', [ 'items' => [ [ 'title' => __( 'Sitemap Index', 'all-in-one-seo-pack' ), 'url' => home_url( "/$sitemapIndex.xml" ) ], [ 'title' => $title, 'url' => $sitemapUrl ], ] ] ); ?>
    sitemap->helpers->excludeImages() ) : ?> templates->getTemplate( 'sitemap/xsl/partials/xsl-sort.php', [ 'parameters' => $sitemapParams, 'node' => $node, ] ); } ?> stripe sitemap->helpers->excludeImages() ) : ?>
    templates->getTemplate( 'sitemap/xsl/partials/sortable-column.php', [ 'parameters' => $sitemapParams, 'sitemapUrl' => $sitemapUrl, 'column' => 'image', 'title' => __( 'Images', 'all-in-one-seo-pack' ) ] ); ?> templates->getTemplate( 'sitemap/xsl/partials/sortable-column.php', [ 'parameters' => $sitemapParams, 'sitemapUrl' => $sitemapUrl, 'column' => 'changefreq', 'title' => __( 'Change Frequency', 'all-in-one-seo-pack' ) ] ); ?> templates->getTemplate( 'sitemap/xsl/partials/sortable-column.php', [ 'parameters' => $sitemapParams, 'sitemapUrl' => $sitemapUrl, 'column' => 'priority', 'title' => __( 'Priority', 'all-in-one-seo-pack' ) ] ); ?> templates->getTemplate( 'sitemap/xsl/partials/sortable-column.php', [ 'parameters' => $sitemapParams, 'sitemapUrl' => $sitemapUrl, 'column' => 'date', 'title' => __( 'Last Updated', 'all-in-one-seo-pack' ) ] ); ?>
     →
     →
    templates->getTemplate( 'sitemap/xsl/partials/date-time.php', [ 'datetime' => $xslParams['datetime'], 'node' => 'sitemap:loc' ] ); } ?>
    templates->getTemplate( 'sitemap/xsl/partials/pagination.php', [ 'sitemapUrl' => $sitemapUrl, 'currentPage' => $currentPage, 'linksPerIndex' => $linksPerIndex, 'total' => $xslParams['pagination']['total'], 'showing' => $xslParams['pagination']['showing'] ] ); } ?>
    templates->getTemplate( 'sitemap/xsl/templates/header.php', [ 'utmMedium' => $utmMedium ] ); ?> templates->getTemplate( 'sitemap/xsl/templates/format-priority.php' ); ?> templates->getTemplate( 'sitemap/xsl/templates/empty-sitemap.php', [ 'utmMedium' => $utmMedium, 'items' => [ [ 'title' => __( 'Sitemap Index', 'all-in-one-seo-pack' ), 'url' => $sitemapUrl ] ] ] ); ?>
    all-in-one-seo-pack/app/Common/Views/sitemap/xsl/styles.php000064400000003512151222735770017624 0ustar00 all-in-one-seo-pack/app/Common/Views/sitemap/htaccess-rewrite-rules.php000064400000000735151222735770022103 0ustar00 # START: All in One SEO Sitemap Rewrite Rules # Do not make edits to these rules! RewriteEngine On RewriteRule sitemap(|[0-9]+)\.xml$ /index.php [L] RewriteRule (default|video)-sitemap\.xsl /index.php [L] # END: All in One SEO Sitemap Rewrite Rulesall-in-one-seo-pack/app/Common/Rss.php000064400000033364151222735770013513 0ustar00options->searchAppearance->advanced->crawlCleanup->enable ) { return; } // Control which feed links are visible. remove_action( 'wp_head', 'feed_links_extra', 3 ); add_action( 'wp_head', [ $this, 'rssFeedLinks' ], 3 ); if ( ! aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->global ) { add_filter( 'feed_links_show_posts_feed', '__return_false' ); } if ( ! aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->globalComments ) { add_filter( 'feed_links_show_comments_feed', '__return_false' ); } // Disable feeds that we no longer want on this site. add_action( 'wp', [ $this, 'disableFeeds' ], -1000 ); } /** * Adds content before or after the RSS excerpt. * * @since 4.0.0 * * @param string $content The post excerpt. * @return string The post excerpt with prepended/appended content. */ public function addRssContentExcerpt( $content ) { return $this->addRssContent( $content, 'excerpt' ); } /** * Adds content before or after the RSS post. * * @since 4.0.0 * * @param string $content The post content. * @param string $type Type of feed. * @return string The post content with prepended/appended content. */ public function addRssContent( $content, $type = 'complete' ) { $content = trim( $content ); if ( empty( $content ) ) { return ''; } if ( is_feed() ) { global $wp_query; $isHome = is_home(); if ( $isHome ) { // If this feed is for the static blog page, we must temporarily set "is_home" to false. // Otherwise any getPost() calls will return the blog page object for every post in the feed. $wp_query->is_home = false; } $before = aioseo()->tags->replaceTags( aioseo()->options->rssContent->before, get_the_ID() ); $after = aioseo()->tags->replaceTags( aioseo()->options->rssContent->after, get_the_ID() ); if ( $before || $after ) { if ( 'excerpt' === $type ) { $content = wpautop( $content ); } $content = aioseo()->helpers->decodeHtmlEntities( $before ) . $content . aioseo()->helpers->decodeHtmlEntities( $after ); } // Set back to the original value. $wp_query->is_home = $isHome; } return $content; } /** * Disable feeds we don't want to have on this site. * * @since 4.2.1 * * @return void */ public function disableFeeds() { // This should only run if we are trying to parse a feed. if ( ! is_feed() ) { return; } $rssFeed = get_query_var( 'feed' ); $homeUrl = get_home_url(); // Atom feed. if ( ! aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->atom && 'atom' === $rssFeed ) { $this->redirectRssFeed( $homeUrl ); } // RDF/RSS 1.0 feed. if ( ! aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->rdf && 'rdf' === $rssFeed ) { $this->redirectRssFeed( $homeUrl ); } // Global feed. if ( ! aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->global && [ 'feed' => 'feed' ] === $GLOBALS['wp_query']->query ) { $this->redirectRssFeed( $homeUrl ); } // Global comments feed. if ( ! aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->globalComments && is_comment_feed() && ! ( is_singular() || is_attachment() ) ) { $this->redirectRssFeed( $homeUrl ); } // Static blog page feed. if ( ! aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->staticBlogPage && aioseo()->helpers->getBlogPageId() === get_queried_object_id() ) { $this->redirectRssFeed( $homeUrl ); } // Post comment feeds. if ( ! aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->postComments && is_comment_feed() && is_singular() ) { $this->redirectRssFeed( $homeUrl ); } // Attachment feeds. if ( ! aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->attachments && 'feed' === $rssFeed && get_query_var( 'attachment', false ) ) { $this->redirectRssFeed( $homeUrl ); } // Author feeds. if ( ! aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->authors && is_author() ) { $this->redirectRssFeed( get_author_posts_url( (int) get_query_var( 'author' ) ) ); } // Search results feed. if ( ! aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->search && is_search() ) { $this->redirectRssFeed( esc_url( trailingslashit( $homeUrl ) . '?s=' . get_search_query() ) ); } // All post types. $archives = aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->archives->included; $postType = $this->getTheQueriedPostType(); if ( ! aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->archives->all && ! in_array( $postType, $archives, true ) && is_post_type_archive() ) { $this->redirectRssFeed( get_post_type_archive_link( $postType ) ); } // All taxonomies. $taxonomies = aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->taxonomies->included; $term = get_queried_object(); if ( is_a( $term, 'WP_Term' ) && ! aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->taxonomies->all && ! in_array( $term->taxonomy, $taxonomies, true ) && ( is_category() || is_tag() || is_tax() ) ) { $termUrl = get_term_link( $term, $term->taxonomy ); if ( is_wp_error( $termUrl ) ) { $termUrl = $homeUrl; } $this->redirectRssFeed( $termUrl ); } // Paginated feed pages. This one is last since we are using a regular expression to validate. if ( ! aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->paginated && preg_match( '/(\d+\/|(?<=\/)page\/\d+\/)$/', $_SERVER['REQUEST_URI'] ) ) { $this->redirectRssFeed( $homeUrl ); } } /** * Get the currently queried post type. * * @since 4.2.1 * * @return string The queried post type. */ private function getTheQueriedPostType() { $postType = get_query_var( 'post_type' ); if ( is_array( $postType ) ) { $postType = reset( $postType ); } return $postType; } /** * Redirect the feed to the appropriate URL. * * @since 4.2.1 * * @return void */ private function redirectRssFeed( $url ) { if ( empty( $url ) ) { return; } // Set or remove headers. header_remove( 'Content-Type' ); header_remove( 'Last-Modified' ); header_remove( 'Expires' ); $cache = 'public, max-age=604800, s-maxage=604800, stale-while-revalidate=120, stale-if-error=14400'; if ( is_user_logged_in() ) { $cache = 'private, max-age=0'; } header( 'Cache-Control: ' . $cache, true ); wp_safe_redirect( $url, 301, AIOSEO_PLUGIN_SHORT_NAME ); } /** * Rewrite the RSS feed links. * * @since 4.2.1 * * @param array $args The arguments to filter. * @return void */ public function rssFeedLinks( $args ) { $defaults = [ // Translators: Separator between blog name and feed type in feed links. 'separator' => _x( '-', 'feed link', 'all-in-one-seo-pack' ), // Translators: 1 - Blog name, 2 - Separator (raquo), 3 - Post title. 'singletitle' => __( '%1$s %2$s %3$s Comments Feed', 'all-in-one-seo-pack' ), // Translators: 1 - Blog name, 2 - Separator (raquo), 3 - Category name. 'cattitle' => __( '%1$s %2$s %3$s Category Feed', 'all-in-one-seo-pack' ), // Translators: 1 - Blog name, 2 - Separator (raquo), 3 - Tag name. 'tagtitle' => __( '%1$s %2$s %3$s Tag Feed', 'all-in-one-seo-pack' ), // Translators: 1 - Blog name, 2 - Separator (raquo), 3 - Term name, 4: Taxonomy singular name. 'taxtitle' => __( '%1$s %2$s %3$s %4$s Feed', 'all-in-one-seo-pack' ), // Translators: 1 - Blog name, 2 - Separator (raquo), 3 - Author name. 'authortitle' => __( '%1$s %2$s Posts by %3$s Feed', 'all-in-one-seo-pack' ), // Translators: 1 - Blog name, 2 - Separator (raquo), 3 - Search query. 'searchtitle' => __( '%1$s %2$s Search Results for “%3$s” Feed', 'all-in-one-seo-pack' ), // Translators: 1 - Blog name, 2 - Separator (raquo), 3 - Post type name. 'posttypetitle' => __( '%1$s %2$s %3$s Feed', 'all-in-one-seo-pack' ), ]; $args = wp_parse_args( $args, $defaults ); $attributes = [ 'title' => null, 'href' => null ]; if ( aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->postComments && is_singular() ) { $attributes = $this->getPostCommentsAttributes( $args ); } $archives = aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->archives->included; $postType = $this->getTheQueriedPostType(); if ( ( aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->archives->all || in_array( $postType, $archives, true ) ) && is_post_type_archive() ) { $attributes = $this->getPostTypeArchivesAttributes( $args ); } // All taxonomies. $taxonomies = aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->taxonomies->included; $term = get_queried_object(); if ( $term && isset( $term->taxonomy ) && ( aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->taxonomies->all || in_array( $term->taxonomy, $taxonomies, true ) ) && ( is_category() || is_tag() || is_tax() ) ) { $attributes = $this->getTaxonomiesAttributes( $args, $term ); } if ( aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->authors && is_author() ) { $attributes = $this->getAuthorAttributes( $args ); } if ( aioseo()->options->searchAppearance->advanced->crawlCleanup->feeds->search && is_search() ) { $attributes = $this->getSearchAttributes( $args ); } if ( ! empty( $attributes['title'] ) && ! empty( $attributes['href'] ) ) { echo '' . "\n"; } } /** * Retrieve the attributes for post comments feed. * * @since 4.2.1 * * @param array $args An array of arguments. * @return array An array of attributes. */ private function getPostCommentsAttributes( $args ) { $id = 0; $post = get_post( $id ); $title = null; $href = null; if ( comments_open() || pings_open() || 0 < $post->comment_count ) { $title = sprintf( $args['singletitle'], get_bloginfo( 'name' ), $args['separator'], the_title_attribute( [ 'echo' => false ] ) ); $href = get_post_comments_feed_link( $post->ID ); } return [ 'title' => $title, 'href' => $href ]; } /** * Retrieve the attributes for post type archives feed. * * @since 4.2.1 * * @param array $args An array of arguments. * @return array An array of attributes. */ private function getPostTypeArchivesAttributes( $args ) { $postTypeObject = get_post_type_object( $this->getQueriedPostType() ); $title = sprintf( $args['posttypetitle'], get_bloginfo( 'name' ), $args['separator'], $postTypeObject->labels->name ); $href = get_post_type_archive_feed_link( $postTypeObject->name ); return [ 'title' => $title, 'href' => $href ]; } /** * Retrieve the attributes for taxonomies feed. * * @since 4.2.1 * * @param array $args An array of arguments. * @param \WP_Term $term The term. * @return array An array of attributes. */ private function getTaxonomiesAttributes( $args, $term ) { $title = null; $href = null; if ( is_category() ) { $title = sprintf( $args['cattitle'], get_bloginfo( 'name' ), $args['separator'], $term->name ); $href = get_category_feed_link( $term->term_id ); } if ( is_tag() ) { $title = sprintf( $args['tagtitle'], get_bloginfo( 'name' ), $args['separator'], $term->name ); $href = get_tag_feed_link( $term->term_id ); } if ( is_tax() ) { $tax = get_taxonomy( $term->taxonomy ); $title = sprintf( $args['taxtitle'], get_bloginfo( 'name' ), $args['separator'], $term->name, $tax->labels->singular_name ); $href = get_term_feed_link( $term->term_id, $term->taxonomy ); } return [ 'title' => $title, 'href' => $href ]; } /** * Retrieve the attributes for the author feed. * * @since 4.2.1 * * @param array $args An array of arguments. * @return array An array of attributes. */ private function getAuthorAttributes( $args ) { $authorId = (int) get_query_var( 'author' ); $title = sprintf( $args['authortitle'], get_bloginfo( 'name' ), $args['separator'], get_the_author_meta( 'display_name', $authorId ) ); $href = get_author_feed_link( $authorId ); return [ 'title' => $title, 'href' => $href ]; } /** * Retrieve the attributes for the search feed. * * @since 4.2.1 * * @param array $args An array of arguments. * @return array An array of attributes. */ private function getSearchAttributes( $args ) { $title = sprintf( $args['searchtitle'], get_bloginfo( 'name' ), $args['separator'], get_search_query( false ) ); $href = get_search_feed_link(); return [ 'title' => $title, 'href' => $href ]; } /** * Get the currently queried post type. * * @since 4.2.1 * * @return string The currently queried post type. */ private function getQueriedPostType() { $postType = get_query_var( 'post_type' ); if ( is_array( $postType ) ) { $postType = reset( $postType ); } return $postType; } }all-in-one-seo-pack/app/Lite/Admin/Notices/Notices.php000064400000004706151222735770016447 0ustar00wooUpsellNotice(); } /** * Validates the notification type. * * @since 4.0.0 * * @param string $type The notification type we are targeting. * @return boolean True if yes, false if no. */ public function validateType( $type ) { $validated = parent::validateType( $type ); // Any lite notification should pass here. if ( 'lite' === $type ) { $validated = true; } return $validated; } /** * Add a notice if WooCommerce is detected and not licensed or running Lite. * * @since 4.0.0 * * @return void */ private function wooUpsellNotice() { $notification = Models\Notification::getNotificationByName( 'woo-upsell' ); if ( ! class_exists( 'WooCommerce' ) ) { if ( $notification->exists() ) { Models\Notification::deleteNotificationByName( 'woo-upsell' ); } return; } if ( $notification->exists() ) { return; } Models\Notification::addNotification( [ 'slug' => uniqid(), 'notification_name' => 'woo-upsell', // Translators: 1 - "WooCommerce". 'title' => sprintf( __( 'Advanced %1$s Support', 'all-in-one-seo-pack' ), 'WooCommerce' ), // Translators: 1 - "WooCommerce", 2 - The plugin short name ("AIOSEO"). 'content' => sprintf( __( 'We have detected you are running %1$s. Upgrade to %2$s to unlock our advanced eCommerce SEO features, including SEO for Product Categories and more.', 'all-in-one-seo-pack' ), 'WooCommerce', AIOSEO_PLUGIN_SHORT_NAME . ' Pro' ), // phpcs:ignore Generic.Files.LineLength.MaxExceeded 'type' => 'info', 'level' => [ 'all' ], // Translators: 1 - "Pro". 'button1_label' => sprintf( __( 'Upgrade to %1$s', 'all-in-one-seo-pack' ), 'Pro' ), 'button1_action' => html_entity_decode( apply_filters( 'aioseo_upgrade_link', aioseo()->helpers->utmUrl( AIOSEO_MARKETING_URL . 'lite-upgrade/', 'woo-notification-upsell', false ) ) ), 'start' => gmdate( 'Y-m-d H:i:s' ) ] ); } }all-in-one-seo-pack/app/Lite/Admin/Admin.php000064400000005166151222735770014470 0ustar00connect = new Connect(); } /** * Actually adds the menu items to the admin bar. * * @since 4.0.0 * * @return void */ protected function addAdminBarMenuItems() { // Add an upsell to Pro. if ( current_user_can( $this->getPageRequiredCapability( '' ) ) ) { $this->adminBarMenuItems['aioseo-pro-upgrade'] = [ 'parent' => 'aioseo-main', 'title' => '' . __( 'Upgrade to Pro', 'all-in-one-seo-pack' ) . '', 'id' => 'aioseo-pro-upgrade', 'href' => apply_filters( 'aioseo_upgrade_link', esc_url( admin_url( 'admin.php?page=aioseo-tools&aioseo-redirect-upgrade=1' ) ) ), 'meta' => [ 'target' => '_blank' ], ]; } parent::addAdminBarMenuItems(); } /** * Add the menu inside of WordPress. * * @since 4.0.0 * * @return void */ public function addMenu() { parent::addMenu(); $capability = $this->getPageRequiredCapability( '' ); // We use the global submenu, because we are adding an external link here. if ( current_user_can( $capability ) ) { global $submenu; $submenu[ $this->pageSlug ][] = [ '' . esc_html__( 'Upgrade to Pro', 'all-in-one-seo-pack' ) . '', $capability, apply_filters( 'aioseo_upgrade_link', esc_url( admin_url( 'admin.php?page=aioseo-tools&aioseo-redirect-upgrade=1' ) ) ) ]; } } /** * Check the query args to see if we need to redirect to an external URL. * * @since 4.2.3 * * @return void */ protected function checkForRedirects() { $mappedUrls = [ // Added to resolve an issue with the open_basedir in the IIS. // https://github.com/awesomemotive/aioseo/issues/3243 'aioseo-redirect-upgrade' => apply_filters( 'aioseo_upgrade_link', aioseo()->helpers->utmUrl( AIOSEO_MARKETING_URL . 'lite-upgrade/', 'admin-bar', null, false ) ) ]; foreach ( $mappedUrls as $queryArg => $redirectUrl ) { if ( isset( $_GET[ $queryArg ] ) ) { // phpcs:ignore HM.Security.NonceVerification.Recommended wp_redirect( $redirectUrl ); } } } }all-in-one-seo-pack/app/Lite/Admin/Connect.php000064400000027046151222735770015032 0ustar00loadConnectPro(); return; } $this->loadConnect(); // phpcs:enable } /** * Load the Connect template. * * @since 4.0.0 * * @return void */ private function loadConnect() { $this->enqueueScripts(); $this->connectHeader(); $this->connectContent(); $this->connectFooter(); exit; } /** * Load the Connect Pro template. * * @since 4.0.0 * * @return void */ private function loadConnectPro() { $this->enqueueScriptsPro(); $this->connectHeader(); $this->connectContent(); $this->connectFooter( 'pro' ); exit; } /** * Enqueue's scripts for the setup wizard. * * @since 4.0.0 * * @return void */ public function enqueueScripts() { // We don't want any plugin adding notices to our screens. Let's clear them out here. remove_all_actions( 'admin_notices' ); remove_all_actions( 'all_admin_notices' ); aioseo()->core->assets->load( 'src/vue/standalone/connect/main.js', [], aioseo()->helpers->getVueData() ); } /** * Enqueue's scripts for the setup wizard. * * @since 4.0.0 * * @return void */ public function enqueueScriptsPro() { // We don't want any plugin adding notices to our screens. Let's clear them out here. remove_all_actions( 'admin_notices' ); remove_all_actions( 'all_admin_notices' ); aioseo()->core->assets->load( 'src/vue/standalone/connect-pro/main.js', [], aioseo()->helpers->getVueData() ); } /** * Outputs the simplified header used for the Onboarding Wizard. * * @since 4.0.0 * * @return void */ public function connectHeader() { ?> > <?php // Translators: 1 - The plugin name ("All in One SEO"). echo sprintf( esc_html__( '%1$s › Connect', 'all-in-one-seo-pack' ), esc_html( AIOSEO_PLUGIN_NAME ) ); ?> '; aioseo()->templates->getTemplate( 'admin/settings-page.php' ); echo ''; } /** * Outputs the simplified footer used for the Onboarding Wizard. * * @since 4.0.0 * * @return void */ public function connectFooter( $pro = '' ) { ?> esc_html__( 'You are not allowed to install plugins.', 'all-in-one-seo-pack' ) ]; } if ( empty( $key ) ) { return [ 'error' => esc_html__( 'Please enter your license key to connect.', 'all-in-one-seo-pack' ), ]; } // Verify pro version is not installed. $active = activate_plugin( 'all-in-one-seo-pack-pro/all_in_one_seo_pack_pro', false, false, true ); if ( ! is_wp_error( $active ) ) { // Deactivate plugin. deactivate_plugins( plugin_basename( AIOSEO_FILE ), false, false ); return [ 'error' => esc_html__( 'Pro version is already installed.', 'all-in-one-seo-pack' ) ]; } // Just check if network is set. $network = isset( $_POST['network'] ) ? (bool) wp_unslash( $_POST['network'] ) : false; // phpcs:ignore HM.Security.ValidatedSanitizedInput.InputNotSanitized, HM.Security.NonceVerification.Missing, Generic.Files.LineLength.MaxExceeded $network = ! empty( $network ); // Generate a hash that can be compared after the user is redirected back. $oth = hash( 'sha512', wp_rand() ); $hashedOth = hash_hmac( 'sha512', $oth, wp_salt() ); // Save the options. aioseo()->internalOptions->internal->connect->key = $key; aioseo()->internalOptions->internal->connect->time = time(); aioseo()->internalOptions->internal->connect->network = $network; aioseo()->internalOptions->internal->connect->token = $oth; $url = add_query_arg( [ 'key' => $key, 'network' => $network, 'token' => $hashedOth, 'version' => aioseo()->version, 'siteurl' => admin_url(), 'homeurl' => home_url(), 'endpoint' => admin_url( 'admin-ajax.php' ), 'php' => PHP_VERSION, 'wp' => get_bloginfo( 'version' ), 'redirect' => rawurldecode( base64_encode( $redirect ? $redirect : admin_url( 'admin.php?page=aioseo-settings' ) ) ), 'v' => 1, ], defined( 'AIOSEO_UPGRADE_URL' ) ? AIOSEO_UPGRADE_URL : 'https://upgrade.aioseo.com' ); // We're storing the ID of the user who is installing Pro so that we can add capabilties for him after upgrading. aioseo()->core->cache->update( 'connect_active_user', get_current_user_id(), 15 * MINUTE_IN_SECONDS ); return [ 'url' => $url, ]; } /** * Process AIOSEO Connect. * * @since 1.0.0 * * @return array An array containing a valid response or an error message. */ public function process() { $hashedOth = ! empty( $_POST['token'] ) ? sanitize_text_field( wp_unslash( $_POST['token'] ) ) : ''; // phpcs:ignore HM.Security.NonceVerification.Missing $downloadUrl = ! empty( $_POST['file'] ) ? esc_url_raw( wp_unslash( $_POST['file'] ) ) : ''; // phpcs:ignore HM.Security.NonceVerification.Missing $error = sprintf( // Translators: 1 - The marketing site domain ("aioseo.com"). esc_html__( 'Could not install upgrade. Please download from %1$s and install manually.', 'all-in-one-seo-pack' ), esc_html( AIOSEO_MARKETING_DOMAIN ) ); $success = esc_html__( 'Plugin installed & activated.', 'all-in-one-seo-pack' ); // Check if all required params are present. if ( empty( $downloadUrl ) || empty( $hashedOth ) ) { wp_send_json_error( $error ); } $oth = aioseo()->internalOptions->internal->connect->token; if ( empty( $oth ) ) { wp_send_json_error( $error ); } // Check if the stored hash matches the salted one that is sent back from the server. if ( hash_hmac( 'sha512', $oth, wp_salt() ) !== $hashedOth ) { wp_send_json_error( $error ); } // Delete connect token so we don't replay. aioseo()->internalOptions->internal->connect->token = null; // Verify pro not activated. if ( aioseo()->pro ) { wp_send_json_success( $success ); } // Check license key. $licenseKey = aioseo()->internalOptions->internal->connect->key; if ( ! $licenseKey ) { wp_send_json_error( esc_html__( 'You are not licensed.', 'all-in-one-seo-pack' ) ); } // Set the license key in a new option so we can get it when Pro is activated. aioseo()->internalOptions->internal->validLicenseKey = $licenseKey; require_once ABSPATH . 'wp-admin/includes/file.php'; require_once ABSPATH . 'wp-admin/includes/class-wp-screen.php'; require_once ABSPATH . 'wp-admin/includes/screen.php'; // Set the current screen to avoid undefined notices. set_current_screen( 'toplevel_page_aioseo' ); // Prepare variables. $url = esc_url_raw( add_query_arg( [ 'page' => 'aioseo-settings', ], admin_url( 'admin.php' ) ) ); // Verify pro not installed. $network = aioseo()->internalOptions->internal->connect->network; $active = activate_plugin( 'all-in-one-seo-pack-pro/all_in_one_seo_pack.php', $url, $network, true ); if ( ! is_wp_error( $active ) ) { aioseo()->internalOptions->internal->connect->reset(); // Because the regular activation hooks won't run, we need to add capabilities for the installing user so that he doesn't run into an error on the first request. aioseo()->activate->addCapabilitiesOnUpgrade(); deactivate_plugins( plugin_basename( AIOSEO_FILE ), false, $network ); wp_send_json_success( $success ); } $creds = request_filesystem_credentials( $url, '', false, false, null ); // Check for file system permissions. if ( false === $creds ) { wp_send_json_error( $error ); } $fs = aioseo()->core->fs->noConflict(); $fs->init( $creds ); if ( ! $fs->isWpfsValid() ) { wp_send_json_error( $error ); } // Do not allow WordPress to search/download translations, as this will break JS output. remove_action( 'upgrader_process_complete', [ 'Language_Pack_Upgrader', 'async_upgrade' ], 20 ); // Create the plugin upgrader with our custom skin. $installer = new Utils\PluginUpgraderSilentAjax( new Utils\PluginUpgraderSkin() ); // Error check. if ( ! method_exists( $installer, 'install' ) ) { wp_send_json_error( $error ); } $installer->install( $downloadUrl ); // Flush the cache and return the newly installed plugin basename. wp_cache_flush(); $pluginBasename = $installer->plugin_info(); if ( ! $pluginBasename ) { wp_send_json_error( $error ); } // Activate the plugin silently. $activated = activate_plugin( $pluginBasename, '', $network, true ); if ( is_wp_error( $activated ) ) { wp_send_json_error( esc_html__( 'The Pro version installed correctly, but it needs to be activated from the Plugins page inside your WordPress admin.', 'all-in-one-seo-pack' ) ); } aioseo()->internalOptions->internal->connect->reset(); // Because the regular activation hooks won't run, we need to add capabilities for the installing user so that he doesn't run into an error on the first request. aioseo()->activate->addCapabilitiesOnUpgrade(); deactivate_plugins( plugin_basename( AIOSEO_FILE ), false, $network ); wp_send_json_success( $success ); } }all-in-one-seo-pack/app/Lite/Admin/PostSettings.php000064400000002721151222735770016100 0ustar00helpers->getPublicTaxonomies(); foreach ( $taxonomies as $taxonomy ) { add_action( $taxonomy['name'] . '_edit_form', [ $this, 'addTaxonomyUpsell' ] ); add_action( 'after-' . $taxonomy['name'] . '-table', [ $this, 'addTaxonomyUpsell' ] ); } } } /** * Add Taxonomy Upsell * * @since 4.0.0 * * @return void */ public function addTaxonomyUpsell() { $screen = aioseo()->helpers->getCurrentScreen(); if ( ! isset( $screen->parent_base ) || 'edit' !== $screen->parent_base || empty( $screen->taxonomy ) ) { return; } include_once AIOSEO_DIR . '/app/Lite/Views/taxonomy-upsell.html'; } }all-in-one-seo-pack/app/Lite/Admin/Usage.php000064400000001116151222735770014473 0ustar00enabled = aioseo()->options->advanced->usageTracking; } /** * Get the type for the request. * * @since 4.0.0 * * @return string The install type. */ public function getType() { return 'lite'; } }all-in-one-seo-pack/app/Lite/Api/Api.php000064400000001351151222735770013622 0ustar00routes, $this->liteRoutes ); } }all-in-one-seo-pack/app/Lite/Api/Wizard.php000064400000002124151222735770014350 0ustar00get_json_params(); $section = ! empty( $body['section'] ) ? sanitize_text_field( $body['section'] ) : null; $wizard = ! empty( $body['wizard'] ) ? $body['wizard'] : null; // Save the smart recommendations section. if ( 'smartRecommendations' === $section && ! empty( $wizard['smartRecommendations'] ) ) { $smartRecommendations = $wizard['smartRecommendations']; if ( isset( $smartRecommendations['usageTracking'] ) ) { aioseo()->options->advanced->usageTracking = $smartRecommendations['usageTracking']; } } return $response; } }all-in-one-seo-pack/app/Lite/Main/Filters.php000064400000005022151222735770014673 0ustar00 [ // Translators: This is an action link users can click to open a feature request. 'label' => __( 'Suggest a Feature', 'all-in-one-seo-pack' ), 'url' => aioseo()->helpers->utmUrl( AIOSEO_MARKETING_URL . 'suggest-a-feature/', 'plugin-row-meta', 'Feature' ), ] ]; return $this->parseActionLinks( $actions, $pluginFile, $actionLinks ); } /** * Registers our action links for the plugins page. * * @since 4.0.0 * * @param array $actions List of existing actions. * @param string $pluginFile The plugin file. * @return array List of action links. */ public function pluginActionLinks( $actions, $pluginFile = '' ) { $actionLinks = [ 'settings' => [ 'label' => __( 'SEO Settings', 'all-in-one-seo-pack' ), 'url' => get_admin_url( null, 'admin.php?page=aioseo-settings' ), ], 'support' => [ // Translators: This is an action link users can click to open our premium support. 'label' => __( 'Support', 'all-in-one-seo-pack' ), 'url' => aioseo()->helpers->utmUrl( AIOSEO_MARKETING_URL . 'contact/', 'plugin-action-links', 'Support' ), ], 'docs' => [ // Translators: This is an action link users can click to open our general documentation page. 'label' => __( 'Documentation', 'all-in-one-seo-pack' ), 'url' => aioseo()->helpers->utmUrl( AIOSEO_MARKETING_URL . 'docs/', 'plugin-action-links', 'Documentation' ), ], 'proupgrade' => [ // Translators: This is an action link users can click to purchase a license for All in One SEO Pro. 'label' => __( 'Upgrade to Pro', 'all-in-one-seo-pack' ), 'url' => apply_filters( 'aioseo_upgrade_link', aioseo()->helpers->utmUrl( AIOSEO_MARKETING_URL . 'lite-upgrade/', 'plugin-action-links', 'Upgrade', false ) ), ] ]; if ( isset( $actions['edit'] ) ) { unset( $actions['edit'] ); } return $this->parseActionLinks( $actions, $pluginFile, $actionLinks, 'before' ); } }all-in-one-seo-pack/app/Lite/Options/InternalOptions.php000064400000002071151222735770017163 0ustar00 [ 'activated' => [ 'type' => 'number', 'default' => 0 ], 'firstActivated' => [ 'type' => 'number', 'default' => 0 ], 'installed' => [ 'type' => 'number', 'default' => 0 ], 'connect' => [ 'key' => [ 'type' => 'string' ], 'time' => [ 'type' => 'number', 'default' => 0 ], 'network' => [ 'type' => 'boolean', 'default' => false ], 'token' => [ 'type' => 'string' ] ] ] // phpcs:enable WordPress.Arrays.ArrayDeclarationSpacing.AssociativeArrayFound ]; }all-in-one-seo-pack/app/Lite/Options/Options.php000064400000001277151222735770015475 0ustar00 [ 'usageTracking' => [ 'type' => 'boolean', 'default' => false ] ] // phpcs:enable WordPress.Arrays.ArrayDeclarationSpacing.AssociativeArrayFound ]; }all-in-one-seo-pack/app/Lite/Traits/Options.php000064400000005230151222735770015301 0ustar00getDbOptions( $this->optionsName . '_lite' ); // Refactor options. $this->defaultsMerged = array_replace_recursive( $this->defaults, $this->liteDefaults ); $mergedDefaults = array_replace_recursive( $this->liteDefaults, $this->addValueToValuesArray( $this->liteDefaults, $dbOptions ) ); $cachedOptions = aioseo()->core->optionsCache->getOptions( $this->optionsName ); $dbOptions = array_replace_recursive( $cachedOptions, $mergedDefaults ); aioseo()->core->optionsCache->setOptions( $this->optionsName, $dbOptions ); } /** * Merge defaults with liteDefaults. * * @since 4.1.4 * * @return array An array of dafults. */ public function getDefaults() { return array_replace_recursive( parent::getDefaults(), $this->liteDefaults ); } /** * Updates the options in the database. * * @since 4.1.4 * * @param string $optionsName An optional option name to update. * @param string $defaults The defaults to filter the options by. * @param array|null $options An optional options array. * @return void */ public function update( $optionsName = null, $defaults = null, $options = null ) { $optionsName = empty( $optionsName ) ? $this->optionsName . '_lite' : $optionsName; $defaults = empty( $defaults ) ? $this->liteDefaults : $defaults; // We're creating a new array here because it was setting it by reference. $cachedOptions = aioseo()->core->optionsCache->getOptions( $this->optionsName ); $optionsBefore = json_decode( wp_json_encode( $cachedOptions ), true ); parent::update( $this->optionsName, $options ); parent::update( $optionsName, $defaults, $optionsBefore ); } /** * Updates the options in the database. * * @since 4.1.4 * * @param boolean $force Whether or not to force an immediate save. * @param string $optionsName An optional option name to update. * @param string $defaults The defaults to filter the options by. * @return void */ public function save( $force = false, $optionsName = null, $defaults = null ) { if ( ! $this->shouldSave && ! $force ) { return; } $optionsName = empty( $optionsName ) ? $this->optionsName . '_lite' : $optionsName; $defaults = empty( $defaults ) ? $this->liteDefaults : $defaults; parent::save( $force, $this->optionsName ); parent::save( $force, $optionsName, $defaults ); } }all-in-one-seo-pack/app/Lite/Utils/Helpers.php000064400000001314151222735770015101 0ustar00 #poststuff.aioseo-taxonomy-upsell { min-width: auto; overflow: hidden; }

    AIOSEO Settings

    General
    Social
    Redirects
    Advanced
    Snippet Preview
    https://aioseo.com/category/uncategorized/
    Taxonomy Title | aioseo.com
    Sample taxonomy description
    Category Title
    Click on the tags below to insert variables into your title.
    Category Title
    Separator
    Site Title
    View all tags →
    Category Description
    Category Description
    Current or first category description.
    Category Title
    Category Title
    Current or first category title.
    Current Date
    Current Date
    The current date, localized.
    Current Day
    Current Day
    The current day of the month, localized.
    Current Month
    Current Month
    The current month, localized.
    Current Year
    Current Year
    The current year, localized.
    Custom Field
    Custom Field
    A custom field from the current page/post.
    Permalink
    Permalink
    The permalink for the current page/post.
    Separator
    Separator
    The separator defined in the search appearance settings.
    Site Title
    Site Title
    Your site title.
    Tagline
    Tagline
    The tagline for your site, set in the general settings.
    Meta Description
    Click on the tags below to insert variables into your meta description.
    Category Title
    Separator
    Category Description
    View all tags →
    Category Description
    Category Description
    Current or first category description.
    Category Title
    Category Title
    Current or first category title.
    Current Date
    Current Date
    The current date, localized.
    Current Day
    Current Day
    The current day of the month, localized.
    Current Month
    Current Month
    The current month, localized.
    Current Year
    Current Year
    The current year, localized.
    Custom Field
    Custom Field
    A custom field from the current page/post.
    Permalink
    Permalink
    The permalink for the current page/post.
    Separator
    Separator
    The separator defined in the search appearance settings.
    Site Title
    Site Title
    Your site title.
    Tagline
    Tagline
    The tagline for your site, set in the general settings.
    This feature is only available for licensed AIOSEO Pro users.
    AIOSEO Pro allows you to set custom SEO titles and descriptions for taxonomies as well as social meta and Open Graph data for search engines.
    Social Meta
    SEO Title/Description
    Upgrade to Pro and Unlock Custom Taxonomies Learn more about all features
    all-in-one-seo-pack/app/init/activation.php000064400000003744151222735770014617 0ustar00core->cache->update( 'lite_just_activated', true ); } } if ( ! function_exists( 'aioseo_lite_just_deactivated' ) ) { /** * Store temporarily that Lite plugin was deactivated. * Convert temporary "activated" value to a global variable, * so it is available through the request. Remove from the storage. * * @since 4.0.0 */ function aioseo_lite_just_deactivated() { global $aioseoLiteJustActivated, $aioseoLiteJustDeactivated; $aioseoLiteJustActivated = (bool) aioseo()->core->cache->get( 'lite_just_activated' ); $aioseoLiteJustDeactivated = true; aioseo()->core->cache->delete( 'lite_just_activated' ); } } if ( ! function_exists( 'aioseo_pro_just_activated' ) ) { /** * Store temporarily that the Pro version of the plugin was activated. * This is needed because when we activate the Pro version on top * of the Lite version, it does not trigger the activation hook in Pro. * * @since 4.0.0 */ function aioseo_pro_just_activated() { $liteActivated = is_plugin_active( 'all-in-one-seo-pack/all_in_one_seo_pack.php' ); if ( $liteActivated ) { // Add capabilities for the current user on upgrade so that the menu is visible on the first request. aioseo()->activate->addCapabilitiesOnUpgrade(); aioseo()->core->cache->update( 'pro_just_deactivated_lite', true ); } } } // If we detect that V3 is active, let's deactivate it now. if ( defined( 'AIOSEOP_VERSION' ) && defined( 'AIOSEO_PLUGIN_FILE' ) ) { require_once ABSPATH . 'wp-admin/includes/plugin.php'; deactivate_plugins( plugin_basename( AIOSEO_PLUGIN_FILE ) ); }all-in-one-seo-pack/app/init/blocks.js000064400000002403151222735770013547 0ustar00/** * Since we dynamically load our blocks, wordpress.org cannot pick them up properly. * This file solely exists to let WordPress know what blocks we are currently using. * * @since 4.2.4 */ /* eslint-disable no-undef */ registerBlockType('aioseo/breadcrumbs', { title : 'AIOSEO - Breadcrumbs' }) registerBlockType('aioseo/html-sitemap', { title : 'AIOSEO - HTML Sitemap' }) registerBlockType('aioseo/faq', { title : 'AIOSEO - FAQ with JSON Schema' }) registerBlockType('aioseo/table-of-contents', { title : 'AIOSEO - Table of Contents' }) registerBlockType('aioseo/businessinfo', { title : 'AIOSEO - Local Business Info' }) registerBlockType('aioseo/locationcategories', { title : 'AIOSEO - Local Business Location Categories' }) registerBlockType('aioseo/locations', { title : 'AIOSEO - Local Business Locations' }) registerBlockType('aioseo/locationmap', { title : 'AIOSEO - Local Business Google Map' }) registerBlockType('aioseo/openinghours', { title : 'AIOSEO - Local Business Opening Hours' }) registerBlockType('aioseo/openinghours', { title : 'AIOSEO - Author Bio (E-E-A-T)' }) registerBlockType('aioseo/openinghours', { title : 'AIOSEO - Author Name (E-E-A-T)' }) registerBlockType('aioseo/openinghours', { title : 'AIOSEO - Reviewer Name (E-E-A-T)' })all-in-one-seo-pack/app/init/init.php000064400000001753151222735770013417 0ustar00

    ', '', '', '' ), array( 'a' => array( 'href' => array(), 'target' => array(), 'rel' => array(), ), 'strong' => array(), ) ); ?>

    ', '', 'AIOSEO', '', // phpcs:ignore Generic.Files.LineLength.MaxExceeded '' ), array( 'a' => array( 'href' => array(), 'target' => array(), 'rel' => array(), ), 'strong' => array(), ) ); ?>

    ', '', 'AIOSEO', '', '' ), array( 'a' => array( 'href' => array(), 'target' => array(), 'rel' => array(), ), 'strong' => array(), ) ); ?>

    ', '', PHP_VERSION, date( 'Y' ), 'AIOSEO', '', // phpcs:ignore Generic.Files.LineLength.MaxExceeded '' ), array( 'a' => array( 'href' => array(), 'target' => array(), 'rel' => array(), ), 'strong' => array(), ) ); ?>

    ', '', 'All in One SEO' ), array( 'strong' => array(), ) ); ?>

    ', '', 'AIOSEO', date( 'Y' ), '', // phpcs:ignore Generic.Files.LineLength.MaxExceeded '' ), array( 'a' => array( 'href' => array(), 'target' => array(), 'rel' => array(), ), 'strong' => array(), ) ); ?>

    %1$s

    %2$s

    ', esc_html__( 'Heads up!', 'all-in-one-seo-pack' ), // Translators: 1 - "AIOSEO Pro", 2 - "AIOSEO Lite". sprintf( esc_html__( 'Your site already has %1$s activated. If you want to switch to %2$s, please first go to Plugins > Installed Plugins and deactivate %1$s. Then, you can activate %2$s.', 'all-in-one-seo-pack' ), 'AIOSEO Pro', 'AIOSEO Lite' ) // phpcs:ignore Generic.Files.LineLength.MaxExceeded ); if ( isset( $_GET['activate'] ) ) { // phpcs:ignore HM.Security.NonceVerification.Recommended unset( $_GET['activate'] ); } unset( $aioseoLiteJustActivated, $aioseoLiteJustDeactivated ); } }all-in-one-seo-pack/app/AIOSEOAbstract.php000064400000023543151222735770014155 0ustar00init(); // Load our addons on the action right after plugins_loaded. add_action( 'sanitize_comment_cookies', [ self::$instance, 'loadAddons' ] ); } return self::$instance; } /** * Initialize All in One SEO! * * @since 4.0.0 * * @return void */ private function init() { $this->constants(); $this->includes(); $this->preLoad(); if ( ! $this->core->isUninstalling() ) { $this->load(); } } /** * Setup plugin constants. * All the path/URL related constants are defined in main plugin file. * * @since 4.0.0 * * @return void */ private function constants() { $defaultHeaders = [ 'name' => 'Plugin Name', 'version' => 'Version', ]; $pluginData = get_file_data( AIOSEO_FILE, $defaultHeaders ); $constants = [ 'AIOSEO_PLUGIN_BASENAME' => plugin_basename( AIOSEO_FILE ), 'AIOSEO_PLUGIN_NAME' => $pluginData['name'], 'AIOSEO_PLUGIN_SHORT_NAME' => 'AIOSEO', 'AIOSEO_PLUGIN_URL' => plugin_dir_url( AIOSEO_FILE ), 'AIOSEO_VERSION' => $pluginData['version'], 'AIOSEO_MARKETING_URL' => 'https://aioseo.com/', 'AIOSEO_MARKETING_DOMAIN' => 'aioseo.com' ]; foreach ( $constants as $constant => $value ) { if ( ! defined( $constant ) ) { define( $constant, $value ); } } $this->version = AIOSEO_VERSION; } /** * Including the new files with PHP 5.3 style. * * @since 4.0.0 * * @return void */ private function includes() { $dependencies = [ '/vendor/autoload.php' => true, '/vendor/woocommerce/action-scheduler/action-scheduler.php' => true, '/vendor/jwhennessey/phpinsight/autoload.php' => false, '/vendor_prefixed/monolog/monolog/src/Monolog/Logger.php' => false ]; foreach ( $dependencies as $path => $shouldRequire ) { if ( ! file_exists( AIOSEO_DIR . $path ) ) { // Something is not right. status_header( 500 ); wp_die( esc_html__( 'Plugin is missing required dependencies. Please contact support for more information.', 'all-in-one-seo-pack' ) ); } if ( $shouldRequire ) { require_once AIOSEO_DIR . $path; } } $this->loadVersion(); } /** * Load the version of the plugin we are currently using. * * @since 4.1.9 * * @return void */ private function loadVersion() { $proDir = is_dir( plugin_dir_path( AIOSEO_FILE ) . 'app/Pro' ); if ( ! class_exists( '\Dotenv\Dotenv' ) || ! file_exists( AIOSEO_DIR . '/build/.env' ) ) { $this->pro = $proDir; $this->versionPath = $proDir ? 'Pro' : 'Lite'; return; } $dotenv = \Dotenv\Dotenv::createUnsafeImmutable( AIOSEO_DIR, '/build/.env' ); $dotenv->load(); $version = defined( 'AIOSEO_DEV_VERSION' ) ? strtolower( AIOSEO_DEV_VERSION ) : strtolower( getenv( 'VITE_VERSION' ) ); if ( ! empty( $version ) ) { $this->isDev = true; if ( file_exists( AIOSEO_DIR . '/build/filters.php' ) ) { require_once AIOSEO_DIR . '/build/filters.php'; } } if ( $proDir && 'pro' === $version ) { $this->pro = true; $this->versionPath = 'Pro'; } } /** * Runs before we load the plugin. * * @since 4.0.0 * * @return void */ private function preLoad() { $this->core = new Common\Core\Core(); $this->backwardsCompatibility(); // Internal Options. $this->helpers = $this->pro ? new Pro\Utils\Helpers() : new Lite\Utils\Helpers(); $this->internalNetworkOptions = ( $this->pro && $this->helpers->isPluginNetworkActivated() ) ? new Pro\Options\InternalNetworkOptions() : new Common\Options\InternalNetworkOptions(); $this->internalOptions = $this->pro ? new Pro\Options\InternalOptions() : new Lite\Options\InternalOptions(); // Run pre-updates. $this->preUpdates = $this->pro ? new Pro\Main\PreUpdates() : new Common\Main\PreUpdates(); } /** * To prevent errors and bugs from popping up, * we will run this backwards compatibility method. * * @since 4.1.9 * * @return void */ private function backwardsCompatibility() { $this->db = $this->core->db; $this->cache = $this->core->cache; $this->transients = $this->cache; $this->cachePrune = $this->core->cachePrune; $this->optionsCache = $this->core->optionsCache; } /** * To prevent errors and bugs from popping up, * we will run this backwards compatibility method. * * @since 4.2.0 * * @return void */ private function backwardsCompatibilityLoad() { $this->postSettings->integrations = $this->standalone->pageBuilderIntegrations; } /** * Load our classes. * * @since 4.0.0 * * @return void */ public function load() { // Load external translations if this is a Pro install. if ( $this->pro ) { $translations = new Pro\Main\Translations( 'plugin', 'all-in-one-seo-pack', 'https://aioseo.com/aioseo-plugin/all-in-one-seo-pack/packages.json' ); $translations->init(); $translations = new Pro\Main\Translations( 'plugin', 'aioseo-pro', 'https://aioseo.com/aioseo-plugin/aioseo-pro/packages.json' ); $translations->init(); } $this->addons = $this->pro ? new Pro\Utils\Addons() : new Common\Utils\Addons(); $this->features = $this->pro ? new Pro\Utils\Features() : new Common\Utils\Features(); $this->tags = $this->pro ? new Pro\Utils\Tags() : new Common\Utils\Tags(); $this->blocks = new Common\Utils\Blocks(); $this->badBotBlocker = new Common\Tools\BadBotBlocker(); $this->breadcrumbs = $this->pro ? new Pro\Breadcrumbs\Breadcrumbs() : new Common\Breadcrumbs\Breadcrumbs(); $this->dynamicBackup = $this->pro ? new Pro\Options\DynamicBackup() : new Common\Options\DynamicBackup(); $this->options = $this->pro ? new Pro\Options\Options() : new Lite\Options\Options(); $this->networkOptions = ( $this->pro && $this->helpers->isPluginNetworkActivated() ) ? new Pro\Options\NetworkOptions() : new Common\Options\NetworkOptions(); $this->dynamicOptions = $this->pro ? new Pro\Options\DynamicOptions() : new Common\Options\DynamicOptions(); $this->backup = new Common\Utils\Backup(); $this->access = $this->pro ? new Pro\Utils\Access() : new Common\Utils\Access(); $this->usage = $this->pro ? new Pro\Admin\Usage() : new Lite\Admin\Usage(); $this->siteHealth = $this->pro ? new Pro\Admin\SiteHealth() : new Common\Admin\SiteHealth(); $this->networkLicense = $this->pro && $this->helpers->isPluginNetworkActivated() ? new Pro\Admin\NetworkLicense() : null; $this->license = $this->pro ? new Pro\Admin\License() : null; $this->autoUpdates = $this->pro ? new Pro\Admin\AutoUpdates() : null; $this->updates = $this->pro ? new Pro\Main\Updates() : new Common\Main\Updates(); $this->meta = $this->pro ? new Pro\Meta\Meta() : new Common\Meta\Meta(); $this->social = $this->pro ? new Pro\Social\Social() : new Common\Social\Social(); $this->robotsTxt = new Common\Tools\RobotsTxt(); $this->htaccess = new Common\Tools\Htaccess(); $this->term = $this->pro ? new Pro\Admin\Term() : null; $this->notices = $this->pro ? new Pro\Admin\Notices\Notices() : new Lite\Admin\Notices\Notices(); $this->wpNotices = new Common\Admin\Notices\WpNotices(); $this->admin = $this->pro ? new Pro\Admin\Admin() : new Lite\Admin\Admin(); $this->networkAdmin = $this->helpers->isPluginNetworkActivated() ? ( $this->pro ? new Pro\Admin\NetworkAdmin() : new Common\Admin\NetworkAdmin() ) : null; $this->activate = $this->pro ? new Pro\Main\Activate() : new Common\Main\Activate(); $this->conflictingPlugins = $this->pro ? new Pro\Admin\ConflictingPlugins() : new Common\Admin\ConflictingPlugins(); $this->migration = $this->pro ? new Pro\Migration\Migration() : new Common\Migration\Migration(); $this->importExport = $this->pro ? new Pro\ImportExport\ImportExport() : new Common\ImportExport\ImportExport(); $this->sitemap = $this->pro ? new Pro\Sitemap\Sitemap() : new Common\Sitemap\Sitemap(); $this->htmlSitemap = new Common\Sitemap\Html\Sitemap(); $this->templates = $this->pro ? new Pro\Utils\Templates() : new Common\Utils\Templates(); $this->categoryBase = $this->pro ? new Pro\Main\CategoryBase() : null; $this->postSettings = $this->pro ? new Pro\Admin\PostSettings() : new Lite\Admin\PostSettings(); $this->standalone = new Common\Standalone\Standalone(); $this->searchStatistics = $this->pro ? new Pro\SearchStatistics\SearchStatistics() : new Common\SearchStatistics\SearchStatistics(); $this->slugMonitor = new Common\Admin\SlugMonitor(); $this->schema = $this->pro ? new Pro\Schema\Schema() : new Common\Schema\Schema(); $this->actionScheduler = new Common\Utils\ActionScheduler(); $this->seoRevisions = $this->pro ? new Pro\SeoRevisions\SeoRevisions() : new Common\SeoRevisions\SeoRevisions(); $this->ai = $this->pro ? new Pro\Ai\Ai() : null; $this->filters = $this->pro ? new Pro\Main\Filters() : new Lite\Main\Filters(); $this->crawlCleanup = new Common\QueryArgs\CrawlCleanup(); if ( ! wp_doing_ajax() && ! wp_doing_cron() ) { $this->rss = new Common\Rss(); $this->main = $this->pro ? new Pro\Main\Main() : new Common\Main\Main(); $this->head = $this->pro ? new Pro\Main\Head() : new Common\Main\Head(); $this->dashboard = $this->pro ? new Pro\Admin\Dashboard() : new Common\Admin\Dashboard(); $this->api = $this->pro ? new Pro\Api\Api() : new Lite\Api\Api(); $this->help = new Common\Help\Help(); } $this->backwardsCompatibilityLoad(); if ( wp_doing_ajax() ) { add_action( 'init', [ $this, 'loadAjaxInit' ], 999 ); return; } if ( wp_doing_cron() ) { return; } add_action( 'init', [ $this, 'loadInit' ], 999 ); } /** * Things that need to load after init, on AJAX requests. * * @since 4.2.4 * * @return void */ public function loadAjaxInit() { $this->addons->registerUpdateCheck(); } /** * Things that need to load after init. * * @since 4.0.0 * * @return void */ public function loadInit() { $this->settings = new Common\Utils\VueSettings( '_aioseo_settings' ); $this->sitemap->init(); $this->sitemap->ping->init(); $this->badBotBlocker->init(); // We call this again to reset any post types/taxonomies that have not yet been set up. $this->dynamicOptions->refresh(); if ( ! $this->pro ) { return; } $this->addons->registerUpdateCheck(); } /** * Loads our addons. * * Runs right after the plugins_loaded hook. * * @since 4.0.0 * * @return void */ public function loadAddons() { do_action( 'aioseo_loaded' ); } } } namespace { // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * The function which returns the one AIOSEO instance. * * @since 4.0.0 * * @return AIOSEO\Plugin\AIOSEO The instance. */ function aioseo() { return AIOSEO\Plugin\AIOSEO::instance(); } }all-in-one-seo-pack/dist/Lite/assets/css/AboutUs.BYmeY2j7.css000064400000010164151222735770017551 0ustar00.aioseo-app .aioseo-about-us .aioseo-about-us-welcome,.aioseo-app .aioseo-about-us .aioseo-about-us-plugins{margin-top:var(--aioseo-gutter);width:100%}.aioseo-app .aioseo-about-us .aioseo-about-us-welcome,.aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin .plugin-main,.aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin .plugin-footer{background-color:#fff;box-shadow:0 2px 5px #0000000d;border:1px solid #E8E8EB}.aioseo-app .aioseo-about-us .aioseo-about-us-welcome{display:flex;align-items:center;gap:calc(var(--aioseo-gutter) * 2);padding:calc(var(--aioseo-gutter) * 2);font-size:14px;color:#141b38}@media only screen and (max-width: 1042px){.aioseo-app .aioseo-about-us .aioseo-about-us-welcome{flex-direction:column}}.aioseo-app .aioseo-about-us .aioseo-about-us-welcome .welcome-intro{flex:2 2 auto}.aioseo-app .aioseo-about-us .aioseo-about-us-welcome .welcome-intro div{line-height:1.5}.aioseo-app .aioseo-about-us .aioseo-about-us-welcome .welcome-intro div+div{margin-top:20px}.aioseo-app .aioseo-about-us .aioseo-about-us-welcome .welcome-intro div:first-of-type{font-size:24px;line-height:30px;font-weight:600;margin:0 0 20px}.aioseo-app .aioseo-about-us .aioseo-about-us-welcome .welcome-image{text-align:center}.aioseo-app .aioseo-about-us .aioseo-about-us-welcome .welcome-image figure{margin:0}.aioseo-app .aioseo-about-us .aioseo-about-us-welcome .welcome-image img{max-width:100%}.aioseo-app .aioseo-about-us .aioseo-about-us-welcome .welcome-image figcaption{margin:16px 0 0;color:#8c8f9a}.aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin{display:flex;flex-direction:column;font-size:14px;line-height:24px}.aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin .plugin-main{display:flex;flex-direction:row;padding:22px;flex-grow:1}.aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin .plugin-main img{width:50px;max-width:50px;max-height:50px}[dir=ltr] .aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin .plugin-main img{margin:0 30px 0 0}[dir=rtl] .aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin .plugin-main img{margin:0 0 0 30px}.aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin .plugin-main .main-name{margin:0 0 10px;font-size:14px;font-weight:700;color:#141b38}.aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin .plugin-footer{display:flex;justify-content:space-between;align-items:center;padding:12px}.aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin .plugin-footer .footer-status{font-size:14px;line-height:22px;font-weight:700}.aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin .plugin-footer .footer-status div{display:inline-block}[dir=ltr] .aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin .plugin-footer .footer-status div{margin-right:12px}[dir=rtl] .aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin .plugin-footer .footer-status div{margin-left:12px}.aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin .plugin-footer .footer-status .footer-status-label{color:#8c8f9a}.aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin .plugin-footer .footer-status .footer-status-not-installed{color:#434960}.aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin .plugin-footer .footer-status .footer-status-deactivated{color:#df2a4a}.aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin .plugin-footer .footer-status .footer-status-activated{color:#00aa63}.aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin .plugin-footer .footer-action button,.aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin .plugin-footer .footer-action a{width:fit-content;height:fit-content;padding:7px 14px;font-size:inherit;font-size:12px;line-height:18px}.aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin .plugin-footer .footer-action .aioseo-button svg.aioseo-external{width:14px;height:14px}[dir=ltr] .aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin .plugin-footer .footer-action .aioseo-button svg.aioseo-external{margin-right:10px}[dir=rtl] .aioseo-app .aioseo-about-us .aioseo-about-us-plugins .plugin .plugin-footer .footer-action .aioseo-button svg.aioseo-external{margin-left:10px} all-in-one-seo-pack/dist/Lite/assets/css/AccessControl.C6qUrO7K.css000064400000000126151222735770020677 0ustar00.aioseo-access-control-lite .aioseo-card .content{position:relative;min-height:500px} all-in-one-seo-pack/dist/Lite/assets/css/AdditionalInformation.By5MTd2n.css000064400000002741151222735770022443 0ustar00.aioseo-wizard-additional-information .schema-graph-name .aioseo-input,.aioseo-wizard-additional-information .schema-graph-contact-type-manual .aioseo-input{max-width:600px}.aioseo-wizard-additional-information .schema-graph-contact-type .aioseo-select{max-width:300px}.aioseo-wizard-additional-information .person-chooser{max-width:600px}.aioseo-wizard-additional-information .person-chooser .person-label{display:flex;align-items:center}.aioseo-wizard-additional-information .person-chooser .person-label .person-avatar{height:30px}[dir=ltr] .aioseo-wizard-additional-information .person-chooser .person-label .person-avatar{margin-right:16px}[dir=rtl] .aioseo-wizard-additional-information .person-chooser .person-label .person-avatar{margin-left:16px}.aioseo-wizard-additional-information .person-chooser .person-label .person-avatar img{height:30px;width:30px;border-radius:50%}.aioseo-wizard-additional-information .go-back a{color:#434960;font-size:14px}.aioseo-wizard-additional-information .social-profiles:not(.show-more) .aioseo-social-profile-list .aioseo-settings-row:nth-child(n+5){display:none}.aioseo-wizard-additional-information .social-profiles:not(.show-more) .show-more-link{display:inline-block}.aioseo-wizard-additional-information .social-profiles:not(.show-more) .same-username .use-same .profiles .aioseo-col:nth-child(n+5){display:none}.aioseo-wizard-additional-information .social-profiles .show-more-link{display:none;margin-top:16px;cursor:pointer;text-decoration:underline} all-in-one-seo-pack/dist/Lite/assets/css/AdditionalPages.Cgj5DUpu.css000064400000016244151222735770021302 0ustar00.aioseo-additional-pages .additional-pages-input{border:1px solid #D0D1D7;border-radius:3px;margin-bottom:var(--aioseo-gutter)}.aioseo-additional-pages .additional-pages-input .append-icon{width:60px;justify-content:flex-end}.aioseo-additional-pages .additional-pages-input .append-icon svg{max-width:16px}[dir=ltr] .aioseo-additional-pages .additional-pages-input .append-icon svg{margin-right:5px}[dir=rtl] .aioseo-additional-pages .additional-pages-input .append-icon svg{margin-left:5px}.aioseo-additional-pages .additional-pages-input .append-icon svg.aioseo-circle-check{color:#00aa63}.aioseo-additional-pages .additional-pages-input .append-icon svg.aioseo-circle-close{color:#df2a4a}.aioseo-additional-pages .additional-pages-input .page-input-header{height:50px;display:flex;font-size:14px;color:#434960;padding:16px;align-items:center;border-bottom:1px solid #D0D1D7}.aioseo-additional-pages .additional-pages-input .page-input-header>div{flex:1 0 auto}.aioseo-additional-pages .additional-pages-input .page-priority,.aioseo-additional-pages .additional-pages-input .page-frequency{max-width:160px}.aioseo-additional-pages .additional-pages-input .page-last-modified{max-width:200px}.aioseo-additional-pages .additional-pages-input .page-row{min-height:70px;display:flex;padding:16px;background-color:#f9f9fa}.aioseo-additional-pages .additional-pages-input .page-row>div{flex:1 0 auto}[dir=ltr] .aioseo-additional-pages .additional-pages-input .page-row>div{padding-right:16px}[dir=rtl] .aioseo-additional-pages .additional-pages-input .page-row>div{padding-left:16px}[dir=ltr] .aioseo-additional-pages .additional-pages-input .page-row>div:last-child{padding-right:0}[dir=rtl] .aioseo-additional-pages .additional-pages-input .page-row>div:last-child{padding-left:0}.aioseo-additional-pages .additional-pages-input .page-input-footer{border-top:1px solid #D0D1D7;padding:9px 16px}[dir=ltr] .aioseo-additional-pages .additional-pages-input .page-input-footer button{margin-right:16px}[dir=rtl] .aioseo-additional-pages .additional-pages-input .page-input-footer button{margin-left:16px}.aioseo-additional-pages .in-table{padding:0 24px;border:none}.aioseo-additional-pages .in-table .page-row{background-color:transparent;padding:0;min-height:auto;margin-bottom:16px;height:40px}.aioseo-additional-pages .in-table .page-input-footer{border-top:none;text-align:end;padding:0}[dir=ltr] .aioseo-additional-pages .in-table .page-input-footer button{margin-right:0;margin-left:16px}[dir=rtl] .aioseo-additional-pages .in-table .page-input-footer button{margin-left:0;margin-right:16px}.aioseo-additional-pages .aioseo-alert{margin-top:10px}.aioseo-add-additional-pages-modal .aioseo-modal-body.delete{margin:20px 0 50px}.aioseo-add-additional-pages-modal .aioseo-modal-body.import-additional-pages{padding:24px;align-items:flex-start}.aioseo-add-additional-pages-modal .aioseo-modal-body.import-additional-pages>.aioseo-button{margin-top:0}.aioseo-add-additional-pages-modal .aioseo-modal-body.import-additional-pages>.import-error{margin-top:24px;margin-bottom:0}.aioseo-add-additional-pages-modal .aioseo-modal-body.import-additional-pages .alert{padding:12px;background-color:#fcfae8;border:1px solid #F18200;border-radius:4px;margin-bottom:12px}.aioseo-add-additional-pages-modal .aioseo-modal-body.import-additional-pages .alert p{margin:0 0 20px}.aioseo-add-additional-pages-modal .aioseo-modal-body.import-additional-pages .alert p,.aioseo-add-additional-pages-modal .aioseo-modal-body.import-additional-pages .alert a{font-size:14px}.aioseo-add-additional-pages-modal .aioseo-alert.medium{padding:7px 16px}.aioseo-add-additional-pages-modal .import-error{margin-bottom:20px;display:inline-flex;align-items:center;width:100%}.aioseo-add-additional-pages-modal .import-error>svg{margin-inline-end:10px;height:26px;width:26px;filter:invert(28%) sepia(88%) saturate(2504%) hue-rotate(332deg) brightness(88%) contrast(100%)}.aioseo-add-additional-pages-modal .file-upload{display:flex;margin:24px 0;align-items:baseline;width:100%;gap:8px}[dir=ltr] .aioseo-add-additional-pages-modal .file-upload>.aioseo-input{margin-right:10px}[dir=rtl] .aioseo-add-additional-pages-modal .file-upload>.aioseo-input{margin-left:10px}.aioseo-add-additional-pages-modal .file-upload button{margin-top:0!important}.aioseo-add-additional-pages-modal .modal-header{border:none}.aioseo-add-additional-pages-modal .modal-header button.close{top:23px;padding:0}[dir=ltr] .aioseo-add-additional-pages-modal .modal-header button.close{right:20px}[dir=rtl] .aioseo-add-additional-pages-modal .modal-header button.close{left:20px}.aioseo-add-additional-pages-modal .modal-header svg.aioseo-close{filter:brightness(0) saturate(100%) invert(66%) sepia(10%) saturate(292%) hue-rotate(190deg) brightness(85%) contrast(84%)}.aioseo-add-additional-pages-modal .modal-body{max-height:100%}.aioseo-add-additional-pages-modal .modal-body img{width:100%;border-radius:5px}.aioseo-additional-pages .aioseo-wp-table.additional-pages-table{border-top:1px solid #E8E8EB;padding-top:20px}.aioseo-additional-pages .aioseo-wp-table.additional-pages-table .wp-table .post-title{color:#141b38}.aioseo-additional-pages .aioseo-wp-table.additional-pages-table .wp-table .post-title:hover{color:#005ae0}.aioseo-additional-pages .aioseo-wp-table.additional-pages-table .wp-table .page-actions svg.aioseo-trash{width:20px;height:20px;color:#8c8f9a;cursor:pointer;transition:color .1s ease}.aioseo-additional-pages .aioseo-wp-table.additional-pages-table .wp-table .page-actions svg.aioseo-trash:hover{color:#df2a4a}.aioseo-additional-pages .aioseo-wp-table.additional-pages-table .wp-table .aioseo-tooltip{display:inline-block}[dir=ltr] .aioseo-additional-pages .aioseo-wp-table.additional-pages-table .wp-table .aioseo-tooltip{margin-left:0}[dir=rtl] .aioseo-additional-pages .aioseo-wp-table.additional-pages-table .wp-table .aioseo-tooltip{margin-right:0}.aioseo-additional-pages .aioseo-wp-table.additional-pages-table .wp-table .edit-row-content{border-top:1px solid #E8E8EB;padding:0}.aioseo-additional-pages .aioseo-wp-table.additional-pages-table .wp-table .edit-row-content .border{padding:0;border:none}.aioseo-additional-pages-modal .aioseo-modal-body{padding:20px 40px 40px;display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative}.aioseo-additional-pages-modal .aioseo-modal-body button.close{position:absolute;top:11px;width:24px;height:24px;background-color:#fff;border:none;display:flex;align-items:center}[dir=ltr] .aioseo-additional-pages-modal .aioseo-modal-body button.close{right:11px}[dir=rtl] .aioseo-additional-pages-modal .aioseo-modal-body button.close{left:11px}.aioseo-additional-pages-modal .aioseo-modal-body button.close svg.aioseo-close{cursor:pointer;width:14px;height:14px}.aioseo-additional-pages-modal .aioseo-modal-body h3{font-size:20px;margin-bottom:16px}.aioseo-additional-pages-modal .aioseo-modal-body .label{padding-bottom:5px;color:#141b38;font-size:14px;font-weight:700}.aioseo-additional-pages-modal .aioseo-modal-body .reset-description{font-size:16px;color:#141b38;margin-bottom:16px;text-align:center}.aioseo-additional-pages-modal .aioseo-modal-body .aioseo-button:not(.close):not(.import){margin-top:16px}.aioseo-additional-pages-modal .modal-wrapper .modal-container{max-width:650px} all-in-one-seo-pack/dist/Lite/assets/css/admin-bar.Bs7JXaKP.css000064400000017523151222735770020010 0ustar00#wpadminbar #wp-admin-bar-aioseo-main .aioseo-logo.svg{width:26px;height:30px;background-repeat:no-repeat;background-size:20px;background-image:url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iI2ZmZiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBjbGFzcz0iYWlvc2VvLWdlYXIiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNOS45ODU0MiAxOS45NzA4QzE1LjUwMDIgMTkuOTcwOCAxOS45NzA4IDE1LjUwMDIgMTkuOTcwOCA5Ljk4NTQyQzE5Ljk3MDggNC40NzA2MyAxNS41MDAyIDAgOS45ODU0MiAwQzQuNDcwNjMgMCAwIDQuNDcwNjMgMCA5Ljk4NTQyQzAgMTUuNTAwMiA0LjQ3MDYzIDE5Ljk3MDggOS45ODU0MiAxOS45NzA4Wk04LjM5NTQxIDMuNjU0NjRDOC4yNjAxNiAzLjQ0ODUgOC4wMDk2IDMuMzUyMTEgNy43Nzk4NSAzLjQzMzI3QzcuNTE4MTYgMy41MjU3MiA3LjI2MjE4IDMuNjM0NDUgNy4wMTM0OSAzLjc1ODhDNi43OTUxOSAzLjg2Nzk2IDYuNjg1NjYgNC4xMTczMSA2LjczMzcyIDQuMzYwNDlMNi45MDQ5MyA1LjIyNjk0QzYuOTQ5IDUuNDQ5OTYgNi44NTggNS42NzYzIDYuNjg1MjIgNS44MjAwOUM2LjQxMjE2IDYuMDQ3MzQgNi4xNjAwNyA2LjMwNDI2IDUuOTM0MjEgNi41ODg2NEM1Ljc5MzgzIDYuNzY1MzkgNS41NzIzMyA2Ljg1OTA3IDUuMzUzNjEgNi44MTQ4OUw0LjUwNDI0IDYuNjQzM0M0LjI2NTY0IDYuNTk1MSA0LjAyMTU3IDYuNzA3ODggMy45MTU0NCA2LjkzMTIxQzMuODU1NDkgNy4wNTczOCAzLjc5ODg5IDcuMTg2MiAzLjc0NTgzIDcuMzE3NThDMy42OTI3NiA3LjQ0ODk2IDMuNjQzOTcgNy41ODEwNSAzLjU5OTM4IDcuNzEzNjlDMy41MjA0OCA3Ljk0ODQ3IDMuNjE1NzkgOC4yMDM5OCAzLjgxODM5IDguMzQxMzNMNC41Mzk1OCA4LjgzMDI3QzQuNzI1MjkgOC45NTYxNyA0LjgxNzc4IDkuMTgxOSA0Ljc5NTM0IDkuNDA4MjZDNC43NTkyNSA5Ljc3MjQ0IDQuNzYwNzIgMTAuMTM2IDQuNzk3NTYgMTAuNDkzNkM0LjgyMDg3IDEwLjcxOTggNC43MjkxNSAxMC45NDU5IDQuNTQzODggMTEuMDcyNEwzLjgyNDA4IDExLjU2NDJDMy42MjIwNSAxMS43MDIyIDMuNTI3NTkgMTEuOTU3OSAzLjYwNzEzIDEyLjE5MjNDMy42OTc3NCAxMi40NTkzIDMuODA0MyAxMi43MjA1IDMuOTI2MTUgMTIuOTc0M0M0LjAzMzEzIDEzLjE5NzEgNC4yNzc0OSAxMy4zMDg4IDQuNTE1ODEgMTMuMjU5OEw1LjM2NDk1IDEzLjA4NTFDNS41ODM1IDEzLjA0MDEgNS44MDUzMyAxMy4xMzMgNS45NDYyMyAxMy4zMDkzQzYuMTY4OTMgMTMuNTg3OSA2LjQyMDcxIDEzLjg0NTEgNi42OTk0IDE0LjA3NTZDNi44NzI2MSAxNC4yMTg4IDYuOTY0NDIgMTQuNDQ0OCA2LjkyMTEyIDE0LjY2OEw2Ljc1Mjk2IDE1LjUzNDhDNi43MDU3MiAxNS43NzgyIDYuODE2MjUgMTYuMDI3MyA3LjAzNTExIDE2LjEzNTZDNy4xNTg3NiAxNi4xOTY3IDcuMjg1IDE2LjI1NDUgNy40MTM3NSAxNi4zMDg2QzcuNTQyNTEgMTYuMzYyOCA3LjY3MTk2IDE2LjQxMjYgNy44MDE5NSAxNi40NTgxQzguMTgyMjQgMTYuNTkxMiA4LjcxNDQ5IDE2LjExNDcgOS4xMDggMTUuNzYyNUM5LjMwMjA1IDE1LjU4ODggOS40MjE3NCAxNS4zNDMgOS40MjMwMSAxNS4wNzk4QzkuNDIzMDEgMTUuMDc4NCA5LjQyMzAyIDE1LjA3NyA5LjQyMzAyIDE1LjA3NTZMOS40MjMwMSAxMy42MjYzQzkuNDIzMDEgMTMuNjEwOSA5LjQyMzYgMTMuNTk1NyA5LjQyNDc2IDEzLjU4MDZDOC4yNjI0OCAxMy4yOTcxIDcuMzk4MzggMTIuMjMwMSA3LjM5ODM4IDEwLjk1NzJWOS40MTgyM0M3LjM5ODM4IDkuMzAxMjUgNy40OTEzMSA5LjIwNjQyIDcuNjA1OTYgOS4yMDY0Mkg4LjMyNTg0VjcuNjkyMkM4LjMyNTg0IDcuNDgzMTIgOC40OTE5MyA3LjMxMzY0IDguNjk2ODMgNy4zMTM2NEM4LjkwMTcxIDcuMzEzNjQgOS4wNjc4MSA3LjQ4MzEyIDkuMDY3ODEgNy42OTIyVjkuMjA2NDJIMTEuMDE1NVY3LjY5MjJDMTEuMDE1NSA3LjQ4MzEyIDExLjE4MTYgNy4zMTM2NCAxMS4zODY1IDcuMzEzNjRDMTEuNTkxNCA3LjMxMzY0IDExLjc1NzUgNy40ODMxMiAxMS43NTc1IDcuNjkyMlY5LjIwNjQySDEyLjQ3NzNDMTIuNTkyIDkuMjA2NDIgMTIuNjg0OSA5LjMwMTI1IDEyLjY4NDkgOS40MTgyM1YxMC45NTcyQzEyLjY4NDkgMTIuMjcwNCAxMS43NjUzIDEzLjM2NDMgMTAuNTQ3NCAxMy42MDUxQzEwLjU0NzcgMTMuNjEyMSAxMC41NDc4IDEzLjYxOTIgMTAuNTQ3OCAxMy42MjYzTDEwLjU0NzggMTUuMDY5NEMxMC41NDc4IDE1LjMzNzcgMTAuNjcxMSAxNS41ODc5IDEwLjg3MSAxNS43NjIyQzExLjI3MTUgMTYuMTExNSAxMS44MTI5IDE2LjU4MzcgMTIuMTkxIDE2LjQ1MDJDMTIuNDUyNyAxNi4zNTc3IDEyLjcwODYgMTYuMjQ5IDEyLjk1NzMgMTYuMTI0NkMxMy4xNzU2IDE2LjAxNTUgMTMuMjg1MiAxNS43NjYxIDEzLjIzNzEgMTUuNTIyOUwxMy4wNjU5IDE0LjY1NjVDMTMuMDIxOCAxNC40MzM0IDEzLjExMjggMTQuMjA3MSAxMy4yODU2IDE0LjA2MzNDMTMuNTU4NyAxMy44MzYxIDEzLjgxMDcgMTMuNTc5MiAxNC4wMzY2IDEzLjI5NDhDMTQuMTc3IDEzLjExOCAxNC4zOTg1IDEzLjAyNDQgMTQuNjE3MiAxMy4wNjg1TDE1LjQ2NjYgMTMuMjQwMUMxNS43MDUyIDEzLjI4ODMgMTUuOTQ5MyAxMy4xNzU2IDE2LjA1NTQgMTIuOTUyMkMxNi4xMTUzIDEyLjgyNjEgMTYuMTcxOSAxMi42OTcyIDE2LjIyNSAxMi41NjU5QzE2LjI3ODEgMTIuNDM0NSAxNi4zMjY5IDEyLjMwMjQgMTYuMzcxNCAxMi4xNjk4QzE2LjQ1MDMgMTEuOTM1IDE2LjM1NSAxMS42Nzk1IDE2LjE1MjQgMTEuNTQyMUwxNS40MzEyIDExLjA1MzJDMTUuMjQ1NSAxMC45MjczIDE1LjE1MyAxMC43MDE1IDE1LjE3NTUgMTAuNDc1MkMxNS4yMTE2IDEwLjExMSAxNS4yMTAxIDkuNzQ3NDQgMTUuMTczMyA5LjM4OTg2QzE1LjE0OTkgOS4xNjM2MSAxNS4yNDE3IDguOTM3NTcgMTUuNDI2OSA4LjgxMUwxNi4xNDY3IDguMzE5MjdDMTYuMzQ4OCA4LjE4MTI2IDE2LjQ0MzIgNy45MjU1OCAxNi4zNjM3IDcuNjkxMTVDMTYuMjczMSA3LjQyNDExIDE2LjE2NjUgNy4xNjI5MiAxNi4wNDQ3IDYuOTA5MTVDMTUuOTM3NyA2LjY4NjM4IDE1LjY5MzMgNi41NzQ2MiAxNS40NTUgNi42MjM2NkwxNC42MDU5IDYuNzk4MzdDMTQuMzg3MyA2Ljg0MzM0IDE0LjE2NTUgNi43NTA0OCAxNC4wMjQ2IDYuNTc0MThDMTMuODAxOSA2LjI5NTU0IDEzLjU1MDEgNi4wMzgzMiAxMy4yNzE0IDUuODA3ODRDMTMuMDk4MiA1LjY2NDYgMTMuMDA2NCA1LjQzODU4IDEzLjA0OTcgNS4yMTU0TDEzLjIxNzkgNC4zNDg2OEMxMy4yNjUxIDQuMTA1MjEgMTMuMTU0NiAzLjg1NjE2IDEyLjkzNTcgMy43NDc4N0MxMi44MTIxIDMuNjg2NjkgMTIuNjg1OCAzLjYyODk1IDEyLjU1NzEgMy41NzQ4QzEyLjQyODMgMy41MjA2NSAxMi4yOTg5IDMuNDcwODYgMTIuMTY4OSAzLjQyNTM3QzExLjkzODggMy4zNDQ4NSAxMS42ODg0IDMuNDQyMTEgMTEuNTUzOCAzLjY0ODg0TDExLjA3NDYgNC4zODQ3NUMxMC45NTEzIDQuNTc0MjUgMTAuNzMgNC42Njg2MiAxMC41MDgyIDQuNjQ1NzNDMTAuMTUxMyA0LjYwODkgOS43OTUwMiA0LjYxMDM5IDkuNDQ0NTkgNC42NDc5OUM5LjIyMjg2IDQuNjcxNzcgOS4wMDEzNCA0LjU3ODE4IDguODc3MzEgNC4zODkxM0w4LjM5NTQxIDMuNjU0NjRaIiBmaWxsPSIjZmZmIiAvPjwvc3ZnPg==)!important}[dir=ltr] #wpadminbar #wp-admin-bar-aioseo-main .aioseo-logo.svg{float:left;background-position:0 6px}[dir=rtl] #wpadminbar #wp-admin-bar-aioseo-main .aioseo-logo.svg{float:right;background-position:100% 6px}#wpadminbar #wp-admin-bar-aioseo-main.new-notifications>.ab-item{background:#2c3338;color:#72aee6}#wpadminbar #wp-admin-bar-aioseo-pro-upgrade a{background-color:#1da867;padding-bottom:5px}#wpadminbar #wp-admin-bar-aioseo-pro-upgrade a span{font-weight:600}#wpadminbar #wp-admin-bar-aioseo-pro-license a{background-color:#1da867;padding-bottom:5px}#wpadminbar #wp-admin-bar-aioseo-pro-license a span{font-weight:600}#wpadminbar .aioseo-menu-notification-counter{display:inline-flex;vertical-align:top;box-sizing:border-box;padding:0;min-width:18px;height:18px;border-radius:9px;font-size:11px;line-height:1.6;text-align:center;justify-content:center}[dir=ltr] #wpadminbar .aioseo-menu-notification-counter{margin:7px 0 0 5px}[dir=rtl] #wpadminbar .aioseo-menu-notification-counter{margin:7px 5px 0 0}#wpadminbar .aioseo-menu-notification-counter span{line-height:1;font-size:11px}#wpadminbar .aioseo-menu-notification-counter.aioseo-menu-notification-counter-frontend{background-color:#d63638}#wpadminbar .aioseo-menu-notification-indicator{width:8px;height:8px;border-radius:50%;background-color:#d63638;line-height:1.6;animation:aioseo-menu-notification-indicator-pulse 1.5s infinite}[dir=ltr] #wpadminbar .aioseo-menu-notification-indicator{float:right;margin:10px 4px 0 0}[dir=rtl] #wpadminbar .aioseo-menu-notification-indicator{float:left;margin:10px 0 0 4px}#wpadminbar .aioseo-menu-new-indicator{color:#f18200;vertical-align:super;font-size:9px}[dir=ltr] #wpadminbar .aioseo-menu-new-indicator{padding-left:2px}[dir=rtl] #wpadminbar .aioseo-menu-new-indicator{padding-right:2px}#toplevel_page_aioseo .aioseo-menu-notification-indicator{margin:6px 0 0;width:8px;height:8px;border-radius:50%;background-color:#d63638;line-height:1.6;animation:aioseo-menu-notification-indicator-pulse 1.5s infinite}[dir=ltr] #toplevel_page_aioseo .aioseo-menu-notification-indicator{float:right}[dir=rtl] #toplevel_page_aioseo .aioseo-menu-notification-indicator{float:left}#toplevel_page_aioseo .wp-submenu-wrap li a{position:relative}#toplevel_page_aioseo .wp-submenu-wrap li a .aioseo-menu-new-indicator{position:absolute}#toplevel_page_aioseo .aioseo-menu-new-indicator{color:#f18200;vertical-align:super;font-size:9px}[dir=ltr] #toplevel_page_aioseo .aioseo-menu-new-indicator{padding-left:2px}[dir=rtl] #toplevel_page_aioseo .aioseo-menu-new-indicator{padding-right:2px}@keyframes aioseo-menu-notification-indicator-pulse{0%{box-shadow:0 0 #ca4a1f80}to{box-shadow:0 0 0 10px #ca4a1f00}}@media screen and (max-width: 782px){#wpadminbar #wp-admin-bar-aioseo-main{display:block;position:static}#wpadminbar #wp-admin-bar-aioseo-main .ab-item .text{display:none}#wpadminbar #wp-admin-bar-aioseo-main .aioseo-logo.svg{width:52px;height:46px;background-position:50% 8px;background-size:30px}} all-in-one-seo-pack/dist/Lite/assets/css/Advanced.CyGMC1uB.css000064400000000230151222735770017627 0ustar00.aioseo-advanced .inline-upsell,.aioseo-advanced .warning{display:inline-flex;margin-top:12px}.aioseo-advanced .aioseo-input-container{max-width:500px} all-in-one-seo-pack/dist/Lite/assets/css/Advanced.Dr34Hr2g.css000064400000010207151222735770017621 0ustar00.card-block-query .aioseo-card{border-radius:4px;margin:0}.card-block-query .header{padding:16px;border-bottom:none}.card-block-query .header .header-title span{font-size:14px;font-weight:400}.card-block-query .query-arg-logs{width:100%}.card-block-query .query-arg-logs .query-arg-options{padding:16px;display:flex;align-items:center;gap:16px;background:#f3f4f5;border-style:solid;border-width:1px 0;border-color:#d0d1d7}.card-block-query .query-arg-logs .query-arg-options .query-arg-key{flex:1}.card-block-query .query-arg-logs .query-arg-options .query-arg-value{flex:2}.card-block-query .query-arg-logs .query-arg-button{padding:8px 16px}.card-block-query .query-arg-logs .query-arg-button svg.aioseo-circle-plus{width:16px;height:16px}[dir=ltr] .card-block-query .query-arg-logs .query-arg-button svg.aioseo-circle-plus{margin-right:8px}[dir=rtl] .card-block-query .query-arg-logs .query-arg-button svg.aioseo-circle-plus{margin-left:8px}.aioseo-query-args-table{margin-top:20px}.aioseo-query-args-table thead th,.aioseo-query-args-table tfoot th{white-space:nowrap}[dir=ltr] .aioseo-query-args-table .aioseo-wp-table .widefat .check-column{padding:11px 0 11px 3px}[dir=rtl] .aioseo-query-args-table .aioseo-wp-table .widefat .check-column{padding:11px 3px 11px 0}.aioseo-query-args-table .aioseo-tooltip{display:inline-block;margin:0;line-height:10px;vertical-align:sub}.aioseo-query-args-table .aioseo-tooltip svg{cursor:pointer;height:16px;width:16px}.aioseo-query-args-table .aioseo-alert{margin:20px 0}.aioseo-query-args-table .actions-query-args div{display:flex;align-items:start;gap:5px}.aioseo-query-args-table .actions-query-args div span{cursor:pointer;color:#005ae0}.aioseo-query-args-table .actions-query-args div span.separator{color:#8c8f9a}.aioseo-query-args-table .actions-query-args div span.no-link{cursor:text;color:#141b38}.block-arg-modal .modal-container{max-width:650px!important}.block-arg-modal .aioseo-modal-body{display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative;margin:20px 0 50px}.block-arg-modal .aioseo-modal-body button.close{position:absolute;top:0;width:24px;height:24px;background-color:#fff;border:none;display:flex;align-items:center}[dir=ltr] .block-arg-modal .aioseo-modal-body button.close{right:11px}[dir=rtl] .block-arg-modal .aioseo-modal-body button.close{left:11px}.block-arg-modal .aioseo-modal-body button.close svg.aioseo-close{cursor:pointer;width:14px;height:14px}.block-arg-modal .aioseo-modal-body h3{font-size:20px;margin-bottom:16px}.block-arg-modal .aioseo-modal-body .reset-description{font-size:16px;color:#141b38;margin-bottom:16px;text-align:center;max-width:515px}.block-arg-modal .aioseo-modal-body .aioseo-button:not(.close):not(.import){margin-top:16px}.aioseo-search-appearance-advanced .description-format .add-tags,.aioseo-search-appearance-advanced .paged-format .add-tags{margin-top:0}.aioseo-search-appearance-advanced .description-notice{margin-top:10px}.aioseo-search-appearance-advanced .run-shortcodes-alert{margin-top:12px}.aioseo-search-appearance-advanced svg.aioseo-external{width:14px;height:14px}[dir=ltr] .aioseo-search-appearance-advanced svg.aioseo-external{margin-right:10px}[dir=rtl] .aioseo-search-appearance-advanced svg.aioseo-external{margin-left:10px}.aioseo-search-appearance-advanced .aioseo-alert{margin-top:10px}.aioseo-search-appearance-advanced .aioseo-rss-content-advanced .aioseo-settings-row .aioseo-col,.aioseo-search-appearance-advanced #aioseo-query-arg-monitoring .aioseo-settings-row .aioseo-col{padding-top:0}.aioseo-search-appearance-advanced .aioseo-rss-content-advanced .aioseo-description p,.aioseo-search-appearance-advanced #aioseo-query-arg-monitoring .aioseo-description p{font-size:14px;line-height:1.8;margin:8px 0 0}.aioseo-search-appearance-advanced .aioseo-rss-content-advanced .aioseo-description div.rss-link,.aioseo-search-appearance-advanced #aioseo-query-arg-monitoring .aioseo-description div.rss-link{margin:8px 0 0}.aioseo-search-appearance-advanced .card-block-query .header{height:unset}.aioseo-search-appearance-advanced .card-block-query .content{padding:0!important}.aioseo-search-appearance-advanced .table-retention .aioseo-select{max-width:200px} all-in-one-seo-pack/dist/Lite/assets/css/AnalyzeCompetitorSite.CvskWUNL.css000064400000007137151222735770022577 0ustar00.aioseo-site-score-competitor{position:relative;display:flex;align-items:flex-start;justify-content:center;flex-direction:column}.aioseo-site-score-competitor .aioseo-seo-site-score-score{position:relative;width:100%;max-width:200px}[dir=ltr] .aioseo-site-score-competitor .aioseo-seo-site-score-score{margin-right:1em}[dir=rtl] .aioseo-site-score-competitor .aioseo-seo-site-score-score{margin-left:1em}.aioseo-site-score-competitor .aioseo-seo-site-score-score svg{width:100%;height:auto}.aioseo-site-score-competitor .aioseo-seo-site-score-recommendations{margin:16px 0}.aioseo-site-score-competitor .aioseo-seo-site-score-recommendations>div:not(.links){display:flex;align-items:center;font-size:14px;color:#141b38;font-weight:600}.aioseo-site-score-competitor .aioseo-seo-site-score-recommendations>div:not(.links)+div:not(.links){margin-top:10px}.aioseo-site-score-competitor .aioseo-seo-site-score-recommendations>div:not(.links) .round{position:relative;border-radius:50%;width:24px;min-width:24px;max-width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:12px;color:#fff;font-weight:600}[dir=ltr] .aioseo-site-score-competitor .aioseo-seo-site-score-recommendations>div:not(.links) .round{margin-right:10px}[dir=rtl] .aioseo-site-score-competitor .aioseo-seo-site-score-recommendations>div:not(.links) .round{margin-left:10px}.aioseo-site-score-competitor .aioseo-seo-site-score-recommendations>div:not(.links) .round.red{background-color:#df2a4a}.aioseo-site-score-competitor .aioseo-seo-site-score-recommendations>div:not(.links) .round.blue{background-color:#005ae0}.aioseo-site-score-competitor .aioseo-seo-site-score-recommendations>div:not(.links) .round.orange{background-color:#f18200}.aioseo-site-score-competitor .aioseo-seo-site-score-recommendations>div:not(.links) .round.green{background-color:#00aa63}.aioseo-site-score-competitor .refresh-results .aioseo-refresh{width:14px;height:14px}[dir=ltr] .aioseo-site-score-competitor .refresh-results .aioseo-refresh{margin-right:10px}[dir=rtl] .aioseo-site-score-competitor .refresh-results .aioseo-refresh{margin-left:10px}.aioseo-site-score-competitor .mobile-snapshot{margin-top:30px;max-width:250px}.aioseo-site-score-competitor .mobile-snapshot div{font-weight:600;font-size:16px;margin-bottom:10px}.aioseo-site-score-competitor .mobile-snapshot img{width:100%;height:auto}.aioseo-analyze-competitor-site .header .aioseo-trash{width:20px;height:20px;color:#8c8f9a;cursor:pointer}[dir=ltr] .aioseo-analyze-competitor-site .header .aioseo-trash{margin-left:14px}[dir=rtl] .aioseo-analyze-competitor-site .header .aioseo-trash{margin-right:14px}.aioseo-analyze-competitor-site .header .aioseo-trash:hover{color:#434960}.aioseo-analyze-competitor-site .competitor-results-main{display:flex;flex-direction:row;font-size:16px;align-items:flex-start}.aioseo-analyze-competitor-site .competitor-results-main .competitor-results-body{flex:1;min-width:0}[dir=ltr] .aioseo-analyze-competitor-site .competitor-results-main .competitor-results-body{margin-left:30px}[dir=rtl] .aioseo-analyze-competitor-site .competitor-results-main .competitor-results-body{margin-right:30px}.aioseo-analyze-competitor-site .aioseo-seo-site-score-cta{position:absolute;top:50%;background-color:#fff;padding:20px;border:1px solid #E8E8EB;box-shadow:0 2px 10px #005ae033;color:#141b38;font-size:16px;font-weight:600;width:82%;max-width:500px;text-align:center}[dir=ltr] .aioseo-analyze-competitor-site .aioseo-seo-site-score-cta{left:50%;transform:translate(-50%) translateY(-50%)}[dir=rtl] .aioseo-analyze-competitor-site .aioseo-seo-site-score-cta{right:50%;transform:translate(50%) translateY(-50%)} all-in-one-seo-pack/dist/Lite/assets/css/AnimatedDannie.CS1Dm42Q.css000064400000000221151222735770020647 0ustar00.aioseo-animated-dannie{display:flex;align-content:center;align-items:center;justify-content:center}.aioseo-animated-dannie svg{max-width:250px} all-in-one-seo-pack/dist/Lite/assets/css/App.CK7bzYV8.css000064400000262546151222735770016703 0ustar00.aioseo-robots-meta .global-robots-settings{margin-top:16px;font-weight:600}.aioseo-robots-meta .global-robots-settings>.settings{margin-top:12px;font-weight:400;--aioseo-gutter: 12px;--total-gap-width: calc(3 * var(--aioseo-gutter));--aioseo-col-max-width: calc((100% - var(--total-gap-width)) / 4);display:grid;gap:var(--aioseo-gutter);grid-template-columns:repeat(auto-fill,minmax(max(150px,var(--aioseo-col-max-width)),1fr))}.aioseo-robots-meta .global-robots-settings>.settings>*{max-width:none}.aioseo-robots-meta .global-robots-settings>.settings .aioseo-col{max-width:none}.aioseo-robots-meta .global-robots-settings-options{display:flex;gap:12px;margin-top:16px}.aioseo-robots-meta .global-robots-settings-options>.aioseo-description{margin:0}.aioseo-robots-meta .global-robots-settings-options>.aioseo-description .aioseo-input,.aioseo-robots-meta .global-robots-settings-options>.aioseo-description .aioseo-select{min-width:200px;font-weight:400;margin-top:4px}@media screen and (max-width: 782px){.aioseo-robots-meta .global-robots-settings-options{display:block}.aioseo-robots-meta .global-robots-settings-options .max-snippet,.aioseo-robots-meta .global-robots-settings-options .max-video-preview{margin-bottom:20px}[dir=ltr] .aioseo-robots-meta .global-robots-settings-options .max-snippet,[dir=ltr] .aioseo-robots-meta .global-robots-settings-options .max-video-preview{margin-right:0}[dir=rtl] .aioseo-robots-meta .global-robots-settings-options .max-snippet,[dir=rtl] .aioseo-robots-meta .global-robots-settings-options .max-video-preview{margin-left:0}.aioseo-robots-meta .global-robots-settings-options>div .aioseo-input,.aioseo-robots-meta .global-robots-settings-options>div .aioseo-select{min-width:100%}}.edit-post-sidebar .global-robots-settings{padding-top:12px}.edit-post-sidebar .global-robots-settings>.settings{padding:4px 0 12px}.edit-post-sidebar .global-robots-settings>.settings label{font-size:14px}.edit-post-sidebar .global-robots-settings .robots-meta-title{padding-top:4px;display:inline-block}.edit-post-sidebar .global-robots-settings-options{flex-wrap:wrap}[dir=ltr] .edit-post-sidebar .max-snippet{margin-right:30px!important}[dir=rtl] .edit-post-sidebar .max-snippet{margin-left:30px!important}[dir=ltr] .edit-post-sidebar .max-video-preview{margin-right:0!important}[dir=rtl] .edit-post-sidebar .max-video-preview{margin-left:0!important}.edit-post-sidebar .max-image-preview{margin-top:20px!important}.aioseo-post-advanced .inline-upsell{display:inline-flex;margin-top:12px}.aioseo-post-advanced .selectbox-row{display:flex;align-items:center}.aioseo-post-advanced .selectbox-row .separator{display:inline-block;margin:0 20px;padding-bottom:10px;align-self:flex-end}.aioseo-post-advanced .selectbox-row .select{display:inline-block;width:100%;max-width:125px}.aioseo-post-advanced .selectbox-row .select>span{display:inline-block;font-size:14px;margin-bottom:10px}.tru-seo-highlight-popover[data-v-966cf3f9]{align-items:center;background-color:#2c324c;border-radius:4px;color:#fff;display:inline-flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:12px;line-height:normal;position:relative;-webkit-user-select:none;user-select:none}[dir=ltr] .tru-seo-highlight-popover[data-v-966cf3f9]{padding:4px 5px 4px 10px}[dir=rtl] .tru-seo-highlight-popover[data-v-966cf3f9]{padding:4px 10px 4px 5px}.tru-seo-highlight-popover *[data-v-966cf3f9]{font-size:inherit}.tru-seo-highlight-popover[data-v-966cf3f9]:before{border-style:solid;content:"";height:0;position:absolute;width:0}.tru-seo-highlight-popover[data-arrow-placement=right][data-v-966cf3f9]:before{top:50%}[dir=ltr] .tru-seo-highlight-popover[data-arrow-placement=right][data-v-966cf3f9]:before{border-color:transparent transparent transparent #2C324C;border-width:6px 0 6px 6px;left:100%;transform:translate(-20%,-50%)}[dir=rtl] .tru-seo-highlight-popover[data-arrow-placement=right][data-v-966cf3f9]:before{border-color:transparent #2C324C transparent transparent;border-width:6px 6px 6px 0;right:100%;transform:translate(20%,-50%)}.tru-seo-highlight-popover[data-arrow-placement=bottomleft][data-v-966cf3f9]:before{border-color:#2C324C transparent transparent transparent;border-width:8px 8px 0 8px;top:100%;transform:translateY(-50%)}[dir=ltr] .tru-seo-highlight-popover[data-arrow-placement=bottomleft][data-v-966cf3f9]:before{left:0}[dir=rtl] .tru-seo-highlight-popover[data-arrow-placement=bottomleft][data-v-966cf3f9]:before{right:0}.tru-seo-highlight-popover__bullet[data-v-966cf3f9]{height:8px;line-height:8px;width:8px;color:#34d399}[dir=ltr] .tru-seo-highlight-popover__bullet[data-v-966cf3f9]{margin-right:5px}[dir=rtl] .tru-seo-highlight-popover__bullet[data-v-966cf3f9]{margin-left:5px}.tru-seo-highlight-popover__bullet--error[data-v-966cf3f9]{color:#f87171}[dir=ltr] .tru-seo-highlight-popover__count[data-v-966cf3f9]{margin-right:8px}[dir=rtl] .tru-seo-highlight-popover__count[data-v-966cf3f9]{margin-left:8px}.tru-seo-highlight-popover__pipe[data-v-966cf3f9]{height:12px;line-height:12px;width:1px;background-color:#8c8f9a}[dir=ltr] .tru-seo-highlight-popover__pipe[data-v-966cf3f9]{margin-right:8px}[dir=rtl] .tru-seo-highlight-popover__pipe[data-v-966cf3f9]{margin-left:8px}.tru-seo-highlight-popover__nav[data-v-966cf3f9],.tru-seo-highlight-popover__close[data-v-966cf3f9]{height:20px;line-height:20px;width:auto}.tru-seo-highlight-popover__nav .caret-wrapper[data-v-966cf3f9],.tru-seo-highlight-popover__nav .close-wrapper[data-v-966cf3f9],.tru-seo-highlight-popover__close .caret-wrapper[data-v-966cf3f9],.tru-seo-highlight-popover__close .close-wrapper[data-v-966cf3f9]{height:20px;line-height:20px;width:20px;align-items:center;border-radius:2px;display:inline-flex;justify-content:center}[dir=ltr] .tru-seo-highlight-popover__nav .caret-wrapper[data-v-966cf3f9],[dir=ltr] .tru-seo-highlight-popover__close .caret-wrapper[data-v-966cf3f9]{margin-right:4px}[dir=rtl] .tru-seo-highlight-popover__nav .caret-wrapper[data-v-966cf3f9],[dir=rtl] .tru-seo-highlight-popover__close .caret-wrapper[data-v-966cf3f9]{margin-left:4px}[dir=ltr] .tru-seo-highlight-popover__nav .caret-wrapper--previous[data-v-966cf3f9],[dir=ltr] .tru-seo-highlight-popover__close .caret-wrapper--previous[data-v-966cf3f9]{transform:rotate(180deg)}[dir=rtl] .tru-seo-highlight-popover__nav .caret-wrapper--previous[data-v-966cf3f9],[dir=rtl] .tru-seo-highlight-popover__close .caret-wrapper--previous[data-v-966cf3f9]{transform:rotate(-180deg)}.tru-seo-highlight-popover__close[data-v-966cf3f9]{height:20px;line-height:20px;width:auto}.tru-seo-highlight-popover__nav[data-v-966cf3f9]{height:20px;line-height:20px;width:50px}.tru-seo-highlight-popover button[data-v-966cf3f9]{background-color:transparent;border:none;box-shadow:none;color:#fff;cursor:pointer;outline:none;opacity:1;padding:0;position:relative}.tru-seo-highlight-popover button[data-v-966cf3f9]:disabled{cursor:not-allowed;opacity:.5}.tru-seo-highlight-popover button[data-v-966cf3f9]:hover,.tru-seo-highlight-popover button[data-v-966cf3f9]:focus{background-color:#434960}.aioseo-keyphrase-tag .keyphrase-delete .aioseo-tooltip{display:flex;margin:0}.aioseo-keyphrase-tag .keyphrase-delete svg{width:16px;height:16px}.tru-seo-toggle-highlighter{background:transparent;border:none;box-shadow:none;cursor:pointer;opacity:1;outline-color:#005ae0;outline-offset:1px;outline-width:1px;padding:0}.tru-seo-toggle-highlighter:disabled{cursor:not-allowed}.tru-seo-toggle-highlighter:disabled svg{opacity:.5}mark.annotation-text.annotation-text-aioseo-tru-seo-highlighter,span.annotation-text.annotation-text-aioseo-tru-seo-highlighter{background-color:#cce0ff;border-radius:4px;color:inherit;display:inline;font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;position:static}.aioseo-analysis-detail{margin:0 0 16px;padding:0;list-style:none}.aioseo-analysis-detail li{position:relative;margin-bottom:0;font-size:14px;line-height:22px}[dir=ltr] .aioseo-analysis-detail li{padding-left:24px}[dir=rtl] .aioseo-analysis-detail li{padding-right:24px}.aioseo-analysis-detail li+li{margin-top:16px}.aioseo-analysis-detail li p{font-size:inherit;line-height:inherit;margin:0;padding:0}.aioseo-analysis-detail li svg.aioseo-circle-check{color:#00aa63}.aioseo-analysis-detail li svg.aioseo-circle-close{color:#df2a4a}.aioseo-analysis-detail li svg.aioseo-circle-check,.aioseo-analysis-detail li svg.aioseo-circle-close{position:absolute;top:2px}[dir=ltr] .aioseo-analysis-detail li svg.aioseo-circle-check,[dir=ltr] .aioseo-analysis-detail li svg.aioseo-circle-close{left:0}[dir=rtl] .aioseo-analysis-detail li svg.aioseo-circle-check,[dir=rtl] .aioseo-analysis-detail li svg.aioseo-circle-close{right:0}.aioseo-analysis-detail li svg.aioseo-caret{cursor:pointer;transition:transform .3s}[dir=ltr] .aioseo-analysis-detail li svg.aioseo-caret{transform:rotate(-180deg)}[dir=rtl] .aioseo-analysis-detail li svg.aioseo-caret{transform:rotate(180deg)}.aioseo-analysis-detail li .title{align-items:center;display:flex;gap:4px}.aioseo-analysis-detail li .title__text{font-weight:700}[dir=ltr] .aioseo-analysis-detail li .title__text{margin-right:6px}[dir=rtl] .aioseo-analysis-detail li .title__text{margin-left:6px}.edit-post-sidebar .aioseo-analysis-detail li .title__text{flex:1}[dir=ltr] .aioseo-analysis-detail li .title.toggled .aioseo-caret{transform:rotate(-90deg)}[dir=rtl] .aioseo-analysis-detail li .title.toggled .aioseo-caret{transform:rotate(90deg)}.aioseo-analysis-detail li .title.toggled+.description{opacity:0;height:0;margin:0}.aioseo-analysis-detail li .title .tru-seo-toggle-highlighter{color:#434960;height:16px;width:16px}.aioseo-analysis-detail li .title .tru-seo-toggle-highlighter .aioseo-tooltip{display:block;margin:0}.aioseo-analysis-detail li .title .tru-seo-toggle-highlighter .aioseo-tooltip :has(svg),.aioseo-analysis-detail li .title .tru-seo-toggle-highlighter .aioseo-tooltip :has(svg) *{height:16px;width:16px}.aioseo-analysis-detail li .description{color:#141b38;font-style:normal;font-weight:400;opacity:1;height:auto;margin-top:5px;transition:all .3s}.aioseo-description.additional-keyphrases-description[data-v-73d0fe06],.edit-post-sidebar .aioseo-app .aioseo-description.additional-keyphrases-description[data-v-73d0fe06]{margin:0 0 12px}.aioseo-ai-generator-modal .modal-wrapper .modal-container{max-width:850px}[dir=ltr] .aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-header{padding:0 0 0 16px}[dir=rtl] .aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-header{padding:0 16px 0 0}.aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-body{position:relative}.aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-body .list .suggestions{display:flex;flex-direction:column;gap:16px;padding:16px}.aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-body .list .suggestions .suggestion .aioseo-editor .ql-disabled{background-color:#fff}[dir=ltr] .aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-body .list .suggestions .suggestion .aioseo-editor .aioseo-editor-single .ql-editor{padding:7px 55px 7px 10px}[dir=rtl] .aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-body .list .suggestions .suggestion .aioseo-editor .aioseo-editor-single .ql-editor{padding:7px 10px 7px 55px}[dir=ltr] .aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-body .list .suggestions .suggestion .aioseo-editor .ql-editor{padding:15px 55px 15px 15px}[dir=rtl] .aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-body .list .suggestions .suggestion .aioseo-editor .ql-editor{padding:15px 15px 15px 55px}.aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-body .list .suggestions .suggestion button{display:flex;align-items:center;justify-content:center}.aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-body .list .suggestions .suggestion button svg{width:14px;height:14px}.aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-body .cta{padding:0 0 40px;background-color:#fff}.aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-body .cta img{width:100%}.aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-body .cta div.bottom{padding:0 16px;display:flex;flex-direction:column;align-items:center;text-align:center}.aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-body .cta div.bottom div{width:520px}.aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-body .cta div.bottom div p{font-size:14px;line-height:22px}.aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-body .cta div.bottom div p.title{font-size:18px;font-weight:700;line-height:22px;color:#141b38;margin-bottom:14px}.aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-body .cta div.bottom div:nth-of-type(2){margin-top:26px}[dir=ltr] .aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-body .cta div.bottom div:nth-of-type(2) .aioseo-button{margin-right:18px}[dir=rtl] .aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-body .cta div.bottom div:nth-of-type(2) .aioseo-button{margin-left:18px}.aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-body .cta div.bottom div:nth-of-type(2) .feature-link,.aioseo-ai-generator-modal .modal-wrapper .modal-container .modal-body .cta div.bottom div:nth-of-type(2) .no-underline{color:#434960}.aioseo-post-general .aioseo-ai-generator button{display:flex;align-items:center;justify-content:center}.aioseo-post-general .aioseo-ai-generator button svg.aioseo-ai-robot{width:15px;height:13px;color:#141b38}.aioseo-post-general .aioseo-ai-generator button svg.aioseo-ai-robot:hover{color:#434960}[dir=ltr] .aioseo-post-general .snippet-title-row .aioseo-editor .aioseo-editor-single .ql-editor{padding:7px 55px 7px 10px}[dir=rtl] .aioseo-post-general .snippet-title-row .aioseo-editor .aioseo-editor-single .ql-editor{padding:7px 10px 7px 55px}[dir=ltr] .aioseo-post-general .snippet-description-row .aioseo-editor .ql-editor{padding:15px 55px 15px 15px}[dir=rtl] .aioseo-post-general .snippet-description-row .aioseo-editor .ql-editor{padding:15px 15px 15px 55px}.aioseo-card.aioseo-sidebar-card .header{height:46px}.aioseo-card.aioseo-sidebar-card .header:hover{cursor:pointer}.aioseo-card.aioseo-sidebar-card ul,.aioseo-card.aioseo-sidebar-card ul li{margin-bottom:0}[dir=ltr] .aioseo-card.aioseo-sidebar-card ul li{padding-left:24px}[dir=rtl] .aioseo-card.aioseo-sidebar-card ul li{padding-right:24px}.aioseo-card.aioseo-sidebar-card ul li+li{margin-top:12px}.aioseo-card.aioseo-sidebar-card ul .description{margin-bottom:0}.aioseo-focus-keyphrase-panel .add-focus-keyphrase-metabox-button{display:flex}.aioseo-focus-keyphrase-panel .add-focus-keyphrase-sidebar-button .add-keyphrase{margin-bottom:0!important}.aioseo-focus-keyphrase-panel .add-focus-keyphrase-sidebar-button .aioseo-tooltip{display:block}[dir=ltr] .aioseo-focus-keyphrase-panel .add-focus-keyphrase-sidebar-button .aioseo-tooltip{margin-left:0}[dir=rtl] .aioseo-focus-keyphrase-panel .add-focus-keyphrase-sidebar-button .aioseo-tooltip{margin-right:0}.aioseo-focus-keyphrase-panel .add-focus-keyphrase-sidebar-button .aioseo-tooltip .disabled-button{display:flex}.aioseo-focus-keyphrase-panel-modal .modal-body{max-height:calc(90vh - 70px);overflow:auto}.aioseo-focus-keyphrase-panel-modal .modal-body .aioseo-modal-content .aioseo-alert{margin-bottom:20px}.aioseo-focus-keyphrase-panel-modal .semrush-country-selector{max-width:350px}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table{width:100%;border:1px solid #D0D1D7;border-radius:3px}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrase-volume,.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrase-trend{text-align:center}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrase-actions>div{display:flex;align-items:center;justify-content:flex-end}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrase-actions .focus-keyphrase{display:flex;align-items:center;justify-content:flex-end;color:#00aa63;min-width:135px}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrase-actions .focus-keyphrase svg{width:16px;height:16px;color:#00aa63}[dir=ltr] .aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrase-actions .focus-keyphrase svg{margin-right:5px}[dir=rtl] .aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrase-actions .focus-keyphrase svg{margin-left:5px}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrase-actions .keyphrase-score{border-radius:3px;padding:5px;font-weight:700;font-size:13px;cursor:pointer;border:1px solid #005AE0}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrase-actions .keyphrase-score.score-green{color:#00aa63;border-color:#00aa63}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrase-actions .keyphrase-score.score-orange{color:#f18200;border-color:#f18200}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrase-actions .keyphrase-score.score-red{color:#df2a4a;border-color:#df2a4a}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrase-actions .keyphrase-score:hover{background-color:#005ae0;color:#fff}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrase-actions .keyphrase-score:hover.score-green{background-color:#00aa63}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrase-actions .keyphrase-score:hover.score-orange{background-color:#f18200}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrase-actions .keyphrase-score:hover.score-red{background-color:#df2a4a}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrase-actions .remove-keyphrase{display:flex;align-items:center;justify-content:flex-end}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrase-actions .remove-keyphrase svg{width:16px;height:16px;cursor:pointer}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrase-actions .remove-keyphrase svg:hover{color:#df2a4a}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-header{height:50px;font-size:14px}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-header th{border-bottom:1px solid #D0D1D7;padding:15px}[dir=ltr] .aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-header th:first-of-type{padding-left:30px}[dir=rtl] .aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-header th:first-of-type{padding-right:30px}[dir=ltr] .aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-header th:last-of-type{padding-right:30px}[dir=rtl] .aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-header th:last-of-type{padding-left:30px}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-rows{font-size:14px}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-rows tr.keyphrase-row{background-color:#fff;height:70px}[dir=ltr] .aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-rows tr.keyphrase-row:last-of-type td:first-of-type{border-radius:0 0 0 3px}[dir=rtl] .aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-rows tr.keyphrase-row:last-of-type td:first-of-type{border-radius:0 0 3px}[dir=ltr] .aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-rows tr.keyphrase-row:last-of-type td:last-of-type{border-radius:0 0 3px}[dir=rtl] .aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-rows tr.keyphrase-row:last-of-type td:last-of-type{border-radius:0 0 0 3px}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-rows tr.keyphrase-row.even{background-color:#f9f9fa}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-rows tr.keyphrase-row td{padding:15px}[dir=ltr] .aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-rows tr.keyphrase-row td:first-of-type{padding-left:30px}[dir=rtl] .aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-rows tr.keyphrase-row td:first-of-type{padding-right:30px}[dir=ltr] .aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-rows tr.keyphrase-row td:last-of-type{padding-right:30px}[dir=rtl] .aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-rows tr.keyphrase-row td:last-of-type{padding-left:30px}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-rows tr.keyphrase-row td.no-results>*{display:flex;align-items:center;justify-content:center}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-rows tr.keyphrase-row td.no-results .semrush-logo{min-width:150px}[dir=ltr] .aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-rows tr.keyphrase-row td.no-results .semrush-logo{padding:0 30px 0 0}[dir=rtl] .aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-rows tr.keyphrase-row td.no-results .semrush-logo{padding:0 0 0 30px}.aioseo-focus-keyphrase-panel-modal .additional-keyphrases-table .keyphrases-rows tr.keyphrase-row.loading{display:flex;align-items:center;justify-content:center}.aioseo-app .aioseo-post-general .page-analysis-panel .aioseo-alert{margin-bottom:12px}.aioseo-app .aioseo-post-general .page-analysis-panel .aioseo-tabs{background:#fff}.aioseo-app .aioseo-post-general .page-analysis-panel .aioseo-tabs .var-tab{display:flex;font-weight:700}.cornerstone-content-panel .cornerstone-content-text>a{padding-inline:4px}.cornerstone-content-panel .aioseo-alert.inline-upsell{order:2}.aioseo-sidebar-card .cornerstone-content-panel .aioseo-alert.inline-upsell{margin-top:10px}.aioseo-post-general .aioseo-tooltip{line-height:normal;vertical-align:middle}.aioseo-post-general .aioseo-tooltip :has(.aioseo-circle-question-mark){display:inline-flex}.aioseo-post-general svg.aioseo-circle-question-mark{width:17px;height:17px;color:#8c8f9a;transition:background-color .2s ease}.aioseo-post-general svg.aioseo-circle-question-mark:hover{color:#5a5c66}.aioseo-post-general svg.aioseo-pencil{width:12px;height:12px;color:#434960}.aioseo-post-general .edit-snippet,.aioseo-post-general .add-keyphrase{margin-top:12px;border:1px solid #DCDDE1}[dir=ltr] .aioseo-post-general .edit-snippet svg,[dir=ltr] .aioseo-post-general .add-keyphrase svg{margin-right:11px}[dir=rtl] .aioseo-post-general .edit-snippet svg,[dir=rtl] .aioseo-post-general .add-keyphrase svg{margin-left:11px}.aioseo-post-general .disabled-button{margin-top:12px;border:1px solid #dcdde1;color:#8c8f9a;background-color:#f3f4f5;cursor:default;height:40px;font-size:14px;padding:0 12px;flex-shrink:0;line-height:1;display:inline-flex;align-items:center;justify-content:center;font-weight:600;border-radius:4px;-moz-appearance:none;appearance:none;-webkit-appearance:none;transition:background-color .2s ease;position:relative;overflow:hidden;text-decoration:none;white-space:nowrap}[dir=ltr] .aioseo-post-general .disabled-button svg{margin-right:11px}[dir=rtl] .aioseo-post-general .disabled-button svg{margin-left:11px}.aioseo-post-general .aioseo-keyphrase-tag{display:inline-block;margin-bottom:4px;border-radius:3px;font-size:14px;font-weight:600}[dir=ltr] .aioseo-post-general .aioseo-keyphrase-tag{margin-right:10px}[dir=rtl] .aioseo-post-general .aioseo-keyphrase-tag{margin-left:10px}.aioseo-post-general .aioseo-keyphrase-tag.selected{position:relative}.aioseo-post-general .aioseo-keyphrase-tag.selected:before,.aioseo-post-general .aioseo-keyphrase-tag.selected:after{content:"";position:absolute;display:block;z-index:10;bottom:-17px;border-style:solid}.aioseo-post-general .aioseo-keyphrase-tag.selected:before{border-width:0 10px 10px 10px;border-color:transparent transparent #E8E8EB transparent}[dir=ltr] .aioseo-post-general .aioseo-keyphrase-tag.selected:before{left:calc(50% - 6px)}[dir=rtl] .aioseo-post-general .aioseo-keyphrase-tag.selected:before{right:calc(50% - 6px)}.aioseo-post-general .aioseo-keyphrase-tag.selected:after{border-width:0 8px 8px 8px;border-color:transparent transparent #fff transparent}[dir=ltr] .aioseo-post-general .aioseo-keyphrase-tag.selected:after{left:calc(50% - 4px)}[dir=rtl] .aioseo-post-general .aioseo-keyphrase-tag.selected:after{right:calc(50% - 4px)}.aioseo-post-general .aioseo-keyphrase-tag .aioseo-add-keyphrase-tag{display:block;padding:9px 10px;border:1px solid #F3F4F5;border-radius:3px;background:#f3f4f5;cursor:pointer}.aioseo-post-general .aioseo-keyphrase-tag .aioseo-add-keyphrase-tag.hidden{opacity:0;height:0;padding:0}.aioseo-post-general .aioseo-keyphrase-tag .keyphrase-name{cursor:pointer}.aioseo-post-general .aioseo-keyphrase-tag .keyphrase-edit{opacity:0;margin:0 8px;cursor:pointer}.aioseo-post-general .aioseo-keyphrase-tag .keyphrase-edit svg.aioseo-pencil{width:12px;height:12px;color:#8c8f9a}.aioseo-post-general .aioseo-keyphrase-tag .keyphrase-score{cursor:pointer}.aioseo-post-general .aioseo-keyphrase-tag .keyphrase-score.score-green{color:#00aa63}.aioseo-post-general .aioseo-keyphrase-tag .keyphrase-score.score-orange{color:#f18200}.aioseo-post-general .aioseo-keyphrase-tag .keyphrase-score.score-red{color:#df2a4a}.aioseo-post-general .aioseo-keyphrase-tag .aioseo-edit-keyphrase-tag{position:relative}.aioseo-post-general .aioseo-keyphrase-tag .aioseo-edit-keyphrase-tag>input{width:100%;padding:8px 10px;border:1px solid #E8E8EB;border-radius:3px}.aioseo-post-general .aioseo-keyphrase-tag .aioseo-edit-keyphrase-tag .keyphrase-delete{position:absolute;top:2px;width:16px;height:16px;display:block;cursor:pointer}[dir=ltr] .aioseo-post-general .aioseo-keyphrase-tag .aioseo-edit-keyphrase-tag .keyphrase-delete{right:10px}[dir=rtl] .aioseo-post-general .aioseo-keyphrase-tag .aioseo-edit-keyphrase-tag .keyphrase-delete{left:10px}.aioseo-post-general .aioseo-keyphrase-tag .aioseo-edit-keyphrase-tag .keyphrase-delete:hover{color:#df2a4a}.aioseo-post-general .aioseo-keyphrase-tag:hover .keyphrase-edit{opacity:1}.aioseo-post-general .aioseo-analysis-detail{margin:16px 0}.aioseo-post-general .aioseo-analysis-detail:last-child{margin-bottom:0}[dir=ltr] .aioseo-post-general .aioseo-analysis-detail+.aioseo-tooltip{margin-left:0}[dir=rtl] .aioseo-post-general .aioseo-analysis-detail+.aioseo-tooltip{margin-right:0}.aioseo-post-general .aioseo-analysis-detail+.aioseo-tooltip .add-keyphrase{margin-top:4px}.aioseo-post-general .analysis-wrapper{border-top:1px solid #E8E8EB}.aioseo-post-general .analysis-loading{position:relative;margin-top:16px}.aioseo-post-general .meta-keywords-alert{margin-bottom:20px}.aioseo-modal-content .aioseo-post-general .snippet-description-row{border:none;margin-bottom:0!important;padding-bottom:0!important}.aioseo-post-general .snippet-preview-row .aioseo-google-search-preview{border:1px solid #D0D1D7;border-radius:3px;padding:10px;max-width:610px}.aioseo-post-general .snippet-preview-row .aioseo-google-search-preview--mobile{max-width:375px}.aioseo-post-general .snippet-preview-row .settings-name .name{align-items:start;flex-direction:column;gap:12px;white-space:nowrap}.aioseo-modal-content .aioseo-post-general .snippet-preview-row .settings-name .name{align-items:center;display:grid;grid-template-columns:auto 1fr;justify-items:end}.aioseo-post-general .snippet-preview-row .settings-name .name .aioseo-radio-toggle{gap:10px}.aioseo-post-general .snippet-preview-row .settings-name .name .popper{max-width:260px}.edit-post-sidebar .aioseo-post-general .snippet-preview-row{padding-bottom:0!important;border-bottom:none}.aioseo-post-general .cornerstone-content-row .cornerstone-content-panel{display:flex;flex-flow:column}.aioseo-post-general .cornerstone-content-row .cornerstone-content-panel p{order:2}.aioseo-post-general .aioseo-alert{margin-bottom:5px}.aioseo-post-general .aioseo-alert.inline-upsell{margin-top:10px}.edit-post-sidebar .aioseo-button.edit-snippet{display:inline-flex}.edit-post-sidebar .snippet-focus-keyphrases-row{border-bottom:none;margin-bottom:0!important}.edit-post-sidebar .card-focus-keyphrase,.edit-post-sidebar .card-additional-keyphrase,.edit-post-sidebar .card-basic-seo,.edit-post-sidebar .card-title-seo,.edit-post-sidebar .card-readability-seo,.edit-post-sidebar .card-cornerstone-content{margin:0 -1rem;box-shadow:none;border:none;border-top:1px solid #E8E8EB}.edit-post-sidebar .card-focus-keyphrase .header,.edit-post-sidebar .card-additional-keyphrase .header,.edit-post-sidebar .card-basic-seo .header,.edit-post-sidebar .card-title-seo .header,.edit-post-sidebar .card-readability-seo .header,.edit-post-sidebar .card-cornerstone-content .header{padding:1rem;border-bottom:none;font-size:14px;font-weight:600}.edit-post-sidebar .card-focus-keyphrase .content,.edit-post-sidebar .card-additional-keyphrase .content,.edit-post-sidebar .card-basic-seo .content,.edit-post-sidebar .card-title-seo .content,.edit-post-sidebar .card-readability-seo .content,.edit-post-sidebar .card-cornerstone-content .content{padding:16px;font-size:14px;border-top:1px solid #E8E8EB}.edit-post-sidebar .card-focus-keyphrase .aioseo-analysis-detail:last-of-type,.edit-post-sidebar .card-additional-keyphrase .aioseo-analysis-detail:last-of-type,.edit-post-sidebar .card-basic-seo .aioseo-analysis-detail:last-of-type,.edit-post-sidebar .card-title-seo .aioseo-analysis-detail:last-of-type,.edit-post-sidebar .card-readability-seo .aioseo-analysis-detail:last-of-type,.edit-post-sidebar .card-cornerstone-content .aioseo-analysis-detail:last-of-type{margin-bottom:0}.edit-post-sidebar .card-focus-keyphrase .aioseo-analysis-detail:last-of-type .title,.edit-post-sidebar .card-additional-keyphrase .aioseo-analysis-detail:last-of-type .title,.edit-post-sidebar .card-basic-seo .aioseo-analysis-detail:last-of-type .title,.edit-post-sidebar .card-title-seo .aioseo-analysis-detail:last-of-type .title,.edit-post-sidebar .card-readability-seo .aioseo-analysis-detail:last-of-type .title,.edit-post-sidebar .card-cornerstone-content .aioseo-analysis-detail:last-of-type .title{margin-bottom:0}.edit-post-sidebar .card-focus-keyphrase .aioseo-analysis-detail{margin:16px 0!important}.edit-post-sidebar .card-focus-keyphrase .aioseo-analysis-detail:empty{margin:16px}.edit-post-sidebar .card-focus-keyphrase .add-keyphrase{width:100%;font-size:14px}.edit-post-sidebar .card-focus-keyphrase .aioseo-analysis-detail,.edit-post-sidebar .card-additional-keyphrase .aioseo-analysis-detail{margin:0 0 16px!important}.edit-post-sidebar .card-focus-keyphrase .add-keyphrase,.edit-post-sidebar .card-additional-keyphrase .add-keyphrase{width:100%}.edit-post-sidebar .card-readability-seo{border-bottom:1px solid #E8E8EB}.edit-post-sidebar .card-readability-seo .aioseo-toggle{margin-bottom:14px}.edit-post-sidebar .aioseo-keyphrase-tag{display:block;margin-bottom:16px}[dir=ltr] .edit-post-sidebar .aioseo-keyphrase-tag{margin-right:0}[dir=rtl] .edit-post-sidebar .aioseo-keyphrase-tag{margin-left:0}.edit-post-sidebar .aioseo-keyphrase-tag:after{content:none!important}.edit-post-sidebar .aioseo-keyphrase-tag.selected{border:2px solid #E8E8EB}.edit-post-sidebar .aioseo-keyphrase-tag.selected:before,.edit-post-sidebar .aioseo-keyphrase-tag.selected:after{content:none}.edit-post-sidebar .aioseo-keyphrase-tag .aioseo-add-keyphrase-tag{display:flex;width:100%;align-items:center}.edit-post-sidebar .aioseo-keyphrase-tag .aioseo-add-keyphrase-tag .keyphrase-score{flex:1}[dir=ltr] .edit-post-sidebar .aioseo-keyphrase-tag .aioseo-add-keyphrase-tag .keyphrase-score{text-align:right}[dir=rtl] .edit-post-sidebar .aioseo-keyphrase-tag .aioseo-add-keyphrase-tag .keyphrase-score{text-align:left}.edit-post-sidebar .card-basic-seo .aioseo-analysis-detail,.edit-post-sidebar .card-title-seo .aioseo-analysis-detail,.edit-post-sidebar .card-readability-seo .aioseo-analysis-detail{margin-top:0}.edit-post-sidebar .analysis-wrapper{border-top:none}.aioseo-modal-content .aioseo-settings-row{--aioseo-gutter: 10px;row-gap:12px}.aioseo-modal-content .aioseo-settings-row .settings-name .name{margin:0}.aioseo-modal-content>.aioseo-settings-row{border:none;margin-bottom:0!important}.aioseo-modal-content .snippet-title-row,.aioseo-modal-content .snippet-description-row{position:relative;display:block}.aioseo-modal-content .snippet-title-row .settings-name,.aioseo-modal-content .snippet-description-row .settings-name{margin-bottom:8px}.aioseo-modal-content .snippet-title-row .aioseo-description,.aioseo-modal-content .snippet-description-row .aioseo-description{display:none}@media screen and (max-width: 520px){.aioseo-modal-content .snippet-title-row .add-tags .aioseo-add-template-tag,.aioseo-modal-content .snippet-description-row .add-tags .aioseo-add-template-tag{display:none}}.aioseo-modal-content .snippet-title-row{margin-top:12px}.aioseo-modal-content .snippet-pillar-row{display:none}.aioseo-modal-content .component-wrapper .aioseo-tabs .var-tab:not(.var-tab--active){min-width:72px!important;margin:0!important}.aioseo-modal-content .component-wrapper .aioseo-tabs .var-tab:hover{background-color:#e2e3e6}.aioseo-modal-content .component-wrapper .aioseo-tabs .var-tab:before{border-radius:100%!important;display:none}.aioseo-modal-content .component-wrapper .aioseo-tabs .var-tab .tab-label{display:inline!important}.aioseo-link-assistant-sidebar{padding:20px 16px}.aioseo-link-assistant-sidebar .open-link-assistant-modal{margin-top:12px;border:1px solid #DCDDE1;align-items:center}.aioseo-link-assistant-sidebar .open-link-assistant-modal svg{width:10px;height:10px}[dir=ltr] .aioseo-link-assistant-sidebar .open-link-assistant-modal svg{margin-right:8px}[dir=rtl] .aioseo-link-assistant-sidebar .open-link-assistant-modal svg{margin-left:8px}.aioseo-link-assistant-sidebar .open-link-assistant-copy>.col-md-3{display:none}.aioseo-link-assistant-confirmation-modal .modal-container{max-width:650px!important}.aioseo-link-assistant-confirmation-modal .aioseo-modal-body{padding:20px 40px 40px;display:flex;align-items:center!important;justify-content:center;flex-direction:column;position:relative}.aioseo-link-assistant-confirmation-modal .aioseo-button:not(.close){margin-top:16px}.aioseo-link-assistant-confirmation-modal h3{font-size:20px;margin-bottom:16px;text-align:center}.aioseo-link-assistant-confirmation-modal .reset-description{font-size:16px;color:#141b38;margin-bottom:16px;text-align:center;max-width:515px}.aioseo-link-assistant-confirmation-modal button.close{position:absolute;top:11px;width:24px;height:24px;background-color:#fff;border:none;display:flex;align-items:center}[dir=ltr] .aioseo-link-assistant-confirmation-modal button.close{right:11px}[dir=rtl] .aioseo-link-assistant-confirmation-modal button.close{left:11px}.aioseo-link-assistant-confirmation-modal button.close svg.aioseo-close{cursor:pointer;width:14px;height:14px}.aioseo-link-assistant-confirmation-modal .aioseo-description{max-width:510px;text-align:center}.aioseo-app .aioseo-link-assistant-phrase .aioseo-tooltip{display:inline;margin:0;font-size:0px;line-height:22px}.aioseo-app .aioseo-link-assistant-phrase .aioseo-tooltip span{font-size:14px;white-space:pre-wrap}.aioseo-app .aioseo-link-assistant-phrase .aioseo-tooltip .anchor{text-decoration:underline;color:#005ae0;white-space:pre-wrap}.aioseo-app .aioseo-link-assistant-phrase .aioseo-tooltip .anchor:hover{cursor:pointer}.aioseo-app .aioseo-link-assistant-phrase .aioseo-tooltip a.tooltip-url{text-decoration:underline;color:#fff}.aioseo-app .aioseo-link-assistant-phrase .aioseo-tooltip a.tooltip-url:hover{text-decoration:none}[dir=ltr] .aioseo-app .aioseo-link-assistant-phrase .icons{margin-left:10px}[dir=rtl] .aioseo-app .aioseo-link-assistant-phrase .icons{margin-right:10px}.aioseo-link-assistant,.aioseo-modal.aioseo-link-assistant-modal{padding:0!important}.aioseo-link-assistant .link-assistant-inner-table,.aioseo-modal.aioseo-link-assistant-modal .link-assistant-inner-table{padding-inline:16px}.aioseo-link-assistant .aioseo-wp-table tbody th.check-column,.aioseo-link-assistant .aioseo-wp-table tbody td,.aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table tbody th.check-column,.aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table tbody td{font-size:14px}.aioseo-link-assistant .aioseo-wp-table tbody .date,.aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table tbody .date{font-size:13px}.aioseo-link-assistant .aioseo-wp-table tr.edit-row .edit-row-content,.aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table tr.edit-row .edit-row-content,.aioseo-link-assistant .aioseo-wp-table tr.edit-row .edit-row-content .wrapper .border,.aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table tr.edit-row .edit-row-content .wrapper .border{padding:0}.aioseo-link-assistant .aioseo-wp-table .aioseo-wp-table-header,.aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table .aioseo-wp-table-header{row-gap:16px}.aioseo-link-assistant .aioseo-wp-table .tablenav.top,.aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table .tablenav.top{margin-bottom:16px}.aioseo-link-assistant .aioseo-wp-table button.toggle-row-button,.aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table button.toggle-row-button{display:flex;width:30px;height:26px;padding:0;justify-content:center;align-items:center;background-color:#fff;border:1px solid #DCDDE1;border-radius:3px}.aioseo-link-assistant .aioseo-wp-table button.toggle-row-button:hover,.aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table button.toggle-row-button:hover{cursor:pointer;background-color:#f9f9fa}.aioseo-link-assistant .aioseo-wp-table button.toggle-row-button.active,.aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table button.toggle-row-button.active{background-color:#005ae0;border:1px solid #005AE0}.aioseo-link-assistant .aioseo-wp-table button.toggle-row-button.active:hover,.aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table button.toggle-row-button.active:hover{background-color:#1a82ea}.aioseo-link-assistant .aioseo-wp-table button.toggle-row-button.active svg.aioseo-caret,.aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table button.toggle-row-button.active svg.aioseo-caret{color:#fff}[dir=ltr] .aioseo-link-assistant .aioseo-wp-table button.toggle-row-button.active svg.aioseo-caret,[dir=ltr] .aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table button.toggle-row-button.active svg.aioseo-caret{transform:rotate(-180deg)}[dir=rtl] .aioseo-link-assistant .aioseo-wp-table button.toggle-row-button.active svg.aioseo-caret,[dir=rtl] .aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table button.toggle-row-button.active svg.aioseo-caret{transform:rotate(180deg)}.aioseo-link-assistant .aioseo-wp-table button.toggle-row-button svg.aioseo-caret,.aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table button.toggle-row-button svg.aioseo-caret{margin:0;height:20px;width:20px;color:#8c8f9a;transition:transform .3s}[dir=ltr] .aioseo-link-assistant .aioseo-wp-table button.toggle-row-button svg.aioseo-caret,[dir=ltr] .aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table button.toggle-row-button svg.aioseo-caret{transform:rotate(-90deg)}[dir=rtl] .aioseo-link-assistant .aioseo-wp-table button.toggle-row-button svg.aioseo-caret,[dir=rtl] .aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table button.toggle-row-button svg.aioseo-caret{transform:rotate(90deg)}.aioseo-link-assistant .aioseo-wp-table .row-actions a,.aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table .row-actions a{font-size:13px;line-height:150%}.aioseo-link-assistant .aioseo-wp-table .row-actions a.delete-all-links,.aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table .row-actions a.delete-all-links{color:#df2a4a}[dir=ltr] .aioseo-link-assistant .aioseo-wp-table svg,[dir=ltr] .aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table svg{margin-right:11.22px}[dir=rtl] .aioseo-link-assistant .aioseo-wp-table svg,[dir=rtl] .aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table svg{margin-left:11.22px}.aioseo-link-assistant .aioseo-wp-table svg.aioseo-link-external,.aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table svg.aioseo-link-external{color:#005ae0;width:10.5px;height:10.5px}.aioseo-link-assistant .aioseo-wp-table svg.aioseo-new-page,.aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table svg.aioseo-new-page{color:#434960;width:9.33px;height:11.67px}.aioseo-link-assistant .aioseo-tooltip .popper.action a.tooltip-url,.aioseo-modal.aioseo-link-assistant-modal .aioseo-tooltip .popper.action a.tooltip-url{white-space:normal!important}.aioseo-link-assistant .aioseo-wp-table.link-assistant-inner-table .wp-table table tbody .aioseo-tooltip,.aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table.link-assistant-inner-table .wp-table table tbody .aioseo-tooltip{display:inline-block}[dir=ltr] .aioseo-link-assistant .aioseo-wp-table.link-assistant-inner-table .wp-table table tbody .aioseo-tooltip,[dir=ltr] .aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table.link-assistant-inner-table .wp-table table tbody .aioseo-tooltip{margin-left:0}[dir=rtl] .aioseo-link-assistant .aioseo-wp-table.link-assistant-inner-table .wp-table table tbody .aioseo-tooltip,[dir=rtl] .aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table.link-assistant-inner-table .wp-table table tbody .aioseo-tooltip{margin-right:0}.aioseo-link-assistant .aioseo-wp-table.link-assistant-inner-table .wp-table table tbody svg.aioseo-trash,.aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table.link-assistant-inner-table .wp-table table tbody svg.aioseo-trash{width:18px;height:22px;color:#8c8f9a;cursor:pointer;transition:color .1s ease;margin-top:2px}.aioseo-link-assistant .aioseo-wp-table.link-assistant-inner-table .wp-table table tbody svg.aioseo-trash:hover,.aioseo-modal.aioseo-link-assistant-modal .aioseo-wp-table.link-assistant-inner-table .wp-table table tbody svg.aioseo-trash:hover{color:#df2a4a}.aioseo-link-assistant .aioseo-tabs.link-tabs,.aioseo-modal.aioseo-link-assistant-modal .aioseo-tabs.link-tabs{border-bottom:1px solid #E8E8EB;background-color:#fff}[dir=ltr] .aioseo-link-assistant .aioseo-tabs.link-tabs .aioseo-mobile-tabs,[dir=ltr] .aioseo-modal.aioseo-link-assistant-modal .aioseo-tabs.link-tabs .aioseo-mobile-tabs{margin-left:10px}[dir=rtl] .aioseo-link-assistant .aioseo-tabs.link-tabs .aioseo-mobile-tabs,[dir=rtl] .aioseo-modal.aioseo-link-assistant-modal .aioseo-tabs.link-tabs .aioseo-mobile-tabs{margin-right:10px}.aioseo-link-assistant .aioseo-tabs.link-tabs .var-tab,.aioseo-modal.aioseo-link-assistant-modal .aioseo-tabs.link-tabs .var-tab{display:flex;align-items:center;column-gap:11.75px}.aioseo-link-assistant .aioseo-tabs.link-tabs svg,.aioseo-modal.aioseo-link-assistant-modal .aioseo-tabs.link-tabs svg{width:11px;height:11px;margin-top:3px}[dir=ltr] .aioseo-link-assistant .aioseo-tabs.link-tabs svg,[dir=ltr] .aioseo-modal.aioseo-link-assistant-modal .aioseo-tabs.link-tabs svg{margin-right:0}[dir=rtl] .aioseo-link-assistant .aioseo-tabs.link-tabs svg,[dir=rtl] .aioseo-modal.aioseo-link-assistant-modal .aioseo-tabs.link-tabs svg{margin-left:0}.aioseo-link-assistant .aioseo-tabs.link-tabs svg.aioseo-link-internal-inbound,.aioseo-link-assistant .aioseo-tabs.link-tabs svg.aioseo-link-internal-outbound,.aioseo-modal.aioseo-link-assistant-modal .aioseo-tabs.link-tabs svg.aioseo-link-internal-inbound,.aioseo-modal.aioseo-link-assistant-modal .aioseo-tabs.link-tabs svg.aioseo-link-internal-outbound{color:#00aa63}.aioseo-link-assistant .aioseo-tabs.link-tabs svg.aioseo-link-external,.aioseo-modal.aioseo-link-assistant-modal .aioseo-tabs.link-tabs svg.aioseo-link-external{color:#005ae0}.aioseo-link-assistant .aioseo-tabs.link-tabs svg.aioseo-link-affiliate,.aioseo-modal.aioseo-link-assistant-modal .aioseo-tabs.link-tabs svg.aioseo-link-affiliate{color:#f18200;width:12px;height:12px;margin-top:2px}.aioseo-link-assistant .aioseo-tabs.link-tabs svg.aioseo-link-suggestion,.aioseo-modal.aioseo-link-assistant-modal .aioseo-tabs.link-tabs svg.aioseo-link-suggestion{color:#2c324c;width:16.67px;height:8.33px}.aioseo-link-assistant .aioseo-tabs svg,.aioseo-modal.aioseo-link-assistant-modal .aioseo-tabs svg{display:inline-block!important}.aioseo-link-assistant div.links-bottom,.aioseo-modal.aioseo-link-assistant-modal div.links-bottom{display:flex;flex-direction:row}.aioseo-link-assistant div.links-bottom:has(a,button),.aioseo-modal.aioseo-link-assistant-modal div.links-bottom:has(a,button){padding:17px 17px 24px}.aioseo-link-assistant div.links-bottom a,.aioseo-modal.aioseo-link-assistant-modal div.links-bottom a{text-decoration:underline}.aioseo-link-assistant div.links-bottom a.link-delete,.aioseo-modal.aioseo-link-assistant-modal div.links-bottom a.link-delete{color:#df2a4a!important}.aioseo-link-assistant div.links-bottom a:hover,.aioseo-modal.aioseo-link-assistant-modal div.links-bottom a:hover{text-decoration:none;cursor:pointer}.aioseo-link-assistant div.links-bottom .links-bottom-left,.aioseo-modal.aioseo-link-assistant-modal div.links-bottom .links-bottom-left{display:flex;flex:1 1 auto;column-gap:28px;align-items:center}.aioseo-link-assistant div.links-bottom .links-bottom-left div,.aioseo-modal.aioseo-link-assistant-modal div.links-bottom .links-bottom-left div{display:flex;align-items:center}[dir=ltr] .aioseo-link-assistant div.links-bottom .links-bottom-left div svg,[dir=ltr] .aioseo-modal.aioseo-link-assistant-modal div.links-bottom .links-bottom-left div svg{margin-right:10px}[dir=rtl] .aioseo-link-assistant div.links-bottom .links-bottom-left div svg,[dir=rtl] .aioseo-modal.aioseo-link-assistant-modal div.links-bottom .links-bottom-left div svg{margin-left:10px}.aioseo-link-assistant div.links-bottom .links-bottom-left button svg,.aioseo-modal.aioseo-link-assistant-modal div.links-bottom .links-bottom-left button svg{margin-top:2.5px;width:14px;height:14px;color:#fff}[dir=ltr] .aioseo-link-assistant div.links-bottom .links-bottom-left button svg,[dir=ltr] .aioseo-modal.aioseo-link-assistant-modal div.links-bottom .links-bottom-left button svg{margin-right:10px}[dir=rtl] .aioseo-link-assistant div.links-bottom .links-bottom-left button svg,[dir=rtl] .aioseo-modal.aioseo-link-assistant-modal div.links-bottom .links-bottom-left button svg{margin-left:10px}.aioseo-link-assistant div.links-bottom .links-bottom-left svg.aioseo-link-external,.aioseo-modal.aioseo-link-assistant-modal div.links-bottom .links-bottom-left svg.aioseo-link-external{margin-top:3.5px;width:11px;height:11px;color:#005ae0}.aioseo-link-assistant div.links-bottom .links-bottom-right,.aioseo-modal.aioseo-link-assistant-modal div.links-bottom .links-bottom-right{display:flex;align-items:center}.aioseo-modal.aioseo-link-assistant-modal .modal-wrapper .modal-container{max-width:1300px}.aioseo-modal.aioseo-link-assistant-modal .modal-body{align-items:start;padding:0 0 20px!important}.aioseo-modal.aioseo-link-assistant-modal .modal-body .title-header{margin:45px 0 0;align-self:start}.aioseo-modal.aioseo-link-assistant-modal .modal-body .title-header span{font-weight:700;font-size:20px;line-height:140%;color:#141b38}@media (max-width: 1500px){.aioseo-modal.aioseo-link-assistant-modal .modal-wrapper .modal-container{max-width:1000px}}@media (max-width: 1150px){.aioseo-modal.aioseo-link-assistant-modal .modal-wrapper .modal-container{max-width:750px}.aioseo-modal.aioseo-link-assistant-modal .modal-wrapper .modal-container .modal-body{padding:0 50px 50px}}.tab-facebook .facebook-image img{margin-top:20px;width:auto;max-width:525px;max-height:525px;height:auto}.tab-facebook .facebook-image.vertical img{max-width:158px;max-height:158px}.tab-facebook .aioseo-alert{margin-bottom:20px}.tab-twitter .twitter-image img{margin-top:20px;width:auto;max-width:525px;max-height:525px;height:auto}.tab-twitter .twitter-image.vertical img{max-width:158px;max-height:158px}.tab-twitter .aioseo-alert{margin-bottom:20px}.open-social-modal{margin:12px 0;border:1px solid #DCDDE1}[dir=ltr] .open-social-modal svg{margin-right:5px}[dir=rtl] .open-social-modal svg{margin-left:5px}.open-social-copy>.col-md-3{display:none}.aioseo-post-social .aioseo-row:has(.no-name){row-gap:0}.aioseo-post-social .aioseo-col.col-md-9{position:relative}.aioseo-post-social .aioseo-tabs{background:#fff!important;border:none!important;border-bottom:2px solid #E8E8EB!important}.aioseo-post-social svg.aioseo-pencil{width:12px;height:12px;color:#434960}[dir=ltr] .aioseo-post-social .aioseo-select .multiselect__tags{padding:9px 40px 9px 16px}[dir=rtl] .aioseo-post-social .aioseo-select .multiselect__tags{padding:9px 16px 9px 40px}.aioseo-modal-content .tab-facebook .aioseo-html-tags-editor .aioseo-description,.aioseo-modal-content .tab-twitter .aioseo-html-tags-editor .aioseo-description{display:none}.aioseo-modal-content .mobile-radio-buttons{display:block!important}.aioseo-modal-content .mobile-radio-buttons>.col-md-3{display:none}.aioseo-modal-content .mobile-radio-buttons>.col-md-9{padding:0;flex-basis:100%!important;max-width:100%!important}.aioseo-modal-content .aioseo-settings-row>.aioseo-col.col-md-3{padding-bottom:0}.aioseo-modal-content .aioseo-settings-row>.aioseo-col.col-md-3,.aioseo-modal-content .aioseo-settings-row>.aioseo-col.col-md-9{flex-basis:100%;max-width:100%}[dir=ltr] .aioseo-modal-content>.aioseo-settings-row .aioseo-tabs.internal{padding-left:40px}[dir=rtl] .aioseo-modal-content>.aioseo-settings-row .aioseo-tabs.internal{padding-right:40px}.aioseo-modal-content>.aioseo-settings-row .aioseo-tabs .var-tab{display:flex;align-items:center}.aioseo-modal-content>.aioseo-settings-row .aioseo-tabs .var-tab svg{display:inline;width:16px;height:16px}.aioseo-modal-content>.aioseo-settings-row .aioseo-tabs .var-tab:before{height:auto!important;border-radius:0!important}.aioseo-modal-content>.aioseo-settings-row .aioseo-tabs .var-tab .tab-label{display:inline!important}[dir=ltr] .aioseo-modal-content>.aioseo-settings-row .aioseo-tabs .var-tab .tab-label{margin-left:10px}[dir=rtl] .aioseo-modal-content>.aioseo-settings-row .aioseo-tabs .var-tab .tab-label{margin-right:10px}.aioseo-modal-content>.aioseo-settings-row.mobile-radio-buttons .aioseo-tabs{--tabs-item-horizontal-height: 46px}.aioseo-modal-content .aioseo-tab-content{position:relative;padding:16px}.open-redirects-modal[data-v-9484ed37]{margin:12px 0}.open-redirects-modal svg[data-v-9484ed37]{width:10px;height:10px}[dir=ltr] .open-redirects-modal svg[data-v-9484ed37]{margin-right:8px}[dir=rtl] .open-redirects-modal svg[data-v-9484ed37]{margin-left:8px}.aioseo-post-schema .graph-container,.aioseo-modal.aioseo-post-schema-modal .graph-container,.aioseo-modal.aioseo-post-schema-modal-cta .graph-container{flex:0 1 32.22%;max-width:309.33px}.aioseo-post-schema .graph-container .graph,.aioseo-modal.aioseo-post-schema-modal .graph-container .graph,.aioseo-modal.aioseo-post-schema-modal-cta .graph-container .graph{height:40px;border:1px solid #D0D1D7;border-radius:4px;display:flex;align-items:center}[dir=ltr] .aioseo-post-schema .graph-container .graph,[dir=ltr] .aioseo-modal.aioseo-post-schema-modal .graph-container .graph,[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .graph-container .graph{padding:4px 4px 4px 14px}[dir=rtl] .aioseo-post-schema .graph-container .graph,[dir=rtl] .aioseo-modal.aioseo-post-schema-modal .graph-container .graph,[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .graph-container .graph{padding:4px 14px 4px 4px}.aioseo-post-schema .graph-container .graph .left,.aioseo-modal.aioseo-post-schema-modal .graph-container .graph .left,.aioseo-modal.aioseo-post-schema-modal-cta .graph-container .graph .left{display:flex;align-items:center;overflow:hidden}.aioseo-post-schema .graph-container .graph .left span,.aioseo-modal.aioseo-post-schema-modal .graph-container .graph .left span,.aioseo-modal.aioseo-post-schema-modal-cta .graph-container .graph .left span{display:inline-block;font-size:14px;line-height:40px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}[dir=ltr] .aioseo-post-schema .graph-container .graph .left span,[dir=ltr] .aioseo-modal.aioseo-post-schema-modal .graph-container .graph .left span,[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .graph-container .graph .left span{padding-right:8px}[dir=rtl] .aioseo-post-schema .graph-container .graph .left span,[dir=rtl] .aioseo-modal.aioseo-post-schema-modal .graph-container .graph .left span,[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .graph-container .graph .left span{padding-left:8px}.aioseo-post-schema .graph-container .graph .left svg,.aioseo-modal.aioseo-post-schema-modal .graph-container .graph .left svg,.aioseo-modal.aioseo-post-schema-modal-cta .graph-container .graph .left svg{min-width:15px;max-width:15px;color:#141b38}[dir=ltr] .aioseo-post-schema .graph-container .graph .left svg,[dir=ltr] .aioseo-modal.aioseo-post-schema-modal .graph-container .graph .left svg,[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .graph-container .graph .left svg{margin-right:10px}[dir=rtl] .aioseo-post-schema .graph-container .graph .left svg,[dir=rtl] .aioseo-modal.aioseo-post-schema-modal .graph-container .graph .left svg,[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .graph-container .graph .left svg{margin-left:10px}.aioseo-post-schema .graph-container .graph .right,.aioseo-modal.aioseo-post-schema-modal .graph-container .graph .right,.aioseo-modal.aioseo-post-schema-modal-cta .graph-container .graph .right{flex:1 0 auto;justify-content:end}.aioseo-post-schema .graph-container .graph .right.action-buttons,.aioseo-modal.aioseo-post-schema-modal .graph-container .graph .right.action-buttons,.aioseo-modal.aioseo-post-schema-modal-cta .graph-container .graph .right.action-buttons{display:inline-flex;gap:5px}[dir=ltr] .aioseo-post-schema .graph-container .graph .right.action-buttons .aioseo-tooltip,[dir=ltr] .aioseo-modal.aioseo-post-schema-modal .graph-container .graph .right.action-buttons .aioseo-tooltip,[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .graph-container .graph .right.action-buttons .aioseo-tooltip{margin-left:4px}[dir=rtl] .aioseo-post-schema .graph-container .graph .right.action-buttons .aioseo-tooltip,[dir=rtl] .aioseo-modal.aioseo-post-schema-modal .graph-container .graph .right.action-buttons .aioseo-tooltip,[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .graph-container .graph .right.action-buttons .aioseo-tooltip{margin-right:4px}.aioseo-post-schema .graph-container .graph .right.action-buttons button,.aioseo-modal.aioseo-post-schema-modal .graph-container .graph .right.action-buttons button,.aioseo-modal.aioseo-post-schema-modal-cta .graph-container .graph .right.action-buttons button{line-height:1}.aioseo-post-schema .graph-container .graph .right.action-buttons button.small,.aioseo-modal.aioseo-post-schema-modal .graph-container .graph .right.action-buttons button.small,.aioseo-modal.aioseo-post-schema-modal-cta .graph-container .graph .right.action-buttons button.small{padding:0 9px}.aioseo-post-schema .graph-container .graph .right.action-buttons button.no-hover:hover,.aioseo-modal.aioseo-post-schema-modal .graph-container .graph .right.action-buttons button.no-hover:hover,.aioseo-modal.aioseo-post-schema-modal-cta .graph-container .graph .right.action-buttons button.no-hover:hover{background-color:#f3f4f5}.aioseo-post-schema .graph-container .graph .right.action-buttons button svg,.aioseo-modal.aioseo-post-schema-modal .graph-container .graph .right.action-buttons button svg,.aioseo-modal.aioseo-post-schema-modal-cta .graph-container .graph .right.action-buttons button svg{width:15px;height:15px;margin:0;color:#141b38}.aioseo-post-schema .graph-container .graph .right.action-buttons button svg.aioseo-circle-plus,.aioseo-modal.aioseo-post-schema-modal .graph-container .graph .right.action-buttons button svg.aioseo-circle-plus,.aioseo-modal.aioseo-post-schema-modal-cta .graph-container .graph .right.action-buttons button svg.aioseo-circle-plus{width:13.85px;height:13.85px}.aioseo-post-schema .graph-container .graph .right.action-buttons button svg.aioseo-pencil,.aioseo-modal.aioseo-post-schema-modal .graph-container .graph .right.action-buttons button svg.aioseo-pencil,.aioseo-modal.aioseo-post-schema-modal-cta .graph-container .graph .right.action-buttons button svg.aioseo-pencil{width:12.3px;height:12.3px}.aioseo-post-schema .graph-container .graph .right.action-buttons button svg.aioseo-trash,.aioseo-modal.aioseo-post-schema-modal .graph-container .graph .right.action-buttons button svg.aioseo-trash,.aioseo-modal.aioseo-post-schema-modal-cta .graph-container .graph .right.action-buttons button svg.aioseo-trash{width:9.4px;height:12px}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container{display:flex;flex:1;flex-direction:column}@media (min-height: 768px){.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container{min-height:658px}}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body{display:flex;flex:1;flex-direction:column}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body>.aioseo-tabs{margin-bottom:0;background-color:#fff}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-tabs{margin-bottom:0}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-tabs .tabs-scroller .var-tabs .var-tab{display:flex;align-items:center;font-size:14px;font-weight:700}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-tabs .tabs-scroller .var-tabs .var-tab svg{display:inline;width:20px;height:20px;color:#141b38}[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-tabs .tabs-scroller .var-tabs .var-tab svg{margin-right:8.75px}[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-tabs .tabs-scroller .var-tabs .var-tab svg{margin-left:8.75px}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .main .search{margin-top:20px}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-cta .header-text{font-size:18px}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row{padding-bottom:0;border-bottom:none}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row div.settings-name div.name{font-weight:700;font-size:14px;line-height:22px}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row div.settings-content{font-size:14px;line-height:22px}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row div.settings-content input,.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row div.settings-content .aioseo-editor .ql-editor p,.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row div.settings-content .aioseo-button,.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row div.settings-content .multiselect__option,.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row div.settings-content .multiselect__placeholder{font-size:14px}[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row div.settings-content .aioseo-radio{margin-right:20px}[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row div.settings-content .aioseo-radio{margin-left:20px}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row.image-field{margin-bottom:16px}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row.image-field .image-upload{display:flex}@media (max-width: 912px){.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row.image-field .image-upload{display:block}}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row.image-field .image-upload .aioseo-input-container{display:flex;max-width:445px;position:relative;width:100%}[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row.image-field .image-upload .aioseo-input-container{margin-right:8px}[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row.image-field .image-upload .aioseo-input-container{margin-left:8px}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row.image-field .image-upload .aioseo-input-container .aioseo-input{width:100%}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row.image-field .image-upload .insert-image{min-width:214px}[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row.image-field .image-upload .insert-image{margin-right:8px}[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row.image-field .image-upload .insert-image{margin-left:8px}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row.image-field .image-upload .insert-image svg.aioseo-circle-plus{width:13px;height:13px}[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row.image-field .image-upload .insert-image svg.aioseo-circle-plus{margin-right:10px}[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row.image-field .image-upload .insert-image svg.aioseo-circle-plus{margin-left:10px}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row.image-field .image-preview{margin-top:20px;width:auto;max-width:525px;max-height:525px;height:auto}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row .aioseo-editor{background-color:#fff}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row .aioseo-html-tags-editor,.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row .aioseo-html-tags-editor .add-tags .aioseo-add-template-tag{font-size:14px}[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row .aioseo-select .multiselect__tags{padding:7px 40px 7px 12px}[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row .aioseo-select .multiselect__tags{padding:7px 12px 7px 40px}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row .aioseo-select .multiselect__tags input,.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .aioseo-settings-row .aioseo-select .multiselect__tags span{font-size:14px}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .buttons{display:flex;padding-top:12px;border-top:1px solid #DCDDE1}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .buttons.new-graph{justify-content:end}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .buttons .left{flex:1 0 auto}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .buttons .left button.red{background-color:#df2a4a;color:#fff}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .buttons .left button.red:hover{background-color:#f83c5d}[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .buttons .right .aioseo-button:first-of-type{margin-right:16px}[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .buttons .right .aioseo-button:first-of-type{margin-left:16px}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body .cm-editor{border:1px solid #D0D1D7;font-size:14px}.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates{display:flex;flex-direction:column;flex-wrap:wrap;flex:1;padding:20px}.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .aioseo-tabs{margin-bottom:20px;background-color:#fff}.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main{display:flex;flex-direction:column;flex-wrap:wrap;flex:1}[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main>.aioseo-input input.medium{padding-left:40px}[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main>.aioseo-input input.medium{padding-right:40px}.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main>.aioseo-input input.medium::placeholder{font-size:14px}[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main>.aioseo-input .prepend-icon{margin-left:5px}[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main>.aioseo-input .prepend-icon{margin-right:5px}.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .schema-catalog .graphs,.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .your-templates .graphs{display:flex;flex-direction:row;flex-wrap:wrap;margin-top:20px;gap:20px 16px}.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .schema-catalog .graphs .graph .action-buttons .aioseo-tooltip:last-of-type,.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .your-templates .graphs .graph .action-buttons .aioseo-tooltip:last-of-type{margin:0}.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor{display:flex;flex-direction:column;flex-wrap:wrap;flex:1}.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container{flex:1;overflow-y:auto;overflow-x:hidden;max-height:calc(80vh - 250px)}[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container{margin-right:-16px;padding-right:16px}[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container{margin-left:-16px;padding-left:16px}.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .graph-selector,.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .template-name{margin-bottom:16px}.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .graph-selector .multiselect__content li,.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .template-name .multiselect__content li{display:flex;align-items:center;height:38px;font-size:14px;font-weight:700;line-height:22px}.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .graph-selector .multiselect__content li:hover,.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .template-name .multiselect__content li:hover{height:38px}.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .graph-selector .multiselect__content li span,.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .template-name .multiselect__content li span{width:100%;padding:4px 8px;font-size:14px}.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .graph-selector .multiselect__content li span svg,.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .template-name .multiselect__content li span svg{min-width:15px;max-width:15px}.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .graph-selector .multiselect__single,.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .graph-selector .multiselect__option,.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .template-name .multiselect__single,.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .template-name .multiselect__option{display:flex;align-items:center;font-size:14px}[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .graph-selector .multiselect__content svg,[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .graph-selector .multiselect__single svg,[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .template-name .multiselect__content svg,[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .template-name .multiselect__single svg{margin:0 10px 0 13px}[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .graph-selector .multiselect__content svg,[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .graph-selector .multiselect__single svg,[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .template-name .multiselect__content svg,[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .template-name .multiselect__single svg{margin:0 13px 0 10px}.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .template-name{margin-top:1px}[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .template-name{margin-left:1px}[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .template-name{margin-right:1px}.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .template-name input{font-size:14px}[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .template-name input{padding-left:40px}[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .template-name input{padding-right:40px}.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .template-name .prepend-icon{color:#141b38}[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .template-name .prepend-icon{margin:0 0 0 6px}[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .template-name .prepend-icon{margin:0 6px 0 0}.aioseo-modal.aioseo-post-schema-modal-cta .schema-templates .main .graph-editor .graph-editor-fields-container .template-name .prepend-icon svg{width:15px;height:15px}.aioseo-post-schema .no-graphs{margin-bottom:15px}.aioseo-post-schema .graphs{max-width:1000px;margin-bottom:20px;display:flex;flex-direction:row;flex-wrap:wrap;gap:20px 16px}.aioseo-post-schema .graphs:empty{display:none}.aioseo-post-schema .buttons{margin-top:20px}.aioseo-post-schema .buttons.no-margin{margin-top:0}[dir=ltr] .aioseo-post-schema .buttons button{margin-right:8px}[dir=rtl] .aioseo-post-schema .buttons button{margin-left:8px}.aioseo-post-schema .buttons:has(.no-graphs){margin-top:0}.aioseo-post-schema.sidebar div.sidebar-description{margin-bottom:15px}.aioseo-post-schema.sidebar .graphs{display:block}.aioseo-post-schema.sidebar .graphs .graph{margin:0 0 12px}.aioseo-post-schema.sidebar .buttons button{width:100%}.aioseo-post-schema.sidebar .buttons button:not(:first-of-type){margin-top:8px}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container{max-width:1000px;overflow:visible}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-header{display:flex;align-items:center}[dir=ltr] .aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-header{padding:0 0 0 18px}[dir=rtl] .aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-header{padding:0 18px 0 0}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container .modal-body{position:unset}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container svg.aioseo-circle-question-mark{width:16px;height:16px;color:#8c8f9a}.aioseo-modal.aioseo-post-schema-modal-cta .modal-wrapper .modal-container svg.aioseo-circle-question-mark:hover{cursor:pointer}.aioseo-post-schema svg.aioseo-article,.aioseo-post-schema svg.aioseo-dataset,.aioseo-post-schema svg.aioseo-custom-schema,.aioseo-post-schema svg.aioseo-web-page,.aioseo-modal.aioseo-post-schema-modal svg.aioseo-article,.aioseo-modal.aioseo-post-schema-modal svg.aioseo-dataset,.aioseo-modal.aioseo-post-schema-modal svg.aioseo-custom-schema,.aioseo-modal.aioseo-post-schema-modal svg.aioseo-web-page,.aioseo-modal.aioseo-post-schema-modal-cta svg.aioseo-article,.aioseo-modal.aioseo-post-schema-modal-cta svg.aioseo-dataset,.aioseo-modal.aioseo-post-schema-modal-cta svg.aioseo-custom-schema,.aioseo-modal.aioseo-post-schema-modal-cta svg.aioseo-web-page{width:12.5px;height:12.5px}.aioseo-post-schema svg.aioseo-book,.aioseo-modal.aioseo-post-schema-modal svg.aioseo-book,.aioseo-modal.aioseo-post-schema-modal-cta svg.aioseo-book{width:15px;height:11px}.aioseo-post-schema svg.aioseo-course,.aioseo-modal.aioseo-post-schema-modal svg.aioseo-course,.aioseo-modal.aioseo-post-schema-modal-cta svg.aioseo-course{width:15px;height:12.5px}.aioseo-post-schema svg.aioseo-event,.aioseo-modal.aioseo-post-schema-modal svg.aioseo-event,.aioseo-modal.aioseo-post-schema-modal-cta svg.aioseo-event{width:15px;height:12px}.aioseo-post-schema svg.aioseo-faq-page,.aioseo-modal.aioseo-post-schema-modal svg.aioseo-faq-page,.aioseo-modal.aioseo-post-schema-modal-cta svg.aioseo-faq-page{width:14px;height:14px}.aioseo-post-schema svg.aioseo-fact-check,.aioseo-modal.aioseo-post-schema-modal svg.aioseo-fact-check,.aioseo-modal.aioseo-post-schema-modal-cta svg.aioseo-fact-check{margin-top:2px;width:14px;height:11px}.aioseo-post-schema svg.aioseo-how-to,.aioseo-modal.aioseo-post-schema-modal svg.aioseo-how-to,.aioseo-modal.aioseo-post-schema-modal-cta svg.aioseo-how-to{width:12.5px;height:14.5px}.aioseo-post-schema svg.aioseo-job-posting,.aioseo-modal.aioseo-post-schema-modal svg.aioseo-job-posting,.aioseo-modal.aioseo-post-schema-modal-cta svg.aioseo-job-posting{width:14px;height:13.5px}.aioseo-post-schema svg.aioseo-movie,.aioseo-modal.aioseo-post-schema-modal svg.aioseo-movie,.aioseo-modal.aioseo-post-schema-modal-cta svg.aioseo-movie{width:14px;height:11.2px}.aioseo-post-schema svg.aioseo-music,.aioseo-modal.aioseo-post-schema-modal svg.aioseo-music,.aioseo-modal.aioseo-post-schema-modal-cta svg.aioseo-music{width:8.5px;height:12.5px}.aioseo-post-schema svg.aioseo-person,.aioseo-modal.aioseo-post-schema-modal svg.aioseo-person,.aioseo-modal.aioseo-post-schema-modal-cta svg.aioseo-person{width:11.2px;height:11.5px}.aioseo-post-schema svg.aioseo-product,.aioseo-modal.aioseo-post-schema-modal svg.aioseo-product,.aioseo-modal.aioseo-post-schema-modal-cta svg.aioseo-product{width:13.2px;height:13.5px}.aioseo-post-schema svg.aioseo-recipe,.aioseo-modal.aioseo-post-schema-modal svg.aioseo-recipe,.aioseo-modal.aioseo-post-schema-modal-cta svg.aioseo-recipe{width:12.7px;height:13.7px}.aioseo-post-schema svg.aioseo-restaurant,.aioseo-modal.aioseo-post-schema-modal svg.aioseo-restaurant,.aioseo-modal.aioseo-post-schema-modal-cta svg.aioseo-restaurant{width:10.75px;height:13.6px}.aioseo-post-schema svg.aioseo-service,.aioseo-modal.aioseo-post-schema-modal svg.aioseo-service,.aioseo-modal.aioseo-post-schema-modal-cta svg.aioseo-service{width:14.75px;height:14.1px}.aioseo-post-schema svg.aioseo-software,.aioseo-modal.aioseo-post-schema-modal svg.aioseo-software,.aioseo-modal.aioseo-post-schema-modal-cta svg.aioseo-software{width:13.85px;height:11.2px}.aioseo-post-schema svg.aioseo-video,.aioseo-modal.aioseo-post-schema-modal svg.aioseo-video,.aioseo-modal.aioseo-post-schema-modal-cta svg.aioseo-video{width:13.8px;height:11.15px}.aioseo-post-schema-confirmation-modal .modal-container,.aioseo-post-schema-naming-modal .modal-container{max-width:650px!important}.aioseo-post-schema-confirmation-modal .aioseo-button:not(.close),.aioseo-post-schema-naming-modal .aioseo-button:not(.close){margin-top:16px}.aioseo-post-schema-confirmation-modal .aioseo-modal-body,.aioseo-post-schema-naming-modal .aioseo-modal-body{padding:20px 40px 40px;display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative}.aioseo-post-schema-confirmation-modal h3,.aioseo-post-schema-naming-modal h3{font-size:20px;margin-bottom:16px;text-align:center}.aioseo-post-schema-confirmation-modal .reset-description,.aioseo-post-schema-naming-modal .reset-description{font-size:16px;color:#141b38;margin-bottom:16px;text-align:center;max-width:515px}.aioseo-post-schema-confirmation-modal button.close,.aioseo-post-schema-naming-modal button.close{position:absolute;top:11px;width:24px;height:24px;background-color:#fff;border:none;display:flex;align-items:center}[dir=ltr] .aioseo-post-schema-confirmation-modal button.close,[dir=ltr] .aioseo-post-schema-naming-modal button.close{right:11px}[dir=rtl] .aioseo-post-schema-confirmation-modal button.close,[dir=rtl] .aioseo-post-schema-naming-modal button.close{left:11px}.aioseo-post-schema-confirmation-modal button.close svg.aioseo-close,.aioseo-post-schema-naming-modal button.close svg.aioseo-close{cursor:pointer;width:14px;height:14px}.aioseo-post-schema-confirmation-modal .aioseo-description,.aioseo-post-schema-naming-modal .aioseo-description{max-width:510px;text-align:center}.aioseo-seo-revision-list-item[data-v-20175fdb]{align-items:center;background-color:#f0f6ff;display:flex;flex-wrap:wrap;font-size:14px;gap:8px;position:relative}.aioseo-seo-revision-list-item *[data-v-20175fdb]{line-height:normal}.aioseo-seo-revision-list-item+.aioseo-seo-revision-list-item[data-v-20175fdb]{background-color:#f3f4f5;margin:8px 0 0}.aioseo-seo-revision-list-item__author[data-v-20175fdb]{align-items:center;display:flex;gap:8px}.aioseo-seo-revision-list-item__author__avatar[data-v-20175fdb]{flex:0 0 16px;height:16px;width:16px}.aioseo-seo-revision-list-item__author__name[data-v-20175fdb]{color:#141b38;font-weight:400}.aioseo-seo-revision-list-item__date[data-v-20175fdb]{color:#8c8f9a;font-weight:400}.aioseo-seo-revision-list-item__action[data-v-20175fdb]{align-items:center;display:flex;flex:1 1 auto;font-size:12px;gap:12px;justify-content:end}.aioseo-seo-revision-list-item__action__compare[data-v-20175fdb]{color:#005ae0}.aioseo-seo-revision-list-item__action__delete[data-v-20175fdb],.aioseo-seo-revision-list-item__action__view[data-v-20175fdb]{height:18px;width:18px}.aioseo-seo-revision-list-item__action__delete svg[data-v-20175fdb],.aioseo-seo-revision-list-item__action__view svg[data-v-20175fdb]{color:#8c8f9a}.aioseo-seo-revisions-list[data-v-7b502c37]{--border-size: 2px;--bullet-ms: 12px;--bullet-size: 12px;--item-p: 10px;position:relative}.aioseo-seo-revisions-list[data-v-7b502c37]:before{background-color:#d0d1d7;content:"";height:calc(100% - var(--item-p));position:absolute;top:var(--item-p);width:var(--border-size)}[dir=ltr] .aioseo-seo-revisions-list[data-v-7b502c37]:before{left:calc(var(--border-size) / 2)}[dir=rtl] .aioseo-seo-revisions-list[data-v-7b502c37]:before{right:calc(var(--border-size) / 2)}.aioseo-seo-revisions-list .aioseo-seo-revision-list-item[data-v-7b502c37]{padding:var(--item-p)}[dir=ltr] .aioseo-seo-revisions-list .aioseo-seo-revision-list-item[data-v-7b502c37]{margin-left:calc(var(--bullet-ms) * 2)}[dir=rtl] .aioseo-seo-revisions-list .aioseo-seo-revision-list-item[data-v-7b502c37]{margin-right:calc(var(--bullet-ms) * 2)}.aioseo-seo-revisions-list .aioseo-seo-revision-list-item[data-v-7b502c37]:before{background-color:#d0d1d7;border-radius:50%;content:"";height:var(--bullet-size);position:absolute;top:var(--item-p);width:var(--bullet-size)}[dir=ltr] .aioseo-seo-revisions-list .aioseo-seo-revision-list-item[data-v-7b502c37]:before{left:calc((var(--bullet-ms) + var(--border-size)) * -2)}[dir=rtl] .aioseo-seo-revisions-list .aioseo-seo-revision-list-item[data-v-7b502c37]:before{right:calc((var(--bullet-ms) + var(--border-size)) * -2)}.aioseo-seo-revisions-list .aioseo-seo-revision-list-item[data-v-7b502c37]:first-of-type:before{background-color:#005ae0}.aioseo-seo-revisions-list .aioseo-seo-revision-list-item[data-v-7b502c37]:last-of-type:after{background-color:#fff;content:"";height:calc(100% - (var(--item-p) + var(--bullet-size)));position:absolute;top:calc(var(--item-p) + var(--bullet-size));width:var(--border-size)}[dir=ltr] .aioseo-seo-revisions-list .aioseo-seo-revision-list-item[data-v-7b502c37]:last-of-type:after{left:calc(var(--bullet-ms) * -2 + var(--border-size) / 2)}[dir=rtl] .aioseo-seo-revisions-list .aioseo-seo-revision-list-item[data-v-7b502c37]:last-of-type:after{right:calc(var(--bullet-ms) * -2 + var(--border-size) / 2)}.aioseo-seo-revisions-sidebar__modal-body[data-v-5273d1c7]{padding:20px}.aioseo-seo-revisions-sidebar__modal-body div.aioseo-cta[data-v-5273d1c7]{padding:40px}.aioseo-seo-revisions-sidebar .aioseo-description[data-v-5273d1c7]{margin:0}.aioseo-seo-revisions[data-v-5e3c402f]{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,sans-serif;letter-spacing:normal}#aioseo-post-settings-sidebar .aioseo-seo-revisions[data-v-5e3c402f]{padding:12px}.aioseo-seo-revisions[data-v-5e3c402f] .text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aioseo-seo-revisions-count-badge{background-color:#d0d1d7;border-radius:50%;display:inline-flex;font-size:12px;font-style:normal;font-weight:700;height:24px;justify-content:center;line-height:24px;width:24px}[dir=ltr] .aioseo-seo-revisions-count-badge--ml{margin-left:6px}[dir=rtl] .aioseo-seo-revisions-count-badge--ml,[dir=ltr] .aioseo-seo-revisions-count-badge--mr{margin-right:6px}[dir=rtl] .aioseo-seo-revisions-count-badge--mr{margin-left:6px}.aioseo-seo-revisions-count-badge--sm{font-size:10px}.aioseo-seo-revisions-count-badge+*{line-height:normal;vertical-align:middle}.aioseo-post-settings,.aioseo-metabox .aioseo-post-settings{background:#fff;color:#141b38}.aioseo-post-settings .aioseo-tabs,.aioseo-metabox .aioseo-post-settings .aioseo-tabs{--tabs-item-horizontal-height: 50px;--tab-font-size: 14px;--tab-inactive-color: #434960;background:#f3f4f5}.aioseo-post-settings .aioseo-tabs .var-tab .icon,.aioseo-metabox .aioseo-post-settings .aioseo-tabs .var-tab .icon{display:none}.aioseo-post-settings .aioseo-tabs svg,.aioseo-metabox .aioseo-post-settings .aioseo-tabs svg{display:none}.aioseo-post-settings .aioseo-tabs svg.aioseo-caret,.aioseo-metabox .aioseo-post-settings .aioseo-tabs svg.aioseo-caret{display:inline}.aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button,.aioseo-metabox .aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button{display:flex;align-items:center;padding:12px;color:#2c324c;text-decoration:none}.aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button:not(:last-child),.aioseo-metabox .aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button:not(:last-child){border-bottom:1px solid #DDDDDD}.aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button:focus,.aioseo-metabox .aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button:focus{box-shadow:none}.aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button .icon,.aioseo-metabox .aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button .icon{display:inline;width:20px;height:20px}[dir=ltr] .aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button .icon,[dir=ltr] .aioseo-metabox .aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button .icon{margin-right:10px}[dir=rtl] .aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button .icon,[dir=rtl] .aioseo-metabox .aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button .icon{margin-left:10px}.aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button .name,.aioseo-metabox .aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button .name{font-weight:600}.aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button .aioseo-circle-information-solid,.aioseo-metabox .aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button .aioseo-circle-information-solid{color:#f18200}[dir=ltr] .aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button .aioseo-circle-information-solid,[dir=ltr] .aioseo-metabox .aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button .aioseo-circle-information-solid{margin-left:8px}[dir=rtl] .aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button .aioseo-circle-information-solid,[dir=rtl] .aioseo-metabox .aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button .aioseo-circle-information-solid{margin-right:8px}.aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button .aioseo-caret,.aioseo-metabox .aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button .aioseo-caret{width:24px;height:24px;cursor:pointer}[dir=ltr] .aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button .aioseo-caret,[dir=ltr] .aioseo-metabox .aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button .aioseo-caret{margin-left:auto;transform:rotate(-90deg)}[dir=rtl] .aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button .aioseo-caret,[dir=rtl] .aioseo-metabox .aioseo-post-settings .aioseo-sidepanel .aioseo-sidepanel-button .aioseo-caret{margin-right:auto;transform:rotate(90deg)}.aioseo-post-settings .aioseo-tab-title,.aioseo-metabox .aioseo-post-settings .aioseo-tab-title{display:flex;align-items:center;color:#2c324c;font-weight:600;padding:12px;border-bottom:1px solid #DDDDDD;background:#fff;position:sticky;z-index:1;top:0}.aioseo-post-settings .aioseo-tab-title svg,.aioseo-metabox .aioseo-post-settings .aioseo-tab-title svg{width:10px;height:10px;cursor:pointer}[dir=ltr] .aioseo-post-settings .aioseo-tab-title svg,[dir=ltr] .aioseo-metabox .aioseo-post-settings .aioseo-tab-title svg{margin-left:auto}[dir=rtl] .aioseo-post-settings .aioseo-tab-title svg,[dir=rtl] .aioseo-metabox .aioseo-post-settings .aioseo-tab-title svg{margin-right:auto}.aioseo-post-settings .aioseo-tab-content,.aioseo-metabox .aioseo-post-settings .aioseo-tab-content{background:#fff;border-top:0;padding:var(--aioseo-gutter);font-size:14px;position:relative}.aioseo-post-settings .aioseo-sidebar-content-title,.aioseo-metabox .aioseo-post-settings .aioseo-sidebar-content-title{font-weight:700;font-size:14px;padding-bottom:5px}.edit-post-sidebar .col-xs-12,.edit-post-sidebar .col-sm-6,.edit-post-sidebar .col-md-4,.edit-post-sidebar .col-md-3{width:100%;flex-basis:100%!important;max-width:100%!important}.edit-post-sidebar .components-panel{border-bottom:none}.edit-post-sidebar .aioseo-mobile-tabs{display:none}.edit-post-sidebar .aioseo-app{--aioseo-gutter: 12px}.edit-post-sidebar .aioseo-app input{border:1px solid #D0D1D7}.edit-post-sidebar .aioseo-app input:focus{border-color:#005ae0;box-shadow:0 0 0 1px #005ae0}.edit-post-sidebar .aioseo-app input::placeholder{color:#8c8f9a}.edit-post-sidebar .aioseo-app .aioseo-tab:not(.is-page-builder){position:relative;top:-45px}.edit-post-sidebar .aioseo-app .aioseo-textarea-autosize{border:1px solid #D0D1D7}.edit-post-sidebar .aioseo-app .aioseo-tab-content{padding:16px;border:none}.edit-post-sidebar .aioseo-app .aioseo-description{margin:0}.edit-post-sidebar .aioseo-app .route-fade-enter-active,.edit-post-sidebar .aioseo-app .route-fade-leave-active{transition:opacity .2s,transform .2s}.edit-post-sidebar .aioseo-app .route-fade-enter-from,.edit-post-sidebar .aioseo-app .route-fade-leave-active{position:absolute;top:0}.edit-post-sidebar .aioseo-settings-row{margin-bottom:16px;padding-bottom:16px}.edit-post-sidebar .aioseo-settings-row:last-of-type{border-bottom:0;margin-bottom:0!important;padding-bottom:0!important}.edit-post-sidebar .aioseo-settings-row>.aioseo-col{padding-top:0}.edit-post-sidebar .aioseo-settings-row .settings-name .name{font-size:14px;font-weight:700;margin-bottom:0}.aioseo-post-settings-modal .aioseo-modal-content .aioseo-tabs{--tabs-item-horizontal-height: 50px;--tab-font-size: 14px;--tab-inactive-color: #434960;background:#f3f4f5}.aioseo-post-settings-modal .aioseo-modal-content .aioseo-tabs .var-tab .icon{display:none}.aioseo-post-settings-modal .aioseo-modal-content .aioseo-tabs svg{display:none}.aioseo-post-settings-modal .aioseo-modal-content .aioseo-tabs svg.aioseo-caret{display:inline}.aioseo-post-settings-modal .aioseo-modal-content .aioseo-tabs.internal{border-bottom-width:1px!important}@media screen and (max-width: 520px){[dir=ltr] .aioseo-post-settings-modal .aioseo-modal-content .aioseo-tabs.internal{padding-left:20px!important}[dir=rtl] .aioseo-post-settings-modal .aioseo-modal-content .aioseo-tabs.internal{padding-right:20px!important}}@media only screen and (min-width: 782px){.aioseo-post-settings-modal .aioseo-modal-content .col-md-4{-ms-flex-preferred-size:33.33333333%!important;flex-basis:33.33333333%!important;max-width:33.33333333%!important}.aioseo-post-settings-modal .aioseo-modal-content .col-md-5{-ms-flex-preferred-size:41.66666667%!important;flex-basis:41.66666667%!important;max-width:41.66666667%!important}.aioseo-post-settings-modal .aioseo-modal-content .col-md-7{-ms-flex-preferred-size:58.33333333%!important;flex-basis:58.33333333%!important;max-width:58.33333333%!important}.aioseo-post-settings-modal .aioseo-modal-content .col-md-8{-ms-flex-preferred-size:66.66666667%!important;flex-basis:66.66666667%!important;max-width:66.66666667%!important}}.aioseo-redirects.aioseo-modal .bd{padding:20px}.aioseo-redirects.aioseo-modal .modal-wrapper .modal-container{max-width:1000px}.aioseo-post-settings-sidebar-vue>div{flex:1}.aioseo-post-settings-sidebar-vue .aioseo-loading-spinner{margin-top:30px} all-in-one-seo-pack/dist/Lite/assets/css/app.s9eMAOYT.css000064400000047677151222735770016774 0ustar00#wpadminbar #wp-admin-bar-aioseo-main .aioseo-logo.svg{width:26px;height:30px;background-repeat:no-repeat;background-size:20px;background-image:url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iI2ZmZiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBjbGFzcz0iYWlvc2VvLWdlYXIiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNOS45ODU0MiAxOS45NzA4QzE1LjUwMDIgMTkuOTcwOCAxOS45NzA4IDE1LjUwMDIgMTkuOTcwOCA5Ljk4NTQyQzE5Ljk3MDggNC40NzA2MyAxNS41MDAyIDAgOS45ODU0MiAwQzQuNDcwNjMgMCAwIDQuNDcwNjMgMCA5Ljk4NTQyQzAgMTUuNTAwMiA0LjQ3MDYzIDE5Ljk3MDggOS45ODU0MiAxOS45NzA4Wk04LjM5NTQxIDMuNjU0NjRDOC4yNjAxNiAzLjQ0ODUgOC4wMDk2IDMuMzUyMTEgNy43Nzk4NSAzLjQzMzI3QzcuNTE4MTYgMy41MjU3MiA3LjI2MjE4IDMuNjM0NDUgNy4wMTM0OSAzLjc1ODhDNi43OTUxOSAzLjg2Nzk2IDYuNjg1NjYgNC4xMTczMSA2LjczMzcyIDQuMzYwNDlMNi45MDQ5MyA1LjIyNjk0QzYuOTQ5IDUuNDQ5OTYgNi44NTggNS42NzYzIDYuNjg1MjIgNS44MjAwOUM2LjQxMjE2IDYuMDQ3MzQgNi4xNjAwNyA2LjMwNDI2IDUuOTM0MjEgNi41ODg2NEM1Ljc5MzgzIDYuNzY1MzkgNS41NzIzMyA2Ljg1OTA3IDUuMzUzNjEgNi44MTQ4OUw0LjUwNDI0IDYuNjQzM0M0LjI2NTY0IDYuNTk1MSA0LjAyMTU3IDYuNzA3ODggMy45MTU0NCA2LjkzMTIxQzMuODU1NDkgNy4wNTczOCAzLjc5ODg5IDcuMTg2MiAzLjc0NTgzIDcuMzE3NThDMy42OTI3NiA3LjQ0ODk2IDMuNjQzOTcgNy41ODEwNSAzLjU5OTM4IDcuNzEzNjlDMy41MjA0OCA3Ljk0ODQ3IDMuNjE1NzkgOC4yMDM5OCAzLjgxODM5IDguMzQxMzNMNC41Mzk1OCA4LjgzMDI3QzQuNzI1MjkgOC45NTYxNyA0LjgxNzc4IDkuMTgxOSA0Ljc5NTM0IDkuNDA4MjZDNC43NTkyNSA5Ljc3MjQ0IDQuNzYwNzIgMTAuMTM2IDQuNzk3NTYgMTAuNDkzNkM0LjgyMDg3IDEwLjcxOTggNC43MjkxNSAxMC45NDU5IDQuNTQzODggMTEuMDcyNEwzLjgyNDA4IDExLjU2NDJDMy42MjIwNSAxMS43MDIyIDMuNTI3NTkgMTEuOTU3OSAzLjYwNzEzIDEyLjE5MjNDMy42OTc3NCAxMi40NTkzIDMuODA0MyAxMi43MjA1IDMuOTI2MTUgMTIuOTc0M0M0LjAzMzEzIDEzLjE5NzEgNC4yNzc0OSAxMy4zMDg4IDQuNTE1ODEgMTMuMjU5OEw1LjM2NDk1IDEzLjA4NTFDNS41ODM1IDEzLjA0MDEgNS44MDUzMyAxMy4xMzMgNS45NDYyMyAxMy4zMDkzQzYuMTY4OTMgMTMuNTg3OSA2LjQyMDcxIDEzLjg0NTEgNi42OTk0IDE0LjA3NTZDNi44NzI2MSAxNC4yMTg4IDYuOTY0NDIgMTQuNDQ0OCA2LjkyMTEyIDE0LjY2OEw2Ljc1Mjk2IDE1LjUzNDhDNi43MDU3MiAxNS43NzgyIDYuODE2MjUgMTYuMDI3MyA3LjAzNTExIDE2LjEzNTZDNy4xNTg3NiAxNi4xOTY3IDcuMjg1IDE2LjI1NDUgNy40MTM3NSAxNi4zMDg2QzcuNTQyNTEgMTYuMzYyOCA3LjY3MTk2IDE2LjQxMjYgNy44MDE5NSAxNi40NTgxQzguMTgyMjQgMTYuNTkxMiA4LjcxNDQ5IDE2LjExNDcgOS4xMDggMTUuNzYyNUM5LjMwMjA1IDE1LjU4ODggOS40MjE3NCAxNS4zNDMgOS40MjMwMSAxNS4wNzk4QzkuNDIzMDEgMTUuMDc4NCA5LjQyMzAyIDE1LjA3NyA5LjQyMzAyIDE1LjA3NTZMOS40MjMwMSAxMy42MjYzQzkuNDIzMDEgMTMuNjEwOSA5LjQyMzYgMTMuNTk1NyA5LjQyNDc2IDEzLjU4MDZDOC4yNjI0OCAxMy4yOTcxIDcuMzk4MzggMTIuMjMwMSA3LjM5ODM4IDEwLjk1NzJWOS40MTgyM0M3LjM5ODM4IDkuMzAxMjUgNy40OTEzMSA5LjIwNjQyIDcuNjA1OTYgOS4yMDY0Mkg4LjMyNTg0VjcuNjkyMkM4LjMyNTg0IDcuNDgzMTIgOC40OTE5MyA3LjMxMzY0IDguNjk2ODMgNy4zMTM2NEM4LjkwMTcxIDcuMzEzNjQgOS4wNjc4MSA3LjQ4MzEyIDkuMDY3ODEgNy42OTIyVjkuMjA2NDJIMTEuMDE1NVY3LjY5MjJDMTEuMDE1NSA3LjQ4MzEyIDExLjE4MTYgNy4zMTM2NCAxMS4zODY1IDcuMzEzNjRDMTEuNTkxNCA3LjMxMzY0IDExLjc1NzUgNy40ODMxMiAxMS43NTc1IDcuNjkyMlY5LjIwNjQySDEyLjQ3NzNDMTIuNTkyIDkuMjA2NDIgMTIuNjg0OSA5LjMwMTI1IDEyLjY4NDkgOS40MTgyM1YxMC45NTcyQzEyLjY4NDkgMTIuMjcwNCAxMS43NjUzIDEzLjM2NDMgMTAuNTQ3NCAxMy42MDUxQzEwLjU0NzcgMTMuNjEyMSAxMC41NDc4IDEzLjYxOTIgMTAuNTQ3OCAxMy42MjYzTDEwLjU0NzggMTUuMDY5NEMxMC41NDc4IDE1LjMzNzcgMTAuNjcxMSAxNS41ODc5IDEwLjg3MSAxNS43NjIyQzExLjI3MTUgMTYuMTExNSAxMS44MTI5IDE2LjU4MzcgMTIuMTkxIDE2LjQ1MDJDMTIuNDUyNyAxNi4zNTc3IDEyLjcwODYgMTYuMjQ5IDEyLjk1NzMgMTYuMTI0NkMxMy4xNzU2IDE2LjAxNTUgMTMuMjg1MiAxNS43NjYxIDEzLjIzNzEgMTUuNTIyOUwxMy4wNjU5IDE0LjY1NjVDMTMuMDIxOCAxNC40MzM0IDEzLjExMjggMTQuMjA3MSAxMy4yODU2IDE0LjA2MzNDMTMuNTU4NyAxMy44MzYxIDEzLjgxMDcgMTMuNTc5MiAxNC4wMzY2IDEzLjI5NDhDMTQuMTc3IDEzLjExOCAxNC4zOTg1IDEzLjAyNDQgMTQuNjE3MiAxMy4wNjg1TDE1LjQ2NjYgMTMuMjQwMUMxNS43MDUyIDEzLjI4ODMgMTUuOTQ5MyAxMy4xNzU2IDE2LjA1NTQgMTIuOTUyMkMxNi4xMTUzIDEyLjgyNjEgMTYuMTcxOSAxMi42OTcyIDE2LjIyNSAxMi41NjU5QzE2LjI3ODEgMTIuNDM0NSAxNi4zMjY5IDEyLjMwMjQgMTYuMzcxNCAxMi4xNjk4QzE2LjQ1MDMgMTEuOTM1IDE2LjM1NSAxMS42Nzk1IDE2LjE1MjQgMTEuNTQyMUwxNS40MzEyIDExLjA1MzJDMTUuMjQ1NSAxMC45MjczIDE1LjE1MyAxMC43MDE1IDE1LjE3NTUgMTAuNDc1MkMxNS4yMTE2IDEwLjExMSAxNS4yMTAxIDkuNzQ3NDQgMTUuMTczMyA5LjM4OTg2QzE1LjE0OTkgOS4xNjM2MSAxNS4yNDE3IDguOTM3NTcgMTUuNDI2OSA4LjgxMUwxNi4xNDY3IDguMzE5MjdDMTYuMzQ4OCA4LjE4MTI2IDE2LjQ0MzIgNy45MjU1OCAxNi4zNjM3IDcuNjkxMTVDMTYuMjczMSA3LjQyNDExIDE2LjE2NjUgNy4xNjI5MiAxNi4wNDQ3IDYuOTA5MTVDMTUuOTM3NyA2LjY4NjM4IDE1LjY5MzMgNi41NzQ2MiAxNS40NTUgNi42MjM2NkwxNC42MDU5IDYuNzk4MzdDMTQuMzg3MyA2Ljg0MzM0IDE0LjE2NTUgNi43NTA0OCAxNC4wMjQ2IDYuNTc0MThDMTMuODAxOSA2LjI5NTU0IDEzLjU1MDEgNi4wMzgzMiAxMy4yNzE0IDUuODA3ODRDMTMuMDk4MiA1LjY2NDYgMTMuMDA2NCA1LjQzODU4IDEzLjA0OTcgNS4yMTU0TDEzLjIxNzkgNC4zNDg2OEMxMy4yNjUxIDQuMTA1MjEgMTMuMTU0NiAzLjg1NjE2IDEyLjkzNTcgMy43NDc4N0MxMi44MTIxIDMuNjg2NjkgMTIuNjg1OCAzLjYyODk1IDEyLjU1NzEgMy41NzQ4QzEyLjQyODMgMy41MjA2NSAxMi4yOTg5IDMuNDcwODYgMTIuMTY4OSAzLjQyNTM3QzExLjkzODggMy4zNDQ4NSAxMS42ODg0IDMuNDQyMTEgMTEuNTUzOCAzLjY0ODg0TDExLjA3NDYgNC4zODQ3NUMxMC45NTEzIDQuNTc0MjUgMTAuNzMgNC42Njg2MiAxMC41MDgyIDQuNjQ1NzNDMTAuMTUxMyA0LjYwODkgOS43OTUwMiA0LjYxMDM5IDkuNDQ0NTkgNC42NDc5OUM5LjIyMjg2IDQuNjcxNzcgOS4wMDEzNCA0LjU3ODE4IDguODc3MzEgNC4zODkxM0w4LjM5NTQxIDMuNjU0NjRaIiBmaWxsPSIjZmZmIiAvPjwvc3ZnPg==)!important}[dir=ltr] #wpadminbar #wp-admin-bar-aioseo-main .aioseo-logo.svg{float:left;background-position:0 6px}[dir=rtl] #wpadminbar #wp-admin-bar-aioseo-main .aioseo-logo.svg{float:right;background-position:100% 6px}#wpadminbar #wp-admin-bar-aioseo-main.new-notifications>.ab-item{background:#2c3338;color:#72aee6}#wpadminbar #wp-admin-bar-aioseo-pro-upgrade a{background-color:#1da867;padding-bottom:5px}#wpadminbar #wp-admin-bar-aioseo-pro-upgrade a span{font-weight:600}#wpadminbar #wp-admin-bar-aioseo-pro-license a{background-color:#1da867;padding-bottom:5px}#wpadminbar #wp-admin-bar-aioseo-pro-license a span{font-weight:600}#wpadminbar .aioseo-menu-notification-counter{display:inline-flex;vertical-align:top;box-sizing:border-box;padding:0;min-width:18px;height:18px;border-radius:9px;font-size:11px;line-height:1.6;text-align:center;justify-content:center}[dir=ltr] #wpadminbar .aioseo-menu-notification-counter{margin:7px 0 0 5px}[dir=rtl] #wpadminbar .aioseo-menu-notification-counter{margin:7px 5px 0 0}#wpadminbar .aioseo-menu-notification-counter span{line-height:1;font-size:11px}#wpadminbar .aioseo-menu-notification-counter.aioseo-menu-notification-counter-frontend{background-color:#d63638}#wpadminbar .aioseo-menu-notification-indicator{width:8px;height:8px;border-radius:50%;background-color:#d63638;line-height:1.6;animation:aioseo-menu-notification-indicator-pulse 1.5s infinite}[dir=ltr] #wpadminbar .aioseo-menu-notification-indicator{float:right;margin:10px 4px 0 0}[dir=rtl] #wpadminbar .aioseo-menu-notification-indicator{float:left;margin:10px 0 0 4px}#wpadminbar .aioseo-menu-new-indicator{color:#f18200;vertical-align:super;font-size:9px}[dir=ltr] #wpadminbar .aioseo-menu-new-indicator{padding-left:2px}[dir=rtl] #wpadminbar .aioseo-menu-new-indicator{padding-right:2px}#toplevel_page_aioseo .aioseo-menu-notification-indicator{margin:6px 0 0;width:8px;height:8px;border-radius:50%;background-color:#d63638;line-height:1.6;animation:aioseo-menu-notification-indicator-pulse 1.5s infinite}[dir=ltr] #toplevel_page_aioseo .aioseo-menu-notification-indicator{float:right}[dir=rtl] #toplevel_page_aioseo .aioseo-menu-notification-indicator{float:left}#toplevel_page_aioseo .wp-submenu-wrap li a{position:relative}#toplevel_page_aioseo .wp-submenu-wrap li a .aioseo-menu-new-indicator{position:absolute}#toplevel_page_aioseo .aioseo-menu-new-indicator{color:#f18200;vertical-align:super;font-size:9px}[dir=ltr] #toplevel_page_aioseo .aioseo-menu-new-indicator{padding-left:2px}[dir=rtl] #toplevel_page_aioseo .aioseo-menu-new-indicator{padding-right:2px}@keyframes aioseo-menu-notification-indicator-pulse{0%{box-shadow:0 0 #ca4a1f80}to{box-shadow:0 0 0 10px #ca4a1f00}}@media screen and (max-width: 782px){#wpadminbar #wp-admin-bar-aioseo-main{display:block;position:static}#wpadminbar #wp-admin-bar-aioseo-main .ab-item .text{display:none}#wpadminbar #wp-admin-bar-aioseo-main .aioseo-logo.svg{width:52px;height:46px;background-position:50% 8px;background-size:30px}}.aioseo-plugin-row .plugin-update-tr p:first-child:before{content:""}[dir=ltr] .aioseo-plugin-row .plugin-update-tr p:not(:first-child){padding-left:20px}[dir=rtl] .aioseo-plugin-row .plugin-update-tr p:not(:first-child){padding-right:20px}.aioseo-plugin-row .plugin-update-tr p:not(:first-child):before{content:" "}.aioseo-plugin-row .proupgrade a{color:#1da867;font-weight:600}body #most-recent-results{margin-top:0!important}body #wp-link-wrap{height:650px}body #wp-link-wrap #wp-link .query-results{position:initial}body #wp-link-wrap #wp-link .query-results ul{max-height:200px;overflow:scroll}body #wp-link-wrap #wp-link #link-selector{overflow:auto}body .block-editor-link-control__settings .block-editor-link-control__setting .components-base-control__field{flex-direction:column}@media (max-width: 782px){body #wp-link-wrap{margin-top:-250px}body #wp-link-wrap #wp-link .link-target label{line-height:30px}}@media (max-height: 750px){body #wp-link-wrap{top:10px;max-height:580px;margin-top:0}}.aioseo-menu-highlight{color:#fff}#toplevel_page_aioseo .aioseo-submenu-highlight{background-color:#1da867}#toplevel_page_aioseo .aioseo-submenu-highlight.red{background-color:#df2a4a}#toplevel_page_aioseo .aioseo-submenu-highlight a{color:#fff;font-weight:600}label[for=aioseo_contact_methods_header]{font-size:1.2em}#aioseo_contact_methods_header{display:none}.aioseo-wp-table table.widefat{border:1px solid #c3c4c7;box-shadow:0 1px 1px #0000000a;background:#fff}.aioseo-wp-table .postbox table.widefat{box-shadow:none}.aioseo-wp-table .widefat{border-spacing:0;width:100%;clear:both;margin:0}.aioseo-wp-table .widefat *{word-wrap:break-word}.aioseo-wp-table .widefat a,.aioseo-wp-table .widefat button.button-link{text-decoration:none}.aioseo-wp-table .widefat td,.aioseo-wp-table .widefat th{padding:8px 10px}.aioseo-wp-table .widefat td:has(.row-actions),.aioseo-wp-table .widefat th:has(.row-actions){padding-bottom:10px}.aioseo-wp-table .widefat thead th,.aioseo-wp-table .widefat thead td{border-bottom:1px solid #c3c4c7}.aioseo-wp-table .widefat tfoot th,.aioseo-wp-table .widefat tfoot td{border-top:1px solid #c3c4c7;border-bottom:none}.aioseo-wp-table .widefat .no-items td{border-bottom-width:0}.aioseo-wp-table .widefat td{vertical-align:top}.aioseo-wp-table .widefat td,.aioseo-wp-table .widefat td p,.aioseo-wp-table .widefat td ol,.aioseo-wp-table .widefat td ul,.aioseo-wp-table .widefat th,.aioseo-wp-table .widefat thead td,.aioseo-wp-table .widefat tfoot td{font-size:14px;line-height:22px}[dir=ltr] .aioseo-wp-table .widefat th,[dir=ltr] .aioseo-wp-table .widefat thead td,[dir=ltr] .aioseo-wp-table .widefat tfoot td{text-align:left}[dir=rtl] .aioseo-wp-table .widefat th,[dir=rtl] .aioseo-wp-table .widefat thead td,[dir=rtl] .aioseo-wp-table .widefat tfoot td{text-align:right}.aioseo-wp-table .widefat th input,.aioseo-wp-table .widefat thead td input,.aioseo-wp-table .widefat tfoot td input{padding:0;vertical-align:text-top}[dir=ltr] .aioseo-wp-table .widefat th input,[dir=ltr] .aioseo-wp-table .widefat thead td input,[dir=ltr] .aioseo-wp-table .widefat tfoot td input{margin:0 0 0 8px}[dir=rtl] .aioseo-wp-table .widefat th input,[dir=rtl] .aioseo-wp-table .widefat thead td input,[dir=rtl] .aioseo-wp-table .widefat tfoot td input{margin:0 8px 0 0}.aioseo-wp-table .widefat .check-column{line-height:1;width:2.2em;padding:6px 0 25px;vertical-align:top}.aioseo-wp-table .widefat tbody th.check-column{padding:9px 0 22px}[dir=ltr] .aioseo-wp-table .widefat thead td.check-column,[dir=ltr] .aioseo-wp-table .widefat tbody th.check-column,[dir=ltr] .aioseo-wp-table .widefat tfoot td.check-column{padding:11px 0 0 3px}[dir=rtl] .aioseo-wp-table .widefat thead td.check-column,[dir=rtl] .aioseo-wp-table .widefat tbody th.check-column,[dir=rtl] .aioseo-wp-table .widefat tfoot td.check-column{padding:11px 3px 0 0}.aioseo-wp-table .widefat thead td.check-column,.aioseo-wp-table .widefat tfoot td.check-column{padding-top:4px;vertical-align:middle}.aioseo-wp-table .no-js .widefat thead .check-column input,.aioseo-wp-table .no-js .widefat tfoot .check-column input{display:none}.aioseo-wp-table .widefat .num{text-align:center}.aioseo-wp-table .widefat th#comments{vertical-align:middle}.aioseo-wp-table .widefat thead th,.aioseo-wp-table .widefat thead td,.aioseo-wp-table .widefat tfoot th,.aioseo-wp-table .widefat tfoot td{line-height:1.4em}.aioseo-wp-table .widefat th,.aioseo-wp-table .widefat td{color:#50575e}.aioseo-wp-table .widefat th,.aioseo-wp-table .widefat thead td,.aioseo-wp-table .widefat tfoot td{font-weight:400}.aioseo-wp-table .widefat thead tr th,.aioseo-wp-table .widefat thead tr td,.aioseo-wp-table .widefat tfoot tr th,.aioseo-wp-table .widefat tfoot tr td{color:#2c3338}.aioseo-wp-table .widefat td p{margin:2px 0 .8em}.aioseo-wp-table .widefat p,.aioseo-wp-table .widefat ol,.aioseo-wp-table .widefat ul{color:#2c3338}.aioseo-wp-table .widefat .column-comment p{margin:.6em 0}.aioseo-wp-table .widefat .column-comment ul{list-style:initial}[dir=ltr] .aioseo-wp-table .widefat .column-comment ul{margin-left:2em}[dir=rtl] .aioseo-wp-table .widefat .column-comment ul{margin-right:2em}.aioseo-wp-table .row-actions span.delete a,.aioseo-wp-table .row-actions span.trash a,.aioseo-wp-table .row-actions span.spam a{color:#b32d2e}.aioseo-wp-table .row-actions .delete a:hover,.aioseo-wp-table .row-actions .trash a:hover,.aioseo-wp-table .row-actions .spam a:hover{color:#b32d2e;border:none}.aioseo-wp-table .row-actions{color:#a7aaad;font-size:12px;line-height:18px;padding:2px 0 0;position:relative}[dir=ltr] .aioseo-wp-table .row-actions{left:-9999em}[dir=rtl] .aioseo-wp-table .row-actions{right:-9999em}.aioseo-wp-table .no-js .row-actions,.aioseo-wp-table tr:hover .row-actions,.aioseo-wp-table .row-actions.visible{position:static}.aioseo-wp-table .widefat thead th,.aioseo-wp-table .widefat thead td,.aioseo-wp-table .widefat tfoot th,.aioseo-wp-table .widefat tfoot td{padding:0 10px;max-height:38px;height:38px}.aioseo-wp-table .widefat thead th.sortable a,.aioseo-wp-table .widefat tfoot th.sortable a{display:flex;align-items:center;height:36px;padding:0;line-height:36px}.aioseo-wp-table .widefat thead th.sortable a .sorting-indicator,.aioseo-wp-table .widefat tfoot th.sortable a .sorting-indicator{margin-top:0}.edit-post-meta-boxes-area #aioseo-settings h2.hndle{border-bottom:none}#aioseo-settings .inside,#aioseo-local-settings .inside{padding:0;margin-top:0}#aioseo-settings .aioseo-tab-content .aioseo-settings-row:last-of-type,#aioseo-local-settings .aioseo-tab-content .aioseo-settings-row:last-of-type{border-bottom:0;margin-bottom:0;padding-bottom:0}#aioseo-tabbed .handlediv{position:absolute;top:0}[dir=ltr] #aioseo-tabbed .handlediv{right:0}[dir=rtl] #aioseo-tabbed .handlediv{left:0}#aioseo-tabbed>.inside{min-height:40px;padding:0;margin-top:0}#aioseo-tabbed .aioseo-tab-content .aioseo-settings-row:last-of-type{border-bottom:0;margin-bottom:0;padding-bottom:0}body.block-editor-page #aioseo-settings .inside{border:1px solid #E8E8EB;border-top:none}body.block-editor-page .edit-post-sidebar .aioseo-app textarea{font-size:16px}#aioseo-post-settings-sidebar-button{display:flex;flex-direction:row;align-items:center;border-radius:3px;height:36px;min-width:36px;margin:-7px;padding:5px;font-weight:700;color:#fff}#aioseo-post-settings-sidebar-button #aioseo-post-score-disabled{color:#434960}[dir=ltr] #aioseo-post-settings-sidebar-button #aioseo-post-score-disabled{margin-left:10px}[dir=rtl] #aioseo-post-settings-sidebar-button #aioseo-post-score-disabled{margin-right:10px}#aioseo-post-settings-sidebar-button.score-green{color:#00aa63;border:1px solid #00AA63}#aioseo-post-settings-sidebar-button.score-green #aioseo-post-score-disabled{display:none}#aioseo-post-settings-sidebar-button.score-orange{color:#f18200;border:1px solid #F18200}#aioseo-post-settings-sidebar-button.score-orange #aioseo-post-score-disabled{display:none}#aioseo-post-settings-sidebar-button.score-red,#aioseo-post-settings-sidebar-button.score-none{color:#df2a4a;border:1px solid #DF2A4A}#aioseo-post-settings-sidebar-button.score-red #aioseo-post-score-disabled,#aioseo-post-settings-sidebar-button.score-none #aioseo-post-score-disabled{display:none}#aioseo-post-settings-sidebar-button svg{fill:currentColor!important}[dir=ltr] #aioseo-post-settings-sidebar-button svg{margin-right:10px}[dir=rtl] #aioseo-post-settings-sidebar-button svg{margin-left:10px}#aioseo-post-settings-sidebar-button svg *{fill:currentColor!important}#aioseo-post-settings-sidebar-button.score-disabled{color:#434960;border:1px solid #434960}#aioseo-post-settings-sidebar-button.score-disabled svg{width:24px;height:24px}[dir=ltr] #aioseo-post-settings-sidebar-button.score-disabled svg{margin-right:0}[dir=rtl] #aioseo-post-settings-sidebar-button.score-disabled svg{margin-left:0}#aioseo-post-settings-sidebar-button.score-disabled span,#aioseo-post-settings-sidebar-button.score-disabled #aioseo-post-score-disabled{display:none}.aioseo-score-settings{display:flex;align-items:center;padding-bottom:14px}[dir=ltr] .aioseo-score-settings svg{margin-right:7px}[dir=rtl] .aioseo-score-settings svg{margin-left:7px}[dir=ltr] .aioseo-score-settings span{margin-right:12px}[dir=rtl] .aioseo-score-settings span{margin-left:12px}.aioseo-score-settings .aioseo-score-button{display:inline-block;padding:5px 8px;font-size:14px;font-weight:700;color:#a1a1a1;border:1px solid #a1a1a1;border-radius:3px}.aioseo-score-settings .aioseo-score-button.score-red,.aioseo-score-settings .aioseo-score-button.score-none{border-color:#df2a4a;color:#df2a4a!important}.aioseo-score-settings .aioseo-score-button.score-orange{border-color:#f18200;color:#f18200!important}.aioseo-score-settings .aioseo-score-button.score-green{border-color:#00aa63;color:#00aa63!important}.aioseo-score-settings .aioseo-score-button.classic-editor{background:#fff!important;display:inline-block!important;height:auto!important}[dir=ltr] .aioseo-score-settings .aioseo-score-button.classic-editor span{margin-right:0}[dir=rtl] .aioseo-score-settings .aioseo-score-button.classic-editor span{margin-left:0}button[aria-label=AIOSEO],button[aria-label=AIOSEO]:hover{background:none!important;box-shadow:none!important}button[aria-label=AIOSEO].is-pressed>#aioseo-post-settings-sidebar-button.score-green,button[aria-label=AIOSEO]:hover.is-pressed>#aioseo-post-settings-sidebar-button.score-green{color:#fff;background-color:#00aa63}button[aria-label=AIOSEO].is-pressed>#aioseo-post-settings-sidebar-button.score-orange,button[aria-label=AIOSEO]:hover.is-pressed>#aioseo-post-settings-sidebar-button.score-orange{color:#fff;background-color:#f18200}button[aria-label=AIOSEO].is-pressed>#aioseo-post-settings-sidebar-button.score-red,button[aria-label=AIOSEO].is-pressed>#aioseo-post-settings-sidebar-button.score-none,button[aria-label=AIOSEO]:hover.is-pressed>#aioseo-post-settings-sidebar-button.score-red,button[aria-label=AIOSEO]:hover.is-pressed>#aioseo-post-settings-sidebar-button.score-none{color:#fff;background-color:#df2a4a}button[aria-label=AIOSEO].is-pressed>#aioseo-post-settings-sidebar-button.score-disabled,button[aria-label=AIOSEO]:hover.is-pressed>#aioseo-post-settings-sidebar-button.score-disabled{color:#fff;background:#434960!important}button[aria-label=AIOSEO].is-pressed>#aioseo-post-settings-sidebar-button.score-disabled #aioseo-post-score-disabled,button[aria-label=AIOSEO]:hover.is-pressed>#aioseo-post-settings-sidebar-button.score-disabled #aioseo-post-score-disabled{color:#fff!important}button[aria-label=AIOSEO].is-toggled>div svg,button[aria-label=AIOSEO].components-icon-button>div svg,button[aria-label=AIOSEO]:hover.is-toggled>div svg,button[aria-label=AIOSEO]:hover.components-icon-button>div svg{fill:#fff!important;stroke:transparent!important}button[aria-label=AIOSEO].is-toggled>div svg *,button[aria-label=AIOSEO].components-icon-button>div svg *,button[aria-label=AIOSEO]:hover.is-toggled>div svg *,button[aria-label=AIOSEO]:hover.components-icon-button>div svg *{fill:#fff!important;stroke:transparent!important}button[aria-label=AIOSEO].is-toggled>div #aioseo-post-score-disabled,button[aria-label=AIOSEO].components-icon-button>div #aioseo-post-score-disabled,button[aria-label=AIOSEO]:hover.is-toggled>div #aioseo-post-score-disabled,button[aria-label=AIOSEO]:hover.components-icon-button>div #aioseo-post-score-disabled{color:#fff!important} all-in-one-seo-pack/dist/Lite/assets/css/Archives.Dnl8jGZu.css000064400000000323151222735770020024 0ustar00.aioseo-search-appearance-archives .icon{display:flex;align-items:center}[dir=ltr] .aioseo-search-appearance-archives .icon{margin-right:16px}[dir=rtl] .aioseo-search-appearance-archives .icon{margin-left:16px} all-in-one-seo-pack/dist/Lite/assets/css/avada.Yz1KYoy7.css000064400000006317151222735770017326 0ustar00.aioseo-avada-integration{padding:12px 0}.fusion-builder-preview-mode .aioseo-avada-integration{display:none}.aioseo-avada-integration>.aioseo-score-button{cursor:pointer}[dir=ltr] .aioseo-avada-integration>.aioseo-score-button{margin-left:15px}[dir=rtl] .aioseo-avada-integration>.aioseo-score-button{margin-right:15px}.aioseo-avada-integration>.aioseo-score-button--active{border-color:transparent}.aioseo-limit-modified-date-avada{height:100%;position:relative}.aioseo-limit-modified-date-avada__toggle{height:100%;cursor:pointer;background:#198fd9;transition:background-color .2s ease-in-out;display:flex;justify-content:center;align-items:center;position:relative}.aioseo-limit-modified-date-avada__toggle .aioseo-caret{width:18px;height:18px;transition:transform .3s;margin:0 5px}[dir=ltr] .aioseo-limit-modified-date-avada__toggle .aioseo-caret.rotated{transform:rotate(-180deg)}[dir=rtl] .aioseo-limit-modified-date-avada__toggle .aioseo-caret.rotated{transform:rotate(180deg)}.aioseo-limit-modified-date-avada__toggle:before{content:"";width:1px;height:80%;background-color:#34434a;opacity:.2}.aioseo-limit-modified-date-avada__toggle:hover{background-color:#3bc4fe}.aioseo-limit-modified-date-avada__toggle--disabled{cursor:not-allowed;background:#4a5259}.aioseo-limit-modified-date-avada__toggle--disabled:hover{background:#4a5259}.aioseo-limit-modified-date-avada__options{position:absolute;top:100%;width:170px;display:flex;justify-content:end;border-radius:0 0 6px 6px;box-shadow:0 15px 30px #0000004d;overflow:hidden}[dir=ltr] .aioseo-limit-modified-date-avada__options{right:0}[dir=rtl] .aioseo-limit-modified-date-avada__options{left:0}.aioseo-limit-modified-date-avada__option{background:#198fd9;display:inline-flex;height:54px;padding:10px;justify-content:center;align-items:center;gap:10px;flex-shrink:0;cursor:pointer;font-size:12px;font-style:normal;font-weight:700;line-height:16px;color:#fff;transition:background-color .2s ease-in-out}.aioseo-limit-modified-date-avada__option:hover{background-color:#3bc4fe}.aioseo-avada-sidebar{height:calc(100vh - 54px);min-width:320px;position:fixed;z-index:100;top:0;background:#fff;overflow:visible;margin-top:54px;width:320px}[dir=ltr] .aioseo-avada-sidebar{transition:left .25s ease;left:-320px;right:auto}[dir=rtl] .aioseo-avada-sidebar{transition:right .25s ease;right:-320px;left:auto}.aioseo-avada-sidebar--active:not(.fusion-builder-preview-mode) .aioseo-avada-sidebar{box-shadow:0 0 15px #00000026}[dir=ltr] .aioseo-avada-sidebar--active:not(.fusion-builder-preview-mode) .aioseo-avada-sidebar{left:0}[dir=rtl] .aioseo-avada-sidebar--active:not(.fusion-builder-preview-mode) .aioseo-avada-sidebar{right:0}.aioseo-avada-sidebar__header{display:flex;height:54px;align-items:center;flex-shrink:0;border-bottom:1px solid #E0E3E7;padding:10px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.aioseo-avada-sidebar__header-title{font-size:14px;font-style:normal;font-weight:700;line-height:22px;color:#198fd9}[dir=ltr] .aioseo-avada-sidebar__header-title{margin-right:8px}[dir=rtl] .aioseo-avada-sidebar__header-title{margin-left:8px}.aioseo-avada-sidebar__header .aioseo-score-button{border-radius:4px}.aioseo-avada-sidebar__content{overflow:auto;height:calc(100% - 54px)} all-in-one-seo-pack/dist/Lite/assets/css/BadBotBlocker.BiHxzSWA.css000064400000000075151222735770020713 0ustar00.aioseo-tools-bad-bot-blocker .aioseo-alert{margin-top:10px} all-in-one-seo-pack/dist/Lite/assets/css/blocks-editor.DhIsz6Km.css000064400000001770151222735770021022 0ustar00[data-type="aioseo/table-of-contents"]:not(.is-selected) .aioseo-toc-menu:not(.aioseo-toc-placeholder){display:none}[data-type="aioseo/table-of-contents"].is-selected .aioseo-toc-list--rendered{display:none}.aioseo-toc-list--rendered a{cursor:default}.wp-block-aioseo-table-of-contents .aioseo-toc-placeholder .aioseo-toc-header{margin-bottom:0!important}.block-editor-block-list__layout .block-editor-block-list__block[data-type="aioseo/table-of-contents"]:not([contenteditable]):focus:after{z-index:0}[data-type="aioseo/faq"]>.wp-block[data-align=full]{margin-left:0;margin-right:0}[dir=ltr] [data-type="aioseo/faq"]>.wp-block[data-align=full]{left:0}[dir=rtl] [data-type="aioseo/faq"]>.wp-block[data-align=full]{right:0}.wp-block-aioseo-faq[data-schema-only=true]{opacity:.5}.is-selected[data-type="aioseo/faq"],.has-child-selected[data-type="aioseo/faq"]{border-radius:2px}.is-selected[data-type="aioseo/faq"]:after,.has-child-selected[data-type="aioseo/faq"]:after{border-radius:2px;outline:1px dotted #8C8F9A} all-in-one-seo-pack/dist/Lite/assets/css/blocks.Veojpb_u.css000064400000050067151222735770017713 0ustar00.aioseo-exclude-posts{display:block}.aioseo-exclude-posts .aioseo-select{max-width:600px;display:inline-block}[dir=ltr] .aioseo-exclude-posts .aioseo-select{margin-right:16px}[dir=rtl] .aioseo-exclude-posts .aioseo-select{margin-left:16px}.aioseo-exclude-posts .aioseo-select button{display:none}.aioseo-exclude-posts .aioseo-select .multiselect__option{display:flex}.aioseo-exclude-posts .aioseo-select .multiselect__option--highlight .option-title{color:#005ae0}.aioseo-exclude-posts .aioseo-button.gray{margin-top:10px}.aioseo-exclude-posts .option{flex:1 0 auto}.aioseo-exclude-posts .option .option-title{font-weight:400;font-size:16px;color:#141b38}.aioseo-exclude-posts .option .option-title .search-term{font-weight:600}.aioseo-exclude-posts .option .option-details{display:flex;align-items:center;font-size:14px;color:#8c8f9a}[dir=ltr] .aioseo-exclude-posts .option .option-details span{margin-right:15px}[dir=rtl] .aioseo-exclude-posts .option .option-details span{margin-left:15px}.aioseo-exclude-posts .option-permalink{display:flex;align-items:center}.aioseo-exclude-posts .option-permalink svg.aioseo-external{width:15px;height:15px;color:#434960}.aioseo-exclude-posts .multiselect-toggle{padding:10px 13px;width:40px;position:absolute;height:36px;top:2px;text-align:center;z-index:1}[dir=ltr] .aioseo-exclude-posts .multiselect-toggle{right:2px}[dir=rtl] .aioseo-exclude-posts .multiselect-toggle{left:2px}.aioseo-exclude-posts .multiselect-toggle svg.aioseo-add-plus{width:14px;height:14px;color:#000}.aioseo-sidebar-row .aioseo-included-objects-toggle{margin-top:5px}.aioseo-sidebar-row .aioseo-included-objects-toggle .aioseo-included-list{margin-top:8px}.block-editor-block-card{align-items:center}.block-editor-block-card__title.block-editor-block-card__title{margin:0}.aioseo-sidebar-row+.aioseo-sidebar-row{margin-top:16px}.aioseo-sidebar-row .aioseo-sidebar-title{font-weight:500}.sidebar-row[data-v-8ebccde0]{margin-bottom:16px}.sidebar-row .title[data-v-8ebccde0]{font-weight:600}.sidebar-row.labels>div[data-v-8ebccde0]{margin-bottom:16px}.sidebar-row.labels label[data-v-8ebccde0]{display:block;margin-bottom:4px}.sidebar-row[data-v-23e1b87b]{margin-bottom:16px}.sidebar-row .title[data-v-23e1b87b]{font-weight:600}.sidebar-row.labels label[data-v-23e1b87b]{display:block;margin-bottom:4px}.sidebar-row{margin-bottom:16px}.sidebar-row .title{font-weight:700}.sidebar-row[data-v-657b2056]{margin-bottom:16px}.sidebar-row .title[data-v-657b2056]{font-weight:600}.sidebar-row.dimensions[data-v-657b2056]{display:flex;flex-direction:row;justify-content:space-between;margin-left:-10px;margin-right:-10px}.sidebar-row.dimensions>div[data-v-657b2056]{padding:0 10px}.sidebar-row.dimensions label[data-v-657b2056]{display:block;padding-bottom:8px}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list,.aioseo-modal.aioseo-toc-modal .aioseo-toc-list{margin:0;padding:0}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list li.aioseo-toc-list-item,.aioseo-modal.aioseo-toc-modal .aioseo-toc-list li.aioseo-toc-list-item{margin:0}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list li.aioseo-toc-list-item.heading-hidden,.aioseo-modal.aioseo-toc-modal .aioseo-toc-list li.aioseo-toc-list-item.heading-hidden{display:block}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list .aioseo-toc-list-nested:is(ul,ol),.aioseo-modal.aioseo-toc-modal .aioseo-toc-list .aioseo-toc-list-nested:is(ul,ol){width:100%}[dir=ltr] .wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list .aioseo-toc-list-nested:is(ul,ol),[dir=ltr] .aioseo-modal.aioseo-toc-modal .aioseo-toc-list .aioseo-toc-list-nested:is(ul,ol){padding-left:30px}[dir=rtl] .wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list .aioseo-toc-list-nested:is(ul,ol),[dir=rtl] .aioseo-modal.aioseo-toc-modal .aioseo-toc-list .aioseo-toc-list-nested:is(ul,ol){padding-right:30px}.wp-block-aioseo-table-of-contents .aioseo-toc-menu svg,.aioseo-modal.aioseo-toc-modal svg{width:24px;height:24px;fill:currentColor}.wp-block-aioseo-table-of-contents .aioseo-toc-menu button.has-icon,.aioseo-modal.aioseo-toc-modal button.has-icon{display:inline-flex;align-items:center;justify-content:center;height:48px;width:40px;cursor:pointer;text-decoration:none;text-shadow:none;outline:1px solid transparent;border-width:0;color:#8c8f9a;padding:0;background:none}.wp-block-aioseo-table-of-contents .aioseo-toc-menu button.aioseo-hide-heading-toggle,.aioseo-modal.aioseo-toc-modal button.aioseo-hide-heading-toggle{background-color:#f3f4f5}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item .aioseo-toc-list-item__inner,.aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item .aioseo-toc-list-item__inner{display:flex;flex-wrap:wrap;position:relative}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item>.aioseo-toc-list-item__inner>:not(.aioseo-toc-list),.aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item>.aioseo-toc-list-item__inner>:not(.aioseo-toc-list){margin-block:4px}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item .row-input,.aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item .row-input{position:relative;width:100%;max-width:calc(100% - 40px);transition:opacity .2s}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item .row-input:not(:hover,:focus-within),.aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item .row-input:not(:hover,:focus-within){overflow:hidden}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item .row-input input,.aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item .row-input input{color:#141b38;font-size:16px;line-height:1.25;padding:15px;transition:background-color,border-color,opacity .3s}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item .row-input.row-input--anchor,.aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item .row-input.row-input--anchor{position:absolute;z-index:-1}[dir=ltr] .wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item .row-input.row-input--anchor,[dir=ltr] .aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item .row-input.row-input--anchor{right:40px}[dir=rtl] .wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item .row-input.row-input--anchor,[dir=rtl] .aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item .row-input.row-input--anchor{left:40px}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item .row-input.row-input--anchor input,.aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item .row-input.row-input--anchor input{animation:anchorInputOut .3s ease-out}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item .row-input .append-icon,.aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item .row-input .append-icon{display:flex;align-content:center;justify-content:end;position:absolute;top:1px;width:fit-content;max-height:calc(100% - 2px);opacity:1}[dir=ltr] .wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item .row-input .append-icon,[dir=ltr] .aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item .row-input .append-icon{right:1px;padding-left:14px;padding-right:16px;border-radius:0 3px 3px 0;background-image:linear-gradient(to right,transparent,rgb(255,255,255) 8px)}[dir=rtl] .wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item .row-input .append-icon,[dir=rtl] .aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item .row-input .append-icon{left:1px;padding-right:14px;padding-left:16px;border-radius:3px 0 0 3px;background-image:linear-gradient(to left,transparent,rgb(255,255,255) 8px)}[dir=ltr] .wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item .row-input .append-icon .aioseo-tooltip,[dir=ltr] .aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item .row-input .append-icon .aioseo-tooltip{margin-left:0}[dir=rtl] .wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item .row-input .append-icon .aioseo-tooltip,[dir=rtl] .aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item .row-input .append-icon .aioseo-tooltip{margin-right:0}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item .row-input .append-icon .aioseo-tooltip div,.aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item .row-input .append-icon .aioseo-tooltip div{display:flex}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item .row-input .append-icon svg,.aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item .row-input .append-icon svg{color:#8c8f9a;width:24px;height:24px;cursor:pointer}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item .row-input .append-icon svg.aioseo-close,.aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item .row-input .append-icon svg.aioseo-close{width:14px;height:14px}[dir=ltr] .wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item .row-input .append-icon svg.aioseo-close,[dir=ltr] .aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item .row-input .append-icon svg.aioseo-close{margin-right:5px;margin-left:12px}[dir=rtl] .wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item .row-input .append-icon svg.aioseo-close,[dir=rtl] .aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item .row-input .append-icon svg.aioseo-close{margin-left:5px;margin-right:12px}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item.anchor-edit>.aioseo-toc-list-item__inner>.row-input.row-input--content,.aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item.anchor-edit>.aioseo-toc-list-item__inner>.row-input.row-input--content{z-index:0}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item.anchor-edit>.aioseo-toc-list-item__inner>.row-input.row-input--anchor,.aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item.anchor-edit>.aioseo-toc-list-item__inner>.row-input.row-input--anchor{z-index:1}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item.anchor-edit>.aioseo-toc-list-item__inner>.row-input.row-input--anchor input,.aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item.anchor-edit>.aioseo-toc-list-item__inner>.row-input.row-input--anchor input{animation:anchorInputIn .3s ease-in}[dir=ltr] .wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item.anchor-edit>.aioseo-toc-list-item__inner>.row-input.row-input--anchor input,[dir=ltr] .aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item.anchor-edit>.aioseo-toc-list-item__inner>.row-input.row-input--anchor input{padding-right:78px}[dir=rtl] .wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item.anchor-edit>.aioseo-toc-list-item__inner>.row-input.row-input--anchor input,[dir=rtl] .aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item.anchor-edit>.aioseo-toc-list-item__inner>.row-input.row-input--anchor input{padding-left:78px}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item.anchor-is-animating>.aioseo-toc-list-item__inner>.row-input,.aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item.anchor-is-animating>.aioseo-toc-list-item__inner>.row-input{overflow:hidden}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item.anchor-is-animating>.aioseo-toc-list-item__inner>.row-input .append-icon,.aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item.anchor-is-animating>.aioseo-toc-list-item__inner>.row-input .append-icon{opacity:0;transition:none}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item.anchor-is-animating>.aioseo-toc-list-item__inner>.row-input--anchor,.aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item.anchor-is-animating>.aioseo-toc-list-item__inner>.row-input--anchor{z-index:1}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item.anchor-is-animating.anchor-edit>.aioseo-toc-list-item__inner>.row-input--content input,.aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item.anchor-is-animating.anchor-edit>.aioseo-toc-list-item__inner>.row-input--content input{animation:contentInputOut .3s ease-out}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-list-item.anchor-is-animating:not(.anchor-edit)>.aioseo-toc-list-item__inner>.row-input--content input,.aioseo-modal.aioseo-toc-modal .aioseo-toc-list-item.anchor-is-animating:not(.anchor-edit)>.aioseo-toc-list-item__inner>.row-input--content input{animation:contentInputIn .3s ease-in}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .heading-hidden>.aioseo-toc-list-item__inner>.row-input,.aioseo-modal.aioseo-toc-modal .heading-hidden>.aioseo-toc-list-item__inner>.row-input{pointer-events:none}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .heading-hidden>.aioseo-toc-list-item__inner>.row-input input,.aioseo-modal.aioseo-toc-modal .heading-hidden>.aioseo-toc-list-item__inner>.row-input input{opacity:.5}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .heading-hidden>.aioseo-toc-list-item__inner>.row-input .append-icon,.aioseo-modal.aioseo-toc-modal .heading-hidden>.aioseo-toc-list-item__inner>.row-input .append-icon{display:none}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-tooltip .popper,.aioseo-modal.aioseo-toc-modal .aioseo-tooltip .popper{z-index:100;width:300px;padding:20px;line-height:1.3;font-size:13px;background-color:#fff;border-width:0;box-shadow:0 3px 4.8px #20476645}[dir=ltr] .wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-tooltip .popper,[dir=ltr] .aioseo-modal.aioseo-toc-modal .aioseo-tooltip .popper{text-align:left}[dir=rtl] .wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-tooltip .popper,[dir=rtl] .aioseo-modal.aioseo-toc-modal .aioseo-tooltip .popper{text-align:right}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-tooltip .popper p,.aioseo-modal.aioseo-toc-modal .aioseo-tooltip .popper p{margin:0;line-height:1.3;font-size:13px}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-tooltip .popper .aioseo-tooltip__header,.aioseo-modal.aioseo-toc-modal .aioseo-tooltip .popper .aioseo-tooltip__header{font-weight:700;margin:0}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-tooltip .popper .aioseo-tooltip__header+p,.aioseo-modal.aioseo-toc-modal .aioseo-tooltip .popper .aioseo-tooltip__header+p{margin-top:1em}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-tooltip svg,.aioseo-modal.aioseo-toc-modal .aioseo-tooltip svg{color:#8c8f9a;cursor:pointer}[dir=ltr] .wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-content>.aioseo-toc-list:not(.orderable) .row-input--content input,[dir=ltr] .aioseo-modal.aioseo-toc-modal .aioseo-toc-content>.aioseo-toc-list:not(.orderable) .row-input--content input{padding-right:48px}[dir=rtl] .wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-content>.aioseo-toc-list:not(.orderable) .row-input--content input,[dir=rtl] .aioseo-modal.aioseo-toc-modal .aioseo-toc-content>.aioseo-toc-list:not(.orderable) .row-input--content input{padding-left:48px}[dir=ltr] .wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-content>.aioseo-toc-list:not(.orderable):not(.aioseo-toc-list-nested),[dir=ltr] .aioseo-modal.aioseo-toc-modal .aioseo-toc-content>.aioseo-toc-list:not(.orderable):not(.aioseo-toc-list-nested){margin-left:24px}[dir=rtl] .wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-content>.aioseo-toc-list:not(.orderable):not(.aioseo-toc-list-nested),[dir=rtl] .aioseo-modal.aioseo-toc-modal .aioseo-toc-content>.aioseo-toc-list:not(.orderable):not(.aioseo-toc-list-nested){margin-right:24px}.is-highlighted>.wp-block-aioseo-table-of-contents .aioseo-toc-list-item>.aioseo-toc-list-item__inner>.row-input input,.wp-block-aioseo-table-of-contents .aioseo-toc-list-item.anchor-edit.done:not(:focus-within)>.aioseo-toc-list-item__inner>.row-input input{animation-duration:0s!important}.aioseo-modal.aioseo-toc-modal .modal-body .heading-hidden{display:none}.aioseo-modal.aioseo-toc-modal .modal-body li.aioseo-toc-list-item{list-style:none}.aioseo-modal.aioseo-toc-modal .modal-body li.aioseo-toc-list-item .row-input input{pointer-events:none}.aioseo-modal.aioseo-toc-modal .modal-body .aioseo-drag-ghost input{color:#004f9d!important;background:#f9f9fa;border-color:transparent;outline-color:transparent;overflow:hidden}.aioseo-modal.aioseo-toc-modal .modal-body .aioseo-drag-ghost .aioseo-drag{opacity:0}.aioseo-modal.aioseo-toc-modal .modal-body .aioseo-drag-ghost .aioseo-drag-handle{color:#004f9d!important;opacity:1!important}.aioseo-modal.aioseo-toc-modal .modal-body .aioseo-dragging input{display:none}.aioseo-modal.aioseo-toc-modal .modal-body .aioseo-drag-handle{cursor:grab!important}@keyframes anchorInputIn{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes anchorInputOut{0%{transform:translate(0)}to{transform:translate(100%)}}@keyframes contentInputIn{0%{transform:scale(.95);opacity:.3}to{transform:scale(1);opacity:1}}@keyframes contentInputOut{0%{transform:scale(1);opacity:1}to{transform:scale(.95);opacity:.3}}.aioseo-modal.aioseo-toc-modal-lite .aioseo-cta{border:none;box-shadow:none;margin:0}.aioseo-modal.aioseo-toc-modal-lite .modal-wrapper .modal-container .modal-header{height:0;border:none}.aioseo-modal.aioseo-toc-modal-lite .modal-wrapper .modal-container .modal-header button.close{top:30px}.wp-block-aioseo-table-of-contents .aioseo-toc-menu,.aioseo-modal.aioseo-toc-modal .modal-body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background-color:#f3f4f5;padding:20px;min-height:70px;border-radius:2px}.wp-block-aioseo-table-of-contents .aioseo-toc-menu a,.wp-block-aioseo-table-of-contents .aioseo-toc-menu p,.wp-block-aioseo-table-of-contents .aioseo-toc-menu li,.wp-block-aioseo-table-of-contents .aioseo-toc-menu button,.wp-block-aioseo-table-of-contents .aioseo-toc-menu input,.wp-block-aioseo-table-of-contents .aioseo-toc-menu header,.aioseo-modal.aioseo-toc-modal .modal-body a,.aioseo-modal.aioseo-toc-modal .modal-body p,.aioseo-modal.aioseo-toc-modal .modal-body li,.aioseo-modal.aioseo-toc-modal .modal-body button,.aioseo-modal.aioseo-toc-modal .modal-body input,.aioseo-modal.aioseo-toc-modal .modal-body header{font-family:inherit;padding:unset;margin:unset;font-size:inherit}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-header,.aioseo-modal.aioseo-toc-modal .modal-body .aioseo-toc-header{display:flex;align-items:center;margin-bottom:25px;flex-wrap:wrap}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-header .aioseo-toc-header-title,.aioseo-modal.aioseo-toc-modal .modal-body .aioseo-toc-header .aioseo-toc-header-title{align-items:center;color:#434960;display:flex;flex:1 0 auto;font-size:24px;font-weight:700;line-height:125%;max-width:100%}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-header .aioseo-toc-header-instructions,.aioseo-modal.aioseo-toc-modal .modal-body .aioseo-toc-header .aioseo-toc-header-instructions{color:#2c324c;font-size:16px;margin-bottom:0;margin-top:16px}.wp-block-aioseo-table-of-contents .aioseo-toc-menu .aioseo-toc-header .aioseo-toc-header-buttons,.aioseo-modal.aioseo-toc-modal .modal-body .aioseo-toc-header .aioseo-toc-header-buttons{flex:0 1 auto}.wp-block-aioseo-table-of-contents .aioseo-toc-menu a.aioseo-button-link,.aioseo-modal.aioseo-toc-modal .modal-body a.aioseo-button-link{display:inline-block;padding:8px 12px;border:1px solid #DCDDE1;background-color:#f9f9fa;font-weight:700;text-decoration:none;font-size:12px;color:#2c324c!important;border-radius:4px}[dir=ltr] .wp-block-aioseo-table-of-contents .aioseo-toc-menu a.aioseo-button-link+.aioseo-button-link,[dir=ltr] .aioseo-modal.aioseo-toc-modal .modal-body a.aioseo-button-link+.aioseo-button-link{margin-left:10px}[dir=rtl] .wp-block-aioseo-table-of-contents .aioseo-toc-menu a.aioseo-button-link+.aioseo-button-link,[dir=rtl] .aioseo-modal.aioseo-toc-modal .modal-body a.aioseo-button-link+.aioseo-button-link{margin-right:10px}.wp-block-aioseo-table-of-contents .aioseo-toc-menu a.aioseo-button-link:hover,.aioseo-modal.aioseo-toc-modal .modal-body a.aioseo-button-link:hover{background-color:#fbfbfb}.aioseo-modal.aioseo-toc-modal .modal-wrapper{font-family:inherit}[dir=ltr] .aioseo-modal.aioseo-toc-modal .modal-wrapper .modal-body{padding:20px 28px 20px 10px}[dir=rtl] .aioseo-modal.aioseo-toc-modal .modal-wrapper .modal-body{padding:20px 10px 20px 28px}[dir=ltr] .aioseo-modal.aioseo-toc-modal .modal-wrapper .modal-body>header{padding-left:10px}[dir=rtl] .aioseo-modal.aioseo-toc-modal .modal-wrapper .modal-body>header{padding-right:10px} all-in-one-seo-pack/dist/Lite/assets/css/Blur.Cu7BJzGD.css000064400000000135151222735770017037 0ustar00.aioseo-blur{filter:blur(3px);pointer-events:none;-webkit-user-select:none;user-select:none} all-in-one-seo-pack/dist/Lite/assets/css/Breadcrumbs.Cbeb_aqj.css000064400000006276151222735770020607 0ustar00.aioseo-breadcrumbs .content[data-v-5307df34]{position:relative}.aioseo-breadcrumbs .alert{margin-top:24px}.aioseo-breadcrumbs svg.aioseo-shortcode{width:100%;height:auto;max-width:60px}.aioseo-breadcrumbs svg.aioseo-gutenberg-block{width:59px;height:54px}.aioseo-breadcrumbs svg.aioseo-gutenberg-block rect{width:100%;width:56px;height:51px}.aioseo-breadcrumbs svg.aioseo-php{width:110px}.aioseo-breadcrumbs .previews-box{padding:12px;border:1px solid #D0D1D7;border-radius:4px}.aioseo-breadcrumbs .previews-box+.aioseo-row{margin-top:16px}.aioseo-breadcrumbs .settings-content>div:not(.previews-box)>.aioseo-preview-box{padding:12px;border:1px solid #D0D1D7;border-radius:4px}.aioseo-breadcrumbs .settings-content>div:not(.previews-box)>.aioseo-preview-box+.aioseo-row{margin-top:16px}.aioseo-breadcrumbs .settings-content>div:not(.previews-box)>.aioseo-preview-box+.aioseo-row>.aioseo-col:first-child{margin-top:0}.aioseo-breadcrumbs .settings-content>div:not(.previews-box)>.aioseo-preview-box+.aioseo-row+.aioseo-row{margin-top:16px}.aioseo-breadcrumbs .aioseo-preview-box{font-size:14px;line-height:22px}.aioseo-breadcrumbs .aioseo-preview-box+.aioseo-preview-box{margin-top:8px}.aioseo-breadcrumbs .aioseo-preview-box .label{font-weight:600;min-width:75px;display:inline-block}.aioseo-breadcrumbs .aioseo-preview-box .breadcrumb-preview{padding-bottom:20px}.aioseo-breadcrumbs .aioseo-preview-box .breadcrumb-preview:last-child{padding-bottom:0}.aioseo-breadcrumbs .aioseo-preview-box .breadcrumb-preview span:last-child{font-weight:600}.aioseo-breadcrumbs .aioseo-preview-box .aioseo-breadcrumb-separator{color:#8c8f9a;padding:0 4px}.aioseo-breadcrumbs .aioseo-preview-box .aioseo-breadcrumb{padding:0 4px}.aioseo-breadcrumbs .aioseo-preview-box .last.noLink,.aioseo-breadcrumbs .aioseo-preview-box .last.noLink a{font-weight:600}.aioseo-breadcrumbs .aioseo-preview-box .link,.aioseo-breadcrumbs .aioseo-preview-box a{color:#005ae0;text-decoration:underline;font-weight:600;cursor:pointer;pointer-events:none}.aioseo-breadcrumbs .aioseo-preview-box .noLink a{color:inherit;text-decoration:none;cursor:inherit;pointer-events:none}.aioseo-breadcrumbs .homepage-link{display:flex;align-items:center}.aioseo-breadcrumbs .homepage-link .homepage-link-label{font-size:14px;line-height:22px;flex:1 1 auto;display:flex;align-items:center}[dir=ltr] .aioseo-breadcrumbs .homepage-link .homepage-link-label{margin:0 0 0 20px}[dir=rtl] .aioseo-breadcrumbs .homepage-link .homepage-link-label{margin:0 20px 0 0}.aioseo-breadcrumbs .homepage-link .homepage-link-label .aioseo-input-container{flex:1}.aioseo-breadcrumbs .homepage-link .homepage-link-label .aioseo-input{max-width:250px}[dir=ltr] .aioseo-breadcrumbs .homepage-link .homepage-link-label .aioseo-input{margin-left:10px}[dir=rtl] .aioseo-breadcrumbs .homepage-link .homepage-link-label .aioseo-input{margin-right:10px}@media only screen and (max-width: 782px){.aioseo-breadcrumbs .homepage-link{display:block}.aioseo-breadcrumbs .homepage-link .homepage-link-label{margin:20px 0 0}.aioseo-breadcrumbs .homepage-link .homepage-link-label .aioseo-input{max-width:215px}}.aioseo-breadcrumbs .content:is([active=ContentTypes],[active=Taxonomies],[active=Archives]) .settings-name:not(.no-name){margin-top:4px} all-in-one-seo-pack/dist/Lite/assets/css/Card.BEvh7VQ8.css000064400000005603151222735770017004 0ustar00.aioseo-card{position:relative;color:#141b38;background-color:#fff;border:1px solid #E8E8EB;box-shadow:0 2px 5px #0000000d;margin:var(--aioseo-gutter) 0}.aioseo-card.disabled .content{background:#f9f9fa}.aioseo-card svg.aioseo-circle-question-mark{width:17px;height:17px;color:#8c8f9a;transition:background-color .2s ease}.aioseo-card svg.aioseo-circle-question-mark:hover{color:#5a5c66}.aioseo-card>.header{display:flex;align-items:center;height:60px;padding:0 20px;font-weight:600;font-size:16px;border-bottom:1px solid #E8E8EB}.aioseo-card>.header.toggles{cursor:pointer}.aioseo-card>.header .text{flex:1 1 auto;display:flex;align-items:center}.aioseo-card>.header .text>*{cursor:auto}.aioseo-card>.header .text .header-icon{display:flex}.aioseo-card>.header .text .header-icon svg{width:24px;height:24px}[dir=ltr] .aioseo-card>.header .text .header-icon svg{margin-right:16px}[dir=rtl] .aioseo-card>.header .text .header-icon svg{margin-left:16px}.aioseo-card>.header .text .header-title{display:flex;align-items:center}.aioseo-card>.header .text .header-title .aioseo-tooltip>div:has(svg),.aioseo-card>.header .text .header-title+.aioseo-tooltip>div:has(svg){display:inline-flex}.aioseo-card>.header .text svg.aioseo-circle-question-mark{cursor:pointer;width:17px;height:17px}[dir=ltr] .aioseo-card>.header .text .aioseo-pro-badge{margin-left:10px}[dir=rtl] .aioseo-card>.header .text .aioseo-pro-badge{margin-right:10px}.aioseo-card>.header .text .card-score{display:flex;flex:1;align-items:center;justify-content:flex-end;font-size:12px}[dir=ltr] .aioseo-card>.header .text .card-score{padding-right:10px}[dir=rtl] .aioseo-card>.header .text .card-score{padding-left:10px}.aioseo-card>.header .text .card-score.green{color:#00aa63}.aioseo-card>.header .text .card-score.orange{color:#f18200}.aioseo-card>.header .text .card-score.red{color:#df2a4a}[dir=ltr] .aioseo-card>.header .text .card-score svg{margin-right:4px}[dir=rtl] .aioseo-card>.header .text .card-score svg{margin-left:4px}.aioseo-card>.header svg.aioseo-caret{width:24px;height:24px;cursor:pointer;transition:transform .3s}[dir=ltr] .aioseo-card>.header svg.aioseo-caret{transform:rotate(-180deg)}[dir=rtl] .aioseo-card>.header svg.aioseo-caret{transform:rotate(180deg)}[dir=ltr] .aioseo-card>.header svg.aioseo-caret.rotated{transform:rotate(-90deg)}[dir=rtl] .aioseo-card>.header svg.aioseo-caret.rotated{transform:rotate(90deg)}.aioseo-card>.header svg.aioseo-close{width:14px;height:14px;cursor:pointer}.aioseo-card .content{font-size:14px;line-height:22px;padding:20px;position:relative}.aioseo-card div.aioseo-settings-row:last-child{margin-bottom:0;border-bottom:none;padding-bottom:0}@media only screen and (max-width: 911px){.aioseo-col.col-sm-12>.aioseo-card:last-child,.aioseo-col.col-xs-12>.aioseo-card:last-child{margin-bottom:0}.aioseo-col.col-sm-12+.aioseo-col>.aioseo-card:first-child,.aioseo-col.col-xs-12+.aioseo-col>.aioseo-card:first-child{margin-top:0}} all-in-one-seo-pack/dist/Lite/assets/css/Caret.CvRJQ8GA.css000064400000014057151222735770017147 0ustar00.aioseo-loading-spinner{width:35px;height:35px;position:absolute}.edit-post-sidebar .aioseo-loading-spinner{margin-left:auto;margin-right:auto}.aioseo-loading-spinner .double-bounce1,.aioseo-loading-spinner .double-bounce2{width:100%;height:100%;border-radius:50%;background-color:#fff;opacity:.6;position:absolute;top:0;-webkit-animation:sk-bounce 1.3s infinite ease-in-out;animation:sk-bounce 1.3s infinite ease-in-out}[dir=ltr] .aioseo-loading-spinner .double-bounce1,[dir=ltr] .aioseo-loading-spinner .double-bounce2{left:0}[dir=rtl] .aioseo-loading-spinner .double-bounce1,[dir=rtl] .aioseo-loading-spinner .double-bounce2{right:0}.aioseo-loading-spinner.dark .double-bounce1,.aioseo-loading-spinner.dark .double-bounce2{background-color:#8c8f9a}.aioseo-loading-spinner .double-bounce2{-webkit-animation-delay:-.65s;animation-delay:-.65s}@-webkit-keyframes sk-bounce{0%,to{-webkit-transform:scale(0)}50%{-webkit-transform:scale(1)}}@keyframes sk-bounce{0%,to{transform:scale(0);-webkit-transform:scale(0)}50%{transform:scale(1);-webkit-transform:scale(1)}}.aioseo-button{flex-shrink:0;line-height:1;display:inline-flex;align-items:center;justify-content:center;font-family:inherit;font-size:16px;font-weight:600!important;padding:0 20px;border-radius:4px;cursor:pointer;height:48px;transition:background-color .2s ease;position:relative;overflow:hidden;text-decoration:none;color:#141b38;white-space:nowrap;letter-spacing:normal}.aioseo-button.small,.aioseo-button.small-table{height:32px;font-size:12px;padding:0 14px}.aioseo-button.small .aioseo-loading-spinner,.aioseo-button.small-table .aioseo-loading-spinner{width:27px;height:27px}.aioseo-button.small-table{border-radius:3px}.aioseo-button.medium{height:40px;font-size:14px;padding:0 16px}.aioseo-button.medium .aioseo-loading-spinner{width:35px;height:35px}.aioseo-button.xl{height:66px;border-radius:4px;font-size:18px;padding:0 48px}.aioseo-button.gray{border:1px solid #DCDDE1;background-color:#f3f4f5;color:#141b38}.aioseo-button.gray:hover{background-color:#fff;color:#141b38}.aioseo-button.gray:active{background-color:#f3f4f5}.aioseo-button.green{border:1px solid #00AA63;background-color:#00aa63;color:#fff}.aioseo-button.green:hover{border-color:#07c575;background-color:#07c575}.aioseo-button.green:active{border-color:#15955f;background-color:#15955f}.aioseo-button.blue{border:1px solid #005AE0;background-color:#005ae0;color:#fff}.aioseo-button.blue:hover{border-color:#1a82ea;background-color:#1a82ea}.aioseo-button.blue:active{border-color:#004f9d;background-color:#004f9d}.aioseo-button.wp-blue{border:1px solid #005AE0;background-color:#f3f5f6;color:#005ae0}.aioseo-button.wp-blue:hover{border-color:#1a82ea;background-color:#1a82ea;color:#fff}.aioseo-button.wp-blue:active{border-color:#004f9d;background-color:#004f9d;color:#fff}.aioseo-button.black{border:1px solid #434960;background-color:#434960;color:#fff}.aioseo-button.black:hover{border-color:#2c324c;background-color:#2c324c}.aioseo-button.black:active{border-color:#141b38;background-color:#141b38}.aioseo-button.red{border:1px solid #DF2A4A;background-color:#fff;color:#df2a4a}.aioseo-button.red:hover{background-color:#df2a4a;color:#fff}.aioseo-button.red:active{border-color:#ab2039;background-color:#ab2039}.aioseo-button.loading.blue{border-color:#004f9d;background-color:#004f9d;color:#004f9d}.aioseo-button.loading.blue svg{color:#004f9d}.aioseo-button.loading.blue:hover{background-color:#004f9d;color:#004f9d}.aioseo-button.loading.green{border-color:#15955f;background-color:#15955f;color:#15955f}.aioseo-button.loading.green svg{color:#15955f}.aioseo-button.loading.green:hover{background-color:#15955f;color:#15955f}.aioseo-button.loading.gray{border-color:#f3f4f5;background-color:#f3f4f5;color:#f3f4f5}.aioseo-button.loading.gray svg{color:#f3f4f5}.aioseo-button.loading.gray:hover{background-color:#f3f4f5;color:#f3f4f5}.aioseo-button.loading.black{border-color:#141b38;background-color:#141b38;color:#141b38}.aioseo-button.loading.black svg{color:#141b38}.aioseo-button.loading.black:hover{background-color:#141b38;color:#141b38}.aioseo-button:disabled,.aioseo-button.disabled{border:1px solid #DCDDE1;color:#8c8f9a;background-color:#f3f4f5;cursor:default}.aioseo-button:disabled.gray:hover:not(.loading),.aioseo-button.disabled.gray:hover:not(.loading){color:#8c8f9a}.aioseo-button:disabled.wp-blue,.aioseo-button.disabled.wp-blue{border-color:#ddd;background-color:#f7f7f7}.aioseo-button:disabled.wp-blue:hover,.aioseo-button.disabled.wp-blue:hover{border-color:#ddd;color:#8c8f9a}.aioseo-button:disabled:hover,.aioseo-button.disabled:hover{border-color:#dcdde1;background-color:#f3f4f5}.aioseo-button.disabled{pointer-events:none}.aioseo-alert{position:relative;border-radius:3px;padding:12px;font-size:16px;color:#141b38;line-height:24px}.aioseo-alert.medium{padding:8px 12px;font-size:14px;line-height:22px}.aioseo-alert.small{padding:8px;font-size:14px;line-height:22px}.aioseo-alert .aioseo-alert-close{cursor:pointer;position:absolute;top:-9px;width:18px;height:18px;border-radius:50%;padding:5px;display:inline-flex;justify-content:center;align-content:center}[dir=ltr] .aioseo-alert .aioseo-alert-close{right:-9px}[dir=rtl] .aioseo-alert .aioseo-alert-close{left:-9px}.aioseo-alert .aioseo-alert-close svg{margin:0!important;width:100%;height:100%}.aioseo-alert.blue{border:1px solid #005AE0;background-color:#f2f7fd}.aioseo-alert.blue .aioseo-alert-close{background-color:#005ae0;color:#fff}.aioseo-alert.blue .aioseo-alert-close:hover{background-color:#1a82ea}.aioseo-alert.green{border:1px solid #00AA63;background-color:#f2fdf8}.aioseo-alert.green .aioseo-alert-close{background-color:#00aa63;color:#fff}.aioseo-alert.green .aioseo-alert-close:hover{background-color:#07c575}.aioseo-alert.red{border:1px solid #DF2A4A;background-color:#fbe9ec}.aioseo-alert.red .aioseo-alert-close{background-color:#df2a4a;color:#fff}.aioseo-alert.red .aioseo-alert-close:hover{background-color:#ab2039}.aioseo-alert.yellow{border:1px solid #F18200;background-color:#fcfae8}.aioseo-alert.yellow .aioseo-alert-close{background-color:#f18200;color:#fff}.aioseo-alert.no-border{border-width:0}.aioseo-alert.text-center{text-align:center} all-in-one-seo-pack/dist/Lite/assets/css/Category.CTSS9X_z.css000064400000002050151222735770017755 0ustar00.aioseo-wizard-category{font-size:16px}.aioseo-wizard-category .categories{--aioseo-gutter: 16px;color:#2c324c}.aioseo-wizard-category .categories svg.icon{width:20px;height:20px}[dir=ltr] .aioseo-wizard-category .categories svg.icon{margin-right:10px}[dir=rtl] .aioseo-wizard-category .categories svg.icon{margin-left:10px}.aioseo-wizard-category .categories .other-category{padding-block:4px;margin-top:var(--aioseo-gutter)}[dir=ltr] .aioseo-wizard-category .categories .other-category .aioseo-input{margin-left:10px}[dir=rtl] .aioseo-wizard-category .categories .other-category .aioseo-input{margin-right:10px}.aioseo-wizard-category .categories .other-category .aioseo-input input{height:36px;padding-block:0;border:none}.aioseo-wizard-category .categories .other-category .aioseo-input input:focus{box-shadow:none;outline:none}.aioseo-wizard-category .site-info>:first-child{margin-top:var(--aioseo-gutter);padding-bottom:0}.aioseo-wizard-category .site-info .settings-name .name{margin:12px 0}.aioseo-wizard-category .go-back a{color:#434960;font-size:14px} all-in-one-seo-pack/dist/Lite/assets/css/Checkbox.MEkyDnfa.css000064400000004603151222735770020044 0ustar00.aioseo-checkbox{display:inline-flex;align-items:center}.aioseo-checkbox.disabled,.aioseo-checkbox.no-clicks,.aioseo-checkbox.disabled .form-checkbox .fancy-checkbox,.aioseo-checkbox.no-clicks .form-checkbox .fancy-checkbox{cursor:default}.aioseo-checkbox .form-checkbox-wrapper{display:flex}[dir=ltr] .aioseo-checkbox .form-checkbox-wrapper{margin-right:8px}[dir=rtl] .aioseo-checkbox .form-checkbox-wrapper{margin-left:8px}.aioseo-checkbox.round .form-checkbox span{border-radius:50%}.aioseo-checkbox.round .form-checkbox span:before{border-radius:50%}.aioseo-checkbox.round:not(.medium) .form-checkbox{width:24px;height:24px}.aioseo-checkbox.round:not(.medium) .form-checkbox .fancy-checkbox svg{width:12px;height:12px}.aioseo-checkbox.round:not(.medium) .form-checkbox span:before{height:22px;width:22px;line-height:24px}.aioseo-checkbox .form-checkbox{position:relative;display:inline-block;width:16px;height:16px;color:#fff;vertical-align:bottom;text-align:center}.aioseo-checkbox .form-checkbox input{display:none}.aioseo-checkbox .form-checkbox input:checked+.fancy-checkbox.blue{background:#005ae0}.aioseo-checkbox .form-checkbox input:checked+.fancy-checkbox.green{background:#00aa63}.aioseo-checkbox .form-checkbox input:checked+.fancy-checkbox:before{background:transparent}.aioseo-checkbox .form-checkbox input:disabled+.fancy-checkbox{background:#e8e8eb!important;border:1px solid #D0D1D7;cursor:default}.aioseo-checkbox .form-checkbox input:disabled+.fancy-checkbox svg{color:#8c8f9a}.aioseo-checkbox .form-checkbox input:not(:checked):disabled+.fancy-checkbox:before{bottom:0;background:#e8e8eb}[dir=ltr] .aioseo-checkbox .form-checkbox input:not(:checked):disabled+.fancy-checkbox:before{left:0}[dir=rtl] .aioseo-checkbox .form-checkbox input:not(:checked):disabled+.fancy-checkbox:before{right:0}.aioseo-checkbox .form-checkbox .fancy-checkbox svg{color:#fff;width:10px;height:10px}.aioseo-checkbox .form-checkbox span{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#d0d1d7;transition:.2s;border-radius:3px;display:flex;align-items:center;justify-content:center}.aioseo-checkbox .form-checkbox span:before{position:absolute;content:"";height:14px;width:14px;bottom:1px;background-color:#fff;transition:.2s;font-size:14px;line-height:16px;border-radius:2px}[dir=ltr] .aioseo-checkbox .form-checkbox span:before{left:1px}[dir=rtl] .aioseo-checkbox .form-checkbox span:before{right:1px} all-in-one-seo-pack/dist/Lite/assets/css/CloseAndExit.CoiGAsXP.css000064400000003434151222735770020560 0ustar00.aioseo-wizard-close-and-exit{margin:40px 0;min-height:40px;text-align:center;font-size:14px;line-height:22px}.aioseo-wizard-close-and-exit a{color:#8c8f9a!important}.aioseo-close-and-exit-modal .modal-wrapper .modal-container{max-width:600px}.aioseo-close-and-exit-modal .modal-wrapper .modal-container .modal-header{border-bottom:none;font-size:18px}.aioseo-close-and-exit-modal .aioseo-modal-body{padding:0 30px 30px;display:flex;flex-direction:column;position:relative}.aioseo-close-and-exit-modal .aioseo-modal-body h3{font-size:20px;margin-bottom:16px}.aioseo-close-and-exit-modal .aioseo-modal-body .reset-description{font-size:16px;color:#141b38;margin-bottom:16px;max-width:515px;line-height:24px}[dir=ltr] .aioseo-close-and-exit-modal .aioseo-modal-body .reset-description{text-align:left}[dir=rtl] .aioseo-close-and-exit-modal .aioseo-modal-body .reset-description{text-align:right}.aioseo-close-and-exit-modal .aioseo-modal-body button.close{position:absolute;top:11px;width:24px;height:24px;background-color:#fff;border:none;display:flex;align-items:center}[dir=ltr] .aioseo-close-and-exit-modal .aioseo-modal-body button.close{right:11px}[dir=rtl] .aioseo-close-and-exit-modal .aioseo-modal-body button.close{left:11px}.aioseo-close-and-exit-modal .aioseo-modal-body button.close svg.aioseo-close{cursor:pointer;width:14px;height:14px}.aioseo-close-and-exit-modal .aioseo-modal-body .aioseo-description{max-width:510px;text-align:center}.aioseo-close-and-exit-modal .aioseo-modal-body .aioseo-button:not(.close){margin-top:16px}.aioseo-close-and-exit-modal .aioseo-modal-body div.actions{display:flex;justify-content:flex-end}[dir=ltr] .aioseo-close-and-exit-modal .aioseo-modal-body div.actions a{margin-right:10px}[dir=rtl] .aioseo-close-and-exit-modal .aioseo-modal-body div.actions a{margin-left:10px} all-in-one-seo-pack/dist/Lite/assets/css/ContentRankings.C8NQIaWR.css000064400000000536151222735770021224 0ustar00.aioseo-search-statistics-content-rankings__title h2{font-weight:700;font-size:14px;line-height:125%;color:#2c324c}.aioseo-search-statistics-content-rankings .aioseo-alert{margin-bottom:20px}.aioseo-search-statistics-content-rankings .aioseo-search-statistics-post-table{margin-top:-25px}.aioseo-search-statistics-content-rankings{position:relative} all-in-one-seo-pack/dist/Lite/assets/css/ContentTypes.DMa1hW_L.css000064400000000342151222735770020607 0ustar00.aioseo-search-appearance-content-types .icon{display:flex;align-items:center}[dir=ltr] .aioseo-search-appearance-content-types .icon{margin-right:16px}[dir=rtl] .aioseo-search-appearance-content-types .icon{margin-left:16px} all-in-one-seo-pack/dist/Lite/assets/css/Dashboard.B_fDtI3w.css000064400000007641151222735770020115 0ustar00.aioseo-card-footer{margin-top:auto;padding-top:var(--aioseo-gutter);position:absolute;bottom:var(--aioseo-gutter);width:calc(100% - 40px)}[dir=ltr] .aioseo-card-footer{text-align:left;left:var(--aioseo-gutter)}[dir=rtl] .aioseo-card-footer{text-align:right;right:var(--aioseo-gutter)}.aioseo-card-footer a{text-decoration:none;color:#005ae0;font-weight:700;font-size:14px;list-style:125%}.aioseo-search-statistics-top-keywords .aioseo-loading-spinner{top:0;bottom:0;left:0;right:0;margin:auto}.aioseo-search-statistics-top-keywords .blurred{filter:blur(2px);pointer-events:none;-webkit-user-select:none;user-select:none}.aioseo-search-statistics-top-keywords .top-keywords{display:grid;grid-auto-flow:column;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(5,1fr);margin-bottom:20px}.aioseo-search-statistics-top-keywords .top-keywords-title{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:24px;font-weight:700;font-size:14px;margin-bottom:16px}[dir=ltr] .aioseo-search-statistics-top-keywords .top-keywords-title>div:nth-child(2n){text-align:right}[dir=rtl] .aioseo-search-statistics-top-keywords .top-keywords-title>div:nth-child(2n){text-align:left}.aioseo-search-statistics-top-keywords .top-keywords-row{display:flex}.aioseo-search-statistics-top-keywords .top-keywords-row .keyword{display:flex;align-items:start;flex-basis:100%;padding:12px;background-color:#f9f9fa;font-weight:400;font-size:14px;line-height:125%}.aioseo-search-statistics-top-keywords .top-keywords-row .keyword .limit-line{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical}.aioseo-search-statistics-top-keywords .top-keywords-row .keyword .count{font-weight:700}[dir=ltr] .aioseo-search-statistics-top-keywords .top-keywords-row .keyword .count{margin-right:4px}[dir=rtl] .aioseo-search-statistics-top-keywords .top-keywords-row .keyword .count{margin-left:4px}.aioseo-search-statistics-top-keywords .top-keywords-row .keyword .statistic{font-weight:700}[dir=ltr] .aioseo-search-statistics-top-keywords .top-keywords-row .keyword .statistic{margin-left:auto;padding-left:12px}[dir=rtl] .aioseo-search-statistics-top-keywords .top-keywords-row .keyword .statistic{margin-right:auto;padding-right:12px}.aioseo-search-statistics-top-keywords .top-keywords-row .keyword .statistic-direction{font-size:14px}[dir=ltr] .aioseo-search-statistics-top-keywords .top-keywords-row .keyword .aioseo-tooltip{margin-left:0}[dir=rtl] .aioseo-search-statistics-top-keywords .top-keywords-row .keyword .aioseo-tooltip{margin-right:0}[dir=ltr] .aioseo-search-statistics-top-keywords .top-keywords-row:nth-last-child(-n+5) .keyword{margin-left:12px}[dir=rtl] .aioseo-search-statistics-top-keywords .top-keywords-row:nth-last-child(-n+5) .keyword{margin-right:12px}[dir=ltr] .aioseo-search-statistics-top-keywords .top-keywords-row:nth-child(-n+5) .keyword{margin-right:12px}[dir=rtl] .aioseo-search-statistics-top-keywords .top-keywords-row:nth-child(-n+5) .keyword{margin-left:12px}.aioseo-search-statistics-top-keywords .top-keywords-row:nth-child(n+6):nth-child(odd) .keyword{background-color:#fff}.aioseo-search-statistics-top-keywords .top-keywords-row:nth-child(-n+5):nth-child(2n) .keyword{background-color:#fff}.aioseo-search-statistics-top-keywords .top-keywords-empty{text-align:center}.aioseo-search-statistics-top-keywords .top-keywords-empty .title{font-weight:700;font-size:16px;margin:0 0 12px}.aioseo-search-statistics-dashboard{position:relative}.aioseo-search-statistics-dashboard .aioseo-seo-statistics-card .header .aioseo-tooltip .popper{max-width:400px}.aioseo-search-statistics-dashboard>.aioseo-row>.aioseo-col{display:flex;flex-direction:column}.aioseo-search-statistics-dashboard>.aioseo-row>.aioseo-col .aioseo-card{flex:1}.aioseo-search-statistics-dashboard .aioseo-card.aioseo-keywords-positions-card .content{padding-top:0}.aioseo-search-statistics-dashboard .aioseo-search-statistics-keywords-graph{margin-bottom:20px} all-in-one-seo-pack/dist/Lite/assets/css/DatabaseTools.D43im4Fj.css000064400000004655151222735770020640 0ustar00.aioseo-core-reset-settings .reset-success{margin-bottom:16px}.aioseo-core-reset-settings .reset-settings{margin-top:0;font-size:16px;color:#141b38}.aioseo-core-reset-settings .reset-settings>.settings>.aioseo-col:first-child{font-weight:600;padding-bottom:12px;border-bottom:1px solid #E8E8EB}.aioseo-core-reset-settings .reset-settings .aioseo-button{margin-top:16px}.aioseo-core-reset-settings-modal .aioseo-modal-body{padding:20px 40px 40px;display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative}.aioseo-core-reset-settings-modal .aioseo-modal-body h3{font-size:20px;margin-bottom:16px}.aioseo-core-reset-settings-modal .aioseo-modal-body .reset-description{font-size:16px;color:#141b38;margin-bottom:16px;text-align:center;max-width:515px}.aioseo-core-reset-settings-modal .aioseo-modal-body button.close{position:absolute;top:11px;width:24px;height:24px;background-color:#fff;border:none;display:flex;align-items:center}[dir=ltr] .aioseo-core-reset-settings-modal .aioseo-modal-body button.close{right:11px}[dir=rtl] .aioseo-core-reset-settings-modal .aioseo-modal-body button.close{left:11px}.aioseo-core-reset-settings-modal .aioseo-modal-body button.close svg.aioseo-close{cursor:pointer;width:14px;height:14px}.aioseo-core-reset-settings-modal .aioseo-modal-body .aioseo-description{max-width:510px;text-align:center}.aioseo-core-reset-settings-modal .aioseo-modal-body .aioseo-button:not(.close){margin-top:16px}.aioseo-tools-database-tools .clear-log svg{width:12px;height:12px}[dir=ltr] .aioseo-tools-database-tools .clear-log svg{margin-right:5px}[dir=rtl] .aioseo-tools-database-tools .clear-log svg{margin-left:5px}.aioseo-tools-database-tools .log-size{display:inline-flex;height:40px;background:#f9f9fa;align-items:center;justify-content:center;padding:0 15px;font-size:14px;font-weight:600;color:#434960}[dir=ltr] .aioseo-tools-database-tools .log-size{margin-left:20px}[dir=rtl] .aioseo-tools-database-tools .log-size{margin-right:20px}.aioseo-tools-database-tools .log-size .size-dot{width:8px;height:8px;border-radius:50%}[dir=ltr] .aioseo-tools-database-tools .log-size .size-dot{margin-right:10px}[dir=rtl] .aioseo-tools-database-tools .log-size .size-dot{margin-left:10px}.aioseo-tools-database-tools .log-size .size-dot.green{background-color:#00aa63}.aioseo-tools-database-tools .log-size .size-dot.orange{background-color:#f18200}.aioseo-tools-database-tools .log-size .size-dot.red{background-color:#df2a4a} all-in-one-seo-pack/dist/Lite/assets/css/DatePicker.BjdLZHgn.css000064400000220574151222735770020304 0ustar00@charset "UTF-8";:root{--el-color-white:#ffffff;--el-color-black:#000000;--el-color-primary-rgb:64,158,255;--el-color-success-rgb:103,194,58;--el-color-warning-rgb:230,162,60;--el-color-danger-rgb:245,108,108;--el-color-error-rgb:245,108,108;--el-color-info-rgb:144,147,153;--el-font-size-extra-large:20px;--el-font-size-large:18px;--el-font-size-medium:16px;--el-font-size-base:14px;--el-font-size-small:13px;--el-font-size-extra-small:12px;--el-font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif;--el-font-weight-primary:500;--el-font-line-height-primary:24px;--el-index-normal:1;--el-index-top:1000;--el-index-popper:2000;--el-border-radius-base:4px;--el-border-radius-small:2px;--el-border-radius-round:20px;--el-border-radius-circle:100%;--el-transition-duration:.3s;--el-transition-duration-fast:.2s;--el-transition-function-ease-in-out-bezier:cubic-bezier(.645, .045, .355, 1);--el-transition-function-fast-bezier:cubic-bezier(.23, 1, .32, 1);--el-transition-all:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);--el-transition-fade:opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-md-fade:transform var(--el-transition-duration) var(--el-transition-function-fast-bezier),opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-fade-linear:opacity var(--el-transition-duration-fast) linear;--el-transition-border:border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-box-shadow:box-shadow var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-color:color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-component-size-large:40px;--el-component-size:32px;--el-component-size-small:24px}:root{color-scheme:light;--el-color-white:#ffffff;--el-color-black:#000000;--el-color-primary:#409eff;--el-color-primary-light-3:#79bbff;--el-color-primary-light-5:#a0cfff;--el-color-primary-light-7:#c6e2ff;--el-color-primary-light-8:#d9ecff;--el-color-primary-light-9:#ecf5ff;--el-color-primary-dark-2:#337ecc;--el-color-success:#67c23a;--el-color-success-light-3:#95d475;--el-color-success-light-5:#b3e19d;--el-color-success-light-7:#d1edc4;--el-color-success-light-8:#e1f3d8;--el-color-success-light-9:#f0f9eb;--el-color-success-dark-2:#529b2e;--el-color-warning:#e6a23c;--el-color-warning-light-3:#eebe77;--el-color-warning-light-5:#f3d19e;--el-color-warning-light-7:#f8e3c5;--el-color-warning-light-8:#faecd8;--el-color-warning-light-9:#fdf6ec;--el-color-warning-dark-2:#b88230;--el-color-danger:#f56c6c;--el-color-danger-light-3:#f89898;--el-color-danger-light-5:#fab6b6;--el-color-danger-light-7:#fcd3d3;--el-color-danger-light-8:#fde2e2;--el-color-danger-light-9:#fef0f0;--el-color-danger-dark-2:#c45656;--el-color-error:#f56c6c;--el-color-error-light-3:#f89898;--el-color-error-light-5:#fab6b6;--el-color-error-light-7:#fcd3d3;--el-color-error-light-8:#fde2e2;--el-color-error-light-9:#fef0f0;--el-color-error-dark-2:#c45656;--el-color-info:#909399;--el-color-info-light-3:#b1b3b8;--el-color-info-light-5:#c8c9cc;--el-color-info-light-7:#dedfe0;--el-color-info-light-8:#e9e9eb;--el-color-info-light-9:#f4f4f5;--el-color-info-dark-2:#73767a;--el-bg-color:#ffffff;--el-bg-color-page:#f2f3f5;--el-bg-color-overlay:#ffffff;--el-text-color-primary:#303133;--el-text-color-regular:#606266;--el-text-color-secondary:#909399;--el-text-color-placeholder:#a8abb2;--el-text-color-disabled:#c0c4cc;--el-border-color:#dcdfe6;--el-border-color-light:#e4e7ed;--el-border-color-lighter:#ebeef5;--el-border-color-extra-light:#f2f6fc;--el-border-color-dark:#d4d7de;--el-border-color-darker:#cdd0d6;--el-fill-color:#f0f2f5;--el-fill-color-light:#f5f7fa;--el-fill-color-lighter:#fafafa;--el-fill-color-extra-light:#fafcff;--el-fill-color-dark:#ebedf0;--el-fill-color-darker:#e6e8eb;--el-fill-color-blank:#ffffff;--el-box-shadow:0px 12px 32px 4px rgba(0, 0, 0, .04),0px 8px 20px rgba(0, 0, 0, .08);--el-box-shadow-light:0px 0px 12px rgba(0, 0, 0, .12);--el-box-shadow-lighter:0px 0px 6px rgba(0, 0, 0, .12);--el-box-shadow-dark:0px 16px 48px 16px rgba(0, 0, 0, .08),0px 12px 32px rgba(0, 0, 0, .12),0px 8px 16px -8px rgba(0, 0, 0, .16);--el-disabled-bg-color:var(--el-fill-color-light);--el-disabled-text-color:var(--el-text-color-placeholder);--el-disabled-border-color:var(--el-border-color-light);--el-overlay-color:rgba(0, 0, 0, .8);--el-overlay-color-light:rgba(0, 0, 0, .7);--el-overlay-color-lighter:rgba(0, 0, 0, .5);--el-mask-color:rgba(255, 255, 255, .9);--el-mask-color-extra-light:rgba(255, 255, 255, .3);--el-border-width:1px;--el-border-style:solid;--el-border-color-hover:var(--el-text-color-disabled);--el-border:var(--el-border-width) var(--el-border-style) var(--el-border-color);--el-svg-monochrome-grey:var(--el-border-color)}.el-icon-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}[dir=ltr] .el-icon--right{margin-left:5px}[dir=rtl] .el-icon--right,[dir=ltr] .el-icon--left{margin-right:5px}[dir=rtl] .el-icon--left{margin-left:5px}@-webkit-keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.el-icon{--color:inherit;height:1em;width:1em;line-height:1em;display:inline-flex;justify-content:center;align-items:center;position:relative;fill:currentColor;color:var(--color);font-size:inherit}.el-icon.is-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon svg{height:1em;width:1em}.el-date-table{font-size:12px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-date-table.is-week-mode .el-date-table__row:hover .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table.is-week-mode .el-date-table__row:hover td.available:hover{color:var(--el-datepicker-text-color)}[dir=ltr] .el-date-table.is-week-mode .el-date-table__row:hover td:first-child .el-date-table-cell{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}[dir=rtl] .el-date-table.is-week-mode .el-date-table__row:hover td:first-child .el-date-table-cell{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}[dir=ltr] .el-date-table.is-week-mode .el-date-table__row:hover td:last-child .el-date-table-cell{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}[dir=rtl] .el-date-table.is-week-mode .el-date-table__row:hover td:last-child .el-date-table-cell{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table.is-week-mode .el-date-table__row.current .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table td{width:32px;height:30px;padding:4px 0;box-sizing:border-box;text-align:center;cursor:pointer;position:relative}.el-date-table td .el-date-table-cell{height:30px;padding:3px 0;box-sizing:border-box}.el-date-table td .el-date-table-cell .el-date-table-cell__text{width:24px;height:24px;display:block;margin:0 auto;line-height:24px;position:absolute;border-radius:50%}[dir=ltr] .el-date-table td .el-date-table-cell .el-date-table-cell__text{left:50%;transform:translate(-50%)}[dir=rtl] .el-date-table td .el-date-table-cell .el-date-table-cell__text{right:50%;transform:translate(50%)}.el-date-table td.next-month,.el-date-table td.prev-month{color:var(--el-datepicker-off-text-color)}.el-date-table td.today{position:relative}.el-date-table td.today .el-date-table-cell__text{color:var(--el-color-primary);font-weight:700}.el-date-table td.today.end-date .el-date-table-cell__text,.el-date-table td.today.start-date .el-date-table-cell__text{color:#fff}.el-date-table td.available:hover{color:var(--el-datepicker-hover-text-color)}.el-date-table td.in-range .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table td.in-range .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-date-table td.current:not(.disabled) .el-date-table-cell__text{color:#fff;background-color:var(--el-datepicker-active-color)}.el-date-table td.current:not(.disabled):focus-visible .el-date-table-cell__text{outline:2px solid var(--el-datepicker-active-color);outline-offset:1px}.el-date-table td.end-date .el-date-table-cell,.el-date-table td.start-date .el-date-table-cell{color:#fff}.el-date-table td.end-date .el-date-table-cell__text,.el-date-table td.start-date .el-date-table-cell__text{background-color:var(--el-datepicker-active-color)}[dir=ltr] .el-date-table td.start-date .el-date-table-cell{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}[dir=rtl] .el-date-table td.start-date .el-date-table-cell,[dir=ltr] .el-date-table td.end-date .el-date-table-cell{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}[dir=rtl] .el-date-table td.end-date .el-date-table-cell{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table td.disabled .el-date-table-cell{background-color:var(--el-fill-color-light);opacity:1;cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-date-table td.selected .el-date-table-cell{margin-left:5px;margin-right:5px;background-color:var(--el-datepicker-inrange-bg-color);border-radius:15px}.el-date-table td.selected .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-date-table td.selected .el-date-table-cell__text{background-color:var(--el-datepicker-active-color);color:#fff;border-radius:15px}.el-date-table td.week{font-size:80%;color:var(--el-datepicker-header-text-color)}.el-date-table td:focus{outline:0}.el-date-table th{padding:5px;color:var(--el-datepicker-header-text-color);font-weight:400;border-bottom:solid 1px var(--el-border-color-lighter)}.el-month-table{font-size:12px;margin:-1px;border-collapse:collapse}.el-month-table td{text-align:center;padding:8px 0;cursor:pointer}.el-month-table td div{height:48px;padding:6px 0;box-sizing:border-box}.el-month-table td.today .cell{color:var(--el-color-primary);font-weight:700}.el-month-table td.today.end-date .cell,.el-month-table td.today.start-date .cell{color:#fff}.el-month-table td.disabled .cell{background-color:var(--el-fill-color-light);cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-month-table td.disabled .cell:hover{color:var(--el-text-color-placeholder)}.el-month-table td .cell{width:60px;height:36px;display:block;line-height:36px;color:var(--el-datepicker-text-color);margin:0 auto;border-radius:18px}.el-month-table td .cell:hover{color:var(--el-datepicker-hover-text-color)}.el-month-table td.in-range div{background-color:var(--el-datepicker-inrange-bg-color)}.el-month-table td.in-range div:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-month-table td.end-date div,.el-month-table td.start-date div{color:#fff}.el-month-table td.end-date .cell,.el-month-table td.start-date .cell{color:#fff;background-color:var(--el-datepicker-active-color)}[dir=ltr] .el-month-table td.start-date div{border-top-left-radius:24px;border-bottom-left-radius:24px}[dir=rtl] .el-month-table td.start-date div,[dir=ltr] .el-month-table td.end-date div{border-top-right-radius:24px;border-bottom-right-radius:24px}[dir=rtl] .el-month-table td.end-date div{border-top-left-radius:24px;border-bottom-left-radius:24px}.el-month-table td.current:not(.disabled) .cell{color:var(--el-datepicker-active-color)}.el-month-table td:focus-visible{outline:0}.el-month-table td:focus-visible .cell{outline:2px solid var(--el-datepicker-active-color)}.el-year-table{font-size:12px;margin:-1px;border-collapse:collapse}.el-year-table .el-icon{color:var(--el-datepicker-icon-color)}.el-year-table td{text-align:center;padding:20px 3px;cursor:pointer}.el-year-table td.today .cell{color:var(--el-color-primary);font-weight:700}.el-year-table td.disabled .cell{background-color:var(--el-fill-color-light);cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-year-table td.disabled .cell:hover{color:var(--el-text-color-placeholder)}.el-year-table td .cell{width:48px;height:36px;display:block;line-height:36px;color:var(--el-datepicker-text-color);border-radius:18px;margin:0 auto}.el-year-table td .cell:hover{color:var(--el-datepicker-hover-text-color)}.el-year-table td.current:not(.disabled) .cell{color:var(--el-datepicker-active-color)}.el-year-table td:focus-visible{outline:0}.el-year-table td:focus-visible .cell{outline:2px solid var(--el-datepicker-active-color)}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{max-height:192px;overflow:auto;display:inline-block;width:50%;vertical-align:top;position:relative}.el-time-spinner__wrapper.el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.el-time-spinner__wrapper.is-arrow{box-sizing:border-box;text-align:center;overflow:hidden}.el-time-spinner__wrapper.is-arrow .el-time-spinner__list{transform:translateY(-32px)}.el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.is-disabled):not(.is-active){background:var(--el-fill-color-light);cursor:default}.el-time-spinner__arrow{font-size:12px;color:var(--el-text-color-secondary);position:absolute;width:100%;z-index:var(--el-index-normal);text-align:center;height:30px;line-height:30px;cursor:pointer}[dir=ltr] .el-time-spinner__arrow{left:0}[dir=rtl] .el-time-spinner__arrow{right:0}.el-time-spinner__arrow:hover{color:var(--el-color-primary)}.el-time-spinner__arrow.arrow-up{top:10px}.el-time-spinner__arrow.arrow-down{bottom:10px}.el-time-spinner__input.el-input{width:70%}.el-time-spinner__input.el-input .el-input__inner{padding:0;text-align:center}.el-time-spinner__list{padding:0;margin:0;list-style:none;text-align:center}.el-time-spinner__list:after,.el-time-spinner__list:before{content:"";display:block;width:100%;height:80px}.el-time-spinner__item{height:32px;line-height:32px;font-size:12px;color:var(--el-text-color-regular)}.el-time-spinner__item:hover:not(.is-disabled):not(.is-active){background:var(--el-fill-color-light);cursor:pointer}.el-time-spinner__item.is-active:not(.is-disabled){color:var(--el-text-color-primary);font-weight:700}.el-time-spinner__item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center top}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center bottom}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transition:var(--el-transition-md-fade)}[dir=ltr] .el-zoom-in-left-enter-active,[dir=ltr] .el-zoom-in-left-leave-active{transform-origin:top left}[dir=rtl] .el-zoom-in-left-enter-active,[dir=rtl] .el-zoom-in-left-leave-active{transform-origin:top right}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-enter-active,.el-collapse-transition-leave-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}[dir=ltr] .horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}[dir=rtl] .horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-right ease-in-out,var(--el-transition-duration) padding-left ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-picker__popper{--el-datepicker-border-color:var(--el-disabled-border-color)}.el-picker__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-datepicker-border-color);box-shadow:var(--el-box-shadow-light)}.el-picker__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-datepicker-border-color)}.el-picker__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent}[dir=ltr] .el-picker__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-left-color:transparent}[dir=rtl] .el-picker__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-right-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent}[dir=ltr] .el-picker__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-right-color:transparent}[dir=rtl] .el-picker__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-left-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:transparent}[dir=ltr] .el-picker__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent}[dir=rtl] .el-picker__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-right-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-top-color:transparent}[dir=ltr] .el-picker__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent}[dir=rtl] .el-picker__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-left-color:transparent}.el-date-editor{--el-date-editor-width:220px;--el-date-editor-monthrange-width:300px;--el-date-editor-daterange-width:350px;--el-date-editor-datetimerange-width:400px;--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;position:relative;vertical-align:middle}[dir=ltr] .el-date-editor{text-align:left}[dir=rtl] .el-date-editor{text-align:right}.el-date-editor.el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset}.el-date-editor.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-date-editor.el-input,.el-date-editor.el-input__wrapper{width:var(--el-date-editor-width);height:var(--el-input-height,var(--el-component-size))}.el-date-editor--monthrange{--el-date-editor-width:var(--el-date-editor-monthrange-width)}.el-date-editor--daterange,.el-date-editor--timerange{--el-date-editor-width:var(--el-date-editor-daterange-width)}.el-date-editor--datetimerange{--el-date-editor-width:var(--el-date-editor-datetimerange-width)}.el-date-editor--dates .el-input__wrapper{text-overflow:ellipsis;white-space:nowrap}.el-date-editor .close-icon,.el-date-editor .clear-icon{cursor:pointer}.el-date-editor .clear-icon:hover{color:var(--el-text-color-secondary)}.el-date-editor .el-range__icon{height:inherit;font-size:14px;color:var(--el-text-color-placeholder)}[dir=ltr] .el-date-editor .el-range__icon{float:left}[dir=rtl] .el-date-editor .el-range__icon{float:right}.el-date-editor .el-range__icon svg{vertical-align:middle}.el-date-editor .el-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:0;display:inline-block;height:30px;line-height:30px;margin:0;padding:0;width:39%;text-align:center;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);background-color:transparent}.el-date-editor .el-range-input::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-input:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-input::placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-separator{flex:1;display:inline-flex;justify-content:center;align-items:center;height:100%;padding:0 5px;margin:0;font-size:14px;overflow-wrap:break-word;color:var(--el-text-color-primary)}.el-date-editor .el-range__close-icon{font-size:14px;color:var(--el-text-color-placeholder);height:inherit;width:unset;cursor:pointer}.el-date-editor .el-range__close-icon:hover{color:var(--el-text-color-secondary)}.el-date-editor .el-range__close-icon svg{vertical-align:middle}.el-date-editor .el-range__close-icon--hidden{opacity:0;visibility:hidden}.el-range-editor.el-input__wrapper{display:inline-flex;align-items:center;padding:0 10px}.el-range-editor.is-active,.el-range-editor.is-active:hover{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-range-editor--large{line-height:var(--el-component-size-large)}.el-range-editor--large.el-input__wrapper{height:var(--el-component-size-large)}.el-range-editor--large .el-range-separator{line-height:40px;font-size:14px}.el-range-editor--large .el-range-input{height:38px;line-height:38px;font-size:14px}.el-range-editor--small{line-height:var(--el-component-size-small)}.el-range-editor--small.el-input__wrapper{height:var(--el-component-size-small)}.el-range-editor--small .el-range-separator{line-height:24px;font-size:12px}.el-range-editor--small .el-range-input{height:22px;line-height:22px;font-size:12px}.el-range-editor.is-disabled{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-range-editor.is-disabled:focus,.el-range-editor.is-disabled:hover{border-color:var(--el-disabled-border-color)}.el-range-editor.is-disabled input{background-color:var(--el-disabled-bg-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-range-editor.is-disabled input::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled input:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled input::placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled .el-range-separator{color:var(--el-disabled-text-color)}.el-picker-panel{color:var(--el-text-color-regular);background:var(--el-bg-color-overlay);border-radius:var(--el-border-radius-base);line-height:30px}.el-picker-panel .el-time-panel{margin:5px 0;border:solid 1px var(--el-datepicker-border-color);background-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-picker-panel__body-wrapper:after,.el-picker-panel__body:after{content:"";display:table;clear:both}.el-picker-panel__content{position:relative;margin:15px}.el-picker-panel__footer{border-top:1px solid var(--el-datepicker-inner-border-color);padding:4px 12px;background-color:var(--el-bg-color-overlay);position:relative;font-size:0}[dir=ltr] .el-picker-panel__footer{text-align:right}[dir=rtl] .el-picker-panel__footer{text-align:left}.el-picker-panel__shortcut{display:block;width:100%;border:0;background-color:transparent;line-height:28px;font-size:14px;color:var(--el-datepicker-text-color);outline:0;cursor:pointer}[dir=ltr] .el-picker-panel__shortcut{padding-left:12px;text-align:left}[dir=rtl] .el-picker-panel__shortcut{padding-right:12px;text-align:right}.el-picker-panel__shortcut:hover{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__shortcut.active{background-color:#e6f1fe;color:var(--el-datepicker-active-color)}.el-picker-panel__btn{border:1px solid var(--el-fill-color-darker);color:var(--el-text-color-primary);line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-picker-panel__btn[disabled]{color:var(--el-text-color-disabled);cursor:not-allowed}.el-picker-panel__icon-btn{font-size:12px;color:var(--el-datepicker-icon-color);border:0;cursor:pointer;outline:0;margin-top:8px}[dir=ltr] .el-picker-panel__icon-btn{background:0 0}[dir=rtl] .el-picker-panel__icon-btn{background:100% 0}.el-picker-panel__icon-btn:hover{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__icon-btn:focus-visible{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__icon-btn.is-disabled{color:var(--el-text-color-disabled)}.el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.el-picker-panel__icon-btn .el-icon{cursor:pointer;font-size:inherit}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{position:absolute;top:0;bottom:0;width:110px;box-sizing:border-box;padding-top:6px;background-color:var(--el-bg-color-overlay);overflow:auto}[dir=ltr] .el-picker-panel [slot=sidebar],[dir=ltr] .el-picker-panel__sidebar{border-right:1px solid var(--el-datepicker-inner-border-color)}[dir=rtl] .el-picker-panel [slot=sidebar],[dir=rtl] .el-picker-panel__sidebar{border-left:1px solid var(--el-datepicker-inner-border-color)}[dir=ltr] .el-picker-panel [slot=sidebar]+.el-picker-panel__body,[dir=ltr] .el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}[dir=rtl] .el-picker-panel [slot=sidebar]+.el-picker-panel__body,[dir=rtl] .el-picker-panel__sidebar+.el-picker-panel__body{margin-right:110px}.el-date-picker{--el-datepicker-text-color:var(--el-text-color-regular);--el-datepicker-off-text-color:var(--el-text-color-placeholder);--el-datepicker-header-text-color:var(--el-text-color-regular);--el-datepicker-icon-color:var(--el-text-color-primary);--el-datepicker-border-color:var(--el-disabled-border-color);--el-datepicker-inner-border-color:var(--el-border-color-light);--el-datepicker-inrange-bg-color:var(--el-border-color-extra-light);--el-datepicker-inrange-hover-bg-color:var(--el-border-color-extra-light);--el-datepicker-active-color:var(--el-color-primary);--el-datepicker-hover-text-color:var(--el-color-primary)}.el-date-picker{width:322px}.el-date-picker.has-sidebar.has-time{width:434px}.el-date-picker.has-sidebar{width:438px}.el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-picker .el-picker-panel__content{width:292px}.el-date-picker table{table-layout:fixed;width:100%}.el-date-picker__editor-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-picker__time-header{position:relative;border-bottom:1px solid var(--el-datepicker-inner-border-color);font-size:12px;padding:8px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-picker__header{margin:12px;text-align:center}.el-date-picker__header--bordered{margin-bottom:0;padding-bottom:12px;border-bottom:solid 1px var(--el-border-color-lighter)}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{font-size:16px;font-weight:500;padding:0 5px;line-height:22px;text-align:center;cursor:pointer;color:var(--el-text-color-regular)}.el-date-picker__header-label:hover{color:var(--el-datepicker-hover-text-color)}.el-date-picker__header-label:focus-visible{outline:0;color:var(--el-datepicker-hover-text-color)}.el-date-picker__header-label.active{color:var(--el-datepicker-active-color)}[dir=ltr] .el-date-picker__prev-btn{float:left}[dir=rtl] .el-date-picker__prev-btn,[dir=ltr] .el-date-picker__next-btn{float:right}[dir=rtl] .el-date-picker__next-btn{float:left}.el-date-picker__time-wrap{padding:10px;text-align:center}.el-date-picker__time-label{cursor:pointer;line-height:30px}[dir=ltr] .el-date-picker__time-label{float:left;margin-left:10px}[dir=rtl] .el-date-picker__time-label{float:right;margin-right:10px}.el-date-picker .el-time-panel{position:absolute}.el-date-range-picker{--el-datepicker-text-color:var(--el-text-color-regular);--el-datepicker-off-text-color:var(--el-text-color-placeholder);--el-datepicker-header-text-color:var(--el-text-color-regular);--el-datepicker-icon-color:var(--el-text-color-primary);--el-datepicker-border-color:var(--el-disabled-border-color);--el-datepicker-inner-border-color:var(--el-border-color-light);--el-datepicker-inrange-bg-color:var(--el-border-color-extra-light);--el-datepicker-inrange-hover-bg-color:var(--el-border-color-extra-light);--el-datepicker-active-color:var(--el-color-primary);--el-datepicker-hover-text-color:var(--el-color-primary)}.el-date-range-picker{width:646px}.el-date-range-picker.has-sidebar{width:756px}.el-date-range-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-range-picker table{table-layout:fixed;width:100%}.el-date-range-picker .el-picker-panel__body{min-width:513px}.el-date-range-picker .el-picker-panel__content{margin:0}.el-date-range-picker__header{position:relative;text-align:center;height:28px}[dir=ltr] .el-date-range-picker__header [class*=arrow-left]{float:left}[dir=rtl] .el-date-range-picker__header [class*=arrow-left],[dir=ltr] .el-date-range-picker__header [class*=arrow-right]{float:right}[dir=rtl] .el-date-range-picker__header [class*=arrow-right]{float:left}.el-date-range-picker__header div{font-size:16px;font-weight:500}[dir=ltr] .el-date-range-picker__header div{margin-right:50px}[dir=rtl] .el-date-range-picker__header div{margin-left:50px}.el-date-range-picker__content{width:50%;box-sizing:border-box;margin:0;padding:16px}[dir=ltr] .el-date-range-picker__content{float:left}[dir=rtl] .el-date-range-picker__content{float:right}[dir=ltr] .el-date-range-picker__content.is-left{border-right:1px solid var(--el-datepicker-inner-border-color)}[dir=rtl] .el-date-range-picker__content.is-left{border-left:1px solid var(--el-datepicker-inner-border-color)}.el-date-range-picker__content .el-date-range-picker__header div{margin-left:50px;margin-right:50px}.el-date-range-picker__editors-wrap{box-sizing:border-box;display:table-cell}[dir=ltr] .el-date-range-picker__editors-wrap.is-right{text-align:right}[dir=rtl] .el-date-range-picker__editors-wrap.is-right{text-align:left}.el-date-range-picker__time-header{position:relative;border-bottom:1px solid var(--el-datepicker-inner-border-color);font-size:12px;padding:8px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-range-picker__time-header>.el-icon-arrow-right{font-size:20px;vertical-align:middle;display:table-cell;color:var(--el-datepicker-icon-color)}.el-date-range-picker__time-picker-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-range-picker__time-picker-wrap .el-picker-panel{position:absolute;top:13px;z-index:1;background:#fff}[dir=ltr] .el-date-range-picker__time-picker-wrap .el-picker-panel{right:0}[dir=rtl] .el-date-range-picker__time-picker-wrap .el-picker-panel{left:0}.el-date-range-picker__time-picker-wrap .el-time-panel{position:absolute}.el-time-range-picker{width:354px;overflow:visible}.el-time-range-picker__content{position:relative;text-align:center;padding:10px;z-index:1}.el-time-range-picker__cell{box-sizing:border-box;margin:0;padding:4px 7px 7px;width:50%;display:inline-block}.el-time-range-picker__header{margin-bottom:5px;text-align:center;font-size:14px}.el-time-range-picker__body{border-radius:2px;border:1px solid var(--el-datepicker-border-color)}.el-time-panel{border-radius:2px;position:relative;width:180px;z-index:var(--el-index-top);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;box-sizing:content-box}[dir=ltr] .el-time-panel{left:0}[dir=rtl] .el-time-panel{right:0}.el-time-panel__content{font-size:0;position:relative;overflow:hidden}.el-time-panel__content:after,.el-time-panel__content:before{content:"";top:50%;position:absolute;margin-top:-16px;height:32px;z-index:-1;left:0;right:0;box-sizing:border-box;padding-top:6px}[dir=ltr] .el-time-panel__content:after,[dir=ltr] .el-time-panel__content:before{text-align:left}[dir=rtl] .el-time-panel__content:after,[dir=rtl] .el-time-panel__content:before{text-align:right}.el-time-panel__content:after{margin-left:12%;margin-right:12%}[dir=ltr] .el-time-panel__content:after{left:50%}[dir=rtl] .el-time-panel__content:after{right:50%}.el-time-panel__content:before{margin-right:12%;margin-left:12%;border-top:1px solid var(--el-border-color-light);border-bottom:1px solid var(--el-border-color-light)}[dir=ltr] .el-time-panel__content:before{padding-left:50%}[dir=rtl] .el-time-panel__content:before{padding-right:50%}[dir=ltr] .el-time-panel__content.has-seconds:after{left:66.6666666667%}[dir=rtl] .el-time-panel__content.has-seconds:after{right:66.6666666667%}[dir=ltr] .el-time-panel__content.has-seconds:before{padding-left:33.3333333333%}[dir=rtl] .el-time-panel__content.has-seconds:before{padding-right:33.3333333333%}.el-time-panel__footer{border-top:1px solid var(--el-timepicker-inner-border-color,var(--el-border-color-light));padding:4px;height:36px;line-height:25px;box-sizing:border-box}[dir=ltr] .el-time-panel__footer{text-align:right}[dir=rtl] .el-time-panel__footer{text-align:left}.el-time-panel__btn{border:none;line-height:28px;padding:0 5px;margin:0 5px;cursor:pointer;background-color:transparent;outline:0;font-size:12px;color:var(--el-text-color-primary)}.el-time-panel__btn.confirm{font-weight:800;color:var(--el-timepicker-active-color,var(--el-color-primary))}.el-textarea{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%}.el-textarea{position:relative;display:inline-block;width:100%;vertical-align:bottom;font-size:var(--el-font-size-base)}.el-textarea__inner{position:relative;display:block;resize:vertical;padding:5px 11px;line-height:1.5;box-sizing:border-box;width:100%;font-size:inherit;font-family:inherit;color:var(--el-input-text-color,var(--el-text-color-regular));background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;-webkit-appearance:none;box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));transition:var(--el-transition-box-shadow);border:none}.el-textarea__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:-ms-input-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-textarea__inner:focus{outline:0;box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-textarea .el-input__count{color:var(--el-color-info);background:var(--el-fill-color-blank);position:absolute;font-size:12px;line-height:14px;bottom:5px}[dir=ltr] .el-textarea .el-input__count{right:10px}[dir=rtl] .el-textarea .el-input__count{left:10px}.el-textarea.is-disabled .el-textarea__inner{box-shadow:0 0 0 1px var(--el-disabled-border-color) inset;background-color:var(--el-disabled-bg-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-exceed .el-textarea__inner{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-textarea.is-exceed .el-input__count{color:var(--el-color-danger)}.el-input{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%}.el-input{--el-input-height:var(--el-component-size);position:relative;font-size:var(--el-font-size-base);display:inline-flex;width:var(--el-input-width);line-height:var(--el-input-height);box-sizing:border-box;vertical-align:middle}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:var(--el-text-color-disabled)}.el-input::-webkit-scrollbar-corner{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track-piece{background:var(--el-fill-color-blank);width:6px}.el-input .el-input__clear,.el-input .el-input__password{color:var(--el-input-icon-color);font-size:14px;cursor:pointer}.el-input .el-input__clear:hover,.el-input .el-input__password:hover{color:var(--el-input-clear-hover-color)}.el-input .el-input__count{height:100%;display:inline-flex;align-items:center;color:var(--el-color-info);font-size:12px}.el-input .el-input__count .el-input__count-inner{background:var(--el-fill-color-blank);line-height:initial;display:inline-block}[dir=ltr] .el-input .el-input__count .el-input__count-inner{padding-left:8px}[dir=rtl] .el-input .el-input__count .el-input__count-inner{padding-right:8px}.el-input__wrapper{display:inline-flex;flex-grow:1;align-items:center;justify-content:center;padding:1px 11px;background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));cursor:text;transition:var(--el-transition-box-shadow);transform:translateZ(0);box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset}.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 32px) - 2px);width:100%;flex-grow:1;-webkit-appearance:none;color:var(--el-input-text-color,var(--el-text-color-regular));font-size:inherit;height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);padding:0;outline:0;border:none;box-sizing:border-box}[dir=ltr] .el-input__inner{background:0 0}[dir=rtl] .el-input__inner{background:100% 0}.el-input__inner:focus{outline:0}.el-input__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner:-ms-input-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner[type=password]::-ms-reveal{display:none}.el-input__inner[type=number]{line-height:1}.el-input__prefix{display:inline-flex;white-space:nowrap;flex-shrink:0;flex-wrap:nowrap;height:100%;text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none}.el-input__prefix-inner{pointer-events:all;display:inline-flex;align-items:center;justify-content:center}[dir=ltr] .el-input__prefix-inner>:last-child{margin-right:8px}[dir=rtl] .el-input__prefix-inner>:last-child{margin-left:8px}[dir=ltr] .el-input__prefix-inner>:first-child,[dir=ltr] .el-input__prefix-inner>:first-child.el-input__icon{margin-left:0}[dir=rtl] .el-input__prefix-inner>:first-child,[dir=rtl] .el-input__prefix-inner>:first-child.el-input__icon{margin-right:0}.el-input__suffix{display:inline-flex;white-space:nowrap;flex-shrink:0;flex-wrap:nowrap;height:100%;text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none}.el-input__suffix-inner{pointer-events:all;display:inline-flex;align-items:center;justify-content:center}[dir=ltr] .el-input__suffix-inner>:first-child{margin-left:8px}[dir=rtl] .el-input__suffix-inner>:first-child{margin-right:8px}.el-input .el-input__icon{height:inherit;line-height:inherit;display:flex;justify-content:center;align-items:center;transition:all var(--el-transition-duration)}[dir=ltr] .el-input .el-input__icon{margin-left:8px}[dir=rtl] .el-input .el-input__icon{margin-right:8px}.el-input__validateIcon{pointer-events:none}.el-input.is-active .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-color,) inset}.el-input.is-disabled{cursor:not-allowed}.el-input.is-disabled .el-input__wrapper{background-color:var(--el-disabled-bg-color);box-shadow:0 0 0 1px var(--el-disabled-border-color) inset}.el-input.is-disabled .el-input__inner{color:var(--el-disabled-text-color);-webkit-text-fill-color:var(--el-disabled-text-color);cursor:not-allowed}.el-input.is-disabled .el-input__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__inner::placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-exceed .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-input.is-exceed .el-input__suffix .el-input__count{color:var(--el-color-danger)}.el-input--large{--el-input-height:var(--el-component-size-large);font-size:14px}.el-input--large .el-input__wrapper{padding:1px 15px}.el-input--large .el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 40px) - 2px)}.el-input--small{--el-input-height:var(--el-component-size-small);font-size:12px}.el-input--small .el-input__wrapper{padding:1px 7px}.el-input--small .el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 24px) - 2px)}.el-input-group{display:inline-flex;width:100%;align-items:stretch}.el-input-group__append,.el-input-group__prepend{background-color:var(--el-fill-color-light);color:var(--el-color-info);position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:100%;border-radius:var(--el-input-border-radius);padding:0 20px;white-space:nowrap}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:0}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:0 -20px}.el-input-group__append button.el-button,.el-input-group__append button.el-button:hover,.el-input-group__append div.el-select .el-select__wrapper,.el-input-group__append div.el-select:hover .el-select__wrapper,.el-input-group__prepend button.el-button,.el-input-group__prepend button.el-button:hover,.el-input-group__prepend div.el-select .el-select__wrapper,.el-input-group__prepend div.el-select:hover .el-select__wrapper{border-color:transparent;background-color:transparent;color:inherit}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}[dir=ltr] .el-input-group__prepend{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}[dir=rtl] .el-input-group__prepend{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:-1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}[dir=ltr] .el-input-group__append{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}[dir=rtl] .el-input-group__append{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,1px 0 0 0 var(--el-input-border-color) inset}[dir=ltr] .el-input-group--prepend>.el-input__wrapper{border-top-left-radius:0;border-bottom-left-radius:0}[dir=rtl] .el-input-group--prepend>.el-input__wrapper{border-top-right-radius:0;border-bottom-right-radius:0}[dir=ltr] .el-input-group--prepend .el-input-group__prepend .el-select .el-select__wrapper{border-top-right-radius:0;border-bottom-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}[dir=rtl] .el-input-group--prepend .el-input-group__prepend .el-select .el-select__wrapper{border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:-1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}[dir=ltr] .el-input-group--append>.el-input__wrapper{border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] .el-input-group--append>.el-input__wrapper{border-top-left-radius:0;border-bottom-left-radius:0}[dir=ltr] .el-input-group--append .el-input-group__append .el-select .el-select__wrapper{border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}[dir=rtl] .el-input-group--append .el-input-group__append .el-select .el-select__wrapper{border-top-right-radius:0;border-bottom-right-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,1px 0 0 0 var(--el-input-border-color) inset}.el-scrollbar{--el-scrollbar-opacity:.3;--el-scrollbar-bg-color:var(--el-text-color-secondary);--el-scrollbar-hover-opacity:.5;--el-scrollbar-hover-bg-color:var(--el-text-color-secondary)}.el-scrollbar{overflow:hidden;position:relative;height:100%}.el-scrollbar__wrap{overflow:auto;height:100%}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{display:none}.el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:var(--el-scrollbar-bg-color,var(--el-text-color-secondary));transition:var(--el-transition-duration) background-color;opacity:var(--el-scrollbar-opacity,.3)}.el-scrollbar__thumb:hover{background-color:var(--el-scrollbar-hover-bg-color,var(--el-text-color-secondary));opacity:var(--el-scrollbar-hover-opacity,.5)}.el-scrollbar__bar{position:absolute;bottom:2px;z-index:1;border-radius:4px}[dir=ltr] .el-scrollbar__bar{right:2px}[dir=rtl] .el-scrollbar__bar{left:2px}.el-scrollbar__bar.is-vertical{width:6px;top:2px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px}[dir=ltr] .el-scrollbar__bar.is-horizontal{left:2px}[dir=rtl] .el-scrollbar__bar.is-horizontal{right:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-scrollbar-fade-enter-active{transition:opacity .34s ease-out}.el-scrollbar-fade-leave-active{transition:opacity .12s ease-out}.el-scrollbar-fade-enter-from,.el-scrollbar-fade-leave-active{opacity:0}.el-popper{--el-popper-border-radius:var(--el-popover-border-radius, 4px)}.el-popper{position:absolute;border-radius:var(--el-popper-border-radius);padding:5px 11px;z-index:2000;font-size:12px;line-height:20px;min-width:10px;overflow-wrap:break-word;visibility:visible}.el-popper.is-dark{color:var(--el-bg-color);background:var(--el-text-color-primary);border:1px solid var(--el-text-color-primary)}.el-popper.is-dark .el-popper__arrow:before{border:1px solid var(--el-text-color-primary);background:var(--el-text-color-primary)}[dir=ltr] .el-popper.is-dark .el-popper__arrow:before{right:0}[dir=rtl] .el-popper.is-dark .el-popper__arrow:before{left:0}.el-popper.is-light{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light)}.el-popper.is-light .el-popper__arrow:before{border:1px solid var(--el-border-color-light);background:var(--el-bg-color-overlay)}[dir=ltr] .el-popper.is-light .el-popper__arrow:before{right:0}[dir=rtl] .el-popper.is-light .el-popper__arrow:before{left:0}.el-popper.is-pure{padding:0}.el-popper__arrow{position:absolute;width:10px;height:10px;z-index:-1}.el-popper__arrow:before{position:absolute;width:10px;height:10px;z-index:-1;content:" ";background:var(--el-text-color-primary);box-sizing:border-box}[dir=ltr] .el-popper__arrow:before{transform:rotate(45deg)}[dir=rtl] .el-popper__arrow:before{transform:rotate(-45deg)}.el-popper[data-popper-placement^=top]>.el-popper__arrow{bottom:-5px}[dir=ltr] .el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-bottom-right-radius:2px}[dir=rtl] .el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-bottom-left-radius:2px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow{top:-5px}[dir=ltr] .el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-top-left-radius:2px}[dir=rtl] .el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-top-right-radius:2px}[dir=ltr] .el-popper[data-popper-placement^=left]>.el-popper__arrow{right:-5px}[dir=rtl] .el-popper[data-popper-placement^=left]>.el-popper__arrow{left:-5px}[dir=ltr] .el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-top-right-radius:2px}[dir=rtl] .el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-top-left-radius:2px}[dir=ltr] .el-popper[data-popper-placement^=right]>.el-popper__arrow{left:-5px}[dir=rtl] .el-popper[data-popper-placement^=right]>.el-popper__arrow{right:-5px}[dir=ltr] .el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-bottom-left-radius:2px}[dir=rtl] .el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-bottom-right-radius:2px}.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent!important}[dir=ltr] .el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-left-color:transparent!important}[dir=rtl] .el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-right-color:transparent!important}.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent!important}[dir=ltr] .el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-right-color:transparent!important}[dir=rtl] .el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-left-color:transparent!important}.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:transparent!important}[dir=ltr] .el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent!important}[dir=rtl] .el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-right-color:transparent!important}.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-top-color:transparent!important}[dir=ltr] .el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent!important}[dir=rtl] .el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-left-color:transparent!important}.el-button{--el-button-font-weight:var(--el-font-weight-primary);--el-button-border-color:var(--el-border-color);--el-button-bg-color:var(--el-fill-color-blank);--el-button-text-color:var(--el-text-color-regular);--el-button-disabled-text-color:var(--el-disabled-text-color);--el-button-disabled-bg-color:var(--el-fill-color-blank);--el-button-disabled-border-color:var(--el-border-color-light);--el-button-divide-border-color:rgba(255, 255, 255, .5);--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-color-primary-light-9);--el-button-hover-border-color:var(--el-color-primary-light-7);--el-button-active-text-color:var(--el-button-hover-text-color);--el-button-active-border-color:var(--el-color-primary);--el-button-active-bg-color:var(--el-button-hover-bg-color);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-hover-link-text-color:var(--el-color-info);--el-button-active-color:var(--el-text-color-primary)}.el-button{display:inline-flex;justify-content:center;align-items:center;line-height:1;height:32px;white-space:nowrap;cursor:pointer;color:var(--el-button-text-color);text-align:center;box-sizing:border-box;outline:0;transition:.1s;font-weight:var(--el-button-font-weight);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-webkit-appearance:none;background-color:var(--el-button-bg-color);border:var(--el-border);border-color:var(--el-button-border-color);padding:8px 15px;font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base)}.el-button:focus,.el-button:hover{color:var(--el-button-hover-text-color);border-color:var(--el-button-hover-border-color);background-color:var(--el-button-hover-bg-color);outline:0}.el-button:active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:0}.el-button:focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px}.el-button>span{display:inline-flex;align-items:center}[dir=ltr] .el-button+.el-button{margin-left:12px}[dir=rtl] .el-button+.el-button{margin-right:12px}.el-button.is-round{padding:8px 15px}.el-button::-moz-focus-inner{border:0}[dir=ltr] .el-button [class*=el-icon]+span{margin-left:6px}[dir=rtl] .el-button [class*=el-icon]+span{margin-right:6px}.el-button [class*=el-icon] svg{vertical-align:bottom}.el-button.is-plain{--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-fill-color-blank);--el-button-hover-border-color:var(--el-color-primary)}.el-button.is-active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:0}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{color:var(--el-button-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color);border-color:var(--el-button-disabled-border-color)}.el-button.is-loading{position:relative;pointer-events:none}.el-button.is-loading:before{z-index:1;pointer-events:none;content:"";position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:var(--el-mask-color-extra-light)}.el-button.is-round{border-radius:var(--el-border-radius-round)}.el-button.is-circle{width:32px;border-radius:50%;padding:8px}.el-button.is-text{color:var(--el-button-text-color);border:0 solid transparent;background-color:transparent}.el-button.is-text.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important}.el-button.is-text:not(.is-disabled):focus,.el-button.is-text:not(.is-disabled):hover{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled):focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px}.el-button.is-text:not(.is-disabled):active{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled).is-has-bg:focus,.el-button.is-text:not(.is-disabled).is-has-bg:hover{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg:active{background-color:var(--el-fill-color-dark)}.el-button__text--expand{letter-spacing:.3em}[dir=ltr] .el-button__text--expand{margin-right:-.3em}[dir=rtl] .el-button__text--expand{margin-left:-.3em}.el-button.is-link{border-color:transparent;color:var(--el-button-text-color);padding:2px;height:auto}[dir=ltr] .el-button.is-link{background:0 0}[dir=rtl] .el-button.is-link{background:100% 0}.el-button.is-link:focus,.el-button.is-link:hover{color:var(--el-button-hover-link-text-color)}.el-button.is-link.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important;border-color:transparent!important}.el-button.is-link:not(.is-disabled):focus,.el-button.is-link:not(.is-disabled):hover{border-color:transparent;background-color:transparent}.el-button.is-link:not(.is-disabled):active{color:var(--el-button-active-color);border-color:transparent;background-color:transparent}.el-button--text{border-color:transparent;color:var(--el-color-primary);padding-left:0;padding-right:0}[dir=ltr] .el-button--text{background:0 0}[dir=rtl] .el-button--text{background:100% 0}.el-button--text.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important;border-color:transparent!important}.el-button--text:not(.is-disabled):focus,.el-button--text:not(.is-disabled):hover{color:var(--el-color-primary-light-3);border-color:transparent;background-color:transparent}.el-button--text:not(.is-disabled):active{color:var(--el-color-primary-dark-2);border-color:transparent;background-color:transparent}.el-button__link--expand{letter-spacing:.3em}[dir=ltr] .el-button__link--expand{margin-right:-.3em}[dir=rtl] .el-button__link--expand{margin-left:-.3em}.el-button--primary{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-primary);--el-button-border-color:var(--el-color-primary);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-active-color:var(--el-color-primary-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-primary-light-5);--el-button-hover-bg-color:var(--el-color-primary-light-3);--el-button-hover-border-color:var(--el-color-primary-light-3);--el-button-active-bg-color:var(--el-color-primary-dark-2);--el-button-active-border-color:var(--el-color-primary-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-primary-light-5);--el-button-disabled-border-color:var(--el-color-primary-light-5)}.el-button--primary.is-link,.el-button--primary.is-plain,.el-button--primary.is-text{--el-button-text-color:var(--el-color-primary);--el-button-bg-color:var(--el-color-primary-light-9);--el-button-border-color:var(--el-color-primary-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-primary);--el-button-hover-border-color:var(--el-color-primary);--el-button-active-text-color:var(--el-color-white)}.el-button--primary.is-link.is-disabled,.el-button--primary.is-link.is-disabled:active,.el-button--primary.is-link.is-disabled:focus,.el-button--primary.is-link.is-disabled:hover,.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover,.el-button--primary.is-text.is-disabled,.el-button--primary.is-text.is-disabled:active,.el-button--primary.is-text.is-disabled:focus,.el-button--primary.is-text.is-disabled:hover{color:var(--el-color-primary-light-5);background-color:var(--el-color-primary-light-9);border-color:var(--el-color-primary-light-8)}.el-button--success{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-success);--el-button-border-color:var(--el-color-success);--el-button-outline-color:var(--el-color-success-light-5);--el-button-active-color:var(--el-color-success-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-success-light-5);--el-button-hover-bg-color:var(--el-color-success-light-3);--el-button-hover-border-color:var(--el-color-success-light-3);--el-button-active-bg-color:var(--el-color-success-dark-2);--el-button-active-border-color:var(--el-color-success-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-success-light-5);--el-button-disabled-border-color:var(--el-color-success-light-5)}.el-button--success.is-link,.el-button--success.is-plain,.el-button--success.is-text{--el-button-text-color:var(--el-color-success);--el-button-bg-color:var(--el-color-success-light-9);--el-button-border-color:var(--el-color-success-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-success);--el-button-hover-border-color:var(--el-color-success);--el-button-active-text-color:var(--el-color-white)}.el-button--success.is-link.is-disabled,.el-button--success.is-link.is-disabled:active,.el-button--success.is-link.is-disabled:focus,.el-button--success.is-link.is-disabled:hover,.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover,.el-button--success.is-text.is-disabled,.el-button--success.is-text.is-disabled:active,.el-button--success.is-text.is-disabled:focus,.el-button--success.is-text.is-disabled:hover{color:var(--el-color-success-light-5);background-color:var(--el-color-success-light-9);border-color:var(--el-color-success-light-8)}.el-button--warning{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-warning);--el-button-border-color:var(--el-color-warning);--el-button-outline-color:var(--el-color-warning-light-5);--el-button-active-color:var(--el-color-warning-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-warning-light-5);--el-button-hover-bg-color:var(--el-color-warning-light-3);--el-button-hover-border-color:var(--el-color-warning-light-3);--el-button-active-bg-color:var(--el-color-warning-dark-2);--el-button-active-border-color:var(--el-color-warning-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-warning-light-5);--el-button-disabled-border-color:var(--el-color-warning-light-5)}.el-button--warning.is-link,.el-button--warning.is-plain,.el-button--warning.is-text{--el-button-text-color:var(--el-color-warning);--el-button-bg-color:var(--el-color-warning-light-9);--el-button-border-color:var(--el-color-warning-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-warning);--el-button-hover-border-color:var(--el-color-warning);--el-button-active-text-color:var(--el-color-white)}.el-button--warning.is-link.is-disabled,.el-button--warning.is-link.is-disabled:active,.el-button--warning.is-link.is-disabled:focus,.el-button--warning.is-link.is-disabled:hover,.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover,.el-button--warning.is-text.is-disabled,.el-button--warning.is-text.is-disabled:active,.el-button--warning.is-text.is-disabled:focus,.el-button--warning.is-text.is-disabled:hover{color:var(--el-color-warning-light-5);background-color:var(--el-color-warning-light-9);border-color:var(--el-color-warning-light-8)}.el-button--danger{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-danger);--el-button-border-color:var(--el-color-danger);--el-button-outline-color:var(--el-color-danger-light-5);--el-button-active-color:var(--el-color-danger-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-danger-light-5);--el-button-hover-bg-color:var(--el-color-danger-light-3);--el-button-hover-border-color:var(--el-color-danger-light-3);--el-button-active-bg-color:var(--el-color-danger-dark-2);--el-button-active-border-color:var(--el-color-danger-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-danger-light-5);--el-button-disabled-border-color:var(--el-color-danger-light-5)}.el-button--danger.is-link,.el-button--danger.is-plain,.el-button--danger.is-text{--el-button-text-color:var(--el-color-danger);--el-button-bg-color:var(--el-color-danger-light-9);--el-button-border-color:var(--el-color-danger-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-danger);--el-button-hover-border-color:var(--el-color-danger);--el-button-active-text-color:var(--el-color-white)}.el-button--danger.is-link.is-disabled,.el-button--danger.is-link.is-disabled:active,.el-button--danger.is-link.is-disabled:focus,.el-button--danger.is-link.is-disabled:hover,.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover,.el-button--danger.is-text.is-disabled,.el-button--danger.is-text.is-disabled:active,.el-button--danger.is-text.is-disabled:focus,.el-button--danger.is-text.is-disabled:hover{color:var(--el-color-danger-light-5);background-color:var(--el-color-danger-light-9);border-color:var(--el-color-danger-light-8)}.el-button--info{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-info);--el-button-border-color:var(--el-color-info);--el-button-outline-color:var(--el-color-info-light-5);--el-button-active-color:var(--el-color-info-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-info-light-5);--el-button-hover-bg-color:var(--el-color-info-light-3);--el-button-hover-border-color:var(--el-color-info-light-3);--el-button-active-bg-color:var(--el-color-info-dark-2);--el-button-active-border-color:var(--el-color-info-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-info-light-5);--el-button-disabled-border-color:var(--el-color-info-light-5)}.el-button--info.is-link,.el-button--info.is-plain,.el-button--info.is-text{--el-button-text-color:var(--el-color-info);--el-button-bg-color:var(--el-color-info-light-9);--el-button-border-color:var(--el-color-info-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-info);--el-button-hover-border-color:var(--el-color-info);--el-button-active-text-color:var(--el-color-white)}.el-button--info.is-link.is-disabled,.el-button--info.is-link.is-disabled:active,.el-button--info.is-link.is-disabled:focus,.el-button--info.is-link.is-disabled:hover,.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover,.el-button--info.is-text.is-disabled,.el-button--info.is-text.is-disabled:active,.el-button--info.is-text.is-disabled:focus,.el-button--info.is-text.is-disabled:hover{color:var(--el-color-info-light-5);background-color:var(--el-color-info-light-9);border-color:var(--el-color-info-light-8)}.el-button--large{--el-button-size:40px;height:var(--el-button-size);padding:12px 19px;font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base)}[dir=ltr] .el-button--large [class*=el-icon]+span{margin-left:8px}[dir=rtl] .el-button--large [class*=el-icon]+span{margin-right:8px}.el-button--large.is-round{padding:12px 19px}.el-button--large.is-circle{width:var(--el-button-size);padding:12px}.el-button--small{--el-button-size:24px;height:var(--el-button-size);padding:5px 11px;font-size:12px;border-radius:calc(var(--el-border-radius-base) - 1px)}[dir=ltr] .el-button--small [class*=el-icon]+span{margin-left:4px}[dir=rtl] .el-button--small [class*=el-icon]+span{margin-right:4px}.el-button--small.is-round{padding:5px 11px}.el-button--small.is-circle{width:var(--el-button-size);padding:5px}.el-popper{--el-datepicker-inrange-bg-color: #E6EEFC;--el-datepicker-active-color: #005AE0;--el-color-primary: #005AE0;--el-datepicker-border-color: #D0D1D7;--el-border-color-light: #D0D1D7;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.aioseo-datepicker{position:relative}.aioseo-datepicker-picker{display:flex;flex-direction:row;align-items:center;padding:5px 8px;background:#fff;border:1px solid #D0D1D7;border-radius:4px;color:#141b38;cursor:pointer;font-weight:400;font-size:14px}.aioseo-datepicker-picker .aioseo-calendar{width:12px;height:13px;color:#8c8f9a;pointer-events:none}[dir=ltr] .aioseo-datepicker-picker .aioseo-calendar{margin-right:6px}[dir=rtl] .aioseo-datepicker-picker .aioseo-calendar{margin-left:6px}.aioseo-datepicker-picker .label span{font-weight:400}.aioseo-datepicker-picker .label span.placeholder{color:#8c8f9a}.aioseo-datepicker-picker .clear{opacity:1;line-height:0}[dir=ltr] .aioseo-datepicker-picker .clear{margin-left:auto}[dir=rtl] .aioseo-datepicker-picker .clear{margin-right:auto}.aioseo-datepicker-picker .clear svg{color:#8c8f9a;width:15px;height:15px}.aioseo-datepicker-picker--small{padding:4px 10px;font-size:13px}.aioseo-datepicker-picker--default{padding:6px;font-size:14px}.aioseo-datepicker-picker--large{padding:7px 10px;min-height:40px;line-height:25px;font-size:14px}.aioseo-datepicker .el-date-editor{position:absolute;width:100%;height:100%;opacity:0;pointer-events:none}.el-popper.el-picker__popper{border:1px solid #D0D1D7;box-shadow:0 4px 26px #2c324c1f;z-index:9998!important}.el-picker-panel{color:#2c324c}.el-picker-panel__shortcut{color:#434960;font-weight:400;font-size:14px}[dir=ltr] .el-picker-panel__shortcut{padding-left:16px}[dir=rtl] .el-picker-panel__shortcut{padding-right:16px}.el-picker-panel__shortcut:hover{color:#005ae0}.el-picker-panel__shortcut.active{background-color:#e6eefc;color:#005ae0}.el-picker-panel__sidebar{padding-top:16px;width:130px;background-color:transparent}[dir=ltr] .el-picker-panel__sidebar{border-right:0}[dir=rtl] .el-picker-panel__sidebar{border-left:0}[dir=ltr] .el-picker-panel__sidebar+.el-picker-panel__body{margin-left:130px}[dir=rtl] .el-picker-panel__sidebar+.el-picker-panel__body{margin-right:130px}.el-picker-panel.el-date-range-picker .el-picker-panel__content{border-left:0!important;border-right:0!important;padding:10px 0}.el-picker-panel.el-date-range-picker .el-picker-panel__content:after{content:"";position:absolute;top:16px;width:1px;height:90%;background:#e8e8eb}[dir=ltr] .el-picker-panel.el-date-range-picker .el-picker-panel__content:after{left:0}[dir=rtl] .el-picker-panel.el-date-range-picker .el-picker-panel__content:after{right:0}.el-picker-panel.el-date-range-picker .el-picker-panel__icon-btn{padding:1px 6px}.el-picker-panel__footer .el-button{font-size:12px;line-height:1;padding:5px 11px}.el-date-range-picker__content{padding:0 8px}.el-date-range-picker__content .el-date-range-picker__header div{font-size:14px;font-weight:600;color:#2c324c}.el-date-range-picker__content .el-date-table,.el-date-picker__time-header .el-input__inner,.el-date-range-picker__time-header .el-input__inner{border:0}.el-date-picker__time-header .el-input__inner:focus,.el-date-range-picker__time-header .el-input__inner:focus{outline:0;box-shadow:none}.el-time-spinner__item{margin-bottom:0}.el-time-panel__footer .el-time-panel__btn{border:none;line-height:28px;padding:0 5px;margin:0 5px;cursor:pointer;background-color:transparent;outline:0;font-size:12px;color:var(--el-text-color-primary)}.el-date-table th{font-size:12px;font-weight:600;color:#434960;border-bottom:0}.el-date-table td{padding:2px 0}.el-date-table td span{font-size:14px}.el-date-table td.end-date span,.el-date-table td.start-date span{background-color:#005ae0}.el-date-table td.in-range div,.el-date-table td.in-range div:hover,.el-date-table.is-week-mode .el-date-table__row.current div,.el-date-table.is-week-mode .el-date-table__row:hover div{background-color:#005ae01a}.el-date-table td.next-month,.el-date-table td.prev-month{color:#8c8f9a}.el-date-table td.available:hover{color:#005ae0} all-in-one-seo-pack/dist/Lite/assets/css/divi-admin.CbJEkMhq.css000064400000000146151222735770020263 0ustar00.aioseo-divi-seo-admin-notice-container{margin-bottom:20px}#wrap-seo .et-epanel-box{filter:blur(2px)} all-in-one-seo-pack/dist/Lite/assets/css/divi.DCnuHbHt.css000064400000001202151222735770017202 0ustar00[dir=ltr] .aioseo-limit-modified-date-divi{margin-left:1px}[dir=rtl] .aioseo-limit-modified-date-divi{margin-right:1px}.aioseo-limit-modified-date-divi__button-toggle .aioseo-caret{width:18px;height:18px;transition:transform .3s}[dir=ltr] .aioseo-limit-modified-date-divi__button-toggle .aioseo-caret.rotated{transform:rotate(-180deg)}[dir=rtl] .aioseo-limit-modified-date-divi__button-toggle .aioseo-caret.rotated{transform:rotate(180deg)}.aioseo-limit-modified-date-divi__options{position:absolute;top:calc(-100% - 1px)}[dir=ltr] .aioseo-limit-modified-date-divi__options{right:0}[dir=rtl] .aioseo-limit-modified-date-divi__options{left:0} all-in-one-seo-pack/dist/Lite/assets/css/DonutChartWithLegend.BWu78DM3.css000064400000007031151222735770022064 0ustar00.aioseo-app .aioseo-donut-chart{position:relative;display:flex}.aioseo-app .aioseo-donut-chart svg{width:100%}.aioseo-app .aioseo-donut-chart svg circle{transform-origin:center}[dir=ltr] .aioseo-app .aioseo-donut-chart svg circle{transform:rotate(270deg)}[dir=rtl] .aioseo-app .aioseo-donut-chart svg circle{transform:rotate(-270deg)}.aioseo-app .aioseo-donut-chart .total-amount-wrapper{position:absolute;left:0;top:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#141b38;margin:20px}.aioseo-app .aioseo-donut-chart .total-amount-wrapper .total-amount{text-align:center}.aioseo-app .aioseo-donut-chart .total-amount-wrapper .total-amount .total{font-size:32px;font-weight:700;line-height:40px}.aioseo-app .aioseo-donut-chart .total-amount-wrapper .total-amount .label{margin-top:5px;line-height:150%}.aioseo-app .aioseo-donut-chart-with-legend{display:flex;font-size:14px;color:#141b38}.aioseo-app .aioseo-donut-chart-with-legend .chart-left{max-width:200px;max-height:200px;position:relative}.aioseo-app .aioseo-donut-chart-with-legend .chart-right{flex:1 1 80%;font-size:14px;line-height:125%;margin-top:auto;margin-bottom:auto}[dir=ltr] .aioseo-app .aioseo-donut-chart-with-legend .chart-right{margin-left:32px}[dir=rtl] .aioseo-app .aioseo-donut-chart-with-legend .chart-right{margin-right:32px}.aioseo-app .aioseo-donut-chart-with-legend .chart-right .legend{display:flex;align-items:center}.aioseo-app .aioseo-donut-chart-with-legend .chart-right .legend+.legend{margin-top:12px}.aioseo-app .aioseo-donut-chart-with-legend .chart-right .legend span{display:inline-block}.aioseo-app .aioseo-donut-chart-with-legend .chart-right .legend .legend-bullet{width:12px;height:12px;min-width:12px;border-radius:50%}[dir=ltr] .aioseo-app .aioseo-donut-chart-with-legend .chart-right .legend .legend-bullet{margin-right:8px}[dir=rtl] .aioseo-app .aioseo-donut-chart-with-legend .chart-right .legend .legend-bullet{margin-left:8px}.aioseo-app .aioseo-donut-chart-with-legend .chart-right .legend .legend-amount{font-weight:700;min-width:30px}[dir=ltr] .aioseo-app .aioseo-donut-chart-with-legend .chart-right .legend .legend-amount{margin-right:8px;text-align:left}[dir=rtl] .aioseo-app .aioseo-donut-chart-with-legend .chart-right .legend .legend-amount{margin-left:8px;text-align:right}.aioseo-app .aioseo-donut-chart-with-legend .chart-right .legend .legend-label{line-height:130%}.aioseo-app .aioseo-donut-chart-with-legend .chart-right .legend .legend-label.is-link{text-decoration:none}.aioseo-app .aioseo-donut-chart-with-legend .chart-right .legend .legend-label.is-link:hover{text-decoration:underline}.aioseo-app .aioseo-donut-chart-with-legend .chart-right .chart-more{margin-top:21px;color:#005ae0;font-weight:700;cursor:pointer}[dir=ltr] .aioseo-app .aioseo-donut-chart-with-legend .chart-right .chart-more{margin-left:6px}[dir=rtl] .aioseo-app .aioseo-donut-chart-with-legend .chart-right .chart-more{margin-right:6px}.aioseo-app .aioseo-donut-chart-with-legend .chart-right .chart-more a{text-decoration:underline}.aioseo-app .aioseo-donut-chart-with-legend .chart-right .chart-more a:not(:first-of-type),.aioseo-app .aioseo-donut-chart-with-legend .chart-right .chart-more a:hover{text-decoration:none}@media screen and (max-width: 1200px){.aioseo-app .aioseo-donut-chart-with-legend{display:block!important}.aioseo-app .aioseo-donut-chart-with-legend .chart-left{margin-left:auto;margin-right:auto}.aioseo-app .aioseo-donut-chart-with-legend .chart-right{margin-left:auto;margin-right:auto;margin-top:20px;display:flex;flex-direction:column}} all-in-one-seo-pack/dist/Lite/assets/css/Editor.DxsC9xdY.css000064400000105144151222735770017527 0ustar00/*! * Quill Editor v1.3.7 * https://quilljs.com/ * Copyright (c) 2014, Jason Chen * Copyright (c) 2013, salesforce.com */.ql-container{box-sizing:border-box;font-family:Helvetica,Arial,sans-serif;font-size:13px;height:100%;margin:0;position:relative}.ql-container.ql-disabled .ql-tooltip{visibility:hidden}.ql-container.ql-disabled .ql-editor ul[data-checked]>li:before{pointer-events:none}.ql-clipboard{height:1px;overflow-y:hidden;position:absolute;top:50%}[dir=ltr] .ql-clipboard{left:-100000px}[dir=rtl] .ql-clipboard{right:-100000px}.ql-clipboard p{margin:0;padding:0}.ql-editor{box-sizing:border-box;line-height:1.42;height:100%;outline:none;overflow-y:auto;padding:12px 15px;tab-size:4;-moz-tab-size:4;white-space:pre-wrap;word-wrap:break-word}[dir=ltr] .ql-editor{text-align:left}[dir=rtl] .ql-editor{text-align:right}.ql-editor>*{cursor:text}.ql-editor p,.ql-editor ol,.ql-editor ul,.ql-editor pre,.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{margin:0;padding:0;counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}[dir=ltr] .ql-editor ol,[dir=ltr] .ql-editor ul{padding-left:1.5em}[dir=rtl] .ql-editor ol,[dir=rtl] .ql-editor ul{padding-right:1.5em}.ql-editor ol>li,.ql-editor ul>li{list-style-type:none}.ql-editor ul>li:before{content:"•"}.ql-editor ul[data-checked=true],.ql-editor ul[data-checked=false]{pointer-events:none}.ql-editor ul[data-checked=true]>li *,.ql-editor ul[data-checked=false]>li *{pointer-events:all}.ql-editor ul[data-checked=true]>li:before,.ql-editor ul[data-checked=false]>li:before{color:#777;cursor:pointer;pointer-events:all}.ql-editor ul[data-checked=true]>li:before{content:"☑"}.ql-editor ul[data-checked=false]>li:before{content:"☐"}.ql-editor li:before{display:inline-block;white-space:nowrap;width:1.2em}[dir=ltr] .ql-editor li:not(.ql-direction-rtl):before{margin-left:-1.5em;margin-right:.3em;text-align:right}[dir=rtl] .ql-editor li:not(.ql-direction-rtl):before{margin-right:-1.5em;margin-left:.3em;text-align:left}[dir=ltr] .ql-editor li.ql-direction-rtl:before{margin-left:.3em;margin-right:-1.5em}[dir=rtl] .ql-editor li.ql-direction-rtl:before{margin-right:.3em;margin-left:-1.5em}[dir=ltr] .ql-editor ol li:not(.ql-direction-rtl),[dir=ltr] .ql-editor ul li:not(.ql-direction-rtl){padding-left:1.5em}[dir=rtl] .ql-editor ol li:not(.ql-direction-rtl),[dir=rtl] .ql-editor ul li:not(.ql-direction-rtl){padding-right:1.5em}[dir=ltr] .ql-editor ol li.ql-direction-rtl,[dir=ltr] .ql-editor ul li.ql-direction-rtl{padding-right:1.5em}[dir=rtl] .ql-editor ol li.ql-direction-rtl,[dir=rtl] .ql-editor ul li.ql-direction-rtl{padding-left:1.5em}.ql-editor ol li{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-0}.ql-editor ol li:before{content:counter(list-0,decimal) ". "}.ql-editor ol li.ql-indent-1{counter-increment:list-1}.ql-editor ol li.ql-indent-1:before{content:counter(list-1,lower-alpha) ". "}.ql-editor ol li.ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-2{counter-increment:list-2}.ql-editor ol li.ql-indent-2:before{content:counter(list-2,lower-roman) ". "}.ql-editor ol li.ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-3{counter-increment:list-3}.ql-editor ol li.ql-indent-3:before{content:counter(list-3,decimal) ". "}.ql-editor ol li.ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-4{counter-increment:list-4}.ql-editor ol li.ql-indent-4:before{content:counter(list-4,lower-alpha) ". "}.ql-editor ol li.ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-5{counter-increment:list-5}.ql-editor ol li.ql-indent-5:before{content:counter(list-5,lower-roman) ". "}.ql-editor ol li.ql-indent-5{counter-reset:list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-6{counter-increment:list-6}.ql-editor ol li.ql-indent-6:before{content:counter(list-6,decimal) ". "}.ql-editor ol li.ql-indent-6{counter-reset:list-7 list-8 list-9}.ql-editor ol li.ql-indent-7{counter-increment:list-7}.ql-editor ol li.ql-indent-7:before{content:counter(list-7,lower-alpha) ". "}.ql-editor ol li.ql-indent-7{counter-reset:list-8 list-9}.ql-editor ol li.ql-indent-8{counter-increment:list-8}.ql-editor ol li.ql-indent-8:before{content:counter(list-8,lower-roman) ". "}.ql-editor ol li.ql-indent-8{counter-reset:list-9}.ql-editor ol li.ql-indent-9{counter-increment:list-9}.ql-editor ol li.ql-indent-9:before{content:counter(list-9,decimal) ". "}[dir=ltr] .ql-editor .ql-indent-1:not(.ql-direction-rtl){padding-left:3em}[dir=rtl] .ql-editor .ql-indent-1:not(.ql-direction-rtl){padding-right:3em}[dir=ltr] .ql-editor li.ql-indent-1:not(.ql-direction-rtl){padding-left:4.5em}[dir=rtl] .ql-editor li.ql-indent-1:not(.ql-direction-rtl){padding-right:4.5em}[dir=ltr] .ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:3em}[dir=rtl] .ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right{padding-left:3em}[dir=ltr] .ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:4.5em}[dir=rtl] .ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-left:4.5em}[dir=ltr] .ql-editor .ql-indent-2:not(.ql-direction-rtl){padding-left:6em}[dir=rtl] .ql-editor .ql-indent-2:not(.ql-direction-rtl){padding-right:6em}[dir=ltr] .ql-editor li.ql-indent-2:not(.ql-direction-rtl){padding-left:7.5em}[dir=rtl] .ql-editor li.ql-indent-2:not(.ql-direction-rtl){padding-right:7.5em}[dir=ltr] .ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:6em}[dir=rtl] .ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right{padding-left:6em}[dir=ltr] .ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:7.5em}[dir=rtl] .ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-left:7.5em}[dir=ltr] .ql-editor .ql-indent-3:not(.ql-direction-rtl){padding-left:9em}[dir=rtl] .ql-editor .ql-indent-3:not(.ql-direction-rtl){padding-right:9em}[dir=ltr] .ql-editor li.ql-indent-3:not(.ql-direction-rtl){padding-left:10.5em}[dir=rtl] .ql-editor li.ql-indent-3:not(.ql-direction-rtl){padding-right:10.5em}[dir=ltr] .ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:9em}[dir=rtl] .ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right{padding-left:9em}[dir=ltr] .ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:10.5em}[dir=rtl] .ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-left:10.5em}[dir=ltr] .ql-editor .ql-indent-4:not(.ql-direction-rtl){padding-left:12em}[dir=rtl] .ql-editor .ql-indent-4:not(.ql-direction-rtl){padding-right:12em}[dir=ltr] .ql-editor li.ql-indent-4:not(.ql-direction-rtl){padding-left:13.5em}[dir=rtl] .ql-editor li.ql-indent-4:not(.ql-direction-rtl){padding-right:13.5em}[dir=ltr] .ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:12em}[dir=rtl] .ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right{padding-left:12em}[dir=ltr] .ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:13.5em}[dir=rtl] .ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-left:13.5em}[dir=ltr] .ql-editor .ql-indent-5:not(.ql-direction-rtl){padding-left:15em}[dir=rtl] .ql-editor .ql-indent-5:not(.ql-direction-rtl){padding-right:15em}[dir=ltr] .ql-editor li.ql-indent-5:not(.ql-direction-rtl){padding-left:16.5em}[dir=rtl] .ql-editor li.ql-indent-5:not(.ql-direction-rtl){padding-right:16.5em}[dir=ltr] .ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:15em}[dir=rtl] .ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right{padding-left:15em}[dir=ltr] .ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:16.5em}[dir=rtl] .ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-left:16.5em}[dir=ltr] .ql-editor .ql-indent-6:not(.ql-direction-rtl){padding-left:18em}[dir=rtl] .ql-editor .ql-indent-6:not(.ql-direction-rtl){padding-right:18em}[dir=ltr] .ql-editor li.ql-indent-6:not(.ql-direction-rtl){padding-left:19.5em}[dir=rtl] .ql-editor li.ql-indent-6:not(.ql-direction-rtl){padding-right:19.5em}[dir=ltr] .ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:18em}[dir=rtl] .ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right{padding-left:18em}[dir=ltr] .ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:19.5em}[dir=rtl] .ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-left:19.5em}[dir=ltr] .ql-editor .ql-indent-7:not(.ql-direction-rtl){padding-left:21em}[dir=rtl] .ql-editor .ql-indent-7:not(.ql-direction-rtl){padding-right:21em}[dir=ltr] .ql-editor li.ql-indent-7:not(.ql-direction-rtl){padding-left:22.5em}[dir=rtl] .ql-editor li.ql-indent-7:not(.ql-direction-rtl){padding-right:22.5em}[dir=ltr] .ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:21em}[dir=rtl] .ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right{padding-left:21em}[dir=ltr] .ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:22.5em}[dir=rtl] .ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-left:22.5em}[dir=ltr] .ql-editor .ql-indent-8:not(.ql-direction-rtl){padding-left:24em}[dir=rtl] .ql-editor .ql-indent-8:not(.ql-direction-rtl){padding-right:24em}[dir=ltr] .ql-editor li.ql-indent-8:not(.ql-direction-rtl){padding-left:25.5em}[dir=rtl] .ql-editor li.ql-indent-8:not(.ql-direction-rtl){padding-right:25.5em}[dir=ltr] .ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:24em}[dir=rtl] .ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right{padding-left:24em}[dir=ltr] .ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:25.5em}[dir=rtl] .ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-left:25.5em}[dir=ltr] .ql-editor .ql-indent-9:not(.ql-direction-rtl){padding-left:27em}[dir=rtl] .ql-editor .ql-indent-9:not(.ql-direction-rtl){padding-right:27em}[dir=ltr] .ql-editor li.ql-indent-9:not(.ql-direction-rtl){padding-left:28.5em}[dir=rtl] .ql-editor li.ql-indent-9:not(.ql-direction-rtl){padding-right:28.5em}[dir=ltr] .ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:27em}[dir=rtl] .ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right{padding-left:27em}[dir=ltr] .ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:28.5em}[dir=rtl] .ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-left:28.5em}.ql-editor .ql-video{display:block;max-width:100%}.ql-editor .ql-video.ql-align-center{margin:0 auto}[dir=ltr] .ql-editor .ql-video.ql-align-right{margin:0 0 0 auto}[dir=rtl] .ql-editor .ql-video.ql-align-right{margin:0 auto 0 0}.ql-editor .ql-bg-black{background-color:#000}.ql-editor .ql-bg-red{background-color:#e60000}.ql-editor .ql-bg-orange{background-color:#f90}.ql-editor .ql-bg-yellow{background-color:#ff0}.ql-editor .ql-bg-green{background-color:#008a00}.ql-editor .ql-bg-blue{background-color:#06c}.ql-editor .ql-bg-purple{background-color:#93f}.ql-editor .ql-color-white{color:#fff}.ql-editor .ql-color-red{color:#e60000}.ql-editor .ql-color-orange{color:#f90}.ql-editor .ql-color-yellow{color:#ff0}.ql-editor .ql-color-green{color:#008a00}.ql-editor .ql-color-blue{color:#06c}.ql-editor .ql-color-purple{color:#93f}.ql-editor .ql-font-serif{font-family:Georgia,Times New Roman,serif}.ql-editor .ql-font-monospace{font-family:Monaco,Courier New,monospace}.ql-editor .ql-size-small{font-size:.75em}.ql-editor .ql-size-large{font-size:1.5em}.ql-editor .ql-size-huge{font-size:2.5em}.ql-editor .ql-direction-rtl{text-align:inherit}[dir=ltr] .ql-editor .ql-direction-rtl{direction:rtl}[dir=rtl] .ql-editor .ql-direction-rtl{direction:ltr}.ql-editor .ql-align-center{text-align:center}.ql-editor .ql-align-justify{text-align:justify}[dir=ltr] .ql-editor .ql-align-right{text-align:right}[dir=rtl] .ql-editor .ql-align-right{text-align:left}.ql-editor.ql-blank:before{color:#0009;content:attr(data-placeholder);font-style:italic;left:15px;pointer-events:none;position:absolute;right:15px}.ql-snow.ql-toolbar:after,.ql-snow .ql-toolbar:after{clear:both;content:"";display:table}.ql-snow.ql-toolbar button,.ql-snow .ql-toolbar button{background:none;border:none;cursor:pointer;display:inline-block;height:24px;padding:3px 5px;width:28px}[dir=ltr] .ql-snow.ql-toolbar button,[dir=ltr] .ql-snow .ql-toolbar button{float:left}[dir=rtl] .ql-snow.ql-toolbar button,[dir=rtl] .ql-snow .ql-toolbar button{float:right}.ql-snow.ql-toolbar button svg,.ql-snow .ql-toolbar button svg{height:100%}[dir=ltr] .ql-snow.ql-toolbar button svg,[dir=ltr] .ql-snow .ql-toolbar button svg{float:left}[dir=rtl] .ql-snow.ql-toolbar button svg,[dir=rtl] .ql-snow .ql-toolbar button svg{float:right}.ql-snow.ql-toolbar button:active:hover,.ql-snow .ql-toolbar button:active:hover{outline:none}.ql-snow.ql-toolbar input.ql-image[type=file],.ql-snow .ql-toolbar input.ql-image[type=file]{display:none}.ql-snow.ql-toolbar button:hover,.ql-snow .ql-toolbar button:hover,.ql-snow.ql-toolbar button:focus,.ql-snow .ql-toolbar button:focus,.ql-snow.ql-toolbar button.ql-active,.ql-snow .ql-toolbar button.ql-active,.ql-snow.ql-toolbar .ql-picker-label:hover,.ql-snow .ql-toolbar .ql-picker-label:hover,.ql-snow.ql-toolbar .ql-picker-label.ql-active,.ql-snow .ql-toolbar .ql-picker-label.ql-active,.ql-snow.ql-toolbar .ql-picker-item:hover,.ql-snow .ql-toolbar .ql-picker-item:hover,.ql-snow.ql-toolbar .ql-picker-item.ql-selected,.ql-snow .ql-toolbar .ql-picker-item.ql-selected{color:#06c}.ql-snow.ql-toolbar button:hover .ql-fill,.ql-snow .ql-toolbar button:hover .ql-fill,.ql-snow.ql-toolbar button:focus .ql-fill,.ql-snow .ql-toolbar button:focus .ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill{fill:#06c}.ql-snow.ql-toolbar button:hover .ql-stroke,.ql-snow .ql-toolbar button:hover .ql-stroke,.ql-snow.ql-toolbar button:focus .ql-stroke,.ql-snow .ql-toolbar button:focus .ql-stroke,.ql-snow.ql-toolbar button.ql-active .ql-stroke,.ql-snow .ql-toolbar button.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow.ql-toolbar button:hover .ql-stroke-miter,.ql-snow .ql-toolbar button:hover .ql-stroke-miter,.ql-snow.ql-toolbar button:focus .ql-stroke-miter,.ql-snow .ql-toolbar button:focus .ql-stroke-miter,.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter{stroke:#06c}@media (pointer: coarse){.ql-snow.ql-toolbar button:hover:not(.ql-active),.ql-snow .ql-toolbar button:hover:not(.ql-active){color:#444}.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill{fill:#444}.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter{stroke:#444}}.ql-snow,.ql-snow *{box-sizing:border-box}.ql-snow .ql-hidden{display:none}.ql-snow .ql-out-bottom,.ql-snow .ql-out-top{visibility:hidden}.ql-snow .ql-tooltip{position:absolute;transform:translateY(10px)}.ql-snow .ql-tooltip a{cursor:pointer;text-decoration:none}.ql-snow .ql-tooltip.ql-flip{transform:translateY(-10px)}.ql-snow .ql-formats{display:inline-block;vertical-align:middle}.ql-snow .ql-formats:after{clear:both;content:"";display:table}.ql-snow .ql-stroke{fill:none;stroke:#444;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.ql-snow .ql-stroke-miter{fill:none;stroke:#444;stroke-miterlimit:10;stroke-width:2}.ql-snow .ql-fill,.ql-snow .ql-stroke.ql-fill{fill:#444}.ql-snow .ql-empty{fill:none}.ql-snow .ql-even{fill-rule:evenodd}.ql-snow .ql-thin,.ql-snow .ql-stroke.ql-thin{stroke-width:1}.ql-snow .ql-transparent{opacity:.4}.ql-snow .ql-direction svg:last-child{display:none}.ql-snow .ql-direction.ql-active svg:last-child{display:inline}.ql-snow .ql-direction.ql-active svg:first-child{display:none}.ql-snow .ql-editor h1{font-size:2em}.ql-snow .ql-editor h2{font-size:1.5em}.ql-snow .ql-editor h3{font-size:1.17em}.ql-snow .ql-editor h4{font-size:1em}.ql-snow .ql-editor h5{font-size:.83em}.ql-snow .ql-editor h6{font-size:.67em}.ql-snow .ql-editor a{text-decoration:underline}.ql-snow .ql-editor blockquote{margin-bottom:5px;margin-top:5px}[dir=ltr] .ql-snow .ql-editor blockquote{border-left:4px solid #ccc;padding-left:16px}[dir=rtl] .ql-snow .ql-editor blockquote{border-right:4px solid #ccc;padding-right:16px}.ql-snow .ql-editor code,.ql-snow .ql-editor pre{background-color:#f0f0f0;border-radius:3px}.ql-snow .ql-editor pre{white-space:pre-wrap;margin-bottom:5px;margin-top:5px;padding:5px 10px}.ql-snow .ql-editor code{font-size:85%;padding:2px 4px}.ql-snow .ql-editor pre.ql-syntax{background-color:#23241f;color:#f8f8f2;overflow:visible}.ql-snow .ql-editor img{max-width:100%}.ql-snow .ql-picker{color:#444;display:inline-block;font-size:14px;font-weight:500;height:24px;position:relative;vertical-align:middle}[dir=ltr] .ql-snow .ql-picker{float:left}[dir=rtl] .ql-snow .ql-picker{float:right}.ql-snow .ql-picker-label{cursor:pointer;display:inline-block;height:100%;position:relative;width:100%}[dir=ltr] .ql-snow .ql-picker-label{padding-left:8px;padding-right:2px}[dir=rtl] .ql-snow .ql-picker-label{padding-right:8px;padding-left:2px}.ql-snow .ql-picker-label:before{display:inline-block;line-height:22px}.ql-snow .ql-picker-options{background-color:#fff;display:none;min-width:100%;padding:4px 8px;position:absolute;white-space:nowrap}.ql-snow .ql-picker-options .ql-picker-item{cursor:pointer;display:block;padding-bottom:5px;padding-top:5px}.ql-snow .ql-picker.ql-expanded .ql-picker-label{color:#ccc;z-index:2}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill{fill:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke{stroke:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-options{display:block;margin-top:-1px;top:100%;z-index:1}.ql-snow .ql-color-picker,.ql-snow .ql-icon-picker{width:28px}.ql-snow .ql-color-picker .ql-picker-label,.ql-snow .ql-icon-picker .ql-picker-label{padding:2px 4px}[dir=ltr] .ql-snow .ql-color-picker .ql-picker-label svg,[dir=ltr] .ql-snow .ql-icon-picker .ql-picker-label svg{right:4px}[dir=rtl] .ql-snow .ql-color-picker .ql-picker-label svg,[dir=rtl] .ql-snow .ql-icon-picker .ql-picker-label svg{left:4px}.ql-snow .ql-icon-picker .ql-picker-options{padding:4px 0}.ql-snow .ql-icon-picker .ql-picker-item{height:24px;width:24px;padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-options{padding:3px 5px;width:152px}.ql-snow .ql-color-picker .ql-picker-item{border:1px solid transparent;height:16px;margin:2px;padding:0;width:16px}[dir=ltr] .ql-snow .ql-color-picker .ql-picker-item{float:left}[dir=rtl] .ql-snow .ql-color-picker .ql-picker-item{float:right}.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg{position:absolute;margin-top:-9px;top:50%;width:18px}[dir=ltr] .ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg{right:0}[dir=rtl] .ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg{left:0}.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=""]):before{content:attr(data-label)}.ql-snow .ql-picker.ql-header{width:98px}.ql-snow .ql-picker.ql-header .ql-picker-label:before,.ql-snow .ql-picker.ql-header .ql-picker-item:before{content:"Normal"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before{content:"Heading 1"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before{content:"Heading 2"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before{content:"Heading 3"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before{content:"Heading 4"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]:before{content:"Heading 5"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]:before{content:"Heading 6"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before{font-size:2em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before{font-size:1.5em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before{font-size:1.17em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before{font-size:1em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]:before{font-size:.83em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]:before{font-size:.67em}.ql-snow .ql-picker.ql-font{width:108px}.ql-snow .ql-picker.ql-font .ql-picker-label:before,.ql-snow .ql-picker.ql-font .ql-picker-item:before{content:"Sans Serif"}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before{content:"Serif"}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before{content:"Monospace"}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before{font-family:Georgia,Times New Roman,serif}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before{font-family:Monaco,Courier New,monospace}.ql-snow .ql-picker.ql-size{width:98px}.ql-snow .ql-picker.ql-size .ql-picker-label:before,.ql-snow .ql-picker.ql-size .ql-picker-item:before{content:"Normal"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before{content:"Small"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before{content:"Large"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before{content:"Huge"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before{font-size:10px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before{font-size:18px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before{font-size:32px}.ql-snow .ql-color-picker.ql-background .ql-picker-item{background-color:#fff}.ql-snow .ql-color-picker.ql-color .ql-picker-item{background-color:#000}.ql-toolbar.ql-snow{border:1px solid #ccc;box-sizing:border-box;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;padding:8px}[dir=ltr] .ql-toolbar.ql-snow .ql-formats{margin-right:15px}[dir=rtl] .ql-toolbar.ql-snow .ql-formats{margin-left:15px}.ql-toolbar.ql-snow .ql-picker-label{border:1px solid transparent}.ql-toolbar.ql-snow .ql-picker-options{border:1px solid transparent;box-shadow:#0003 0 2px 8px}.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label,.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options{border-color:#ccc}.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover{border-color:#000}.ql-toolbar.ql-snow+.ql-container.ql-snow{border-top:0px}.ql-snow .ql-tooltip{background-color:#fff;border:1px solid #ccc;box-shadow:0 0 5px #ddd;color:#444;padding:5px 12px;white-space:nowrap}.ql-snow .ql-tooltip:before{content:"Visit URL:";line-height:26px}[dir=ltr] .ql-snow .ql-tooltip:before{margin-right:8px}[dir=rtl] .ql-snow .ql-tooltip:before{margin-left:8px}.ql-snow .ql-tooltip input[type=text]{display:none;border:1px solid #ccc;font-size:13px;height:26px;margin:0;padding:3px 5px;width:170px}.ql-snow .ql-tooltip a.ql-preview{display:inline-block;max-width:200px;overflow-x:hidden;text-overflow:ellipsis;vertical-align:top}.ql-snow .ql-tooltip a.ql-action:after{content:"Edit"}[dir=ltr] .ql-snow .ql-tooltip a.ql-action:after{border-right:1px solid #ccc;margin-left:16px;padding-right:8px}[dir=rtl] .ql-snow .ql-tooltip a.ql-action:after{border-left:1px solid #ccc;margin-right:16px;padding-left:8px}.ql-snow .ql-tooltip a.ql-remove:before{content:"Remove"}[dir=ltr] .ql-snow .ql-tooltip a.ql-remove:before{margin-left:8px}[dir=rtl] .ql-snow .ql-tooltip a.ql-remove:before{margin-right:8px}.ql-snow .ql-tooltip a{line-height:26px}.ql-snow .ql-tooltip.ql-editing a.ql-preview,.ql-snow .ql-tooltip.ql-editing a.ql-remove{display:none}.ql-snow .ql-tooltip.ql-editing input[type=text]{display:inline-block}.ql-snow .ql-tooltip.ql-editing a.ql-action:after{content:"Save"}[dir=ltr] .ql-snow .ql-tooltip.ql-editing a.ql-action:after{border-right:0px;padding-right:0}[dir=rtl] .ql-snow .ql-tooltip.ql-editing a.ql-action:after{border-left:0px;padding-left:0}.ql-snow .ql-tooltip[data-mode=link]:before{content:"Enter link:"}.ql-snow .ql-tooltip[data-mode=formula]:before{content:"Enter formula:"}.ql-snow .ql-tooltip[data-mode=video]:before{content:"Enter video:"}.ql-snow a{color:#06c}.ql-container.ql-snow{border:1px solid #ccc}.aioseo-editor{position:relative}.aioseo-editor .aioseo-append-icon{height:24px;width:24px;position:absolute;top:50%;cursor:pointer}[dir=ltr] .aioseo-editor .aioseo-append-icon{right:0;transform:translate(-50%) translateY(-50%)}[dir=rtl] .aioseo-editor .aioseo-append-icon{left:0;transform:translate(50%) translateY(-50%)}.aioseo-editor .aioseo-append-icon svg{transition:transform .4s ease-in-out;color:#8c8f9a}.aioseo-editor .aioseo-append-icon:hover svg{color:#00aa63}[dir=ltr] .aioseo-editor .aioseo-append-icon:hover svg{transform:rotate(360deg)}[dir=rtl] .aioseo-editor .aioseo-append-icon:hover svg{transform:rotate(-360deg)}.aioseo-editor .aioseo-append-button .aioseo-ai-generator{line-height:0}.aioseo-editor .aioseo-append-button .aioseo-ai-generator>*{line-height:22px}.aioseo-editor .aioseo-append-button button{position:absolute;top:4px;width:32px;height:32px;background-color:#f3f4f5;border:1px solid #D0D1D7;border-radius:4px;cursor:pointer}[dir=ltr] .aioseo-editor .aioseo-append-button button{right:4px}[dir=rtl] .aioseo-editor .aioseo-append-button button{left:4px}.aioseo-editor .aioseo-editor-description .ql-editor{min-height:100px}[dir=ltr] .aioseo-editor .aioseo-editor-line-numbers .ql-editor{padding:15px 15px 15px 45px}[dir=rtl] .aioseo-editor .aioseo-editor-line-numbers .ql-editor{padding:15px 45px 15px 15px}.aioseo-editor .aioseo-editor-single .ql-editor{padding:7px 10px}[dir=ltr] .aioseo-editor .aioseo-editor-single.aioseo-editor-line-numbers .ql-editor{padding:8px 10px 8px 45px}[dir=rtl] .aioseo-editor .aioseo-editor-single.aioseo-editor-line-numbers .ql-editor{padding:8px 45px 8px 10px}.aioseo-editor .aioseo-editor-monospace .ql-editor{font-family:monospace}.aioseo-editor .aioseo-line-numbers{background:#f7f6f7;position:absolute;top:1px;width:29px;display:flex;height:calc(100% - 2px);flex-direction:column;overflow:hidden}[dir=ltr] .aioseo-editor .aioseo-line-numbers{text-align:right;left:1px;border-radius:3px 0 0 3px;padding:15px 9px 0 0}[dir=rtl] .aioseo-editor .aioseo-line-numbers{text-align:left;right:1px;border-radius:0 3px 3px 0;padding:15px 0 0 9px}.aioseo-editor .aioseo-line-numbers div{min-height:25px;color:#8c8f9a;font-size:12px;line-height:1.9}.aioseo-editor .ql-disabled{pointer-events:none;background-color:#f9f9fa}.aioseo-editor .ql-toolbar.ql-snow{display:none}.aioseo-editor .ql-editor{padding:7px 10px;border-radius:3px;font-size:14px;color:#141b38;border:1px solid #D0D1D7;height:auto}.aioseo-editor .ql-editor:focus{border:1px solid #005AE0;box-shadow:0 0 0 1px #005ae0}.aioseo-editor .ql-editor .mention .ql-mention-denotation-char{display:none}.aioseo-editor .ql-editor .mention .aioseo-tag{height:20px;margin:0 1px;color:#141b38;font-weight:600;font-size:12px;line-height:18px;background-color:#f3f4f5;border-radius:3px;cursor:pointer;position:relative;display:inline-flex;align-items:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}[dir=ltr] .aioseo-editor .ql-editor .mention .aioseo-tag{padding:0 32px 0 8px}[dir=rtl] .aioseo-editor .ql-editor .mention .aioseo-tag{padding:0 8px 0 32px}.aioseo-editor .ql-editor .mention .aioseo-tag .tag-toggle{display:inline-flex;align-items:center;justify-content:center;width:24px;background-color:#e8e8eb;position:absolute;top:0;bottom:0}[dir=ltr] .aioseo-editor .ql-editor .mention .aioseo-tag .tag-toggle{right:0;border-radius:0 3px 3px 0}[dir=rtl] .aioseo-editor .ql-editor .mention .aioseo-tag .tag-toggle{left:0;border-radius:3px 0 0 3px}.aioseo-editor .ql-editor .mention .aioseo-tag .tag-toggle svg.aioseo-caret{width:18px;height:18px;transition:transform .3s}[dir=ltr] .aioseo-editor .ql-editor .mention .aioseo-tag .tag-toggle svg.aioseo-caret.rotated{transform:rotate(180deg)}[dir=rtl] .aioseo-editor .ql-editor .mention .aioseo-tag .tag-toggle svg.aioseo-caret.rotated{transform:rotate(-180deg)}.aioseo-editor .ql-mention-list-container{color:#141b38;background-color:#fff;max-width:275px;width:100%;margin-top:3px;border:1px solid #D0D1D7;border-radius:3px;box-shadow:0 3px 15px #0000001a;z-index:9001}.aioseo-editor .ql-mention-list-container .aioseo-tag-custom,.aioseo-editor .ql-mention-list-container .aioseo-tag-search{padding:8px;border-bottom:1px solid #E8E8EB}.aioseo-editor .ql-mention-list-container .aioseo-tag-search{display:flex;align-items:center}.aioseo-editor .ql-mention-list-container .aioseo-tag-search input{flex:1}.aioseo-editor .ql-mention-list-container .aioseo-tag-search .prepend-icon svg.aioseo-search{width:12px}.aioseo-editor .ql-mention-list-container .aioseo-tag-search .aioseo-trash{color:#8c8f9a;min-width:24px;max-width:24px;height:24px}[dir=ltr] .aioseo-editor .ql-mention-list-container .aioseo-tag-search .aioseo-trash{margin-left:12px}[dir=rtl] .aioseo-editor .ql-mention-list-container .aioseo-tag-search .aioseo-trash{margin-right:12px}.aioseo-editor .ql-mention-list-container .aioseo-tag-search .aioseo-trash:hover{cursor:pointer;color:#df2a4a}.aioseo-editor .ql-mention-list-container .aioseo-tag-custom{display:none}.aioseo-editor .ql-mention-list-container .ql-mention-list{list-style:none;margin:0;padding:0;max-height:210px;overflow:auto}.aioseo-editor .ql-mention-list-container .ql-mention-list li{color:#141b38;margin:0;background-color:transparent;border-bottom:1px solid #E8E8EB;padding:8px;cursor:pointer;font-size:14px}.aioseo-editor .ql-mention-list-container .ql-mention-list li:last-child{border-bottom:0}.aioseo-editor .ql-mention-list-container .ql-mention-list li:hover,.aioseo-editor .ql-mention-list-container .ql-mention-list li.selected{color:#005ae0;background-color:#f2f7fd}.aioseo-editor .ql-mention-list-container .ql-mention-list li:hover .aioseo-tag-description,.aioseo-editor .ql-mention-list-container .ql-mention-list li.selected .aioseo-tag-description{color:#141b38}.aioseo-editor .ql-mention-list-container .ql-mention-list li .aioseo-tag-item{display:flex}[dir=ltr] .aioseo-editor .ql-mention-list-container .ql-mention-list li .aioseo-tag-item>div:first-child:not(:last-child){margin:1px 13px 1px 5px}[dir=rtl] .aioseo-editor .ql-mention-list-container .ql-mention-list li .aioseo-tag-item>div:first-child:not(:last-child){margin:1px 5px 1px 13px}.aioseo-editor .ql-mention-list-container .ql-mention-list li .aioseo-tag-item .aioseo-tag-title{font-weight:600}.aioseo-editor .ql-mention-list-container .ql-mention-list li .aioseo-tag-item .aioseo-tag-title+.aioseo-tag-description{margin-top:2px}.aioseo-editor .ql-mention-list-container .ql-mention-list li svg.aioseo-plus{width:12px;height:12px;color:#005ae0}.aioseo-editor .ql-mention-list-container .ql-mention-list li.aioseo-tag-no-match{cursor:default;padding:12px;font-size:16px;font-weight:600}.aioseo-editor .ql-mention-list-container .ql-mention-list li.aioseo-tag-no-match:hover,.aioseo-editor .ql-mention-list-container .ql-mention-list li.aioseo-tag-no-match.highlight{color:initial;background-color:transparent}.aioseo-editor .ql-mention-list-container .aioseo-documentation-link{height:39px;display:flex;align-items:center;padding:12px;border-top:1px solid #D0D1D7;font-size:12px;font-weight:700}.aioseo-editor .ql-clipboard{height:1px;overflow-y:hidden;position:absolute;top:50%}[dir=ltr] .aioseo-editor .ql-clipboard{left:-100000px}[dir=rtl] .aioseo-editor .ql-clipboard{right:-100000px}.aioseo-editor .ql-container{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;height:auto}.aioseo-editor .ql-container p{font-size:14px;margin:0;line-height:25px}.aioseo-editor .ql-container.ql-snow{border:0} all-in-one-seo-pack/dist/Lite/assets/css/EeatCta.5Tzm118c.css000064400000016744151222736000017416 0ustar00.redirects-options-table,.topics-table,.alumni-of-table{position:relative;margin:0;border:none;border-radius:3px;width:100%;border-spacing:0;border-collapse:separate;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:22px;letter-spacing:0px}[dir=ltr] .redirects-options-table,[dir=ltr] .topics-table,[dir=ltr] .alumni-of-table{text-align:left}[dir=rtl] .redirects-options-table,[dir=rtl] .topics-table,[dir=rtl] .alumni-of-table{text-align:right}.redirects-options-table:after,.topics-table:after,.alumni-of-table:after{content:"";width:100%;height:100%;position:absolute;top:0;border-radius:3px;border:1px solid #D0D1D7;pointer-events:none}[dir=ltr] .redirects-options-table:after,[dir=ltr] .topics-table:after,[dir=ltr] .alumni-of-table:after{left:0}[dir=rtl] .redirects-options-table:after,[dir=rtl] .topics-table:after,[dir=rtl] .alumni-of-table:after{right:0}.redirects-options-table tr td,.topics-table tr td,.alumni-of-table tr td{padding:16px 8px!important;background:#fff;vertical-align:middle!important}[dir=ltr] .redirects-options-table tr td:first-child,[dir=ltr] .topics-table tr td:first-child,[dir=ltr] .alumni-of-table tr td:first-child{padding-left:16px!important}[dir=rtl] .redirects-options-table tr td:first-child,[dir=rtl] .topics-table tr td:first-child,[dir=rtl] .alumni-of-table tr td:first-child{padding-right:16px!important}[dir=ltr] .redirects-options-table tr td:last-child,[dir=ltr] .topics-table tr td:last-child,[dir=ltr] .alumni-of-table tr td:last-child{padding-right:16px!important}[dir=rtl] .redirects-options-table tr td:last-child,[dir=rtl] .topics-table tr td:last-child,[dir=rtl] .alumni-of-table tr td:last-child{padding-left:16px!important}.redirects-options-table tr td.arrow-col,.redirects-options-table tr td.actions,.topics-table tr td.arrow-col,.topics-table tr td.actions,.alumni-of-table tr td.arrow-col,.alumni-of-table tr td.actions{text-align:center}.redirects-options-table tr td.arrow-col div,.topics-table tr td.arrow-col div,.alumni-of-table tr td.arrow-col div{display:flex;height:100%;justify-content:center;align-items:center}.redirects-options-table tr td.actions,.topics-table tr td.actions,.alumni-of-table tr td.actions{width:20px}.redirects-options-table tr td.aliased-domain,.topics-table tr td.aliased-domain,.alumni-of-table tr td.aliased-domain{width:100%}.redirects-options-table tr.even td,.topics-table tr.even td,.alumni-of-table tr.even td{background-color:#f9f9fa}.redirects-options-table thead td,.topics-table thead td,.alumni-of-table thead td{height:50px;padding:0 8px!important;border-bottom:1px solid #D0D1D7;color:#434960!important}[dir=ltr] .redirects-options-table thead td:first-child,[dir=ltr] .topics-table thead td:first-child,[dir=ltr] .alumni-of-table thead td:first-child{border-radius:3px 0 0}[dir=rtl] .redirects-options-table thead td:first-child,[dir=rtl] .topics-table thead td:first-child,[dir=rtl] .alumni-of-table thead td:first-child{border-radius:0 3px 0 0}.redirects-options-table thead td:first-child:last-child,.topics-table thead td:first-child:last-child,.alumni-of-table thead td:first-child:last-child{border-radius:3px 3px 0 0}[dir=ltr] .redirects-options-table thead td:last-child,[dir=ltr] .topics-table thead td:last-child,[dir=ltr] .alumni-of-table thead td:last-child{border-radius:0 3px 0 0}[dir=rtl] .redirects-options-table thead td:last-child,[dir=rtl] .topics-table thead td:last-child,[dir=rtl] .alumni-of-table thead td:last-child{border-radius:3px 0 0}[dir=ltr] .redirects-options-table tbody tr:last-child td:first-child,[dir=ltr] .topics-table tbody tr:last-child td:first-child,[dir=ltr] .alumni-of-table tbody tr:last-child td:first-child{border-radius:0 0 0 3px}[dir=rtl] .redirects-options-table tbody tr:last-child td:first-child,[dir=rtl] .topics-table tbody tr:last-child td:first-child,[dir=rtl] .alumni-of-table tbody tr:last-child td:first-child{border-radius:0 0 3px}[dir=ltr] .redirects-options-table tbody tr:last-child td:last-child,[dir=ltr] .topics-table tbody tr:last-child td:last-child,[dir=ltr] .alumni-of-table tbody tr:last-child td:last-child{border-radius:0 0 3px}[dir=rtl] .redirects-options-table tbody tr:last-child td:last-child,[dir=rtl] .topics-table tbody tr:last-child td:last-child,[dir=rtl] .alumni-of-table tbody tr:last-child td:last-child{border-radius:0 0 0 3px}.redirects-options-table tfoot td,.topics-table tfoot td,.alumni-of-table tfoot td{height:50px!important;padding:0 8px!important;border-top:1px solid #D0D1D7}[dir=ltr] .redirects-options-table tfoot td:first-child,[dir=ltr] .topics-table tfoot td:first-child,[dir=ltr] .alumni-of-table tfoot td:first-child{border-radius:0 0 0 3px}[dir=rtl] .redirects-options-table tfoot td:first-child,[dir=rtl] .topics-table tfoot td:first-child,[dir=rtl] .alumni-of-table tfoot td:first-child{border-radius:0 0 3px}.redirects-options-table tfoot td:first-child:last-child,.topics-table tfoot td:first-child:last-child,.alumni-of-table tfoot td:first-child:last-child{border-radius:0 0 3px 3px}[dir=ltr] .redirects-options-table tfoot td:last-child,[dir=ltr] .topics-table tfoot td:last-child,[dir=ltr] .alumni-of-table tfoot td:last-child{border-radius:0 0 3px}[dir=rtl] .redirects-options-table tfoot td:last-child,[dir=rtl] .topics-table tfoot td:last-child,[dir=rtl] .alumni-of-table tfoot td:last-child{border-radius:0 0 0 3px}[dir=ltr] .redirects-options-table tfoot td .aioseo-button+.aioseo-button,[dir=ltr] .topics-table tfoot td .aioseo-button+.aioseo-button,[dir=ltr] .alumni-of-table tfoot td .aioseo-button+.aioseo-button{margin:0 0 0 16px}[dir=rtl] .redirects-options-table tfoot td .aioseo-button+.aioseo-button,[dir=rtl] .topics-table tfoot td .aioseo-button+.aioseo-button,[dir=rtl] .alumni-of-table tfoot td .aioseo-button+.aioseo-button{margin:0 16px 0 0}.redirects-options-table.small tr td,.topics-table.small tr td,.alumni-of-table.small tr td{padding:8px!important}.redirects-options-table.small thead td,.topics-table.small thead td,.alumni-of-table.small thead td{height:38px;padding:0 8px!important}.redirects-options-table svg,.topics-table svg,.alumni-of-table svg{color:#dadada}.redirects-options-table svg.aioseo-trash,.topics-table svg.aioseo-trash,.alumni-of-table svg.aioseo-trash{width:20px;height:20px;cursor:pointer}.redirects-options-table svg.aioseo-trash:hover,.topics-table svg.aioseo-trash:hover,.alumni-of-table svg.aioseo-trash:hover{color:#df2a4a}.redirects-options-table svg.aioseo-right-arrow,.topics-table svg.aioseo-right-arrow,.alumni-of-table svg.aioseo-right-arrow{width:26px;color:#8c8f9a}.redirects-options-table .aioseo-tooltip,.topics-table .aioseo-tooltip,.alumni-of-table .aioseo-tooltip{display:flex}[dir=ltr] .redirects-options-table .aioseo-tooltip,[dir=ltr] .topics-table .aioseo-tooltip,[dir=ltr] .alumni-of-table .aioseo-tooltip{margin-left:0}[dir=rtl] .redirects-options-table .aioseo-tooltip,[dir=rtl] .topics-table .aioseo-tooltip,[dir=rtl] .alumni-of-table .aioseo-tooltip{margin-right:0}.topics-table thead tr .tooltip-wrapper{display:flex;align-items:center;gap:5px}.topics-table thead tr .tooltip-wrapper div{display:flex}.topics-table thead tr .tooltip-wrapper div svg{cursor:pointer}.topics-table .append-icon svg{cursor:pointer}.topics-table .append-icon svg:hover{color:#8c8f9a}.topics-table .same-as-urls{max-width:300px;min-width:300px}.topics-table svg.aioseo-circle-plus{width:14px;height:14px}[dir=ltr] .topics-table svg.aioseo-circle-plus{margin-right:8px}[dir=rtl] .topics-table svg.aioseo-circle-plus{margin-left:8px}.aioseo-app .author-seo-cta{position:relative} all-in-one-seo-pack/dist/Lite/assets/css/ExcludePosts.DCpMRmov.css000064400000002572151222736000020717 0ustar00.aioseo-exclude-posts{display:flex}.aioseo-exclude-posts .aioseo-select{max-width:600px;display:inline-block}[dir=ltr] .aioseo-exclude-posts .aioseo-select{margin-right:16px}[dir=rtl] .aioseo-exclude-posts .aioseo-select{margin-left:16px}.aioseo-exclude-posts .aioseo-select .multiselect__option{display:flex}.aioseo-exclude-posts .aioseo-select .multiselect__option--highlight .option-title{color:#005ae0}.aioseo-exclude-posts .option{flex:1 0 auto}.aioseo-exclude-posts .option .option-title{font-weight:500;font-size:16px;color:#141b38}.aioseo-exclude-posts .option .option-title .search-term{font-weight:700}.aioseo-exclude-posts .option .option-details{display:flex;align-items:center;font-size:14px;color:#8c8f9a}[dir=ltr] .aioseo-exclude-posts .option .option-details span{margin-right:15px}[dir=rtl] .aioseo-exclude-posts .option .option-details span{margin-left:15px}.aioseo-exclude-posts .option-permalink{display:flex;align-items:center}.aioseo-exclude-posts .option-permalink svg.aioseo-external{width:15px;height:15px;color:#434960}.aioseo-exclude-posts .multiselect-toggle{padding:10px 13px;width:40px;position:absolute;height:36px;top:2px;text-align:center;z-index:1}[dir=ltr] .aioseo-exclude-posts .multiselect-toggle{right:2px}[dir=rtl] .aioseo-exclude-posts .multiselect-toggle{left:2px}.aioseo-exclude-posts .multiselect-toggle svg.aioseo-add-plus{width:14px;height:14px;color:#000} all-in-one-seo-pack/dist/Lite/assets/css/FacebookPreview.C_ZF3sGA.css000064400000007770151222736000021165 0ustar00.aioseo-facebook-preview[data-v-d177735a]{--primary-text: #050505;--secondary-text: #65676B;background-color:#f0f2f5;padding:20px;display:flex;align-items:center;justify-content:center}.aioseo-facebook-preview .facebook-post[data-v-d177735a]{background-color:#fff;border-radius:8px;border:1px solid #E8E8EB;max-width:525px;width:100%}.aioseo-facebook-preview .facebook-post .facebook-header[data-v-d177735a]{height:65px;padding:0 12px;display:flex;align-items:center}.aioseo-facebook-preview .facebook-post .facebook-header .profile-photo[data-v-d177735a]{overflow:hidden;width:40px;height:40px;border:1px solid #E8E8EB;border-radius:50%}.aioseo-facebook-preview .facebook-post .facebook-header .profile-photo svg[data-v-d177735a]{height:100%;width:100%}.aioseo-facebook-preview .facebook-post .facebook-header .poster[data-v-d177735a]{flex:1 0 auto}[dir=ltr] .aioseo-facebook-preview .facebook-post .facebook-header .poster[data-v-d177735a]{margin-left:10px}[dir=rtl] .aioseo-facebook-preview .facebook-post .facebook-header .poster[data-v-d177735a]{margin-right:10px}.aioseo-facebook-preview .facebook-post .facebook-header .poster .poster-name[data-v-d177735a]{font-size:15px;color:var(--primary-text);font-weight:500}.aioseo-facebook-preview .facebook-post .facebook-header .poster .poster-date[data-v-d177735a]{color:var(--secondary-text);font-size:13px}.aioseo-facebook-preview .facebook-post .facebook-header .ellipsis[data-v-d177735a]{display:inline-flex;gap:4px}.aioseo-facebook-preview .facebook-post .facebook-header .ellipsis div[data-v-d177735a]{background-color:#5e666f;width:4px;height:4px;border-radius:50%}.aioseo-facebook-preview .facebook-post .facebook-content[data-v-d177735a]{align-items:center;background-color:#f0f2f5;display:flex;flex-direction:row}.aioseo-facebook-preview .facebook-post .facebook-content .facebook-content__image[data-v-d177735a]{flex:0 1 139px;max-height:210px;min-width:139px;object-fit:cover;width:100%}.aioseo-facebook-preview .facebook-post .facebook-content .loader[data-v-d177735a]{max-width:158px;width:100%;align-self:stretch;background-color:#f2f3f5;position:relative}.aioseo-facebook-preview .facebook-post .facebook-content .loader[data-v-d177735a] .aioseo-loading-spinner{top:0;bottom:0;left:0;right:0;margin:auto}.aioseo-facebook-preview .facebook-post .facebook-content.vertical[data-v-d177735a]{display:block}.aioseo-facebook-preview .facebook-post .facebook-content.vertical .facebook-content__image[data-v-d177735a]{max-height:260px}.aioseo-facebook-preview .facebook-post .facebook-content.vertical .loader[data-v-d177735a]{max-width:100%;height:100px}.aioseo-facebook-preview .facebook-post .facebook-content .facebook-site-description[data-v-d177735a]{display:flex;flex-direction:column;flex:1 1 auto;gap:2px;justify-content:center;padding:10px 12px}.aioseo-facebook-preview .facebook-post .facebook-content .facebook-site-description .site-domain[data-v-d177735a],.aioseo-facebook-preview .facebook-post .facebook-content .facebook-site-description .site-title[data-v-d177735a],.aioseo-facebook-preview .facebook-post .facebook-content .facebook-site-description .site-description[data-v-d177735a]{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-style:normal;line-height:1.4;letter-spacing:normal;margin:0;padding:0;text-transform:none;overflow-wrap:break-word;word-break:break-word}.aioseo-facebook-preview .facebook-post .facebook-content .facebook-site-description .site-domain[data-v-d177735a]{color:var(--secondary-text);font-size:13px;font-weight:400;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.aioseo-facebook-preview .facebook-post .facebook-content .facebook-site-description .site-title[data-v-d177735a]{color:var(--primary-text);font-size:17px;font-weight:600}.aioseo-facebook-preview .facebook-post .facebook-content .facebook-site-description .site-description[data-v-d177735a]{color:var(--secondary-text);font-size:14px;font-weight:400}.aioseo-facebook-preview .facebook-post .facebook-footer[data-v-d177735a]{height:24px} all-in-one-seo-pack/dist/Lite/assets/css/Facebook.QTRRpC4S.css000064400000001745151222736000017642 0ustar00.aioseo-facebook .inline-upsell{display:inline-flex;margin-top:12px}.aioseo-facebook .facebook-image img{margin-top:20px;width:auto;max-width:525px;max-height:525px;height:auto}.aioseo-facebook .facebook-image.vertical img{max-width:158px;max-height:158px}.aioseo-facebook .how-to{display:flex;align-items:center;gap:8px;margin-top:16px;font-size:12px;line-height:18px}.aioseo-facebook .how-to svg.aioseo-book{width:16px;height:16px;vertical-align:middle}.aioseo-facebook .facebook-default-image-source .aioseo-select{max-width:445px}.aioseo-facebook .facebook-object-types{max-width:445px;display:flex;flex-direction:column;align-items:flex-start}.aioseo-facebook .facebook-object-types+.facebook-object-types{margin-top:12px}.aioseo-facebook .facebook-object-types .aioseo-table-column{width:100%;padding:0}.aioseo-facebook .facebook-object-types .aioseo-table-column:first-child{font-weight:600;margin-bottom:4px}.aioseo-facebook .facebook-home-page-object-type .aioseo-select{max-width:300px} all-in-one-seo-pack/dist/Lite/assets/css/FeatureManager.BGxCiogy.css000064400000005062151222736000021204 0ustar00.aioseo-feature-manager .aioseo-alert{margin-bottom:var(--aioseo-gutter)}.aioseo-feature-manager .aioseo-alert.install-failed{margin-top:var(--aioseo-gutter);margin-bottom:0}.aioseo-feature-manager .aioseo-alert .buttons{margin-top:8px}[dir=ltr] .aioseo-feature-manager .aioseo-alert .buttons .aioseo-button+.aioseo-button{margin-left:12px}[dir=rtl] .aioseo-feature-manager .aioseo-alert .buttons .aioseo-button+.aioseo-button{margin-right:12px}.aioseo-feature-manager .aioseo-feature-manager-header{border-bottom:2px solid #E8E8EB;margin:0 0 var(--aioseo-gutter);display:flex;align-items:center}.aioseo-feature-manager .aioseo-feature-manager-header .buttons{flex:1 0}.aioseo-feature-manager .aioseo-feature-manager-header .buttons .aioseo-button{margin-bottom:10px}[dir=ltr] .aioseo-feature-manager .aioseo-feature-manager-header .buttons .aioseo-button{margin-right:16px}[dir=rtl] .aioseo-feature-manager .aioseo-feature-manager-header .buttons .aioseo-button{margin-left:16px}.aioseo-feature-manager .aioseo-feature-manager-header .aioseo-input{max-width:325px;margin-bottom:10px}.aioseo-feature-manager .aioseo-feature-manager-addons>.aioseo-row{--total-gap-width: calc(2 * var(--aioseo-gutter));--aioseo-col-max-width: calc((100% - var(--total-gap-width)) / 3);display:grid;gap:var(--aioseo-gutter);grid-template-columns:repeat(auto-fill,minmax(max(290px,var(--aioseo-col-max-width)),1fr))}.aioseo-feature-manager .aioseo-feature-manager-addons>.aioseo-row>*{max-width:none}.aioseo-feature-manager .aioseo-feature-manager-addons>.aioseo-row .aioseo-col{max-width:none}.aioseo-feature-manager .feature-manager-upsell{margin-top:var(--aioseo-gutter)}.aioseo-feature-manager-modal .aioseo-modal-body{padding:20px 40px 40px;display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative}.aioseo-feature-manager-modal .aioseo-modal-body h3{font-size:18px;margin-bottom:16px}.aioseo-feature-manager-modal .aioseo-modal-body .reset-description{font-size:14px;color:#141b38;margin-bottom:16px;text-align:center;max-width:515px}.aioseo-feature-manager-modal .aioseo-modal-body button.close{position:absolute;top:11px;width:24px;height:24px;background-color:#fff;border:none;display:flex;align-items:center}[dir=ltr] .aioseo-feature-manager-modal .aioseo-modal-body button.close{right:11px}[dir=rtl] .aioseo-feature-manager-modal .aioseo-modal-body button.close{left:11px}.aioseo-feature-manager-modal .aioseo-modal-body button.close svg.aioseo-close{cursor:pointer;width:14px;height:14px}.aioseo-feature-manager-modal .aioseo-modal-body .aioseo-button:not(.close){margin-top:16px} all-in-one-seo-pack/dist/Lite/assets/css/Features.CkdIX41m.css000064400000002177151222736000017711 0ustar00.aioseo-wizard-features .feature-grid{border-bottom:1px solid #E8E8EB;padding-bottom:16px;margin-bottom:16px}.aioseo-wizard-features .feature-grid:last-child{border-bottom:none;padding-bottom:0;margin-bottom:0}.aioseo-wizard-features .feature-grid .settings-name{color:#141b38}.aioseo-wizard-features .feature-grid .settings-name .name{display:flex;align-items:center;font-weight:600}[dir=ltr] .aioseo-wizard-features .feature-grid .settings-name .name .aioseo-pro-badge{margin-left:12px}[dir=rtl] .aioseo-wizard-features .feature-grid .settings-name .name .aioseo-pro-badge{margin-right:12px}.aioseo-wizard-features .feature-grid .settings-name .name+.aioseo-description-text{margin-top:8px}.aioseo-wizard-features .feature-grid .settings-name .aioseo-description-text{max-width:650px;color:#434960}.aioseo-wizard-features .feature-grid .settings-name .aioseo-installs-text{font-style:italic;margin-top:5px;font-size:12px;color:#434960}.aioseo-wizard-features .plugins{font-style:italic;max-width:650px;margin:16px auto 0;font-size:12px;text-align:center;color:#8c8f9a;line-height:1.5}.aioseo-wizard-features .go-back a{color:#434960;font-size:14px} all-in-one-seo-pack/dist/Lite/assets/css/flyout-menu.cadIa8DK.css000064400000006450151222736000020441 0ustar00.aioseo-flyout-menu{position:fixed;z-index:1000;bottom:40px}[dir=ltr] .aioseo-flyout-menu{right:20px}[dir=rtl] .aioseo-flyout-menu{left:20px}.aioseo-flyout-menu-label{font-weight:600;font-size:12px;line-height:15px;color:#141b38;background:#fff;border:1px solid #DCDDE1;box-sizing:border-box;border-radius:80px;transition:all .05s ease}[dir=ltr] .aioseo-flyout-menu-label{box-shadow:.5px .5px 10px #8c8f9a}[dir=rtl] .aioseo-flyout-menu-label{box-shadow:-.5px .5px 10px #8c8f9a}.aioseo-flyout-menu-button{display:flex;align-items:center;justify-content:flex-end;cursor:pointer}.aioseo-flyout-menu-button>span{position:relative;z-index:0;padding:8px 16px;transition:all .2s ease;opacity:0;transform:scale(.5)}[dir=ltr] .aioseo-flyout-menu-button>span{margin-right:-100px}[dir=rtl] .aioseo-flyout-menu-button>span{margin-left:-100px}.aioseo-flyout-menu-button svg{position:relative;z-index:1;background:#fff;border:2px solid #004F9D;box-sizing:border-box;border-radius:70px}[dir=ltr] .aioseo-flyout-menu-button svg{box-shadow:.5px .5px 10px #8c8f9a}[dir=rtl] .aioseo-flyout-menu-button svg{box-shadow:-.5px .5px 10px #8c8f9a}.aioseo-flyout-menu-button:hover>span{opacity:1;transform:scale(1)}[dir=ltr] .aioseo-flyout-menu-button:hover>span{margin-right:12px}[dir=rtl] .aioseo-flyout-menu-button:hover>span{margin-left:12px}.aioseo-flyout-menu-items{display:none}.aioseo-flyout-menu-items a{display:flex;align-items:center;justify-content:flex-end;margin-bottom:12px;text-decoration:none;transition:all .2s ease;opacity:0}[dir=ltr] .aioseo-flyout-menu-items a{transform:translate(100%)}[dir=rtl] .aioseo-flyout-menu-items a{transform:translate(-100%)}.aioseo-flyout-menu-items a span{flex-shrink:0;padding:8px 16px}.aioseo-flyout-menu-items a .icon{width:40px;height:40px;display:flex;justify-content:center;align-items:center}[dir=ltr] .aioseo-flyout-menu-items a .icon{margin-left:8px}[dir=rtl] .aioseo-flyout-menu-items a .icon{margin-right:8px}.aioseo-flyout-menu-items a .icon svg{max-width:60%;max-height:60%;transition:all .2s ease}@supports (-webkit-appearance: none){.aioseo-flyout-menu-items a .icon svg{min-height:20px;min-width:20px}}.aioseo-flyout-menu-items a .icon svg path,.aioseo-flyout-menu-items a .icon svg g{will-change:transform,opacity;transition-property:transform,opacity;transition-duration:.5s;transition-timing-function:ease}.aioseo-flyout-menu-items a:hover .aioseo-flyout-menu-label{border-color:#004f9d;color:#004f9d}[dir=ltr] .aioseo-flyout-menu-items a:hover .aioseo-flyout-menu-label{box-shadow:.5px .5px 10px #8c8f9a,inset 0 0 0 1px #004f9d}[dir=rtl] .aioseo-flyout-menu-items a:hover .aioseo-flyout-menu-label{box-shadow:-.5px .5px 10px #8c8f9a,inset 0 0 0 1px #004f9d}.aioseo-flyout-menu-items a:hover .icon svg{max-width:70%;max-height:70%}.aioseo-flyout-menu.is-open .aioseo-flyout-menu-items{display:block}.aioseo-flyout-menu.is-open .aioseo-flyout-menu-items a{opacity:1;transform:translate(0)}.aioseo-flyout-menu.is-open .aioseo-flyout-menu-items,.aioseo-flyout-menu.will-open .aioseo-flyout-menu-items{margin-bottom:20px;display:block}[dir=ltr] .aioseo-flyout-menu.is-open .aioseo-flyout-menu-items,[dir=ltr] .aioseo-flyout-menu.will-open .aioseo-flyout-menu-items{margin-right:8px}[dir=rtl] .aioseo-flyout-menu.is-open .aioseo-flyout-menu-items,[dir=rtl] .aioseo-flyout-menu.will-open .aioseo-flyout-menu-items{margin-left:8px} all-in-one-seo-pack/dist/Lite/assets/css/footer-links.BPjXf0Fx.css000064400000001250151222736000020601 0ustar00#wpbody-content{padding-bottom:173px}.aioseo-footer{display:flex;flex-direction:column;align-items:center;padding:20px 0 30px}.aioseo-footer div{margin-top:12px;color:#787c82}.aioseo-footer div:first-of-type{font-weight:600}.aioseo-footer div:last-of-type{display:flex;gap:12px}.aioseo-footer div a{color:#005ae0}.aioseo-footer div a:hover{text-decoration:none}.aioseo-footer div span{padding:0 6px}.aioseo-footer div svg{color:#a7aaad}.aioseo-footer div svg.aioseo-facebook,.aioseo-footer div svg.aioseo-linkedin{width:16px;height:16px}.aioseo-footer div svg.aioseo-twitter,.aioseo-footer div svg.aioseo-youtube{width:17px;height:16px}.aioseo-footer div svg:hover{color:#005ae0} all-in-one-seo-pack/dist/Lite/assets/css/GeneralSettings.DUkwyw5z.css000064400000002573151222736000021456 0ustar00.aioseo-settings-network-sites-activation .aioseo-wp-table .manage-column.activated{text-align:center}.aioseo-settings-network-sites-activation .aioseo-wp-table .row-actions .deactivate{color:#df2a4a}.aioseo-settings-network-sites-activation svg.aioseo-circle-check-solid{width:20px;height:20px;color:#00aa63}.aioseo-settings-network-sites-activation svg.aioseo-circle-close-solid{width:20px;height:20px;color:#df2a4a}.aioseo-general-settings .license-cta-box{font-size:14px;line-height:22px;border-radius:3px;background-color:#f2f7fd;padding:16px;max-width:620px;margin:12px 0}.aioseo-general-settings .license-cta-box a{color:#00aa63}.aioseo-general-settings .license-cta-box div{font-weight:600}.aioseo-general-settings .license-cta-box span{font-size:14px;font-style:italic}.aioseo-general-settings .license-key{margin-top:12px;display:flex;max-width:620px}[dir=ltr] .aioseo-general-settings .license-key .aioseo-input-container{margin-right:8px}[dir=rtl] .aioseo-general-settings .license-key .aioseo-input-container{margin-left:8px}.aioseo-general-settings .wizard-actions .aioseo-button{text-align:center}.aioseo-general-settings .more-tooltip-text strong{color:#00aa63}.aioseo-general-settings svg.aioseo-setup-wizard{width:12px;height:12px}[dir=ltr] .aioseo-general-settings svg.aioseo-setup-wizard{margin-right:10px}[dir=rtl] .aioseo-general-settings svg.aioseo-setup-wizard{margin-left:10px} all-in-one-seo-pack/dist/Lite/assets/css/GeneralSitemap.DHOFFsTO.css000064400000002315151222736000021015 0ustar00.aioseo-priority-score{max-width:350px}.aioseo-priority-score .header-row{font-size:14px}.aioseo-general-sitemap .aioseo-links-per-site{max-width:110px}.aioseo-general-sitemap .aioseo-sitemap-preview{display:flex;align-items:center;margin-bottom:10px}[dir=ltr] .aioseo-general-sitemap .aioseo-sitemap-preview{margin-right:10px}[dir=rtl] .aioseo-general-sitemap .aioseo-sitemap-preview{margin-left:10px}.aioseo-general-sitemap .aioseo-sitemap-preview .aioseo-select{max-width:180px}[dir=ltr] .aioseo-general-sitemap .aioseo-sitemap-preview .aioseo-select{margin-right:16px}[dir=rtl] .aioseo-general-sitemap .aioseo-sitemap-preview .aioseo-select{margin-left:16px}.aioseo-general-sitemap .aioseo-sitemap-preview svg.aioseo-external{width:14px;height:14px}[dir=ltr] .aioseo-general-sitemap .aioseo-sitemap-preview svg.aioseo-external{margin-right:10px}[dir=rtl] .aioseo-general-sitemap .aioseo-sitemap-preview svg.aioseo-external{margin-left:10px}[dir=ltr] .aioseo-general-sitemap .ping>div:first-child{margin-right:40px}[dir=rtl] .aioseo-general-sitemap .ping>div:first-child{margin-left:40px}.aioseo-general-sitemap .aioseo-priority-score{max-width:500px}.aioseo-general-sitemap .aioseo-priority-score .header-row{font-size:14px} all-in-one-seo-pack/dist/Lite/assets/css/GettingStarted.CetFtkMO.css000064400000011365151222736000021212 0ustar00.aioseo-setup-wizard-container{margin-block:var(--aioseo-gutter);padding:calc(var(--aioseo-gutter) * 2);color:#fff;position:relative;background-color:#005ae0}.aioseo-setup-wizard-container p{color:#fff}.aioseo-setup-wizard-container .getting-started-wrapper{position:relative;display:flex;justify-content:space-between;align-items:center;gap:20px}.aioseo-setup-wizard-container .getting-started-wrapper .text{max-width:534px}.aioseo-setup-wizard-container .getting-started-wrapper .video{flex:0 0 533px}.aioseo-setup-wizard-container .getting-started-wrapper .video .wrapper{padding-bottom:56.25%;margin-bottom:0;position:relative;height:0}.aioseo-setup-wizard-container .getting-started-wrapper .video .wrapper iframe{width:100%;height:100%;position:absolute;top:0}[dir=ltr] .aioseo-setup-wizard-container .getting-started-wrapper .video .wrapper iframe{left:0}[dir=rtl] .aioseo-setup-wizard-container .getting-started-wrapper .video .wrapper iframe{right:0}@media only screen and (max-width: 1350px){.aioseo-setup-wizard-container .getting-started-wrapper .video{flex:0 0 593px;margin:20px;align-self:center}.aioseo-setup-wizard-container .getting-started-wrapper .video .wrapper{margin-bottom:0}.aioseo-setup-wizard-container .getting-started-wrapper .wizard-actions .aioseo-col{flex-basis:100%;max-width:100%;justify-content:center}}@media only screen and (max-width: 1300px){.aioseo-setup-wizard-container .getting-started-wrapper{flex-direction:row;flex-wrap:wrap}.aioseo-setup-wizard-container .getting-started-wrapper .video{margin:0}.aioseo-setup-wizard-container .getting-started-wrapper .video,.aioseo-setup-wizard-container .getting-started-wrapper .text{flex-basis:100%;width:100%}.aioseo-setup-wizard-container .getting-started-wrapper .wizard-actions{justify-content:center}.aioseo-setup-wizard-container .getting-started-wrapper .wizard-actions .aioseo-col{flex-basis:inherit;max-width:inherit;justify-content:center}}@media only screen and (max-width: 782px){.aioseo-setup-wizard-container .getting-started-wrapper .wizard-actions .aioseo-col{flex-basis:100%;max-width:100%;justify-content:center}}.aioseo-setup-wizard-container .aioseo-row{position:relative;z-index:1}.aioseo-setup-wizard-container .wizard-actions .aioseo-col{display:flex;align-items:center}.aioseo-setup-wizard-container .wizard-actions .aioseo-col:first-child{flex-basis:auto}.aioseo-setup-wizard-container .wizard-actions .aioseo-button{height:40px;font-size:14px;padding:0 16px}.aioseo-setup-wizard-container .wizard-actions .aioseo-button svg{width:14px;height:14px}[dir=ltr] .aioseo-setup-wizard-container .wizard-actions .aioseo-button svg{margin-right:10px}[dir=rtl] .aioseo-setup-wizard-container .wizard-actions .aioseo-button svg{margin-left:10px}.aioseo-setup-wizard-container .setup-wizard-bg{width:100%;height:100%;overflow:hidden;z-index:0;position:absolute;top:0}[dir=ltr] .aioseo-setup-wizard-container .setup-wizard-bg{left:0}[dir=rtl] .aioseo-setup-wizard-container .setup-wizard-bg{right:0}.aioseo-setup-wizard-container .setup-wizard-bg svg.aioseo-setup-wizard-bg{width:auto;height:100%}.aioseo-setup-wizard-container .setup-wizard-bg svg.aioseo-setup-wizard-bg rect{width:auto;height:100%}.aioseo-setup-wizard-container .close-wizard{color:#fff;width:20px;height:20px;position:absolute;top:20px;z-index:1;display:flex;align-items:center;justify-content:center}[dir=ltr] .aioseo-setup-wizard-container .close-wizard{right:20px}[dir=rtl] .aioseo-setup-wizard-container .close-wizard{left:20px}.aioseo-setup-wizard-container .close-wizard:hover{color:#ccc}.aioseo-setup-wizard-container .close-wizard svg.aioseo-close{width:12px;height:12px;cursor:pointer;color:#fff}.aioseo-setup-wizard-container .close-wizard svg.aioseo-close:hover{color:#dadada}.aioseo-setup-wizard-container p.how-to-get-started{font-size:16px;line-height:24px;margin:0}.aioseo-setup-wizard-container p.welcome-text{font-size:14px;line-height:24px;margin:0 0 32px}.aioseo-setup-wizard-container h2{color:#fff;font-size:28px;line-height:40px;margin-bottom:16px}.aioseo-setup-wizard-container a{color:#fff}.aioseo-setup-wizard-container svg.aioseo-book{width:16px;height:16px}[dir=ltr] .aioseo-setup-wizard-container svg.aioseo-book{margin:0 8px 0 0}[dir=rtl] .aioseo-setup-wizard-container svg.aioseo-book{margin:0 0 0 8px}.aioseo-setup-wizard-container .getting-started-video{margin-bottom:-60px;position:relative;height:0;padding-bottom:56.25%}[dir=ltr] .aioseo-setup-wizard-container .getting-started-video{padding-right:20px}[dir=rtl] .aioseo-setup-wizard-container .getting-started-video{padding-left:20px}.aioseo-setup-wizard-container .getting-started-video iframe{width:100%;height:100%;position:absolute;top:0}[dir=ltr] .aioseo-setup-wizard-container .getting-started-video iframe{left:0}[dir=rtl] .aioseo-setup-wizard-container .getting-started-video iframe{right:0} all-in-one-seo-pack/dist/Lite/assets/css/GettingStarted.IQ5qEUiS.css000064400000007461151222736000021105 0ustar00.aioseo-app .aioseo-getting-started .aioseo-getting-started-cta{margin-block:var(--aioseo-gutter)}.aioseo-app .aioseo-getting-started .aioseo-getting-started-videos,.aioseo-app .aioseo-getting-started .aioseo-getting-started-documentation{margin-top:var(--aioseo-gutter);background:#fff;width:100%;padding:40px;box-shadow:0 2px 5px #0000000d;border:1px solid #E8E8EB;color:#141b38}.aioseo-app .aioseo-getting-started .aioseo-getting-started-videos a,.aioseo-app .aioseo-getting-started .aioseo-getting-started-documentation a{text-decoration:none}.aioseo-app .aioseo-getting-started .aioseo-getting-started-videos .header,.aioseo-app .aioseo-getting-started .aioseo-getting-started-documentation .header{align-items:center;font-weight:700}.aioseo-app .aioseo-getting-started .aioseo-getting-started-videos .header .header-title,.aioseo-app .aioseo-getting-started .aioseo-getting-started-documentation .header .header-title{font-size:28px;line-height:40px}.aioseo-app .aioseo-getting-started .aioseo-getting-started-videos .header .header-link,.aioseo-app .aioseo-getting-started .aioseo-getting-started-documentation .header .header-link{display:flex;justify-content:flex-end}.aioseo-app .aioseo-getting-started .aioseo-getting-started-videos .header .header-link a,.aioseo-app .aioseo-getting-started .aioseo-getting-started-documentation .header .header-link a{text-decoration:underline;color:#005ae0}@media screen and (max-width: 782px){.aioseo-app .aioseo-getting-started .aioseo-getting-started-videos .header .header-link,.aioseo-app .aioseo-getting-started .aioseo-getting-started-documentation .header .header-link{justify-content:start!important}}.aioseo-app .aioseo-getting-started .aioseo-getting-started-videos .videos,.aioseo-app .aioseo-getting-started .aioseo-getting-started-videos .docs,.aioseo-app .aioseo-getting-started .aioseo-getting-started-documentation .videos,.aioseo-app .aioseo-getting-started .aioseo-getting-started-documentation .docs{margin:var(--aioseo-gutter) 0;font-weight:700;font-size:14px;line-height:22px;color:#141b38}[dir=ltr] .aioseo-app .aioseo-getting-started .aioseo-getting-started-videos .videos div{padding:5px 16px 5px 0}[dir=rtl] .aioseo-app .aioseo-getting-started .aioseo-getting-started-videos .videos div{padding:5px 0 5px 16px}.aioseo-app .aioseo-getting-started .aioseo-getting-started-videos .videos .video{display:flex;align-items:center;padding:16px;background-color:#f9f9fa;color:#141b38}.aioseo-app .aioseo-getting-started .aioseo-getting-started-videos .videos .video img{flex:1 1 auto;max-width:180px;max-height:100px}.aioseo-app .aioseo-getting-started .aioseo-getting-started-videos .videos .video div{flex:2 2 auto}[dir=ltr] .aioseo-app .aioseo-getting-started .aioseo-getting-started-videos .videos .video div{margin:0 0 0 var(--aioseo-gutter)}[dir=rtl] .aioseo-app .aioseo-getting-started .aioseo-getting-started-videos .videos .video div{margin:0 var(--aioseo-gutter) 0 0}@media screen and (max-width: 520px){.aioseo-app .aioseo-getting-started .aioseo-getting-started-videos .videos .video{flex-direction:column}.aioseo-app .aioseo-getting-started .aioseo-getting-started-videos .videos .video img{margin:0 0 10px;max-width:100%}.aioseo-app .aioseo-getting-started .aioseo-getting-started-videos .videos .video div{margin:0;text-align:center}}.aioseo-app .aioseo-getting-started .aioseo-getting-started-documentation .docs .d-flex{align-items:flex-start}.aioseo-app .aioseo-getting-started .aioseo-getting-started-documentation .docs .doc svg{width:16px;height:16px;color:#005ae0}[dir=ltr] .aioseo-app .aioseo-getting-started .aioseo-getting-started-documentation .docs .doc svg{margin:1px 8px 0 0}[dir=rtl] .aioseo-app .aioseo-getting-started .aioseo-getting-started-documentation .docs .doc svg{margin:1px 0 0 8px}.aioseo-app .aioseo-getting-started .aioseo-getting-started-documentation .docs .doc a{color:#141b38} all-in-one-seo-pack/dist/Lite/assets/css/GlobalSettings.CUp8muVO.css000064400000003743151222736000021156 0ustar00.aioseo-search-appearance-global .schema-graph-name,.aioseo-search-appearance-global .schema-graph-contact-type-manual{margin-bottom:16px}.aioseo-search-appearance-global .schema-graph-name .aioseo-input,.aioseo-search-appearance-global .schema-graph-contact-type-manual .aioseo-input{max-width:600px}.aioseo-search-appearance-global .schema-graph-contact-type{margin-bottom:16px}.aioseo-search-appearance-global .schema-graph-contact-type .aioseo-select{max-width:300px}.aioseo-search-appearance-global .schema-graph-image{margin-bottom:16px}.aioseo-search-appearance-global .person-chooser{max-width:600px}.aioseo-search-appearance-global .person-chooser .person-label{display:flex;align-items:center}.aioseo-search-appearance-global .person-chooser .person-label .person-avatar{height:30px}[dir=ltr] .aioseo-search-appearance-global .person-chooser .person-label .person-avatar{margin-right:16px}[dir=rtl] .aioseo-search-appearance-global .person-chooser .person-label .person-avatar{margin-left:16px}.aioseo-search-appearance-global .person-chooser .person-label .person-avatar img{height:30px;width:30px;border-radius:50%}.aioseo-search-appearance-global .aioseo-settings-row.local-seo{display:flex;align-items:center;background:#f9f9fa}.aioseo-search-appearance-global .aioseo-settings-row.local-seo .local-seo-text{line-height:1.4;font-size:16px;color:#141b38;max-width:550px}.aioseo-search-appearance-global .aioseo-settings-row.local-seo .local-seo-text .aioseo-button{margin-top:10px}.aioseo-search-appearance-global .aioseo-settings-row.local-seo svg.aioseo-local-seo{width:139px;height:106px}[dir=ltr] .aioseo-search-appearance-global .aioseo-settings-row.local-seo svg.aioseo-local-seo{margin-right:60px}[dir=rtl] .aioseo-search-appearance-global .aioseo-settings-row.local-seo svg.aioseo-local-seo{margin-left:60px}.aioseo-search-appearance-global .aioseo-settings-row.local-seo:last-child{padding:30px}.aioseo-search-appearance-global .aioseo-google-search-preview{border:1px solid #E8E8EB;padding:16px} all-in-one-seo-pack/dist/Lite/assets/css/GoogleSearchPreview.DD7_nIU9.css000064400000012334151222736000021771 0ustar00@charset "UTF-8";.aioseo-google-search-preview--mobile .aioseo-google-search-preview__review-snippet__stars[data-v-546c0ec9]{order:2}.aioseo-google-search-preview--mobile .aioseo-google-search-preview__review-snippet__rating[data-v-546c0ec9]{order:1}.aioseo-google-search-preview--mobile .aioseo-google-search-preview__review-snippet__rating span[data-v-546c0ec9]{display:none}.aioseo-google-search-preview--mobile .aioseo-google-search-preview__review-snippet__count.bullet[data-v-546c0ec9]:before{display:none}.aioseo-google-search-preview--mobile .aioseo-google-search-preview__anchor__link[data-v-546c0ec9]{border:1px solid #e4e4e4;border-radius:3px;padding:4px 6px}.aioseo-google-search-preview--mobile .aioseo-google-search-preview__anchor__bullet[data-v-546c0ec9],.aioseo-google-search-preview--mobile .aioseo-google-search-preview__faq[data-v-546c0ec9]{display:none}.aioseo-google-search-preview__main[data-v-546c0ec9]{background-color:#fff;display:grid;grid-template-areas:"favicon location" "title title" "description description";grid-template-columns:38px minmax(0,1fr);grid-template-rows:auto auto auto;width:100%}.aioseo-google-search-preview__favicon[data-v-546c0ec9]{align-items:center;display:flex;grid-area:favicon}.aioseo-google-search-preview__favicon .favicon-wrapper[data-v-546c0ec9]{align-items:center;background-color:#f1f3f4;border-radius:50%;color:#0060f0;display:flex;height:28px;justify-content:center;width:28px}.aioseo-google-search-preview__favicon .favicon-wrapper img[data-v-546c0ec9]{height:18px;width:18px}.aioseo-google-search-preview__location[data-v-546c0ec9]{grid-area:location;line-height:1.4}.aioseo-google-search-preview__location .hostname[data-v-546c0ec9]{color:#202124;font-size:14px}.aioseo-google-search-preview__location .url[data-v-546c0ec9]{color:#5f6368;font-size:12px}.aioseo-google-search-preview__title[data-v-546c0ec9],.aioseo-google-search-preview__description[data-v-546c0ec9]{overflow-wrap:break-word;word-break:break-word}.aioseo-google-search-preview__title[data-v-546c0ec9]{color:#180ea4;font-size:20px;grid-area:title;margin-top:4px}.aioseo-google-search-preview__description[data-v-546c0ec9]{color:#4e5156;font-size:14px;grid-area:description;line-height:1.4;margin-top:4px;width:100%}.aioseo-google-search-preview__description[data-v-546c0ec9]:empty{display:none}.aioseo-google-search-preview__description[data-v-546c0ec9] strong{font-weight:600}.aioseo-google-search-preview__review-snippet[data-v-546c0ec9]{align-items:center;color:#70757a;display:flex;font-size:13px;gap:5px;line-height:normal;margin-top:3px}.aioseo-google-search-preview__review-snippet__stars[data-v-546c0ec9]{background-image:url("data:image/svg+xml,");background-repeat:repeat-x;height:11px;order:1;overflow:hidden;position:relative;width:66px}.aioseo-google-search-preview__review-snippet__stars div[data-v-546c0ec9]{background-image:url("data:image/svg+xml,");height:11px;width:var(--dbfb0334)}.aioseo-google-search-preview__review-snippet__rating[data-v-546c0ec9]{order:2}.aioseo-google-search-preview__review-snippet__count[data-v-546c0ec9]{order:3}.aioseo-google-search-preview__review-snippet__price[data-v-546c0ec9]{order:4}.aioseo-google-search-preview__review-snippet .bullet[data-v-546c0ec9]:before{content:"•";font-size:10px}[dir=ltr] .aioseo-google-search-preview__review-snippet .bullet[data-v-546c0ec9]:before{margin:0 5px 0 0}[dir=rtl] .aioseo-google-search-preview__review-snippet .bullet[data-v-546c0ec9]:before{margin:0 0 0 5px}.aioseo-google-search-preview__anchor[data-v-546c0ec9]{display:flex;gap:8px;line-height:normal;margin-top:6px;overflow:hidden}.aioseo-google-search-preview__anchor__link[data-v-546c0ec9]{color:#1a0dab;cursor:pointer;display:inline-block;font-size:14px;white-space:nowrap}.aioseo-google-search-preview__anchor__bullet[data-v-546c0ec9]{color:#70757a;display:inline-block;font-size:12px}.aioseo-google-search-preview__faq[data-v-546c0ec9]{margin-top:12px}.aioseo-google-search-preview__faq__container[data-v-546c0ec9]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border-top:1px solid #dadce0;color:#4e5156;font-size:14px;line-height:normal;list-style:none;padding:8px 0}.aioseo-google-search-preview__faq__container .aioseo-caret[data-v-546c0ec9]{transform:rotate(0);transition:transform .2s ease-in-out}[dir=ltr] .aioseo-google-search-preview__faq__container[open] .aioseo-caret[data-v-546c0ec9]{transform:rotate(180deg)}[dir=rtl] .aioseo-google-search-preview__faq__container[open] .aioseo-caret[data-v-546c0ec9]{transform:rotate(-180deg)}.aioseo-google-search-preview__faq__question[data-v-546c0ec9]{align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;display:flex;justify-content:space-between}.aioseo-google-search-preview__faq__answer[data-v-546c0ec9]{display:block;margin-top:8px}.aioseo-google-search-preview .text-truncate[data-v-546c0ec9]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap} all-in-one-seo-pack/dist/Lite/assets/css/Header.DtFLNPNM.css000064400000003527151222736000017321 0ustar00.aioseo-wizard-body{background-color:#fff;max-width:900px;box-shadow:0 2px 5px #0000000d}.aioseo-wizard-body .body-content{padding:40px}.aioseo-wizard-body .body-content .header{font-size:24px;line-height:30px;color:#141b38;font-weight:600}.aioseo-wizard-body .body-content .header+*:not(.description){margin-top:20px}.aioseo-wizard-body .body-content .description{line-height:24px;margin-block:16px 20px;font-size:16px;color:#434960}.aioseo-wizard-body .body-footer{border-top:1px solid #E8E8EB;padding:20px 40px;display:flex;align-items:center}[dir=ltr] .aioseo-wizard-body .body-footer>*{margin-right:16px}[dir=rtl] .aioseo-wizard-body .body-footer>*{margin-left:16px}[dir=ltr] .aioseo-wizard-body .body-footer>*:last-child{margin-right:0}[dir=rtl] .aioseo-wizard-body .body-footer>*:last-child{margin-left:0}.aioseo-wizard-body .body-footer>.aioseo-button{font-size:14px;line-height:22px;height:40px}.aioseo-wizard-body .body-footer .spacer{flex:1 0 auto}.aioseo-wizard-container{margin:40px auto;max-width:850px}@media screen and (max-width: 782px){.aioseo-wizard-container{margin:0 20px}}.aioseo-wizard-progress{display:flex;align-items:center;justify-content:center}@media screen and (max-width: 782px){.aioseo-wizard-progress{display:none}}.aioseo-wizard-progress .circle{background-color:#dcdde1;width:16px;height:16px;border-radius:50%}.aioseo-wizard-progress .circle.active{background-color:#005ae0}.aioseo-wizard-progress .spacer{width:59px;border:1px solid #DCDDE1;margin:0 12px}.aioseo-wizard-progress .spacer.active{border-color:#005ae0}.aioseo-wizard-header{display:flex;align-items:center;justify-content:center;flex-direction:column}.aioseo-wizard-header svg.aioseo-logo{margin:60px 0 40px;width:100%;max-width:140px;height:auto}[dir=ltr] .aioseo-wizard-header svg.aioseo-logo{margin-right:10px}[dir=rtl] .aioseo-wizard-header svg.aioseo-logo{margin-left:10px} all-in-one-seo-pack/dist/Lite/assets/css/Header.DY2P29Mq.css000064400000013731151222736000017224 0ustar00.aioseo-percent-circle{width:40px;height:40px;min-width:40px;min-height:40px;position:relative;cursor:pointer}.aioseo-percent-circle .aioseo-percent-circle-score__circle{transform-origin:center;stroke:#005ae0}[dir=ltr] .aioseo-percent-circle .aioseo-percent-circle-score__circle{transform:rotate(-90deg)}[dir=rtl] .aioseo-percent-circle .aioseo-percent-circle-score__circle{transform:rotate(90deg)}@keyframes aioseo-percent-circle-score-fill{to{stroke-dasharray:0 100}}.aioseo-percent-circle .aioseo-percent-circle-percent{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}.aioseo-percent-circle .fill-percent-circle-enter-active .aioseo-percent-circle-score__circle,.aioseo-percent-circle .fill-percent-circle-leave-active .aioseo-percent-circle-score__circle{transition:stroke-dasharray 1s}.aioseo-percent-circle .fill-percent-circle-enter-from .aioseo-percent-circle-score__circle,.aioseo-percent-circle .fill-percent-circle-leave-to .aioseo-percent-circle-score__circle{stroke-dasharray:0 100}.aioseo-processing-popup{display:flex;max-width:510px;position:fixed;bottom:20px;filter:drop-shadow(0px 2px 10px rgba(0,90,224,.2));background:#fff;border:1px solid #DCDDE1;border-radius:3px;padding:15px 24px;color:#141b38;z-index:1001}[dir=ltr] .aioseo-processing-popup{right:20px}[dir=rtl] .aioseo-processing-popup{left:20px}[dir=ltr] .aioseo-processing-popup>div{margin-right:20px}[dir=rtl] .aioseo-processing-popup>div{margin-left:20px}.aioseo-processing-popup>svg{position:absolute;top:12px;color:#8c8f9a;cursor:pointer;width:10px;height:10px;min-width:10px;min-height:10px}[dir=ltr] .aioseo-processing-popup>svg{right:12px}[dir=rtl] .aioseo-processing-popup>svg{left:12px}.aioseo-processing-popup>svg:hover{color:#141b38}.fade-processing-popup-enter-active,.fade-processing-popup-leave-active{transition:opacity 1s,transform 1s ease-in-out}.fade-processing-popup-enter-from,.fade-processing-popup-leave-to{opacity:0;transform:translate3d(0,-100%,0)}.aioseo-app .aioseo-upgrade-bar{display:flex;align-items:center;height:40px;background-color:#00aa63;justify-content:center;color:#fff;font-size:14px;padding:0 20px}.aioseo-app .aioseo-upgrade-bar .upgrade-text{display:flex;align-items:center;flex:1;justify-content:center}.aioseo-app .aioseo-upgrade-bar .upgrade-arrow{font-size:15px;text-decoration:none}.aioseo-app .aioseo-upgrade-bar .upgrade-arrow:hover{text-decoration:none}.aioseo-app .aioseo-upgrade-bar strong{font-weight:600}.aioseo-app .aioseo-upgrade-bar svg.aioseo-logo-gear{width:20px;height:20px;min-width:20px}[dir=ltr] .aioseo-app .aioseo-upgrade-bar svg.aioseo-logo-gear{margin-right:14px}[dir=rtl] .aioseo-app .aioseo-upgrade-bar svg.aioseo-logo-gear{margin-left:14px}.aioseo-app .aioseo-upgrade-bar svg.aioseo-close{cursor:pointer;width:12px;height:12px}.aioseo-app .aioseo-upgrade-bar a{color:#fff;text-decoration:underline}.aioseo-app .aioseo-upgrade-bar a:hover{text-decoration:none}@media screen and (max-width: 782px){.aioseo-app .aioseo-upgrade-bar{padding:0 10px;height:60px}}.aioseo-container-fluid,.aioseo-container{margin-right:auto;margin-left:auto}.aioseo-container{padding:0;width:calc(100% - var(--aioseo-gutter) * 2);max-width:1240px}.aioseo-container.full-width{width:100%;max-width:100%}.aioseo-container.small{max-width:810px}.aioseo-container-fluid.hero,.aioseo-container.hero{min-height:100vh;display:flex;justify-content:center;align-items:center}.aioseo-container-fluid{padding-right:2rem;padding-left:2rem}html:not([data-scroll="0"]) .aioseo-header{box-shadow:0 2px 5px #0000000d;transition:box-shadow .6s}.aioseo-header{position:fixed;z-index:1051;top:0;right:0;left:0;background-color:#fff;height:var(--aioseo-header-height, 72px);color:#141b38}.aioseo-header .mascot{width:35px;height:auto}[dir=ltr] .aioseo-header .mascot{margin-right:10px}[dir=rtl] .aioseo-header .mascot{margin-left:10px}.aioseo-header .aioseo-header-content{padding:0;display:flex;height:72px;align-items:center;gap:4px}.aioseo-header .aioseo-header-content a:focus{box-shadow:none}.aioseo-header .aioseo-header-content svg.aioseo-logo{height:20px}.aioseo-header .aioseo-header-content .spacer{display:inline-flex;width:20px;height:2px;background:#d0d1d7}[dir=ltr] .aioseo-header .aioseo-header-content .spacer{transform:rotate(-70deg)}[dir=rtl] .aioseo-header .aioseo-header-content .spacer{transform:rotate(70deg)}.aioseo-header .aioseo-header-content .page-name{display:inline-flex;font-size:16px;font-weight:400;flex:1 0 auto}.aioseo-header .aioseo-header-content .header-actions{display:flex}.aioseo-header .aioseo-header-content .header-actions .round{position:relative;background-color:#f3f4f5;border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .2s ease}[dir=ltr] .aioseo-header .aioseo-header-content .header-actions .round{margin-left:10px}[dir=rtl] .aioseo-header .aioseo-header-content .header-actions .round{margin-right:10px}.aioseo-header .aioseo-header-content .header-actions .round svg{width:20px;height:20px}.aioseo-header .aioseo-header-content .header-actions .round:hover{background-color:#e5e7e9}.aioseo-header .aioseo-header-content .header-actions .number{position:absolute;background-color:#df2a4a;width:16px;height:16px;font-weight:600;font-size:10px;color:#fff;top:-8px;margin:0;animation:bounce 2s 5;will-change:transform}[dir=ltr] .aioseo-header .aioseo-header-content .header-actions .number{left:50%;transform:translate(-50%)}[dir=rtl] .aioseo-header .aioseo-header-content .header-actions .number{right:50%;transform:translate(50%)}.aioseo-header .aioseo-header-content .header-actions .number:hover{background-color:#df2a4a}@keyframes bounce{0%,25%,50%,75%,to{transform:translate(-50%)}40%{transform:translate(-50%,-8px)}60%{transform:translate(-50%,-4px)}}.aioseo-header .fade-percent-circle-enter-active,.aioseo-header .fade-percent-circle-leave-active{transition:opacity .5s}.aioseo-header .fade-percent-circle-enter-from,.aioseo-header .fade-percent-circle-leave-to{opacity:0} all-in-one-seo-pack/dist/Lite/assets/css/headline-analyzer.B2jtCUmV.css000064400000076677151222736000021617 0ustar00.aioseo-inline-buttons{display:grid;grid-template-columns:repeat(2,1fr)}.aioseo-switcher-button{border:0;border-radius:0;font-size:14px;font-weight:400;color:#434960;padding:16px 10px;box-shadow:0 2px #e8e8eb;cursor:pointer;white-space:nowrap;position:relative;transition:.4s cubic-bezier(.4,0,.2,1);background:#fafafa}[dir=ltr] .aioseo-switcher-button{text-align:left}[dir=rtl] .aioseo-switcher-button{text-align:right}.aioseo-switcher-button:before{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;opacity:0;transition:.4s cubic-bezier(.4,0,.2,1);will-change:background-color,opacity;content:" "}.aioseo-switcher-button.active:before,.aioseo-switcher-button:hover:before,.aioseo-switcher-button:active:before{background-color:currentColor;opacity:.12}.aioseo-switcher-button.active{font-weight:700;color:#141b38;box-shadow:0 2px #005ae0}.aioseo-headline-analyzer-wrapper{position:relative;font-size:14px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-pie-chart-container{position:relative;width:200px;height:200px;margin:0 auto 16px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-pie-chart-container .aioseo-headline-analyzer-total-out-of-score{font-size:18px;color:#8c8f9a;font-weight:600;z-index:0}.aioseo-headline-analyzer-wrapper .components-panel__body svg.components-panel__arrow{top:50%;margin-top:-12px;transition:.3s}[dir=ltr] .aioseo-headline-analyzer-wrapper .components-panel__body svg.components-panel__arrow{transform:rotate(-90deg)}[dir=rtl] .aioseo-headline-analyzer-wrapper .components-panel__body svg.components-panel__arrow{transform:rotate(90deg)}.aioseo-headline-analyzer-wrapper .components-panel__body.is-opened svg.components-panel__arrow{transform:rotate(0)}.aioseo-headline-analyzer-wrapper p{font-size:14px;line-height:22px;color:#434960;margin-bottom:12px}.aioseo-headline-analyzer-wrapper p>strong{font-size:inherit;font-weight:600}.aioseo-headline-analyzer-wrapper .green{color:#00aa63}.aioseo-headline-analyzer-wrapper .orange{color:#f18200}.aioseo-headline-analyzer-wrapper .red{color:#df2a4a}.aioseo-headline-analyzer-wrapper .green-bg{background:#00aa63}.aioseo-headline-analyzer-wrapper .orange-bg{background:#f18200}.aioseo-headline-analyzer-wrapper .red-bg{background:#df2a4a}.aioseo-headline-analyzer-wrapper .components-panel__body-toggle.components-button{font-size:14px;line-height:22px;font-weight:600;color:#141b38;padding-block:13px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-empty-title-warning{margin:16px!important;color:#141b38;text-align:start}.aioseo-headline-analyzer-wrapper .components-panel__body.is-opened>.components-panel__body-title{margin:0}.aioseo-headline-analyzer-wrapper .components-panel__body.is-opened{padding:0}.aioseo-headline-analyzer-wrapper .components-panel__body.is-opened .aioseo-headline-analyzer-words-block,.aioseo-headline-analyzer-wrapper .components-panel__body.is-opened .aioseo-headline-analyzer-panel-first-block{padding:0 16px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-score.is-opened .components-panel__body-title,.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-sentiment.is-opened .components-panel__body-title,.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-previous-scores.is-opened .components-panel__body-title,.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-character-count.is-opened .components-panel__body-title,.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-tab-new-score.is-opened .components-panel__body-title,.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-tab-new-score-form.is-opened .components-panel__body-title,.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-word-count.is-opened .components-panel__body-title,.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-beginning-ending-words.is-opened .components-panel__body-title,.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-search-preview.is-opened .components-panel__body-title,.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-types.is-opened .components-panel__body-title,.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-word-balance.is-opened .components-panel__body-title{border-bottom:1px solid #e8e8eb;margin-bottom:16px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-current-score,.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-score-status{position:absolute;top:45%;left:0;right:0;text-align:center;font-size:50px;line-height:0%;z-index:0;font-weight:600}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-current-score p,.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-score-status p{margin-bottom:0}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-new-score-panel{top:calc(58% + 16px)}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-score-status{top:65%;font-size:16px;z-index:0}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-current-score-tab p{text-align:center}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-current-score-tab .aioseo-headline-analyzer-current-title{text-align:center;font-size:14px;color:#141b38;margin:0 0 12px;line-height:22px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-new-score-panel h4{text-align:center;font-size:16px;color:#141b38;margin:0 0 28px;line-height:1.4}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-new-score-panel .aioseo-headline-analyzer-pie-chart-container{position:relative;width:200px;height:200px;margin:0 auto 16px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-new-score-panel .aioseo-headline-analyzer-pie-chart-container .aioseo-headline-analyzer-new-score{position:absolute;top:calc(38% + 16px);left:0;right:0;text-align:center;font-size:50px;font-weight:600;line-height:0%;z-index:10}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-new-score-panel .aioseo-headline-analyzer-pie-chart-container .aioseo-headline-analyzer-new-score p{margin-bottom:0}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-new-score-panel .current-score{border-top:1px solid #E8E8EB;padding-top:24px;display:flex;align-items:center;flex-direction:row}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-new-score-panel .current-score .aioseo-headline-analyzer-score{min-height:40px;min-width:40px;font-weight:600;color:#fff;text-align:center;line-height:40px;border-radius:50%;font-size:18px}[dir=ltr] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-new-score-panel .current-score .aioseo-headline-analyzer-score{margin-right:16px}[dir=rtl] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-new-score-panel .current-score .aioseo-headline-analyzer-score{margin-left:16px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-new-score-panel .current-score h5{font-weight:400;color:#8c8f9a;margin-top:0;margin-bottom:8px;font-size:13px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-new-score-panel .current-score p{margin-top:8px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-new-score-form-block{padding:0 16px 16px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-new-score-form-block form label{text-transform:none;font-weight:400}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-input-field{margin-bottom:10px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-input-field .components-base-control__label{display:block;max-width:100%;font-size:14px;line-height:22px;font-weight:400;text-transform:none;margin:0 0 12px;color:#434960}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-input-field input{padding:11px 12px;font-size:13px;border:1px solid #D0D1D7;color:#393f4c;border-radius:3px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-button{font-size:14px;border-radius:4px;padding:0;height:40px;background:#005ae0;width:100%;justify-content:center;color:#fff;font-weight:600;border:1px solid transparent;transition:background-color .2s ease;opacity:1}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-button:disabled{border:1px solid #dcdde1;background-color:#f3f4f5;color:#8c8f9a;cursor:default}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-button:disabled:hover{color:#8c8f9a}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-button:hover,.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-button:focus,.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-button:visited{color:#fff;box-shadow:none}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-score-difference{font-weight:600;position:absolute;left:0;top:16%;right:0;text-align:center;width:42px;height:26px;margin:0 auto;font-size:16px;line-height:26px;border-radius:4px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-score-difference.red{background:#fbe9ec}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-score-difference.orange{background:#fcfae8}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-score-difference.green{background:#cbeae1}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-previous-scores{margin:0!important}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-previous-scores li{margin-bottom:16px;cursor:pointer;display:flex;flex-direction:row;align-items:center;color:#434960}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-previous-scores li span.aioseo-headline-analyzer-score{min-height:24px;min-width:24px;font-size:11px;text-align:center;line-height:24px;border-radius:50%;color:#fff;font-weight:600}[dir=ltr] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-previous-scores li span.aioseo-headline-analyzer-score{margin-right:12px}[dir=rtl] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-previous-scores li span.aioseo-headline-analyzer-score{margin-left:12px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-previous-scores li span.aioseo-headline-analyzer-score-text{flex-basis:calc(100% - 32px)}.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-has-icon .components-panel__body-toggle .components-panel__icon{position:absolute;top:50%;margin-top:-10px}[dir=ltr] .aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-has-icon .components-panel__body-toggle .components-panel__icon{right:52px}[dir=rtl] .aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-has-icon .components-panel__body-toggle .components-panel__icon{left:52px}.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-has-icon.red .components-panel__body-toggle .components-panel__icon path{fill:#df2a4a}.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-has-icon.orange .components-panel__body-toggle .components-panel__icon path{fill:#f18200}.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-has-icon.green .components-panel__body-toggle .components-panel__icon path{fill:#00aa63}.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-has-icon-alternative{position:relative}.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-has-icon-alternative .aioseo-headline-analyzer-panel-icon-alternative{position:absolute;top:14px;font-weight:600}[dir=ltr] .aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-has-icon-alternative .aioseo-headline-analyzer-panel-icon-alternative{right:40px}[dir=rtl] .aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-has-icon-alternative .aioseo-headline-analyzer-panel-icon-alternative{left:40px}.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-word-balance .components-panel__row,.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-sentiment .components-panel__row,.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-types .components-panel__row,.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-character-count .components-panel__row,.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-word-count .components-panel__row,.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-beginning-ending-words .components-panel__row,.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-search-preview .components-panel__row{display:block}.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-word-balance .components-panel__row h4,.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-sentiment .components-panel__row h4,.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-types .components-panel__row h4,.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-character-count .components-panel__row h4,.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-word-count .components-panel__row h4,.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-beginning-ending-words .components-panel__row h4,.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-search-preview .components-panel__row h4{font-size:14px;color:#141b38;font-weight:600;margin:0 0 12px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block{margin-top:12px;border-bottom:1px solid #e8e8eb}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block h5{font-size:12px;line-height:18px;color:#434960;margin-top:0;margin-bottom:8px;font-weight:600}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block .aioseo-headline-analyzer-words-block-data{overflow:hidden;display:flex;flex-direction:row}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block .aioseo-headline-analyzer-words-block-data span{display:block;flex-basis:70%;z-index:0}[dir=ltr] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block .aioseo-headline-analyzer-words-block-data span{float:left}[dir=rtl] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block .aioseo-headline-analyzer-words-block-data span{float:right}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block .aioseo-headline-analyzer-words-block-data span.aioseo-headline-analyzer-words-block-percentage{font-size:24px;line-height:30px;font-weight:600;flex-basis:25%;justify-content:flex-start;align-items:center;display:flex}[dir=ltr] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block .aioseo-headline-analyzer-words-block-data span.aioseo-headline-analyzer-words-block-percentage{margin-right:11px}[dir=rtl] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block .aioseo-headline-analyzer-words-block-data span.aioseo-headline-analyzer-words-block-percentage{margin-left:11px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block .aioseo-headline-analyzer-words-block-data span.aioseo-headline-analyzer-words-block-goal{width:100%;font-size:14px;line-height:22px;font-weight:400;color:#8c8f9a}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block .aioseo-headline-analyzer-words-block-data span.aioseo-headline-analyzer-words-block-progressbar{width:100%;position:relative;height:4px;margin-top:4px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block .aioseo-headline-analyzer-words-block-data span.aioseo-headline-analyzer-words-block-progressbar .aioseo-headline-analyzer-progressbar-bg{width:100%;background:#eef0f2;height:4px;z-index:9;position:absolute;top:0;border-radius:30px}[dir=ltr] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block .aioseo-headline-analyzer-words-block-data span.aioseo-headline-analyzer-words-block-progressbar .aioseo-headline-analyzer-progressbar-bg{left:0}[dir=rtl] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block .aioseo-headline-analyzer-words-block-data span.aioseo-headline-analyzer-words-block-progressbar .aioseo-headline-analyzer-progressbar-bg{right:0}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block .aioseo-headline-analyzer-words-block-data span.aioseo-headline-analyzer-words-block-progressbar .aioseo-headline-analyzer-progressbar-part{position:absolute;height:4px;top:0;z-index:10;border-radius:30px}[dir=ltr] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block .aioseo-headline-analyzer-words-block-data span.aioseo-headline-analyzer-words-block-progressbar .aioseo-headline-analyzer-progressbar-part{left:0}[dir=rtl] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block .aioseo-headline-analyzer-words-block-data span.aioseo-headline-analyzer-words-block-progressbar .aioseo-headline-analyzer-progressbar-part{right:0}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block .aioseo-headline-analyzer-words-tag-list{margin:8px 0 0;padding:0;list-style:none;display:block}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block .aioseo-headline-analyzer-words-tag-list li{display:inline-block;font-size:12px;line-height:18px;font-weight:600;color:#434960;background:#f3f4f5;border-radius:3px;padding:1px 8px}[dir=ltr] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block .aioseo-headline-analyzer-words-tag-list li{margin:0 8px 8px 0}[dir=rtl] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block .aioseo-headline-analyzer-words-tag-list li{margin:0 0 8px 8px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-words-block .aioseo-headline-analyzer-words-guideline{color:#4f4f4f}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-character-length>span,.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-word-length>span{width:34px;height:50px;display:inline-block;background:#e8e8eb;text-align:center;line-height:50px;font-size:24px;color:#2c324c;font-weight:600;border-radius:4px}[dir=ltr] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-character-length>span,[dir=ltr] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-word-length>span{margin-right:2px}[dir=rtl] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-character-length>span,[dir=rtl] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-word-length>span{margin-left:2px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-character-length>span.character-zero,.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-word-length>span.character-zero{color:#d0d1d7}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-status-on-character-length,.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-status-on-word-length{display:block;font-weight:600;font-size:14px;color:#141b38;margin-bottom:12px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-character-count-container,.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-word-counter{margin-bottom:12px}[dir=ltr] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-character-count p{text-align:left}[dir=rtl] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-character-count p{text-align:right}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-character-count .aioseo-headline-analyzer-pie-chart-container{position:relative;width:200px;height:80px;margin:0 auto 16px}[dir=ltr] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-character-count .aioseo-headline-analyzer-pie-chart-container{margin-left:-40px}[dir=rtl] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-character-count .aioseo-headline-analyzer-pie-chart-container{margin-right:-40px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-character-count .aioseo-headline-analyzer-pie-chart-container .aioseo-headline-analyzer-character-length{position:absolute;top:50%;left:0;right:0;text-align:center;font-size:30px;line-height:0%;z-index:10}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-character-count .aioseo-headline-analyzer-pie-chart-container .aioseo-headline-analyzer-status-on-character-length{position:absolute;top:50%;font-size:16px;color:#141b38;margin:-9px 0 0;font-weight:600;width:130px}[dir=ltr] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-character-count .aioseo-headline-analyzer-pie-chart-container .aioseo-headline-analyzer-status-on-character-length{left:144px}[dir=rtl] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-character-count .aioseo-headline-analyzer-pie-chart-container .aioseo-headline-analyzer-status-on-character-length{right:144px}[dir=ltr] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-word-count p{text-align:left}[dir=rtl] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-word-count p{text-align:right}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-word-count .aioseo-headline-analyzer-pie-chart-container{position:relative;width:200px;height:80px;margin:0 auto 16px}[dir=ltr] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-word-count .aioseo-headline-analyzer-pie-chart-container{margin-left:-40px}[dir=rtl] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-word-count .aioseo-headline-analyzer-pie-chart-container{margin-right:-40px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-word-count .aioseo-headline-analyzer-pie-chart-container .aioseo-headline-analyzer-word-length{position:absolute;top:50%;left:0;right:0;text-align:center;font-size:30px;line-height:0%;z-index:10}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-word-count .aioseo-headline-analyzer-pie-chart-container .aioseo-headline-analyzer-status-on-word-length{position:absolute;top:50%;font-size:14px;color:#141b38;margin:-9px 0 0;font-weight:600;width:130px}[dir=ltr] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-word-count .aioseo-headline-analyzer-pie-chart-container .aioseo-headline-analyzer-status-on-word-length{left:144px}[dir=rtl] .aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-word-count .aioseo-headline-analyzer-pie-chart-container .aioseo-headline-analyzer-status-on-word-length{right:144px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-beginning-ending-words .aioseo-headline-analyzer-words{display:block;margin-bottom:12px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-beginning-ending-words .aioseo-headline-analyzer-words span{font-size:12px;line-height:18px;color:#434960;background:#f3f4f5;border-radius:3px;padding:1px 8px;font-weight:600;display:inline-block}.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-beginning-ending-words .aioseo-headline-analyzer-word-ending-title,.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-beginning-ending-words .aioseo-headline-analyzer-word-begining-title{font-weight:600;font-size:14px;color:#141b38;list-style:none;margin:0 0 8px}.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-beginning-ending-words .aioseo-headline-analyzer-word-ending-title li,.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-beginning-ending-words .aioseo-headline-analyzer-word-begining-title li{margin:0}.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-search-preview .components-panel__row .aioseo-headline-analyzer-search-prevew-wrap{background:#fff;border:.837954px solid #e8e8eb;padding:8px;margin-bottom:16px}.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-search-preview .components-panel__row h4{color:#1a0dab;font-size:16px;line-height:24px;margin-top:0!important;text-transform:none;margin-bottom:8px;font-weight:400}.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-search-preview .components-panel__row .aioseo-headline-analyzer-post-url{font-size:14px;line-height:22px;margin-bottom:8px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-search-preview .components-panel__row .aioseo-headline-analyzer-post-url a{color:#3c4043;text-decoration:none}.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-search-preview .components-panel__row .aioseo-headline-analyzer-post-url a:hover{opacity:.8}.aioseo-headline-analyzer-wrapper .components-panel__body.aioseo-headline-analyzer-panel-search-preview .components-panel__row p{font-size:14px;color:#434960;line-height:125%;margin:0}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-types .aioseo-headline-analyzer-panel-types-title{display:flex;justify-content:space-between;align-items:space-between;width:100%;color:#141b38}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-types .aioseo-headline-analyzer-panel-types-title span{color:#141b38;font-size:13px}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-types p a{color:#005ae0;text-decoration:none}.aioseo-headline-analyzer-wrapper .aioseo-headline-analyzer-panel-types p a span{text-decoration:underline}.edit-post-header__settings button.components-button[aioseo-button-color]{display:flex;align-items:center}.edit-post-header__settings button.components-button[aioseo-button-color] svg{max-width:22px;max-height:20px}[dir=ltr] .edit-post-header__settings button.components-button[aioseo-button-color] svg{margin-right:8px}[dir=rtl] .edit-post-header__settings button.components-button[aioseo-button-color] svg{margin-left:8px}.edit-post-header__settings button.components-button[aioseo-button-color] span{color:#fff;font-weight:600}.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=red]{border:1px solid #df2a4a}.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=red]:active,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=red].is-pressed{background:#df2a4a!important}.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=red]:active svg path,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=red].is-pressed svg path{fill:#fff}.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=red] svg path{fill:#df2a4a}.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=red] span{color:#df2a4a}.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=orange]{border:1px solid #f18200}.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=orange]:active,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=orange].is-pressed{background:#f18200!important}.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=orange]:active svg path,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=orange].is-pressed svg path{fill:#fff}.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=orange] svg path{fill:#f08629}.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=orange] span{color:#f18200}.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=green]{border:1px solid #1ec185}.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=green]:active,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=green].is-pressed{background:#1ec185!important}.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=green]:active svg path,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=green].is-pressed svg path{fill:#fff}.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=green] svg path{fill:#1ec185}.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=green] span{color:#1bb17a}.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=red]:active,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=red].is-pressed,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=green]:active,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=green].is-pressed,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=orange]:active,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=orange].is-pressed{box-shadow:none!important}.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=red]:active svg path,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=red].is-pressed svg path,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=green]:active svg path,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=green].is-pressed svg path,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=orange]:active svg path,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=orange].is-pressed svg path{fill:#fff!important}.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=red]:active span,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=red].is-pressed span,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=green]:active span,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=green].is-pressed span,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=orange]:active span,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=orange].is-pressed span{color:#fff}.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=red]:focus,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=green]:focus,.edit-post-header__settings button.components-button[aioseo-button-color][aioseo-button-color=orange]:focus{box-shadow:none!important}.edit-post-sidebar{scroll-behavior:smooth}.aioseo-headline-analyzer-current-score-content>p{font-weight:600}.aioseo-headline-analyzer-bottom-notice{padding:8px;background:#e6eefc;margin:16px;border-radius:3px;color:#141b38}.aioseo-headline-analyzer-bottom-notice p{text-align:start;margin-bottom:0}.aioseo-headline-analyzer-bottom-notice p a{color:#005ae0;text-decoration:none}.aioseo-headline-analyzer-bottom-notice p a span{text-decoration:underline}.aioseo-donut-container{display:flex;align-items:center;justify-content:center}.aioseo-donut-container .aioseo-seo-headline-analyzer-score__circle{animation:aioseo-seo-site-score-fill 1s reverse;transform-origin:center}[dir=ltr] .aioseo-donut-container .aioseo-seo-headline-analyzer-score__circle{transform:rotate(-180deg)}[dir=rtl] .aioseo-donut-container .aioseo-seo-headline-analyzer-score__circle{transform:rotate(180deg)} all-in-one-seo-pack/dist/Lite/assets/css/HeadlineAnalyzer.CbU1Nr2W.css000064400000014430151222736000021324 0ustar00.aioseo-headline-result{--aioseo-gutter: 20px;--total-gap-width: calc(1 * var(--aioseo-gutter));--aioseo-col-max-width: calc((100% - var(--total-gap-width)) / 2);display:grid;gap:var(--aioseo-gutter);grid-template-columns:repeat(auto-fill,minmax(max(255px,var(--aioseo-col-max-width)),1fr))}.aioseo-headline-result>*{max-width:none}.aioseo-headline-result .box{padding:20px;border:1px solid #E8E8EB;display:flex;color:#434960}@media (max-width: 1200px){.aioseo-headline-result .box{padding:20px}}.aioseo-headline-result .box-icon{flex:0 0 90px;padding-top:5px;line-height:0;text-align:center}[dir=ltr] .aioseo-headline-result .box-icon{margin-right:20px}[dir=rtl] .aioseo-headline-result .box-icon{margin-left:20px}@media (max-width: 1200px){.aioseo-headline-result .box-icon{flex:0 0 40px}[dir=ltr] .aioseo-headline-result .box-icon{margin-right:12px}[dir=rtl] .aioseo-headline-result .box-icon{margin-left:12px}}.aioseo-headline-result .box-icon>svg{width:52px}.aioseo-headline-result .box-icon .score{position:relative}.aioseo-headline-result .box-icon .score .number{position:absolute;left:0;top:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#141b38;font-weight:700;font-size:32px;line-height:40px}@media (max-width: 1200px){.aioseo-headline-result .box-icon .score .number{font-size:16px}}.aioseo-headline-result .box-title{color:#000;font-weight:600;margin-bottom:4px;font-size:14px;line-height:22px}.aioseo-headline-result .box-result{margin-bottom:12px;display:inline-block;font-weight:600;font-size:14px;line-height:22px}.aioseo-headline-result .box-result.has-icon{display:flex;align-items:center;line-height:1}.aioseo-headline-result .box-result.has-icon svg{width:16px}[dir=ltr] .aioseo-headline-result .box-result.has-icon svg{margin-right:5px}[dir=rtl] .aioseo-headline-result .box-result.has-icon svg{margin-left:5px}.aioseo-headline-result .box-guideline{margin:0}.aioseo-headline-result .box-guideline strong{display:inline}.aioseo-headline-result .box--large{grid-column:1/-1;display:flex;align-items:center;flex-wrap:wrap}.aioseo-headline-result .box--large .box-title{margin-bottom:0}[dir=ltr] .aioseo-headline-result .box--large .box-title{margin-right:16px}[dir=rtl] .aioseo-headline-result .box--large .box-title{margin-left:16px}.aioseo-headline-result .box--large .box-icon{flex:0 0 auto;padding-top:0}[dir=ltr] .aioseo-headline-result .box--large .box-icon{margin-right:6px}[dir=rtl] .aioseo-headline-result .box--large .box-icon{margin-left:6px}.aioseo-headline-result .box--large .box-icon svg{width:20px}.aioseo-headline-result .box--large .box-result{font-size:14px;line-height:150%;margin-bottom:0}.aioseo-headline-result .words{flex:1 0 100%;margin-top:20px;display:grid;grid-template-columns:repeat(4,1fr);gap:50px}@media (max-width: 1280px){.aioseo-headline-result .words{gap:20px;grid-template-columns:repeat(2,1fr)}}@media (max-width: 480px){.aioseo-headline-result .words{grid-template-columns:repeat(1,1fr)}}.aioseo-headline-result .words-title{font-weight:600;color:#434960;margin-bottom:12px}.aioseo-headline-result .words-percent{font-weight:600;font-size:32px;line-height:40px;line-height:100%;margin-bottom:4px}.aioseo-headline-result .words-goal{color:#8c8f9a;margin-bottom:4px}.aioseo-headline-result .words .bar{max-width:123px}@media (max-width: 782px){.aioseo-headline-result .words .bar{width:100%}}.aioseo-headline-result .bar{position:relative;height:5px;width:100%;background:#dcdde1;border-radius:50px;overflow:hidden;margin-bottom:12px}.aioseo-headline-result .bar-progress{position:absolute;top:0;height:100%;min-width:3px}[dir=ltr] .aioseo-headline-result .bar-progress{left:0}[dir=rtl] .aioseo-headline-result .bar-progress{right:0}.aioseo-headline-result .bar-progress.green{background-color:#00aa63}.aioseo-headline-result .bar-progress.blue{background-color:#005ae0}.aioseo-headline-result .bar-progress.orange{background-color:#f28a10}.aioseo-headline-result .bar-progress.red{background-color:#df2a4a}.aioseo-headline-result .keywords{display:flex;flex-wrap:wrap;gap:8px}.aioseo-headline-result .keywords-item{font-size:12px;line-height:18px;color:#434960;font-weight:600;background:#f3f4f5;padding:0 8px;border-radius:3px;display:inline-block}.aioseo-headline-result .aioseo-tooltip{display:inline-block;vertical-align:middle}[dir=ltr] .aioseo-headline-result .aioseo-tooltip{margin:0 0 0 5px}[dir=rtl] .aioseo-headline-result .aioseo-tooltip{margin:0 5px 0 0}.aioseo-headline-result .green{color:#00aa63;fill:#00aa63}.aioseo-headline-result .blue{color:#005ae0;fill:#005ae0}.aioseo-headline-result .orange{color:#f28a10;fill:#f28a10}.aioseo-headline-result .red{color:#df2a4a;fill:#df2a4a}.aioseo-headline-score{position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:0 30px;max-width:25%}@media (max-width: 1280px){.aioseo-headline-score{padding:0;max-width:100%}}.aioseo-headline-score-score{position:relative;min-width:175px;max-width:200px;margin-bottom:16px;margin-right:auto;margin-left:auto}.aioseo-headline-score-score svg{width:100%;height:auto}.aioseo-headline-score-overall{font-size:16px;font-weight:700;text-align:center;margin-bottom:12px}.aioseo-headline-score-recommendations{font-size:14px;line-height:150%;text-align:center;max-width:220px}.aioseo-headline-analyzer .aioseo-trash{width:20px;height:20px;color:#8c8f9a;cursor:pointer}[dir=ltr] .aioseo-headline-analyzer .aioseo-trash{margin-left:14px}[dir=rtl] .aioseo-headline-analyzer .aioseo-trash{margin-right:14px}.aioseo-headline-analyzer .aioseo-trash:hover{color:#434960}.aioseo-headline-analyzer .headline-result-main{display:flex;flex-direction:row;font-size:14px;align-items:flex-start;color:#141b38}.aioseo-headline-analyzer .headline-result-main .headline-result-body{flex:1;min-width:0}[dir=ltr] .aioseo-headline-analyzer .headline-result-main .headline-result-body{margin-left:30px}[dir=rtl] .aioseo-headline-analyzer .headline-result-main .headline-result-body{margin-right:30px}@media (max-width: 782px){[dir=ltr] .aioseo-headline-analyzer .headline-result-main .headline-result-body{margin-left:0}[dir=rtl] .aioseo-headline-analyzer .headline-result-main .headline-result-body{margin-right:0}}@media (max-width: 782px){.aioseo-headline-analyzer .headline-result-main{display:block}.aioseo-headline-analyzer .headline-result-main .aioseo-headline-score{margin-bottom:30px}} all-in-one-seo-pack/dist/Lite/assets/css/HighlightToggle.BRUEnYh3.css000064400000007362151222736000021220 0ustar00.aioseo-radio{display:inline-flex;align-items:center}.aioseo-radio .form-radio-wrapper{display:flex}[dir=ltr] .aioseo-radio .form-radio-wrapper{margin-right:10px}[dir=rtl] .aioseo-radio .form-radio-wrapper{margin-left:10px}.aioseo-radio.small .form-radio{width:16px;height:16px}.aioseo-radio.small.type-2 .form-radio span:before{width:inherit;height:inherit}.aioseo-radio.small.type-2 .form-radio span:after{bottom:4px;height:6px;width:6px}[dir=ltr] .aioseo-radio.small.type-2 .form-radio span:after{left:4px}[dir=rtl] .aioseo-radio.small.type-2 .form-radio span:after{right:4px}.aioseo-radio.medium .form-radio{width:16px;height:16px}.aioseo-radio.medium .form-radio .fancy-radio svg{width:10px;height:10px}.aioseo-radio.medium.type-1 .form-radio span:before{height:14px;width:14px;line-height:16px}.aioseo-radio.medium.type-2 .form-radio span:before{height:12px;width:12px;line-height:16px}.aioseo-radio.medium.type-2 .form-radio span:after{height:6px;width:6px;bottom:4px}[dir=ltr] .aioseo-radio.medium.type-2 .form-radio span:after{left:4px}[dir=rtl] .aioseo-radio.medium.type-2 .form-radio span:after{right:4px}.aioseo-radio .form-radio{position:relative;display:inline-block;width:24px;height:24px;color:#fff;vertical-align:bottom;text-align:center}.aioseo-radio .form-radio input{opacity:0}.aioseo-radio .form-radio input:checked+.fancy-radio{background:#005ae0;border-color:#005ae0}.aioseo-radio .form-radio input:checked+.fancy-radio:before{background:transparent}.aioseo-radio .form-radio input:checked+.fancy-radio:after{display:block}.aioseo-radio .form-radio input:disabled+.fancy-radio{cursor:default}.aioseo-radio .form-radio input:focus+.fancy-radio{border-color:#005ae0;box-shadow:0 0 0 1px #005ae0}.aioseo-radio .form-radio .fancy-radio{border-radius:50%}.aioseo-radio .form-radio .fancy-radio svg{color:#fff;width:16px;height:16px}.aioseo-radio .form-radio span{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;transition:.2s;border-radius:50%;display:flex;align-items:center;justify-content:center}.aioseo-radio .form-radio span:before{position:absolute;content:"";height:22px;width:22px;bottom:1px;transition:.2s;font-size:16px;line-height:24px;border-radius:50%}[dir=ltr] .aioseo-radio .form-radio span:before{left:1px}[dir=rtl] .aioseo-radio .form-radio span:before{right:1px}.aioseo-radio.type-1 .form-radio span{background-color:#f3f4f5}.aioseo-radio.type-1 .form-radio span:before{background-color:#f3f4f5}.aioseo-radio.type-2 .form-radio span{border:1px solid #D0D1D7;background-color:#fff}.aioseo-radio.type-2 .form-radio span:before{background-color:#fff}.aioseo-radio.type-2 .form-radio span:after{display:none;position:absolute;content:"";height:10px;width:10px;bottom:8px;background-color:#fff;transition:.2s;border-radius:50%}[dir=ltr] .aioseo-radio.type-2 .form-radio span:after{left:8px}[dir=rtl] .aioseo-radio.type-2 .form-radio span:after{right:8px}.aioseo-radio.disabled{cursor:default}.aioseo-radio.disabled.type-2 .form-radio input:checked+.fancy-radio{background-color:#e8e8eb;border-color:#d0d1d7}.aioseo-radio.disabled.type-2 .form-radio span{background-color:#e8e8eb}.aioseo-radio.disabled.type-2 .form-radio span:before{background-color:#e8e8eb}.aioseo-radio.disabled.type-2 .form-radio span:after{background-color:#8c8f9a}.aioseo-highlight-toggle{border:1px solid #E8E8EB;border-radius:3px;min-height:40px;display:flex;align-items:center;padding:5px 10px;cursor:pointer}.aioseo-highlight-toggle>*{cursor:pointer;-webkit-user-select:none;user-select:none}.aioseo-highlight-toggle.active{border-color:#005ae0;box-shadow:0 5px 10px #005ae01a}.aioseo-highlight-toggle.medium{min-height:40px}.aioseo-highlight-toggle .icon{display:flex;align-items:center}[dir=ltr] .aioseo-highlight-toggle .icon{margin-right:5px}[dir=rtl] .aioseo-highlight-toggle .icon{margin-left:5px} all-in-one-seo-pack/dist/Lite/assets/css/HtaccessEditor.BOCzul__.css000064400000000177151222736000021205 0ustar00.aioseo-tools-htaccess-editor .aioseo-alert{margin-bottom:20px}.aioseo-tools-htaccess-editor .htaccess-editor{margin-top:10px} all-in-one-seo-pack/dist/Lite/assets/css/HtmlSitemap.DLtWoqZz.css000064400000001552151222736000020570 0ustar00.aioseo-ui-element-slider svg.aioseo-new-page{width:100%;height:auto;max-width:45px}.aioseo-ui-element-slider .new-page .aioseo-row{margin:0}.aioseo-ui-element-slider .new-page svg.aioseo-external{width:14px;height:14px}[dir=ltr] .aioseo-ui-element-slider .new-page svg.aioseo-external{margin-right:10px}[dir=rtl] .aioseo-ui-element-slider .new-page svg.aioseo-external{margin-left:10px}.aioseo-ui-element-slider .new-page .aioseo-description{color:#434960}.aioseo-ui-element-slider .new-page button.aioseo-html-sitemaps-disabled-button{border:1px solid #DCDDE1;color:#8c8f9a;background-color:#f3f4f5;cursor:default}.aioseo-ui-element-slider .new-page .aioseo-alert{width:100%;margin:8px 8px 0}.aioseo-ui-element-slider .new-page .aioseo-loading-spinner{position:relative}.aioseo-app .aioseo-html-sitemap .aioseo-html-sitemap-settings .aioseo-select.medium{max-width:300px} all-in-one-seo-pack/dist/Lite/assets/css/HtmlTagsEditor.DKm8tXt7.css000064400000003277151222736000021075 0ustar00.aioseo-add-template-tag{display:flex;align-items:center;border-radius:3px;padding:2px 8px;color:#141b38;font-size:12px;line-height:18px;border:1px solid #D0D1D7;cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:600}.aioseo-add-template-tag:hover{background-color:#f3f4f5}.aioseo-add-template-tag svg.aioseo-plus{width:10px;height:10px;color:#005ae0}[dir=ltr] .aioseo-add-template-tag svg.aioseo-plus{margin-right:4px}[dir=rtl] .aioseo-add-template-tag svg.aioseo-plus{margin-left:4px}.aioseo-emoji-picker{position:relative;font-size:0}.aioseo-emoji-picker em-emoji-picker{font-size:initial;--rgb-color: 20, 27, 56;--font-family: inherit;--border-radius: 4px;--shadow: 0px 3px 15px rgb(0 0 0 / 10%);border:1px solid #D0D1D7;height:350px;min-height:400px;max-height:400px;max-width:298px;position:absolute;top:4px;z-index:1001}[dir=ltr] .aioseo-emoji-picker em-emoji-picker{left:0}[dir=rtl] .aioseo-emoji-picker em-emoji-picker{right:0}.aioseo-html-tags-editor .no-access{margin-bottom:20px}.aioseo-html-tags-editor .aioseo-description.tags-description{margin:0 0 12px}.aioseo-html-tags-editor .add-tags{display:flex;align-items:center;margin-bottom:12px;gap:8px}.aioseo-html-tags-editor .add-tags button{height:24px;background:#fff;border-radius:3px;padding:0 3px;line-height:24px;color:#141b38;font-size:14px;border:1px solid #D0D1D7;cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:400}.aioseo-html-tags-editor .add-tags button:hover{background-color:#f3f4f5}.aioseo-html-tags-editor .add-tags a{font-size:12px;line-height:18px}[dir=ltr] .aioseo-html-tags-editor .add-tags a.no-underline{padding-left:10px}[dir=rtl] .aioseo-html-tags-editor .add-tags a.no-underline{padding-right:10px} all-in-one-seo-pack/dist/Lite/assets/css/ImageUploader.BWY-2-NB.css000064400000003173151222736000020457 0ustar00.aioseo-image-uploader[data-v-8f427e02]{display:grid;gap:8px}.aioseo-image-uploader--no-icon svg.aioseo-circle-plus[data-v-8f427e02]{display:none}.aioseo-image-uploader--has-image[data-v-8f427e02] .aioseo-input input{text-overflow:ellipsis}[dir=ltr] .aioseo-image-uploader--has-image[data-v-8f427e02] .aioseo-input input{padding-right:45px}[dir=rtl] .aioseo-image-uploader--has-image[data-v-8f427e02] .aioseo-input input{padding-left:45px}.aioseo-image-uploader .image-upload[data-v-8f427e02]{display:flex;flex-wrap:wrap;gap:10px}.aioseo-image-uploader .image-upload .aioseo-input-container[data-v-8f427e02]{flex:1 1 50%;min-width:50%;max-width:445px}.aioseo-image-uploader .image-upload .aioseo-input-container[data-v-8f427e02] .aioseo-input{max-width:100%}.aioseo-image-uploader .image-upload .insert-image[data-v-8f427e02]{flex:1 1 auto;max-width:250px}[dir=ltr] .aioseo-image-uploader .image-upload .insert-image svg.aioseo-circle-plus[data-v-8f427e02]{margin-right:8px}[dir=rtl] .aioseo-image-uploader .image-upload .insert-image svg.aioseo-circle-plus[data-v-8f427e02]{margin-left:8px}.aioseo-image-uploader .image-upload .remove-image[data-v-8f427e02]{padding-left:6px;padding-right:6px;position:absolute;top:50%;transform:translateY(-50%);height:calc(100% - 8px)}[dir=ltr] .aioseo-image-uploader .image-upload .remove-image[data-v-8f427e02]{right:4px}[dir=rtl] .aioseo-image-uploader .image-upload .remove-image[data-v-8f427e02]{left:4px}.aioseo-image-uploader .aioseo-description[data-v-8f427e02]{margin:0}.aioseo-image-uploader img.image-preview[data-v-8f427e02]{margin:0;max-height:var(--60602498);max-width:var(--a69ae8ce);height:auto;width:auto} all-in-one-seo-pack/dist/Lite/assets/css/Import.BC2EGt2-.css000064400000000322151222736000017214 0ustar00.aioseo-local-seo-import-others-lite{position:relative}.aioseo-local-seo-import-others-lite.aioseo-card .content{padding-bottom:340px}.aioseo-local-seo-import-others-lite .aioseo-button.import{margin-top:16px} all-in-one-seo-pack/dist/Lite/assets/css/Import.CSfeL6Ix.css000064400000000507151222736000017437 0ustar00.aioseo-wizard-import{font-size:14px}.aioseo-wizard-import .plugins{--aioseo-gutter: 16px}.aioseo-wizard-import .plugins img{width:25px;height:auto}.aioseo-wizard-import .plugins img.seopress,.aioseo-wizard-import .plugins img.seopress-pro{width:20px;margin:0 5px}.aioseo-wizard-import .go-back a{color:#434960;font-size:14px} all-in-one-seo-pack/dist/Lite/assets/css/ImportExport.D43j7LGH.css000064400000011647151222736000020453 0ustar00.aioseo-backup-settings .aioseo-alert{margin-bottom:20px}.aioseo-backup-settings .backups-table{border:1px solid #D0D1D7;border-radius:3px;margin-bottom:20px;font-size:16px}.aioseo-backup-settings .backups-table .backup-actions{max-width:50px}.aioseo-backup-settings .backups-table .backup-actions .aioseo-tooltip{display:inline-block;margin:0}.aioseo-backup-settings .backups-table .backups-rows{font-size:14px}.aioseo-backup-settings .backups-table .backups-rows .backup-row{background-color:#fff;height:56px;display:flex;align-items:center;padding:0 16px}.aioseo-backup-settings .backups-table .backups-rows .backup-row:last-of-type{border-radius:0 0 3px 3px}.aioseo-backup-settings .backups-table .backups-rows .backup-row.even{background-color:#f9f9fa}.aioseo-backup-settings .backups-table .backups-rows .backup-row>div{flex:1 0 auto}[dir=ltr] .aioseo-backup-settings .backups-table .backups-rows .backup-row>div{padding-right:30px}[dir=rtl] .aioseo-backup-settings .backups-table .backups-rows .backup-row>div{padding-left:30px}[dir=ltr] .aioseo-backup-settings .backups-table .backups-rows .backup-row>div:last-child{padding-right:0}[dir=rtl] .aioseo-backup-settings .backups-table .backups-rows .backup-row>div:last-child{padding-left:0}.aioseo-backup-settings .backups-table .backups-rows .backup-row .backup-actions svg{width:20px;height:20px;color:#8c8f9a;cursor:pointer;transition:color .1s ease}.aioseo-backup-settings .backups-table .backups-rows .backup-row .backup-actions svg.aioseo-trash:hover{color:#df2a4a}[dir=ltr] .aioseo-backup-settings .backups-table .backups-rows .backup-row .backup-actions svg.aioseo-refresh{margin-right:10px}[dir=rtl] .aioseo-backup-settings .backups-table .backups-rows .backup-row .backup-actions svg.aioseo-refresh{margin-left:10px}.aioseo-backup-settings .backups-table .backups-rows .backup-row .backup-actions svg.aioseo-refresh:hover{color:#00aa63}.aioseo-backup-settings svg.aioseo-circle-plus{width:14px;height:14px}[dir=ltr] .aioseo-backup-settings svg.aioseo-circle-plus{margin-right:10px}[dir=rtl] .aioseo-backup-settings svg.aioseo-circle-plus{margin-left:10px}.aioseo-core-backup-settings-modal .aioseo-modal-body{padding:20px 40px 40px;display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative}.aioseo-core-backup-settings-modal .aioseo-modal-body h3{font-size:20px;margin-bottom:16px}.aioseo-core-backup-settings-modal .aioseo-modal-body .reset-description{font-size:16px;color:#141b38;margin-bottom:16px;text-align:center;max-width:515px}.aioseo-core-backup-settings-modal .aioseo-modal-body button.close{position:absolute;top:11px;width:24px;height:24px;background-color:#fff;border:none;display:flex;align-items:center}[dir=ltr] .aioseo-core-backup-settings-modal .aioseo-modal-body button.close{right:11px}[dir=rtl] .aioseo-core-backup-settings-modal .aioseo-modal-body button.close{left:11px}.aioseo-core-backup-settings-modal .aioseo-modal-body button.close svg.aioseo-close{cursor:pointer;width:14px;height:14px}.aioseo-core-backup-settings-modal .aioseo-modal-body .aioseo-description{max-width:510px;text-align:center}.aioseo-core-backup-settings-modal .aioseo-modal-body .aioseo-button:not(.close){margin-top:16px}.aioseo-export-settings{flex:1;font-size:16px}.aioseo-export-settings .select-site{font-size:16px;font-weight:700;margin-bottom:5px}.aioseo-export-settings .aioseo-button.import{margin-top:24px}.aioseo-export-settings .export-settings{border-bottom-width:0}.aioseo-export-settings .export-settings .export-all{padding-bottom:12px;font-weight:600;border-bottom:1px solid #E8E8EB}.aioseo-export-settings .export-post-types{border-bottom-width:0}.aioseo-export-settings .export-post-types .export-all{padding-bottom:12px;font-weight:600;border-bottom:1px solid #E8E8EB}.aioseo-import-aioseo .import-alert{margin-bottom:20px}.aioseo-import-aioseo .select-site{font-size:16px;font-weight:700;margin-bottom:5px}.aioseo-import-aioseo .file-upload{display:flex;gap:8px}[dir=ltr] .aioseo-import-aioseo .file-upload>.aioseo-input{margin-right:10px}[dir=rtl] .aioseo-import-aioseo .file-upload>.aioseo-input{margin-left:10px}.aioseo-import-aioseo .aioseo-button.import{margin-top:20px}.aioseo-import-others{flex:1;font-size:16px}.aioseo-import-others .import-success,.aioseo-import-others .import-error{margin-bottom:20px}.aioseo-import-others .select-site{font-size:16px;font-weight:700;margin-bottom:5px}.aioseo-import-others .aioseo-button.import{margin-top:16px}.aioseo-import-others .import-settings{margin-top:20px}.aioseo-import-others .import-plugin-label{display:flex}.aioseo-import-others .import-plugin-label span:first-child{flex:1}.aioseo-tools-import-export{position:relative}.aioseo-tools-import-export .aioseo-row .aioseo-card{margin:0}.aioseo-tools-import-export .aioseo-row .aioseo-col{display:flex;flex-direction:column;gap:var(--aioseo-gutter)}.aioseo-tools-import-export .aioseo-row+.aioseo-row{margin-top:var(--aioseo-gutter)}.aioseo-tools-import-export .export-post-types{--aioseo-gutter: 12px} all-in-one-seo-pack/dist/Lite/assets/css/index.8QbVhAsu.css000064400000053427151222736000017363 0ustar00.aioseo-input-container{position:relative;width:100%}.aioseo-input-container .aioseo-input{width:100%}.aioseo-input-container .aioseo-input.file{position:absolute;top:0;right:0;left:0;bottom:0;margin:0;padding:0}.aioseo-input-container .aioseo-input.file input[type=file]{position:absolute;top:0;right:0;left:0;bottom:0;margin:0;padding:0;cursor:pointer;opacity:0}.aioseo-input-container .aioseo-input.file input[type=file]::-webkit-file-upload-button{visibility:hidden}.aioseo-input-container .aioseo-input.file input[type=file]:focus{box-shadow:none}.aioseo-input-container .aioseo-input input{height:48px;width:100%;background-color:#fff;border:1px solid #D0D1D7;border-radius:3px;padding:12px 16px;font-size:16px;line-height:24px;position:relative;overflow:hidden;margin:0}.aioseo-input-container .aioseo-input input:disabled{background:#f9f9fa}.aioseo-input-container .aioseo-input input:focus{border-color:#005ae0;box-shadow:0 0 0 1px #005ae0}.aioseo-input-container .aioseo-input input::placeholder{color:#8c8f9a}[dir=ltr] .aioseo-input-container .aioseo-input input.prepend{padding-left:50px}[dir=rtl] .aioseo-input-container .aioseo-input input.prepend,[dir=ltr] .aioseo-input-container .aioseo-input input.append{padding-right:50px}[dir=rtl] .aioseo-input-container .aioseo-input input.append{padding-left:50px}.aioseo-input-container .aioseo-input input.small{height:32px;padding:7px 8px;font-size:12px;line-height:18px}[dir=ltr] .aioseo-input-container .aioseo-input input.small.prepend{padding-left:30px}[dir=rtl] .aioseo-input-container .aioseo-input input.small.prepend,[dir=ltr] .aioseo-input-container .aioseo-input input.small.append{padding-right:30px}[dir=rtl] .aioseo-input-container .aioseo-input input.small.append{padding-left:30px}.aioseo-input-container .aioseo-input input.medium{height:40px;padding:9px 12px;font-size:14px;line-height:22px}[dir=ltr] .aioseo-input-container .aioseo-input input.medium.prepend{padding-left:35px}[dir=rtl] .aioseo-input-container .aioseo-input input.medium.prepend,[dir=ltr] .aioseo-input-container .aioseo-input input.medium.append{padding-right:35px}[dir=rtl] .aioseo-input-container .aioseo-input input.medium.append{padding-left:35px}.aioseo-input-container .aioseo-input.aioseo-active input{border-color:#00aa63}.aioseo-input-container .aioseo-input.aioseo-active input:active,.aioseo-input-container .aioseo-input.aioseo-active input:focus{box-shadow:0 0 0 1px #00aa63}.aioseo-input-container .aioseo-input.aioseo-active .prepend-icon,.aioseo-input-container .aioseo-input.aioseo-active .append-icon{color:#00aa63}.aioseo-input-container .aioseo-input.aioseo-error input,.aioseo-error .aioseo-input-container .aioseo-input input{border-color:#df2a4a}.aioseo-input-container .aioseo-input.aioseo-error input:active,.aioseo-input-container .aioseo-input.aioseo-error input:focus,.aioseo-error .aioseo-input-container .aioseo-input input:active,.aioseo-error .aioseo-input-container .aioseo-input input:focus{box-shadow:0 0 0 1px #df2a4a}.aioseo-input-container .aioseo-input.aioseo-error .prepend-icon,.aioseo-input-container .aioseo-input.aioseo-error .append-icon,.aioseo-error .aioseo-input-container .aioseo-input .prepend-icon,.aioseo-error .aioseo-input-container .aioseo-input .append-icon{color:#df2a4a}.aioseo-input-container .aioseo-input.aioseo-warning input{border-color:#f18200}.aioseo-input-container .aioseo-input.aioseo-warning input:active,.aioseo-input-container .aioseo-input.aioseo-warning input:focus{box-shadow:0 0 0 1px #f18200}.aioseo-input-container .aioseo-input.aioseo-warning .prepend-icon,.aioseo-input-container .aioseo-input.aioseo-warning .append-icon{color:#f18200}.aioseo-input-container .aioseo-input .prepend-icon{position:absolute;top:0;width:30px;height:100%;color:#d0d1d7;display:flex;align-items:center;z-index:1}[dir=ltr] .aioseo-input-container .aioseo-input .prepend-icon{left:10px}[dir=rtl] .aioseo-input-container .aioseo-input .prepend-icon{right:10px}.aioseo-input-container .aioseo-input .prepend-icon svg{width:30px;height:30px}.aioseo-input-container .aioseo-input .prepend-icon.small{width:20px}.aioseo-input-container .aioseo-input .prepend-icon.small svg{width:10px;height:10px}.aioseo-input-container .aioseo-input .prepend-icon.medium{width:15px}.aioseo-input-container .aioseo-input .prepend-icon.medium svg{width:15px;height:15px}.aioseo-input-container .aioseo-input .append-icon{position:absolute;top:0;height:100%;color:#d0d1d7;display:flex;align-items:center;z-index:1}[dir=ltr] .aioseo-input-container .aioseo-input .append-icon{right:10px}[dir=rtl] .aioseo-input-container .aioseo-input .append-icon{left:10px}.aioseo-input-container .aioseo-input .append-icon svg{width:30px;height:30px}.aioseo-input-container .aioseo-input .append-icon.small{width:10px}.aioseo-input-container .aioseo-input .append-icon.medium{width:15px}.aioseo-input-container .aioseo-input .append-icon.clickable{cursor:pointer;padding:0 5px;background:#f3f4f5;border:1px solid #D0D1D7;color:#434960;width:30px}[dir=ltr] .aioseo-input-container .aioseo-input .append-icon.clickable{right:0;border-radius:0 3px 3px 0}[dir=rtl] .aioseo-input-container .aioseo-input .append-icon.clickable{left:0;border-radius:3px 0 0 3px}.aioseo-input-container .aioseo-input .append-icon.clickable.small{width:15px}.aioseo-input-container .aioseo-input .append-icon.clickable.medium{padding:0 10px;width:40px}.aioseo-input-container .aioseo-input-error{margin-top:10px}fieldset[disabled] .multiselect{pointer-events:none}.multiselect__spinner{position:absolute;top:1px;width:40px;height:38px;background:#fff;display:block}[dir=ltr] .multiselect__spinner{right:1px}[dir=rtl] .multiselect__spinner{left:1px}.multiselect__spinner:after,.multiselect__spinner:before{position:absolute;content:"";top:50%;width:16px;height:16px;border-radius:100%;border-color:#41b883 transparent transparent;border-style:solid;border-width:2px;box-shadow:0 0 0 1px transparent}[dir=ltr] .multiselect__spinner:after,[dir=ltr] .multiselect__spinner:before{left:50%;margin:-8px 0 0 -8px}[dir=rtl] .multiselect__spinner:after,[dir=rtl] .multiselect__spinner:before{right:50%;margin:-8px -8px 0 0}.multiselect__spinner:before{-webkit-animation:spinning 2.4s cubic-bezier(.41,.26,.2,.62);animation:spinning 2.4s cubic-bezier(.41,.26,.2,.62);-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.multiselect__spinner:after{-webkit-animation:spinning 2.4s cubic-bezier(.51,.09,.21,.8);animation:spinning 2.4s cubic-bezier(.51,.09,.21,.8);-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.multiselect__loading-enter-active,.multiselect__loading-leave-active{transition:opacity .4s ease-in-out;opacity:1}.multiselect__loading-enter,.multiselect__loading-leave-active{opacity:0}.multiselect,.multiselect__input,.multiselect__single{font-family:inherit;font-size:16px;touch-action:manipulation}.multiselect{box-sizing:content-box;display:block;position:relative;width:100%;min-height:40px;color:#35495e}[dir=ltr] .multiselect{text-align:left}[dir=rtl] .multiselect{text-align:right}.multiselect *{box-sizing:border-box}.multiselect:focus{outline:none}.multiselect--disabled{background:#ededed;pointer-events:none;opacity:.6}.multiselect--active{z-index:50}.multiselect--active:not(.multiselect--above) .multiselect__current,.multiselect--active:not(.multiselect--above) .multiselect__input,.multiselect--active:not(.multiselect--above) .multiselect__tags{border-bottom-left-radius:0;border-bottom-right-radius:0}[dir=ltr] .multiselect--active .multiselect__select{transform:rotate(180deg)}[dir=rtl] .multiselect--active .multiselect__select{transform:rotate(-180deg)}.multiselect--above.multiselect--active .multiselect__current,.multiselect--above.multiselect--active .multiselect__input,.multiselect--above.multiselect--active .multiselect__tags{border-top-left-radius:0;border-top-right-radius:0}.multiselect__input,.multiselect__single{position:relative;display:inline-block;min-height:20px;line-height:20px;border:none;border-radius:5px;background:#fff;width:100%;transition:border .1s ease;box-sizing:border-box;margin-bottom:8px;vertical-align:top}[dir=ltr] .multiselect__input,[dir=ltr] .multiselect__single{padding:0 0 0 5px}[dir=rtl] .multiselect__input,[dir=rtl] .multiselect__single{padding:0 5px 0 0}.multiselect__input::-moz-placeholder{color:#35495e}.multiselect__input:-ms-input-placeholder{color:#35495e}.multiselect__input::placeholder{color:#35495e}.multiselect__tag~.multiselect__input,.multiselect__tag~.multiselect__single{width:auto}.multiselect__input:hover,.multiselect__single:hover{border-color:#cfcfcf}.multiselect__input:focus,.multiselect__single:focus{border-color:#a8a8a8;outline:none}.multiselect__single{margin-bottom:8px}[dir=ltr] .multiselect__single{padding-left:5px}[dir=rtl] .multiselect__single{padding-right:5px}.multiselect__tags-wrap{display:inline}.multiselect__tags{min-height:40px;display:block;border-radius:5px;border:1px solid #e8e8e8;background:#fff;font-size:14px}[dir=ltr] .multiselect__tags{padding:8px 40px 0 8px}[dir=rtl] .multiselect__tags{padding:8px 8px 0 40px}.multiselect__tag{position:relative;display:inline-block;border-radius:5px;color:#fff;line-height:1;background:#41b883;margin-bottom:5px;white-space:nowrap;overflow:hidden;max-width:100%;text-overflow:ellipsis}[dir=ltr] .multiselect__tag{padding:4px 26px 4px 10px;margin-right:10px}[dir=rtl] .multiselect__tag{padding:4px 10px 4px 26px;margin-left:10px}.multiselect__tag-icon{cursor:pointer;position:absolute;top:0;bottom:0;font-weight:700;font-style:normal;width:22px;text-align:center;line-height:22px;transition:all .2s ease;border-radius:5px}[dir=ltr] .multiselect__tag-icon{margin-left:7px;right:0}[dir=rtl] .multiselect__tag-icon{margin-right:7px;left:0}.multiselect__tag-icon:after{content:"×";color:#266d4d;font-size:14px}.multiselect__tag-icon:focus:after,.multiselect__tag-icon:hover:after{color:#fff}.multiselect__current{min-height:40px;overflow:hidden;padding:8px 12px 0;white-space:nowrap;border-radius:5px;border:1px solid #e8e8e8}[dir=ltr] .multiselect__current{padding-right:30px}[dir=rtl] .multiselect__current{padding-left:30px}.multiselect__current,.multiselect__select{line-height:16px;box-sizing:border-box;display:block;margin:0;text-decoration:none;cursor:pointer}.multiselect__select{position:absolute;width:40px;height:38px;top:1px;padding:4px 8px;text-align:center;transition:transform .2s ease}[dir=ltr] .multiselect__select{right:1px}[dir=rtl] .multiselect__select{left:1px}.multiselect__select:before{position:relative;top:65%;color:#999;margin-top:4px;border-style:solid;border-width:5px 5px 0 5px;border-color:#999 transparent transparent transparent;content:""}[dir=ltr] .multiselect__select:before{right:0}[dir=rtl] .multiselect__select:before{left:0}.multiselect__placeholder{color:#adadad;display:inline-block;margin-bottom:10px;padding-top:2px}.multiselect--active .multiselect__placeholder{display:none}.multiselect__content-wrapper{position:absolute;display:block;background:#fff;width:100%;max-height:240px;overflow:auto;border:1px solid #e8e8e8;border-top:none;border-bottom-left-radius:5px;border-bottom-right-radius:5px;z-index:50;-webkit-overflow-scrolling:touch}.multiselect__content{list-style:none;display:inline-block;padding:0;margin:0;min-width:100%;vertical-align:top}.multiselect--above .multiselect__content-wrapper{bottom:100%;border-radius:5px 5px 0 0;border-bottom:none;border-top:1px solid #e8e8e8}.multiselect__content::-webkit-scrollbar{display:none}.multiselect__element{display:block}.multiselect__option{display:block;padding:12px;min-height:40px;line-height:16px;text-decoration:none;text-transform:none;vertical-align:middle;position:relative;cursor:pointer;white-space:nowrap}.multiselect__option:after{top:0;position:absolute;line-height:40px;font-size:13px}[dir=ltr] .multiselect__option:after{right:0;padding-right:12px;padding-left:20px}[dir=rtl] .multiselect__option:after{left:0;padding-left:12px;padding-right:20px}.multiselect__option--highlight{background:#41b883;outline:none;color:#fff}.multiselect__option--highlight:after{content:attr(data-select);background:#41b883;color:#fff}.multiselect__option--selected{background:#f3f3f3;color:#35495e;font-weight:700}.multiselect__option--selected:after{content:attr(data-selected);color:silver;background:inherit}.multiselect__option--selected.multiselect__option--highlight{background:#ff6a6a;color:#fff}.multiselect__option--selected.multiselect__option--highlight:after{background:#ff6a6a;content:attr(data-deselect);color:#fff}.multiselect--disabled .multiselect__current,.multiselect--disabled .multiselect__select{background:#ededed;color:#a6a6a6}.multiselect__option--disabled{background:#ededed!important;color:#a6a6a6!important;cursor:text;pointer-events:none}.multiselect__option--group{background:#ededed;color:#35495e}.multiselect__option--group.multiselect__option--highlight{background:#35495e;color:#fff}.multiselect__option--group.multiselect__option--highlight:after{background:#35495e}.multiselect__option--disabled.multiselect__option--highlight{background:#dedede}.multiselect__option--group-selected.multiselect__option--highlight{background:#ff6a6a;color:#fff}.multiselect__option--group-selected.multiselect__option--highlight:after{background:#ff6a6a;content:attr(data-deselect);color:#fff}.multiselect-enter-active,.multiselect-leave-active{transition:all .15s ease}.multiselect-enter,.multiselect-leave-active{opacity:0}.multiselect__strong{margin-bottom:8px;line-height:20px;display:inline-block;vertical-align:top}[dir=ltr] [dir=rtl] .multiselect{text-align:right}[dir=rtl] [dir=rtl] .multiselect{text-align:left}[dir=ltr] [dir=rtl] .multiselect__select{right:auto;left:1px}[dir=rtl] [dir=rtl] .multiselect__select{left:auto;right:1px}[dir=ltr] [dir=rtl] .multiselect__tags{padding:8px 8px 0 40px}[dir=rtl] [dir=rtl] .multiselect__tags{padding:8px 40px 0 8px}[dir=ltr] [dir=rtl] .multiselect__content{text-align:right}[dir=rtl] [dir=rtl] .multiselect__content{text-align:left}[dir=ltr] [dir=rtl] .multiselect__option:after{right:auto;left:0}[dir=rtl] [dir=rtl] .multiselect__option:after{left:auto;right:0}[dir=ltr] [dir=rtl] .multiselect__clear{right:auto;left:12px}[dir=rtl] [dir=rtl] .multiselect__clear{left:auto;right:12px}[dir=ltr] [dir=rtl] .multiselect__spinner{right:auto;left:1px}[dir=rtl] [dir=rtl] .multiselect__spinner{left:auto;right:1px}@-webkit-keyframes spinning{0%{transform:rotate(0)}to{transform:rotate(2turn)}}@keyframes spinning{0%{transform:rotate(0)}to{transform:rotate(2turn)}}.aioseo-select{height:48px}.aioseo-select.multiselect--disabled .multiselect__select{background:none}.aioseo-select .multiselect__select{display:flex;align-items:center;justify-content:center;min-height:40px}.aioseo-select .multiselect__select:before{display:none}.aioseo-select .multiselect__select svg.aioseo-caret{color:#141b38;width:18px;height:18px;transition:transform .3s}.aioseo-select .multiselect__tags{border:1px solid #D0D1D7;border-radius:3px;display:flex;justify-content:center;flex-direction:column}[dir=ltr] .aioseo-select .multiselect__tags{padding:16px 40px 16px 16px}[dir=rtl] .aioseo-select .multiselect__tags{padding:16px 16px 16px 40px}.aioseo-select .multiselect__tags .multiselect__spinner{height:calc(100% - 2px);border:2px solid transparent}.aioseo-select .multiselect__tags .multiselect__spinner:after,.aioseo-select .multiselect__tags .multiselect__spinner:before{border-top-color:#434960}.aioseo-select .multiselect__tags .multiselect__single{display:inline-flex;margin:0;padding:0;font-size:14px;color:#141b38;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.aioseo-select .multiselect__tags .multiselect__placeholder{color:#8c8f9a;font-size:14px;line-height:20px;margin:0;padding:0}.aioseo-select .multiselect__tags .multiselect__input{padding:0;border-radius:0;border:none;color:#141b38;min-height:auto;font-size:14px;line-height:20px}[dir=ltr] .aioseo-select .multiselect__tags .multiselect__input{margin:0 10px 0 0}[dir=rtl] .aioseo-select .multiselect__tags .multiselect__input{margin:0 0 0 10px}.aioseo-select .multiselect__tags .multiselect__input:focus{outline:0;box-shadow:none;border:none}.aioseo-select .multiselect__tags .multiselect__input::placeholder{color:#8c8f9a}.aioseo-select .multiselect__tags .multiselect__tags-wrap{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.aioseo-select .multiselect__tags .multiselect__tags-wrap .multiselect__tag{padding:0;display:inline-flex;align-items:center;font-size:14px;font-weight:600;color:#434960;height:24px;background-color:#f3f4f5;flex-shrink:0}[dir=ltr] .aioseo-select .multiselect__tags .multiselect__tags-wrap .multiselect__tag{margin:0 3px 0 0}[dir=rtl] .aioseo-select .multiselect__tags .multiselect__tags-wrap .multiselect__tag{margin:0 0 0 3px}[dir] .aioseo-select .multiselect__tags .multiselect__tags-wrap .multiselect__tag{margin-bottom:0}[dir=ltr] .aioseo-select .multiselect__tags .multiselect__tags-wrap .multiselect__tag .multiselect__tag-value{padding:0 5px 0 10px}[dir=rtl] .aioseo-select .multiselect__tags .multiselect__tags-wrap .multiselect__tag .multiselect__tag-value{padding:0 10px 0 5px}.aioseo-select .multiselect__tags .multiselect__tags-wrap .multiselect__tag .multiselect__tag-remove{padding:0 10px;height:100%;cursor:pointer;background-color:#f3f4f5;display:flex;align-items:center}.aioseo-select .multiselect__tags .multiselect__tags-wrap .multiselect__tag .multiselect__tag-remove:hover{background-color:#434960;color:#fff}.aioseo-select .multiselect__tags .multiselect__tags-wrap .multiselect__tag .multiselect__tag-remove:hover svg.aioseo-close{color:#fff}.aioseo-select .multiselect__tags .multiselect__tags-wrap .multiselect__tag .multiselect__tag-remove svg.aioseo-close{color:#434960;width:10px;height:10px}.aioseo-error .aioseo-select .multiselect__tags{border-color:#df2a4a}.aioseo-select.multiselect--active .multiselect__tags-wrap{margin-bottom:7px}.aioseo-select.small{height:30px;min-height:30px}.aioseo-select.small .multiselect__tags{min-height:30px}[dir=ltr] .aioseo-select.small .multiselect__tags{padding:8px 38px 8px 8px}[dir=rtl] .aioseo-select.small .multiselect__tags{padding:8px 8px 8px 38px}.aioseo-select.small .multiselect__tags .multiselect__placeholder{font-size:14px}.aioseo-select.small .multiselect__select{height:28px;min-height:28px}.aioseo-select.small .multiselect__input{font-size:14px}.aioseo-select.small .multiselect__content-wrapper li.multiselect__element .multiselect__option{font-size:14px;padding:8px;min-height:30px}.aioseo-select.medium{height:40px}[dir=ltr] .aioseo-select.medium .multiselect__tags{padding:9px 40px 9px 12px}[dir=rtl] .aioseo-select.medium .multiselect__tags{padding:9px 12px 9px 40px}.aioseo-select.medium .multiselect__select{min-height:38px}.aioseo-select.multiple{min-height:48px;height:auto}.aioseo-select.multiple.small{min-height:30px}.aioseo-select.multiple.medium{min-height:40px}.aioseo-select.multiselect--above .multiselect__content-wrapper{border-top:1px solid #D0D1D7;border-bottom:none}.aioseo-select .multiselect__content-wrapper{border:1px solid #D0D1D7;border-top:none;border-bottom-left-radius:3px;border-bottom-right-radius:3px;z-index:50;-webkit-overflow-scrolling:touch}.aioseo-select .multiselect__content-wrapper .multiselect__content{max-width:100%}.aioseo-select .multiselect__content-wrapper li.multiselect__element{margin:0;border-bottom:1px solid #E8E8EB}.aioseo-select .multiselect__content-wrapper li.multiselect__element.last{border-bottom:none}.aioseo-select .multiselect__content-wrapper li.multiselect__element .multiselect__option{color:#141b38;font-weight:400;font-size:14px;white-space:normal;line-height:22px;padding:8px;min-height:38px}.aioseo-select .multiselect__content-wrapper li.multiselect__element .multiselect__option--highlight{background-color:#f2f7fd}.aioseo-select .multiselect__content-wrapper li.multiselect__element .multiselect__option--highlight:after{background-color:#005ae0;color:#fff}.aioseo-select .multiselect__content-wrapper li.multiselect__element .multiselect__option--selected{background-color:#f2f7fd}.aioseo-select .multiselect__content-wrapper li.multiselect__element .multiselect__option--disabled{font-weight:initial;background-color:#fff!important;color:#8c8f9a}.aioseo-select .multiselect__content-wrapper li.multiselect__element .multiselect__option .docLink{font-size:13px}[dir=ltr] .aioseo-select .multiselect__content-wrapper li.multiselect__element .multiselect__option .docLink{float:right}[dir=rtl] .aioseo-select .multiselect__content-wrapper li.multiselect__element .multiselect__option .docLink{float:left}.aioseo-toggle{display:inline-flex;align-items:center;vertical-align:middle}.aioseo-toggle:active,.aioseo-toggle:focus{outline:2px solid transparent}.aioseo-toggle.disabled{pointer-events:none}.aioseo-toggle.disabled .toggle-content{opacity:.5}.aioseo-toggle .toggle-content{position:relative;display:inline-block;width:32px;height:18px}[dir=ltr] .aioseo-toggle .toggle-content{margin-right:8px}[dir=rtl] .aioseo-toggle .toggle-content{margin-left:8px}.aioseo-toggle .toggle-content input{display:none}.aioseo-toggle .toggle-content input:checked+.toggle-switch{border:1px solid #005AE0;background-color:#005ae0}.aioseo-toggle .toggle-content input:checked+.toggle-switch:focus{outline:2px solid transparent}.aioseo-toggle .toggle-content input:checked+.toggle-switch:before{background-color:#fff}[dir=ltr] .aioseo-toggle .toggle-content input:checked+.toggle-switch:before{transform:translate(13px)}[dir=rtl] .aioseo-toggle .toggle-content input:checked+.toggle-switch:before{transform:translate(-13px)}.aioseo-toggle .toggle-content input:focus+.toggle-switch{box-shadow:0 0 1px #005ae0;outline:2px solid transparent}.aioseo-toggle .toggle-content .toggle-switch{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#fff;border:1px solid #D0D1D7;border-radius:16px;transition:.2s}.aioseo-toggle .toggle-content .toggle-switch:before{position:absolute;content:"";height:12px;width:12px;bottom:2px;background-color:#d0d1d7;border-radius:50%;transition:.2s}[dir=ltr] .aioseo-toggle .toggle-content .toggle-switch:before{left:3px}[dir=rtl] .aioseo-toggle .toggle-content .toggle-switch:before{right:3px} all-in-one-seo-pack/dist/Lite/assets/css/Index.C0Ks1x6o.css000064400000036113151222736000017171 0ustar00.aioseo-app .aioseo-cta .aioseo-cta-background .type-1,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-1,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-1{display:flex;flex-direction:column;align-items:center}.aioseo-app .aioseo-cta .aioseo-cta-background .type-1 .description,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-1 .description,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-1 .description{font-size:15px;line-height:1.4}.aioseo-app .aioseo-cta .aioseo-cta-background .type-1 .actions,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-1 .actions,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-1 .actions{margin:15px 0;display:flex;gap:15px;align-items:center;justify-content:center;align-content:center}.aioseo-app .aioseo-cta .aioseo-cta-background .type-1 .actions .learn-more,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-1 .actions .learn-more,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-1 .actions .learn-more{margin:0}@media (max-width: 768px){.aioseo-app .aioseo-cta .aioseo-cta-background .type-1 .actions,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-1 .actions,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-1 .actions{flex-direction:column;align-items:center;justify-content:center;align-content:center}}.aioseo-app .aioseo-cta .aioseo-cta-background .type-1 .bonus-alert,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-1 .bonus-alert,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-1 .bonus-alert{margin-top:20px}.aioseo-app .aioseo-cta .aioseo-cta-background .type-2,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-2,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-2{display:flex}[dir=ltr] .aioseo-app .aioseo-cta .aioseo-cta-background .type-2 .header-text,[dir=ltr] .aioseo-app .aioseo-cta .aioseo-cta-background .type-2 .description,[dir=ltr] .aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-2 .header-text,[dir=ltr] .aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-2 .description,[dir=ltr] #aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-2 .header-text,[dir=ltr] #aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-2 .description{text-align:left}[dir=rtl] .aioseo-app .aioseo-cta .aioseo-cta-background .type-2 .header-text,[dir=rtl] .aioseo-app .aioseo-cta .aioseo-cta-background .type-2 .description,[dir=rtl] .aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-2 .header-text,[dir=rtl] .aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-2 .description,[dir=rtl] #aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-2 .header-text,[dir=rtl] #aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-2 .description{text-align:right}.aioseo-app .aioseo-cta .aioseo-cta-background .type-2 .description,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-2 .description,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-2 .description{margin:16px 0 30px}.aioseo-app .aioseo-cta .aioseo-cta-background .type-2 .feature-list,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-2 .feature-list,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-2 .feature-list{margin:30px 0}.aioseo-app .aioseo-cta .aioseo-cta-background .type-2>div,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-2>div,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-2>div{flex:0 0 50%}[dir=ltr] .aioseo-app .aioseo-cta .aioseo-cta-background .type-2>div,[dir=ltr] .aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-2>div,[dir=ltr] #aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-2>div{margin-right:20px}[dir=rtl] .aioseo-app .aioseo-cta .aioseo-cta-background .type-2>div,[dir=rtl] .aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-2>div,[dir=rtl] #aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-2>div{margin-left:20px}.aioseo-app .aioseo-cta .aioseo-cta-background .type-2 .featured-image,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-2 .featured-image,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-2 .featured-image{max-height:540px;border:1px solid #E8E8EB;flex:1;overflow:hidden;margin-bottom:-71px}[dir=ltr] .aioseo-app .aioseo-cta .aioseo-cta-background .type-2 .featured-image,[dir=ltr] .aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-2 .featured-image,[dir=ltr] #aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-2 .featured-image{margin-right:-41px;border-radius:5px 0 0}[dir=rtl] .aioseo-app .aioseo-cta .aioseo-cta-background .type-2 .featured-image,[dir=rtl] .aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-2 .featured-image,[dir=rtl] #aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-2 .featured-image{margin-left:-41px;border-radius:0 5px 0 0}.aioseo-app .aioseo-cta .aioseo-cta-background .type-2 .featured-image img,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-2 .featured-image img,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-2 .featured-image img{max-height:600px}@media only screen and (max-width: 912px){.aioseo-app .aioseo-cta .aioseo-cta-background .type-2,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-2,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-2{flex-direction:column;align-items:center}.aioseo-app .aioseo-cta .aioseo-cta-background .type-2 .header-text,.aioseo-app .aioseo-cta .aioseo-cta-background .type-2 .description,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-2 .header-text,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-2 .description,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-2 .header-text,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-2 .description{text-align:center}.aioseo-app .aioseo-cta .aioseo-cta-background .type-2>div,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-2>div,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-2>div{text-align:center;margin-bottom:30px;flex:1 0 100%;width:100%}[dir=ltr] .aioseo-app .aioseo-cta .aioseo-cta-background .type-2>div,[dir=ltr] .aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-2>div,[dir=ltr] #aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-2>div{margin-right:0}[dir=rtl] .aioseo-app .aioseo-cta .aioseo-cta-background .type-2>div,[dir=rtl] .aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-2>div,[dir=rtl] #aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-2>div{margin-left:0}.aioseo-app .aioseo-cta .aioseo-cta-background .type-2 .featured-image,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-2 .featured-image,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-2 .featured-image{margin:0 -10px -41px;border-radius:5px 5px 0 0;max-height:300px}}.aioseo-app .aioseo-cta .aioseo-cta-background .type-3,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-3,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-3{display:flex;flex-wrap:wrap;justify-content:center;column-gap:20px;row-gap:8px}.aioseo-app .aioseo-cta .aioseo-cta-background .type-3>*,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-3>*,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-3>*{width:100%}.aioseo-app .aioseo-cta .aioseo-cta-background .type-3 .sub-header,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-3 .sub-header,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-3 .sub-header{line-height:1.4;font-size:12px;font-weight:600;color:#005ae0;text-align:center}.aioseo-app .aioseo-cta .aioseo-cta-background .type-3 .header-text,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-3 .header-text,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-3 .header-text{text-align:center}.aioseo-app .aioseo-cta .aioseo-cta-background .type-3 .feature-list,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-3 .feature-list,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-3 .feature-list{margin:22px 0}.aioseo-app .aioseo-cta .aioseo-cta-background .type-3 .feature-list .aioseo-col svg.aioseo-circle-check,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-3 .feature-list .aioseo-col svg.aioseo-circle-check,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-3 .feature-list .aioseo-col svg.aioseo-circle-check{color:#00aa63;width:21px;min-width:21px;min-height:21px}[dir=ltr] .aioseo-app .aioseo-cta .aioseo-cta-background .type-3 .feature-list .aioseo-col svg.aioseo-circle-check,[dir=ltr] .aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-3 .feature-list .aioseo-col svg.aioseo-circle-check,[dir=ltr] #aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-3 .feature-list .aioseo-col svg.aioseo-circle-check{margin-right:10px}[dir=rtl] .aioseo-app .aioseo-cta .aioseo-cta-background .type-3 .feature-list .aioseo-col svg.aioseo-circle-check,[dir=rtl] .aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-3 .feature-list .aioseo-col svg.aioseo-circle-check,[dir=rtl] #aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-3 .feature-list .aioseo-col svg.aioseo-circle-check{margin-left:10px}.aioseo-app .aioseo-cta .aioseo-cta-background .type-3 .aioseo-button,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-3 .aioseo-button,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-3 .aioseo-button{width:auto}.aioseo-app .aioseo-cta .aioseo-cta-background .type-4 .header-text,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-4 .header-text,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-4 .header-text{font-weight:600;font-size:16px;margin-bottom:8px}.aioseo-app .aioseo-cta .aioseo-cta-background .type-4 .description,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .type-4 .description,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .type-4 .description{font-weight:400;font-size:14px;margin:0}.aioseo-app .aioseo-cta,.aioseo-blc-app .aioseo-cta,#aioseo-user-profile-tab .aioseo-cta{margin-top:30px;width:100%}.aioseo-app .aioseo-cta.floating,.aioseo-blc-app .aioseo-cta.floating,#aioseo-user-profile-tab .aioseo-cta.floating{margin-top:0;position:absolute;max-width:850px;top:50%;padding:20px}[dir=ltr] .aioseo-app .aioseo-cta.floating,[dir=ltr] .aioseo-blc-app .aioseo-cta.floating,[dir=ltr] #aioseo-user-profile-tab .aioseo-cta.floating{left:50%;transform:translate(-50%) translateY(-50%)}[dir=rtl] .aioseo-app .aioseo-cta.floating,[dir=rtl] .aioseo-blc-app .aioseo-cta.floating,[dir=rtl] #aioseo-user-profile-tab .aioseo-cta.floating{right:50%;transform:translate(50%) translateY(-50%)}.aioseo-app .aioseo-cta.floating .aioseo-cta-background,.aioseo-blc-app .aioseo-cta.floating .aioseo-cta-background,#aioseo-user-profile-tab .aioseo-cta.floating .aioseo-cta-background{box-shadow:0 5px 20px #0000001a;border-radius:3px}.aioseo-app .aioseo-cta.floating.align-top,.aioseo-blc-app .aioseo-cta.floating.align-top,#aioseo-user-profile-tab .aioseo-cta.floating.align-top{top:50px}[dir=ltr] .aioseo-app .aioseo-cta.floating.align-top,[dir=ltr] .aioseo-blc-app .aioseo-cta.floating.align-top,[dir=ltr] #aioseo-user-profile-tab .aioseo-cta.floating.align-top{transform:translate(-50%) translateY(0)}[dir=rtl] .aioseo-app .aioseo-cta.floating.align-top,[dir=rtl] .aioseo-blc-app .aioseo-cta.floating.align-top,[dir=rtl] #aioseo-user-profile-tab .aioseo-cta.floating.align-top{transform:translate(50%) translateY(0)}.aioseo-app .aioseo-cta .aioseo-cta-background,.aioseo-blc-app .aioseo-cta .aioseo-cta-background,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background{background:#fff;padding:40px;box-shadow:0 2px 5px #0000000d;border:1px solid #E8E8EB}.aioseo-app .aioseo-cta .aioseo-cta-background .header-text,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .header-text,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .header-text{line-height:1.25;font-weight:600;font-size:18px;text-align:center;color:#141b38}.aioseo-app .aioseo-cta .aioseo-cta-background .header-text span.large,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .header-text span.large,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .header-text span.large{line-height:1.4;font-size:22px}.aioseo-app .aioseo-cta .aioseo-cta-background .description,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .description,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .description{margin-block:16px 30px;width:100%;max-width:600px;text-align:center;font-size:16px;color:#141b38;line-height:1.25}.aioseo-app .aioseo-cta .aioseo-cta-background .description .aioseo-alert,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .description .aioseo-alert,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .description .aioseo-alert{margin-bottom:16px}[dir=ltr] .aioseo-app .aioseo-cta .aioseo-cta-background .description .aioseo-alert,[dir=ltr] .aioseo-blc-app .aioseo-cta .aioseo-cta-background .description .aioseo-alert,[dir=ltr] #aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .description .aioseo-alert{text-align:left}[dir=rtl] .aioseo-app .aioseo-cta .aioseo-cta-background .description .aioseo-alert,[dir=rtl] .aioseo-blc-app .aioseo-cta .aioseo-cta-background .description .aioseo-alert,[dir=rtl] #aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .description .aioseo-alert{text-align:right}.aioseo-app .aioseo-cta .aioseo-cta-background .feature-list,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .feature-list,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .feature-list{--aioseo-gutter: 32px;color:#141b38;font-size:14px;line-height:1.25;width:100%;max-width:500px;margin-bottom:30px;row-gap:16px}.aioseo-app .aioseo-cta .aioseo-cta-background .feature-list .aioseo-col,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .feature-list .aioseo-col,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .feature-list .aioseo-col{display:flex;align-items:center}.aioseo-app .aioseo-cta .aioseo-cta-background .feature-list .aioseo-col svg.aioseo-circle-check,.aioseo-blc-app .aioseo-cta .aioseo-cta-background .feature-list .aioseo-col svg.aioseo-circle-check,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .feature-list .aioseo-col svg.aioseo-circle-check{color:#00aa63;width:20px;height:20px;min-width:20px}[dir=ltr] .aioseo-app .aioseo-cta .aioseo-cta-background .feature-list .aioseo-col svg.aioseo-circle-check,[dir=ltr] .aioseo-blc-app .aioseo-cta .aioseo-cta-background .feature-list .aioseo-col svg.aioseo-circle-check,[dir=ltr] #aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .feature-list .aioseo-col svg.aioseo-circle-check{margin-right:12px}[dir=rtl] .aioseo-app .aioseo-cta .aioseo-cta-background .feature-list .aioseo-col svg.aioseo-circle-check,[dir=rtl] .aioseo-blc-app .aioseo-cta .aioseo-cta-background .feature-list .aioseo-col svg.aioseo-circle-check,[dir=rtl] #aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .feature-list .aioseo-col svg.aioseo-circle-check{margin-left:12px}.aioseo-app .aioseo-cta .aioseo-cta-background a.learn-more,.aioseo-blc-app .aioseo-cta .aioseo-cta-background a.learn-more,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background a.learn-more{margin-top:20px;color:#8c8f9a;font-size:14px} all-in-one-seo-pack/dist/Lite/assets/css/Index.CJWT1QyJ.css000064400000010621151222736000017163 0ustar00.aioseo-modal .modal-mask{position:fixed;z-index:9998;top:0;width:100%;height:100%;background-color:#0020504d;transition:opacity .3s ease;-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px)}[dir=ltr] .aioseo-modal .modal-mask{left:0}[dir=rtl] .aioseo-modal .modal-mask{right:0}@media screen and (max-width: 520px){.aioseo-modal .modal-mask{display:block;top:46px}}.aioseo-modal .modal-wrapper{position:fixed;z-index:9998;top:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;align-content:center;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}[dir=ltr] .aioseo-modal .modal-wrapper{left:0}[dir=rtl] .aioseo-modal .modal-wrapper{right:0}@media screen and (max-width: 520px){.aioseo-modal .modal-wrapper{display:block;height:100%}}.aioseo-modal .modal-wrapper .modal-container{width:100%;max-width:800px;max-height:90vh;overflow-y:hidden;overflow-x:hidden;margin:0 auto;background-color:#fff;box-shadow:0 10px 30px #00000026;transition:all .3s ease}@media screen and (max-width: 520px){.aioseo-modal .modal-wrapper .modal-container{width:100%;max-width:100%;max-height:calc(100vh - 46px);height:100%}}.aioseo-modal .modal-wrapper .modal-container .modal-header{color:#141b38;position:relative;top:0;z-index:15;height:56px;font-size:18px;font-weight:600;line-height:1.4;border-bottom:1px solid #E8E8EB;background-color:#fff;display:flex;align-items:center}[dir=ltr] .aioseo-modal .modal-wrapper .modal-container .modal-header{padding:0 0 0 var(--aioseo-gutter)}[dir=rtl] .aioseo-modal .modal-wrapper .modal-container .modal-header{padding:0 var(--aioseo-gutter) 0 0}@media screen and (max-width: 520px){[dir=ltr] .aioseo-modal .modal-wrapper .modal-container .modal-header{padding:15px 0 0 20px}[dir=rtl] .aioseo-modal .modal-wrapper .modal-container .modal-header{padding:15px 20px 0 0}}.aioseo-modal .modal-wrapper .modal-container .modal-header button.close{background-color:#fff;border:none;line-height:1;margin:0;opacity:1;outline:none;padding:0;position:absolute;top:50%;transform:translateY(-50%)}[dir=ltr] .aioseo-modal .modal-wrapper .modal-container .modal-header button.close{right:20px}[dir=rtl] .aioseo-modal .modal-wrapper .modal-container .modal-header button.close{left:20px}.aioseo-modal .modal-wrapper .modal-container .modal-header button.close svg.aioseo-close{cursor:pointer;width:14px;height:14px}.aioseo-modal .modal-wrapper .modal-container .modal-body{overflow-y:auto;overflow-x:hidden;max-height:80vh;padding:0;position:relative}.aioseo-modal .modal-wrapper .modal-container .modal-body .aioseo-modal-content.has-padding{padding:40px}.aioseo-modal .modal-wrapper .modal-container .modal-body.allow-overflow{overflow:visible}.aioseo-modal .modal-wrapper .modal-container .modal-container__footer{border-top:1px solid #E8E8EB}@media screen and (max-width: 520px){.aioseo-modal .modal-wrapper .modal-container .modal-body,.aioseo-modal .modal-wrapper .modal-container .modal-body>div,.aioseo-modal .modal-wrapper .modal-container .aioseo-modal-content,.aioseo-modal .modal-wrapper .modal-container .aioseo-modal-content>.component-wrapper{height:100%}.aioseo-modal .modal-wrapper .modal-container .aioseo-modal-content>.component-wrapper{display:flex;align-items:flex-end}.aioseo-modal .modal-wrapper .modal-container .aioseo-post-social,.aioseo-modal .modal-wrapper .modal-container .aioseo-post-general{height:100%!important;max-height:100%!important}.aioseo-modal .modal-wrapper .modal-container .aioseo-post-social .mobile-radio-buttons,.aioseo-modal .modal-wrapper .modal-container .aioseo-post-general .mobile-radio-buttons{margin-bottom:0}.aioseo-modal .modal-wrapper .modal-container .aioseo-add-template-tag{display:none}.aioseo-modal .modal-wrapper .modal-container .tab-facebook .aioseo-settings-row:last-of-type,.aioseo-modal .modal-wrapper .modal-container .tab-twitter .aioseo-settings-row:last-of-type{margin-bottom:64px!important;padding-bottom:32px!important}}.allow-overflow .modal-mask .modal-container,.allow-overflow .modal-mask .modal-container .modal-body{overflow:visible}.modal-background-enter-active,.modal-background-leave-active{transition:opacity .3s ease}.modal-background-enter-from,.modal-background-leave-to{opacity:0}.modal-content-enter-active{transition:all .3s cubic-bezier(.52,.02,.19,1.02) .05s}.modal-content-leave-active{transition:all .3s cubic-bezier(.52,.02,.19,1.02)}.modal-content-enter-from,.modal-content-leave-to{opacity:0;transform:scale(.8)} all-in-one-seo-pack/dist/Lite/assets/css/Index.DAMPH74G.css000064400000013211151222736000017020 0ustar00.aioseo-box-toggle .aioseo-row .aioseo-col{max-width:calc(200px + 1em)}@media only screen and (max-width: 48em){.aioseo-box-toggle .aioseo-row .aioseo-col{max-width:100%}}.aioseo-box-toggle input{position:absolute!important;clip:rect(0,0,0,0);height:1px;width:1px;border:0;overflow:hidden}.aioseo-box-toggle input:checked+label{background-color:#fff;box-shadow:0 5px 10px #005ae01a;border:2px solid #005AE0;font-weight:600}.aioseo-box-toggle label{background-color:#f9f9fa;color:#141b38;font-size:16px;line-height:1;display:flex;align-items:center;justify-content:center;flex-direction:column;border:2px solid transparent;box-shadow:0 0 0 1px #e8e8eb;transition:all .1s ease-in-out;border-radius:3px;height:165px;position:relative}.aioseo-box-toggle label svg{margin:0;flex:1;color:#434960}.aioseo-box-toggle label p{font-size:14px;line-height:22px;position:relative;bottom:unset;margin:0 0 12px}.aioseo-box-toggle label:hover{cursor:pointer}.aioseo-attributes ul.aioseo-attributes-list[data-v-4823ddd8]{list-style:inside;list-style-type:disc;margin:20px 0 0}.aioseo-attributes ul.aioseo-attributes-list li[data-v-4823ddd8]{display:flex;margin-bottom:8px;align-items:flex-start}.aioseo-attributes ul.aioseo-attributes-list li div[data-v-4823ddd8]:first-of-type{flex:0 0 140px}.aioseo-copy-block{display:inline-flex}.aioseo-copy-block .message{background-color:#fff;min-height:56px;display:flex;align-items:center;border:1px solid #DCDDE1;padding:10px 24px;font-weight:600}[dir=ltr] .aioseo-copy-block .message{border-radius:3px 0 0 3px}[dir=rtl] .aioseo-copy-block .message{border-radius:0 3px 3px 0}.aioseo-copy-block .copy-tooltip{display:flex}.aioseo-copy-block .copy{background-color:#fff;min-height:56px;display:flex;align-items:center;border:1px solid #DCDDE1;padding:10px 16px;font-weight:600;cursor:pointer}[dir=ltr] .aioseo-copy-block .copy{border-left-width:0;border-radius:0 3px 3px 0}[dir=rtl] .aioseo-copy-block .copy{border-right-width:0;border-radius:3px 0 0 3px}.aioseo-copy-block .copy:hover svg.aioseo-copy{color:#a7a7a7}.aioseo-copy-block .copy svg.aioseo-copy{width:20px;height:20px;color:#dadada}.aioseo-copy-block .copy svg.aioseo-circle-check-solid{width:20px;height:20px;color:#00aa63}.aioseo-ui-element-slider .aioseo-slide-content .main-box,.aioseo-ui-element-slider .aioseo-slide-content .extra-box{margin-top:16px;padding:12px;background-color:#f9f9fa}.aioseo-ui-element-slider .aioseo-slide-content .main-box .aioseo-description,.aioseo-ui-element-slider .aioseo-slide-content .extra-box .aioseo-description{margin:0}.aioseo-ui-element-slider .aioseo-slide-content .main-box .aioseo-copy-block,.aioseo-ui-element-slider .aioseo-slide-content .extra-box .aioseo-copy-block{margin:20px 0 0}.aioseo-ui-element-slider .aioseo-slide-content .main-box .aioseo-copy-block .message,.aioseo-ui-element-slider .aioseo-slide-content .main-box .aioseo-copy-block .copy,.aioseo-ui-element-slider .aioseo-slide-content .extra-box .aioseo-copy-block .message,.aioseo-ui-element-slider .aioseo-slide-content .extra-box .aioseo-copy-block .copy{min-height:40px;align-self:stretch;font-size:14px;font-weight:400;line-height:22px;padding:8px 12px}.aioseo-ui-element-slider .aioseo-slide-content .main-box .advanced-settings-link,.aioseo-ui-element-slider .aioseo-slide-content .extra-box .advanced-settings-link{display:inline-block;padding-top:5px;color:#8c8f9a;text-decoration:underline;font-size:13px}[dir=ltr] .aioseo-ui-element-slider .aioseo-slide-content .main-box .advanced-settings-link,[dir=ltr] .aioseo-ui-element-slider .aioseo-slide-content .extra-box .advanced-settings-link{margin:16px 0 0 16px}[dir=rtl] .aioseo-ui-element-slider .aioseo-slide-content .main-box .advanced-settings-link,[dir=rtl] .aioseo-ui-element-slider .aioseo-slide-content .extra-box .advanced-settings-link{margin:16px 16px 0 0}.aioseo-ui-element-slider .aioseo-slide-content .main-box .advanced-settings-link:hover,.aioseo-ui-element-slider .aioseo-slide-content .extra-box .advanced-settings-link:hover{text-decoration:none}.aioseo-ui-element-slider .aioseo-slide-content .main-box .advanced-settings,.aioseo-ui-element-slider .aioseo-slide-content .extra-box .advanced-settings{display:block;margin-top:20px}.aioseo-ui-element-slider .aioseo-slide-content .advanced-settings.advanced-settings-hidden{display:none}[dir=ltr] .aioseo-ui-element-slider .aioseo-slide-content .aioseo-tooltip{margin-left:0}[dir=rtl] .aioseo-ui-element-slider .aioseo-slide-content .aioseo-tooltip{margin-right:0}.aioseo-ui-element-slider .aioseo-box-toggle>.aioseo-row{--aioseo-gutter: 16px;--total-gap-width: calc(3 * var(--aioseo-gutter));--aioseo-col-max-width: calc((100% - var(--total-gap-width)) / 4);display:grid;gap:var(--aioseo-gutter);grid-template-columns:repeat(auto-fill,minmax(max(200px,var(--aioseo-col-max-width)),1fr))}.aioseo-ui-element-slider .aioseo-box-toggle>.aioseo-row>*{max-width:none}.aioseo-ui-element-slider svg.aioseo-widget,.aioseo-ui-element-slider svg.aioseo-new-page,.aioseo-ui-element-slider svg.aioseo-shortcode{width:100%;height:auto;max-width:60px}.aioseo-ui-element-slider svg.aioseo-gutenberg-block{width:59px;height:54px}.aioseo-ui-element-slider svg.aioseo-gutenberg-block rect{width:100%;width:56px;height:51px}.aioseo-ui-element-slider svg.aioseo-php{width:110px}.aioseo-ui-element-slider .aioseo-slide-content:first-of-type .main-box{border-top-left-radius:3px;border-top-right-radius:3px}.aioseo-ui-element-slider .aioseo-slide-content:last-of-type .main-box{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.aioseo-ui-element-slider .aioseo-slide-content:not(:first-of-type) .main-box{margin-top:0}.aioseo-ui-element-slider .aioseo-slide-content:not(:last-of-type) .main-box>div{padding-bottom:12px;border-bottom:1px solid #E8E8EB} all-in-one-seo-pack/dist/Lite/assets/css/Index.DBXNeqBh.css000064400000004651151222736000017250 0ustar00.aioseo-seo-site-score__circle{animation:aioseo-seo-site-score-fill 1s reverse;transform-origin:center}[dir=ltr] .aioseo-seo-site-score__circle{transform:rotate(-180deg)}[dir=rtl] .aioseo-seo-site-score__circle{transform:rotate(180deg)}.aioseo-seo-site-score__circle.fast{animation-duration:.5s}.aioseo-seo-site-score__circle.medium{animation-duration:.75s}.aioseo-seo-site-score__circle.stroke-red{stroke:#df2a4a}.aioseo-seo-site-score__circle.stroke-orange{stroke:#f18200}.aioseo-seo-site-score__circle.stroke-green{stroke:#00aa63}.aioseo-seo-site-score__background{stroke:#e8e8eb}@keyframes aioseo-seo-site-score-fill{to{stroke-dasharray:0 100}}.aioseo-seo-site-score-svg-loading{animation:2s linear infinite aioseo-seo-site-score-svg-animation}.aioseo-seo-site-score-loading__circle{animation:2s ease-in-out infinite both aioseo-seo-site-score-fill-loading;transform-origin:center;stroke:#005ae0}[dir=ltr] .aioseo-seo-site-score-loading__circle{transform:rotate(-180deg)}[dir=rtl] .aioseo-seo-site-score-loading__circle{transform:rotate(180deg)}@keyframes aioseo-seo-site-score-svg-animation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes aioseo-seo-site-score-fill-loading{0%,25%{stroke-dashoffset:90;transform:rotate(0)}50%,75%{stroke-dashoffset:10;transform:rotate(45deg)}to{stroke-dashoffset:90;transform:rotate(360deg)}}.aioseo-score-amount-wrapper{position:absolute;left:0;top:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#141b38;margin:20px}.aioseo-score-amount-wrapper .aioseo-score-amount{line-height:1.2}.aioseo-score-amount-wrapper .aioseo-score-amount .score{font-size:50px;font-weight:600;color:inherit}.aioseo-score-amount-wrapper .aioseo-score-amount .total{font-size:18px;line-height:1.5;font-weight:600;color:#8c8f9a}[dir=ltr] .aioseo-score-amount-wrapper .aioseo-score-amount .total{padding-left:3px}[dir=rtl] .aioseo-score-amount-wrapper .aioseo-score-amount .total{padding-right:3px}.aioseo-score-amount-wrapper .score-description{max-width:80%;text-align:center;font-size:16px;font-weight:600;line-height:1.3;color:inherit}.aioseo-score-amount-wrapper .score-analyzing{margin-top:16px;font-size:24px}.aioseo-site-score{display:flex}.aioseo-site-score:has(.stroke-red) .aioseo-score-amount-wrapper{color:#df2a4a}.aioseo-site-score:has(.stroke-orange) .aioseo-score-amount-wrapper{color:#f18200}.aioseo-site-score:has(.stroke-green) .aioseo-score-amount-wrapper{color:#00aa63} all-in-one-seo-pack/dist/Lite/assets/css/Index.DONMMynt.css000064400000043500151222736000017316 0ustar00.aioseo-add-redirection-url-results{display:flex;position:absolute;background:#fff;width:100%;max-height:300px;overflow:auto;border:1px solid #D0D1D7;border-radius:3px;z-index:50;margin-top:-9px}[dir=ltr] .aioseo-add-redirection-url-results{left:1px}[dir=rtl] .aioseo-add-redirection-url-results{right:1px}.aioseo-add-redirection-url-results ul{display:inline-block;max-width:100%;list-style:none;padding:0;margin:0;min-width:100%;vertical-align:top}.aioseo-add-redirection-url-results ul li{margin:0;border-bottom:1px solid #E8E8EB;display:block}.aioseo-add-redirection-url-results ul li:last-of-type{border-bottom:none}.aioseo-add-redirection-url-results ul li>span{color:#141b38;font-weight:700;font-size:16px;white-space:normal;line-height:1.4;display:flex;padding:12px;min-height:40px;text-decoration:none;text-transform:none;vertical-align:middle;position:relative;cursor:pointer}.aioseo-add-redirection-url-results ul li>span:hover{background-color:#f2f7fd}.aioseo-add-redirection-url-results ul li>span:hover .option-title{color:#005ae0}.aioseo-add-redirection-url-results .option{flex:1}.aioseo-add-redirection-url-results .option .option-title{font-weight:500;display:flex;font-size:16px;color:#141b38}[dir=ltr] .aioseo-add-redirection-url-results .option .option-title>div{margin-right:5px}[dir=rtl] .aioseo-add-redirection-url-results .option .option-title>div{margin-left:5px}.aioseo-add-redirection-url-results .option .option-title>div:first-of-type{display:inline-block}.aioseo-add-redirection-url-results .option .option-title .search-term{font-weight:700}.aioseo-add-redirection-url-results .option .option-details{display:flex;align-items:center;font-size:14px;color:#8c8f9a}[dir=ltr] .aioseo-add-redirection-url-results .option .option-details span{margin-right:15px}[dir=rtl] .aioseo-add-redirection-url-results .option .option-details span{margin-left:15px}.aioseo-add-redirection-url-results .option-permalink{display:flex;align-items:center}.aioseo-add-redirection-url-results .option-permalink svg.aioseo-external{width:15px;height:15px;color:#434960}.aioseo-add-redirection-target-url,.aioseo-redirect-source-url{position:relative}[dir=ltr] .aioseo-redirect-source-url .aioseo-input input{padding-right:76px!important}[dir=rtl] .aioseo-redirect-source-url .aioseo-input input{padding-left:76px!important}.aioseo-redirect-source-url .aioseo-input .append-icon{width:60px;justify-content:flex-end}.aioseo-redirect-source-url .aioseo-input .append-icon svg{max-width:16px}[dir=ltr] .aioseo-redirect-source-url .aioseo-input .append-icon svg{margin-right:5px}[dir=rtl] .aioseo-redirect-source-url .aioseo-input .append-icon svg{margin-left:5px}[dir=ltr] .aioseo-redirect-source-url .aioseo-input .append-icon svg:last-of-type{margin-right:0}[dir=rtl] .aioseo-redirect-source-url .aioseo-input .append-icon svg:last-of-type{margin-left:0}.aioseo-redirect-source-url .aioseo-input .append-icon svg.aioseo-gear{color:#8c8f9a;cursor:pointer}.aioseo-redirect-source-url .aioseo-input .append-icon svg.aioseo-gear:hover,.aioseo-redirect-source-url .aioseo-input .append-icon svg.aioseo-gear.active{color:#005ae0}.aioseo-redirect-source-url .aioseo-input .append-icon svg.aioseo-circle-check{color:#00aa63}.aioseo-redirect-source-url .aioseo-input .append-icon svg.aioseo-circle-close{color:#df2a4a}.aioseo-redirect-source-url .aioseo-input .append-icon svg.aioseo-trash{color:#8c8f9a;cursor:pointer}.aioseo-redirect-source-url .aioseo-input .append-icon svg.aioseo-trash:hover,.aioseo-redirect-source-url .aioseo-input .append-icon svg.aioseo-trash.active{color:#df2a4a}.aioseo-redirect-source-url .source-url-warning,.aioseo-redirect-source-url .source-url-error{margin-bottom:10px}.aioseo-redirect-source-url .source-url-options{display:flex;flex-wrap:wrap;gap:8px 30px;margin:10px 0}.custom-rules[data-v-986bd5f5]{width:100%;margin-top:14px}.custom-rules .rule .rule-settings[data-v-986bd5f5]{display:flex;flex-direction:row;align-items:center;flex:1}.custom-rules .rule .rule-settings .rule-row[data-v-986bd5f5]{width:100%;display:flex;flex-direction:column;align-items:baseline;gap:15px}.custom-rules .rule .rule-settings .rule-row .rule-error[data-v-986bd5f5]{width:100%}.custom-rules .rule .rule-settings .rule-row .rule-option[data-v-986bd5f5]{display:flex;width:100%}.custom-rules .rule .rule-settings .rule-row .rule-option>.aioseo-select[data-v-986bd5f5]:first-child{width:100%;max-width:250px}[dir=ltr] .custom-rules .rule .rule-settings .rule-row .rule-option>*[data-v-986bd5f5]{margin:0 16px 0 0}[dir=rtl] .custom-rules .rule .rule-settings .rule-row .rule-option>*[data-v-986bd5f5]{margin:0 0 0 16px}[dir=ltr] .custom-rules .rule .rule-settings .rule-row .rule-option>*[data-v-986bd5f5]:last-child{margin-right:0}[dir=rtl] .custom-rules .rule .rule-settings .rule-row .rule-option>*[data-v-986bd5f5]:last-child{margin-left:0}[dir=ltr] .custom-rules .rule .rule-settings .rule-row .rule-option>*.aioseo-toggle[data-v-986bd5f5]{margin:0 10px 0 4px}[dir=rtl] .custom-rules .rule .rule-settings .rule-row .rule-option>*.aioseo-toggle[data-v-986bd5f5]{margin:0 4px 0 10px}.custom-rules .rule .actions[data-v-986bd5f5]{flex:0;vertical-align:top!important;padding-top:27px!important}.custom-rules .rule .logical[data-v-986bd5f5]{flex:0}.custom-rules svg[data-v-986bd5f5]{width:14px;height:14px;cursor:pointer}.custom-rules svg.aioseo-trash[data-v-986bd5f5]{color:#dadada;width:20px;height:20px}.custom-rules svg.aioseo-trash[data-v-986bd5f5]:hover{color:#df2a4a}.custom-rules .aioseo-tooltip[data-v-986bd5f5]{margin:0;display:flex}.custom-rules .aioseo-button svg[data-v-986bd5f5]{color:#fff;vertical-align:middle}[dir=ltr] .custom-rules .aioseo-button svg[data-v-986bd5f5]{margin-right:6px}[dir=rtl] .custom-rules .aioseo-button svg[data-v-986bd5f5]{margin-left:6px}.custom-rules .date-range[data-v-986bd5f5]{flex:1;display:flex;width:100%;flex-direction:row;gap:15px}.custom-rules .date-range .aioseo-datepicker[data-v-986bd5f5]{flex:1}.custom-rules .redirects-options-table thead td[data-v-986bd5f5],.custom-rules .redirects-options-table tfoot td[data-v-986bd5f5]{height:50px}.redirects-options-table,.topics-table,.alumni-of-table{position:relative;margin:0;border:none;border-radius:3px;width:100%;border-spacing:0;border-collapse:separate;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:22px;letter-spacing:0px}[dir=ltr] .redirects-options-table,[dir=ltr] .topics-table,[dir=ltr] .alumni-of-table{text-align:left}[dir=rtl] .redirects-options-table,[dir=rtl] .topics-table,[dir=rtl] .alumni-of-table{text-align:right}.redirects-options-table:after,.topics-table:after,.alumni-of-table:after{content:"";width:100%;height:100%;position:absolute;top:0;border-radius:3px;border:1px solid #D0D1D7;pointer-events:none}[dir=ltr] .redirects-options-table:after,[dir=ltr] .topics-table:after,[dir=ltr] .alumni-of-table:after{left:0}[dir=rtl] .redirects-options-table:after,[dir=rtl] .topics-table:after,[dir=rtl] .alumni-of-table:after{right:0}.redirects-options-table tr td,.topics-table tr td,.alumni-of-table tr td{padding:16px 8px!important;background:#fff;vertical-align:middle!important}[dir=ltr] .redirects-options-table tr td:first-child,[dir=ltr] .topics-table tr td:first-child,[dir=ltr] .alumni-of-table tr td:first-child{padding-left:16px!important}[dir=rtl] .redirects-options-table tr td:first-child,[dir=rtl] .topics-table tr td:first-child,[dir=rtl] .alumni-of-table tr td:first-child{padding-right:16px!important}[dir=ltr] .redirects-options-table tr td:last-child,[dir=ltr] .topics-table tr td:last-child,[dir=ltr] .alumni-of-table tr td:last-child{padding-right:16px!important}[dir=rtl] .redirects-options-table tr td:last-child,[dir=rtl] .topics-table tr td:last-child,[dir=rtl] .alumni-of-table tr td:last-child{padding-left:16px!important}.redirects-options-table tr td.arrow-col,.redirects-options-table tr td.actions,.topics-table tr td.arrow-col,.topics-table tr td.actions,.alumni-of-table tr td.arrow-col,.alumni-of-table tr td.actions{text-align:center}.redirects-options-table tr td.arrow-col div,.topics-table tr td.arrow-col div,.alumni-of-table tr td.arrow-col div{display:flex;height:100%;justify-content:center;align-items:center}.redirects-options-table tr td.actions,.topics-table tr td.actions,.alumni-of-table tr td.actions{width:20px}.redirects-options-table tr td.aliased-domain,.topics-table tr td.aliased-domain,.alumni-of-table tr td.aliased-domain{width:100%}.redirects-options-table tr.even td,.topics-table tr.even td,.alumni-of-table tr.even td{background-color:#f9f9fa}.redirects-options-table thead td,.topics-table thead td,.alumni-of-table thead td{height:50px;padding:0 8px!important;border-bottom:1px solid #D0D1D7;color:#434960!important}[dir=ltr] .redirects-options-table thead td:first-child,[dir=ltr] .topics-table thead td:first-child,[dir=ltr] .alumni-of-table thead td:first-child{border-radius:3px 0 0}[dir=rtl] .redirects-options-table thead td:first-child,[dir=rtl] .topics-table thead td:first-child,[dir=rtl] .alumni-of-table thead td:first-child{border-radius:0 3px 0 0}.redirects-options-table thead td:first-child:last-child,.topics-table thead td:first-child:last-child,.alumni-of-table thead td:first-child:last-child{border-radius:3px 3px 0 0}[dir=ltr] .redirects-options-table thead td:last-child,[dir=ltr] .topics-table thead td:last-child,[dir=ltr] .alumni-of-table thead td:last-child{border-radius:0 3px 0 0}[dir=rtl] .redirects-options-table thead td:last-child,[dir=rtl] .topics-table thead td:last-child,[dir=rtl] .alumni-of-table thead td:last-child{border-radius:3px 0 0}[dir=ltr] .redirects-options-table tbody tr:last-child td:first-child,[dir=ltr] .topics-table tbody tr:last-child td:first-child,[dir=ltr] .alumni-of-table tbody tr:last-child td:first-child{border-radius:0 0 0 3px}[dir=rtl] .redirects-options-table tbody tr:last-child td:first-child,[dir=rtl] .topics-table tbody tr:last-child td:first-child,[dir=rtl] .alumni-of-table tbody tr:last-child td:first-child{border-radius:0 0 3px}[dir=ltr] .redirects-options-table tbody tr:last-child td:last-child,[dir=ltr] .topics-table tbody tr:last-child td:last-child,[dir=ltr] .alumni-of-table tbody tr:last-child td:last-child{border-radius:0 0 3px}[dir=rtl] .redirects-options-table tbody tr:last-child td:last-child,[dir=rtl] .topics-table tbody tr:last-child td:last-child,[dir=rtl] .alumni-of-table tbody tr:last-child td:last-child{border-radius:0 0 0 3px}.redirects-options-table tfoot td,.topics-table tfoot td,.alumni-of-table tfoot td{height:50px!important;padding:0 8px!important;border-top:1px solid #D0D1D7}[dir=ltr] .redirects-options-table tfoot td:first-child,[dir=ltr] .topics-table tfoot td:first-child,[dir=ltr] .alumni-of-table tfoot td:first-child{border-radius:0 0 0 3px}[dir=rtl] .redirects-options-table tfoot td:first-child,[dir=rtl] .topics-table tfoot td:first-child,[dir=rtl] .alumni-of-table tfoot td:first-child{border-radius:0 0 3px}.redirects-options-table tfoot td:first-child:last-child,.topics-table tfoot td:first-child:last-child,.alumni-of-table tfoot td:first-child:last-child{border-radius:0 0 3px 3px}[dir=ltr] .redirects-options-table tfoot td:last-child,[dir=ltr] .topics-table tfoot td:last-child,[dir=ltr] .alumni-of-table tfoot td:last-child{border-radius:0 0 3px}[dir=rtl] .redirects-options-table tfoot td:last-child,[dir=rtl] .topics-table tfoot td:last-child,[dir=rtl] .alumni-of-table tfoot td:last-child{border-radius:0 0 0 3px}[dir=ltr] .redirects-options-table tfoot td .aioseo-button+.aioseo-button,[dir=ltr] .topics-table tfoot td .aioseo-button+.aioseo-button,[dir=ltr] .alumni-of-table tfoot td .aioseo-button+.aioseo-button{margin:0 0 0 16px}[dir=rtl] .redirects-options-table tfoot td .aioseo-button+.aioseo-button,[dir=rtl] .topics-table tfoot td .aioseo-button+.aioseo-button,[dir=rtl] .alumni-of-table tfoot td .aioseo-button+.aioseo-button{margin:0 16px 0 0}.redirects-options-table.small tr td,.topics-table.small tr td,.alumni-of-table.small tr td{padding:8px!important}.redirects-options-table.small thead td,.topics-table.small thead td,.alumni-of-table.small thead td{height:38px;padding:0 8px!important}.redirects-options-table svg,.topics-table svg,.alumni-of-table svg{color:#dadada}.redirects-options-table svg.aioseo-trash,.topics-table svg.aioseo-trash,.alumni-of-table svg.aioseo-trash{width:20px;height:20px;cursor:pointer}.redirects-options-table svg.aioseo-trash:hover,.topics-table svg.aioseo-trash:hover,.alumni-of-table svg.aioseo-trash:hover{color:#df2a4a}.redirects-options-table svg.aioseo-right-arrow,.topics-table svg.aioseo-right-arrow,.alumni-of-table svg.aioseo-right-arrow{width:26px;color:#8c8f9a}.redirects-options-table .aioseo-tooltip,.topics-table .aioseo-tooltip,.alumni-of-table .aioseo-tooltip{display:flex}[dir=ltr] .redirects-options-table .aioseo-tooltip,[dir=ltr] .topics-table .aioseo-tooltip,[dir=ltr] .alumni-of-table .aioseo-tooltip{margin-left:0}[dir=rtl] .redirects-options-table .aioseo-tooltip,[dir=rtl] .topics-table .aioseo-tooltip,[dir=rtl] .alumni-of-table .aioseo-tooltip{margin-right:0}.aioseo-redirects.aioseo-modal .bd{padding:20px}.aioseo-add-redirection.edit-url .urls{align-items:flex-start}.aioseo-add-redirection .advanced-settings-link{text-decoration:underline!important}.aioseo-add-redirection.log-404 .urls .source{min-height:103px;align-items:flex-start}.aioseo-add-redirection .generic-error{margin-bottom:20px}.aioseo-add-redirection .aioseo-settings-row .settings-name .name{line-height:1.4;font-size:14px;font-weight:600;margin-bottom:5px}.aioseo-add-redirection .urls{display:flex;flex-direction:row;align-items:flex-start;flex-wrap:wrap}.aioseo-add-redirection .urls .break{flex-basis:100%;height:0}.aioseo-add-redirection .urls .aioseo-description.source-description{margin-top:12px}.aioseo-add-redirection .urls .aioseo-description.source-description+.source-url-options{margin-top:12px}.aioseo-add-redirection .urls .right-arrow,.aioseo-add-redirection .urls .url-arrow{display:flex;align-items:center;justify-content:center;margin:36px 30px}.aioseo-add-redirection .urls .right-arrow:empty,.aioseo-add-redirection .urls .url-arrow:empty{margin-block:0}.aioseo-add-redirection .urls .right-arrow svg.aioseo-right-arrow,.aioseo-add-redirection .urls .url-arrow svg.aioseo-right-arrow{color:#005ae0;max-width:20px}.aioseo-add-redirection .urls .source,.aioseo-add-redirection .urls .target{flex:1;display:flex;align-items:center}.aioseo-add-redirection .urls .source>*,.aioseo-add-redirection .urls .target>*{flex:1}.aioseo-add-redirection .urls .source .aioseo-input,.aioseo-add-redirection .urls .target .aioseo-input{margin-bottom:12px}[dir=ltr] .aioseo-add-redirection .urls .target input{padding-right:30px}[dir=rtl] .aioseo-add-redirection .urls .target input{padding-left:30px}.aioseo-add-redirection .urls .target .append-icon{width:30px;justify-content:flex-end}.aioseo-add-redirection .urls .target .append-icon svg{max-width:16px}[dir=ltr] .aioseo-add-redirection .urls .target .append-icon svg{margin-right:5px}[dir=rtl] .aioseo-add-redirection .urls .target .append-icon svg{margin-left:5px}[dir=ltr] .aioseo-add-redirection .urls .target .append-icon svg:last-of-type{margin-right:0}[dir=rtl] .aioseo-add-redirection .urls .target .append-icon svg:last-of-type{margin-left:0}.aioseo-add-redirection .urls .target .append-icon svg.aioseo-circle-check{color:#00aa63}.aioseo-add-redirection .urls .target .append-icon svg.aioseo-circle-close{color:#df2a4a}.aioseo-add-redirection .urls .target .aioseo-description{margin:8px 0}.aioseo-add-redirection .urls .target .target-url-warning,.aioseo-add-redirection .urls .target .target-url-error{margin-bottom:10px}.aioseo-add-redirection .settings{display:flex;flex-direction:row;margin-top:20px}.aioseo-add-redirection .settings.advanced{flex-direction:column}.aioseo-add-redirection .settings .all-settings{flex-grow:1}.aioseo-add-redirection .settings .all-settings .all-settings-content{display:flex;align-items:center;flex-wrap:wrap}[dir=ltr] .aioseo-add-redirection .settings .all-settings .all-settings-content{margin-right:10px}[dir=rtl] .aioseo-add-redirection .settings .all-settings .all-settings-content{margin-left:10px}.aioseo-add-redirection .settings .all-settings .all-settings-content .advanced-settings-link{margin:16px 0 0;color:#8c8f9a}@media (max-width: 767px){.aioseo-add-redirection .settings .all-settings .all-settings-content{align-items:start}}.aioseo-add-redirection .settings>.actions{margin-top:13px;flex-grow:1;align-self:center}[dir=ltr] .aioseo-add-redirection .settings>.actions{text-align:right}[dir=rtl] .aioseo-add-redirection .settings>.actions{text-align:left}@media (max-width: 1071px){.postbox .aioseo-add-redirection .settings>.actions{margin-top:20px}}@media (max-width: 767px){.aioseo-add-redirection .settings>.actions{margin-top:20px}}.aioseo-add-redirection .settings>.actions button:not(:first-child){margin-top:6px}.aioseo-add-redirection .settings>.actions.advanced{margin-top:18px;align-self:flex-end}.aioseo-add-redirection .settings .redirect-type,.aioseo-add-redirection .settings .query-params{flex:0 1 auto}.aioseo-add-redirection .settings .redirect-type .aioseo-select,.aioseo-add-redirection .settings .query-params .aioseo-select{margin-top:5px}.aioseo-add-redirection .settings .query-params{width:340px}.aioseo-add-redirection .settings .redirect-type{width:300px;font-weight:600}[dir=ltr] .aioseo-add-redirection .settings .redirect-type{margin-right:24px}[dir=rtl] .aioseo-add-redirection .settings .redirect-type{margin-left:24px}.aioseo-add-redirection .settings .redirect-type>*{font-weight:400}.aioseo-add-redirection .settings .aioseo-button{align-self:flex-end}[dir=ltr] .aioseo-add-redirection .settings .cancel-edit-row{margin-left:10px}[dir=rtl] .aioseo-add-redirection .settings .cancel-edit-row{margin-right:10px}@media (min-width: 1200px){[dir=ltr] .aioseo-add-redirection .settings .cancel-edit-row{margin-left:16px}[dir=rtl] .aioseo-add-redirection .settings .cancel-edit-row{margin-right:16px}}.aioseo-modal .aioseo-add-redirection .aioseo-select .multiselect__content-wrapper{max-height:200px!important} all-in-one-seo-pack/dist/Lite/assets/css/Index.-pXrMwOX.css000064400000025135151222736000017316 0ustar00body.modal-open{overflow:hidden}.aioseo-help{display:block;position:fixed;top:0;bottom:0;left:0;right:0;height:100%;width:100vw;background-color:#fff;color:#141b38;opacity:0;max-height:100vh;overflow-y:auto;transition:opacity .3s ease-in 0s;z-index:-999}.aioseo-help.visible{opacity:1;z-index:100000}.aioseo-help .aioseo-help-header{background:#fff;width:100%;height:60px;z-index:1;padding:20px;display:flex}.aioseo-help .aioseo-help-header>.logo{flex:1}.aioseo-help .aioseo-help-docs{margin-bottom:25px;display:none}.aioseo-help .aioseo-help-docs li{margin:0}[dir=ltr] .aioseo-help .aioseo-help-docs li{padding:0 0 14px 4px}[dir=rtl] .aioseo-help .aioseo-help-docs li{padding:0 4px 14px 0}.aioseo-help .aioseo-help-docs .aioseo-help-docs-viewall{margin:10px 0 0}.aioseo-help .aioseo-help-docs .aioseo-help-additional-docs{display:none}.aioseo-help .aioseo-help-docs .aioseo-help-additional-docs.opened{display:block}.aioseo-help .aioseo-help-docs .icon .aioseo-description{width:20px;margin-top:0;position:relative;top:5px;color:#8c8f9a}[dir=ltr] .aioseo-help .aioseo-help-docs .icon .aioseo-description{left:-5px}[dir=rtl] .aioseo-help .aioseo-help-docs .icon .aioseo-description{right:-5px}.aioseo-help .help-content{background-color:#fff;width:100%;max-width:740px;margin:0 auto 50px;padding:0 20px;box-sizing:border-box;z-index:1}.aioseo-help .help-content .aioseo-help-category{border-top:1px solid #E8E8EB;margin:0}.aioseo-help .help-content .aioseo-help-category:last-child{border-bottom:1px solid #E8E8EB}.aioseo-help .help-content .aioseo-help-category header{display:block;position:relative;cursor:pointer;width:100%;height:68px}.aioseo-help .help-content .aioseo-help-category header .title{display:block;font-size:16px;color:#141b38;font-weight:600}[dir=ltr] .aioseo-help .help-content .aioseo-help-category header .title{padding:23px 11px 23px 30px}[dir=rtl] .aioseo-help .help-content .aioseo-help-category header .title{padding:23px 30px 23px 11px}.aioseo-help .help-content .aioseo-help-category .folder-open{position:absolute;top:24px;width:20px;height:20px;color:#141b38}.aioseo-help .help-content .aioseo-help-category .dashicons-arrow-right-alt2{position:absolute;top:20px;transition:transform .3s ease-out}[dir=ltr] .aioseo-help .help-content .aioseo-help-category .dashicons-arrow-right-alt2{right:0}[dir=rtl] .aioseo-help .help-content .aioseo-help-category .dashicons-arrow-right-alt2{left:0}.aioseo-help .help-content .aioseo-help-category.opened .aioseo-help-docs{display:block}[dir=ltr] .aioseo-help .help-content .aioseo-help-category.opened .dashicons-arrow-right-alt2{transform:rotate(90deg)}[dir=rtl] .aioseo-help .help-content .aioseo-help-category.opened .dashicons-arrow-right-alt2{transform:rotate(-90deg)}.aioseo-help .help-content #aioseo-help-search{position:relative;background-color:#fff;text-align:center;top:0;padding:20px 0 50px}.aioseo-help .help-content #aioseo-help-result .aioseo-help-docs{display:block}.aioseo-help .help-content #aioseo-help-footer{display:flex;flex-wrap:nowrap;justify-content:space-between;align-items:center;margin:50px 0 0}@media screen and (max-width: 750px){.aioseo-help .help-content #aioseo-help-footer{display:block}}.aioseo-help .help-content #aioseo-help-footer .aioseo-help-footer-block{box-sizing:border-box;max-width:325px;border:1px solid #8C8F9A;border-radius:6px;text-align:center}@media screen and (max-width: 750px){.aioseo-help .help-content #aioseo-help-footer .aioseo-help-footer-block{max-width:100%}}[dir=ltr] .aioseo-help .help-content #aioseo-help-footer .aioseo-help-footer-block:first-child{margin-right:20px}[dir=rtl] .aioseo-help .help-content #aioseo-help-footer .aioseo-help-footer-block:first-child{margin-left:20px}@media screen and (max-width: 750px){.aioseo-help .help-content #aioseo-help-footer .aioseo-help-footer-block:first-child{margin:0 0 20px}}.aioseo-help .help-content #aioseo-help-footer .aioseo-help-footer-block a{display:block;padding:25px;text-decoration:none;color:#141b38}.aioseo-help .help-content #aioseo-help-footer .aioseo-help-footer-block a h3{color:#141b38}.aioseo-help .help-content #aioseo-help-footer .aioseo-help-footer-block a span{font-size:16px;color:#005ae0;text-decoration:underline}.aioseo-help .help-content #aioseo-help-footer .aioseo-help-footer-block a:hover span{text-decoration:none}.aioseo-help .help-content #aioseo-help-footer .aioseo-description,.aioseo-help .help-content #aioseo-help-footer .aioseo-support{width:48px;margin-top:0;color:#141b38}#aioseo-help-logo{width:132px;height:26px;z-index:2}#aioseo-help-close{color:#141b38;width:20px;height:20px;cursor:pointer;opacity:.7;transition:all .05s;z-index:2}@media screen and (max-width: 750px){#aioseo-help-close{top:20px}[dir=ltr] #aioseo-help-close{right:20px}[dir=rtl] #aioseo-help-close{left:20px}}.aioseo-notification>div .body{font-size:14px;line-height:22px;flex:1}.aioseo-notification>div .body .title .date{font-weight:initial;color:#8c8f9a;font-size:12px}.aioseo-notification>div .body .notification-content img{max-width:100%}.aioseo-notification{margin-bottom:20px}.aioseo-notification>div{display:flex;align-items:flex-start;padding-bottom:10px;border-bottom:1px solid #E8E8EB}[dir=ltr] .aioseo-notification>div .icon{margin-right:14px}[dir=rtl] .aioseo-notification>div .icon{margin-left:14px}.aioseo-notification>div .icon svg{width:20px;height:20px;color:#00aa63}.aioseo-notification>div .icon svg.warning{color:#f18200}.aioseo-notification>div .icon svg.info{color:#005ae0}.aioseo-notification>div .icon svg.success{color:#00aa63}.aioseo-notification>div .icon svg.error{color:#df2a4a}.aioseo-notification>div .body{flex:1}[dir=ltr] .aioseo-notification>div .body{margin-right:20px}[dir=rtl] .aioseo-notification>div .body{margin-left:20px}.aioseo-notification>div .body .title{font-size:14px;font-weight:600;color:#141b38;margin-bottom:9px;display:flex;align-items:center}.aioseo-notification>div .body .title div:first-child{flex:1;line-height:22px}[dir=ltr] .aioseo-notification>div .body .title div:first-child{margin-right:5px}[dir=rtl] .aioseo-notification>div .body .title div:first-child{margin-left:5px}.aioseo-notification>div .body .notification-content{margin-bottom:12px;max-width:400px}.aioseo-notification>div .body .actions{flex-wrap:wrap;display:flex;align-items:center}.aioseo-notification>div .body .actions>*{margin-bottom:12px}[dir=ltr] .aioseo-notification>div .body .actions .aioseo-button{margin-right:20px}[dir=rtl] .aioseo-notification>div .body .actions .aioseo-button{margin-left:20px}.aioseo-notification>div .body .actions .dismiss{color:#8c8f9a;font-size:14px}.aioseo-notification-cards .aioseo-notification:last-child>div{border-bottom:none;margin-bottom:none}.aioseo-notification-cards .no-notifications{display:flex;align-items:center;flex-direction:column;padding-top:100px;font-size:14px;line-height:22px;color:#8c8f9a}.aioseo-notification-cards .no-notifications img{width:30%;max-width:108px;height:auto}.aioseo-notification-cards .no-notifications .great-scott{margin:20px 0 8px;font-size:18px;font-weight:600;color:#434960}.aioseo-notification-cards .no-notifications .no-new-notifications{margin-bottom:20px}body.aioseo-show-notifications .aioseo-main{pointer-events:none;-webkit-user-select:none;user-select:none}.aioseo-notifications a.dismiss{color:#8c8f9a;font-size:14px}.aioseo-notifications .notification-menu{display:flex;flex-direction:column;height:calc(100% - var(--wp-admin--admin-bar--height, 32px));width:100%;max-width:570px;position:fixed;z-index:1053;top:0;bottom:0;background-color:#fff;overflow-x:hidden;transition:.5s}[dir=ltr] .aioseo-notifications .notification-menu{right:0}[dir=rtl] .aioseo-notifications .notification-menu{left:0}.aioseo-notifications .notification-menu .notification-header{height:64px;display:flex;align-items:center;padding:0 20px;color:#fff;background-color:#005ae0}.aioseo-notifications .notification-menu .notification-header .new-notifications{font-size:18px;font-weight:600}.aioseo-notifications .notification-menu .notification-header .dismissed-notifications{flex:1 1 auto}[dir=ltr] .aioseo-notifications .notification-menu .notification-header .dismissed-notifications{margin-left:25px}[dir=rtl] .aioseo-notifications .notification-menu .notification-header .dismissed-notifications{margin-right:25px}.aioseo-notifications .notification-menu .notification-header .dismissed-notifications a{font-size:12px;color:#fff}.aioseo-notifications .notification-menu .notification-header svg.aioseo-close{width:14px;height:14px;cursor:pointer}.aioseo-notifications .notification-menu .notification-header svg.aioseo-close:hover{color:#ccc}.aioseo-notifications .notification-menu .notification-cards{flex:1;padding:24px;overflow:auto}.aioseo-notifications .notification-menu .notification-footer{height:90px;padding:24px;display:flex;align-items:center}.aioseo-notifications .notification-menu .notification-footer div.pagination{flex:1;display:flex;align-items:center}.aioseo-notifications .notification-menu .notification-footer div.pagination .page-number{font-size:13px;color:#141b38;background:#e8e8eb;height:30px;width:30px;display:flex;align-items:center;justify-content:center;border-radius:2px;cursor:pointer}[dir=ltr] .aioseo-notifications .notification-menu .notification-footer div.pagination .page-number{margin-right:4px}[dir=rtl] .aioseo-notifications .notification-menu .notification-footer div.pagination .page-number{margin-left:4px}[dir=ltr] .aioseo-notifications .notification-menu .notification-footer div.pagination .page-number:last-child{margin-right:0}[dir=rtl] .aioseo-notifications .notification-menu .notification-footer div.pagination .page-number:last-child{margin-left:0}.aioseo-notifications .notification-menu .notification-footer div.pagination .page-number.active,.aioseo-notifications .notification-menu .notification-footer div.pagination .page-number:hover{color:#fff;background-color:#005ae0}.aioseo-notifications .overlay{position:fixed;z-index:1052;top:0;bottom:0;background-color:#141b38;opacity:.5;transition:.5s}[dir=ltr] .aioseo-notifications .overlay{right:0;left:160px}[dir=rtl] .aioseo-notifications .overlay{left:0;right:160px}.aioseo-notifications .notifications-fade-enter-active,.aioseo-notifications .notifications-fade-leave-active{transition:opacity .5s}.aioseo-notifications .notifications-fade-enter-from,.aioseo-notifications .notifications-fade-leave-to{opacity:0}.aioseo-notifications .notifications-slide-enter-active,.aioseo-notifications .notifications-slide-leave-active{transition:all .5s ease-in-out}[dir=ltr] .aioseo-notifications .notifications-slide-enter-from,[dir=ltr] .aioseo-notifications .notifications-slide-leave-to{right:-570px}[dir=rtl] .aioseo-notifications .notifications-slide-enter-from,[dir=rtl] .aioseo-notifications .notifications-slide-leave-to{left:-570px} all-in-one-seo-pack/dist/Lite/assets/css/IndexStatus.DsKyilZo.css000064400000000177151222736000020630 0ustar00.aioseo-index-status{display:inline-flex}.aioseo-index-status .aioseo-circle-check-solid{width:30px;height:30px;color:#00aa63} all-in-one-seo-pack/dist/Lite/assets/css/integrations.lBZ_Gsn9.css000064400000121647151222736000020750 0ustar00.et-fb #aioseo-settings{position:absolute;width:36px;height:36px;background-color:#fff!important;z-index:10;pointer-events:auto;cursor:pointer;visibility:hidden;border-radius:50%!important}.et-fb #aioseo-settings:before{mask-image:url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iI2E3YWFhZCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBjbGFzcz0iYWlvc2VvLWdlYXIiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNOS45ODU0MiAxOS45NzA4QzE1LjUwMDIgMTkuOTcwOCAxOS45NzA4IDE1LjUwMDIgMTkuOTcwOCA5Ljk4NTQyQzE5Ljk3MDggNC40NzA2MyAxNS41MDAyIDAgOS45ODU0MiAwQzQuNDcwNjMgMCAwIDQuNDcwNjMgMCA5Ljk4NTQyQzAgMTUuNTAwMiA0LjQ3MDYzIDE5Ljk3MDggOS45ODU0MiAxOS45NzA4Wk04LjM5NTQxIDMuNjU0NjRDOC4yNjAxNiAzLjQ0ODUgOC4wMDk2IDMuMzUyMTEgNy43Nzk4NSAzLjQzMzI3QzcuNTE4MTYgMy41MjU3MiA3LjI2MjE4IDMuNjM0NDUgNy4wMTM0OSAzLjc1ODhDNi43OTUxOSAzLjg2Nzk2IDYuNjg1NjYgNC4xMTczMSA2LjczMzcyIDQuMzYwNDlMNi45MDQ5MyA1LjIyNjk0QzYuOTQ5IDUuNDQ5OTYgNi44NTggNS42NzYzIDYuNjg1MjIgNS44MjAwOUM2LjQxMjE2IDYuMDQ3MzQgNi4xNjAwNyA2LjMwNDI2IDUuOTM0MjEgNi41ODg2NEM1Ljc5MzgzIDYuNzY1MzkgNS41NzIzMyA2Ljg1OTA3IDUuMzUzNjEgNi44MTQ4OUw0LjUwNDI0IDYuNjQzM0M0LjI2NTY0IDYuNTk1MSA0LjAyMTU3IDYuNzA3ODggMy45MTU0NCA2LjkzMTIxQzMuODU1NDkgNy4wNTczOCAzLjc5ODg5IDcuMTg2MiAzLjc0NTgzIDcuMzE3NThDMy42OTI3NiA3LjQ0ODk2IDMuNjQzOTcgNy41ODEwNSAzLjU5OTM4IDcuNzEzNjlDMy41MjA0OCA3Ljk0ODQ3IDMuNjE1NzkgOC4yMDM5OCAzLjgxODM5IDguMzQxMzNMNC41Mzk1OCA4LjgzMDI3QzQuNzI1MjkgOC45NTYxNyA0LjgxNzc4IDkuMTgxOSA0Ljc5NTM0IDkuNDA4MjZDNC43NTkyNSA5Ljc3MjQ0IDQuNzYwNzIgMTAuMTM2IDQuNzk3NTYgMTAuNDkzNkM0LjgyMDg3IDEwLjcxOTggNC43MjkxNSAxMC45NDU5IDQuNTQzODggMTEuMDcyNEwzLjgyNDA4IDExLjU2NDJDMy42MjIwNSAxMS43MDIyIDMuNTI3NTkgMTEuOTU3OSAzLjYwNzEzIDEyLjE5MjNDMy42OTc3NCAxMi40NTkzIDMuODA0MyAxMi43MjA1IDMuOTI2MTUgMTIuOTc0M0M0LjAzMzEzIDEzLjE5NzEgNC4yNzc0OSAxMy4zMDg4IDQuNTE1ODEgMTMuMjU5OEw1LjM2NDk1IDEzLjA4NTFDNS41ODM1IDEzLjA0MDEgNS44MDUzMyAxMy4xMzMgNS45NDYyMyAxMy4zMDkzQzYuMTY4OTMgMTMuNTg3OSA2LjQyMDcxIDEzLjg0NTEgNi42OTk0IDE0LjA3NTZDNi44NzI2MSAxNC4yMTg4IDYuOTY0NDIgMTQuNDQ0OCA2LjkyMTEyIDE0LjY2OEw2Ljc1Mjk2IDE1LjUzNDhDNi43MDU3MiAxNS43NzgyIDYuODE2MjUgMTYuMDI3MyA3LjAzNTExIDE2LjEzNTZDNy4xNTg3NiAxNi4xOTY3IDcuMjg1IDE2LjI1NDUgNy40MTM3NSAxNi4zMDg2QzcuNTQyNTEgMTYuMzYyOCA3LjY3MTk2IDE2LjQxMjYgNy44MDE5NSAxNi40NTgxQzguMTgyMjQgMTYuNTkxMiA4LjcxNDQ5IDE2LjExNDcgOS4xMDggMTUuNzYyNUM5LjMwMjA1IDE1LjU4ODggOS40MjE3NCAxNS4zNDMgOS40MjMwMSAxNS4wNzk4QzkuNDIzMDEgMTUuMDc4NCA5LjQyMzAyIDE1LjA3NyA5LjQyMzAyIDE1LjA3NTZMOS40MjMwMSAxMy42MjYzQzkuNDIzMDEgMTMuNjEwOSA5LjQyMzYgMTMuNTk1NyA5LjQyNDc2IDEzLjU4MDZDOC4yNjI0OCAxMy4yOTcxIDcuMzk4MzggMTIuMjMwMSA3LjM5ODM4IDEwLjk1NzJWOS40MTgyM0M3LjM5ODM4IDkuMzAxMjUgNy40OTEzMSA5LjIwNjQyIDcuNjA1OTYgOS4yMDY0Mkg4LjMyNTg0VjcuNjkyMkM4LjMyNTg0IDcuNDgzMTIgOC40OTE5MyA3LjMxMzY0IDguNjk2ODMgNy4zMTM2NEM4LjkwMTcxIDcuMzEzNjQgOS4wNjc4MSA3LjQ4MzEyIDkuMDY3ODEgNy42OTIyVjkuMjA2NDJIMTEuMDE1NVY3LjY5MjJDMTEuMDE1NSA3LjQ4MzEyIDExLjE4MTYgNy4zMTM2NCAxMS4zODY1IDcuMzEzNjRDMTEuNTkxNCA3LjMxMzY0IDExLjc1NzUgNy40ODMxMiAxMS43NTc1IDcuNjkyMlY5LjIwNjQySDEyLjQ3NzNDMTIuNTkyIDkuMjA2NDIgMTIuNjg0OSA5LjMwMTI1IDEyLjY4NDkgOS40MTgyM1YxMC45NTcyQzEyLjY4NDkgMTIuMjcwNCAxMS43NjUzIDEzLjM2NDMgMTAuNTQ3NCAxMy42MDUxQzEwLjU0NzcgMTMuNjEyMSAxMC41NDc4IDEzLjYxOTIgMTAuNTQ3OCAxMy42MjYzTDEwLjU0NzggMTUuMDY5NEMxMC41NDc4IDE1LjMzNzcgMTAuNjcxMSAxNS41ODc5IDEwLjg3MSAxNS43NjIyQzExLjI3MTUgMTYuMTExNSAxMS44MTI5IDE2LjU4MzcgMTIuMTkxIDE2LjQ1MDJDMTIuNDUyNyAxNi4zNTc3IDEyLjcwODYgMTYuMjQ5IDEyLjk1NzMgMTYuMTI0NkMxMy4xNzU2IDE2LjAxNTUgMTMuMjg1MiAxNS43NjYxIDEzLjIzNzEgMTUuNTIyOUwxMy4wNjU5IDE0LjY1NjVDMTMuMDIxOCAxNC40MzM0IDEzLjExMjggMTQuMjA3MSAxMy4yODU2IDE0LjA2MzNDMTMuNTU4NyAxMy44MzYxIDEzLjgxMDcgMTMuNTc5MiAxNC4wMzY2IDEzLjI5NDhDMTQuMTc3IDEzLjExOCAxNC4zOTg1IDEzLjAyNDQgMTQuNjE3MiAxMy4wNjg1TDE1LjQ2NjYgMTMuMjQwMUMxNS43MDUyIDEzLjI4ODMgMTUuOTQ5MyAxMy4xNzU2IDE2LjA1NTQgMTIuOTUyMkMxNi4xMTUzIDEyLjgyNjEgMTYuMTcxOSAxMi42OTcyIDE2LjIyNSAxMi41NjU5QzE2LjI3ODEgMTIuNDM0NSAxNi4zMjY5IDEyLjMwMjQgMTYuMzcxNCAxMi4xNjk4QzE2LjQ1MDMgMTEuOTM1IDE2LjM1NSAxMS42Nzk1IDE2LjE1MjQgMTEuNTQyMUwxNS40MzEyIDExLjA1MzJDMTUuMjQ1NSAxMC45MjczIDE1LjE1MyAxMC43MDE1IDE1LjE3NTUgMTAuNDc1MkMxNS4yMTE2IDEwLjExMSAxNS4yMTAxIDkuNzQ3NDQgMTUuMTczMyA5LjM4OTg2QzE1LjE0OTkgOS4xNjM2MSAxNS4yNDE3IDguOTM3NTcgMTUuNDI2OSA4LjgxMUwxNi4xNDY3IDguMzE5MjdDMTYuMzQ4OCA4LjE4MTI2IDE2LjQ0MzIgNy45MjU1OCAxNi4zNjM3IDcuNjkxMTVDMTYuMjczMSA3LjQyNDExIDE2LjE2NjUgNy4xNjI5MiAxNi4wNDQ3IDYuOTA5MTVDMTUuOTM3NyA2LjY4NjM4IDE1LjY5MzMgNi41NzQ2MiAxNS40NTUgNi42MjM2NkwxNC42MDU5IDYuNzk4MzdDMTQuMzg3MyA2Ljg0MzM0IDE0LjE2NTUgNi43NTA0OCAxNC4wMjQ2IDYuNTc0MThDMTMuODAxOSA2LjI5NTU0IDEzLjU1MDEgNi4wMzgzMiAxMy4yNzE0IDUuODA3ODRDMTMuMDk4MiA1LjY2NDYgMTMuMDA2NCA1LjQzODU4IDEzLjA0OTcgNS4yMTU0TDEzLjIxNzkgNC4zNDg2OEMxMy4yNjUxIDQuMTA1MjEgMTMuMTU0NiAzLjg1NjE2IDEyLjkzNTcgMy43NDc4N0MxMi44MTIxIDMuNjg2NjkgMTIuNjg1OCAzLjYyODk1IDEyLjU1NzEgMy41NzQ4QzEyLjQyODMgMy41MjA2NSAxMi4yOTg5IDMuNDcwODYgMTIuMTY4OSAzLjQyNTM3QzExLjkzODggMy4zNDQ4NSAxMS42ODg0IDMuNDQyMTEgMTEuNTUzOCAzLjY0ODg0TDExLjA3NDYgNC4zODQ3NUMxMC45NTEzIDQuNTc0MjUgMTAuNzMgNC42Njg2MiAxMC41MDgyIDQuNjQ1NzNDMTAuMTUxMyA0LjYwODkgOS43OTUwMiA0LjYxMDM5IDkuNDQ0NTkgNC42NDc5OUM5LjIyMjg2IDQuNjcxNzcgOS4wMDEzNCA0LjU3ODE4IDguODc3MzEgNC4zODkxM0w4LjM5NTQxIDMuNjU0NjRaIiBmaWxsPSIjYTdhYWFkIiAvPjwvc3ZnPg==);-webkit-mask-image:url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iI2E3YWFhZCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBjbGFzcz0iYWlvc2VvLWdlYXIiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNOS45ODU0MiAxOS45NzA4QzE1LjUwMDIgMTkuOTcwOCAxOS45NzA4IDE1LjUwMDIgMTkuOTcwOCA5Ljk4NTQyQzE5Ljk3MDggNC40NzA2MyAxNS41MDAyIDAgOS45ODU0MiAwQzQuNDcwNjMgMCAwIDQuNDcwNjMgMCA5Ljk4NTQyQzAgMTUuNTAwMiA0LjQ3MDYzIDE5Ljk3MDggOS45ODU0MiAxOS45NzA4Wk04LjM5NTQxIDMuNjU0NjRDOC4yNjAxNiAzLjQ0ODUgOC4wMDk2IDMuMzUyMTEgNy43Nzk4NSAzLjQzMzI3QzcuNTE4MTYgMy41MjU3MiA3LjI2MjE4IDMuNjM0NDUgNy4wMTM0OSAzLjc1ODhDNi43OTUxOSAzLjg2Nzk2IDYuNjg1NjYgNC4xMTczMSA2LjczMzcyIDQuMzYwNDlMNi45MDQ5MyA1LjIyNjk0QzYuOTQ5IDUuNDQ5OTYgNi44NTggNS42NzYzIDYuNjg1MjIgNS44MjAwOUM2LjQxMjE2IDYuMDQ3MzQgNi4xNjAwNyA2LjMwNDI2IDUuOTM0MjEgNi41ODg2NEM1Ljc5MzgzIDYuNzY1MzkgNS41NzIzMyA2Ljg1OTA3IDUuMzUzNjEgNi44MTQ4OUw0LjUwNDI0IDYuNjQzM0M0LjI2NTY0IDYuNTk1MSA0LjAyMTU3IDYuNzA3ODggMy45MTU0NCA2LjkzMTIxQzMuODU1NDkgNy4wNTczOCAzLjc5ODg5IDcuMTg2MiAzLjc0NTgzIDcuMzE3NThDMy42OTI3NiA3LjQ0ODk2IDMuNjQzOTcgNy41ODEwNSAzLjU5OTM4IDcuNzEzNjlDMy41MjA0OCA3Ljk0ODQ3IDMuNjE1NzkgOC4yMDM5OCAzLjgxODM5IDguMzQxMzNMNC41Mzk1OCA4LjgzMDI3QzQuNzI1MjkgOC45NTYxNyA0LjgxNzc4IDkuMTgxOSA0Ljc5NTM0IDkuNDA4MjZDNC43NTkyNSA5Ljc3MjQ0IDQuNzYwNzIgMTAuMTM2IDQuNzk3NTYgMTAuNDkzNkM0LjgyMDg3IDEwLjcxOTggNC43MjkxNSAxMC45NDU5IDQuNTQzODggMTEuMDcyNEwzLjgyNDA4IDExLjU2NDJDMy42MjIwNSAxMS43MDIyIDMuNTI3NTkgMTEuOTU3OSAzLjYwNzEzIDEyLjE5MjNDMy42OTc3NCAxMi40NTkzIDMuODA0MyAxMi43MjA1IDMuOTI2MTUgMTIuOTc0M0M0LjAzMzEzIDEzLjE5NzEgNC4yNzc0OSAxMy4zMDg4IDQuNTE1ODEgMTMuMjU5OEw1LjM2NDk1IDEzLjA4NTFDNS41ODM1IDEzLjA0MDEgNS44MDUzMyAxMy4xMzMgNS45NDYyMyAxMy4zMDkzQzYuMTY4OTMgMTMuNTg3OSA2LjQyMDcxIDEzLjg0NTEgNi42OTk0IDE0LjA3NTZDNi44NzI2MSAxNC4yMTg4IDYuOTY0NDIgMTQuNDQ0OCA2LjkyMTEyIDE0LjY2OEw2Ljc1Mjk2IDE1LjUzNDhDNi43MDU3MiAxNS43NzgyIDYuODE2MjUgMTYuMDI3MyA3LjAzNTExIDE2LjEzNTZDNy4xNTg3NiAxNi4xOTY3IDcuMjg1IDE2LjI1NDUgNy40MTM3NSAxNi4zMDg2QzcuNTQyNTEgMTYuMzYyOCA3LjY3MTk2IDE2LjQxMjYgNy44MDE5NSAxNi40NTgxQzguMTgyMjQgMTYuNTkxMiA4LjcxNDQ5IDE2LjExNDcgOS4xMDggMTUuNzYyNUM5LjMwMjA1IDE1LjU4ODggOS40MjE3NCAxNS4zNDMgOS40MjMwMSAxNS4wNzk4QzkuNDIzMDEgMTUuMDc4NCA5LjQyMzAyIDE1LjA3NyA5LjQyMzAyIDE1LjA3NTZMOS40MjMwMSAxMy42MjYzQzkuNDIzMDEgMTMuNjEwOSA5LjQyMzYgMTMuNTk1NyA5LjQyNDc2IDEzLjU4MDZDOC4yNjI0OCAxMy4yOTcxIDcuMzk4MzggMTIuMjMwMSA3LjM5ODM4IDEwLjk1NzJWOS40MTgyM0M3LjM5ODM4IDkuMzAxMjUgNy40OTEzMSA5LjIwNjQyIDcuNjA1OTYgOS4yMDY0Mkg4LjMyNTg0VjcuNjkyMkM4LjMyNTg0IDcuNDgzMTIgOC40OTE5MyA3LjMxMzY0IDguNjk2ODMgNy4zMTM2NEM4LjkwMTcxIDcuMzEzNjQgOS4wNjc4MSA3LjQ4MzEyIDkuMDY3ODEgNy42OTIyVjkuMjA2NDJIMTEuMDE1NVY3LjY5MjJDMTEuMDE1NSA3LjQ4MzEyIDExLjE4MTYgNy4zMTM2NCAxMS4zODY1IDcuMzEzNjRDMTEuNTkxNCA3LjMxMzY0IDExLjc1NzUgNy40ODMxMiAxMS43NTc1IDcuNjkyMlY5LjIwNjQySDEyLjQ3NzNDMTIuNTkyIDkuMjA2NDIgMTIuNjg0OSA5LjMwMTI1IDEyLjY4NDkgOS40MTgyM1YxMC45NTcyQzEyLjY4NDkgMTIuMjcwNCAxMS43NjUzIDEzLjM2NDMgMTAuNTQ3NCAxMy42MDUxQzEwLjU0NzcgMTMuNjEyMSAxMC41NDc4IDEzLjYxOTIgMTAuNTQ3OCAxMy42MjYzTDEwLjU0NzggMTUuMDY5NEMxMC41NDc4IDE1LjMzNzcgMTAuNjcxMSAxNS41ODc5IDEwLjg3MSAxNS43NjIyQzExLjI3MTUgMTYuMTExNSAxMS44MTI5IDE2LjU4MzcgMTIuMTkxIDE2LjQ1MDJDMTIuNDUyNyAxNi4zNTc3IDEyLjcwODYgMTYuMjQ5IDEyLjk1NzMgMTYuMTI0NkMxMy4xNzU2IDE2LjAxNTUgMTMuMjg1MiAxNS43NjYxIDEzLjIzNzEgMTUuNTIyOUwxMy4wNjU5IDE0LjY1NjVDMTMuMDIxOCAxNC40MzM0IDEzLjExMjggMTQuMjA3MSAxMy4yODU2IDE0LjA2MzNDMTMuNTU4NyAxMy44MzYxIDEzLjgxMDcgMTMuNTc5MiAxNC4wMzY2IDEzLjI5NDhDMTQuMTc3IDEzLjExOCAxNC4zOTg1IDEzLjAyNDQgMTQuNjE3MiAxMy4wNjg1TDE1LjQ2NjYgMTMuMjQwMUMxNS43MDUyIDEzLjI4ODMgMTUuOTQ5MyAxMy4xNzU2IDE2LjA1NTQgMTIuOTUyMkMxNi4xMTUzIDEyLjgyNjEgMTYuMTcxOSAxMi42OTcyIDE2LjIyNSAxMi41NjU5QzE2LjI3ODEgMTIuNDM0NSAxNi4zMjY5IDEyLjMwMjQgMTYuMzcxNCAxMi4xNjk4QzE2LjQ1MDMgMTEuOTM1IDE2LjM1NSAxMS42Nzk1IDE2LjE1MjQgMTEuNTQyMUwxNS40MzEyIDExLjA1MzJDMTUuMjQ1NSAxMC45MjczIDE1LjE1MyAxMC43MDE1IDE1LjE3NTUgMTAuNDc1MkMxNS4yMTE2IDEwLjExMSAxNS4yMTAxIDkuNzQ3NDQgMTUuMTczMyA5LjM4OTg2QzE1LjE0OTkgOS4xNjM2MSAxNS4yNDE3IDguOTM3NTcgMTUuNDI2OSA4LjgxMUwxNi4xNDY3IDguMzE5MjdDMTYuMzQ4OCA4LjE4MTI2IDE2LjQ0MzIgNy45MjU1OCAxNi4zNjM3IDcuNjkxMTVDMTYuMjczMSA3LjQyNDExIDE2LjE2NjUgNy4xNjI5MiAxNi4wNDQ3IDYuOTA5MTVDMTUuOTM3NyA2LjY4NjM4IDE1LjY5MzMgNi41NzQ2MiAxNS40NTUgNi42MjM2NkwxNC42MDU5IDYuNzk4MzdDMTQuMzg3MyA2Ljg0MzM0IDE0LjE2NTUgNi43NTA0OCAxNC4wMjQ2IDYuNTc0MThDMTMuODAxOSA2LjI5NTU0IDEzLjU1MDEgNi4wMzgzMiAxMy4yNzE0IDUuODA3ODRDMTMuMDk4MiA1LjY2NDYgMTMuMDA2NCA1LjQzODU4IDEzLjA0OTcgNS4yMTU0TDEzLjIxNzkgNC4zNDg2OEMxMy4yNjUxIDQuMTA1MjEgMTMuMTU0NiAzLjg1NjE2IDEyLjkzNTcgMy43NDc4N0MxMi44MTIxIDMuNjg2NjkgMTIuNjg1OCAzLjYyODk1IDEyLjU1NzEgMy41NzQ4QzEyLjQyODMgMy41MjA2NSAxMi4yOTg5IDMuNDcwODYgMTIuMTY4OSAzLjQyNTM3QzExLjkzODggMy4zNDQ4NSAxMS42ODg0IDMuNDQyMTEgMTEuNTUzOCAzLjY0ODg0TDExLjA3NDYgNC4zODQ3NUMxMC45NTEzIDQuNTc0MjUgMTAuNzMgNC42Njg2MiAxMC41MDgyIDQuNjQ1NzNDMTAuMTUxMyA0LjYwODkgOS43OTUwMiA0LjYxMDM5IDkuNDQ0NTkgNC42NDc5OUM5LjIyMjg2IDQuNjcxNzcgOS4wMDEzNCA0LjU3ODE4IDguODc3MzEgNC4zODkxM0w4LjM5NTQxIDMuNjU0NjRaIiBmaWxsPSIjYTdhYWFkIiAvPjwvc3ZnPg==);mask-size:100% 100%;-webkit-mask-size:100% 100%;margin:0 auto;content:".";color:transparent;background-color:#6d7882;display:block;fill:#fff;width:40px;height:40px;background-color:#6c2eb9}[dir=ltr] .et-fb #aioseo-settings:before{margin:-2px 0 0 -2px}[dir=rtl] .et-fb #aioseo-settings:before{margin:-2px -2px 0 0}.et-fb #aioseo-app-modal{position:absolute;z-index:1;top:0;height:0;width:0;overflow:visible}[dir=ltr] .et-fb #aioseo-app-modal{left:0}[dir=rtl] .et-fb #aioseo-app-modal{right:0}.et-fb.aioseo-settings-bar-is-inactive #aioseo-settings{visibility:visible}[dir=ltr] .et-fb.aioseo-settings-bar-is-inactive #aioseo-settings.aioseo-settings-bar-root-top,[dir=ltr] .et-fb.aioseo-settings-bar-is-inactive #aioseo-settings.aioseo-settings-bar-root-bottom,[dir=ltr] .et-fb.aioseo-settings-bar-is-inactive #aioseo-settings.aioseo-settings-bar-root-top-left,[dir=ltr] .et-fb.aioseo-settings-bar-is-inactive #aioseo-settings.aioseo-settings-bar-root-bottom-left{left:calc(50% + 45px)}[dir=rtl] .et-fb.aioseo-settings-bar-is-inactive #aioseo-settings.aioseo-settings-bar-root-top,[dir=rtl] .et-fb.aioseo-settings-bar-is-inactive #aioseo-settings.aioseo-settings-bar-root-bottom,[dir=rtl] .et-fb.aioseo-settings-bar-is-inactive #aioseo-settings.aioseo-settings-bar-root-top-left,[dir=rtl] .et-fb.aioseo-settings-bar-is-inactive #aioseo-settings.aioseo-settings-bar-root-bottom-left,[dir=ltr] .et-fb.aioseo-settings-bar-is-inactive #aioseo-settings.aioseo-settings-bar-root-top-right,[dir=ltr] .et-fb.aioseo-settings-bar-is-inactive #aioseo-settings.aioseo-settings-bar-root-bottom-right{right:calc(50% + 45px)}[dir=rtl] .et-fb.aioseo-settings-bar-is-inactive #aioseo-settings.aioseo-settings-bar-root-top-right,[dir=rtl] .et-fb.aioseo-settings-bar-is-inactive #aioseo-settings.aioseo-settings-bar-root-bottom-right{left:calc(50% + 45px)}.et-fb.aioseo-settings-bar-is-inactive #aioseo-settings.aioseo-settings-bar-root-left,.et-fb.aioseo-settings-bar-is-inactive #aioseo-settings.aioseo-settings-bar-root-right{top:calc(50% + 45px)}.et-fb.aioseo-settings-bar-is-active #aioseo-settings{visibility:visible}.et-fb.aioseo-settings-bar-is-active #aioseo-settings.aioseo-settings-bar-root-is-mobile-top-left,.et-fb.aioseo-settings-bar-is-active #aioseo-settings.aioseo-settings-bar-root-is-mobile-top-right{top:calc(100% + 24px)}.et-fb.aioseo-settings-bar-is-active #aioseo-settings.aioseo-settings-bar-root-is-mobile-bottom-left,.et-fb.aioseo-settings-bar-is-active #aioseo-settings.aioseo-settings-bar-root-is-mobile-bottom-right{bottom:calc(100% + 24px)}.et-fb.aioseo-settings-bar-is-active #aioseo-settings.aioseo-settings-bar-root-is-mobile-left,.et-fb.aioseo-settings-bar-is-active #aioseo-settings.aioseo-settings-bar-root-is-mobile-right{top:calc(100% + 24px)}[dir=ltr] .et-fb.aioseo-settings-bar-is-active #aioseo-settings.aioseo-settings-bar-root-is-desktop-top,[dir=ltr] .et-fb.aioseo-settings-bar-is-active #aioseo-settings.aioseo-settings-bar-root-is-desktop-bottom,[dir=ltr] .et-fb.aioseo-settings-bar-is-active #aioseo-settings.aioseo-settings-bar-root-is-desktop-top-left,[dir=ltr] .et-fb.aioseo-settings-bar-is-active #aioseo-settings.aioseo-settings-bar-root-is-desktop-bottom-left{left:calc(100% + 24px)}[dir=rtl] .et-fb.aioseo-settings-bar-is-active #aioseo-settings.aioseo-settings-bar-root-is-desktop-top,[dir=rtl] .et-fb.aioseo-settings-bar-is-active #aioseo-settings.aioseo-settings-bar-root-is-desktop-bottom,[dir=rtl] .et-fb.aioseo-settings-bar-is-active #aioseo-settings.aioseo-settings-bar-root-is-desktop-top-left,[dir=rtl] .et-fb.aioseo-settings-bar-is-active #aioseo-settings.aioseo-settings-bar-root-is-desktop-bottom-left,[dir=ltr] .et-fb.aioseo-settings-bar-is-active #aioseo-settings.aioseo-settings-bar-root-is-desktop-top-right,[dir=ltr] .et-fb.aioseo-settings-bar-is-active #aioseo-settings.aioseo-settings-bar-root-is-desktop-bottom-right{right:calc(100% + 24px)}[dir=rtl] .et-fb.aioseo-settings-bar-is-active #aioseo-settings.aioseo-settings-bar-root-is-desktop-top-right,[dir=rtl] .et-fb.aioseo-settings-bar-is-active #aioseo-settings.aioseo-settings-bar-root-is-desktop-bottom-right{left:calc(100% + 24px)}.et-fb.aioseo-settings-bar-is-active #aioseo-settings.aioseo-settings-bar-root-is-desktop-left,.et-fb.aioseo-settings-bar-is-active #aioseo-settings.aioseo-settings-bar-root-is-desktop-right{top:calc(100% + 24px)}.et-fb.aioseo-settings-bar-is-top .aioseo-pagebuilder-modal{top:122px}[dir=ltr] .et-fb.aioseo-settings-bar-is-top .aioseo-pagebuilder-modal{left:30px}[dir=rtl] .et-fb.aioseo-settings-bar-is-top .aioseo-pagebuilder-modal{right:30px}.et-fb.aioseo-settings-bar-is-top-right .aioseo-pagebuilder-modal{top:122px}[dir=ltr] .et-fb.aioseo-settings-bar-is-top-right .aioseo-pagebuilder-modal{left:30px}[dir=rtl] .et-fb.aioseo-settings-bar-is-top-right .aioseo-pagebuilder-modal{right:30px}[dir=ltr] .et-fb.aioseo-settings-bar-is-top-left .aioseo-pagebuilder-modal{left:calc(100vw - 430px)}[dir=rtl] .et-fb.aioseo-settings-bar-is-top-left .aioseo-pagebuilder-modal{right:calc(100vw - 430px)}[dir=ltr] .et-fb.aioseo-settings-bar-is-bottom .aioseo-pagebuilder-modal{left:30px}[dir=rtl] .et-fb.aioseo-settings-bar-is-bottom .aioseo-pagebuilder-modal{right:30px}[dir=ltr] .et-fb.aioseo-settings-bar-is-bottom-right .aioseo-pagebuilder-modal{left:30px}[dir=rtl] .et-fb.aioseo-settings-bar-is-bottom-right .aioseo-pagebuilder-modal{right:30px}[dir=ltr] .et-fb.aioseo-settings-bar-is-bottom-left .aioseo-pagebuilder-modal{left:calc(100vw - 430px)}[dir=rtl] .et-fb.aioseo-settings-bar-is-bottom-left .aioseo-pagebuilder-modal{right:calc(100vw - 430px)}.et-fb.aioseo-settings-bar-is-left .aioseo-pagebuilder-modal{top:122px}[dir=ltr] .et-fb.aioseo-settings-bar-is-left .aioseo-pagebuilder-modal{left:calc(100vw - 430px)}[dir=rtl] .et-fb.aioseo-settings-bar-is-left .aioseo-pagebuilder-modal{right:calc(100vw - 430px)}[dir=ltr] .et-fb.aioseo-settings-bar-is-right .aioseo-pagebuilder-modal{left:30px}[dir=rtl] .et-fb.aioseo-settings-bar-is-right .aioseo-pagebuilder-modal{right:30px}.et-fb .aioseo-pagebuilder-modal{top:62px}.et-fb .aioseo-pagebuilder-modal-header{background-color:#6c2eb9}.et-fb .aioseo-pagebuilder-modal-header-close svg{position:relative;top:4px}.et-fb .aioseo-app .aioseo-cta a.learn-more,.et-fb .aioseo-app .aioseo-cta a.learn-more:hover,.et-fb .el-popper .aioseo-cta a.learn-more,.et-fb .el-popper .aioseo-cta a.learn-more:hover{text-decoration:underline}.et-fb .aioseo-app button,.et-fb .aioseo-app .aioseo-button,.et-fb .el-popper button,.et-fb .el-popper .aioseo-button{text-transform:initial}.et-fb .aioseo-app button:hover.blue,.et-fb .aioseo-app .aioseo-button:hover.blue,.et-fb .el-popper button:hover.blue,.et-fb .el-popper .aioseo-button:hover.blue{color:#fff}.et-fb .aioseo-app .input:focus,.et-fb .aioseo-app .textarea:focus,.et-fb .aioseo-app input:focus,.et-fb .aioseo-app input[type=email]:focus,.et-fb .aioseo-app input[type=password]:focus,.et-fb .aioseo-app input[type=search]:focus,.et-fb .aioseo-app input[type=text]:focus,.et-fb .aioseo-app select:focus,.et-fb .aioseo-app textarea:focus,.et-fb .el-popper .input:focus,.et-fb .el-popper .textarea:focus,.et-fb .el-popper input:focus,.et-fb .el-popper input[type=email]:focus,.et-fb .el-popper input[type=password]:focus,.et-fb .el-popper input[type=search]:focus,.et-fb .el-popper input[type=text]:focus,.et-fb .el-popper select:focus,.et-fb .el-popper textarea:focus{background:initial}.aioseo-elementor-panel .aioseo-app{border-top:2px solid #E8E8EB;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.elementor-tab-control-aioseo a:before{mask-image:url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iI2E3YWFhZCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBjbGFzcz0iYWlvc2VvLWdlYXIiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNOS45ODU0MiAxOS45NzA4QzE1LjUwMDIgMTkuOTcwOCAxOS45NzA4IDE1LjUwMDIgMTkuOTcwOCA5Ljk4NTQyQzE5Ljk3MDggNC40NzA2MyAxNS41MDAyIDAgOS45ODU0MiAwQzQuNDcwNjMgMCAwIDQuNDcwNjMgMCA5Ljk4NTQyQzAgMTUuNTAwMiA0LjQ3MDYzIDE5Ljk3MDggOS45ODU0MiAxOS45NzA4Wk04LjM5NTQxIDMuNjU0NjRDOC4yNjAxNiAzLjQ0ODUgOC4wMDk2IDMuMzUyMTEgNy43Nzk4NSAzLjQzMzI3QzcuNTE4MTYgMy41MjU3MiA3LjI2MjE4IDMuNjM0NDUgNy4wMTM0OSAzLjc1ODhDNi43OTUxOSAzLjg2Nzk2IDYuNjg1NjYgNC4xMTczMSA2LjczMzcyIDQuMzYwNDlMNi45MDQ5MyA1LjIyNjk0QzYuOTQ5IDUuNDQ5OTYgNi44NTggNS42NzYzIDYuNjg1MjIgNS44MjAwOUM2LjQxMjE2IDYuMDQ3MzQgNi4xNjAwNyA2LjMwNDI2IDUuOTM0MjEgNi41ODg2NEM1Ljc5MzgzIDYuNzY1MzkgNS41NzIzMyA2Ljg1OTA3IDUuMzUzNjEgNi44MTQ4OUw0LjUwNDI0IDYuNjQzM0M0LjI2NTY0IDYuNTk1MSA0LjAyMTU3IDYuNzA3ODggMy45MTU0NCA2LjkzMTIxQzMuODU1NDkgNy4wNTczOCAzLjc5ODg5IDcuMTg2MiAzLjc0NTgzIDcuMzE3NThDMy42OTI3NiA3LjQ0ODk2IDMuNjQzOTcgNy41ODEwNSAzLjU5OTM4IDcuNzEzNjlDMy41MjA0OCA3Ljk0ODQ3IDMuNjE1NzkgOC4yMDM5OCAzLjgxODM5IDguMzQxMzNMNC41Mzk1OCA4LjgzMDI3QzQuNzI1MjkgOC45NTYxNyA0LjgxNzc4IDkuMTgxOSA0Ljc5NTM0IDkuNDA4MjZDNC43NTkyNSA5Ljc3MjQ0IDQuNzYwNzIgMTAuMTM2IDQuNzk3NTYgMTAuNDkzNkM0LjgyMDg3IDEwLjcxOTggNC43MjkxNSAxMC45NDU5IDQuNTQzODggMTEuMDcyNEwzLjgyNDA4IDExLjU2NDJDMy42MjIwNSAxMS43MDIyIDMuNTI3NTkgMTEuOTU3OSAzLjYwNzEzIDEyLjE5MjNDMy42OTc3NCAxMi40NTkzIDMuODA0MyAxMi43MjA1IDMuOTI2MTUgMTIuOTc0M0M0LjAzMzEzIDEzLjE5NzEgNC4yNzc0OSAxMy4zMDg4IDQuNTE1ODEgMTMuMjU5OEw1LjM2NDk1IDEzLjA4NTFDNS41ODM1IDEzLjA0MDEgNS44MDUzMyAxMy4xMzMgNS45NDYyMyAxMy4zMDkzQzYuMTY4OTMgMTMuNTg3OSA2LjQyMDcxIDEzLjg0NTEgNi42OTk0IDE0LjA3NTZDNi44NzI2MSAxNC4yMTg4IDYuOTY0NDIgMTQuNDQ0OCA2LjkyMTEyIDE0LjY2OEw2Ljc1Mjk2IDE1LjUzNDhDNi43MDU3MiAxNS43NzgyIDYuODE2MjUgMTYuMDI3MyA3LjAzNTExIDE2LjEzNTZDNy4xNTg3NiAxNi4xOTY3IDcuMjg1IDE2LjI1NDUgNy40MTM3NSAxNi4zMDg2QzcuNTQyNTEgMTYuMzYyOCA3LjY3MTk2IDE2LjQxMjYgNy44MDE5NSAxNi40NTgxQzguMTgyMjQgMTYuNTkxMiA4LjcxNDQ5IDE2LjExNDcgOS4xMDggMTUuNzYyNUM5LjMwMjA1IDE1LjU4ODggOS40MjE3NCAxNS4zNDMgOS40MjMwMSAxNS4wNzk4QzkuNDIzMDEgMTUuMDc4NCA5LjQyMzAyIDE1LjA3NyA5LjQyMzAyIDE1LjA3NTZMOS40MjMwMSAxMy42MjYzQzkuNDIzMDEgMTMuNjEwOSA5LjQyMzYgMTMuNTk1NyA5LjQyNDc2IDEzLjU4MDZDOC4yNjI0OCAxMy4yOTcxIDcuMzk4MzggMTIuMjMwMSA3LjM5ODM4IDEwLjk1NzJWOS40MTgyM0M3LjM5ODM4IDkuMzAxMjUgNy40OTEzMSA5LjIwNjQyIDcuNjA1OTYgOS4yMDY0Mkg4LjMyNTg0VjcuNjkyMkM4LjMyNTg0IDcuNDgzMTIgOC40OTE5MyA3LjMxMzY0IDguNjk2ODMgNy4zMTM2NEM4LjkwMTcxIDcuMzEzNjQgOS4wNjc4MSA3LjQ4MzEyIDkuMDY3ODEgNy42OTIyVjkuMjA2NDJIMTEuMDE1NVY3LjY5MjJDMTEuMDE1NSA3LjQ4MzEyIDExLjE4MTYgNy4zMTM2NCAxMS4zODY1IDcuMzEzNjRDMTEuNTkxNCA3LjMxMzY0IDExLjc1NzUgNy40ODMxMiAxMS43NTc1IDcuNjkyMlY5LjIwNjQySDEyLjQ3NzNDMTIuNTkyIDkuMjA2NDIgMTIuNjg0OSA5LjMwMTI1IDEyLjY4NDkgOS40MTgyM1YxMC45NTcyQzEyLjY4NDkgMTIuMjcwNCAxMS43NjUzIDEzLjM2NDMgMTAuNTQ3NCAxMy42MDUxQzEwLjU0NzcgMTMuNjEyMSAxMC41NDc4IDEzLjYxOTIgMTAuNTQ3OCAxMy42MjYzTDEwLjU0NzggMTUuMDY5NEMxMC41NDc4IDE1LjMzNzcgMTAuNjcxMSAxNS41ODc5IDEwLjg3MSAxNS43NjIyQzExLjI3MTUgMTYuMTExNSAxMS44MTI5IDE2LjU4MzcgMTIuMTkxIDE2LjQ1MDJDMTIuNDUyNyAxNi4zNTc3IDEyLjcwODYgMTYuMjQ5IDEyLjk1NzMgMTYuMTI0NkMxMy4xNzU2IDE2LjAxNTUgMTMuMjg1MiAxNS43NjYxIDEzLjIzNzEgMTUuNTIyOUwxMy4wNjU5IDE0LjY1NjVDMTMuMDIxOCAxNC40MzM0IDEzLjExMjggMTQuMjA3MSAxMy4yODU2IDE0LjA2MzNDMTMuNTU4NyAxMy44MzYxIDEzLjgxMDcgMTMuNTc5MiAxNC4wMzY2IDEzLjI5NDhDMTQuMTc3IDEzLjExOCAxNC4zOTg1IDEzLjAyNDQgMTQuNjE3MiAxMy4wNjg1TDE1LjQ2NjYgMTMuMjQwMUMxNS43MDUyIDEzLjI4ODMgMTUuOTQ5MyAxMy4xNzU2IDE2LjA1NTQgMTIuOTUyMkMxNi4xMTUzIDEyLjgyNjEgMTYuMTcxOSAxMi42OTcyIDE2LjIyNSAxMi41NjU5QzE2LjI3ODEgMTIuNDM0NSAxNi4zMjY5IDEyLjMwMjQgMTYuMzcxNCAxMi4xNjk4QzE2LjQ1MDMgMTEuOTM1IDE2LjM1NSAxMS42Nzk1IDE2LjE1MjQgMTEuNTQyMUwxNS40MzEyIDExLjA1MzJDMTUuMjQ1NSAxMC45MjczIDE1LjE1MyAxMC43MDE1IDE1LjE3NTUgMTAuNDc1MkMxNS4yMTE2IDEwLjExMSAxNS4yMTAxIDkuNzQ3NDQgMTUuMTczMyA5LjM4OTg2QzE1LjE0OTkgOS4xNjM2MSAxNS4yNDE3IDguOTM3NTcgMTUuNDI2OSA4LjgxMUwxNi4xNDY3IDguMzE5MjdDMTYuMzQ4OCA4LjE4MTI2IDE2LjQ0MzIgNy45MjU1OCAxNi4zNjM3IDcuNjkxMTVDMTYuMjczMSA3LjQyNDExIDE2LjE2NjUgNy4xNjI5MiAxNi4wNDQ3IDYuOTA5MTVDMTUuOTM3NyA2LjY4NjM4IDE1LjY5MzMgNi41NzQ2MiAxNS40NTUgNi42MjM2NkwxNC42MDU5IDYuNzk4MzdDMTQuMzg3MyA2Ljg0MzM0IDE0LjE2NTUgNi43NTA0OCAxNC4wMjQ2IDYuNTc0MThDMTMuODAxOSA2LjI5NTU0IDEzLjU1MDEgNi4wMzgzMiAxMy4yNzE0IDUuODA3ODRDMTMuMDk4MiA1LjY2NDYgMTMuMDA2NCA1LjQzODU4IDEzLjA0OTcgNS4yMTU0TDEzLjIxNzkgNC4zNDg2OEMxMy4yNjUxIDQuMTA1MjEgMTMuMTU0NiAzLjg1NjE2IDEyLjkzNTcgMy43NDc4N0MxMi44MTIxIDMuNjg2NjkgMTIuNjg1OCAzLjYyODk1IDEyLjU1NzEgMy41NzQ4QzEyLjQyODMgMy41MjA2NSAxMi4yOTg5IDMuNDcwODYgMTIuMTY4OSAzLjQyNTM3QzExLjkzODggMy4zNDQ4NSAxMS42ODg0IDMuNDQyMTEgMTEuNTUzOCAzLjY0ODg0TDExLjA3NDYgNC4zODQ3NUMxMC45NTEzIDQuNTc0MjUgMTAuNzMgNC42Njg2MiAxMC41MDgyIDQuNjQ1NzNDMTAuMTUxMyA0LjYwODkgOS43OTUwMiA0LjYxMDM5IDkuNDQ0NTkgNC42NDc5OUM5LjIyMjg2IDQuNjcxNzcgOS4wMDEzNCA0LjU3ODE4IDguODc3MzEgNC4zODkxM0w4LjM5NTQxIDMuNjU0NjRaIiBmaWxsPSIjYTdhYWFkIiAvPjwvc3ZnPg==);-webkit-mask-image:url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iI2E3YWFhZCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBjbGFzcz0iYWlvc2VvLWdlYXIiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNOS45ODU0MiAxOS45NzA4QzE1LjUwMDIgMTkuOTcwOCAxOS45NzA4IDE1LjUwMDIgMTkuOTcwOCA5Ljk4NTQyQzE5Ljk3MDggNC40NzA2MyAxNS41MDAyIDAgOS45ODU0MiAwQzQuNDcwNjMgMCAwIDQuNDcwNjMgMCA5Ljk4NTQyQzAgMTUuNTAwMiA0LjQ3MDYzIDE5Ljk3MDggOS45ODU0MiAxOS45NzA4Wk04LjM5NTQxIDMuNjU0NjRDOC4yNjAxNiAzLjQ0ODUgOC4wMDk2IDMuMzUyMTEgNy43Nzk4NSAzLjQzMzI3QzcuNTE4MTYgMy41MjU3MiA3LjI2MjE4IDMuNjM0NDUgNy4wMTM0OSAzLjc1ODhDNi43OTUxOSAzLjg2Nzk2IDYuNjg1NjYgNC4xMTczMSA2LjczMzcyIDQuMzYwNDlMNi45MDQ5MyA1LjIyNjk0QzYuOTQ5IDUuNDQ5OTYgNi44NTggNS42NzYzIDYuNjg1MjIgNS44MjAwOUM2LjQxMjE2IDYuMDQ3MzQgNi4xNjAwNyA2LjMwNDI2IDUuOTM0MjEgNi41ODg2NEM1Ljc5MzgzIDYuNzY1MzkgNS41NzIzMyA2Ljg1OTA3IDUuMzUzNjEgNi44MTQ4OUw0LjUwNDI0IDYuNjQzM0M0LjI2NTY0IDYuNTk1MSA0LjAyMTU3IDYuNzA3ODggMy45MTU0NCA2LjkzMTIxQzMuODU1NDkgNy4wNTczOCAzLjc5ODg5IDcuMTg2MiAzLjc0NTgzIDcuMzE3NThDMy42OTI3NiA3LjQ0ODk2IDMuNjQzOTcgNy41ODEwNSAzLjU5OTM4IDcuNzEzNjlDMy41MjA0OCA3Ljk0ODQ3IDMuNjE1NzkgOC4yMDM5OCAzLjgxODM5IDguMzQxMzNMNC41Mzk1OCA4LjgzMDI3QzQuNzI1MjkgOC45NTYxNyA0LjgxNzc4IDkuMTgxOSA0Ljc5NTM0IDkuNDA4MjZDNC43NTkyNSA5Ljc3MjQ0IDQuNzYwNzIgMTAuMTM2IDQuNzk3NTYgMTAuNDkzNkM0LjgyMDg3IDEwLjcxOTggNC43MjkxNSAxMC45NDU5IDQuNTQzODggMTEuMDcyNEwzLjgyNDA4IDExLjU2NDJDMy42MjIwNSAxMS43MDIyIDMuNTI3NTkgMTEuOTU3OSAzLjYwNzEzIDEyLjE5MjNDMy42OTc3NCAxMi40NTkzIDMuODA0MyAxMi43MjA1IDMuOTI2MTUgMTIuOTc0M0M0LjAzMzEzIDEzLjE5NzEgNC4yNzc0OSAxMy4zMDg4IDQuNTE1ODEgMTMuMjU5OEw1LjM2NDk1IDEzLjA4NTFDNS41ODM1IDEzLjA0MDEgNS44MDUzMyAxMy4xMzMgNS45NDYyMyAxMy4zMDkzQzYuMTY4OTMgMTMuNTg3OSA2LjQyMDcxIDEzLjg0NTEgNi42OTk0IDE0LjA3NTZDNi44NzI2MSAxNC4yMTg4IDYuOTY0NDIgMTQuNDQ0OCA2LjkyMTEyIDE0LjY2OEw2Ljc1Mjk2IDE1LjUzNDhDNi43MDU3MiAxNS43NzgyIDYuODE2MjUgMTYuMDI3MyA3LjAzNTExIDE2LjEzNTZDNy4xNTg3NiAxNi4xOTY3IDcuMjg1IDE2LjI1NDUgNy40MTM3NSAxNi4zMDg2QzcuNTQyNTEgMTYuMzYyOCA3LjY3MTk2IDE2LjQxMjYgNy44MDE5NSAxNi40NTgxQzguMTgyMjQgMTYuNTkxMiA4LjcxNDQ5IDE2LjExNDcgOS4xMDggMTUuNzYyNUM5LjMwMjA1IDE1LjU4ODggOS40MjE3NCAxNS4zNDMgOS40MjMwMSAxNS4wNzk4QzkuNDIzMDEgMTUuMDc4NCA5LjQyMzAyIDE1LjA3NyA5LjQyMzAyIDE1LjA3NTZMOS40MjMwMSAxMy42MjYzQzkuNDIzMDEgMTMuNjEwOSA5LjQyMzYgMTMuNTk1NyA5LjQyNDc2IDEzLjU4MDZDOC4yNjI0OCAxMy4yOTcxIDcuMzk4MzggMTIuMjMwMSA3LjM5ODM4IDEwLjk1NzJWOS40MTgyM0M3LjM5ODM4IDkuMzAxMjUgNy40OTEzMSA5LjIwNjQyIDcuNjA1OTYgOS4yMDY0Mkg4LjMyNTg0VjcuNjkyMkM4LjMyNTg0IDcuNDgzMTIgOC40OTE5MyA3LjMxMzY0IDguNjk2ODMgNy4zMTM2NEM4LjkwMTcxIDcuMzEzNjQgOS4wNjc4MSA3LjQ4MzEyIDkuMDY3ODEgNy42OTIyVjkuMjA2NDJIMTEuMDE1NVY3LjY5MjJDMTEuMDE1NSA3LjQ4MzEyIDExLjE4MTYgNy4zMTM2NCAxMS4zODY1IDcuMzEzNjRDMTEuNTkxNCA3LjMxMzY0IDExLjc1NzUgNy40ODMxMiAxMS43NTc1IDcuNjkyMlY5LjIwNjQySDEyLjQ3NzNDMTIuNTkyIDkuMjA2NDIgMTIuNjg0OSA5LjMwMTI1IDEyLjY4NDkgOS40MTgyM1YxMC45NTcyQzEyLjY4NDkgMTIuMjcwNCAxMS43NjUzIDEzLjM2NDMgMTAuNTQ3NCAxMy42MDUxQzEwLjU0NzcgMTMuNjEyMSAxMC41NDc4IDEzLjYxOTIgMTAuNTQ3OCAxMy42MjYzTDEwLjU0NzggMTUuMDY5NEMxMC41NDc4IDE1LjMzNzcgMTAuNjcxMSAxNS41ODc5IDEwLjg3MSAxNS43NjIyQzExLjI3MTUgMTYuMTExNSAxMS44MTI5IDE2LjU4MzcgMTIuMTkxIDE2LjQ1MDJDMTIuNDUyNyAxNi4zNTc3IDEyLjcwODYgMTYuMjQ5IDEyLjk1NzMgMTYuMTI0NkMxMy4xNzU2IDE2LjAxNTUgMTMuMjg1MiAxNS43NjYxIDEzLjIzNzEgMTUuNTIyOUwxMy4wNjU5IDE0LjY1NjVDMTMuMDIxOCAxNC40MzM0IDEzLjExMjggMTQuMjA3MSAxMy4yODU2IDE0LjA2MzNDMTMuNTU4NyAxMy44MzYxIDEzLjgxMDcgMTMuNTc5MiAxNC4wMzY2IDEzLjI5NDhDMTQuMTc3IDEzLjExOCAxNC4zOTg1IDEzLjAyNDQgMTQuNjE3MiAxMy4wNjg1TDE1LjQ2NjYgMTMuMjQwMUMxNS43MDUyIDEzLjI4ODMgMTUuOTQ5MyAxMy4xNzU2IDE2LjA1NTQgMTIuOTUyMkMxNi4xMTUzIDEyLjgyNjEgMTYuMTcxOSAxMi42OTcyIDE2LjIyNSAxMi41NjU5QzE2LjI3ODEgMTIuNDM0NSAxNi4zMjY5IDEyLjMwMjQgMTYuMzcxNCAxMi4xNjk4QzE2LjQ1MDMgMTEuOTM1IDE2LjM1NSAxMS42Nzk1IDE2LjE1MjQgMTEuNTQyMUwxNS40MzEyIDExLjA1MzJDMTUuMjQ1NSAxMC45MjczIDE1LjE1MyAxMC43MDE1IDE1LjE3NTUgMTAuNDc1MkMxNS4yMTE2IDEwLjExMSAxNS4yMTAxIDkuNzQ3NDQgMTUuMTczMyA5LjM4OTg2QzE1LjE0OTkgOS4xNjM2MSAxNS4yNDE3IDguOTM3NTcgMTUuNDI2OSA4LjgxMUwxNi4xNDY3IDguMzE5MjdDMTYuMzQ4OCA4LjE4MTI2IDE2LjQ0MzIgNy45MjU1OCAxNi4zNjM3IDcuNjkxMTVDMTYuMjczMSA3LjQyNDExIDE2LjE2NjUgNy4xNjI5MiAxNi4wNDQ3IDYuOTA5MTVDMTUuOTM3NyA2LjY4NjM4IDE1LjY5MzMgNi41NzQ2MiAxNS40NTUgNi42MjM2NkwxNC42MDU5IDYuNzk4MzdDMTQuMzg3MyA2Ljg0MzM0IDE0LjE2NTUgNi43NTA0OCAxNC4wMjQ2IDYuNTc0MThDMTMuODAxOSA2LjI5NTU0IDEzLjU1MDEgNi4wMzgzMiAxMy4yNzE0IDUuODA3ODRDMTMuMDk4MiA1LjY2NDYgMTMuMDA2NCA1LjQzODU4IDEzLjA0OTcgNS4yMTU0TDEzLjIxNzkgNC4zNDg2OEMxMy4yNjUxIDQuMTA1MjEgMTMuMTU0NiAzLjg1NjE2IDEyLjkzNTcgMy43NDc4N0MxMi44MTIxIDMuNjg2NjkgMTIuNjg1OCAzLjYyODk1IDEyLjU1NzEgMy41NzQ4QzEyLjQyODMgMy41MjA2NSAxMi4yOTg5IDMuNDcwODYgMTIuMTY4OSAzLjQyNTM3QzExLjkzODggMy4zNDQ4NSAxMS42ODg0IDMuNDQyMTEgMTEuNTUzOCAzLjY0ODg0TDExLjA3NDYgNC4zODQ3NUMxMC45NTEzIDQuNTc0MjUgMTAuNzMgNC42Njg2MiAxMC41MDgyIDQuNjQ1NzNDMTAuMTUxMyA0LjYwODkgOS43OTUwMiA0LjYxMDM5IDkuNDQ0NTkgNC42NDc5OUM5LjIyMjg2IDQuNjcxNzcgOS4wMDEzNCA0LjU3ODE4IDguODc3MzEgNC4zODkxM0w4LjM5NTQxIDMuNjU0NjRaIiBmaWxsPSIjYTdhYWFkIiAvPjwvc3ZnPg==);mask-size:100% 100%;-webkit-mask-size:100% 100%;margin:0 auto;content:".";color:transparent;background-color:#6d7882;height:16px;width:16px}.aioseo-element-menu-icon{display:inline-flex}.aioseo-element-menu-icon:before{mask-image:url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iI2E3YWFhZCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBjbGFzcz0iYWlvc2VvLWdlYXIiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNOS45ODU0MiAxOS45NzA4QzE1LjUwMDIgMTkuOTcwOCAxOS45NzA4IDE1LjUwMDIgMTkuOTcwOCA5Ljk4NTQyQzE5Ljk3MDggNC40NzA2MyAxNS41MDAyIDAgOS45ODU0MiAwQzQuNDcwNjMgMCAwIDQuNDcwNjMgMCA5Ljk4NTQyQzAgMTUuNTAwMiA0LjQ3MDYzIDE5Ljk3MDggOS45ODU0MiAxOS45NzA4Wk04LjM5NTQxIDMuNjU0NjRDOC4yNjAxNiAzLjQ0ODUgOC4wMDk2IDMuMzUyMTEgNy43Nzk4NSAzLjQzMzI3QzcuNTE4MTYgMy41MjU3MiA3LjI2MjE4IDMuNjM0NDUgNy4wMTM0OSAzLjc1ODhDNi43OTUxOSAzLjg2Nzk2IDYuNjg1NjYgNC4xMTczMSA2LjczMzcyIDQuMzYwNDlMNi45MDQ5MyA1LjIyNjk0QzYuOTQ5IDUuNDQ5OTYgNi44NTggNS42NzYzIDYuNjg1MjIgNS44MjAwOUM2LjQxMjE2IDYuMDQ3MzQgNi4xNjAwNyA2LjMwNDI2IDUuOTM0MjEgNi41ODg2NEM1Ljc5MzgzIDYuNzY1MzkgNS41NzIzMyA2Ljg1OTA3IDUuMzUzNjEgNi44MTQ4OUw0LjUwNDI0IDYuNjQzM0M0LjI2NTY0IDYuNTk1MSA0LjAyMTU3IDYuNzA3ODggMy45MTU0NCA2LjkzMTIxQzMuODU1NDkgNy4wNTczOCAzLjc5ODg5IDcuMTg2MiAzLjc0NTgzIDcuMzE3NThDMy42OTI3NiA3LjQ0ODk2IDMuNjQzOTcgNy41ODEwNSAzLjU5OTM4IDcuNzEzNjlDMy41MjA0OCA3Ljk0ODQ3IDMuNjE1NzkgOC4yMDM5OCAzLjgxODM5IDguMzQxMzNMNC41Mzk1OCA4LjgzMDI3QzQuNzI1MjkgOC45NTYxNyA0LjgxNzc4IDkuMTgxOSA0Ljc5NTM0IDkuNDA4MjZDNC43NTkyNSA5Ljc3MjQ0IDQuNzYwNzIgMTAuMTM2IDQuNzk3NTYgMTAuNDkzNkM0LjgyMDg3IDEwLjcxOTggNC43MjkxNSAxMC45NDU5IDQuNTQzODggMTEuMDcyNEwzLjgyNDA4IDExLjU2NDJDMy42MjIwNSAxMS43MDIyIDMuNTI3NTkgMTEuOTU3OSAzLjYwNzEzIDEyLjE5MjNDMy42OTc3NCAxMi40NTkzIDMuODA0MyAxMi43MjA1IDMuOTI2MTUgMTIuOTc0M0M0LjAzMzEzIDEzLjE5NzEgNC4yNzc0OSAxMy4zMDg4IDQuNTE1ODEgMTMuMjU5OEw1LjM2NDk1IDEzLjA4NTFDNS41ODM1IDEzLjA0MDEgNS44MDUzMyAxMy4xMzMgNS45NDYyMyAxMy4zMDkzQzYuMTY4OTMgMTMuNTg3OSA2LjQyMDcxIDEzLjg0NTEgNi42OTk0IDE0LjA3NTZDNi44NzI2MSAxNC4yMTg4IDYuOTY0NDIgMTQuNDQ0OCA2LjkyMTEyIDE0LjY2OEw2Ljc1Mjk2IDE1LjUzNDhDNi43MDU3MiAxNS43NzgyIDYuODE2MjUgMTYuMDI3MyA3LjAzNTExIDE2LjEzNTZDNy4xNTg3NiAxNi4xOTY3IDcuMjg1IDE2LjI1NDUgNy40MTM3NSAxNi4zMDg2QzcuNTQyNTEgMTYuMzYyOCA3LjY3MTk2IDE2LjQxMjYgNy44MDE5NSAxNi40NTgxQzguMTgyMjQgMTYuNTkxMiA4LjcxNDQ5IDE2LjExNDcgOS4xMDggMTUuNzYyNUM5LjMwMjA1IDE1LjU4ODggOS40MjE3NCAxNS4zNDMgOS40MjMwMSAxNS4wNzk4QzkuNDIzMDEgMTUuMDc4NCA5LjQyMzAyIDE1LjA3NyA5LjQyMzAyIDE1LjA3NTZMOS40MjMwMSAxMy42MjYzQzkuNDIzMDEgMTMuNjEwOSA5LjQyMzYgMTMuNTk1NyA5LjQyNDc2IDEzLjU4MDZDOC4yNjI0OCAxMy4yOTcxIDcuMzk4MzggMTIuMjMwMSA3LjM5ODM4IDEwLjk1NzJWOS40MTgyM0M3LjM5ODM4IDkuMzAxMjUgNy40OTEzMSA5LjIwNjQyIDcuNjA1OTYgOS4yMDY0Mkg4LjMyNTg0VjcuNjkyMkM4LjMyNTg0IDcuNDgzMTIgOC40OTE5MyA3LjMxMzY0IDguNjk2ODMgNy4zMTM2NEM4LjkwMTcxIDcuMzEzNjQgOS4wNjc4MSA3LjQ4MzEyIDkuMDY3ODEgNy42OTIyVjkuMjA2NDJIMTEuMDE1NVY3LjY5MjJDMTEuMDE1NSA3LjQ4MzEyIDExLjE4MTYgNy4zMTM2NCAxMS4zODY1IDcuMzEzNjRDMTEuNTkxNCA3LjMxMzY0IDExLjc1NzUgNy40ODMxMiAxMS43NTc1IDcuNjkyMlY5LjIwNjQySDEyLjQ3NzNDMTIuNTkyIDkuMjA2NDIgMTIuNjg0OSA5LjMwMTI1IDEyLjY4NDkgOS40MTgyM1YxMC45NTcyQzEyLjY4NDkgMTIuMjcwNCAxMS43NjUzIDEzLjM2NDMgMTAuNTQ3NCAxMy42MDUxQzEwLjU0NzcgMTMuNjEyMSAxMC41NDc4IDEzLjYxOTIgMTAuNTQ3OCAxMy42MjYzTDEwLjU0NzggMTUuMDY5NEMxMC41NDc4IDE1LjMzNzcgMTAuNjcxMSAxNS41ODc5IDEwLjg3MSAxNS43NjIyQzExLjI3MTUgMTYuMTExNSAxMS44MTI5IDE2LjU4MzcgMTIuMTkxIDE2LjQ1MDJDMTIuNDUyNyAxNi4zNTc3IDEyLjcwODYgMTYuMjQ5IDEyLjk1NzMgMTYuMTI0NkMxMy4xNzU2IDE2LjAxNTUgMTMuMjg1MiAxNS43NjYxIDEzLjIzNzEgMTUuNTIyOUwxMy4wNjU5IDE0LjY1NjVDMTMuMDIxOCAxNC40MzM0IDEzLjExMjggMTQuMjA3MSAxMy4yODU2IDE0LjA2MzNDMTMuNTU4NyAxMy44MzYxIDEzLjgxMDcgMTMuNTc5MiAxNC4wMzY2IDEzLjI5NDhDMTQuMTc3IDEzLjExOCAxNC4zOTg1IDEzLjAyNDQgMTQuNjE3MiAxMy4wNjg1TDE1LjQ2NjYgMTMuMjQwMUMxNS43MDUyIDEzLjI4ODMgMTUuOTQ5MyAxMy4xNzU2IDE2LjA1NTQgMTIuOTUyMkMxNi4xMTUzIDEyLjgyNjEgMTYuMTcxOSAxMi42OTcyIDE2LjIyNSAxMi41NjU5QzE2LjI3ODEgMTIuNDM0NSAxNi4zMjY5IDEyLjMwMjQgMTYuMzcxNCAxMi4xNjk4QzE2LjQ1MDMgMTEuOTM1IDE2LjM1NSAxMS42Nzk1IDE2LjE1MjQgMTEuNTQyMUwxNS40MzEyIDExLjA1MzJDMTUuMjQ1NSAxMC45MjczIDE1LjE1MyAxMC43MDE1IDE1LjE3NTUgMTAuNDc1MkMxNS4yMTE2IDEwLjExMSAxNS4yMTAxIDkuNzQ3NDQgMTUuMTczMyA5LjM4OTg2QzE1LjE0OTkgOS4xNjM2MSAxNS4yNDE3IDguOTM3NTcgMTUuNDI2OSA4LjgxMUwxNi4xNDY3IDguMzE5MjdDMTYuMzQ4OCA4LjE4MTI2IDE2LjQ0MzIgNy45MjU1OCAxNi4zNjM3IDcuNjkxMTVDMTYuMjczMSA3LjQyNDExIDE2LjE2NjUgNy4xNjI5MiAxNi4wNDQ3IDYuOTA5MTVDMTUuOTM3NyA2LjY4NjM4IDE1LjY5MzMgNi41NzQ2MiAxNS40NTUgNi42MjM2NkwxNC42MDU5IDYuNzk4MzdDMTQuMzg3MyA2Ljg0MzM0IDE0LjE2NTUgNi43NTA0OCAxNC4wMjQ2IDYuNTc0MThDMTMuODAxOSA2LjI5NTU0IDEzLjU1MDEgNi4wMzgzMiAxMy4yNzE0IDUuODA3ODRDMTMuMDk4MiA1LjY2NDYgMTMuMDA2NCA1LjQzODU4IDEzLjA0OTcgNS4yMTU0TDEzLjIxNzkgNC4zNDg2OEMxMy4yNjUxIDQuMTA1MjEgMTMuMTU0NiAzLjg1NjE2IDEyLjkzNTcgMy43NDc4N0MxMi44MTIxIDMuNjg2NjkgMTIuNjg1OCAzLjYyODk1IDEyLjU1NzEgMy41NzQ4QzEyLjQyODMgMy41MjA2NSAxMi4yOTg5IDMuNDcwODYgMTIuMTY4OSAzLjQyNTM3QzExLjkzODggMy4zNDQ4NSAxMS42ODg0IDMuNDQyMTEgMTEuNTUzOCAzLjY0ODg0TDExLjA3NDYgNC4zODQ3NUMxMC45NTEzIDQuNTc0MjUgMTAuNzMgNC42Njg2MiAxMC41MDgyIDQuNjQ1NzNDMTAuMTUxMyA0LjYwODkgOS43OTUwMiA0LjYxMDM5IDkuNDQ0NTkgNC42NDc5OUM5LjIyMjg2IDQuNjcxNzcgOS4wMDEzNCA0LjU3ODE4IDguODc3MzEgNC4zODkxM0w4LjM5NTQxIDMuNjU0NjRaIiBmaWxsPSIjYTdhYWFkIiAvPjwvc3ZnPg==);-webkit-mask-image:url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iI2E3YWFhZCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBjbGFzcz0iYWlvc2VvLWdlYXIiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNOS45ODU0MiAxOS45NzA4QzE1LjUwMDIgMTkuOTcwOCAxOS45NzA4IDE1LjUwMDIgMTkuOTcwOCA5Ljk4NTQyQzE5Ljk3MDggNC40NzA2MyAxNS41MDAyIDAgOS45ODU0MiAwQzQuNDcwNjMgMCAwIDQuNDcwNjMgMCA5Ljk4NTQyQzAgMTUuNTAwMiA0LjQ3MDYzIDE5Ljk3MDggOS45ODU0MiAxOS45NzA4Wk04LjM5NTQxIDMuNjU0NjRDOC4yNjAxNiAzLjQ0ODUgOC4wMDk2IDMuMzUyMTEgNy43Nzk4NSAzLjQzMzI3QzcuNTE4MTYgMy41MjU3MiA3LjI2MjE4IDMuNjM0NDUgNy4wMTM0OSAzLjc1ODhDNi43OTUxOSAzLjg2Nzk2IDYuNjg1NjYgNC4xMTczMSA2LjczMzcyIDQuMzYwNDlMNi45MDQ5MyA1LjIyNjk0QzYuOTQ5IDUuNDQ5OTYgNi44NTggNS42NzYzIDYuNjg1MjIgNS44MjAwOUM2LjQxMjE2IDYuMDQ3MzQgNi4xNjAwNyA2LjMwNDI2IDUuOTM0MjEgNi41ODg2NEM1Ljc5MzgzIDYuNzY1MzkgNS41NzIzMyA2Ljg1OTA3IDUuMzUzNjEgNi44MTQ4OUw0LjUwNDI0IDYuNjQzM0M0LjI2NTY0IDYuNTk1MSA0LjAyMTU3IDYuNzA3ODggMy45MTU0NCA2LjkzMTIxQzMuODU1NDkgNy4wNTczOCAzLjc5ODg5IDcuMTg2MiAzLjc0NTgzIDcuMzE3NThDMy42OTI3NiA3LjQ0ODk2IDMuNjQzOTcgNy41ODEwNSAzLjU5OTM4IDcuNzEzNjlDMy41MjA0OCA3Ljk0ODQ3IDMuNjE1NzkgOC4yMDM5OCAzLjgxODM5IDguMzQxMzNMNC41Mzk1OCA4LjgzMDI3QzQuNzI1MjkgOC45NTYxNyA0LjgxNzc4IDkuMTgxOSA0Ljc5NTM0IDkuNDA4MjZDNC43NTkyNSA5Ljc3MjQ0IDQuNzYwNzIgMTAuMTM2IDQuNzk3NTYgMTAuNDkzNkM0LjgyMDg3IDEwLjcxOTggNC43MjkxNSAxMC45NDU5IDQuNTQzODggMTEuMDcyNEwzLjgyNDA4IDExLjU2NDJDMy42MjIwNSAxMS43MDIyIDMuNTI3NTkgMTEuOTU3OSAzLjYwNzEzIDEyLjE5MjNDMy42OTc3NCAxMi40NTkzIDMuODA0MyAxMi43MjA1IDMuOTI2MTUgMTIuOTc0M0M0LjAzMzEzIDEzLjE5NzEgNC4yNzc0OSAxMy4zMDg4IDQuNTE1ODEgMTMuMjU5OEw1LjM2NDk1IDEzLjA4NTFDNS41ODM1IDEzLjA0MDEgNS44MDUzMyAxMy4xMzMgNS45NDYyMyAxMy4zMDkzQzYuMTY4OTMgMTMuNTg3OSA2LjQyMDcxIDEzLjg0NTEgNi42OTk0IDE0LjA3NTZDNi44NzI2MSAxNC4yMTg4IDYuOTY0NDIgMTQuNDQ0OCA2LjkyMTEyIDE0LjY2OEw2Ljc1Mjk2IDE1LjUzNDhDNi43MDU3MiAxNS43NzgyIDYuODE2MjUgMTYuMDI3MyA3LjAzNTExIDE2LjEzNTZDNy4xNTg3NiAxNi4xOTY3IDcuMjg1IDE2LjI1NDUgNy40MTM3NSAxNi4zMDg2QzcuNTQyNTEgMTYuMzYyOCA3LjY3MTk2IDE2LjQxMjYgNy44MDE5NSAxNi40NTgxQzguMTgyMjQgMTYuNTkxMiA4LjcxNDQ5IDE2LjExNDcgOS4xMDggMTUuNzYyNUM5LjMwMjA1IDE1LjU4ODggOS40MjE3NCAxNS4zNDMgOS40MjMwMSAxNS4wNzk4QzkuNDIzMDEgMTUuMDc4NCA5LjQyMzAyIDE1LjA3NyA5LjQyMzAyIDE1LjA3NTZMOS40MjMwMSAxMy42MjYzQzkuNDIzMDEgMTMuNjEwOSA5LjQyMzYgMTMuNTk1NyA5LjQyNDc2IDEzLjU4MDZDOC4yNjI0OCAxMy4yOTcxIDcuMzk4MzggMTIuMjMwMSA3LjM5ODM4IDEwLjk1NzJWOS40MTgyM0M3LjM5ODM4IDkuMzAxMjUgNy40OTEzMSA5LjIwNjQyIDcuNjA1OTYgOS4yMDY0Mkg4LjMyNTg0VjcuNjkyMkM4LjMyNTg0IDcuNDgzMTIgOC40OTE5MyA3LjMxMzY0IDguNjk2ODMgNy4zMTM2NEM4LjkwMTcxIDcuMzEzNjQgOS4wNjc4MSA3LjQ4MzEyIDkuMDY3ODEgNy42OTIyVjkuMjA2NDJIMTEuMDE1NVY3LjY5MjJDMTEuMDE1NSA3LjQ4MzEyIDExLjE4MTYgNy4zMTM2NCAxMS4zODY1IDcuMzEzNjRDMTEuNTkxNCA3LjMxMzY0IDExLjc1NzUgNy40ODMxMiAxMS43NTc1IDcuNjkyMlY5LjIwNjQySDEyLjQ3NzNDMTIuNTkyIDkuMjA2NDIgMTIuNjg0OSA5LjMwMTI1IDEyLjY4NDkgOS40MTgyM1YxMC45NTcyQzEyLjY4NDkgMTIuMjcwNCAxMS43NjUzIDEzLjM2NDMgMTAuNTQ3NCAxMy42MDUxQzEwLjU0NzcgMTMuNjEyMSAxMC41NDc4IDEzLjYxOTIgMTAuNTQ3OCAxMy42MjYzTDEwLjU0NzggMTUuMDY5NEMxMC41NDc4IDE1LjMzNzcgMTAuNjcxMSAxNS41ODc5IDEwLjg3MSAxNS43NjIyQzExLjI3MTUgMTYuMTExNSAxMS44MTI5IDE2LjU4MzcgMTIuMTkxIDE2LjQ1MDJDMTIuNDUyNyAxNi4zNTc3IDEyLjcwODYgMTYuMjQ5IDEyLjk1NzMgMTYuMTI0NkMxMy4xNzU2IDE2LjAxNTUgMTMuMjg1MiAxNS43NjYxIDEzLjIzNzEgMTUuNTIyOUwxMy4wNjU5IDE0LjY1NjVDMTMuMDIxOCAxNC40MzM0IDEzLjExMjggMTQuMjA3MSAxMy4yODU2IDE0LjA2MzNDMTMuNTU4NyAxMy44MzYxIDEzLjgxMDcgMTMuNTc5MiAxNC4wMzY2IDEzLjI5NDhDMTQuMTc3IDEzLjExOCAxNC4zOTg1IDEzLjAyNDQgMTQuNjE3MiAxMy4wNjg1TDE1LjQ2NjYgMTMuMjQwMUMxNS43MDUyIDEzLjI4ODMgMTUuOTQ5MyAxMy4xNzU2IDE2LjA1NTQgMTIuOTUyMkMxNi4xMTUzIDEyLjgyNjEgMTYuMTcxOSAxMi42OTcyIDE2LjIyNSAxMi41NjU5QzE2LjI3ODEgMTIuNDM0NSAxNi4zMjY5IDEyLjMwMjQgMTYuMzcxNCAxMi4xNjk4QzE2LjQ1MDMgMTEuOTM1IDE2LjM1NSAxMS42Nzk1IDE2LjE1MjQgMTEuNTQyMUwxNS40MzEyIDExLjA1MzJDMTUuMjQ1NSAxMC45MjczIDE1LjE1MyAxMC43MDE1IDE1LjE3NTUgMTAuNDc1MkMxNS4yMTE2IDEwLjExMSAxNS4yMTAxIDkuNzQ3NDQgMTUuMTczMyA5LjM4OTg2QzE1LjE0OTkgOS4xNjM2MSAxNS4yNDE3IDguOTM3NTcgMTUuNDI2OSA4LjgxMUwxNi4xNDY3IDguMzE5MjdDMTYuMzQ4OCA4LjE4MTI2IDE2LjQ0MzIgNy45MjU1OCAxNi4zNjM3IDcuNjkxMTVDMTYuMjczMSA3LjQyNDExIDE2LjE2NjUgNy4xNjI5MiAxNi4wNDQ3IDYuOTA5MTVDMTUuOTM3NyA2LjY4NjM4IDE1LjY5MzMgNi41NzQ2MiAxNS40NTUgNi42MjM2NkwxNC42MDU5IDYuNzk4MzdDMTQuMzg3MyA2Ljg0MzM0IDE0LjE2NTUgNi43NTA0OCAxNC4wMjQ2IDYuNTc0MThDMTMuODAxOSA2LjI5NTU0IDEzLjU1MDEgNi4wMzgzMiAxMy4yNzE0IDUuODA3ODRDMTMuMDk4MiA1LjY2NDYgMTMuMDA2NCA1LjQzODU4IDEzLjA0OTcgNS4yMTU0TDEzLjIxNzkgNC4zNDg2OEMxMy4yNjUxIDQuMTA1MjEgMTMuMTU0NiAzLjg1NjE2IDEyLjkzNTcgMy43NDc4N0MxMi44MTIxIDMuNjg2NjkgMTIuNjg1OCAzLjYyODk1IDEyLjU1NzEgMy41NzQ4QzEyLjQyODMgMy41MjA2NSAxMi4yOTg5IDMuNDcwODYgMTIuMTY4OSAzLjQyNTM3QzExLjkzODggMy4zNDQ4NSAxMS42ODg0IDMuNDQyMTEgMTEuNTUzOCAzLjY0ODg0TDExLjA3NDYgNC4zODQ3NUMxMC45NTEzIDQuNTc0MjUgMTAuNzMgNC42Njg2MiAxMC41MDgyIDQuNjQ1NzNDMTAuMTUxMyA0LjYwODkgOS43OTUwMiA0LjYxMDM5IDkuNDQ0NTkgNC42NDc5OUM5LjIyMjg2IDQuNjcxNzcgOS4wMDEzNCA0LjU3ODE4IDguODc3MzEgNC4zODkxM0w4LjM5NTQxIDMuNjU0NjRaIiBmaWxsPSIjYTdhYWFkIiAvPjwvc3ZnPg==);mask-size:100% 100%;-webkit-mask-size:100% 100%;margin:0 auto;content:".";color:transparent;background-color:#6d7882;height:20px;width:20px}.aioseo-elementor-dark .aioseo-elementor-panel{color:#555d66}.aioseo-elementor-dark .aioseo-elementor-panel input{color:#555d66;background-color:#fff}.aioseo-elementor-dark .elementor-tab-control-aioseo a:before{background-color:#fff}.aioseo-elementor-dark .aioseo-element-menu-icon:before{background-color:#fff}.aioseo-elementor-dark .modal-container{color:#555d66}.aioseo-elementor-dark .modal-container .aioseo-close{color:#141b38}.elementor-editor-active .aioseo-app input,.elementor-editor-active .aioseo-app textarea{color:#141b38!important}.elementor-editor-active .aioseo-app input::placeholder,.elementor-editor-active .aioseo-app textarea::placeholder{color:#8c8f9a!important}.elementor-editor-active .aioseo-app input:disabled,.elementor-editor-active .aioseo-app textarea:disabled{color:#8c8f9a!important}#elementor-panel-footer-sub-menu-item-aioseo-limit-modified-date .eicon-calendar:before{content:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxMiAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTQuMjA2NjcgMTAuODMzNEw1LjgzMzMzIDkuMjA2NjlMNy40NiAxMC44MzM0TDguMTY2NjcgMTAuMTI2N0w2LjU0IDguNTAwMDJMOC4xNjY2NyA2Ljg3MzM1TDcuNDYgNi4xNjY2OUw1LjgzMzMzIDcuNzkzMzVMNC4yMDY2NyA2LjE2NjY5TDMuNSA2Ljg3MzM1TDUuMTI2NjcgOC41MDAwMkwzLjUgMTAuMTI2N0w0LjIwNjY3IDEwLjgzMzRaTTEwLjY2NjcgMS41MDAwMkgxMFYwLjE2NjY4N0g4LjY2NjY3VjEuNTAwMDJIMy4zMzMzM1YwLjE2NjY4N0gyVjEuNTAwMDJIMS4zMzMzM0MwLjU5MzMzMyAxLjUwMDAyIDAuMDA2NjY2NjYgMi4xMDAwMiAwLjAwNjY2NjY2IDIuODMzMzVMMCAxMi4xNjY3QzAgMTIuOSAwLjU5MzMzMyAxMy41IDEuMzMzMzMgMTMuNUgxMC42NjY3QzExLjQgMTMuNSAxMiAxMi45IDEyIDEyLjE2NjdWMi44MzMzNUMxMiAyLjEwMDAyIDExLjQgMS41MDAwMiAxMC42NjY3IDEuNTAwMDJaTTEwLjY2NjcgMTIuMTY2N0gxLjMzMzMzVjQuODMzMzVIMTAuNjY2N1YxMi4xNjY3WiIgZmlsbD0iI0E0QUZCNyIvPgo8L3N2Zz4K)}#seedprod-preview-wrapper.sp-setup_settings_seo .seedprod-settings-page{padding:0}#seedprod-preview-wrapper.sp-setup_settings_seo .aioseo-add-template-tag svg,#seedprod-preview-wrapper.sp-setup_settings_seo .aioseo-analysis-detail li svg,#seedprod-preview-wrapper.sp-setup_settings_seo .aioseo-keyphrase-tag .keyphrase-edit svg{display:inline;vertical-align:baseline}#seedprod-preview-wrapper.sp-setup_settings_seo .aioseo-analysis-detail li .title{margin-top:1em}#seedprod-preview-wrapper.sp-setup_settings_seo .aioseo-analysis-detail li{list-style:none}#seedprod-builder-save-dropdown-menu{width:225px}.vc_editor .aioseo-pagebuilder-modal-header{background-color:#0772ce}[dir=ltr] .vc_editor #vc_button-update{margin-right:0;border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] .vc_editor #vc_button-update{margin-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.vc_editor #aioseo-limit-modified-date-wpbakery{height:45px;margin:5.5px 0}[dir=ltr] .vc_editor #aioseo-limit-modified-date-wpbakery{float:right}[dir=rtl] .vc_editor #aioseo-limit-modified-date-wpbakery{float:left}.fusion-builder-preview-mode .aioseo-modal,.fusion-builder-live .aioseo-blur .aioseo-wp-table-header,.fusion-builder-live .aioseo-blur .aioseo-wp-table .tablenav{display:none}.aioseo-pagebuilder-modal{position:relative;top:62px;display:flex;flex-direction:column;overflow:hidden;width:400px;padding-top:58px;background:#fff;box-shadow:0 5px 30px #2c87da33;border-radius:3px 3px 0 0}.aioseo-pagebuilder-modal-is-closed{display:none}.aioseo-pagebuilder-modal-header{position:absolute;z-index:1;top:0;display:flex;width:100%;height:58px;color:#fff;align-items:center;justify-content:space-between;box-sizing:border-box;cursor:move}[dir=ltr] .aioseo-pagebuilder-modal-header{left:0;padding-right:21px;padding-left:26px}[dir=rtl] .aioseo-pagebuilder-modal-header{right:0;padding-left:21px;padding-right:26px}.aioseo-pagebuilder-modal-header-title{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:18px;font-weight:600;font-style:normal;line-height:16px;cursor:move;-webkit-user-select:none;user-select:none;text-decoration:none;letter-spacing:0;text-transform:none;color:#fff}.aioseo-pagebuilder-modal-header-close{cursor:pointer}.aioseo-pagebuilder-modal-header-close svg{width:16px;height:16px;fill:#fff}.aioseo-pagebuilder-modal-body{position:relative;z-index:1;overflow:hidden;overflow-y:auto;max-height:calc(100vh - 210px)}.aioseo-pagebuilder-modal-body p{padding-bottom:0} all-in-one-seo-pack/dist/Lite/assets/css/KeywordRankings.DOYSqHaV.css000064400000015541151222736000021325 0ustar00.aioseo-search-statistics-keywords-table .keyword-inner-loading{padding:20px}.aioseo-search-statistics-keywords-table .keyword-inner-loading .aioseo-loading-spinner{position:relative;margin:0 auto}.aioseo-search-statistics-keywords-table .keyword-inner .aioseo-wp-table .wp-table td.manage-column,.aioseo-search-statistics-keywords-table .keyword-inner .aioseo-wp-table .wp-table th.manage-column{padding:8px 10px}.aioseo-search-statistics-keywords-table .limit-line{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical}[dir=ltr] .aioseo-search-statistics-keywords-table .aioseo-tooltip{margin-left:0}[dir=rtl] .aioseo-search-statistics-keywords-table .aioseo-tooltip{margin-right:0}.aioseo-search-statistics-keywords-table .subsubsub{position:absolute;top:65px}.aioseo-search-statistics-keywords-table thead tr th.manage-column,.aioseo-search-statistics-keywords-table thead tr td.manage-column{font-size:13px}.aioseo-search-statistics-keywords-table .manage-column.buttons>div{display:flex;align-items:center;justify-content:end}.aioseo-search-statistics-keywords-table .manage-column.diffPosition .statistic .aioseo-tooltip,.aioseo-search-statistics-keywords-table .manage-column.diffDecay .statistic .aioseo-tooltip{justify-content:start}[dir=ltr] .aioseo-search-statistics-keywords-table .manage-column.diffPosition .statistic .statistic-direction,[dir=ltr] .aioseo-search-statistics-keywords-table .manage-column.diffDecay .statistic .statistic-direction{margin-left:0}[dir=rtl] .aioseo-search-statistics-keywords-table .manage-column.diffPosition .statistic .statistic-direction,[dir=rtl] .aioseo-search-statistics-keywords-table .manage-column.diffDecay .statistic .statistic-direction{margin-right:0}.aioseo-search-statistics-keywords-table .text-button{display:flex;align-items:center;color:#005ae0;font-weight:400;font-size:14px}[dir=ltr] .aioseo-search-statistics-keywords-table .text-button{margin-right:10px}[dir=rtl] .aioseo-search-statistics-keywords-table .text-button{margin-left:10px}.aioseo-search-statistics-keywords-table .text-button svg{min-width:16px;min-height:16px;width:16px;height:16px}[dir=ltr] .aioseo-search-statistics-keywords-table .text-button svg{margin-right:5px}[dir=rtl] .aioseo-search-statistics-keywords-table .text-button svg{margin-left:5px}.aioseo-search-statistics-keywords-table tr.edit-row .edit-row-content,.aioseo-search-statistics-keywords-table tr.edit-row .edit-row-content .wrapper .border{padding:0!important}.aioseo-search-statistics-keywords-table .keyword-inner .aioseo-wp-table{margin:0;padding:0;border:0}.aioseo-search-statistics-keywords-table .keyword-inner .wp-table table{border:0;padding:0;border-bottom:1px solid #E8E8EB!important}.aioseo-search-statistics-keywords-table .keyword-inner .wp-table table thead tr:last-child th.manage-column,.aioseo-search-statistics-keywords-table .keyword-inner .wp-table table thead tr:last-child td.manage-column{border-bottom:1px solid #D0D1D7!important}.aioseo-search-statistics-keywords-table .keyword-inner .wp-table table thead tr:last-child th{font-weight:700}[dir=ltr] .aioseo-search-statistics-keywords-table .keyword-inner .wp-table table thead tr:last-child th:first-of-type{padding-left:15px!important}[dir=rtl] .aioseo-search-statistics-keywords-table .keyword-inner .wp-table table thead tr:last-child th:first-of-type{padding-right:15px!important}[dir=ltr] .aioseo-search-statistics-keywords-table .keyword-inner .wp-table table thead tr:last-child td{padding:4px 0 0 8px!important}[dir=rtl] .aioseo-search-statistics-keywords-table .keyword-inner .wp-table table thead tr:last-child td{padding:4px 8px 0 0!important}.aioseo-search-statistics-keywords-table .keyword-inner .wp-table table tbody tr .row-actions{position:relative}.aioseo-search-statistics-keywords-table .keyword-inner .wp-table table tbody tr:hover .row-actions{position:static}[dir=ltr] .aioseo-search-statistics-keywords-table .keyword-inner .wp-table table tbody tr th{padding:11px 0 0 8px}[dir=rtl] .aioseo-search-statistics-keywords-table .keyword-inner .wp-table table tbody tr th{padding:11px 8px 0 0}[dir=ltr] .aioseo-search-statistics-keywords-table .keyword-inner .wp-table table tbody tr td:first-of-type{padding-left:15px}[dir=rtl] .aioseo-search-statistics-keywords-table .keyword-inner .wp-table table tbody tr td:first-of-type{padding-right:15px}.aioseo-search-statistics-keywords-table .keyword-inner .wp-table table tbody tr:first-child td{border-top:1px solid #E8E8EB}.aioseo-search-statistics-keywords-table .keyword-inner .wp-table table tbody .aioseo-tooltip{display:inline-block}[dir=ltr] .aioseo-search-statistics-keywords-table .keyword-inner .wp-table table tbody .aioseo-tooltip{margin-left:0}[dir=rtl] .aioseo-search-statistics-keywords-table .keyword-inner .wp-table table tbody .aioseo-tooltip{margin-right:0}.aioseo-search-statistics-keywords-table .keyword-inner .wp-table table tbody svg.aioseo-trash{width:18px;height:22px;color:#8c8f9a;cursor:pointer;transition:color .1s ease;margin-top:2px}.aioseo-search-statistics-keywords-table .keyword-inner .wp-table table tbody svg.aioseo-trash:hover{color:#df2a4a}.aioseo-search-statistics-keywords-table .toggle-row-button{display:inline-flex;width:30px;height:26px;padding:0;justify-content:center;align-items:center;background-color:#fff;border:1px solid #DCDDE1;border-radius:3px}[dir=ltr] .aioseo-search-statistics-keywords-table .toggle-row-button{margin-left:10px}[dir=rtl] .aioseo-search-statistics-keywords-table .toggle-row-button{margin-right:10px}.aioseo-search-statistics-keywords-table .toggle-row-button:hover{cursor:pointer;background-color:#f9f9fa}.aioseo-search-statistics-keywords-table .toggle-row-button.active{background-color:#005ae0;border:1px solid #005AE0}.aioseo-search-statistics-keywords-table .toggle-row-button.active:hover{background-color:#1a82ea}.aioseo-search-statistics-keywords-table .toggle-row-button.active svg.aioseo-caret{color:#fff}[dir=ltr] .aioseo-search-statistics-keywords-table .toggle-row-button.active svg.aioseo-caret{transform:rotate(-360deg)}[dir=rtl] .aioseo-search-statistics-keywords-table .toggle-row-button.active svg.aioseo-caret{transform:rotate(360deg)}.aioseo-search-statistics-keywords-table .toggle-row-button svg.aioseo-caret{margin:0;height:20px;width:20px;color:#8c8f9a;transition:transform .3s}[dir=ltr] .aioseo-search-statistics-keywords-table .toggle-row-button svg.aioseo-caret{transform:rotate(-90deg)}[dir=rtl] .aioseo-search-statistics-keywords-table .toggle-row-button svg.aioseo-caret{transform:rotate(90deg)}@media (max-width: 1300px){.aioseo-search-statistics-keywords-table .manage-column.keyword{width:160px!important}}.aioseo-search-statistics-keywords-table .aioseo-wp-table.pagination-hidden .search-box{position:relative;top:45px}.aioseo-search-statistics-keywords-table .aioseo-wp-table.pagination-hidden .subsubsub{margin-bottom:9px}.aioseo-search-statistics-keyword-rankings{position:relative} all-in-one-seo-pack/dist/Lite/assets/css/KeywordsGraph.DR_nboBc.css000064400000000436151222736000021044 0ustar00.aioseo-app .aioseo-search-statistics-redirects{font-size:14px}.aioseo-app .aioseo-search-statistics-redirects .aioseo-cta .aioseo-cta-background .header-text{font-size:15px}.aioseo-app .aioseo-search-statistics-redirects .aioseo-cta .aioseo-cta-background .description{font-size:14px} all-in-one-seo-pack/dist/Lite/assets/css/LicenseConditions.BOtH6Pgq.css000064400000001772151222736000021615 0ustar00[dir=ltr] .aioseo-caret-solid--down{transform:rotate(-180deg)}[dir=rtl] .aioseo-caret-solid--down{transform:rotate(180deg)}.statistic{display:flex;align-items:center;font-size:14px}.statistic>span{display:inline-flex;flex:1}.statistic .aioseo-tooltip{justify-content:flex-end}[dir=ltr] .statistic .aioseo-tooltip{margin-left:0}[dir=rtl] .statistic .aioseo-tooltip{margin-right:0}.statistic-direction{display:flex;align-items:center;font-weight:700}[dir=ltr] .statistic-direction{margin-left:12px}[dir=rtl] .statistic-direction{margin-right:12px}.statistic-direction.up{color:#00aa63}.statistic-direction.down{color:#df2a4a}.statistic-loss,.statistic-drop{font-weight:700;font-size:14px;line-height:22px}.statistic.no-margin .aioseo-tooltip{justify-content:center}[dir=ltr] .statistic.no-margin .statistic-direction{margin-left:0}[dir=rtl] .statistic.no-margin .statistic-direction{margin-right:0}.statistic svg{width:12px;height:12px}[dir=ltr] .statistic svg{margin-right:6px}[dir=rtl] .statistic svg{margin-left:6px} all-in-one-seo-pack/dist/Lite/assets/css/LicenseKey.DArKKUsp.css000064400000003262151222736000020262 0ustar00.aioseo-wizard-license-key{font-size:16px;color:#141b38}.aioseo-wizard-license-key .header{font-size:24px;color:#141b38;font-weight:600}.aioseo-wizard-license-key .description{margin-top:32px;font-size:16px;color:#434960;margin-bottom:20px}.aioseo-wizard-license-key .aioseo-settings-row:last-child{border-bottom:none;margin-bottom:0}.aioseo-wizard-license-key .aioseo-settings-row.feature-grid .settings-name .name{font-size:18px}.aioseo-wizard-license-key .aioseo-settings-row.feature-grid .aioseo-col{display:flex;align-items:center}.aioseo-wizard-license-key .go-back a{color:#434960;font-size:14px}.aioseo-wizard-license-key .license-cta-box{font-size:14px;line-height:22px;border-radius:3px;background-color:#f2f7fd;padding:20px;max-width:620px;margin:12px 0}.aioseo-wizard-license-key .license-cta-box a{color:#00aa63}.aioseo-wizard-license-key .license-cta-box>div:first-child{font-weight:600;line-height:1.4}.aioseo-wizard-license-key .license-cta-box .aioseo-row{margin-top:12px}.aioseo-wizard-license-key .license-cta-box .aioseo-row .aioseo-col{display:flex;align-items:center}.aioseo-wizard-license-key .license-cta-box .aioseo-row .aioseo-col svg{width:16px;height:16px;color:#005ae0}[dir=ltr] .aioseo-wizard-license-key .license-cta-box .aioseo-row .aioseo-col svg{margin-right:10px}[dir=rtl] .aioseo-wizard-license-key .license-cta-box .aioseo-row .aioseo-col svg{margin-left:10px}.aioseo-wizard-license-key .license-key{margin-top:12px;display:flex;gap:8px;max-width:620px}[dir=ltr] .aioseo-wizard-license-key .license-key .aioseo-input{margin-right:8px}[dir=rtl] .aioseo-wizard-license-key .license-key .aioseo-input{margin-left:8px}.aioseo-wizard-license-key .license-key-error{margin-top:20px} all-in-one-seo-pack/dist/Lite/assets/css/link-format.DpDdM4N6.css000064400000001150151222736000020300 0ustar00.aioseo-link-assistant-did-you-know{padding:16px 12px 24px;border-top:1px solid #ddd;display:flex}.aioseo-link-assistant-did-you-know svg.aioseo-circle-information{width:16px;min-width:16px;max-width:16px;height:16px;margin-top:2px}[dir=ltr] .aioseo-link-assistant-did-you-know svg.aioseo-circle-information{margin-right:5px}[dir=rtl] .aioseo-link-assistant-did-you-know svg.aioseo-circle-information{margin-left:5px}.aioseo-link-assistant-did-you-know span{flex:1}.aioseo-link-assistant-did-you-know svg.aioseo-close{margin-top:2px;cursor:pointer;color:#434960;min-width:10px;max-width:10px;width:10px;height:10px} all-in-one-seo-pack/dist/Lite/assets/css/Locations.ClPxJhz4.css000064400000003573151222736000020211 0ustar00.info-urls-row .field-description{display:block;padding-bottom:6px;font-size:12px}.aioseo-locations-lite .aioseo-locations-card .content{min-height:550px}.aioseo-locations-lite .location-description{margin-top:0;margin-bottom:16px}.aioseo-locations-lite .location-description.mb-0{margin-bottom:0}.aioseo-locations-lite .aioseo-input,.aioseo-locations-lite .aioseo-select,.aioseo-locations-lite .aioseo-multiselect{max-width:480px}.aioseo-locations-lite .aioseo-tag{background:#dcdde1;padding:3px 8px;border-radius:3px}[dir=ltr] .aioseo-locations-lite .aioseo-tag{margin-right:8px}[dir=rtl] .aioseo-locations-lite .aioseo-tag{margin-left:8px}.aioseo-locations-lite .info-business-image .image-upload{display:flex}.aioseo-locations-lite .info-business-image .image-upload .aioseo-input-container{width:100%;max-width:445px}[dir=ltr] .aioseo-locations-lite .info-business-image .image-upload .aioseo-input-container{margin-right:8px}[dir=rtl] .aioseo-locations-lite .info-business-image .image-upload .aioseo-input-container{margin-left:8px}.aioseo-locations-lite .info-business-image .image-upload .aioseo-input-container .aioseo-input{width:100%}.aioseo-locations-lite .info-business-image .image-upload .insert-image{min-width:214px}[dir=ltr] .aioseo-locations-lite .info-business-image .image-upload .insert-image{margin-right:8px}[dir=rtl] .aioseo-locations-lite .info-business-image .image-upload .insert-image{margin-left:8px}.aioseo-locations-lite .info-business-image .image-upload .insert-image svg.aioseo-circle-plus{width:13px;height:13px}[dir=ltr] .aioseo-locations-lite .info-business-image .image-upload .insert-image svg.aioseo-circle-plus{margin-right:10px}[dir=rtl] .aioseo-locations-lite .info-business-image .image-upload .insert-image svg.aioseo-circle-plus{margin-left:10px}.aioseo-locations-lite .info-business-image img{margin-top:20px;width:auto;max-width:525px;max-height:525px;height:auto} all-in-one-seo-pack/dist/Lite/assets/css/Main.BD9ZcQIS.css000064400000001046151222736000016755 0ustar00html,body{margin:0;padding:0;background:#f3f4f5}.aioseo-header{position:initial}.aioseo-container.main-content{min-height:calc(100vh - 263px)}.aioseo-container.main-content .aioseo-card .animated-dannie{display:flex;align-items:center;justify-content:center;height:388px}footer{border-top:1px solid #E8E8EB;color:#999;font-size:13px;margin-top:50px;padding:30px 20px;text-align:center}footer p{margin:0 0 14px;font-size:13px!important}footer ul{display:inline-block;list-style:none;margin:0;padding:0}footer ul li{display:inline-block;margin:0 13px} all-in-one-seo-pack/dist/Lite/assets/css/Main.C6V8bdS0.css000064400000014236151222736000016731 0ustar00.aioseo-seo-revisions-comparison__controls[data-v-28d60966]{align-items:center;display:flex;flex-wrap:wrap;gap:18px;justify-content:space-between;margin:30px 0 0;opacity:.6;pointer-events:none;touch-action:none;-webkit-user-select:none;user-select:none}.aioseo-seo-revisions-comparison__controls__previous[data-v-28d60966],.aioseo-seo-revisions-comparison__controls__next[data-v-28d60966]{flex:0 1 auto}.aioseo-seo-revisions-comparison__controls__compare-mode[data-v-28d60966]{flex:1 1 100%}[dir=ltr] .aioseo-seo-revisions-comparison__controls__compare-mode[data-v-28d60966]{text-align:right}[dir=rtl] .aioseo-seo-revisions-comparison__controls__compare-mode[data-v-28d60966]{text-align:left}.aioseo-seo-revisions-comparison__controls__slider[data-v-28d60966]{flex:1 1 auto;max-width:828px;position:relative}.aioseo-seo-revisions-comparison__controls__slider .marks[data-v-28d60966]{background-color:#fff;border:none;border-bottom:1px solid #bbbbbb;border-top:1px solid #bbbbbb;box-shadow:none;cursor:pointer;display:flex;flex-flow:row-reverse;height:9px;justify-content:space-between;outline:none}.aioseo-seo-revisions-comparison__controls__slider .marks div[data-v-28d60966]{background-color:#bbb;height:100%;pointer-events:none;width:1px}.aioseo-seo-revisions-comparison__controls__slider__handle[data-v-28d60966]{--handle-size: 24px;background:none;border-radius:50%;border:none;box-shadow:none;cursor:pointer;height:var(--handle-size);outline:transparent solid 0;padding:0;position:absolute;top:50%;touch-action:none;width:var(--handle-size)}[dir=ltr] .aioseo-seo-revisions-comparison__controls__slider__handle[data-v-28d60966]{left:100%;transform:translate(calc(var(--handle-size) / 2 * -1),-50%)}[dir=rtl] .aioseo-seo-revisions-comparison__controls__slider__handle[data-v-28d60966]{right:100%;transform:translate(calc(-1*(var(--handle-size) / 2 * -1)),-50%)}.aioseo-seo-revisions-comparison__item-meta[data-v-2c5e7d56]{align-items:center;color:#141b38;display:grid;font-size:12px;font-style:normal;gap:6px;grid-template-columns:30px minmax(0,1fr);grid-auto-flow:column;padding:6px}.aioseo-seo-revisions-comparison__item-meta *[data-v-2c5e7d56]{line-height:normal}.aioseo-seo-revisions-comparison__item-meta__col .aioseo-wrapper[data-v-2c5e7d56]{display:flex}.aioseo-seo-revisions-comparison__item-meta__author-avatar[data-v-2c5e7d56]{height:30px;width:30px}.aioseo-seo-revisions-comparison__item-meta__title[data-v-2c5e7d56]{font-weight:700}[dir=ltr] .aioseo-seo-revisions-comparison__item-meta__title[data-v-2c5e7d56]{text-align:right}[dir=rtl] .aioseo-seo-revisions-comparison__item-meta__title[data-v-2c5e7d56]{text-align:left}.aioseo-seo-revisions-comparison__item-meta__author[data-v-2c5e7d56]{flex:0 0 auto}.aioseo-seo-revisions-comparison__item-meta__note[data-v-2c5e7d56],.aioseo-seo-revisions-comparison__item-meta__btn-edit-note[data-v-2c5e7d56]{position:relative}[dir=ltr] .aioseo-seo-revisions-comparison__item-meta__note[data-v-2c5e7d56],[dir=ltr] .aioseo-seo-revisions-comparison__item-meta__btn-edit-note[data-v-2c5e7d56]{margin-left:18px}[dir=rtl] .aioseo-seo-revisions-comparison__item-meta__note[data-v-2c5e7d56],[dir=rtl] .aioseo-seo-revisions-comparison__item-meta__btn-edit-note[data-v-2c5e7d56]{margin-right:18px}.aioseo-seo-revisions-comparison__item-meta__note[data-v-2c5e7d56]:before,.aioseo-seo-revisions-comparison__item-meta__btn-edit-note[data-v-2c5e7d56]:before{background-color:#8c8f9a;content:"";height:10px;position:absolute;top:50%;transform:translateY(-50%);width:2px}[dir=ltr] .aioseo-seo-revisions-comparison__item-meta__note[data-v-2c5e7d56]:before,[dir=ltr] .aioseo-seo-revisions-comparison__item-meta__btn-edit-note[data-v-2c5e7d56]:before{right:calc(100% + 9px)}[dir=rtl] .aioseo-seo-revisions-comparison__item-meta__note[data-v-2c5e7d56]:before,[dir=rtl] .aioseo-seo-revisions-comparison__item-meta__btn-edit-note[data-v-2c5e7d56]:before{left:calc(100% + 9px)}.aioseo-seo-revisions-comparison__item-meta__note[data-v-2c5e7d56]{display:flex;font-weight:700;flex:0 1 auto;min-width:0}.aioseo-seo-revisions-comparison__item-meta__btn-edit-note[data-v-2c5e7d56]{background:none;border:none;box-shadow:none;color:#005ae0;font-style:normal;font-weight:400;height:auto;min-height:auto;outline-offset:1px;outline:transparent solid 0;padding:0;white-space:nowrap}.aioseo-seo-revisions-comparison__item-meta__date[data-v-2c5e7d56]{color:#555d66;margin-top:4px}.aioseo-seo-revisions-item-diff[data-v-3d55fc94]{font-family:Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,sans-serif}.aioseo-seo-revisions-item-diff h3[data-v-3d55fc94]{margin:0 0 15px}.aioseo-seo-revisions-item-diff h3~h3[data-v-3d55fc94]{border-top:1px solid #E8E8EB;margin-top:20px;padding-top:40px}.aioseo-seo-revisions-item-diff .diff td[data-v-3d55fc94]{font-family:inherit}.aioseo-seo-revisions-item-diff .diff td .tag[data-v-3d55fc94]{background-color:#f3f4f5;border-radius:4px;border:1px solid #D0D1D7;color:#141b38;display:inline-block;font-size:12px;font-weight:700;line-height:normal;padding:3px 6px}[dir=ltr] .aioseo-seo-revisions-item-diff .diff td .tag[data-v-3d55fc94]{margin-right:5px}[dir=rtl] .aioseo-seo-revisions-item-diff .diff td .tag[data-v-3d55fc94]{margin-left:5px}.aioseo-seo-revisions-item-diff .diff td del[data-v-3d55fc94]{background-color:#fecaca}.aioseo-seo-revisions-item-diff .diff td del>.tag[data-v-3d55fc94]{background-color:#fecaca;border:1px solid #F87171}.aioseo-seo-revisions-item-diff .diff td ins[data-v-3d55fc94]{background-color:#a7f3d0}.aioseo-seo-revisions-item-diff .diff td ins>.tag[data-v-3d55fc94]{background-color:#a7f3d0;border:1px solid #34D399}.aioseo-seo-revisions-item-diff .diff td del[data-v-3d55fc94]:has(.tag),.aioseo-seo-revisions-item-diff .diff td ins[data-v-3d55fc94]:has(.tag){background-color:transparent}.aioseo-seo-revisions-comparison[data-v-4dbffcec]{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,sans-serif;letter-spacing:normal}.aioseo-seo-revisions-comparison h1[data-v-4dbffcec]{align-items:center;display:flex}.aioseo-seo-revisions-comparison__item-meta-wrapper[data-v-4dbffcec]{background-color:#fff;box-shadow:0 1px 3px #0000001a;margin:20px 0}.aioseo-seo-revisions-comparison__diff[data-v-4dbffcec]{background-color:#fff;box-shadow:0 1px 3px #0000001a;margin:20px 0 0;padding:15px} all-in-one-seo-pack/dist/Lite/assets/css/Main.C6YJhUH-.css000064400000015036151222736000016726 0ustar00.aioseo-link-assistant .aioseo-wp-table tbody th.check-column,.aioseo-link-assistant .aioseo-wp-table tbody td{font-size:14px}.aioseo-link-assistant .aioseo-wp-table tr.edit-row .edit-row-content,.aioseo-link-assistant .aioseo-wp-table tr.edit-row .edit-row-content .wrapper .border{padding:0}.aioseo-link-assistant .aioseo-wp-table button.toggle-row-button{display:flex;width:26px;height:26px;padding:0;justify-content:center;align-items:center;background-color:#fff;border:1px solid #DCDDE1;border-radius:3px}[dir=ltr] .aioseo-link-assistant .aioseo-wp-table button.toggle-row-button{margin-left:auto}[dir=rtl] .aioseo-link-assistant .aioseo-wp-table button.toggle-row-button{margin-right:auto}.aioseo-link-assistant .aioseo-wp-table button.toggle-row-button:hover{cursor:pointer;background-color:#f9f9fa}.aioseo-link-assistant .aioseo-wp-table button.toggle-row-button.active{background-color:#005ae0;border:1px solid #005AE0}.aioseo-link-assistant .aioseo-wp-table button.toggle-row-button.active:hover{background-color:#1a82ea}.aioseo-link-assistant .aioseo-wp-table button.toggle-row-button.active svg.aioseo-caret{color:#fff}[dir=ltr] .aioseo-link-assistant .aioseo-wp-table button.toggle-row-button.active svg.aioseo-caret{transform:rotate(-180deg)}[dir=rtl] .aioseo-link-assistant .aioseo-wp-table button.toggle-row-button.active svg.aioseo-caret{transform:rotate(180deg)}.aioseo-link-assistant .aioseo-wp-table button.toggle-row-button svg.aioseo-caret{margin:0;height:24px;width:24px;color:#8c8f9a;transition:transform .3s}[dir=ltr] .aioseo-link-assistant .aioseo-wp-table button.toggle-row-button svg.aioseo-caret{transform:rotate(-90deg)}[dir=rtl] .aioseo-link-assistant .aioseo-wp-table button.toggle-row-button svg.aioseo-caret{transform:rotate(90deg)}.aioseo-link-assistant .aioseo-wp-table .row-actions a.delete-all-links{color:#df2a4a}[dir=ltr] .aioseo-link-assistant .aioseo-wp-table svg{margin-right:11.22px}[dir=rtl] .aioseo-link-assistant .aioseo-wp-table svg{margin-left:11.22px}.aioseo-link-assistant .aioseo-wp-table svg.aioseo-link-external{color:#005ae0;width:12px;height:12px}.aioseo-link-assistant .aioseo-wp-table svg.aioseo-new-page{color:#434960;width:9.33px;height:11.67px}.aioseo-link-assistant .aioseo-wp-table svg.aioseo-close{margin:0}.aioseo-link-assistant .aioseo-tooltip .popper.action a.tooltip-url{white-space:normal!important}.aioseo-link-assistant #the-list .aioseo-wp-table.link-assistant-inner-table .wp-table table{border:0}.aioseo-link-assistant #the-list .aioseo-wp-table.link-assistant-inner-table .wp-table table thead tr:last-child th.manage-column,.aioseo-link-assistant #the-list .aioseo-wp-table.link-assistant-inner-table .wp-table table thead tr:last-child td.manage-column{border-bottom:1px solid #c3c4c7!important}.aioseo-link-assistant #the-list .aioseo-wp-table.link-assistant-inner-table .wp-table table tbody tr .row-actions{position:relative}.aioseo-link-assistant #the-list .aioseo-wp-table.link-assistant-inner-table .wp-table table tbody tr:hover .row-actions{position:static}.aioseo-link-assistant #the-list .aioseo-wp-table.link-assistant-inner-table .wp-table table tbody .aioseo-tooltip{display:inline-block}[dir=ltr] .aioseo-link-assistant #the-list .aioseo-wp-table.link-assistant-inner-table .wp-table table tbody .aioseo-tooltip{margin-left:0}[dir=rtl] .aioseo-link-assistant #the-list .aioseo-wp-table.link-assistant-inner-table .wp-table table tbody .aioseo-tooltip{margin-right:0}.aioseo-link-assistant #the-list .aioseo-wp-table.link-assistant-inner-table .wp-table table tbody svg.aioseo-trash{width:18px;height:22px;color:#8c8f9a;cursor:pointer;transition:color .1s ease;margin-top:2px}.aioseo-link-assistant #the-list .aioseo-wp-table.link-assistant-inner-table .wp-table table tbody svg.aioseo-trash:hover{color:#df2a4a}.aioseo-link-assistant .aioseo-tabs.link-tabs{border-bottom:1px solid #E8E8EB}[dir=ltr] .aioseo-link-assistant .aioseo-tabs.link-tabs .aioseo-mobile-tabs{margin-left:10px}[dir=rtl] .aioseo-link-assistant .aioseo-tabs.link-tabs .aioseo-mobile-tabs{margin-right:10px}.aioseo-link-assistant .aioseo-tabs.link-tabs .var-tab{display:flex;align-items:center;column-gap:11.75px}.aioseo-link-assistant .aioseo-tabs.link-tabs .var-tab svg{display:inline-block;width:14px;height:14px}[dir=ltr] .aioseo-link-assistant .aioseo-tabs.link-tabs .var-tab svg{margin-right:0}[dir=rtl] .aioseo-link-assistant .aioseo-tabs.link-tabs .var-tab svg{margin-left:0}.aioseo-link-assistant .aioseo-tabs.link-tabs .var-tab svg.aioseo-link-internal-inbound,.aioseo-link-assistant .aioseo-tabs.link-tabs .var-tab svg.aioseo-link-internal-outbound{width:17px;height:17px;color:#00aa63}.aioseo-link-assistant .aioseo-tabs.link-tabs .var-tab svg.aioseo-link-external{width:17px;height:17px;color:#005ae0}.aioseo-link-assistant .aioseo-tabs.link-tabs .var-tab svg.aioseo-link-affiliate{color:#f18200;width:100%;height:auto;max-height:18px}.aioseo-link-assistant .aioseo-tabs.link-tabs .var-tab svg.aioseo-link-suggestion{color:#2c324c;width:100%;height:auto;max-width:20px}.aioseo-link-assistant div.links-bottom{display:flex;flex-direction:row;font-size:12px;line-height:18px;margin:0 16px 16px}.aioseo-link-assistant div.links-bottom a{text-decoration:underline}.aioseo-link-assistant div.links-bottom a.link-delete{color:#df2a4a!important}.aioseo-link-assistant div.links-bottom a:hover{text-decoration:none;cursor:pointer}.aioseo-link-assistant div.links-bottom .links-bottom-left{display:flex;flex:1 1 auto;column-gap:28px;align-items:center}.aioseo-link-assistant div.links-bottom .links-bottom-left div{display:flex;align-items:center}[dir=ltr] .aioseo-link-assistant div.links-bottom .links-bottom-left div svg{margin-right:10px}[dir=rtl] .aioseo-link-assistant div.links-bottom .links-bottom-left div svg{margin-left:10px}.aioseo-link-assistant div.links-bottom .links-bottom-left button svg{margin-top:2.5px;width:14px;height:14px;color:#fff!important}[dir=ltr] .aioseo-link-assistant div.links-bottom .links-bottom-left button svg{margin-right:10px}[dir=rtl] .aioseo-link-assistant div.links-bottom .links-bottom-left button svg{margin-left:10px}.aioseo-link-assistant div.links-bottom .links-bottom-left svg.aioseo-link-external{margin-top:3.5px;width:11px;height:11px;color:#005ae0}.aioseo-link-assistant div.links-bottom .links-bottom-right{display:flex;align-items:center}@media (max-width: 1115px){.aioseo-link-assistant .aioseo-tabs,.aioseo-link-assistant .aioseo-mobile-tabs .tab-dropdown{border-bottom:0}.aioseo-link-assistant .aioseo-mobile-tabs svg.aioseo-caret{height:20px;width:20px}}.aioseo-link-suggestions div.links-bottom{margin:16px 0 0}.aioseo-link-assistant-overview{position:relative} all-in-one-seo-pack/dist/Lite/assets/css/Main.Cd4GlQCO.css000064400000005322151222736000016766 0ustar00.aioseo-app .aioseo-lite-vs-pro{margin-top:var(--aioseo-gutter);width:100%;padding:2px;background:#fff;box-shadow:0 2px 5px #0000000d;border:1px solid #E8E8EB;color:#141b38}.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-header,.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-grid,.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-cta{padding:40px}.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-header,.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-cta{font-size:14px;background-color:#f9f9fa}.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-header{display:flex;justify-content:space-between;align-items:center}[dir=ltr] .aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-header div{margin:0 30px 0 0}[dir=rtl] .aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-header div{margin:0 0 0 30px}.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-header div .header-title{font-size:20px;font-weight:700}.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-header div .header-text{margin:5px 0}.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-header a{width:fit-content;min-width:220px}@media screen and (max-width: 782px){.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-header{flex-direction:column;align-items:start}.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-header div .header-text{margin:15px 0}}.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-grid{font-size:14px}.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-grid .header{display:grid;grid-template-columns:1.5fr 1fr 1fr;align-items:end;margin:0 0 24px;font-weight:700}.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-grid .header .header-lite,.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-grid .header .header-pro{font-size:18px}.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-grid .header .header-pro{color:#00aa63}.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-grid .feature{display:grid;grid-template-columns:1.5fr 30px 1fr 30px 1fr}.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-grid .feature>div{padding:15px 6px}.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-grid .feature svg{margin:15px 0}.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-grid .feature svg.aioseo-close{width:13px;height:13px;margin:18px 0;color:#8c8f9a}.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-grid .feature svg.aioseo-circle-check{width:18px;height:18px;margin:15px 0;color:#00aa63}.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-grid .feature .feature-title{font-weight:700}.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-cta{text-align:center}.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-cta .cta-title{font-size:18px;font-weight:700}.aioseo-app .aioseo-lite-vs-pro .aioseo-lite-vs-pro-cta .cta-text{margin:24px auto;max-width:650px} all-in-one-seo-pack/dist/Lite/assets/css/Main.DF8X-pHu.css000064400000001335151222736000016771 0ustar00.aioseo-search-statistics-authentication-alert{margin-bottom:20px}.aioseo-app .aioseo-card{margin:0 0 20px}.aioseo-app .aioseo-card:has(.aioseo-card-footer){position:relative;padding-bottom:44px}.aioseo-app .aioseo-card:has(.aioseo-card-footer) .content{position:static}.aioseo-app .aioseo-datepicker-picker{font-weight:700}.aioseo-app .aioseo-wp-table tbody td{font-size:14px}.aioseo-app .aioseo-wp-table tbody .object-title a,.aioseo-app .aioseo-wp-table tbody .keyword a{font-weight:700;color:#141b38}.aioseo-app .aioseo-wp-table tbody .object-title a:hover,.aioseo-app .aioseo-wp-table tbody .keyword a:hover{color:#005ae0}.aioseo-app .aioseo-wp-table tbody .no-results{font-size:16px}.aioseo-app .connect-cta{position:relative} all-in-one-seo-pack/dist/Lite/assets/css/Main.DsDXsFEe.css000064400000000123151222736000017065 0ustar00.aioseo-app .index-notice,.aioseo-app .static-regeneration-notice{margin-top:10px} all-in-one-seo-pack/dist/Lite/assets/css/Main.hUGweWUk.css000064400000002532151222736000017174 0ustar00.aioseo-app .v3-migration-info{border-top:1px solid #E8E8EB;padding-top:10px;margin-top:15px}.aioseo-app .v3-migration-info ul.info-items{margin:0}.aioseo-app .v3-migration-info ul.info-items li{display:flex}.aioseo-app .v3-migration-info ul.info-items li span:first-of-type{flex:0 0 130px}.aioseo-app .aioseo-tools-debug .select-site{font-size:16px;font-weight:700;margin-bottom:5px}.aioseo-app .aioseo-tools-debug .aioseo-alert div:first-of-type{margin-bottom:10px}.aioseo-app .aioseo-tools-debug .aioseo-tabs.internal{margin:8px 0 var(--aioseo-gutter) 0}.aioseo-debug-modal .aioseo-description:empty{display:none}.aioseo-debug-modal .aioseo-modal-body{padding:20px 40px 40px;display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative}.aioseo-debug-modal .aioseo-modal-body .description{font-size:16px;color:#141b38;margin-bottom:16px}.aioseo-debug-modal .aioseo-modal-body button.aioseo-button{margin-top:16px}.aioseo-debug-modal .aioseo-modal-body button.close{position:absolute;top:11px;width:24px;height:24px;background-color:#fff;border:none;display:flex;align-items:center}[dir=ltr] .aioseo-debug-modal .aioseo-modal-body button.close{right:11px}[dir=rtl] .aioseo-debug-modal .aioseo-modal-body button.close{left:11px}.aioseo-debug-modal .aioseo-modal-body button.close svg.aioseo-close{cursor:pointer;width:14px;height:14px} all-in-one-seo-pack/dist/Lite/assets/css/main.PobdggJG.css000064400000034642151222736000017220 0ustar00.aioseo-wp-table table.widefat{border:1px solid #c3c4c7;box-shadow:0 1px 1px #0000000a;background:#fff}.aioseo-wp-table .postbox table.widefat{box-shadow:none}.aioseo-wp-table .widefat{border-spacing:0;width:100%;clear:both;margin:0}.aioseo-wp-table .widefat *{word-wrap:break-word}.aioseo-wp-table .widefat a,.aioseo-wp-table .widefat button.button-link{text-decoration:none}.aioseo-wp-table .widefat td,.aioseo-wp-table .widefat th{padding:8px 10px}.aioseo-wp-table .widefat td:has(.row-actions),.aioseo-wp-table .widefat th:has(.row-actions){padding-bottom:10px}.aioseo-wp-table .widefat thead th,.aioseo-wp-table .widefat thead td{border-bottom:1px solid #c3c4c7}.aioseo-wp-table .widefat tfoot th,.aioseo-wp-table .widefat tfoot td{border-top:1px solid #c3c4c7;border-bottom:none}.aioseo-wp-table .widefat .no-items td{border-bottom-width:0}.aioseo-wp-table .widefat td{vertical-align:top}.aioseo-wp-table .widefat td,.aioseo-wp-table .widefat td p,.aioseo-wp-table .widefat td ol,.aioseo-wp-table .widefat td ul,.aioseo-wp-table .widefat th,.aioseo-wp-table .widefat thead td,.aioseo-wp-table .widefat tfoot td{font-size:14px;line-height:22px}[dir=ltr] .aioseo-wp-table .widefat th,[dir=ltr] .aioseo-wp-table .widefat thead td,[dir=ltr] .aioseo-wp-table .widefat tfoot td{text-align:left}[dir=rtl] .aioseo-wp-table .widefat th,[dir=rtl] .aioseo-wp-table .widefat thead td,[dir=rtl] .aioseo-wp-table .widefat tfoot td{text-align:right}.aioseo-wp-table .widefat th input,.aioseo-wp-table .widefat thead td input,.aioseo-wp-table .widefat tfoot td input{padding:0;vertical-align:text-top}[dir=ltr] .aioseo-wp-table .widefat th input,[dir=ltr] .aioseo-wp-table .widefat thead td input,[dir=ltr] .aioseo-wp-table .widefat tfoot td input{margin:0 0 0 8px}[dir=rtl] .aioseo-wp-table .widefat th input,[dir=rtl] .aioseo-wp-table .widefat thead td input,[dir=rtl] .aioseo-wp-table .widefat tfoot td input{margin:0 8px 0 0}.aioseo-wp-table .widefat .check-column{line-height:1;width:2.2em;padding:6px 0 25px;vertical-align:top}.aioseo-wp-table .widefat tbody th.check-column{padding:9px 0 22px}[dir=ltr] .aioseo-wp-table .widefat thead td.check-column,[dir=ltr] .aioseo-wp-table .widefat tbody th.check-column,[dir=ltr] .aioseo-wp-table .widefat tfoot td.check-column{padding:11px 0 0 3px}[dir=rtl] .aioseo-wp-table .widefat thead td.check-column,[dir=rtl] .aioseo-wp-table .widefat tbody th.check-column,[dir=rtl] .aioseo-wp-table .widefat tfoot td.check-column{padding:11px 3px 0 0}.aioseo-wp-table .widefat thead td.check-column,.aioseo-wp-table .widefat tfoot td.check-column{padding-top:4px;vertical-align:middle}.aioseo-wp-table .no-js .widefat thead .check-column input,.aioseo-wp-table .no-js .widefat tfoot .check-column input{display:none}.aioseo-wp-table .widefat .num{text-align:center}.aioseo-wp-table .widefat th#comments{vertical-align:middle}.aioseo-wp-table .widefat thead th,.aioseo-wp-table .widefat thead td,.aioseo-wp-table .widefat tfoot th,.aioseo-wp-table .widefat tfoot td{line-height:1.4em}.aioseo-wp-table .widefat th,.aioseo-wp-table .widefat td{color:#50575e}.aioseo-wp-table .widefat th,.aioseo-wp-table .widefat thead td,.aioseo-wp-table .widefat tfoot td{font-weight:400}.aioseo-wp-table .widefat thead tr th,.aioseo-wp-table .widefat thead tr td,.aioseo-wp-table .widefat tfoot tr th,.aioseo-wp-table .widefat tfoot tr td{color:#2c3338}.aioseo-wp-table .widefat td p{margin:2px 0 .8em}.aioseo-wp-table .widefat p,.aioseo-wp-table .widefat ol,.aioseo-wp-table .widefat ul{color:#2c3338}.aioseo-wp-table .widefat .column-comment p{margin:.6em 0}.aioseo-wp-table .widefat .column-comment ul{list-style:initial}[dir=ltr] .aioseo-wp-table .widefat .column-comment ul{margin-left:2em}[dir=rtl] .aioseo-wp-table .widefat .column-comment ul{margin-right:2em}.aioseo-wp-table .row-actions span.delete a,.aioseo-wp-table .row-actions span.trash a,.aioseo-wp-table .row-actions span.spam a{color:#b32d2e}.aioseo-wp-table .row-actions .delete a:hover,.aioseo-wp-table .row-actions .trash a:hover,.aioseo-wp-table .row-actions .spam a:hover{color:#b32d2e;border:none}.aioseo-wp-table .row-actions{color:#a7aaad;font-size:12px;line-height:18px;padding:2px 0 0;position:relative}[dir=ltr] .aioseo-wp-table .row-actions{left:-9999em}[dir=rtl] .aioseo-wp-table .row-actions{right:-9999em}.aioseo-wp-table .no-js .row-actions,.aioseo-wp-table tr:hover .row-actions,.aioseo-wp-table .row-actions.visible{position:static}.aioseo-wp-table .widefat thead th,.aioseo-wp-table .widefat thead td,.aioseo-wp-table .widefat tfoot th,.aioseo-wp-table .widefat tfoot td{padding:0 10px;max-height:38px;height:38px}.aioseo-wp-table .widefat thead th.sortable a,.aioseo-wp-table .widefat tfoot th.sortable a{display:flex;align-items:center;height:36px;padding:0;line-height:36px}.aioseo-wp-table .widefat thead th.sortable a .sorting-indicator,.aioseo-wp-table .widefat tfoot th.sortable a .sorting-indicator{margin-top:0}body.vue-build{margin:0}body.vue-build .aioseo-app{min-height:calc(100vh - var(--aioseo-header-height, 72px))}body.vue-build .aioseo-app .aioseo-main{padding-bottom:30px}body.aioseo-setup-wizard{margin:0;padding:0}body.aioseo-setup-wizard .aioseo-app{min-height:100vh;width:100%}body[class*=page_aioseo]{--aioseo-gutter: 20px;--aioseo-header-height: 72px;--aioseo-footer-height: 150px}[dir=ltr] body[class*=page_aioseo] .aioseo-header,[dir=ltr] body[class*=page_aioseo] .aioseo-notifications .overlay{left:160px}[dir=rtl] body[class*=page_aioseo] .aioseo-header,[dir=rtl] body[class*=page_aioseo] .aioseo-notifications .overlay{right:160px}[dir=ltr] body[class*=page_aioseo].folded .aioseo-header,[dir=ltr] body[class*=page_aioseo].folded .aioseo-notifications .overlay{left:36px}[dir=rtl] body[class*=page_aioseo].folded .aioseo-header,[dir=rtl] body[class*=page_aioseo].folded .aioseo-notifications .overlay{right:36px}body[class*=page_aioseo] #wpcontent{padding:0;background-color:#f3f4f5}body[class*=page_aioseo] .update-nag{display:none}body[class*=page_aioseo] .aioseo-app{min-height:calc(100vh - var(--aioseo-header-height) - 65px)}body[class*=page_aioseo].admin-bar .aioseo-app{min-height:calc(100vh - var(--aioseo-header-height) - 65px - 32px - var(--aioseo-footer-height))}@media screen and (max-width: 782px){body[class*=page_aioseo].admin-bar .aioseo-app{min-height:calc(100vh - var(--aioseo-header-height) - 65px - 46px - var(--aioseo-footer-height))}}@media screen and (max-width: 600px){body[class*=page_aioseo].admin-bar .aioseo-app{min-height:calc(100vh - 111px)}}body[class*=page_aioseo].admin-bar .aioseo-header,body[class*=page_aioseo].admin-bar .aioseo-notifications .overlay,body[class*=page_aioseo].admin-bar .aioseo-notifications .notification-menu{top:32px}body[class*=page_aioseo].aioseo-has-bar{--aioseo-header-height: 112px}@media screen and (max-width: 782px){body[class*=page_aioseo].aioseo-has-bar{--aioseo-header-height: 132px}}body[class*=page_aioseo].aioseo-flyout-menu-enabled .aioseo-app{padding-bottom:40px}@media screen and (max-width: 960px){[dir=ltr] body[class*=page_aioseo].auto-fold .aioseo-header,[dir=ltr] body[class*=page_aioseo].auto-fold .aioseo-notifications .overlay{left:36px}[dir=rtl] body[class*=page_aioseo].auto-fold .aioseo-header,[dir=rtl] body[class*=page_aioseo].auto-fold .aioseo-notifications .overlay{right:36px}}@media screen and (max-width: 782px){body[class*=page_aioseo] #wpbody-content{padding-bottom:20px}body[class*=page_aioseo].admin-bar .aioseo-header,body[class*=page_aioseo].admin-bar .aioseo-notifications .overlay,body[class*=page_aioseo].admin-bar .aioseo-notifications .notification-menu{top:46px}[dir=ltr] body[class*=page_aioseo] .aioseo-header,[dir=ltr] body[class*=page_aioseo] .aioseo-notifications .overlay{left:0}[dir=rtl] body[class*=page_aioseo] .aioseo-header,[dir=rtl] body[class*=page_aioseo] .aioseo-notifications .overlay{right:0}[dir=ltr] body[class*=page_aioseo].auto-fold .aioseo-header,[dir=ltr] body[class*=page_aioseo].auto-fold .aioseo-notifications .overlay{left:0}[dir=rtl] body[class*=page_aioseo].auto-fold .aioseo-header,[dir=rtl] body[class*=page_aioseo].auto-fold .aioseo-notifications .overlay{right:0}body[class*=page_aioseo].aioseo-flyout-menu-enabled .aioseo-app{padding-bottom:100px}}@media screen and (max-width: 600px){body[class*=page_aioseo].admin-bar .aioseo-notifications .overlay,body[class*=page_aioseo].admin-bar .aioseo-notifications .menu{position:absolute;top:46px}body[class*=page_aioseo].admin-bar .aioseo-header{position:relative;top:0}}.aioseo-app,#aioseo-user-profile-tab{--aioseo-gutter: 20px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;color-scheme:light;box-sizing:border-box;position:relative}@media only screen and (max-width: 782px){.aioseo-app,#aioseo-user-profile-tab{--aioseo-gutter: 16px}}.aioseo-app .sm,.aioseo-app .small,#aioseo-user-profile-tab .sm,#aioseo-user-profile-tab .small{font-size:12px;line-height:18px}.aioseo-app .medium,#aioseo-user-profile-tab .medium{font-size:14px;line-height:22px}.aioseo-app .route-fade-enter-active,.aioseo-app .route-fade-leave-active,#aioseo-user-profile-tab .route-fade-enter-active,#aioseo-user-profile-tab .route-fade-leave-active{transition:all .2s}.aioseo-app .route-fade-enter-from,.aioseo-app .route-fade-leave-active,#aioseo-user-profile-tab .route-fade-enter-from,#aioseo-user-profile-tab .route-fade-leave-active{opacity:0}[dir=ltr] .aioseo-app .route-fade-enter-from,[dir=ltr] #aioseo-user-profile-tab .route-fade-enter-from{transform:translate(30px)}[dir=rtl] .aioseo-app .route-fade-enter-from,[dir=rtl] #aioseo-user-profile-tab .route-fade-enter-from,[dir=ltr] .aioseo-app .route-fade-leave-active,[dir=ltr] #aioseo-user-profile-tab .route-fade-leave-active{transform:translate(-30px)}[dir=rtl] .aioseo-app .route-fade-leave-active,[dir=rtl] #aioseo-user-profile-tab .route-fade-leave-active{transform:translate(30px)}.aioseo-app *,.aioseo-app :after,.aioseo-app :before,#aioseo-user-profile-tab *,#aioseo-user-profile-tab :after,#aioseo-user-profile-tab :before{box-sizing:inherit}.aioseo-app * *:not(.aioseo-button):not(.aioseo-input),.aioseo-app :after *:not(.aioseo-button):not(.aioseo-input),.aioseo-app :before *:not(.aioseo-button):not(.aioseo-input),#aioseo-user-profile-tab * *:not(.aioseo-button):not(.aioseo-input),#aioseo-user-profile-tab :after *:not(.aioseo-button):not(.aioseo-input),#aioseo-user-profile-tab :before *:not(.aioseo-button):not(.aioseo-input){line-height:1.4}.aioseo-app p,#aioseo-user-profile-tab p{font-size:14px;line-height:22px}.aioseo-app a:not(.aioseo-button),#aioseo-user-profile-tab a:not(.aioseo-button){color:#005ae0}.aioseo-app a:not(.aioseo-button).text-white,#aioseo-user-profile-tab a:not(.aioseo-button).text-white{color:#fff}.aioseo-app a:not(.aioseo-button):hover,#aioseo-user-profile-tab a:not(.aioseo-button):hover{text-decoration:none}.aioseo-app a:not(.aioseo-button).no-underline,#aioseo-user-profile-tab a:not(.aioseo-button).no-underline{text-decoration:none}.aioseo-app h2,#aioseo-user-profile-tab h2{font-size:32px;margin:0}.aioseo-app .aioseo-main,#aioseo-user-profile-tab .aioseo-main{height:100%}.aioseo-app .aioseo-main>.aioseo-container,#aioseo-user-profile-tab .aioseo-main>.aioseo-container{margin-top:0;padding-block:var(--aioseo-gutter)}@media screen and (min-width: 601px){.aioseo-app .aioseo-main>.aioseo-container,#aioseo-user-profile-tab .aioseo-main>.aioseo-container{margin-top:var(--aioseo-header-height)}}.aioseo-app .aioseo-main>.aioseo-container>.aioseo-tabs .aioseo-mobile-tabs,#aioseo-user-profile-tab .aioseo-main>.aioseo-container>.aioseo-tabs .aioseo-mobile-tabs{margin-top:0}.aioseo-app .aioseo-main .save-changes,#aioseo-user-profile-tab .aioseo-main .save-changes{display:flex;justify-content:flex-end}.aioseo-app .d-flex,#aioseo-user-profile-tab .d-flex{display:flex}.aioseo-app .aioseo-section-description,#aioseo-user-profile-tab .aioseo-section-description{font-size:14px;color:#141b38;line-height:22px;padding-bottom:16px}.aioseo-app .aioseo-description-text,#aioseo-user-profile-tab .aioseo-description-text{font-size:14px;line-height:22px;color:#141b38}.aioseo-app .aioseo-description-text.aioseo-error,#aioseo-user-profile-tab .aioseo-description-text.aioseo-error{color:#df2a4a}.aioseo-app .aioseo-description,#aioseo-user-profile-tab .aioseo-description{font-size:14px;line-height:22px;margin:0;color:#141b38}.aioseo-app .aioseo-description.no-margin,#aioseo-user-profile-tab .aioseo-description.no-margin{margin:0}.aioseo-app .aioseo-description.aioseo-error,#aioseo-user-profile-tab .aioseo-description.aioseo-error{color:#df2a4a}.aioseo-app .aioseo-description>.aioseo-toggle,#aioseo-user-profile-tab .aioseo-description>.aioseo-toggle{margin:0}.aioseo-app *+.aioseo-description,#aioseo-user-profile-tab *+.aioseo-description{margin-top:8px}.aioseo-app *+.aioseo-description:has(.aioseo-alert),#aioseo-user-profile-tab *+.aioseo-description:has(.aioseo-alert){margin-top:12px}.aioseo-app .max-recommended-count,#aioseo-user-profile-tab .max-recommended-count{color:#434960;margin-top:4px;font-size:14px}[dir=ltr] .aioseo-app .max-recommended-count,[dir=ltr] #aioseo-user-profile-tab .max-recommended-count{text-align:right}[dir=rtl] .aioseo-app .max-recommended-count,[dir=rtl] #aioseo-user-profile-tab .max-recommended-count{text-align:left}.aioseo-app .max-recommended-count strong.error,#aioseo-user-profile-tab .max-recommended-count strong.error{border:none;color:#df2a4a}.aioseo-app .popper,#aioseo-user-profile-tab .popper{font-size:12px;padding:20px;background-color:#fff;border:none;border-radius:3px;box-shadow:0 3px 4.8px #20476645;z-index:9999;max-width:350px;line-height:1.4;white-space:normal}[dir=ltr] .aioseo-app .popper,[dir=ltr] #aioseo-user-profile-tab .popper{text-align:left}[dir=rtl] .aioseo-app .popper,[dir=rtl] #aioseo-user-profile-tab .popper{text-align:right}.aioseo-app .popper.action,#aioseo-user-profile-tab .popper.action{padding:8px 12px;background-color:#141b38;color:#fff}.aioseo-app .popper.action .popper__arrow,#aioseo-user-profile-tab .popper.action .popper__arrow{border-top-color:#141b38}.aioseo-app .popper[x-placement^=bottom],#aioseo-user-profile-tab .popper[x-placement^=bottom]{box-shadow:0 2px 4.8px #20476645}.aioseo-app .popper .aioseo-description,#aioseo-user-profile-tab .popper .aioseo-description{margin:0}.aioseo-app .aioseo-row-highlight,#aioseo-user-profile-tab .aioseo-row-highlight{animation-name:color;animation-duration:.5s;animation-iteration-count:2}@keyframes color{0%{background-color:#fff}50%{background-color:#00aa63}to{background-color:#fff}}.column-aioseo-details{position:relative;width:20%}.no-underline{text-decoration:none}body,#wpfooter{padding-top:0;background-color:#f3f4f5}#aioseo-modal-portal{width:0;height:0} all-in-one-seo-pack/dist/Lite/assets/css/Main.wQkDlFZD.css000064400000017015151222736000017116 0ustar00.aioseo-site-score-dashboard{position:relative;display:flex;align-items:center;justify-content:flex-start}.aioseo-site-score-dashboard .analyze-errors{align-items:center;justify-content:center;margin-left:auto;margin-right:auto;text-align:center}.aioseo-site-score-dashboard .aioseo-seo-site-score-score{position:relative;width:100%;max-width:200px}[dir=ltr] .aioseo-site-score-dashboard .aioseo-seo-site-score-score{margin-right:1rem}[dir=rtl] .aioseo-site-score-dashboard .aioseo-seo-site-score-score{margin-left:1rem}.aioseo-site-score-dashboard .aioseo-seo-site-score-score svg{width:100%;height:auto}.aioseo-site-score-dashboard .aioseo-seo-site-score-recommendations>div:not(.links){display:flex;align-items:center;font-size:14px;color:#141b38;font-weight:600;margin-bottom:10px}.aioseo-site-score-dashboard .aioseo-seo-site-score-recommendations>div:not(.links) .round{position:relative;border-radius:50%;width:24px;min-width:24px;max-width:24px;height:24px;line-height:24px;display:flex;align-items:center;justify-content:center;font-size:12px;color:#fff;font-weight:600}[dir=ltr] .aioseo-site-score-dashboard .aioseo-seo-site-score-recommendations>div:not(.links) .round{margin-right:10px}[dir=rtl] .aioseo-site-score-dashboard .aioseo-seo-site-score-recommendations>div:not(.links) .round{margin-left:10px}.aioseo-site-score-dashboard .aioseo-seo-site-score-recommendations>div:not(.links) .round.red{background-color:#df2a4a}.aioseo-site-score-dashboard .aioseo-seo-site-score-recommendations>div:not(.links) .round.blue{background-color:#005ae0}.aioseo-site-score-dashboard .aioseo-seo-site-score-recommendations>div:not(.links) .round.orange{background-color:#f18200}.aioseo-site-score-dashboard .aioseo-seo-site-score-recommendations>div:not(.links) .round.green{background-color:#00aa63}.aioseo-site-score-dashboard .aioseo-seo-site-score-recommendations .links{margin-top:18px;font-size:14px;font-weight:600}[dir=ltr] .aioseo-site-score-dashboard .aioseo-seo-site-score-recommendations .links .no-underline{padding-left:5px}[dir=rtl] .aioseo-site-score-dashboard .aioseo-seo-site-score-recommendations .links .no-underline{padding-right:5px}.aioseo-seo-site-score .aioseo-blur{display:flex;align-items:center}.aioseo-seo-site-score .aioseo-seo-site-score-cta{position:absolute;top:50%;background-color:#fff;padding:20px;border:1px solid #E8E8EB;box-shadow:0 2px 10px #005ae033;color:#141b38;font-size:16px;font-weight:600;width:82%;text-align:center}[dir=ltr] .aioseo-seo-site-score .aioseo-seo-site-score-cta{left:50%;transform:translate(-50%) translateY(-50%)}[dir=rtl] .aioseo-seo-site-score .aioseo-seo-site-score-cta{right:50%;transform:translate(50%) translateY(-50%)}.aioseo-dashboard .aioseo-main>.aioseo-container{padding-top:0}.aioseo-dashboard .dashboard-getting-started{padding-top:1px}.aioseo-dashboard .dashboard-getting-started>div{margin-top:calc(var(--aioseo-gutter) - 1px);margin-bottom:0}[dir=ltr] .aioseo-dashboard .dashboard-notifications .notifications-count{margin-right:5px}[dir=rtl] .aioseo-dashboard .dashboard-notifications .notifications-count{margin-left:5px}.aioseo-dashboard .dashboard-notifications .notifications-count+div{flex:1}.aioseo-dashboard .dashboard-notifications .no-dashboard-notifications{padding-top:0;font-size:14px;color:#141b38;text-align:center}.aioseo-dashboard .dashboard-notifications .no-dashboard-notifications>div{font-weight:600;margin-bottom:10px}.aioseo-dashboard .dashboard-notifications .no-dashboard-notifications a{color:#434960;font-size:14px}.aioseo-dashboard .dashboard-notifications .show-dismissed-notifications{margin:0 5px;font-size:14px;color:#434960}.aioseo-dashboard .dashboard-notifications .aioseo-notification-cards .aioseo-notification:last-child>div{padding-bottom:0}.aioseo-dashboard .dashboard-notifications .notification-footer{margin-top:10px;padding-top:20px;border-top:1px solid #E8E8EB;display:flex}.aioseo-dashboard .dashboard-notifications .notification-footer .more-notifications{flex:1}.aioseo-dashboard .dashboard-notifications .notification-footer .more-notifications a{font-weight:600;font-size:14px}[dir=ltr] .aioseo-dashboard .dashboard-notifications .notification-footer .more-notifications a{margin-right:5px}[dir=rtl] .aioseo-dashboard .dashboard-notifications .notification-footer .more-notifications a{margin-left:5px}.aioseo-dashboard .dashboard-notifications .notification-footer a.dismiss{color:#8c8f9a;font-size:14px}.aioseo-dashboard .dashboard-support .aioseo-settings-row{margin-bottom:var(--aioseo-gutter)}.aioseo-dashboard .dashboard-support .aioseo-settings-row a{display:flex;align-items:center;font-size:14px;line-height:22px;font-weight:600;color:#141b38;text-decoration:none}.aioseo-dashboard .dashboard-support .aioseo-settings-row a:hover{color:#005ae0}.aioseo-dashboard .dashboard-support .aioseo-settings-row svg{color:#005ae0;width:16px;height:16px}[dir=ltr] .aioseo-dashboard .dashboard-support .aioseo-settings-row svg{margin-right:8px}[dir=rtl] .aioseo-dashboard .dashboard-support .aioseo-settings-row svg{margin-left:8px}.aioseo-dashboard .aioseo-quicklinks-cards-row.aioseo-row{--aioseo-gutter: 16px;--total-gap-width: calc(1 * var(--aioseo-gutter));--aioseo-col-max-width: calc((100% - var(--total-gap-width)) / 2);display:grid;gap:var(--aioseo-gutter);grid-template-columns:repeat(auto-fill,minmax(max(204px,var(--aioseo-col-max-width)),1fr))}.aioseo-dashboard .aioseo-quicklinks-cards-row.aioseo-row>*{max-width:none}.aioseo-dashboard .aioseo-quicklinks-cards-row.aioseo-row>*{max-width:none;padding:0}.aioseo-dashboard .aioseo-quicklinks-cards-row.aioseo-row .aioseo-col:first-child{grid-column:1/-1;grid-row:1/-1}.aioseo-dashboard .aioseo-quicklinks-cards-row.aioseo-row .aioseo-quicklinks-cards{height:100%;border:1px solid #E8E8EB;background:#fff;box-shadow:0 2px 5px #0000000d;color:#141b38;display:flex;flex-direction:column}.aioseo-dashboard .aioseo-quicklinks-cards-row.aioseo-row .aioseo-quicklinks-cards .feature-card-body{line-height:22px;padding:20px;flex:1}.aioseo-dashboard .aioseo-quicklinks-cards-row.aioseo-row .aioseo-quicklinks-cards .feature-card-body .feature-card-header{display:flex;align-items:center;font-size:14px;font-weight:600;margin-bottom:12px}.aioseo-dashboard .aioseo-quicklinks-cards-row.aioseo-row .aioseo-quicklinks-cards .feature-card-body .feature-card-header img,.aioseo-dashboard .aioseo-quicklinks-cards-row.aioseo-row .aioseo-quicklinks-cards .feature-card-body .feature-card-header svg{width:24px;height:24px}[dir=ltr] .aioseo-dashboard .aioseo-quicklinks-cards-row.aioseo-row .aioseo-quicklinks-cards .feature-card-body .feature-card-header img,[dir=ltr] .aioseo-dashboard .aioseo-quicklinks-cards-row.aioseo-row .aioseo-quicklinks-cards .feature-card-body .feature-card-header svg{margin-right:10px}[dir=rtl] .aioseo-dashboard .aioseo-quicklinks-cards-row.aioseo-row .aioseo-quicklinks-cards .feature-card-body .feature-card-header img,[dir=rtl] .aioseo-dashboard .aioseo-quicklinks-cards-row.aioseo-row .aioseo-quicklinks-cards .feature-card-body .feature-card-header svg{margin-left:10px}.aioseo-dashboard .aioseo-quicklinks-cards-row.aioseo-row .aioseo-quicklinks-cards .feature-card-body .feature-card-description{color:#434960;font-size:14px}.aioseo-dashboard .aioseo-quicklinks-cards-row.aioseo-row .aioseo-quicklinks-cards .feature-card-body .feature-card-description .learn-more{margin-top:12px;font-size:14px}.aioseo-dashboard .aioseo-quicklinks-title{font-size:18px;line-height:22px;color:#141b38;font-weight:600;display:flex;align-items:center}.aioseo-dashboard .aioseo-quicklinks-title svg{width:16px;height:16px;color:#8c8f9a}.aioseo-dashboard .dashboard-cta{margin-top:var(--aioseo-gutter)} all-in-one-seo-pack/dist/Lite/assets/css/Main.x3Oj30oR.css000064400000000045151222736000017012 0ustar00.aioseo-redirects{position:relative} all-in-one-seo-pack/dist/Lite/assets/css/Maps.2LJoYCWy.css000064400000000046151222736000017062 0ustar00.aioseo-local-maps{position:relative} all-in-one-seo-pack/dist/Lite/assets/css/MazBtn-K-8_p-HR.Dy_aexRw.css000064400000037501151222736000020746 0ustar00.m-btn[data-v-0caaaef5]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex:none;flex:none;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:.5rem;border-width:var(--maz-border-width);border-style:solid;border-color:transparent;text-align:center;font-size:1rem;line-height:1.5rem;color:var(--maz-color-text)}.m-btn span[data-v-0caaaef5]{line-height:1}.m-btn-loader[data-v-0caaaef5]{position:absolute}.m-btn.--cursor-pointer[data-v-0caaaef5]{cursor:pointer}.m-btn.--cursor-default[data-v-0caaaef5]{cursor:default}.m-btn.--is-link[data-v-0caaaef5]{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:transparent;outline:2px solid transparent;outline-offset:2px;-webkit-transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform,-webkit-filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform,-webkit-filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-box-shadow,-webkit-transform,-webkit-filter,-webkit-backdrop-filter;-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1)}.m-btn.--is-link:not(.--no-leading) span[data-v-0caaaef5]{line-height:2.25rem}.m-btn.--is-link[data-v-0caaaef5]:not(:disabled):hover:not(.--no-underline),.m-btn.--is-link[data-v-0caaaef5]:not(:disabled):focus:not(.--no-underline){text-decoration-line:underline}.m-btn.--is-link.--secondary[data-v-0caaaef5]{color:var(--maz-color-secondary)}.m-btn.--is-link.--info[data-v-0caaaef5]{color:var(--maz-color-info)}.m-btn.--is-link.--warning[data-v-0caaaef5]{color:var(--maz-color-warning-600)}.m-btn.--is-link.--danger[data-v-0caaaef5]{color:var(--maz-color-danger-600)}.m-btn.--is-link.--success[data-v-0caaaef5]{color:var(--maz-color-success-600)}.m-btn.--is-link.--white[data-v-0caaaef5]{color:var(--maz-color-white)}.m-btn.--is-link.--black[data-v-0caaaef5]{color:var(--maz-color-black)}.m-btn.--is-link.--theme[data-v-0caaaef5]{color:var(--maz-color-text)}.m-btn.--is-button[data-v-0caaaef5]{position:relative;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;overflow:hidden;border-color:transparent;background-color:transparent;font-weight:500;text-decoration-line:none;-webkit-transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform,-webkit-filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform,-webkit-filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-box-shadow,-webkit-transform,-webkit-filter,-webkit-backdrop-filter;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1)}.m-btn.--is-button[data-v-0caaaef5]:not(.--no-rounded){border-radius:var(--maz-border-radius)}.m-btn.--is-button.--rounded[data-v-0caaaef5]{border-radius:9999px}.m-btn.--is-button.--xl[data-v-0caaaef5]{padding:1.325rem 2rem;font-size:1.25rem;line-height:1.75rem}.m-btn.--is-button.--lg[data-v-0caaaef5]{padding:1rem 1.5rem;font-size:1.125rem;line-height:1.75rem}.m-btn.--is-button.--md[data-v-0caaaef5]{padding:.88rem 1rem}.m-btn.--is-button.--sm[data-v-0caaaef5]{padding:.625rem .75rem;font-size:.875rem;line-height:1.25rem}.m-btn.--is-button.--xs[data-v-0caaaef5]{padding:.3rem .5rem;font-size:.875rem;line-height:1.25rem}.m-btn.--is-button.--mini[data-v-0caaaef5]{padding:.2rem .25rem;font-size:.75rem;line-height:1rem}.m-btn.--is-button[data-v-0caaaef5]{-webkit-transition:background .3s ease-in-out 0ms,color .3s ease-in-out 0ms;transition:background .3s ease-in-out 0ms,color .3s ease-in-out 0ms}.m-btn.--is-button[data-v-0caaaef5]:not(.--disabled):hover,.m-btn.--is-button[data-v-0caaaef5]:not(.--disabled):focus{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity))}.m-btn.--is-button.--fab[data-v-0caaaef5]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border-radius:9999px;padding:0}.m-btn.--is-button.--fab[data-v-0caaaef5]:not(.--no-elevation){-webkit-box-shadow:0 5px 10px 0 hsla(0,0%,0%,.05);box-shadow:0 5px 10px #0000000d}.m-btn.--is-button.--fab.--xl[data-v-0caaaef5]{height:4.125rem;width:4.125rem;font-size:1.25rem;line-height:1.75rem}.m-btn.--is-button.--fab.--lg[data-v-0caaaef5]{height:3.375rem;width:3.375rem;font-size:1.125rem;line-height:1.75rem}.m-btn.--is-button.--fab.--md[data-v-0caaaef5]{height:3rem;width:3rem}.m-btn.--is-button.--fab.--sm[data-v-0caaaef5]{height:2.375rem;width:2.375rem;font-size:.875rem;line-height:1.25rem}.m-btn.--is-button.--fab.--xs[data-v-0caaaef5]{height:1.725rem;width:1.725rem;font-size:.875rem;line-height:1.25rem}.m-btn.--is-button.--fab.--mini[data-v-0caaaef5]{height:1.4rem;width:1.4rem;font-size:.75rem;line-height:1rem}.m-btn.--is-button.--block[data-v-0caaaef5]{width:100%}.m-btn.--is-button.--primary[data-v-0caaaef5]{background-color:var(--maz-color-primary);color:var(--maz-color-primary-contrast)}.m-btn.--is-button.--primary[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--primary[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-primary-600)}.m-btn.--is-button.--secondary[data-v-0caaaef5]{background-color:var(--maz-color-secondary);color:var(--maz-color-secondary-contrast)}.m-btn.--is-button.--secondary[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--secondary[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-secondary-600)}.m-btn.--is-button.--info[data-v-0caaaef5]{background-color:var(--maz-color-info);color:var(--maz-color-info-contrast)}.m-btn.--is-button.--info[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--info[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-info-600)}.m-btn.--is-button.--success[data-v-0caaaef5]{background-color:var(--maz-color-success);color:var(--maz-color-success-contrast)}.m-btn.--is-button.--success[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--success[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-success-600)}.m-btn.--is-button.--warning[data-v-0caaaef5]{background-color:var(--maz-color-warning);color:var(--maz-color-warning-contrast)}.m-btn.--is-button.--warning[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--warning[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-warning-600)}.m-btn.--is-button.--danger[data-v-0caaaef5]{background-color:var(--maz-color-danger);color:var(--maz-color-white)}.m-btn.--is-button.--danger[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--danger[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-danger-600)}.m-btn.--is-button.--white[data-v-0caaaef5]{background-color:var(--maz-color-white);color:var(--maz-color-white-contrast)}.m-btn.--is-button.--white[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--white[data-v-0caaaef5]:not(:disabled):focus{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity))}.m-btn.--is-button.--black[data-v-0caaaef5]{background-color:var(--maz-color-black);color:var(--maz-color-black-contrast)}.m-btn.--is-button.--black[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--black[data-v-0caaaef5]:not(:disabled):focus{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.m-btn.--is-button.--transparent[data-v-0caaaef5]{background-color:transparent}.m-btn.--is-button.--transparent[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--transparent[data-v-0caaaef5]:not(:disabled):focus{background-color:#00000014}:is([class~=dark] .m-btn.--is-button.--transparent[data-v-0caaaef5]:not(:disabled):hover),:is([class~=dark] .m-btn.--is-button.--transparent[data-v-0caaaef5]:not(:disabled):focus){background-color:#ffffff14}.m-btn.--is-button.--theme[data-v-0caaaef5]{background-color:var(--maz-color-bg-theme);color:var(--maz-color-bg)}.m-btn.--is-button.--theme[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--theme[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-bg-theme-hover)}.m-btn.--is-button.--primary-outline[data-v-0caaaef5]{border-color:var(--maz-color-primary);background-color:var(--maz-color-primary-alpha-05);color:var(--maz-color-primary)}.m-btn.--is-button.--primary-outline[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--primary-outline[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-primary);color:var(--maz-color-primary-contrast)}.m-btn.--is-button.--secondary-outline[data-v-0caaaef5]{border-color:var(--maz-color-secondary);background-color:var(--maz-color-secondary-alpha-05);color:var(--maz-color-secondary)}.m-btn.--is-button.--secondary-outline[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--secondary-outline[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-secondary);color:var(--maz-color-white)}.m-btn.--is-button.--info-outline[data-v-0caaaef5]{border-color:var(--maz-color-info);background-color:var(--maz-color-info-alpha-05);color:var(--maz-color-info)}.m-btn.--is-button.--info-outline[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--info-outline[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-info);color:var(--maz-color-white)}.m-btn.--is-button.--success-outline[data-v-0caaaef5]{border-color:var(--maz-color-success);background-color:var(--maz-color-success-alpha-05);color:var(--maz-color-success)}.m-btn.--is-button.--success-outline[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--success-outline[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-success);color:var(--maz-color-white)}.m-btn.--is-button.--danger-outline[data-v-0caaaef5]{border-color:var(--maz-color-danger);background-color:var(--maz-color-danger-alpha-05);color:var(--maz-color-danger)}.m-btn.--is-button.--danger-outline[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--danger-outline[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-danger);color:var(--maz-color-white)}.m-btn.--is-button.--warning-outline[data-v-0caaaef5]{border-color:var(--maz-color-warning);background-color:var(--maz-color-warning-alpha-05);color:var(--maz-color-warning)}.m-btn.--is-button.--warning-outline[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--warning-outline[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-warning);color:var(--maz-color-white)}.m-btn.--is-button.--white-outline[data-v-0caaaef5]{border-color:var(--maz-color-white);color:var(--maz-color-white)}.m-btn.--is-button.--white-outline[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--white-outline[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-white);color:var(--maz-color-white-contrast)}.m-btn.--is-button.--black-outline[data-v-0caaaef5]{border-color:var(--maz-color-black);color:var(--maz-color-black)}.m-btn.--is-button.--black-outline[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--black-outline[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-black);color:var(--maz-color-black-contrast)}.m-btn.--is-button.--theme-outline[data-v-0caaaef5]{border-color:var(--maz-color-bg-theme);color:var(--maz-color-bg-theme)}.m-btn.--is-button.--theme-outline[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--theme-outline[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-bg-theme);color:var(--maz-color-bg)}.m-btn.--is-button.--primary-pastel[data-v-0caaaef5]{background-color:var(--maz-color-primary-50);color:var(--maz-color-primary)}.m-btn.--is-button.--primary-pastel[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--primary-pastel[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-primary);color:var(--maz-color-primary-contrast)}.m-btn.--is-button.--secondary-pastel[data-v-0caaaef5]{background-color:var(--maz-color-secondary-50);color:var(--maz-color-secondary)}.m-btn.--is-button.--secondary-pastel[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--secondary-pastel[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-secondary);color:var(--maz-color-secondary-contrast)}.m-btn.--is-button.--info-pastel[data-v-0caaaef5]{background-color:var(--maz-color-info-50);color:var(--maz-color-info)}.m-btn.--is-button.--info-pastel[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--info-pastel[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-info);color:var(--maz-color-info-contrast)}.m-btn.--is-button.--success-pastel[data-v-0caaaef5]{background-color:var(--maz-color-success-50);color:var(--maz-color-success)}.m-btn.--is-button.--success-pastel[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--success-pastel[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-success);color:var(--maz-color-success-contrast)}.m-btn.--is-button.--danger-pastel[data-v-0caaaef5]{background-color:var(--maz-color-danger-50);color:var(--maz-color-danger)}.m-btn.--is-button.--danger-pastel[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--danger-pastel[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-danger);color:var(--maz-color-danger-contrast)}.m-btn.--is-button.--warning-pastel[data-v-0caaaef5]{background-color:var(--maz-color-warning-50);color:var(--maz-color-warning)}.m-btn.--is-button.--warning-pastel[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--warning-pastel[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-warning);color:var(--maz-color-warning-contrast)}.m-btn.--is-button.--white-pastel[data-v-0caaaef5]{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity));color:var(--maz-color-white)}.m-btn.--is-button.--white-pastel[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--white-pastel[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-white);color:var(--maz-color-white-contrast)}.m-btn.--is-button.--black-pastel[data-v-0caaaef5]{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity));color:var(--maz-color-black)}.m-btn.--is-button.--black-pastel[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--black-pastel[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-black);color:var(--maz-color-black-contrast)}.m-btn.--is-button.--theme-pastel[data-v-0caaaef5]{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity));color:var(--maz-color-black)}.m-btn.--is-button.--theme-pastel[data-v-0caaaef5]:not(:disabled):hover,.m-btn.--is-button.--theme-pastel[data-v-0caaaef5]:not(:disabled):focus{background-color:var(--maz-color-black);color:var(--maz-color-black-contrast)}.m-btn.--is-button.--disabled[data-v-0caaaef5]{cursor:not-allowed;background-color:var(--maz-color-bg-lighter);--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.m-btn.--is-button.--loading[data-v-0caaaef5]{cursor:wait}.m-btn.--is-button.--no-padding[data-v-0caaaef5]{padding:0} all-in-one-seo-pack/dist/Lite/assets/css/MazCheckbox-7Ap-thkT.CDCEvyZf.css000064400000007443151222736000021760 0ustar00.m-checkbox[data-v-05f6558f]{position:relative;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:.5rem;outline:2px solid transparent;outline-offset:2px}.m-checkbox .check-icon[data-v-05f6558f]{color:var(--3a21591b);--tw-scale-x: 0;--tw-scale-y: 0;-webkit-transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1)}.m-checkbox .check-icon[data-v-05f6558f] path{stroke-width:2.5}.m-checkbox>span[data-v-05f6558f]{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;border-radius:.375rem;border-width:var(--maz-border-width);--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity));-webkit-transition-property:all;transition-property:all;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}:is([class~=dark] .m-checkbox>span[data-v-05f6558f]){border-color:var(--maz-color-bg-lighter)}.m-checkbox>span[data-v-05f6558f]{width:var(--4953c77d);height:var(--4953c77d)}.m-checkbox input[data-v-05f6558f]{display:none}.m-checkbox input:not(:checked)~span[data-v-05f6558f]{background-color:var(--maz-color-bg)}:is([class~=dark] .m-checkbox input:not(:checked)~span[data-v-05f6558f]){background-color:var(--maz-color-bg-light)}.m-checkbox input:checked~span[data-v-05f6558f]{border-color:var(--d5250ce8);background-color:var(--d5250ce8)}.m-checkbox input:checked~span .check-icon[data-v-05f6558f]{--tw-scale-x: 1;--tw-scale-y: 1;-webkit-transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.m-checkbox input:disabled~span[data-v-05f6558f]{background-color:var(--maz-color-bg-light)}:is([class~=dark] .m-checkbox input:disabled~span[data-v-05f6558f]){background-color:var(--maz-color-bg-lighter)}.m-checkbox.--disabled[data-v-05f6558f]{cursor:not-allowed;color:var(--maz-color-muted)}.m-checkbox.--disabled input:checked~span[data-v-05f6558f]{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity))}:is([class~=dark] .m-checkbox.--disabled input:checked~span[data-v-05f6558f]){border-color:var(--maz-color-bg-lighter)}.m-checkbox.--disabled input:checked~span .check-icon[data-v-05f6558f]{color:var(--maz-color-muted)}.m-checkbox[data-v-05f6558f]:not(.--disabled){cursor:pointer}.m-checkbox:not(.--disabled):hover>span[data-v-05f6558f],.m-checkbox:not(.--disabled):focus>span[data-v-05f6558f]{-webkit-transition-property:all;transition-property:all;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-box-shadow:0 0 0 .125rem var(--105d84cf);box-shadow:0 0 0 .125rem var(--105d84cf)} all-in-one-seo-pack/dist/Lite/assets/css/MazSpinner-Wnqtt3dQ.CIDeY9ty.css000064400000002046151222736000021756 0ustar00@-webkit-keyframes maz-spin-c67298ec{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes maz-spin-c67298ec{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.m-spinner[data-v-c67298ec]{-webkit-animation:maz-spin-c67298ec 1s linear infinite;animation:maz-spin-c67298ec 1s linear infinite;fill:currentColor;margin:0!important}.m-spinner--normal[data-v-c67298ec]{color:var(--maz-color-text)}.m-spinner--primary[data-v-c67298ec]{color:var(--maz-color-primary)}.m-spinner--secondary[data-v-c67298ec]{color:var(--maz-color-secondary)}.m-spinner--info[data-v-c67298ec]{color:var(--maz-color-info)}.m-spinner--warning[data-v-c67298ec]{color:var(--maz-color-warning)}.m-spinner--danger[data-v-c67298ec]{color:var(--maz-color-danger)}.m-spinner--success[data-v-c67298ec]{color:var(--maz-color-success)}.m-spinner--black[data-v-c67298ec]{color:var(--maz-color-black)}.m-spinner--white[data-v-c67298ec],.m-spinner--transparent[data-v-c67298ec]{color:var(--maz-color-white)}.m-spinner--theme[data-v-c67298ec]{color:var(--maz-color-bg-theme)} all-in-one-seo-pack/dist/Lite/assets/css/Media.BGZxx7E3.css000064400000000705151222736000017142 0ustar00.aioseo-app .aioseo-sa-image-seo[data-v-7fc5d2be]{min-height:650px}.aioseo-app .aioseo-sa-image-seo .aioseo-cta .feature-list[data-v-7fc5d2be]{max-width:600px}.aioseo-search-appearance-content-types .icon{display:flex;align-items:center}[dir=ltr] .aioseo-search-appearance-content-types .icon{margin-right:16px}[dir=rtl] .aioseo-search-appearance-content-types .icon{margin-left:16px}.aioseo-search-appearance-content-types .content:empty{display:none} all-in-one-seo-pack/dist/Lite/assets/css/MiIntro.DEX7y4J1.css000064400000003067151222736000017406 0ustar00.aioseo-monsterinsights-intro.aioseo-card.aioseo-card--intro{background-color:#f8fbff;box-shadow:none}.aioseo-monsterinsights-intro .aioseo-analytics__intro{text-align:center}.aioseo-monsterinsights-intro .aioseo-analytics__intro .intro-image{max-width:300px;margin:0 auto;display:flex;justify-content:space-between;font-size:45px;align-items:center}.aioseo-monsterinsights-intro .aioseo-analytics__intro .intro-image .aioseo-logo-gear{width:100%;max-width:90px;color:#005ae0}.aioseo-monsterinsights-intro .aioseo-analytics__intro .intro-image span{color:#df2a4a}.aioseo-monsterinsights-intro .aioseo-analytics__intro .intro-heading{margin:24px auto;font-size:36px;line-height:1.25}.aioseo-monsterinsights-intro .aioseo-analytics__intro p{margin:0 auto}.aioseo-monsterinsights-intro .aioseo-analytics__intro .aioseo-button{margin-top:30px}.aioseo-monsterinsights-intro .preview-list{display:flex;align-items:center;max-width:800px;margin:24px auto 0}[dir=ltr] .aioseo-monsterinsights-intro .preview-list{text-align:left}[dir=rtl] .aioseo-monsterinsights-intro .preview-list{text-align:right}[dir=ltr] .aioseo-monsterinsights-intro .preview-list ul{margin-left:24px}[dir=rtl] .aioseo-monsterinsights-intro .preview-list ul{margin-right:24px}.aioseo-monsterinsights-intro .preview-list li{display:flex;align-items:flex-start;font-size:16px}.aioseo-monsterinsights-intro .aioseo-circle-check{color:#00aa63;max-width:18px;margin-top:3px}[dir=ltr] .aioseo-monsterinsights-intro .aioseo-circle-check{margin-right:18px}[dir=rtl] .aioseo-monsterinsights-intro .aioseo-circle-check{margin-left:18px} all-in-one-seo-pack/dist/Lite/assets/css/Modal.nD_BRSyM.css000064400000000377151222736000017260 0ustar00.aioseo-draggable{position:absolute}[dir=ltr] .aioseo-pagebuilder-modal .aioseo-score-button[data-v-4b3f6897]{margin-left:auto;margin-right:20px}[dir=rtl] .aioseo-pagebuilder-modal .aioseo-score-button[data-v-4b3f6897]{margin-right:auto;margin-left:20px} all-in-one-seo-pack/dist/Lite/assets/css/Monsterinsights.CpyMstno.css000064400000002440151222736000021614 0ustar00.aioseo-app .aioseo-analytics{padding-top:1px;line-height:1.5}.aioseo-app .aioseo-analytics p{max-width:600px;margin-bottom:24px;line-height:1.5}.aioseo-app .aioseo-analytics section.aioseo-card{padding:18px;position:relative}.aioseo-app .aioseo-analytics section.aioseo-card.step{display:flex;align-items:center;margin-left:auto;margin-right:auto}.aioseo-app .aioseo-analytics .step-count{max-width:170px;width:100%}.aioseo-app .aioseo-analytics .step-count__num{font-size:32px;bottom:50%;line-height:1;width:48px;height:48px;text-align:center;border-radius:50%;color:#d0d1d7;border:2px solid #D0D1D7;display:flex;align-items:center;justify-content:center;margin:0 auto;transition:all .2s ease}.aioseo-app .aioseo-analytics .step--completed .step-count__num{background-color:#f3f4f5;border-color:#f3f4f5;color:#fff}.aioseo-app .aioseo-analytics .step--current .step-count__num{background-color:#d0d1d7;color:#fff}.aioseo-app .aioseo-analytics .aioseo-button.disabled:not(.loading){color:#8c8f9a!important;background-color:#f3f4f5!important;border-width:0;pointer-events:none;cursor:default;box-shadow:none!important;transform:none!important}.aioseo-app .aioseo-analytics .step--pending{opacity:.5;filter:grayscale(1)}.aioseo-app .aioseo-analytics .step-title{margin-bottom:24px;font-size:32px;line-height:1.25} all-in-one-seo-pack/dist/Lite/assets/css/NewsSitemap.ButLx8i9.css000064400000007111151222736000020467 0ustar00.aioseo-news-sitemap-lite .aioseo-card .content{min-height:600px}.aioseo-news-sitemap-lite .aioseo-sitemap-preview{display:flex;align-items:center;margin-bottom:10px}[dir=ltr] .aioseo-news-sitemap-lite .aioseo-sitemap-preview{margin-right:10px}[dir=rtl] .aioseo-news-sitemap-lite .aioseo-sitemap-preview{margin-left:10px}.aioseo-news-sitemap-lite .aioseo-sitemap-preview .aioseo-select{max-width:180px}[dir=ltr] .aioseo-news-sitemap-lite .aioseo-sitemap-preview .aioseo-select{margin-right:10px}[dir=rtl] .aioseo-news-sitemap-lite .aioseo-sitemap-preview .aioseo-select{margin-left:10px}.aioseo-news-sitemap-lite .aioseo-sitemap-preview svg.aioseo-external{width:14px;height:14px}[dir=ltr] .aioseo-news-sitemap-lite .aioseo-sitemap-preview svg.aioseo-external{margin-right:10px}[dir=rtl] .aioseo-news-sitemap-lite .aioseo-sitemap-preview svg.aioseo-external{margin-left:10px}.aioseo-news-sitemap .aioseo-content-width,.aioseo-news-sitemap .aioseo-links-per-site{max-width:110px}.aioseo-news-sitemap .aioseo-sitemap-preview{display:flex;align-items:center;margin-bottom:10px}[dir=ltr] .aioseo-news-sitemap .aioseo-sitemap-preview{margin-right:10px}[dir=rtl] .aioseo-news-sitemap .aioseo-sitemap-preview{margin-left:10px}.aioseo-news-sitemap .aioseo-sitemap-preview .aioseo-select{max-width:180px}[dir=ltr] .aioseo-news-sitemap .aioseo-sitemap-preview .aioseo-select{margin-right:10px}[dir=rtl] .aioseo-news-sitemap .aioseo-sitemap-preview .aioseo-select{margin-left:10px}.aioseo-news-sitemap .aioseo-sitemap-preview svg.aioseo-external{width:14px;height:14px}[dir=ltr] .aioseo-news-sitemap .aioseo-sitemap-preview svg.aioseo-external{margin-right:10px}[dir=rtl] .aioseo-news-sitemap .aioseo-sitemap-preview svg.aioseo-external{margin-left:10px}.aioseo-news-sitemap .aioseo-exclude-pages-posts .aioseo-select{max-width:600px;display:inline-block}[dir=ltr] .aioseo-news-sitemap .aioseo-exclude-pages-posts .aioseo-select{margin-right:16px}[dir=rtl] .aioseo-news-sitemap .aioseo-exclude-pages-posts .aioseo-select{margin-left:16px}.aioseo-news-sitemap .aioseo-exclude-pages-posts .aioseo-select .multiselect__option{display:flex}.aioseo-news-sitemap .aioseo-exclude-pages-posts .aioseo-select .multiselect__option--highlight .option-title{color:#005ae0}.aioseo-news-sitemap .aioseo-exclude-pages-posts .option{flex:1 0 auto}.aioseo-news-sitemap .aioseo-exclude-pages-posts .option .option-title{font-weight:500;font-size:16px;color:#141b38}.aioseo-news-sitemap .aioseo-exclude-pages-posts .option .option-title .search-term{font-weight:700}.aioseo-news-sitemap .aioseo-exclude-pages-posts .option .option-details{display:flex;align-items:center;font-size:14px;color:#8c8f9a}[dir=ltr] .aioseo-news-sitemap .aioseo-exclude-pages-posts .option .option-details span{margin-right:15px}[dir=rtl] .aioseo-news-sitemap .aioseo-exclude-pages-posts .option .option-details span{margin-left:15px}.aioseo-news-sitemap .aioseo-exclude-pages-posts .option-permalink{display:flex;align-items:center}.aioseo-news-sitemap .aioseo-exclude-pages-posts .option-permalink svg.aioseo-external{width:15px;height:15px;color:#434960}.aioseo-news-sitemap .aioseo-exclude-pages-posts .multiselect-toggle{padding:10px 13px;width:40px;position:absolute;height:36px;top:2px;text-align:center;z-index:1}[dir=ltr] .aioseo-news-sitemap .aioseo-exclude-pages-posts .multiselect-toggle{right:2px}[dir=rtl] .aioseo-news-sitemap .aioseo-exclude-pages-posts .multiselect-toggle{left:2px}.aioseo-news-sitemap .aioseo-exclude-pages-posts .multiselect-toggle svg.aioseo-add-plus{width:14px;height:14px;color:#000}.aioseo-news-sitemap .aioseo-news-embed .aioseo-checkbox:first-child{margin-bottom:10px} all-in-one-seo-pack/dist/Lite/assets/css/notifications.BQ8CSXE-.css000064400000001550151222736000020644 0ustar00#wp-admin-bar-aioseo-main .aioseo-menu-new-notifications{position:absolute;top:42px;white-space:nowrap;padding:2px 12px;border-radius:2px;color:#fff;background-color:#d4790d}[dir=ltr] #wp-admin-bar-aioseo-main .aioseo-menu-new-notifications{transform:translate(-30px)}[dir=rtl] #wp-admin-bar-aioseo-main .aioseo-menu-new-notifications{transform:translate(30px)}#wp-admin-bar-aioseo-main .aioseo-menu-new-notifications:before{content:"";display:block;height:15px;width:15px;background-color:inherit;border:inherit;position:absolute;top:-7px;clip-path:polygon(0% 0%,100% 100%,0% 100%)}[dir=ltr] #wp-admin-bar-aioseo-main .aioseo-menu-new-notifications:before{left:calc(50% - 7px);transform:rotate(135deg);border-radius:0 0 0 2px}[dir=rtl] #wp-admin-bar-aioseo-main .aioseo-menu-new-notifications:before{right:calc(50% - 7px);transform:rotate(-135deg);border-radius:0 0 2px} all-in-one-seo-pack/dist/Lite/assets/css/OpeningHours.DvKpyQBj.css000064400000001424151222736000020713 0ustar00.aioseo-opening-hours .aioseo-input,.aioseo-opening-hours .aioseo-select,.aioseo-opening-hours .aioseo-multiselect{max-width:480px}.aioseo-opening-hours .mt-10{display:inline-block;margin-top:10px;font-size:14px}.aioseo-opening-hours .mt-16{margin-top:16px}.aioseo-col-flex{display:flex;align-items:center;padding:12px 0;border-bottom:1px solid #E8E8EB}.aioseo-col-flex:first-of-type{padding-top:0}.aioseo-col-flex:last-of-type{padding-bottom:0;border:none}.aioseo-col-flex .aioseo-col-day{flex:1}.aioseo-col-flex .aioseo-col-hours,.aioseo-col-flex .aioseo-col-alwaysopen{flex:2}.aioseo-col-flex .aioseo-select{display:inline-block;max-width:125px}.aioseo-col-flex .multiselect--disabled .multiselect__tags,.aioseo-col-flex .multiselect--disabled .multiselect__single{background:#f3f4f5} all-in-one-seo-pack/dist/Lite/assets/css/Overview.4DO85KVD.css000064400000005627151222736000017570 0ustar00.aioseo-overview-title{font-weight:600;margin-bottom:15px;font-size:14px;line-height:21px}.aioseo-overview-description{color:#434960;font-size:14px!important;margin:0 0 16px}.aioseo-overview-selector{margin:0 0 16px}.aioseo-overview-selector strong{font-size:14px;display:inline-block;margin-bottom:4px;font-weight:600}.aioseo-overview .aioseo-donut-chart-with-legend{margin:0 0 16px}.aioseo-overview .aioseo-donut-chart-with-legend .chart-left{max-width:145px}[dir=ltr] .aioseo-overview .aioseo-donut-chart-with-legend .chart-right{margin-left:32px}[dir=rtl] .aioseo-overview .aioseo-donut-chart-with-legend .chart-right{margin-right:32px}@media screen and (max-width: 600px){[dir=ltr] .aioseo-overview .aioseo-donut-chart-with-legend .chart-right{margin-left:auto}[dir=rtl] .aioseo-overview .aioseo-donut-chart-with-legend .chart-right{margin-right:auto}}@media screen and (max-width: 911px) and (min-width: 601px){.aioseo-overview .aioseo-donut-chart-with-legend .chart-right{max-width:50%}[dir=ltr] .aioseo-overview .aioseo-donut-chart-with-legend .chart-right{margin-left:auto}[dir=rtl] .aioseo-overview .aioseo-donut-chart-with-legend .chart-right{margin-right:auto}}.aioseo-overview .aioseo-alert{margin:0 0 24px}.aioseo-overview .aioseo-alert a{color:#2c324c!important}.aioseo-overview .aioseo-separator{width:100%;width:calc(100% + 60px);margin:24px 0;border-color:#e8e8eb}[dir=ltr] .aioseo-overview .aioseo-separator{margin-left:-30px}[dir=rtl] .aioseo-overview .aioseo-separator{margin-right:-30px}.aioseo-overview .aioseo-button{font-size:12px;height:32px}.aioseo-overview .aioseo-button svg{width:16px;height:16px}[dir=ltr] .aioseo-overview .aioseo-button svg{margin-right:10px}[dir=rtl] .aioseo-overview .aioseo-button svg{margin-left:10px}.aioseo-overview .aioseo-overview{max-width:300px;min-width:275px;width:100%;height:auto}@media screen and (max-width: 1280px){.aioseo-overview .aioseo-overview{min-width:0}}.aioseo-overview>:last-child{margin-bottom:0}.aioseo-overview--invalid{display:flex;flex-direction:row;align-items:center}.aioseo-overview--wp-styles .aioseo-overview-description{color:#434960}.aioseo-overview--wp-styles .aioseo-overview-selector select{width:100%}.aioseo-overview--wp-styles .aioseo-overview-selector strong{font-weight:400}.aioseo-overview--wp-styles a:not(.button){color:#2271b1!important}.aioseo-overview--wp-styles .button svg{width:16px;height:16px;vertical-align:sub}[dir=ltr] .aioseo-overview--wp-styles .button svg{margin-right:10px}[dir=rtl] .aioseo-overview--wp-styles .button svg{margin-left:10px}.aioseo-overview--wp-styles .aioseo-alert{font-weight:400!important}.aioseo-overview--wp-styles .aioseo-separator{width:calc(100% + 24px);margin:12px 0;border-color:#c3c4c7;border-top:0}[dir=ltr] .aioseo-overview--wp-styles .aioseo-separator{margin-left:-12px}[dir=rtl] .aioseo-overview--wp-styles .aioseo-separator{margin-right:-12px}.aioseo-overview--wp-styles .aioseo-overview{max-width:225px;min-width:175px} all-in-one-seo-pack/dist/Lite/assets/css/Overview.DxJa2EnR.css000064400000024554151222736000017775 0ustar00.aioseo-app .aioseo-link-count{display:flex;padding:0 20px;flex-direction:column;align-items:center;justify-content:center;text-decoration:none}.aioseo-app .aioseo-link-count .aioseo-link-count-top{display:flex;align-items:center;font-size:32px;line-height:40px;font-weight:600}.aioseo-app .aioseo-link-count .aioseo-link-count-top span{color:#141b38}.aioseo-app .aioseo-link-count .aioseo-link-count-top svg{width:100%;max-height:18px}[dir=ltr] .aioseo-app .aioseo-link-count .aioseo-link-count-top svg{margin-right:11px}[dir=rtl] .aioseo-app .aioseo-link-count .aioseo-link-count-top svg{margin-left:11px}.aioseo-app .aioseo-link-count .aioseo-link-count-top svg.aioseo-link-external{color:#005ae0}.aioseo-app .aioseo-link-count .aioseo-link-count-top svg.aioseo-link-internal-inbound{color:#00aa63}.aioseo-app .aioseo-link-count .aioseo-link-count-top svg.aioseo-link-affiliate{max-height:20px;color:#f18200}.aioseo-app .aioseo-link-count .aioseo-link-count-top svg.aioseo-link-orphaned{color:#df2a4a}[dir=ltr] .aioseo-app .aioseo-link-count .aioseo-link-count-top svg.aioseo-link-orphaned{margin-right:10px}[dir=rtl] .aioseo-app .aioseo-link-count .aioseo-link-count-top svg.aioseo-link-orphaned{margin-left:10px}.aioseo-app .aioseo-link-count .aioseo-link-count-bottom{display:flex;margin-top:8px;font-size:14px;line-height:18px}.aioseo-app .aioseo-link-count .aioseo-link-count-bottom span{color:#434960}.aioseo-app .aioseo-link-count .aioseo-link-count-bottom .aioseo-tooltip{display:inline-block;margin-top:1.5px}[dir=ltr] .aioseo-app .aioseo-link-count .aioseo-link-count-bottom .aioseo-tooltip{margin-left:8px}[dir=rtl] .aioseo-app .aioseo-link-count .aioseo-link-count-bottom .aioseo-tooltip{margin-right:8px}.aioseo-app .aioseo-link-count .aioseo-link-count-bottom .aioseo-tooltip svg.aioseo-circle-question-mark{display:inline-flex;width:15px;height:15px}@media screen and (max-width: 912px){.aioseo-app .aioseo-link-count .aioseo-row{justify-content:center;row-gap:15px}.aioseo-app .aioseo-link-count .aioseo-row .counter{display:inline-flex}.aioseo-app .aioseo-link-count .aioseo-row .counter.aioseo-col{flex-basis:auto;padding:5px 20px}}.aioseo-app .aioseo-link-assistant-statistics{--aioseo-gutter: 0px;margin:0}.aioseo-app .aioseo-link-assistant-statistics .counter{display:flex;justify-content:center;flex:1}[dir=ltr] .aioseo-app .aioseo-link-assistant-statistics .divider-right{border-right:2px solid #DCDDE1}[dir=rtl] .aioseo-app .aioseo-link-assistant-statistics .divider-right{border-left:2px solid #DCDDE1}@media screen and (max-width: 912px){.aioseo-app .aioseo-link-assistant-statistics .aioseo-row{justify-content:center;row-gap:16px}.aioseo-app .aioseo-link-assistant-statistics .aioseo-row .counter{display:inline-flex}.aioseo-app .aioseo-link-assistant-statistics .aioseo-row .counter.aioseo-col{flex-basis:auto}}@media screen and (max-width: 340px){.aioseo-app .aioseo-link-assistant-statistics .aioseo-row{justify-content:flex-start!important;margin:0 auto}[dir=ltr] .aioseo-app .aioseo-link-assistant-statistics .divider-right{border-right:0}[dir=rtl] .aioseo-app .aioseo-link-assistant-statistics .divider-right{border-left:0}.aioseo-app .aioseo-link-assistant-statistics .aioseo-tooltip{display:none!important}}.aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .row{display:flex;align-items:center}.aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row.even{background-color:#f9f9fa}.aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row .aioseo-table-column{padding:12px}.aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row .aioseo-table-column.post-title{min-width:0}.aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row .aioseo-table-column.post-title div,.aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row .aioseo-table-column.post-title div span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row .aioseo-table-column.post-title div a{color:#141b38;text-decoration:none}.aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row .aioseo-table-column.post-title div a:hover{color:#005ae0}[dir=ltr] .aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row .aioseo-table-column.post-title div .aioseo-tooltip{margin-left:0}[dir=rtl] .aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row .aioseo-table-column.post-title div .aioseo-tooltip{margin-right:0}.aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row .aioseo-table-column.post-title div .aioseo-tooltip .popper a{color:#fff;text-decoration:underline}.aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row .aioseo-table-column.post-title div .aioseo-tooltip .popper a:hover{text-decoration:none}[dir=ltr] .aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row .aioseo-table-column.suggestions-count .row{margin-left:auto}[dir=rtl] .aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row .aioseo-table-column.suggestions-count .row{margin-right:auto}.aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row .aioseo-table-column.internal-inbound,.aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row .aioseo-table-column.internal-outbound{min-width:60px;flex:0}[dir=ltr] .aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row .aioseo-table-column.internal-inbound,[dir=ltr] .aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row .aioseo-table-column.internal-outbound{text-align:right}[dir=rtl] .aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row .aioseo-table-column.internal-inbound,[dir=rtl] .aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row .aioseo-table-column.internal-outbound{text-align:left}.aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row .aioseo-table-column .aioseo-tooltip-wrapper{display:flex}.aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row .aioseo-table-column .aioseo-tooltip-wrapper .aioseo-tooltip{margin:0}.aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .linking-opportunities-table .aioseo-table-row.header-row>.aioseo-table-column{padding-block:0 14px}.aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .links-report-link{margin-top:var(--aioseo-gutter);color:#005ae0;cursor:pointer;font-weight:700;font-size:14px}.aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .links-report-link a{text-decoration:underline}.aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .links-report-link a:not(:first-of-type),.aioseo-app .aioseo-link-assistant-overview .aioseo-link-assistant-linking-opportunities .links-report-link a:hover{text-decoration:none}.aioseo-app .aioseo-link-assistant-overview .domains-table{margin-top:var(--aioseo-gutter)}.aioseo-app .aioseo-link-assistant-overview .domains-table .row{display:flex;align-items:center}.aioseo-app .aioseo-link-assistant-overview .domains-table .row .favicon{width:15px}[dir=ltr] .aioseo-app .aioseo-link-assistant-overview .domains-table .row .favicon{margin:0 10px 0 0}[dir=rtl] .aioseo-app .aioseo-link-assistant-overview .domains-table .row .favicon{margin:0 0 0 10px}.aioseo-app .aioseo-link-assistant-overview .domains-table .row .domain-name{color:#141b38}.aioseo-app .aioseo-link-assistant-overview .domains-table .row .domain-name:hover{color:#005ae0}.aioseo-app .aioseo-link-assistant-overview .domains-table .aioseo-table-row.even{background-color:#f9f9fa}.aioseo-app .aioseo-link-assistant-overview .domains-table .aioseo-table-row .aioseo-table-column{padding:12px}.aioseo-app .aioseo-link-assistant-overview .domains-table .aioseo-table-row .aioseo-table-column.domain{min-width:0}.aioseo-app .aioseo-link-assistant-overview .domains-table .aioseo-table-row .aioseo-table-column.domain span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aioseo-app .aioseo-link-assistant-overview .domains-table .aioseo-table-row .aioseo-table-column.domain a{text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aioseo-app .aioseo-link-assistant-overview .domains-table .aioseo-table-row .aioseo-table-column.domain a:hover{color:#005ae0}[dir=ltr] .aioseo-app .aioseo-link-assistant-overview .domains-table .aioseo-table-row .aioseo-table-column.domain .aioseo-tooltip{margin-left:0}[dir=rtl] .aioseo-app .aioseo-link-assistant-overview .domains-table .aioseo-table-row .aioseo-table-column.domain .aioseo-tooltip{margin-right:0}.aioseo-app .aioseo-link-assistant-overview .domains-table .aioseo-table-row .aioseo-table-column.domain .aioseo-tooltip .popper a{color:#fff;text-decoration:underline}.aioseo-app .aioseo-link-assistant-overview .domains-table .aioseo-table-row .aioseo-table-column.domain .aioseo-tooltip .popper a:hover{text-decoration:none}.aioseo-app .aioseo-link-assistant-overview .domains-table .aioseo-table-row .aioseo-table-column.count{min-width:100px;flex:0;align-items:flex-end} all-in-one-seo-pack/dist/Lite/assets/css/Phone.BpAr-WF6.css000064400000110276151222736000017144 0ustar00.m-input[data-v-e9e7fe2d]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.m-input.--xl[data-v-e9e7fe2d]{height:4rem}.m-input.--xl .m-input-input[data-v-e9e7fe2d],.m-input.--xl .m-input-label[data-v-e9e7fe2d]{font-size:1.25rem;line-height:1.75rem}.m-input.--lg[data-v-e9e7fe2d]{height:3.5rem}.m-input.--lg .m-input-input[data-v-e9e7fe2d],.m-input.--lg .m-input-label[data-v-e9e7fe2d]{font-size:1.125rem;line-height:1.75rem}.m-input.--md[data-v-e9e7fe2d]{height:3rem}.m-input.--sm[data-v-e9e7fe2d]{height:2.5rem}.m-input.--sm .m-input-input[data-v-e9e7fe2d],.m-input.--sm .m-input-label[data-v-e9e7fe2d]{font-size:.875rem;line-height:1.25rem}.m-input.--xs[data-v-e9e7fe2d]{height:2rem}.m-input.--xs .m-input-input[data-v-e9e7fe2d],.m-input.--xs .m-input-label[data-v-e9e7fe2d]{font-size:.75rem;line-height:1rem}.m-input.--mini[data-v-e9e7fe2d]{height:1.5rem}.m-input.--mini .m-input-input[data-v-e9e7fe2d],.m-input.--mini .m-input-label[data-v-e9e7fe2d]{font-size:.75rem;line-height:1rem}.m-input-wrapper[data-v-e9e7fe2d]{position:relative;z-index:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1 1 0%;flex:1 1 0%;overflow:hidden;border-width:var(--maz-border-width);border-style:solid;background-color:var(--maz-color-bg);-webkit-transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-transition-duration:.3s;transition-duration:.3s}.m-input-wrapper.--default-border[data-v-e9e7fe2d]{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity))}:is([class~=dark] .m-input-wrapper.--default-border[data-v-e9e7fe2d]){border-color:var(--maz-color-bg-lighter)}.m-input-wrapper-input[data-v-e9e7fe2d]{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;max-width:100%;-webkit-box-flex:1;-ms-flex:1 1 0%;flex:1 1 0%;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.m-input-wrapper-right[data-v-e9e7fe2d],.m-input-wrapper-left[data-v-e9e7fe2d]{position:relative;z-index:1;display:-webkit-box;display:-ms-flexbox;display:flex}.m-input-wrapper-right[data-v-e9e7fe2d]>:not([hidden])~:not([hidden]),.m-input-wrapper-left[data-v-e9e7fe2d]>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0}[dir=ltr] .m-input-wrapper-right[data-v-e9e7fe2d]>:not([hidden])~:not([hidden]),[dir=ltr] .m-input-wrapper-left[data-v-e9e7fe2d]>:not([hidden])~:not([hidden]){margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}[dir=rtl] .m-input-wrapper-right[data-v-e9e7fe2d]>:not([hidden])~:not([hidden]),[dir=rtl] .m-input-wrapper-left[data-v-e9e7fe2d]>:not([hidden])~:not([hidden]){margin-left:calc(.25rem * var(--tw-space-x-reverse));margin-right:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.m-input-wrapper-right[data-v-e9e7fe2d],.m-input-wrapper-left[data-v-e9e7fe2d]{padding-top:.25rem;padding-bottom:.25rem;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}[dir=ltr] .m-input-wrapper-right[data-v-e9e7fe2d]{padding-right:.5rem}[dir=rtl] .m-input-wrapper-right[data-v-e9e7fe2d],[dir=ltr] .m-input-wrapper-left[data-v-e9e7fe2d]{padding-left:.5rem}[dir=rtl] .m-input-wrapper-left[data-v-e9e7fe2d]{padding-right:.5rem}.m-input-input[data-v-e9e7fe2d]{margin:0;display:block;height:100%;width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-style:none;background-color:transparent;padding-left:1rem;padding-right:1rem;padding-top:0;padding-bottom:0;color:var(--maz-color-text);--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;-webkit-box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);outline:2px solid transparent;outline-offset:2px}.m-input-input[data-v-e9e7fe2d]:-webkit-autofill,.m-input-input[data-v-e9e7fe2d]:-webkit-autofill:hover,.m-input-input[data-v-e9e7fe2d]:-webkit-autofill:focus{-webkit-text-fill-color:var(--maz-color-text);-webkit-box-shadow:0 0 0 1000px var(--maz-color-primary-50) inset;box-shadow:0 0 0 1000px var(--maz-color-primary-50) inset;-webkit-transition:background-color 5000s ease-in-out 0s;transition:background-color 5000s ease-in-out 0s}.m-input-input[data-v-e9e7fe2d]::-webkit-input-placeholder{color:var(--maz-color-muted)}.m-input-input[data-v-e9e7fe2d]::-moz-placeholder{color:var(--maz-color-muted)}.m-input-input[data-v-e9e7fe2d]:-ms-input-placeholder{color:var(--maz-color-muted)}.m-input-input[data-v-e9e7fe2d]::-ms-input-placeholder{color:var(--maz-color-muted)}.m-input-input[data-v-e9e7fe2d]::placeholder{color:var(--maz-color-muted)}.m-input-label[data-v-e9e7fe2d]{pointer-events:none;position:absolute;display:block;width:100%;-webkit-box-align:center;-ms-flex-align:center;align-items:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.5rem;width:calc(100% + 1.3rem);-webkit-transition:-webkit-transform .2s cubic-bezier(0,0,.2,1) 0ms;transition:-webkit-transform .2s cubic-bezier(0,0,.2,1) 0ms;transition:transform .2s cubic-bezier(0,0,.2,1) 0ms;transition:transform .2s cubic-bezier(0,0,.2,1) 0ms,-webkit-transform .2s cubic-bezier(0,0,.2,1) 0ms}[dir=ltr] .m-input-label[data-v-e9e7fe2d]{left:.75rem;-webkit-transform-origin:top left;transform-origin:top left;text-align:left}[dir=rtl] .m-input-label[data-v-e9e7fe2d]{right:.75rem;-webkit-transform-origin:top right;transform-origin:top right;text-align:right}.m-input:not(.--should-up) .m-input-label[data-v-e9e7fe2d]{width:calc(100% - .75rem)}.m-input.--should-up .m-input-label[data-v-e9e7fe2d]{-webkit-transform:scale(.8) translateY(-.65em);transform:scale(.8) translateY(-.65em)}.m-input[data-v-e9e7fe2d]:not(.--has-state){color:var(--maz-color-muted)}.m-input.--has-z-2 .m-input-wrapper[data-v-e9e7fe2d]{z-index:2}.m-input.--is-readonly .m-input-input[data-v-e9e7fe2d]{cursor:default}.m-input.--is-disabled .m-input-wrapper[data-v-e9e7fe2d]{background-color:var(--maz-color-bg-lighter);color:var(--maz-color-muted)}.m-input.--is-disabled .m-input-input[data-v-e9e7fe2d]{cursor:not-allowed;color:var(--maz-color-muted)}:is([class~=dark] .m-input:not(.--is-disabled) .m-input-wrapper[data-v-e9e7fe2d]){background-color:var(--maz-color-bg-light)}.m-input.--is-focused .m-input-wrapper[data-v-e9e7fe2d]{z-index:3}.m-input.--has-label .m-input-input[data-v-e9e7fe2d]{padding-left:.75rem;padding-right:.75rem;padding-top:1rem}html.dark .m-input-input[data-v-e9e7fe2d]:-webkit-autofill,html.dark .m-input-input[data-v-e9e7fe2d]:-webkit-autofill:hover,html.dark .m-input-input[data-v-e9e7fe2d]:-webkit-autofill:focus{-webkit-text-fill-color:var(--maz-color-text);-webkit-box-shadow:0 0 0 1000px var(--maz-color-bg-lighter) inset;box-shadow:0 0 0 1000px var(--maz-color-bg-lighter) inset;-webkit-transition:background-color 5000s ease-in-out 0s;transition:background-color 5000s ease-in-out 0s}.m-select[data-v-8272b643]{position:relative}.m-select.--mini[data-v-8272b643],.m-select.--xs[data-v-8272b643]{font-size:.75rem;line-height:1rem}.m-select.--sm[data-v-8272b643]{font-size:.875rem;line-height:1.25rem}.m-select.--md[data-v-8272b643]{font-size:1rem;line-height:1.5rem}.m-select.--lg[data-v-8272b643]{font-size:1.125rem;line-height:1.75rem}.m-select.--xl[data-v-8272b643]{font-size:1.25rem;line-height:1.75rem}.m-select[data-v-8272b643]:not(.--disabled) .m-input-input{cursor:pointer}[dir=ltr] .m-select-input[data-v-8272b643] .m-input-input,[dir=ltr] .m-select-input.--has-label[data-v-8272b643] .m-input-input{padding-right:0}[dir=rtl] .m-select-input[data-v-8272b643] .m-input-input,[dir=rtl] .m-select-input.--has-label[data-v-8272b643] .m-input-input{padding-left:0}.m-select-input__toggle-button[data-v-8272b643]{display:-webkit-box;display:-ms-flexbox;display:flex;height:100%;background-color:transparent;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}[dir=ltr] .m-select-input__toggle-button[data-v-8272b643]{padding-left:0}[dir=rtl] .m-select-input__toggle-button[data-v-8272b643]{padding-right:0}.m-select-input[data-v-8272b643] input{caret-color:transparent}.m-select-chevron[data-v-8272b643]{font-size:1.2em;color:var(--maz-color-text);-webkit-transition-property:all;transition-property:all;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:cubic-bezier(0,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1)}[dir=ltr] .m-select.--is-open .m-select-chevron[data-v-8272b643]{-webkit-transform:rotate(180deg);transform:rotate(180deg)}[dir=rtl] .m-select.--is-open .m-select-chevron[data-v-8272b643]{-webkit-transform:rotate(-180deg);transform:rotate(-180deg)}.m-select .m-select-list[data-v-8272b643]{position:absolute;z-index:1050;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:.25rem;overflow:hidden;border-radius:var(--maz-border-radius);background-color:var(--maz-color-bg);padding:.5rem;-webkit-box-shadow:0 5px 10px 0 hsla(0,0%,0%,.05);box-shadow:0 5px 10px #0000000d}:is([class~=dark] .m-select .m-select-list[data-v-8272b643]){border-width:var(--maz-border-width);border-color:var(--maz-color-bg-light)}.m-select .m-select-list[data-v-8272b643]{min-width:3.5rem}.m-select .m-select-list.--top[data-v-8272b643]{bottom:100%}[dir=ltr] .m-select .m-select-list.--left[data-v-8272b643]{left:0}[dir=rtl] .m-select .m-select-list.--left[data-v-8272b643],[dir=ltr] .m-select .m-select-list.--right[data-v-8272b643]{right:0}[dir=rtl] .m-select .m-select-list.--right[data-v-8272b643]{left:0}.m-select .m-select-list.--bottom[data-v-8272b643]{top:100%}.m-select .m-select-list__scroll-wrapper[data-v-8272b643]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1 1 0%;flex:1 1 0%;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:.25rem;overflow:auto}.m-select .m-select-list__no-results[data-v-8272b643]{display:-webkit-box;display:-ms-flexbox;display:flex;padding:1rem;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.m-select .m-select-list-item[data-v-8272b643]{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;cursor:pointer;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:var(--maz-border-radius);background-color:transparent;padding-left:.75rem;padding-right:.75rem;padding-top:.5em;padding-bottom:.5em;font-size:1em;-webkit-transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1)}[dir=ltr] .m-select .m-select-list-item[data-v-8272b643]{text-align:left}[dir=rtl] .m-select .m-select-list-item[data-v-8272b643]{text-align:right}.m-select .m-select-list-item[data-v-8272b643]:focus-within{background-color:var(--maz-color-bg-light)}.m-select .m-select-list-item[data-v-8272b643]:hover{background-color:var(--maz-color-bg-light)}.m-select .m-select-list-item span[data-v-8272b643]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.m-select .m-select-list-item.--is-keyboard-selected[data-v-8272b643]{background-color:var(--maz-color-bg-light)}:is([class~=dark] .m-select .m-select-list-item.--is-keyboard-selected[data-v-8272b643]){background-color:var(--maz-color-bg-lighter)}.m-select .m-select-list-item.--is-keyboard-selected.--is-selected[data-v-8272b643],.m-select .m-select-list-item.--is-keyboard-selected.--is-selected[data-v-8272b643]:hover{background-color:var(--5e7d1dfe)}.m-select .m-select-list-item.--is-none-value[data-v-8272b643]{color:var(--maz-color-muted)}.m-select .m-select-list-item.--is-selected[data-v-8272b643]{color:var(--b3b9ed86);background-color:var(--55cb06e5)}.m-select .m-select-list-item.--is-selected.--transparent[data-v-8272b643]{background-color:var(--maz-color-bg)}.m-select button.maz-custom[data-v-8272b643]{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-style:none}.m-phone-number-input[data-v-d5e7117a]{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.m-phone-number-input__country-flag[data-v-d5e7117a]{position:absolute;z-index:4;outline:none;border:none;padding:0;margin:0;cursor:pointer}[dir=ltr] .m-phone-number-input__country-flag[data-v-d5e7117a]{left:13px}[dir=rtl] .m-phone-number-input__country-flag[data-v-d5e7117a]{right:13px}.m-phone-number-input__country-flag.--should-have-bottom-flag[data-v-d5e7117a]{bottom:2px}[dir=ltr] .m-phone-number-input__input.--border-radius[data-v-d5e7117a] .m-input-wrapper{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-2px}[dir=rtl] .m-phone-number-input__input.--border-radius[data-v-d5e7117a] .m-input-wrapper{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:-2px}.m-phone-number-input__select[data-v-d5e7117a]{width:9rem}.m-phone-number-input__select__item[data-v-d5e7117a]{width:100%;font-size:.875rem;line-height:1.25rem}[dir=ltr] .m-phone-number-input__select[data-v-d5e7117a] .m-select-input .m-input-wrapper{border-top-right-radius:0!important;border-bottom-right-radius:0!important}[dir=rtl] .m-phone-number-input__select[data-v-d5e7117a] .m-select-input .m-input-wrapper{border-top-left-radius:0!important;border-bottom-left-radius:0!important}[dir=ltr] .m-phone-number-input:not(.--no-flags) .m-phone-number-input__select[data-v-d5e7117a] .m-select-input input{padding-left:2.25rem!important}[dir=rtl] .m-phone-number-input:not(.--no-flags) .m-phone-number-input__select[data-v-d5e7117a] .m-select-input input{padding-right:2.25rem!important}.m-phone-number-input__input.--error[data-v-d5e7117a],.m-phone-number-input__input.--focused[data-v-d5e7117a]{z-index:1}.aioseo-phone-number *,.aioseo-phone-number :after,.aioseo-phone-number :before{border:0 solid;-webkit-box-sizing:border-box;box-sizing:border-box}.aioseo-phone-number button{background-color:initial}.aioseo-phone-number button,.aioseo-phone-number input,.aioseo-phone-number optgroup,.aioseo-phone-number select,.aioseo-phone-number textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}.aioseo-phone-number:where(.m-phone-number-input){--maz-color-primary-50:#e6f2ff;--maz-color-primary-100:#bddeff;--maz-color-primary-200:#94c9ff;--maz-color-primary-300:#6bb5ff;--maz-color-primary-400:#47a3ff;--maz-color-primary:#1f8fff;--maz-color-primary-600:#1975d2;--maz-color-primary-700:#145ca3;--maz-color-primary-800:#0e4277;--maz-color-primary-900:#092b4e;--maz-color-primary-contrast:#fff;--maz-color-primary-alpha:#1f8fff99;--maz-color-primary-alpha-20:#1f8fff33;--maz-color-secondary-50:#e2f9f3;--maz-color-secondary-100:#bbf1e3;--maz-color-secondary-200:#95e9d3;--maz-color-secondary-300:#6be1c1;--maz-color-secondary-400:#45d9b1;--maz-color-secondary:#1cce9f;--maz-color-secondary-600:#17ab83;--maz-color-secondary-700:#128768;--maz-color-secondary-800:#0d634c;--maz-color-secondary-900:#083f31;--maz-color-secondary-contrast:#fff;--maz-color-secondary-alpha:#1cce9f99;--maz-color-secondary-alpha-20:#1cce9f33;--maz-color-info-50:#e4f4f7;--maz-color-info-100:#b8e3ea;--maz-color-info-200:#92d3dd;--maz-color-info-300:#67c2d0;--maz-color-info-400:#40b3c4;--maz-color-info:#17a4ba;--maz-color-info-600:#13889a;--maz-color-info-700:#0f6876;--maz-color-info-800:#0b4c56;--maz-color-info-900:#073036;--maz-color-info-contrast:#fff;--maz-color-info-alpha:#17a4ba99;--maz-color-info-alpha-20:#17a4ba33;--maz-color-success-50:#f3f9e6;--maz-color-success-100:#e1f0c1;--maz-color-success-200:#cee79d;--maz-color-success-300:#bedf7c;--maz-color-success-400:#acd657;--maz-color-success:#99cd32;--maz-color-success-600:#7ea829;--maz-color-success-700:#658722;--maz-color-success-800:#496218;--maz-color-success-900:#2e3e0f;--maz-color-success-contrast:#fff;--maz-color-success-alpha:#99cd3299;--maz-color-success-alpha-20:#99cd3233;--maz-color-warning-50:#fff7e6;--maz-color-warning-100:#feeac3;--maz-color-warning-200:#fede9f;--maz-color-warning-300:#fdd077;--maz-color-warning-400:#fdc553;--maz-color-warning:#fcb831;--maz-color-warning-600:#d29928;--maz-color-warning-700:#a27720;--maz-color-warning-800:#785817;--maz-color-warning-900:#4d380f;--maz-color-warning-contrast:#384252;--maz-color-warning-alpha:#fcb83199;--maz-color-warning-alpha-20:#fcb83133;--maz-color-danger-50:#ffebeb;--maz-color-danger-100:#ffd2d1;--maz-color-danger-200:#ffbab8;--maz-color-danger-300:#ffa09e;--maz-color-danger-400:#ff8785;--maz-color-danger:#ff6e6b;--maz-color-danger-600:#d25856;--maz-color-danger-700:#a54745;--maz-color-danger-800:#7b3332;--maz-color-danger-900:#4c2020;--maz-color-danger-contrast:#fff;--maz-color-danger-alpha:#ff6e6b99;--maz-color-danger-alpha-20:#ff6e6b33;--maz-color-white:#fff;--maz-color-white-contrast:#000;--maz-color-black:#000;--maz-color-black-contrast:#fff;--maz-color-text-light:#d9d9d9;--maz-color-muted-light:#0000008a;--maz-color-text-dark:#212427;--maz-color-muted-dark:#e3e3e38a;--maz-bg-overlay:#00000080;--maz-bg-color-light:#fff;--maz-bg-color-light-light:#f0f0f0;--maz-bg-color-light-lighter:#f2f2f2;--maz-bg-color-dark:#20212c;--maz-bg-color-dark-light:#313245;--maz-bg-color-dark-lighter:#3b3c54;--maz-border-width:.125rem;--maz-border-radius:.5rem;--maz-font-family:system-ui,-apple-system,blinkmacsystemfont,"Segoe UI",roboto,oxygen,ubuntu,cantarell,"Fira Sans","Droid Sans","Helvetica Neue",sans-serif;--maz-color-text:var(--maz-color-text-dark);--maz-color-muted:var(--maz-color-muted-light);--maz-color-bg:var(--maz-bg-color-light);--maz-color-bg-light:var(--maz-bg-color-light-light);--maz-color-bg-lighter:var(--maz-bg-color-light-lighter)}.aioseo-phone-number .dark{--maz-color-text:var(--maz-color-text-light);--maz-color-muted:var(--maz-color-muted-dark);--maz-color-bg:var(--maz-bg-color-dark);--maz-color-bg-light:var(--maz-bg-color-dark-light);--maz-color-bg-lighter:var(--maz-bg-color-dark-lighter)}.aioseo-phone-number:where(.m-phone-number-input){--maz-container-padding-mobile:1rem;--maz-container-padding-tablet:2rem;--maz-container-padding-desktop:2.5rem;--maz-container-padding-value:var(--maz-container-padding-mobile);--maz-container-width:calc(100% - var(--maz-container-padding-value)*2);--maz-container-padding:calc(50% - var(--maz-container-width)/2);--maz-container-max-width:var(--maz-screen-lap-xl)}@media only screen and (min-width: 1520px){.aioseo-phone-number:where(.m-phone-number-input){--maz-container-width:var(--maz-container-max-width)}}@media (min-width: 576px){.aioseo-phone-number:where(.m-phone-number-input){--maz-container-padding-value:var(--maz-container-padding-tablet)}}@media (min-width: 1024px){.aioseo-phone-number:where(.m-phone-number-input){--maz-container-padding-value:var(--maz-container-padding-desktop)}}.aioseo-phone-number .maz-scale-enter-active,.aioseo-phone-number .maz-scale-leave-active{opacity:1;z-index:1;-webkit-transition:all .3s cubic-bezier(.4,.52,.26,.9);transition:all .3s cubic-bezier(.4,.52,.26,.9)}.aioseo-phone-number .maz-scale-enter-from,.aioseo-phone-number .maz-scale-leave-to{opacity:.4;z-index:1;-webkit-transform:scale(0);transform:scale(0)}.aioseo-phone-number .maz-scale-fade-enter-active,.aioseo-phone-number .maz-scale-fade-leave-active{opacity:1;z-index:1;-webkit-transition:all .2s cubic-bezier(.4,.52,.26,.9);transition:all .2s cubic-bezier(.4,.52,.26,.9)}.aioseo-phone-number .maz-scale-fade-enter-from,.aioseo-phone-number .maz-scale-fade-leave-to{opacity:0;z-index:1;-webkit-transform:scale(.5);transform:scale(.5)}.aioseo-phone-number .maz-scale-loading-enter-active,.aioseo-phone-number .maz-scale-loading-enter-active .app-loader__content,.aioseo-phone-number .maz-scale-loading-leave-active,.aioseo-phone-number .maz-scale-loading-leave-active .app-loader__content{-webkit-transition:all .5s cubic-bezier(.4,.52,.26,.9);transition:all .5s cubic-bezier(.4,.52,.26,.9);opacity:1}.aioseo-phone-number .maz-scale-loading-enter-active .app-loader__content,.aioseo-phone-number .maz-scale-loading-leave-active .app-loader__content{z-index:1;-webkit-transform:scale(1);transform:scale(1)}.aioseo-phone-number .maz-scale-loading-enter-from .app-loader__content,.aioseo-phone-number .maz-scale-loading-leave-to .app-loader__content{opacity:.4;z-index:1;-webkit-transform:scale(0);transform:scale(0)}.aioseo-phone-number .maz-scale-loading-enter-from,.aioseo-phone-number .maz-scale-loading-leave-to{-webkit-transition:all .5s cubic-bezier(.4,.52,.26,.9);transition:all .5s cubic-bezier(.4,.52,.26,.9);opacity:0}.aioseo-phone-number .maz-slidevnext-enter-active,.aioseo-phone-number .maz-slidevnext-leave-active,.aioseo-phone-number .maz-slidevprev-enter-active,.aioseo-phone-number .maz-slidevprev-leave-active{position:absolute;-webkit-transition:all .3s;transition:all .3s}.aioseo-phone-number .maz-slidevnext-enter-from,.aioseo-phone-number .maz-slidevprev-leave-to{-webkit-transform:translateY(100%);transform:translateY(100%);opacity:0}.aioseo-phone-number .maz-slidevnext-leave-to,.aioseo-phone-number .maz-slidevprev-enter-from{-webkit-transform:translateY(-100%);transform:translateY(-100%);opacity:0}.aioseo-phone-number .maz-slide-enter-active,.aioseo-phone-number .maz-slide-leave-active{opacity:1;z-index:998;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:translateY(0);transform:translateY(0)}.aioseo-phone-number .maz-slide-enter-from,.aioseo-phone-number .maz-slide-leave-to{opacity:0;z-index:998;-webkit-transform:translateY(-20px);transform:translateY(-20px)}.aioseo-phone-number .maz-slideinvert-enter-active,.aioseo-phone-number .maz-slideinvert-leave-active{opacity:1;z-index:998;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:translateY(0);transform:translateY(0)}.aioseo-phone-number .maz-slideinvert-enter-from,.aioseo-phone-number .maz-slideinvert-leave-to{opacity:0;z-index:998;-webkit-transform:translateY(40px);transform:translateY(40px)}.aioseo-phone-number .maz-tags-enter-active,.aioseo-phone-number .maz-tags-leave-active{opacity:1;-webkit-transition:opacity .3s,-webkit-transform .3s;transition:opacity .3s,-webkit-transform .3s;transition:transform .3s,opacity .3s;transition:transform .3s,opacity .3s,-webkit-transform .3s;-webkit-transform:translateX(0);transform:translate(0)}.aioseo-phone-number .maz-tags-enter-from,.aioseo-phone-number .maz-tags-leave-to{opacity:0}[dir=ltr] .aioseo-phone-number .maz-tags-enter-from,[dir=ltr] .aioseo-phone-number .maz-tags-leave-to{-webkit-transform:translateX(-100%);transform:translate(-100%)}[dir=rtl] .aioseo-phone-number .maz-tags-enter-from,[dir=rtl] .aioseo-phone-number .maz-tags-leave-to{-webkit-transform:translateX(100%);transform:translate(100%)}.aioseo-phone-number .maz-tags-invert-enter-active,.aioseo-phone-number .maz-tags-invert-leave-active{opacity:1;-webkit-transition:opacity .3s,-webkit-transform .3s;transition:opacity .3s,-webkit-transform .3s;transition:transform .3s,opacity .3s;transition:transform .3s,opacity .3s,-webkit-transform .3s;-webkit-transform:translateX(0);transform:translate(0)}.aioseo-phone-number .maz-tags-invert-enter-from,.aioseo-phone-number .maz-tags-invert-leave-to{opacity:0}[dir=ltr] .aioseo-phone-number .maz-tags-invert-enter-from,[dir=ltr] .aioseo-phone-number .maz-tags-invert-leave-to{-webkit-transform:translateX(100%);transform:translate(100%)}[dir=rtl] .aioseo-phone-number .maz-tags-invert-enter-from,[dir=rtl] .aioseo-phone-number .maz-tags-invert-leave-to{-webkit-transform:translateX(-100%);transform:translate(-100%)}.aioseo-phone-number .maz-expand-enter-active,.aioseo-phone-number .maz-expand-leave-active{-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transition-property:opacity,height;transition-property:opacity,height;overflow:hidden}.aioseo-phone-number .maz-expand-enter-from,.aioseo-phone-number .maz-expand-leave-to{height:0;opacity:0}[dir=ltr] .aioseo-phone-number .maz-tab-transition-enter-from{-webkit-transform:translate(100%);transform:translate(100%)}[dir=rtl] .aioseo-phone-number .maz-tab-transition-enter-from{-webkit-transform:translate(-100%);transform:translate(-100%)}.aioseo-phone-number .maz-tab-transition-leave,.aioseo-phone-number .maz-tab-transition-leave-active{position:absolute!important;top:0}.aioseo-phone-number .maz-tab-transition-leave-to{position:absolute!important}[dir=ltr] .aioseo-phone-number .maz-tab-reverse-transition-enter-from,[dir=ltr] .aioseo-phone-number .maz-tab-transition-leave-to{-webkit-transform:translate(-100%);transform:translate(-100%)}[dir=rtl] .aioseo-phone-number .maz-tab-reverse-transition-enter-from,[dir=rtl] .aioseo-phone-number .maz-tab-transition-leave-to{-webkit-transform:translate(100%);transform:translate(100%)}.aioseo-phone-number .maz-tab-reverse-transition-leave,.aioseo-phone-number .maz-tab-reverse-transition-leave-to{top:0;position:absolute!important}[dir=ltr] .aioseo-phone-number .maz-tab-reverse-transition-leave,[dir=ltr] .aioseo-phone-number .maz-tab-reverse-transition-leave-to{-webkit-transform:translate(100%);transform:translate(100%)}[dir=rtl] .aioseo-phone-number .maz-tab-reverse-transition-leave,[dir=rtl] .aioseo-phone-number .maz-tab-reverse-transition-leave-to{-webkit-transform:translate(-100%);transform:translate(-100%)}.aioseo-phone-number *,.aioseo-phone-number :after,.aioseo-phone-number :before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.aioseo-phone-number ::-webkit-backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.aioseo-phone-number ::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.aioseo-phone-number:where(.m-phone-number-input){--maz-screen-sm:640px;--maz-screen-md:768px;--maz-screen-lg:1024px;--maz-screen-xl:1280px;--maz-screen-2xl:1536px;--maz-screen-mob-s:320px;--maz-screen-mob-m:425px;--maz-screen-mob-l:576px;--maz-screen-tab-s:640px;--maz-screen-tab-m:768px;--maz-screen-tab-l:992px;--maz-screen-lap-s:1024px;--maz-screen-lap-m:1280px;--maz-screen-lap-l:1366px;--maz-screen-lap-xl:1440px;--maz-screen-lap-2xl:1680px;--maz-screen-lap-3xl:1920px}.aioseo-phone-number .maz-relative{position:relative}.aioseo-phone-number .\!maz-my-0{margin-top:0!important;margin-bottom:0!important}.aioseo-phone-number .maz-my-0{margin-top:0;margin-bottom:0}.aioseo-phone-number .maz-my-2{margin-top:.5rem;margin-bottom:.5rem}[dir=ltr] .aioseo-phone-number .maz-ml-1{margin-left:.25rem}[dir=rtl] .aioseo-phone-number .maz-ml-1{margin-right:.25rem}[dir=ltr] .aioseo-phone-number .maz-ml-2{margin-left:.5rem}[dir=rtl] .aioseo-phone-number .maz-ml-2,[dir=ltr] .aioseo-phone-number .maz-mr-2{margin-right:.5rem}[dir=rtl] .aioseo-phone-number .maz-mr-2{margin-left:.5rem}.aioseo-phone-number .maz-flex{display:-webkit-box;display:-ms-flexbox;display:flex}.aioseo-phone-number .maz-hidden{display:none}.aioseo-phone-number .maz-h-5{height:1.25rem}.aioseo-phone-number .maz-h-6{height:1.5rem}.aioseo-phone-number .maz-w-10{width:2.5rem}.aioseo-phone-number .maz-w-5{width:1.25rem}.aioseo-phone-number .maz-w-6{width:1.5rem}.aioseo-phone-number .maz-w-full{width:100%}.aioseo-phone-number .maz-min-w-0{min-width:0}.aioseo-phone-number .maz-max-w-full{max-width:100%}.aioseo-phone-number .maz-flex-1{-webkit-box-flex:1;-ms-flex:1 1 0%;flex:1 1 0%}.aioseo-phone-number .maz-flex-none{-webkit-box-flex:0;-ms-flex:none;flex:none}.aioseo-phone-number .maz-flex-row{-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row}.aioseo-phone-number .maz-flex-col,.aioseo-phone-number .maz-flex-row{-webkit-box-direction:normal}.aioseo-phone-number .maz-flex-col{-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column}.aioseo-phone-number .maz-items-center{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.aioseo-phone-number .maz-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0}[dir=ltr] .aioseo-phone-number .maz-space-x-2>:not([hidden])~:not([hidden]){margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * (1 - var(--tw-space-x-reverse)))}[dir=rtl] .aioseo-phone-number .maz-space-x-2>:not([hidden])~:not([hidden]){margin-left:calc(.5rem * var(--tw-space-x-reverse));margin-right:calc(.5rem * (1 - var(--tw-space-x-reverse)))}.aioseo-phone-number .maz-overflow-hidden{overflow:hidden}.aioseo-phone-number .maz-overflow-x-auto{overflow-x:auto}.aioseo-phone-number .maz-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aioseo-phone-number .maz-rounded{border-radius:var(--maz-border-radius)}.aioseo-phone-number .maz-rounded-xl{border-radius:.75rem}.aioseo-phone-number .maz-rounded-t-xl{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.aioseo-phone-number .maz-border-2{border-width:2px}.aioseo-phone-number .maz-border-b-2{border-bottom-width:2px}.aioseo-phone-number .maz-border-t-2{border-top-width:2px}.aioseo-phone-number .maz-border-solid{border-style:solid}.aioseo-phone-number .maz-border-black{border-color:var(--maz-color-black)}.aioseo-phone-number .maz-border-color-lighter{border-color:var(--maz-color-bg-lighter)}.aioseo-phone-number .maz-border-danger{border-color:var(--maz-color-danger)}.aioseo-phone-number .maz-border-info{border-color:var(--maz-color-info)}.aioseo-phone-number .maz-border-primary{border-color:var(--maz-color-primary)}.aioseo-phone-number .maz-border-secondary{border-color:var(--maz-color-secondary)}.aioseo-phone-number .maz-border-success{border-color:var(--maz-color-success)}.aioseo-phone-number .maz-border-transparent{border-color:#0000}.aioseo-phone-number .maz-border-warning{border-color:var(--maz-color-warning)}.aioseo-phone-number .maz-border-white{border-color:var(--maz-color-white)}.aioseo-phone-number .maz-bg-color-light{background-color:var(--maz-color-bg-light)}.aioseo-phone-number .maz-bg-overlay{background-color:var(--maz-bg-overlay)}.aioseo-phone-number .maz-p-2{padding:.5rem}.aioseo-phone-number .maz-p-3{padding:.75rem}.aioseo-phone-number .maz-p-4{padding:1rem}.aioseo-phone-number .maz-py-6{padding-top:1.5rem;padding-bottom:1.5rem}[dir=ltr] .aioseo-phone-number .maz-text-left{text-align:left}[dir=rtl] .aioseo-phone-number .maz-text-left,[dir=ltr] .aioseo-phone-number .maz-text-right{text-align:right}[dir=rtl] .aioseo-phone-number .maz-text-right{text-align:left}.aioseo-phone-number .maz-text-2xl{font-size:1.5rem;line-height:2rem}.aioseo-phone-number .maz-text-sm{font-size:.875rem;line-height:1.25rem}.aioseo-phone-number .maz-text-xl{font-size:1.25rem;line-height:1.75rem}.aioseo-phone-number .maz-font-semibold{font-weight:600}.aioseo-phone-number .maz-text-danger-600{color:var(--maz-color-danger-600)}.aioseo-phone-number .maz-text-muted{color:var(--maz-color-muted)}.aioseo-phone-number .maz-text-normal{color:var(--maz-color-text)}.aioseo-phone-number .maz-text-success-600{color:var(--maz-color-success-600)}.aioseo-phone-number .maz-text-warning-600{color:var(--maz-color-warning-600)}.aioseo-phone-number .maz-text-white{color:var(--maz-color-white)}.aioseo-phone-number .maz-padded-container{width:100%;padding-left:var(--maz-container-padding);padding-right:var(--maz-container-padding)}.aioseo-phone-number .maz-elevation{-webkit-box-shadow:0 5px 10px 0 rgba(0,0,0,.0509803922);box-shadow:0 5px 10px #0000000d}.aioseo-phone-number .maz-flex-center{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.aioseo-app .aioseo-phone-number.m-phone-number-input{--maz-color-text: #141B38;--maz-color-muted: #8C8F9A;--maz-border-radius: 3px;--maz-color-bg: #fff;--maz-border-width: 1px;max-width:600px}.aioseo-app .aioseo-phone-number.m-phone-number-input input.m-select-list__search-input,.aioseo-app .aioseo-phone-number.m-phone-number-input input.m-phone-number-input__select,.aioseo-app .aioseo-phone-number.m-phone-number-input input.m-phone-number-input__input{font-size:14px}.aioseo-app .aioseo-phone-number.m-phone-number-input input.m-select-list__search-input:focus,.aioseo-app .aioseo-phone-number.m-phone-number-input input.m-phone-number-input__select:focus,.aioseo-app .aioseo-phone-number.m-phone-number-input input.m-phone-number-input__input:focus{border:none;box-shadow:none}.aioseo-app .aioseo-phone-number.m-phone-number-input .m-input-wrapper{border:1px solid #D0D1D7;border-radius:3px}.aioseo-app .aioseo-phone-number.m-phone-number-input .m-input-wrapper .m-input-label{font-size:14px}.aioseo-app .aioseo-phone-number.m-phone-number-input .m-select-list{background:#fff!important;box-shadow:0 4px 26px #2c324c1f;border:1px solid #D0D1D7;margin-top:3px;min-width:275px}.aioseo-app .aioseo-phone-number.m-phone-number-input .m-select .m-select-list-item.--is-selected.--primary{background-color:#005ae0;color:#fff}.aioseo-app .aioseo-phone-number.m-phone-number-input .m-select .m-select-list__search-wrapper{padding:8px}.aioseo-app .aioseo-phone-number.m-phone-number-input .m-select .m-select-chevron{width:18px;height:18px;stroke:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24'%3E%3Cpath fill='%23141B38' d='M16.59 8.295 12 12.875l-4.59-4.58L6 9.705l6 6 6-6-1.41-1.41Z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:cover}.aioseo-app .aioseo-phone-number.m-phone-number-input .maz-border-primary{border-color:#005ae0}.aioseo-app .aioseo-phone-number.m-phone-number-input .maz-border-danger{border-color:#d0d1d7}.aioseo-app .aioseo-phone-number.m-phone-number-input .--focused .maz-border-danger{border-color:#df2a4a} all-in-one-seo-pack/dist/Lite/assets/css/post-settings.BBYNO7uI.css000064400000004654151222736000020732 0ustar00.field-description[data-v-edba6303]{display:inline-block;margin-top:10px;font-size:14px}.aioseo-address-wrapper[data-v-bf2b69da]{display:flex;max-width:500px}.field-description[data-v-bf2b69da]{display:inline-block;margin-bottom:10px;font-size:14px}.mt-8[data-v-bf2b69da]{margin-top:8px}.field-description[data-v-b7e41a38]{display:inline-block;margin-bottom:10px;font-size:14px}.mt-8[data-v-b7e41a38]{margin-top:8px}.field-description[data-v-16be9b8e]{display:inline-block;margin-bottom:10px;font-size:14px}.mt-8[data-v-16be9b8e]{margin-top:8px}.field-description[data-v-0f8f3d3c]{display:inline-block;margin-top:10px;font-size:14px}.field-description[data-v-eae40702]{display:inline-block;margin-bottom:10px;font-size:14px}.mt-8[data-v-eae40702]{margin-top:8px}.aioseo-localseo-info .aioseo-input,.aioseo-localseo-info .aioseo-select,.aioseo-localseo-info .aioseo-multiselect{max-width:480px}.aioseo-localseo-info .field-description{font-size:14px}.aioseo-localseo-info .info-businessaddress-row .columns{display:flex;flex:0 1 auto;flex-direction:row;flex-wrap:wrap}.aioseo-localseo-opening .field-description{display:inline-block;margin:10px 0;font-size:14px}.aioseo-localseo-opening .field-description.mt-8{margin-top:8px}.aioseo-localseo-opening .aioseo-input,.aioseo-localseo-opening .aioseo-select,.aioseo-localseo-opening .aioseo-multiselect{max-width:480px}.aioseo-localseo-opening .aioseo-col-flex{display:flex;align-items:center;padding:12px 0;border-bottom:1px solid #E8E8EB}.aioseo-localseo-opening .aioseo-col-flex:first-of-type{padding-top:0}.aioseo-localseo-opening .aioseo-col-flex:last-of-type{padding-bottom:0;border:none}.aioseo-localseo-opening .aioseo-col-flex .aioseo-col-day{flex:1}.aioseo-localseo-opening .aioseo-col-flex .aioseo-col-hours,.aioseo-localseo-opening .aioseo-col-flex .aioseo-col-alwaysopen{flex:2}.aioseo-localseo-opening .aioseo-col-flex span.separator{margin:0 5px}.aioseo-localseo-opening .aioseo-col-flex .aioseo-select{display:inline-block;max-width:120px;margin-bottom:5px}.aioseo-localseo-opening .aioseo-col-flex .multiselect--disabled .multiselect__tags,.aioseo-localseo-opening .aioseo-col-flex .multiselect--disabled .multiselect__single{background:#f3f4f5}.aioseo-localseo-opening .aioseo-col-alwaysopen .aioseo-checkbox{padding:0 10px}.aioseo-localseo-maps .aioseo-input,.aioseo-localseo-maps .aioseo-select,.aioseo-localseo-maps .aioseo-multiselect{max-width:480px}.aioseo-localseo-maps .field-description{font-size:14px} all-in-one-seo-pack/dist/Lite/assets/css/PostsTable.BbbHy9b4.css000064400000005176151222736000020236 0ustar00.aioseo-graph-decay{position:relative}.aioseo-graph-decay-chart{border:1px solid #CCE0FF}.aioseo-graph-decay-recovering{font-weight:700;font-size:9px;line-height:120%;color:#f18200;margin-top:4px}.aioseo-graph-decay .apexcharts-tooltip-title{background:#fff!important;border-bottom:0!important;padding:10px 10px 0;margin-bottom:0;font-weight:700;font-size:12px;line-height:18px}.aioseo-graph-decay .apexcharts-tooltip-text-y-label{display:none}.aioseo-graph-decay .apexcharts-tooltip-text-y-value{font-weight:400}[dir=ltr] .aioseo-graph-decay .apexcharts-tooltip-text-y-value{margin-left:0}[dir=rtl] .aioseo-graph-decay .apexcharts-tooltip-text-y-value{margin-right:0}.aioseo-graph-decay .apexcharts-tooltip-text-y-value .peak{background:#00aa6333;border-radius:4px;padding:2px 6px;display:inline-block;vertical-align:middle;color:#15955f;font-weight:700;font-size:12px;text-transform:uppercase}[dir=ltr] .aioseo-graph-decay .apexcharts-tooltip-text-y-value .peak{margin-left:4px}[dir=rtl] .aioseo-graph-decay .apexcharts-tooltip-text-y-value .peak{margin-right:4px}.aioseo-search-statistics-post-table .posts-table .manage-column.postTitle{display:flex;flex-wrap:wrap;align-items:center}.aioseo-search-statistics-post-table .posts-table .manage-column.postTitle .object-title{font-weight:700;width:100%;padding-bottom:5px}.aioseo-search-statistics-post-table .posts-table .manage-column.postTitle .row-actions{padding-top:0}.aioseo-search-statistics-post-table .posts-table .manage-column .table-score-button{display:flex;align-content:center;align-items:center;justify-content:center;width:70px;height:30px;padding:5px}.aioseo-search-statistics-post-table .posts-table .manage-column.diffPosition .statistic .aioseo-tooltip,.aioseo-search-statistics-post-table .posts-table .manage-column.diffDecay .statistic .aioseo-tooltip{justify-content:start}[dir=ltr] .aioseo-search-statistics-post-table .posts-table .manage-column.diffPosition .statistic .statistic-direction,[dir=ltr] .aioseo-search-statistics-post-table .posts-table .manage-column.diffDecay .statistic .statistic-direction{margin-left:0}[dir=rtl] .aioseo-search-statistics-post-table .posts-table .manage-column.diffPosition .statistic .statistic-direction,[dir=rtl] .aioseo-search-statistics-post-table .posts-table .manage-column.diffDecay .statistic .statistic-direction{margin-right:0}.aioseo-search-statistics-post-table .posts-table thead tr th.manage-column,.aioseo-search-statistics-post-table .posts-table thead tr td.manage-column{font-size:13px}.aioseo-blur .wp-list-table{min-height:520px}.aioseo-blur .wp-list-table .no-results{min-height:500px}.aioseo-search-statistics-post-table .blurred{min-height:360px} all-in-one-seo-pack/dist/Lite/assets/css/posts-table.CBDlSjED.css000064400000015051151222736000020351 0ustar00.aioseo-details-column__tooltip{display:inline-block;max-width:100%;width:auto}[dir=ltr] .aioseo-details-column__tooltip{margin-left:0}[dir=rtl] .aioseo-details-column__tooltip{margin-right:0}.aioseo-details-column .edit-row.edit-title,.aioseo-details-column .edit-row.edit-description,.aioseo-details-column .edit-row.edit-image-title,.aioseo-details-column .edit-row.edit-image-alt{display:flex}.aioseo-details-column .edit-row.edit-title span,.aioseo-details-column .edit-row.edit-description span,.aioseo-details-column .edit-row.edit-image-title span,.aioseo-details-column .edit-row.edit-image-alt span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aioseo-details-column .edit-row.edit-title .aioseo-loading-spinner,.aioseo-details-column .edit-row.edit-description .aioseo-loading-spinner,.aioseo-details-column .edit-row.edit-image-title .aioseo-loading-spinner,.aioseo-details-column .edit-row.edit-image-alt .aioseo-loading-spinner{position:relative;width:18px;height:18px;vertical-align:middle}[dir=ltr] .aioseo-details-column .edit-row.edit-title .aioseo-loading-spinner,[dir=ltr] .aioseo-details-column .edit-row.edit-description .aioseo-loading-spinner,[dir=ltr] .aioseo-details-column .edit-row.edit-image-title .aioseo-loading-spinner,[dir=ltr] .aioseo-details-column .edit-row.edit-image-alt .aioseo-loading-spinner{margin-left:5px}[dir=rtl] .aioseo-details-column .edit-row.edit-title .aioseo-loading-spinner,[dir=rtl] .aioseo-details-column .edit-row.edit-description .aioseo-loading-spinner,[dir=rtl] .aioseo-details-column .edit-row.edit-image-title .aioseo-loading-spinner,[dir=rtl] .aioseo-details-column .edit-row.edit-image-alt .aioseo-loading-spinner{margin-right:5px}.aioseo-details-column .edit-row.edit-title .aioseo-pencil,.aioseo-details-column .edit-row.edit-description .aioseo-pencil,.aioseo-details-column .edit-row.edit-image-title .aioseo-pencil,.aioseo-details-column .edit-row.edit-image-alt .aioseo-pencil{flex:0 0 16px;opacity:0;display:inline-block;vertical-align:middle;cursor:pointer;color:#141b38;width:16px;height:16px}[dir=ltr] .aioseo-details-column .edit-row.edit-title .aioseo-pencil,[dir=ltr] .aioseo-details-column .edit-row.edit-description .aioseo-pencil,[dir=ltr] .aioseo-details-column .edit-row.edit-image-title .aioseo-pencil,[dir=ltr] .aioseo-details-column .edit-row.edit-image-alt .aioseo-pencil{margin-left:5px;padding-left:2px}[dir=rtl] .aioseo-details-column .edit-row.edit-title .aioseo-pencil,[dir=rtl] .aioseo-details-column .edit-row.edit-description .aioseo-pencil,[dir=rtl] .aioseo-details-column .edit-row.edit-image-title .aioseo-pencil,[dir=rtl] .aioseo-details-column .edit-row.edit-image-alt .aioseo-pencil{margin-right:5px;padding-right:2px}.aioseo-details-column .edit-row.edit-title:hover .aioseo-pencil,.aioseo-details-column .edit-row.edit-description:hover .aioseo-pencil,.aioseo-details-column .edit-row.edit-image-title:hover .aioseo-pencil,.aioseo-details-column .edit-row.edit-image-alt:hover .aioseo-pencil{opacity:1}.aioseo-details-column .edit-row .aioseo-html-tags-editor{margin-bottom:4px}.aioseo-details-column .edit-row .aioseo-html-tags-editor .ql-editor,.aioseo-details-column .edit-row .aioseo-html-tags-editor .aioseo-add-template-tag{background:#fff}@media (max-width: 1300px){.aioseo-details-column .edit-row .aioseo-html-tags-editor .add-tags{flex-direction:column;align-items:start}}[dir=ltr] .aioseo-details-column .edit-row .aioseo-html-tags-editor .aioseo-emoji-picker em-emoji-picker{right:0;left:auto}[dir=rtl] .aioseo-details-column .edit-row .aioseo-html-tags-editor .aioseo-emoji-picker em-emoji-picker{left:0;right:auto}.aioseo-details-column .edit-row .aioseo-button{margin-bottom:2px}[dir=ltr] .aioseo-details-column .edit-row .aioseo-button{margin-right:2px}[dir=rtl] .aioseo-details-column .edit-row .aioseo-button{margin-left:2px}@media screen and (max-width: 1366px){.aioseo-details-column .edit-row .aioseo-button{width:100%}[dir=ltr] .aioseo-details-column .edit-row .aioseo-button{margin-right:0}[dir=rtl] .aioseo-details-column .edit-row .aioseo-button{margin-left:0}}.aioseo-details-column .edit-row.scores{display:flex;flex-wrap:wrap;align-items:center;gap:8px}[dir=ltr] .aioseo-details-column .edit-row.scores .aioseo-tooltip{margin-left:0}[dir=rtl] .aioseo-details-column .edit-row.scores .aioseo-tooltip{margin-right:0}.aioseo-details-column .edit-row.scores .aioseo-tooltip>div+div{line-height:0}.aioseo-details-column{display:block;opacity:1;overflow:hidden;width:100%}[dir=ltr] .aioseo-details-column{float:left}[dir=rtl] .aioseo-details-column{float:right}.aioseo-details-column.editing{max-height:initial;overflow:visible}.aioseo-details-column .dashicons{cursor:pointer}.aioseo-details-column .aioseo-quickedit{color:#72777c}[dir=ltr] .aioseo-details-column .aioseo-quickedit{margin-right:5px}[dir=rtl] .aioseo-details-column .aioseo-quickedit{margin-left:5px}.aioseo-details-column .aioseo-quickedit:hover{color:#0073aa;outline:0}.aioseo-details-column .aioseo-quickedit-input{position:relative;margin-bottom:10px;font-size:13px;width:100%;z-index:1}[dir=ltr] .aioseo-details-column .aioseo-quickedit-input{float:left}[dir=rtl] .aioseo-details-column .aioseo-quickedit-input{float:right}.aioseo-details-column .aioseo-quickedit-input-save{color:#16cc16}[dir=ltr] .aioseo-details-column .aioseo-quickedit-input-save{margin-right:5px}[dir=rtl] .aioseo-details-column .aioseo-quickedit-input-save{margin-left:5px}.aioseo-details-column .aioseo-quickedit-input-cancel{color:red}.aioseo-details-column .aioseo-quickedit:focus,.aioseo-details-column .aioseo-quickedit-input-save:focus,.aioseo-details-column .aioseo-quickedit-input-cancel:focus{box-shadow:none}.aioseo-details-column .aioseo-quickedit-spinner{width:20px}[dir=ltr] .aioseo-details-column .aioseo-quickedit-spinner{float:left;margin-right:5px}[dir=rtl] .aioseo-details-column .aioseo-quickedit-spinner{float:right;margin-left:5px}.aioseo-details-column .edit-row{margin-bottom:10px}.aioseo-details-column .edit-row.edit-title,.aioseo-details-column .edit-row.edit-description,.aioseo-details-column .edit-row.edit-image-title,.aioseo-details-column .edit-row.edit-image-alt{max-height:70px;overflow:hidden}table.wp-list-table.tags .aioseo-html-tags-editor .add-tags{flex-direction:column;align-items:start}td.seotitle.column-seotitle,td.seodesc.column-seodesc,td.seokeywords.column-seokeywords{overflow:visible}@media screen and (max-width: 782px){body.wp-admin th.column-seotitle,body.wp-admin th.column-seodesc,body.wp-admin th.column-seokeywords,body.wp-admin td.seotitle.column-seotitle,body.wp-admin td.seodesc.column-seodesc,body.wp-admin td.seokeywords.column-seokeywords{display:none}} all-in-one-seo-pack/dist/Lite/assets/css/PostTypeOptions.-KsVc58B.css000064400000000172151222736000021205 0ustar00.aioseo-post-type-options-toggle{margin-top:16px}.aioseo-post-type-options-toggle+div.aioseo-description{margin-top:16px} all-in-one-seo-pack/dist/Lite/assets/css/primary-term.BgeWPJfa.css000064400000001366151222736000020663 0ustar00.aioseo-primary-term-cta{position:relative;padding:0 25px}.aioseo-primary-term-cta .aioseo-circle-information{position:absolute;top:0;color:#f18200}[dir=ltr] .aioseo-primary-term-cta .aioseo-circle-information{left:0}[dir=rtl] .aioseo-primary-term-cta .aioseo-circle-information{right:0}.aioseo-primary-term-cta p{font-weight:400;font-size:14px;line-height:125%;color:#2c324c}.aioseo-primary-term-cta p:last-of-type{margin-bottom:0}.aioseo-primary-term-cta .aioseo-close{position:absolute;top:2px;cursor:pointer;color:#434960;width:10px;height:10px}[dir=ltr] .aioseo-primary-term-cta .aioseo-close{right:0}[dir=rtl] .aioseo-primary-term-cta .aioseo-close{left:0}.aioseo-primary-term:not(:empty){margin-top:12px;padding-top:12px;border-top:1px solid #DCDDE1} all-in-one-seo-pack/dist/Lite/assets/css/ProBadge.XL4ndxXl.css000064400000000267151222736000017755 0ustar00.aioseo-pro-badge{height:22px;border-radius:3px;background:#e8e8eb;color:#434960;font-size:12px;line-height:18px;font-weight:600;display:inline-flex;padding:0 4px;align-items:center} all-in-one-seo-pack/dist/Lite/assets/css/publish-panel.Si5o5XrF.css000064400000004671151222736000020737 0ustar00.aioseo-seo-overview.components-panel__body .components-button{display:inline-block;line-height:140%}.aioseo-seo-overview.components-panel__body.is-opened .components-panel__body-title,.aioseo-seo-overview.components-panel__body.is-opened .components-panel__body-title:hover{border-bottom:1px solid #e0e0e0}.seo-overview ul{margin:16px 0;padding-bottom:6px;border-bottom:1px solid #E8E8EB}.seo-overview ul li{display:flex;align-items:center;margin-bottom:12px}.seo-overview ul .icon{line-height:0}[dir=ltr] .seo-overview ul .icon{margin-right:10px}[dir=rtl] .seo-overview ul .icon{margin-left:10px}.seo-overview ul .icon svg{width:22px;height:22px}.seo-overview ul .result{font-weight:700}.seo-overview ul .warning{color:#f18200}.seo-overview ul .info{color:#005ae0}.seo-overview ul .success{color:#00aa63}.seo-overview ul .error{border:none;color:#df2a4a}.seo-overview .title{font-size:13px;line-height:130%;color:#8c8f9a;margin-bottom:8px;display:flex}.seo-overview .edit{cursor:pointer}[dir=ltr] .seo-overview .edit{margin-left:auto;margin-right:5px}[dir=rtl] .seo-overview .edit{margin-right:auto;margin-left:5px}.seo-overview .edit svg{width:14px;height:14px;color:#434960}.seo-overview .edit:hover svg{color:#2c324c}.seo-overview .snippet-preview:not(:last-child){margin-bottom:16px}.seo-overview .snippet-preview .aioseo-google-search-preview{border:1px solid #E8E8EB;padding:10px}.seo-overview .snippet-preview .aioseo-google-search-preview a{color:#202124;text-decoration:none}.seo-overview .canonical-url a{font-size:12px;color:#005ae0}.seo-overview .canonical-url a svg{width:16px;height:16px;vertical-align:middle}[dir=ltr] .seo-overview .canonical-url a svg{margin-left:5px}[dir=rtl] .seo-overview .canonical-url a svg{margin-right:5px}.seo-overview .canonical-url span{vertical-align:middle;overflow-wrap:break-word}.aioseo-post-publish .title{font-weight:700;font-size:13px;line-height:130%;color:#434960}.aioseo-post-publish .description{font-size:13px;line-height:130%;color:#434960;margin-bottom:16px}.aioseo-post-publish .links .link{display:inline-block}[dir=ltr] .aioseo-post-publish .links .link{margin-right:10px}[dir=rtl] .aioseo-post-publish .links .link{margin-left:10px}.aioseo-post-publish .links .link:hover{opacity:.8}.aioseo-post-publish .aioseo-twitter-rounded{color:#1da1f2}.aioseo-post-publish .aioseo-facebook-rounded{color:#1877f2}.aioseo-post-publish .aioseo-pinterest-rounded{color:#e60023}.aioseo-post-publish .aioseo-linkedin-rounded{color:#2867b2} all-in-one-seo-pack/dist/Lite/assets/css/RadioToggle.B58EmTGK.css000064400000004332151222736000020230 0ustar00.aioseo-radio-toggle{display:flex;align-items:center;height:40px}.aioseo-radio-toggle div{height:100%}.aioseo-radio-toggle.inline{display:inline-flex}.aioseo-radio-toggle div:first-child{overflow:hidden}[dir=ltr] .aioseo-radio-toggle div:first-child{border-radius:3px 0 0 3px}[dir=rtl] .aioseo-radio-toggle div:first-child{border-radius:0 3px 3px 0}[dir=ltr] .aioseo-radio-toggle div:first-child label{border-radius:3px 0 0 3px}[dir=rtl] .aioseo-radio-toggle div:first-child label{border-radius:0 3px 3px 0}.aioseo-radio-toggle div:last-child{overflow:hidden}[dir=ltr] .aioseo-radio-toggle div:last-child{border-radius:0 3px 3px 0}[dir=rtl] .aioseo-radio-toggle div:last-child{border-radius:3px 0 0 3px}[dir=ltr] .aioseo-radio-toggle div:last-child label{border-radius:0 3px 3px 0}[dir=rtl] .aioseo-radio-toggle div:last-child label{border-radius:3px 0 0 3px}.aioseo-radio-toggle input{position:absolute!important;clip:rect(0,0,0,0);height:1px;width:1px;border:0;overflow:hidden}.aioseo-radio-toggle input:checked+label{background-color:#005ae0;color:#fff}.aioseo-radio-toggle input:checked+label.dark{background-color:#434960;color:#fff}.aioseo-radio-toggle label{height:100%;background-color:#e8e8eb;color:#141b38;font-size:14px;line-height:1;display:flex;align-items:center;justify-content:center;flex-direction:column;transition:all .1s ease-in-out;position:relative;padding:6px 14px;font-weight:600}.aioseo-radio-toggle label.disabled{cursor:default;pointer-events:none;opacity:.5}.aioseo-radio-toggle label:hover{background-color:#dadadf;cursor:pointer}.aioseo-radio-toggle label p{position:absolute;bottom:15px;margin:0}.aioseo-radio-toggle.small{height:32px}.aioseo-radio-toggle.small label{font-size:12px;padding:6px 14px}.aioseo-radio-toggle.circle{height:36px}.aioseo-radio-toggle.circle label{background:#fff;color:#8c8f9a}.aioseo-radio-toggle.circle input+label{border-radius:50%;width:36px;height:36px;padding:8px}.aioseo-radio-toggle.circle input:checked+label{background:#e8e8eb;color:#2c324c}[dir] .aioseo-radio-toggle.circle label{background:#fff;color:#8c8f9a}[dir] .aioseo-radio-toggle.circle input+label{border-radius:50%;width:36px;height:36px;padding:8px}[dir] .aioseo-radio-toggle.circle input:checked+label{background:#e8e8eb;color:#2c324c} all-in-one-seo-pack/dist/Lite/assets/css/redirects-add-redirect.DCQ_ogYT.css000064400000000061151222736000022517 0ustar00.aioseo-redirects.aioseo-modal .bd{padding:20px} all-in-one-seo-pack/dist/Lite/assets/css/RequiredPlans.bA1NSbzb.css000064400000000340151222736000020755 0ustar00.aioseo-app .aioseo-cta .aioseo-cta-background .description .aioseo-alert.aioseo-required-plans,#aioseo-user-profile-tab .aioseo-cta .aioseo-cta-background .description .aioseo-alert.aioseo-required-plans{text-align:center} all-in-one-seo-pack/dist/Lite/assets/css/RobotsEditor.CqR_37NE.css000064400000011754151222736000020510 0ustar00.aioseo-tools-robots-editor .buttons{display:flex;flex-wrap:wrap;gap:12px}.aioseo-tools-robots-editor .aioseo-alert,.aioseo-tools-robots-editor .description{color:#141b38;margin:0}.aioseo-tools-robots-editor .aioseo-alert+.aioseo-alert,.aioseo-tools-robots-editor .aioseo-alert+.description,.aioseo-tools-robots-editor .description+.aioseo-alert,.aioseo-tools-robots-editor .description+.description{margin-top:12px}.aioseo-tools-robots-editor .robots-editor-table{border-radius:4px;border:1px solid #D0D1D7;color:#141b38}.aioseo-tools-robots-editor .robots-editor-table__header{border-bottom:1px solid #D0D1D7}.aioseo-tools-robots-editor .robots-editor-table__footer{border-top:1px solid #D0D1D7;padding:9px 16px}.aioseo-tools-robots-editor .robots-editor-table__row{align-items:center;display:grid;gap:16px;grid-template-columns:1fr 6fr 6fr 12fr 1fr auto;padding:16px}.aioseo-tools-robots-editor .robots-editor-table__row--stripe:nth-child(odd){background-color:#f3f4f5}.aioseo-tools-robots-editor .robots-editor-table__column--rule-error{grid-column:2/span 5}[dir=ltr] .aioseo-tools-robots-editor .robots-editor-table__column--rule-error{padding-right:16px}[dir=rtl] .aioseo-tools-robots-editor .robots-editor-table__column--rule-error{padding-left:16px}.aioseo-tools-robots-editor .robots-editor-table__column--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aioseo-tools-robots-editor .robots-editor-table__column--actions{align-items:center;display:flex;justify-content:space-between;line-height:1}.aioseo-tools-robots-editor .robots-editor-table__column--actions .btn-delete-rule{cursor:pointer;height:20px;width:20px}.aioseo-tools-robots-editor .robots-editor-table__column--actions .btn-delete-rule svg{color:#8c8f9a}.aioseo-tools-robots-editor .robots-editor-table__column--actions .btn-delete-rule svg:hover{color:#df2a4a}.aioseo-tools-robots-editor .aioseo-settings-row--preview-robots .settings-name{margin-bottom:16px}.aioseo-tools-robots-editor .aioseo-settings-row--preview-robots .settings-name .name .aioseo-error{align-items:center;color:#df2a4a;display:inline-flex;line-height:normal;gap:8px}[dir=ltr] .aioseo-tools-robots-editor .aioseo-settings-row--preview-robots .settings-name .name .aioseo-error{margin-left:16px}[dir=rtl] .aioseo-tools-robots-editor .aioseo-settings-row--preview-robots .settings-name .name .aioseo-error{margin-right:16px}.aioseo-tools-robots-editor .aioseo-settings-row--preview-robots .ql-editor .has-error{background-color:#fecaca;display:table}.aioseo-tools-robots-editor .loader-overlay{background:#0000004d;display:flex;height:100%;justify-content:center;padding:50px;position:absolute;top:0;width:100%}[dir=ltr] .aioseo-tools-robots-editor .loader-overlay{left:0}[dir=rtl] .aioseo-tools-robots-editor .loader-overlay{right:0}.aioseo-tools-robots-editor .aioseo-drag-wrapper{cursor:move;width:20px;height:20px}.aioseo-tools-robots-editor .aioseo-drag-wrapper svg.aioseo-drag{color:#8c8f9a}.aioseo-tools-robots-editor .aioseo-outline{display:inline-block;outline:revert;outline-color:#005ae0}.aioseo-tools-robots-editor svg.aioseo-upload,.aioseo-tools-robots-editor svg.aioseo-external,.aioseo-tools-robots-editor svg.aioseo-circle-plus{width:14px;height:14px}[dir=ltr] .aioseo-tools-robots-editor svg.aioseo-upload,[dir=ltr] .aioseo-tools-robots-editor svg.aioseo-external,[dir=ltr] .aioseo-tools-robots-editor svg.aioseo-circle-plus{margin-right:10px}[dir=rtl] .aioseo-tools-robots-editor svg.aioseo-upload,[dir=rtl] .aioseo-tools-robots-editor svg.aioseo-external,[dir=rtl] .aioseo-tools-robots-editor svg.aioseo-circle-plus{margin-left:10px}.aioseo-robots-import-modal.aioseo-modal .buttons{display:flex;flex-wrap:wrap;gap:12px}[dir=ltr] .aioseo-robots-import-modal.aioseo-modal .modal-header{padding-left:20px}[dir=rtl] .aioseo-robots-import-modal.aioseo-modal .modal-header{padding-right:20px}.aioseo-robots-import-modal.aioseo-modal .modal-container{height:auto;overflow:revert}.aioseo-robots-import-modal.aioseo-modal .modal-container .modal-body{max-height:70vh;padding:20px}.aioseo-robots-import-modal.aioseo-modal .modal-container__footer{display:flex;justify-content:end;padding:12px 20px}.aioseo-robots-import-modal.aioseo-modal .aioseo-settings-row:last-of-type{border-bottom:0;margin-bottom:0}.aioseo-robots-import-modal.aioseo-modal .aioseo-settings-row--or{margin-bottom:35px;padding-bottom:35px;position:relative}.aioseo-robots-import-modal.aioseo-modal .aioseo-settings-row--or:before{align-items:center;background-color:#d0d1d7;border-radius:50%;content:attr(data-or);display:inline-flex;font-size:12px;font-weight:700;height:30px;justify-content:center;line-height:30px;margin-bottom:35px;position:absolute;text-transform:uppercase;top:calc(100% - 15px);width:30px}[dir=ltr] .aioseo-robots-import-modal.aioseo-modal .aioseo-settings-row--or:before{left:50%;transform:translate(-50%)}[dir=rtl] .aioseo-robots-import-modal.aioseo-modal .aioseo-settings-row--or:before{right:50%;transform:translate(50%)}.aioseo-robots-import-modal.aioseo-modal .aioseo-settings-row .settings-content--gap{display:grid;gap:10px} all-in-one-seo-pack/dist/Lite/assets/css/RobotsMeta.DiqGICc8.css000064400000003415151222736000020215 0ustar00.aioseo-robots-meta .global-robots-settings.aioseo-description{margin-top:16px;font-weight:600}.aioseo-robots-meta .global-robots-settings.aioseo-description>.settings{margin-top:12px;font-weight:400;--aioseo-gutter: 12px;--total-gap-width: calc(3 * var(--aioseo-gutter));--aioseo-col-max-width: calc((100% - var(--total-gap-width)) / 4);display:grid;gap:var(--aioseo-gutter);grid-template-columns:repeat(auto-fill,minmax(max(150px,var(--aioseo-col-max-width)),1fr))}.aioseo-robots-meta .global-robots-settings.aioseo-description>.settings>*{max-width:none}.aioseo-robots-meta .global-robots-settings.aioseo-description>.settings .aioseo-col{max-width:none}.aioseo-robots-meta .global-robots-settings-options{display:flex;gap:12px;margin-top:16px}.aioseo-robots-meta .global-robots-settings-options>.aioseo-description{margin:0}.aioseo-robots-meta .global-robots-settings-options>.aioseo-description .aioseo-input,.aioseo-robots-meta .global-robots-settings-options>.aioseo-description .aioseo-select{min-width:200px;font-weight:400;margin-top:4px}@media screen and (max-width: 782px){.aioseo-robots-meta .global-robots-settings-options{display:block}.aioseo-robots-meta .global-robots-settings-options .max-snippet,.aioseo-robots-meta .global-robots-settings-options .max-video-preview{margin-bottom:20px}[dir=ltr] .aioseo-robots-meta .global-robots-settings-options .max-snippet,[dir=ltr] .aioseo-robots-meta .global-robots-settings-options .max-video-preview{margin-right:0}[dir=rtl] .aioseo-robots-meta .global-robots-settings-options .max-snippet,[dir=rtl] .aioseo-robots-meta .global-robots-settings-options .max-video-preview{margin-left:0}.aioseo-robots-meta .global-robots-settings-options>div .aioseo-input,.aioseo-robots-meta .global-robots-settings-options>div .aioseo-select{min-width:100%}} all-in-one-seo-pack/dist/Lite/assets/css/Row.Bj4tX1lk.css000064400000065073151222736000016765 0ustar00.aioseo-col .reverse{flex-direction:column-reverse}.aioseo-col.col-xs,.aioseo-col.col-xs-1,.aioseo-col.col-xs-2,.aioseo-col.col-xs-3,.aioseo-col.col-xs-4,.aioseo-col.col-xs-5,.aioseo-col.col-xs-6,.aioseo-col.col-xs-7,.aioseo-col.col-xs-8,.aioseo-col.col-xs-9,.aioseo-col.col-xs-10,.aioseo-col.col-xs-11,.aioseo-col.col-xs-12,.aioseo-col.col-xs-offset-0,.aioseo-col.col-xs-offset-1,.aioseo-col.col-xs-offset-2,.aioseo-col.col-xs-offset-3,.aioseo-col.col-xs-offset-4,.aioseo-col.col-xs-offset-5,.aioseo-col.col-xs-offset-6,.aioseo-col.col-xs-offset-7,.aioseo-col.col-xs-offset-8,.aioseo-col.col-xs-offset-9,.aioseo-col.col-xs-offset-10,.aioseo-col.col-xs-offset-11,.aioseo-col.col-xs-offset-12{box-sizing:border-box;flex:0 0 auto}.aioseo-col.col-xs{flex-grow:1;flex-basis:0;max-width:100%}.aioseo-col.col-xs-1{max-width:calc(8.3333333333% - var(--aioseo-gutter) * .9166666667);flex-basis:calc(8.3333333333% - var(--aioseo-gutter) * .9166666667)}.aioseo-col.col-xs-2{max-width:calc(16.6666666667% - var(--aioseo-gutter) * .8333333333);flex-basis:calc(16.6666666667% - var(--aioseo-gutter) * .8333333333)}.aioseo-col.col-xs-3{max-width:calc(25% - var(--aioseo-gutter) * .75);flex-basis:calc(25% - var(--aioseo-gutter) * .75)}.aioseo-col.col-xs-4{max-width:calc(33.3333333333% - var(--aioseo-gutter) * .6666666667);flex-basis:calc(33.3333333333% - var(--aioseo-gutter) * .6666666667)}.aioseo-col.col-xs-5{max-width:calc(41.6666666667% - var(--aioseo-gutter) * .5833333333);flex-basis:calc(41.6666666667% - var(--aioseo-gutter) * .5833333333)}.aioseo-col.col-xs-6{max-width:calc(50% - var(--aioseo-gutter) * .5);flex-basis:calc(50% - var(--aioseo-gutter) * .5)}.aioseo-col.col-xs-7{max-width:calc(58.3333333333% - var(--aioseo-gutter) * .4166666667);flex-basis:calc(58.3333333333% - var(--aioseo-gutter) * .4166666667)}.aioseo-col.col-xs-8{max-width:calc(66.6666666667% - var(--aioseo-gutter) * .3333333333);flex-basis:calc(66.6666666667% - var(--aioseo-gutter) * .3333333333)}.aioseo-col.col-xs-9{max-width:calc(75% - var(--aioseo-gutter) * .25);flex-basis:calc(75% - var(--aioseo-gutter) * .25)}.aioseo-col.col-xs-10{max-width:calc(83.3333333333% - var(--aioseo-gutter) * .1666666667);flex-basis:calc(83.3333333333% - var(--aioseo-gutter) * .1666666667)}.aioseo-col.col-xs-11{max-width:calc(91.6666666667% - var(--aioseo-gutter) * .0833333333);flex-basis:calc(91.6666666667% - var(--aioseo-gutter) * .0833333333)}.aioseo-col.col-xs-12{max-width:100%;flex-basis:100%}[dir=ltr] .aioseo-col.col-xs-offset-0{margin-left:0}[dir=rtl] .aioseo-col.col-xs-offset-0{margin-right:0}[dir=ltr] .aioseo-col.col-xs-offset-1{margin-left:8.33333333%}[dir=rtl] .aioseo-col.col-xs-offset-1{margin-right:8.33333333%}[dir=ltr] .aioseo-col.col-xs-offset-2{margin-left:16.66666667%}[dir=rtl] .aioseo-col.col-xs-offset-2{margin-right:16.66666667%}[dir=ltr] .aioseo-col.col-xs-offset-3{margin-left:25%}[dir=rtl] .aioseo-col.col-xs-offset-3{margin-right:25%}[dir=ltr] .aioseo-col.col-xs-offset-4{margin-left:33.33333333%}[dir=rtl] .aioseo-col.col-xs-offset-4{margin-right:33.33333333%}[dir=ltr] .aioseo-col.col-xs-offset-5{margin-left:41.66666667%}[dir=rtl] .aioseo-col.col-xs-offset-5{margin-right:41.66666667%}[dir=ltr] .aioseo-col.col-xs-offset-6{margin-left:50%}[dir=rtl] .aioseo-col.col-xs-offset-6{margin-right:50%}[dir=ltr] .aioseo-col.col-xs-offset-7{margin-left:58.33333333%}[dir=rtl] .aioseo-col.col-xs-offset-7{margin-right:58.33333333%}[dir=ltr] .aioseo-col.col-xs-offset-8{margin-left:66.66666667%}[dir=rtl] .aioseo-col.col-xs-offset-8{margin-right:66.66666667%}[dir=ltr] .aioseo-col.col-xs-offset-9{margin-left:75%}[dir=rtl] .aioseo-col.col-xs-offset-9{margin-right:75%}[dir=ltr] .aioseo-col.col-xs-offset-10{margin-left:83.33333333%}[dir=rtl] .aioseo-col.col-xs-offset-10{margin-right:83.33333333%}[dir=ltr] .aioseo-col.col-xs-offset-11{margin-left:91.66666667%}[dir=rtl] .aioseo-col.col-xs-offset-11{margin-right:91.66666667%}.aioseo-col.first-xs{order:-1}.aioseo-col.last-xs{order:1}.aioseo-col.text-xs-left{justify-content:flex-start}[dir=ltr] .aioseo-col.text-xs-left{text-align:left!important}[dir=rtl] .aioseo-col.text-xs-left{text-align:right!important}.aioseo-col.text-xs-center{text-align:center!important;justify-content:center}.aioseo-col.text-xs-right{justify-content:flex-end}[dir=ltr] .aioseo-col.text-xs-right{text-align:right!important}[dir=rtl] .aioseo-col.text-xs-right{text-align:left!important}.aioseo-col.p-0{padding:0!important}.aioseo-col.pt-0,.aioseo-col.py-0{padding-top:0!important}[dir=ltr] .aioseo-col.pr-0,[dir=ltr] .aioseo-col.px-0{padding-right:0!important}[dir=rtl] .aioseo-col.pr-0,[dir=rtl] .aioseo-col.px-0{padding-left:0!important}.aioseo-col.pb-0,.aioseo-col.py-0{padding-bottom:0!important}[dir=ltr] .aioseo-col.pl-0,[dir=ltr] .aioseo-col.px-0{padding-left:0!important}[dir=rtl] .aioseo-col.pl-0,[dir=rtl] .aioseo-col.px-0{padding-right:0!important}.aioseo-col.p-1{padding:.25rem!important}.aioseo-col.pt-1,.aioseo-col.py-1{padding-top:.25rem!important}[dir=ltr] .aioseo-col.pr-1,[dir=ltr] .aioseo-col.px-1{padding-right:.25rem!important}[dir=rtl] .aioseo-col.pr-1,[dir=rtl] .aioseo-col.px-1{padding-left:.25rem!important}.aioseo-col.pb-1,.aioseo-col.py-1{padding-bottom:.25rem!important}[dir=ltr] .aioseo-col.pl-1,[dir=ltr] .aioseo-col.px-1{padding-left:.25rem!important}[dir=rtl] .aioseo-col.pl-1,[dir=rtl] .aioseo-col.px-1{padding-right:.25rem!important}.aioseo-col.p-2{padding:.5rem!important}.aioseo-col.pt-2,.aioseo-col.py-2{padding-top:.5rem!important}[dir=ltr] .aioseo-col.pr-2,[dir=ltr] .aioseo-col.px-2{padding-right:.5rem!important}[dir=rtl] .aioseo-col.pr-2,[dir=rtl] .aioseo-col.px-2{padding-left:.5rem!important}.aioseo-col.pb-2,.aioseo-col.py-2{padding-bottom:.5rem!important}[dir=ltr] .aioseo-col.pl-2,[dir=ltr] .aioseo-col.px-2{padding-left:.5rem!important}[dir=rtl] .aioseo-col.pl-2,[dir=rtl] .aioseo-col.px-2{padding-right:.5rem!important}.aioseo-col.p-3{padding:1rem!important}.aioseo-col.pt-3,.aioseo-col.py-3{padding-top:1rem!important}[dir=ltr] .aioseo-col.pr-3,[dir=ltr] .aioseo-col.px-3{padding-right:1rem!important}[dir=rtl] .aioseo-col.pr-3,[dir=rtl] .aioseo-col.px-3{padding-left:1rem!important}.aioseo-col.pb-3,.aioseo-col.py-3{padding-bottom:1rem!important}[dir=ltr] .aioseo-col.pl-3,[dir=ltr] .aioseo-col.px-3{padding-left:1rem!important}[dir=rtl] .aioseo-col.pl-3,[dir=rtl] .aioseo-col.px-3{padding-right:1rem!important}.aioseo-col.p-4{padding:1.5rem!important}.aioseo-col.pt-4,.aioseo-col.py-4{padding-top:1.5rem!important}[dir=ltr] .aioseo-col.pr-4,[dir=ltr] .aioseo-col.px-4{padding-right:1.5rem!important}[dir=rtl] .aioseo-col.pr-4,[dir=rtl] .aioseo-col.px-4{padding-left:1.5rem!important}.aioseo-col.pb-4,.aioseo-col.py-4{padding-bottom:1.5rem!important}[dir=ltr] .aioseo-col.pl-4,[dir=ltr] .aioseo-col.px-4{padding-left:1.5rem!important}[dir=rtl] .aioseo-col.pl-4,[dir=rtl] .aioseo-col.px-4{padding-right:1.5rem!important}.aioseo-col.p-5{padding:3rem!important}.aioseo-col.pt-5,.aioseo-col.py-5{padding-top:3rem!important}[dir=ltr] .aioseo-col.pr-5,[dir=ltr] .aioseo-col.px-5{padding-right:3rem!important}[dir=rtl] .aioseo-col.pr-5,[dir=rtl] .aioseo-col.px-5{padding-left:3rem!important}.aioseo-col.pb-5,.aioseo-col.py-5{padding-bottom:3rem!important}[dir=ltr] .aioseo-col.pl-5,[dir=ltr] .aioseo-col.px-5{padding-left:3rem!important}[dir=rtl] .aioseo-col.pl-5,[dir=rtl] .aioseo-col.px-5{padding-right:3rem!important}@media only screen and (min-width: 783px){.aioseo-col.col-sm,.aioseo-col.col-sm-1,.aioseo-col.col-sm-2,.aioseo-col.col-sm-3,.aioseo-col.col-sm-4,.aioseo-col.col-sm-5,.aioseo-col.col-sm-6,.aioseo-col.col-sm-7,.aioseo-col.col-sm-8,.aioseo-col.col-sm-9,.aioseo-col.col-sm-10,.aioseo-col.col-sm-11,.aioseo-col.col-sm-12,.aioseo-col.col-sm-offset-0,.aioseo-col.col-sm-offset-1,.aioseo-col.col-sm-offset-2,.aioseo-col.col-sm-offset-3,.aioseo-col.col-sm-offset-4,.aioseo-col.col-sm-offset-5,.aioseo-col.col-sm-offset-6,.aioseo-col.col-sm-offset-7,.aioseo-col.col-sm-offset-8,.aioseo-col.col-sm-offset-9,.aioseo-col.col-sm-offset-10,.aioseo-col.col-sm-offset-11,.aioseo-col.col-sm-offset-12{box-sizing:border-box;flex:0 0 auto}.aioseo-col.col-sm{flex-grow:1;flex-basis:0;max-width:100%}.aioseo-col.col-sm-1{max-width:calc(8.3333333333% - var(--aioseo-gutter) * .9166666667);flex-basis:calc(8.3333333333% - var(--aioseo-gutter) * .9166666667)}.aioseo-col.col-sm-2{max-width:calc(16.6666666667% - var(--aioseo-gutter) * .8333333333);flex-basis:calc(16.6666666667% - var(--aioseo-gutter) * .8333333333)}.aioseo-col.col-sm-3{max-width:calc(25% - var(--aioseo-gutter) * .75);flex-basis:calc(25% - var(--aioseo-gutter) * .75)}.aioseo-col.col-sm-4{max-width:calc(33.3333333333% - var(--aioseo-gutter) * .6666666667);flex-basis:calc(33.3333333333% - var(--aioseo-gutter) * .6666666667)}.aioseo-col.col-sm-5{max-width:calc(41.6666666667% - var(--aioseo-gutter) * .5833333333);flex-basis:calc(41.6666666667% - var(--aioseo-gutter) * .5833333333)}.aioseo-col.col-sm-6{max-width:calc(50% - var(--aioseo-gutter) * .5);flex-basis:calc(50% - var(--aioseo-gutter) * .5)}.aioseo-col.col-sm-7{max-width:calc(58.3333333333% - var(--aioseo-gutter) * .4166666667);flex-basis:calc(58.3333333333% - var(--aioseo-gutter) * .4166666667)}.aioseo-col.col-sm-8{max-width:calc(66.6666666667% - var(--aioseo-gutter) * .3333333333);flex-basis:calc(66.6666666667% - var(--aioseo-gutter) * .3333333333)}.aioseo-col.col-sm-9{max-width:calc(75% - var(--aioseo-gutter) * .25);flex-basis:calc(75% - var(--aioseo-gutter) * .25)}.aioseo-col.col-sm-10{max-width:calc(83.3333333333% - var(--aioseo-gutter) * .1666666667);flex-basis:calc(83.3333333333% - var(--aioseo-gutter) * .1666666667)}.aioseo-col.col-sm-11{max-width:calc(91.6666666667% - var(--aioseo-gutter) * .0833333333);flex-basis:calc(91.6666666667% - var(--aioseo-gutter) * .0833333333)}.aioseo-col.col-sm-12{max-width:100%;flex-basis:100%}[dir=ltr] .aioseo-col.col-sm-offset-0{margin-left:0}[dir=rtl] .aioseo-col.col-sm-offset-0{margin-right:0}[dir=ltr] .aioseo-col.col-sm-offset-1{margin-left:8.33333333%}[dir=rtl] .aioseo-col.col-sm-offset-1{margin-right:8.33333333%}[dir=ltr] .aioseo-col.col-sm-offset-2{margin-left:16.66666667%}[dir=rtl] .aioseo-col.col-sm-offset-2{margin-right:16.66666667%}[dir=ltr] .aioseo-col.col-sm-offset-3{margin-left:25%}[dir=rtl] .aioseo-col.col-sm-offset-3{margin-right:25%}[dir=ltr] .aioseo-col.col-sm-offset-4{margin-left:33.33333333%}[dir=rtl] .aioseo-col.col-sm-offset-4{margin-right:33.33333333%}[dir=ltr] .aioseo-col.col-sm-offset-5{margin-left:41.66666667%}[dir=rtl] .aioseo-col.col-sm-offset-5{margin-right:41.66666667%}[dir=ltr] .aioseo-col.col-sm-offset-6{margin-left:50%}[dir=rtl] .aioseo-col.col-sm-offset-6{margin-right:50%}[dir=ltr] .aioseo-col.col-sm-offset-7{margin-left:58.33333333%}[dir=rtl] .aioseo-col.col-sm-offset-7{margin-right:58.33333333%}[dir=ltr] .aioseo-col.col-sm-offset-8{margin-left:66.66666667%}[dir=rtl] .aioseo-col.col-sm-offset-8{margin-right:66.66666667%}[dir=ltr] .aioseo-col.col-sm-offset-9{margin-left:75%}[dir=rtl] .aioseo-col.col-sm-offset-9{margin-right:75%}[dir=ltr] .aioseo-col.col-sm-offset-10{margin-left:83.33333333%}[dir=rtl] .aioseo-col.col-sm-offset-10{margin-right:83.33333333%}[dir=ltr] .aioseo-col.col-sm-offset-11{margin-left:91.66666667%}[dir=rtl] .aioseo-col.col-sm-offset-11{margin-right:91.66666667%}.aioseo-col.first-sm{order:-1}.aioseo-col.last-sm{order:1}.aioseo-col.text-sm-left{justify-content:flex-start}[dir=ltr] .aioseo-col.text-sm-left{text-align:left!important}[dir=rtl] .aioseo-col.text-sm-left{text-align:right!important}.aioseo-col.text-sm-center{text-align:center!important;justify-content:center}.aioseo-col.text-sm-right{justify-content:flex-end}[dir=ltr] .aioseo-col.text-sm-right{text-align:right!important}[dir=rtl] .aioseo-col.text-sm-right{text-align:left!important}}@media only screen and (min-width: 912px){.aioseo-col.col-md,.aioseo-col.col-md-1,.aioseo-col.col-md-2,.aioseo-col.col-md-24,.aioseo-col.col-md-3,.aioseo-col.col-md-4,.aioseo-col.col-md-5,.aioseo-col.col-md-6,.aioseo-col.col-md-7,.aioseo-col.col-md-8,.aioseo-col.col-md-9,.aioseo-col.col-md-10,.aioseo-col.col-md-11,.aioseo-col.col-md-12,.aioseo-col.col-md-offset-0,.aioseo-col.col-md-offset-1,.aioseo-col.col-md-offset-2,.aioseo-col.col-md-offset-24,.aioseo-col.col-md-offset-3,.aioseo-col.col-md-offset-4,.aioseo-col.col-md-offset-5,.aioseo-col.col-md-offset-6,.aioseo-col.col-md-offset-7,.aioseo-col.col-md-offset-8,.aioseo-col.col-md-offset-9,.aioseo-col.col-md-offset-10,.aioseo-col.col-md-offset-11,.aioseo-col.col-md-offset-12{box-sizing:border-box;flex:0 0 auto}.aioseo-col.col-md{flex-grow:1;flex-basis:0;max-width:100%}.aioseo-col.col-md-1{max-width:calc(8.3333333333% - var(--aioseo-gutter) * .9166666667);flex-basis:calc(8.3333333333% - var(--aioseo-gutter) * .9166666667)}.aioseo-col.col-md-2{max-width:calc(16.6666666667% - var(--aioseo-gutter) * .8333333333);flex-basis:calc(16.6666666667% - var(--aioseo-gutter) * .8333333333)}.aioseo-col.col-md-24{max-width:calc(20% - var(--aioseo-gutter) * .8);flex-basis:calc(20% - var(--aioseo-gutter) * .8)}.aioseo-col.col-md-3{max-width:calc(25% - var(--aioseo-gutter) * .75);flex-basis:calc(25% - var(--aioseo-gutter) * .75)}.aioseo-col.col-md-4{max-width:calc(33.3333333333% - var(--aioseo-gutter) * .6666666667);flex-basis:calc(33.3333333333% - var(--aioseo-gutter) * .6666666667)}.aioseo-col.col-md-5{max-width:calc(41.6666666667% - var(--aioseo-gutter) * .5833333333);flex-basis:calc(41.6666666667% - var(--aioseo-gutter) * .5833333333)}.aioseo-col.col-md-6{max-width:calc(50% - var(--aioseo-gutter) * .5);flex-basis:calc(50% - var(--aioseo-gutter) * .5)}.aioseo-col.col-md-7{max-width:calc(58.3333333333% - var(--aioseo-gutter) * .4166666667);flex-basis:calc(58.3333333333% - var(--aioseo-gutter) * .4166666667)}.aioseo-col.col-md-8{max-width:calc(66.6666666667% - var(--aioseo-gutter) * .3333333333);flex-basis:calc(66.6666666667% - var(--aioseo-gutter) * .3333333333)}.aioseo-col.col-md-9{max-width:calc(75% - var(--aioseo-gutter) * .25);flex-basis:calc(75% - var(--aioseo-gutter) * .25)}.aioseo-col.col-md-10{max-width:calc(83.3333333333% - var(--aioseo-gutter) * .1666666667);flex-basis:calc(83.3333333333% - var(--aioseo-gutter) * .1666666667)}.aioseo-col.col-md-11{max-width:calc(91.6666666667% - var(--aioseo-gutter) * .0833333333);flex-basis:calc(91.6666666667% - var(--aioseo-gutter) * .0833333333)}.aioseo-col.col-md-12{max-width:100%;flex-basis:100%}[dir=ltr] .aioseo-col.col-md-offset-0{margin-left:0}[dir=rtl] .aioseo-col.col-md-offset-0{margin-right:0}[dir=ltr] .aioseo-col.col-md-offset-1{margin-left:8.33333333%}[dir=rtl] .aioseo-col.col-md-offset-1{margin-right:8.33333333%}[dir=ltr] .aioseo-col.col-md-offset-2{margin-left:16.66666667%}[dir=rtl] .aioseo-col.col-md-offset-2{margin-right:16.66666667%}[dir=ltr] .aioseo-col.col-md-offset-24{margin-left:20%}[dir=rtl] .aioseo-col.col-md-offset-24{margin-right:20%}[dir=ltr] .aioseo-col.col-md-offset-3{margin-left:25%}[dir=rtl] .aioseo-col.col-md-offset-3{margin-right:25%}[dir=ltr] .aioseo-col.col-md-offset-4{margin-left:33.33333333%}[dir=rtl] .aioseo-col.col-md-offset-4{margin-right:33.33333333%}[dir=ltr] .aioseo-col.col-md-offset-5{margin-left:41.66666667%}[dir=rtl] .aioseo-col.col-md-offset-5{margin-right:41.66666667%}[dir=ltr] .aioseo-col.col-md-offset-6{margin-left:50%}[dir=rtl] .aioseo-col.col-md-offset-6{margin-right:50%}[dir=ltr] .aioseo-col.col-md-offset-7{margin-left:58.33333333%}[dir=rtl] .aioseo-col.col-md-offset-7{margin-right:58.33333333%}[dir=ltr] .aioseo-col.col-md-offset-8{margin-left:66.66666667%}[dir=rtl] .aioseo-col.col-md-offset-8{margin-right:66.66666667%}[dir=ltr] .aioseo-col.col-md-offset-9{margin-left:75%}[dir=rtl] .aioseo-col.col-md-offset-9{margin-right:75%}[dir=ltr] .aioseo-col.col-md-offset-10{margin-left:83.33333333%}[dir=rtl] .aioseo-col.col-md-offset-10{margin-right:83.33333333%}[dir=ltr] .aioseo-col.col-md-offset-11{margin-left:91.66666667%}[dir=rtl] .aioseo-col.col-md-offset-11{margin-right:91.66666667%}.aioseo-col.first-md{order:-1}.aioseo-col.last-md{order:1}.aioseo-col.text-md-left{justify-content:flex-start}[dir=ltr] .aioseo-col.text-md-left{text-align:left!important}[dir=rtl] .aioseo-col.text-md-left{text-align:right!important}.aioseo-col.text-md-center{text-align:center!important;justify-content:center}.aioseo-col.text-md-right{justify-content:flex-end}[dir=ltr] .aioseo-col.text-md-right{text-align:right!important}[dir=rtl] .aioseo-col.text-md-right{text-align:left!important}}@media only screen and (min-width: 1042px){.aioseo-col.col-lg,.aioseo-col.col-lg-1,.aioseo-col.col-lg-2,.aioseo-col.col-lg-3,.aioseo-col.col-lg-4,.aioseo-col.col-lg-5,.aioseo-col.col-lg-6,.aioseo-col.col-lg-7,.aioseo-col.col-lg-8,.aioseo-col.col-lg-9,.aioseo-col.col-lg-10,.aioseo-col.col-lg-11,.aioseo-col.col-lg-12,.aioseo-col.col-lg-offset-0,.aioseo-col.col-lg-offset-1,.aioseo-col.col-lg-offset-2,.aioseo-col.col-lg-offset-3,.aioseo-col.col-lg-offset-4,.aioseo-col.col-lg-offset-5,.aioseo-col.col-lg-offset-6,.aioseo-col.col-lg-offset-7,.aioseo-col.col-lg-offset-8,.aioseo-col.col-lg-offset-9,.aioseo-col.col-lg-offset-10,.aioseo-col.col-lg-offset-11,.aioseo-col.col-lg-offset-12{box-sizing:border-box;flex:0 0 auto}.aioseo-col.col-lg{flex-grow:1;flex-basis:0;max-width:100%}.aioseo-col.col-lg-1{max-width:calc(8.3333333333% - var(--aioseo-gutter) * .9166666667);flex-basis:calc(8.3333333333% - var(--aioseo-gutter) * .9166666667)}.aioseo-col.col-lg-2{max-width:calc(16.6666666667% - var(--aioseo-gutter) * .8333333333);flex-basis:calc(16.6666666667% - var(--aioseo-gutter) * .8333333333)}.aioseo-col.col-lg-3{max-width:calc(25% - var(--aioseo-gutter) * .75);flex-basis:calc(25% - var(--aioseo-gutter) * .75)}.aioseo-col.col-lg-4{max-width:calc(33.3333333333% - var(--aioseo-gutter) * .6666666667);flex-basis:calc(33.3333333333% - var(--aioseo-gutter) * .6666666667)}.aioseo-col.col-lg-5{max-width:calc(41.6666666667% - var(--aioseo-gutter) * .5833333333);flex-basis:calc(41.6666666667% - var(--aioseo-gutter) * .5833333333)}.aioseo-col.col-lg-6{max-width:calc(50% - var(--aioseo-gutter) * .5);flex-basis:calc(50% - var(--aioseo-gutter) * .5)}.aioseo-col.col-lg-7{max-width:calc(58.3333333333% - var(--aioseo-gutter) * .4166666667);flex-basis:calc(58.3333333333% - var(--aioseo-gutter) * .4166666667)}.aioseo-col.col-lg-8{max-width:calc(66.6666666667% - var(--aioseo-gutter) * .3333333333);flex-basis:calc(66.6666666667% - var(--aioseo-gutter) * .3333333333)}.aioseo-col.col-lg-9{max-width:calc(75% - var(--aioseo-gutter) * .25);flex-basis:calc(75% - var(--aioseo-gutter) * .25)}.aioseo-col.col-lg-10{max-width:calc(83.3333333333% - var(--aioseo-gutter) * .1666666667);flex-basis:calc(83.3333333333% - var(--aioseo-gutter) * .1666666667)}.aioseo-col.col-lg-11{max-width:calc(91.6666666667% - var(--aioseo-gutter) * .0833333333);flex-basis:calc(91.6666666667% - var(--aioseo-gutter) * .0833333333)}.aioseo-col.col-lg-12{max-width:100%;flex-basis:100%}[dir=ltr] .aioseo-col.col-lg-offset-0{margin-left:0}[dir=rtl] .aioseo-col.col-lg-offset-0{margin-right:0}[dir=ltr] .aioseo-col.col-lg-offset-1{margin-left:8.33333333%}[dir=rtl] .aioseo-col.col-lg-offset-1{margin-right:8.33333333%}[dir=ltr] .aioseo-col.col-lg-offset-2{margin-left:16.66666667%}[dir=rtl] .aioseo-col.col-lg-offset-2{margin-right:16.66666667%}[dir=ltr] .aioseo-col.col-lg-offset-3{margin-left:25%}[dir=rtl] .aioseo-col.col-lg-offset-3{margin-right:25%}[dir=ltr] .aioseo-col.col-lg-offset-4{margin-left:33.33333333%}[dir=rtl] .aioseo-col.col-lg-offset-4{margin-right:33.33333333%}[dir=ltr] .aioseo-col.col-lg-offset-5{margin-left:41.66666667%}[dir=rtl] .aioseo-col.col-lg-offset-5{margin-right:41.66666667%}[dir=ltr] .aioseo-col.col-lg-offset-6{margin-left:50%}[dir=rtl] .aioseo-col.col-lg-offset-6{margin-right:50%}[dir=ltr] .aioseo-col.col-lg-offset-7{margin-left:58.33333333%}[dir=rtl] .aioseo-col.col-lg-offset-7{margin-right:58.33333333%}[dir=ltr] .aioseo-col.col-lg-offset-8{margin-left:66.66666667%}[dir=rtl] .aioseo-col.col-lg-offset-8{margin-right:66.66666667%}[dir=ltr] .aioseo-col.col-lg-offset-9{margin-left:75%}[dir=rtl] .aioseo-col.col-lg-offset-9{margin-right:75%}[dir=ltr] .aioseo-col.col-lg-offset-10{margin-left:83.33333333%}[dir=rtl] .aioseo-col.col-lg-offset-10{margin-right:83.33333333%}[dir=ltr] .aioseo-col.col-lg-offset-11{margin-left:91.66666667%}[dir=rtl] .aioseo-col.col-lg-offset-11{margin-right:91.66666667%}.aioseo-col.first-lg{order:-1}.aioseo-col.last-lg{order:1}.aioseo-col.text-lg-left{justify-content:flex-start}[dir=ltr] .aioseo-col.text-lg-left{text-align:left!important}[dir=rtl] .aioseo-col.text-lg-left{text-align:right!important}.aioseo-col.text-lg-center{text-align:center!important;justify-content:center}.aioseo-col.text-lg-right{justify-content:flex-end}[dir=ltr] .aioseo-col.text-lg-right{text-align:right!important}[dir=rtl] .aioseo-col.text-lg-right{text-align:left!important}}@media only screen and (min-width: 1140px){.aioseo-col.col-xl,.aioseo-col.col-xl-1,.aioseo-col.col-xl-2,.aioseo-col.col-xl-3,.aioseo-col.col-xl-4,.aioseo-col.col-xl-5,.aioseo-col.col-xl-6,.aioseo-col.col-xl-7,.aioseo-col.col-xl-8,.aioseo-col.col-xl-9,.aioseo-col.col-xl-10,.aioseo-col.col-xl-11,.aioseo-col.col-xl-12,.aioseo-col.col-xl-offset-0,.aioseo-col.col-xl-offset-1,.aioseo-col.col-xl-offset-2,.aioseo-col.col-xl-offset-3,.aioseo-col.col-xl-offset-4,.aioseo-col.col-xl-offset-5,.aioseo-col.col-xl-offset-6,.aioseo-col.col-xl-offset-7,.aioseo-col.col-xl-offset-8,.aioseo-col.col-xl-offset-9,.aioseo-col.col-xl-offset-10,.aioseo-col.col-xl-offset-11,.aioseo-col.col-xl-offset-12{box-sizing:border-box;flex:0 0 auto}.aioseo-col.col-xl{flex-grow:1;flex-basis:0;max-width:100%}.aioseo-col.col-xl-1{max-width:calc(8.3333333333% - var(--aioseo-gutter) * .9166666667);flex-basis:calc(8.3333333333% - var(--aioseo-gutter) * .9166666667)}.aioseo-col.col-xl-2{max-width:calc(16.6666666667% - var(--aioseo-gutter) * .8333333333);flex-basis:calc(16.6666666667% - var(--aioseo-gutter) * .8333333333)}.aioseo-col.col-xl-3{max-width:calc(25% - var(--aioseo-gutter) * .75);flex-basis:calc(25% - var(--aioseo-gutter) * .75)}.aioseo-col.col-xl-4{max-width:calc(33.3333333333% - var(--aioseo-gutter) * .6666666667);flex-basis:calc(33.3333333333% - var(--aioseo-gutter) * .6666666667)}.aioseo-col.col-xl-5{max-width:calc(41.6666666667% - var(--aioseo-gutter) * .5833333333);flex-basis:calc(41.6666666667% - var(--aioseo-gutter) * .5833333333)}.aioseo-col.col-xl-6{max-width:calc(50% - var(--aioseo-gutter) * .5);flex-basis:calc(50% - var(--aioseo-gutter) * .5)}.aioseo-col.col-xl-7{max-width:calc(58.3333333333% - var(--aioseo-gutter) * .4166666667);flex-basis:calc(58.3333333333% - var(--aioseo-gutter) * .4166666667)}.aioseo-col.col-xl-8{max-width:calc(66.6666666667% - var(--aioseo-gutter) * .3333333333);flex-basis:calc(66.6666666667% - var(--aioseo-gutter) * .3333333333)}.aioseo-col.col-xl-9{max-width:calc(75% - var(--aioseo-gutter) * .25);flex-basis:calc(75% - var(--aioseo-gutter) * .25)}.aioseo-col.col-xl-10{max-width:calc(83.3333333333% - var(--aioseo-gutter) * .1666666667);flex-basis:calc(83.3333333333% - var(--aioseo-gutter) * .1666666667)}.aioseo-col.col-xl-11{max-width:calc(91.6666666667% - var(--aioseo-gutter) * .0833333333);flex-basis:calc(91.6666666667% - var(--aioseo-gutter) * .0833333333)}.aioseo-col.col-xl-12{max-width:100%;flex-basis:100%}[dir=ltr] .aioseo-col.col-xl-offset-0{margin-left:0}[dir=rtl] .aioseo-col.col-xl-offset-0{margin-right:0}[dir=ltr] .aioseo-col.col-xl-offset-1{margin-left:8.33333333%}[dir=rtl] .aioseo-col.col-xl-offset-1{margin-right:8.33333333%}[dir=ltr] .aioseo-col.col-xl-offset-2{margin-left:16.66666667%}[dir=rtl] .aioseo-col.col-xl-offset-2{margin-right:16.66666667%}[dir=ltr] .aioseo-col.col-xl-offset-3{margin-left:25%}[dir=rtl] .aioseo-col.col-xl-offset-3{margin-right:25%}[dir=ltr] .aioseo-col.col-xl-offset-4{margin-left:33.33333333%}[dir=rtl] .aioseo-col.col-xl-offset-4{margin-right:33.33333333%}[dir=ltr] .aioseo-col.col-xl-offset-5{margin-left:41.66666667%}[dir=rtl] .aioseo-col.col-xl-offset-5{margin-right:41.66666667%}[dir=ltr] .aioseo-col.col-xl-offset-6{margin-left:50%}[dir=rtl] .aioseo-col.col-xl-offset-6{margin-right:50%}[dir=ltr] .aioseo-col.col-xl-offset-7{margin-left:58.33333333%}[dir=rtl] .aioseo-col.col-xl-offset-7{margin-right:58.33333333%}[dir=ltr] .aioseo-col.col-xl-offset-8{margin-left:66.66666667%}[dir=rtl] .aioseo-col.col-xl-offset-8{margin-right:66.66666667%}[dir=ltr] .aioseo-col.col-xl-offset-9{margin-left:75%}[dir=rtl] .aioseo-col.col-xl-offset-9{margin-right:75%}[dir=ltr] .aioseo-col.col-xl-offset-10{margin-left:83.33333333%}[dir=rtl] .aioseo-col.col-xl-offset-10{margin-right:83.33333333%}[dir=ltr] .aioseo-col.col-xl-offset-11{margin-left:91.66666667%}[dir=rtl] .aioseo-col.col-xl-offset-11{margin-right:91.66666667%}.aioseo-col.first-xl{order:-1}.aioseo-col.last-xl{order:1}.aioseo-col.text-xl-left{justify-content:flex-start}[dir=ltr] .aioseo-col.text-xl-left{text-align:left!important}[dir=rtl] .aioseo-col.text-xl-left{text-align:right!important}.aioseo-col.text-xl-center{text-align:center!important;justify-content:center}.aioseo-col.text-xl-right{justify-content:flex-end}[dir=ltr] .aioseo-col.text-xl-right{text-align:right!important}[dir=rtl] .aioseo-col.text-xl-right{text-align:left!important}}.aioseo-row{box-sizing:border-box;display:flex;flex:0 1 auto;flex-direction:row;flex-wrap:wrap;gap:var(--aioseo-gutter, 8px)}.aioseo-row.reverse{flex-direction:row-reverse}.aioseo-row.start-xs{justify-content:flex-start;text-align:start}.aioseo-row.center-xs{justify-content:center;text-align:center}.aioseo-row.end-xs{justify-content:flex-end;text-align:end}.aioseo-row.top-xs{align-items:flex-start}.aioseo-row.middle-xs{align-items:center}.aioseo-row.bottom-xs{align-items:flex-end}.aioseo-row.around-xs{justify-content:space-around}.aioseo-row.between-xs{justify-content:space-between}@media only screen and (min-width: 783px){.aioseo-row.start-sm{justify-content:flex-start;text-align:start}.aioseo-row.center-sm{justify-content:center;text-align:center}.aioseo-row.end-sm{justify-content:flex-end;text-align:end}.aioseo-row.top-sm{align-items:flex-start}.aioseo-row.middle-sm{align-items:center}.aioseo-row.bottom-sm{align-items:flex-end}.aioseo-row.around-sm{justify-content:space-around}.aioseo-row.between-sm{justify-content:space-between}}@media only screen and (min-width: 912px){.aioseo-row.start-md{justify-content:flex-start;text-align:start}.aioseo-row.center-md{justify-content:center;text-align:center}.aioseo-row.end-md{justify-content:flex-end;text-align:end}.aioseo-row.top-md{align-items:flex-start}.aioseo-row.middle-md{align-items:center}.aioseo-row.bottom-md{align-items:flex-end}.aioseo-row.around-md{justify-content:space-around}.aioseo-row.between-md{justify-content:space-between}}@media only screen and (min-width: 1042px){.aioseo-row.start-lg{justify-content:flex-start;text-align:start}.aioseo-row.center-lg{justify-content:center;text-align:center}.aioseo-row.end-lg{justify-content:flex-end;text-align:end}.aioseo-row.top-lg{align-items:flex-start}.aioseo-row.middle-lg{align-items:center}.aioseo-row.bottom-lg{align-items:flex-end}.aioseo-row.around-lg{justify-content:space-around}.aioseo-row.between-lg{justify-content:space-between}} all-in-one-seo-pack/dist/Lite/assets/css/Row.BKNJ32Yi.css000064400000000355151222736000016605 0ustar00.aioseo-table-column{display:flex;flex-direction:column;flex:1;padding:5px;justify-content:center;line-height:22px}.aioseo-table-row{display:flex;flex-direction:row;flex-wrap:wrap;width:100%}.aioseo-table-row.header-row{font-weight:600} all-in-one-seo-pack/dist/Lite/assets/css/RssContent.OMnzYKmw.css000064400000000613151222736000020435 0ustar00.aioseo-rss-content svg.aioseo-external{width:14px;height:14px}[dir=ltr] .aioseo-rss-content svg.aioseo-external{margin-right:10px}[dir=rtl] .aioseo-rss-content svg.aioseo-external{margin-left:10px}.aioseo-rss-content .no-access{margin-bottom:30px}.aioseo-rss-content .aioseo-alert{margin-top:10px}.aioseo-rss-content .aioseo-rss-content-advanced .aioseo-settings-row .aioseo-col{padding-top:0} all-in-one-seo-pack/dist/Lite/assets/css/RssSitemap.CLjtAcnp.css000064400000002074151222736000020373 0ustar00.aioseo-rss-sitemap .aioseo-links-per-site{max-width:110px}.aioseo-rss-sitemap .aioseo-sitemap-preview{display:flex;align-items:center;margin-bottom:10px}[dir=ltr] .aioseo-rss-sitemap .aioseo-sitemap-preview{margin-right:10px}[dir=rtl] .aioseo-rss-sitemap .aioseo-sitemap-preview{margin-left:10px}.aioseo-rss-sitemap .aioseo-sitemap-preview .aioseo-select{max-width:180px}[dir=ltr] .aioseo-rss-sitemap .aioseo-sitemap-preview .aioseo-select{margin-right:10px}[dir=rtl] .aioseo-rss-sitemap .aioseo-sitemap-preview .aioseo-select{margin-left:10px}.aioseo-rss-sitemap .aioseo-sitemap-preview svg.aioseo-external{width:14px;height:14px}[dir=ltr] .aioseo-rss-sitemap .aioseo-sitemap-preview svg.aioseo-external{margin-right:10px}[dir=rtl] .aioseo-rss-sitemap .aioseo-sitemap-preview svg.aioseo-external{margin-left:10px}[dir=ltr] .aioseo-rss-sitemap .ping>div:first-child{margin-right:40px}[dir=rtl] .aioseo-rss-sitemap .ping>div:first-child{margin-left:40px}.aioseo-rss-sitemap .aioseo-priority-score{max-width:350px}.aioseo-rss-sitemap .aioseo-priority-score .header-row{font-size:14px} all-in-one-seo-pack/dist/Lite/assets/css/Schema.DoPK_XlI.css000064400000001220151222736000017404 0ustar00.aioseo-sa-ct-custom-fields.lite{min-height:370px}@media (max-width: 598px){.aioseo-sa-ct-custom-fields.lite .aioseo-cta.floating{top:0}}@media (max-width: 420px){.aioseo-sa-ct-custom-fields.lite{min-height:450px}}.aioseo-app .aioseo-sa-ct-schema-lite{min-height:580px}@media (max-width: 598px){.aioseo-app .aioseo-sa-ct-schema-lite{min-height:640px}.aioseo-app .aioseo-sa-ct-schema-lite .aioseo-cta.floating{top:0}}@media (max-width: 420px){.aioseo-app .aioseo-sa-ct-schema-lite{min-height:770px}}.aioseo-app .aioseo-sa-ct-schema-lite .aioseo-cta .header-text{width:100%;max-width:600px}.aioseo-app .aioseo-sa-ct-schema-lite .schema-type{max-width:250px} all-in-one-seo-pack/dist/Lite/assets/css/ScoreButton.CGfMnin4.css000064400000002665151222736000020465 0ustar00.aioseo-score-settings{display:flex;align-items:center;padding-bottom:14px}[dir=ltr] .aioseo-score-settings svg{margin-right:7px}[dir=rtl] .aioseo-score-settings svg{margin-left:7px}[dir=ltr] .aioseo-score-settings span{margin-right:12px}[dir=rtl] .aioseo-score-settings span{margin-left:12px}.aioseo-score-button{display:inline-flex;flex-direction:row;justify-content:center;align-items:center;gap:4px;padding:5px 8px;font-size:14px;font-weight:700;line-height:125%;color:#a1a1a1;border:1px solid #a1a1a1;border-radius:2px}.aioseo-score-button svg{height:16px;vertical-align:middle}.aioseo-score-button.score-red,.aioseo-score-button.score-none{border-color:#df2a4a;color:#df2a4a!important}.aioseo-score-button.score-orange{border-color:#f18200;color:#f18200!important}.aioseo-score-button.score-green{border-color:#00aa63;color:#00aa63!important}.aioseo-score-button--active.score-red,.aioseo-score-button--active.score-none{background:#df2a4a!important;color:#fff!important;border-color:#fff}.aioseo-score-button--active.score-orange{background:#f18200!important;color:#fff!important;border-color:#fff}.aioseo-score-button--active.score-green{background:#00aa63!important;color:#fff!important;border-color:#fff}.aioseo-score-button.classic-editor{background:#fff!important;display:inline-block!important;height:auto!important}[dir=ltr] .aioseo-score-button.classic-editor span{margin-right:0}[dir=rtl] .aioseo-score-button.classic-editor span{margin-left:0} all-in-one-seo-pack/dist/Lite/assets/css/Score.D50c_Vva.css000064400000002455151222736000017230 0ustar00.analyze-main{display:flex;flex-direction:column;align-items:center;justify-self:center;font-size:16px}.analyze-main .analyze-header{font-size:24px;line-height:30px;font-weight:600;margin-bottom:12px}.analyze-main .analyze-description{text-align:center;font-size:16px;line-height:24px}.analyze-main .analyze-input{margin-top:12px;display:flex;align-items:center;gap:8px}.analyze-main .analyze-input .aioseo-input{min-width:430px}[dir=ltr] .analyze-main .analyze-input .aioseo-input{margin-right:10px}[dir=rtl] .analyze-main .analyze-input .aioseo-input{margin-left:10px}.analyze-progress{min-width:548px;margin-top:30px;background:#dcdde1;justify-content:flex-start;border-radius:100px;align-items:center;position:relative;padding:0;display:flex;height:10px;width:500px}.analyze-progress .analyze-progress-value{animation:analyze-load 2s normal forwards;border-radius:100px;background:#005ae0;height:10px;width:0}@keyframes analyze-load{0%{width:0}to{width:100%}}.aioseo-analyze-score{border:1px solid #00AA63;border-radius:3px;color:#00aa63;font-size:14px;padding:0 8px;height:26px;line-height:26px}[dir=ltr] .aioseo-analyze-score{margin-right:12px}[dir=rtl] .aioseo-analyze-score{margin-left:12px}.aioseo-analyze-score.red{color:#df2a4a;border-color:#df2a4a}.aioseo-analyze-score.orange{color:#f18200;border-color:#f18200} all-in-one-seo-pack/dist/Lite/assets/css/ScrollAndHighlight.SHsYcZL5.css000064400000001462151222736000021700 0ustar00.aioseo-api-bar{display:flex;align-items:center;height:40px;background-color:#df2a4a;justify-content:center;color:#fff;font-size:13px}[dir=ltr] .aioseo-api-bar{padding:0 14px 0 40px}[dir=rtl] .aioseo-api-bar{padding:0 40px 0 14px}.aioseo-api-bar .upgrade-text{display:flex;align-items:center;flex:1;justify-content:center}.aioseo-api-bar strong{font-weight:600}.aioseo-api-bar svg.aioseo-logo-gear{width:20px;height:20px;min-width:20px}[dir=ltr] .aioseo-api-bar svg.aioseo-logo-gear{margin-right:14px}[dir=rtl] .aioseo-api-bar svg.aioseo-logo-gear{margin-left:14px}.aioseo-api-bar svg.aioseo-close{cursor:pointer;width:12px;height:12px}.aioseo-api-bar a{color:#fff;text-decoration:underline}.aioseo-api-bar a:hover{text-decoration:none}@media screen and (max-width: 782px){.aioseo-api-bar{padding:0 10px;height:60px}} all-in-one-seo-pack/dist/Lite/assets/css/SearchAppearance.BAbT96rl.css000064400000002256151222736000021317 0ustar00.aioseo-wizard-search-appearance{color:#141b38}.aioseo-wizard-search-appearance .aioseo-settings-row .aioseo-radio-toggle{margin-top:8px}.aioseo-wizard-search-appearance .aioseo-settings-row .edit-site-info-activator{margin-top:8px;display:flex;align-items:center;justify-content:center;position:relative}.aioseo-wizard-search-appearance .aioseo-settings-row .edit-site-info-activator .aioseo-google-search-preview{border:1px solid #E8E8EB;flex:1;padding:16px}.aioseo-wizard-search-appearance .aioseo-settings-row .edit-site-info-activator .action{position:absolute;top:1;left:1;right:1;bottom:1}.aioseo-wizard-search-appearance .aioseo-settings-row .edit-site-info-activator .background-fade{position:absolute;top:0;left:0;right:0;bottom:0;border:1px solid #E8E8EB;cursor:pointer}.aioseo-wizard-search-appearance .aioseo-settings-row .edit-site-info-activator.hover .background-fade{background:#fff;opacity:.7}.aioseo-wizard-search-appearance .aioseo-settings-row.enable-sitemaps .aioseo-checkbox{font-weight:600}.aioseo-wizard-search-appearance .aioseo-settings-row.post-types .aioseo-toggle{color:#141b38;font-weight:600}.aioseo-wizard-search-appearance .go-back a{color:#434960;font-size:14px} all-in-one-seo-pack/dist/Lite/assets/css/search-statistics.BLeWJjZr.css000064400000000735151222736000021673 0ustar00.aioseo-fetching-data{text-align:center}.aioseo-fetching-data .modal-wrapper .modal-container{max-width:400px}.aioseo-fetching-data .modal-wrapper .modal-container .modal-body{padding:20px}.aioseo-fetching-data .aioseo-circle-information{color:#1a82ea}.aioseo-fetching-data-title{font-size:24px;font-weight:600;margin:20px 0 10px}.aioseo-fetching-data-description{font-size:16px;margin-bottom:20px}.aioseo-fetching-data .aioseo-loading-spinner{position:relative;margin:0 auto} all-in-one-seo-pack/dist/Lite/assets/css/SeoAuditChecklist.DhR8jiXc.css000064400000007125151222736000021577 0ustar00.aioseo-site-score-analyze{position:relative;display:flex;align-items:center;justify-content:center;flex:1}.aioseo-site-score-analyze .analyze-errors{text-align:center;margin-bottom:1em}.aioseo-site-score-analyze .aioseo-seo-site-score-score{position:relative;width:100%;max-width:160px}[dir=ltr] .aioseo-site-score-analyze .aioseo-seo-site-score-score{margin-right:32px}[dir=rtl] .aioseo-site-score-analyze .aioseo-seo-site-score-score{margin-left:32px}.aioseo-site-score-analyze .aioseo-seo-site-score-score svg{width:100%;height:auto}.aioseo-site-score-analyze .aioseo-seo-site-score-score .aioseo-site-score{display:flex}.aioseo-site-score-analyze .aioseo-seo-site-score-score .aioseo-score-amount .score{font-size:40px;line-height:1.2}.aioseo-site-score-analyze .aioseo-seo-site-score-score .aioseo-score-amount .total{font-size:14px}.aioseo-site-score-analyze .aioseo-seo-site-score-score .score-description{font-size:13px}.aioseo-site-score-analyze .aioseo-seo-site-score-description h2{font-size:24px;line-height:30px;margin-bottom:12px}.aioseo-site-score-analyze .aioseo-seo-site-score-description div[class]{margin-top:12px}.aioseo-site-score-analyze .aioseo-seo-site-score-description svg.aioseo-book{width:20px;height:20px;color:#005ae0}[dir=ltr] .aioseo-site-score-analyze .aioseo-seo-site-score-description svg.aioseo-book{margin:0 10px 0 0}[dir=rtl] .aioseo-site-score-analyze .aioseo-seo-site-score-description svg.aioseo-book{margin:0 0 0 10px}.aioseo-site-score-analyze .aioseo-seo-site-score-description .links{margin-top:30px;font-size:14px;font-weight:600}[dir=ltr] .aioseo-site-score-analyze .aioseo-seo-site-score-description .links .no-underline{padding-left:5px}[dir=rtl] .aioseo-site-score-analyze .aioseo-seo-site-score-description .links .no-underline{padding-right:5px}.aioseo-seo-site-score .aioseo-blur{display:flex;align-items:center}.aioseo-seo-site-score .aioseo-seo-site-score-cta{position:absolute;top:50%;background-color:#fff;padding:20px;border:1px solid #E8E8EB;box-shadow:0 2px 10px #005ae033;color:#141b38;font-size:16px;font-weight:600;width:82%;max-width:500px;text-align:center}[dir=ltr] .aioseo-seo-site-score .aioseo-seo-site-score-cta{left:50%;transform:translate(-50%) translateY(-50%)}[dir=rtl] .aioseo-seo-site-score .aioseo-seo-site-score-cta{right:50%;transform:translate(50%) translateY(-50%)}.aioseo-seo-audit-checklist .round{position:relative;border-radius:50%;width:24px;min-width:24px;max-width:24px;height:24px;line-height:24px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;color:#fff;font-weight:600}[dir=ltr] .aioseo-seo-audit-checklist .round{margin-right:10px}[dir=rtl] .aioseo-seo-audit-checklist .round{margin-left:10px}.aioseo-seo-audit-checklist .round.red{background-color:#df2a4a}.aioseo-seo-audit-checklist .round.blue{background-color:#005ae0}.aioseo-seo-audit-checklist .round.orange{background-color:#f18200}.aioseo-seo-audit-checklist .round.green{background-color:#00aa63}.aioseo-seo-audit-checklist .round.black{background-color:#434960}.aioseo-seo-audit-checklist .aioseo-card .header-title{display:inline-flex;flex:1}[dir=ltr] .aioseo-seo-audit-checklist .aioseo-card .header-extra .refresh-results{margin-right:10px}[dir=rtl] .aioseo-seo-audit-checklist .aioseo-card .header-extra .refresh-results{margin-left:10px}.aioseo-seo-audit-checklist .aioseo-card .header-extra .refresh-results .aioseo-refresh{width:14px;height:14px}[dir=ltr] .aioseo-seo-audit-checklist .aioseo-card .header-extra .refresh-results .aioseo-refresh{margin-right:10px}[dir=rtl] .aioseo-seo-audit-checklist .aioseo-card .header-extra .refresh-results .aioseo-refresh{margin-left:10px} all-in-one-seo-pack/dist/Lite/assets/css/seo-preview.CRZ7aeiM.css000064400000040255151222736000020434 0ustar00.preview-wrapper[data-v-8a1fdef2]{margin:20px}.preview-wrapper>*[data-v-8a1fdef2]{padding:0}.google-serp-snippet-placeholder__main[data-v-66375cd8]{column-gap:10px;display:grid;grid-template-columns:28px auto;grid-template-rows:13px 9px 19px 8px 8px;grid-template-areas:"favicon hostname" "favicon url" "title title" "desc1 desc1" "desc2 desc2";row-gap:6px}.google-serp-snippet-placeholder__main>div[data-v-66375cd8]{border-radius:2px}.google-serp-snippet-placeholder__main>div[data-v-66375cd8]:nth-child(1){background-color:#dcdde1;border-radius:50%;grid-area:favicon}.google-serp-snippet-placeholder__main>div[data-v-66375cd8]:nth-child(2){background-color:#dcdde1;grid-area:hostname;max-width:77%}.google-serp-snippet-placeholder__main>div[data-v-66375cd8]:nth-child(3){background-color:#dcdde1;grid-area:url;max-width:87%}.google-serp-snippet-placeholder__main>div[data-v-66375cd8]:nth-child(4){background-color:#d6d4f7;grid-area:title;max-width:82%}.google-serp-snippet-placeholder__main>div[data-v-66375cd8]:nth-child(5){background-color:#dcdde1;grid-area:desc1}.google-serp-snippet-placeholder__main>div[data-v-66375cd8]:nth-child(6){background-color:#dcdde1;grid-area:desc2;max-width:92%}.google-serp-wireframe[data-v-d89a1214]{--px: 10px;--px-desktop: 20px;background-color:#fff;border-radius:8px;overflow:hidden;position:relative}.google-serp-wireframe-wrapper--mobile .google-serp-wireframe[data-v-d89a1214]{border-radius:40px 40px 0 0;margin:0 auto;max-width:260px;width:100%}.google-serp-wireframe-wrapper--mobile .google-serp-wireframe .aioseo-mobile-device-frame[data-v-d89a1214]{color:#141b38;display:block;object-fit:cover;position:absolute;width:100%}[dir=ltr] .google-serp-wireframe-wrapper--mobile .google-serp-wireframe .aioseo-mobile-device-frame[data-v-d89a1214]{left:0}[dir=rtl] .google-serp-wireframe-wrapper--mobile .google-serp-wireframe .aioseo-mobile-device-frame[data-v-d89a1214]{right:0}.google-serp-wireframe-wrapper--mobile .google-serp-wireframe__overflow-y[data-v-d89a1214]{--mt: 35px;margin:var(--mt) 8px 0;height:calc(485px - var(--mt));overflow-y:auto;position:relative}.google-serp-wireframe-wrapper--mobile .google-serp-wireframe__body[data-v-d89a1214]{flex-wrap:wrap;gap:8px;padding:4px var(--px) 10px}.google-serp-wireframe-wrapper--mobile .google-serp-wireframe__body .svg-logo-google-wrapper[data-v-d89a1214]{order:2}.google-serp-wireframe-wrapper--mobile .google-serp-wireframe__body .svg-search-wrapper[data-v-d89a1214]{max-width:100%;order:4}.google-serp-wireframe-wrapper--mobile .google-serp-wireframe__body .svg-settings-wrapper[data-v-d89a1214]{order:1;visibility:hidden}.google-serp-wireframe-wrapper--mobile .google-serp-wireframe__body .svg-dannie-profile-wrapper[data-v-d89a1214]{height:20px;order:3;width:20px}[dir=ltr] .google-serp-wireframe-wrapper--mobile .google-serp-wireframe__body .svg-dannie-profile-wrapper[data-v-d89a1214]{margin-left:auto}[dir=rtl] .google-serp-wireframe-wrapper--mobile .google-serp-wireframe__body .svg-dannie-profile-wrapper[data-v-d89a1214]{margin-right:auto}.google-serp-wireframe-wrapper--mobile .google-serp-wireframe__search-bar[data-v-d89a1214]{flex-direction:row-reverse;justify-content:flex-end}[dir=ltr] .google-serp-wireframe-wrapper--mobile .google-serp-wireframe__tabs[data-v-d89a1214]{padding:0 0 0 var(--px)}[dir=rtl] .google-serp-wireframe-wrapper--mobile .google-serp-wireframe__tabs[data-v-d89a1214]{padding:0 var(--px) 0 0}.google-serp-wireframe-wrapper--mobile .google-serp-wireframe__snippet[data-v-d89a1214]{padding:20px var(--px) 0}.google-serp-wireframe-wrapper--mobile .google-serp-wireframe__snippet .google-serp-snippet-placeholder[data-v-d89a1214]{border-top:5px solid #E8E8EB;margin:20px calc(var(--px) * -1) 0;padding-top:20px}.google-serp-wireframe-wrapper--mobile .google-serp-wireframe__snippet .google-serp-snippet-placeholder[data-v-d89a1214] .google-serp-snippet-placeholder__main{padding-left:var(--px);padding-right:var(--px)}.google-serp-wireframe-wrapper--mobile .google-serp-wireframe__header[data-v-d89a1214],.google-serp-wireframe-wrapper--mobile .google-serp-wireframe__results[data-v-d89a1214],.google-serp-wireframe-wrapper--mobile .google-serp-wireframe .aioseo-icon-google-search[data-v-d89a1214],.google-serp-wireframe .aioseo-mobile-device-frame[data-v-d89a1214]{display:none}.google-serp-wireframe__overflow-y[data-v-d89a1214]{background-color:#fff;height:435px}.google-serp-wireframe__header[data-v-d89a1214]{align-items:center;background-color:#141b38;display:flex;gap:23px;padding:9px 24px}.google-serp-wireframe__body[data-v-d89a1214]{align-items:center;display:flex;gap:16px;padding:13px var(--px-desktop)}.google-serp-wireframe__body *[data-v-d89a1214]{line-height:normal}.google-serp-wireframe__body .svg-logo-google-wrapper[data-v-d89a1214]{flex:0 1 auto}.google-serp-wireframe__body .svg-search-wrapper[data-v-d89a1214]{flex:1 1 100%;max-width:400px}.google-serp-wireframe__body .svg-settings-wrapper[data-v-d89a1214]{flex:0 1 auto}[dir=ltr] .google-serp-wireframe__body .svg-settings-wrapper[data-v-d89a1214]{margin-left:auto}[dir=rtl] .google-serp-wireframe__body .svg-settings-wrapper[data-v-d89a1214]{margin-right:auto}.google-serp-wireframe__body .svg-settings-wrapper .aioseo-settings[data-v-d89a1214]{color:#8c8f9a}.google-serp-wireframe__body .svg-dannie-profile-wrapper[data-v-d89a1214]{border-radius:50%;border:1px solid #004F9D;flex:0 1 auto;height:24px;overflow:hidden;width:24px}.google-serp-wireframe__body .svg-dannie-profile-wrapper .aioseo-dannie-profile[data-v-d89a1214]{height:100%;width:100%}.google-serp-wireframe__bullets[data-v-d89a1214]{display:flex;flex:0 1 auto;gap:10px}.google-serp-wireframe__bullets div[data-v-d89a1214]{border-radius:50%;height:12px;width:12px}.google-serp-wireframe__bullets div[data-v-d89a1214]:nth-child(1){background-color:#f83c5d}.google-serp-wireframe__bullets div[data-v-d89a1214]:nth-child(2){background-color:#f18200}.google-serp-wireframe__bullets div[data-v-d89a1214]:nth-child(3){background-color:#07c575}.google-serp-wireframe__address-bar[data-v-d89a1214]{align-items:center;background-color:#fff;border-radius:120px;display:flex;flex:1;gap:14px;height:35px;line-height:35px;padding:0 10px}.google-serp-wireframe__address-bar .aioseo-padlock[data-v-d89a1214]{color:#d0d1d7}.google-serp-wireframe__address-bar .placeholder[data-v-d89a1214]{background-color:#d0d1d7;border-radius:140px;height:12px;max-width:230px;width:100%}.google-serp-wireframe__search-bar[data-v-d89a1214]{align-items:center;border-radius:120px;box-shadow:0 2px 8px #403c4333;color:#141b38;display:flex;font-size:12px;gap:8px;height:30px;justify-content:space-between;line-height:30px;padding:0 14px}.google-serp-wireframe__search-bar .aioseo-search[data-v-d89a1214]{color:#4f86ec;min-width:12px}.google-serp-wireframe__tabs[data-v-d89a1214],.google-serp-wireframe__results[data-v-d89a1214]{margin:0 auto;max-width:660px;width:100%}[dir=ltr] .google-serp-wireframe__tabs[data-v-d89a1214],[dir=ltr] .google-serp-wireframe__results[data-v-d89a1214]{padding:0 215px 0 var(--px-desktop)}[dir=rtl] .google-serp-wireframe__tabs[data-v-d89a1214],[dir=rtl] .google-serp-wireframe__results[data-v-d89a1214]{padding:0 var(--px-desktop) 0 215px}.google-serp-wireframe__tabs[data-v-d89a1214]{align-items:center;display:flex;gap:12px;overflow:hidden}.google-serp-wireframe__tabs__tab[data-v-d89a1214]{display:inline-flex;padding:0 1px 5px}.google-serp-wireframe__tabs__tab--all[data-v-d89a1214]{align-items:center;border-bottom:2px solid #3676E0;color:#000;font-size:12px;gap:2px;position:relative}.google-serp-wireframe__tabs__tab--double-placeholder[data-v-d89a1214]:before,.google-serp-wireframe__tabs__tab--double-placeholder[data-v-d89a1214]:after,.google-serp-wireframe__tabs__tab--placeholder[data-v-d89a1214]:before,.google-serp-wireframe__tabs__tab--placeholder[data-v-d89a1214]:after{background-color:#d0d1d7;content:"";display:inline-block;height:12px}.google-serp-wireframe__tabs__tab--double-placeholder[data-v-d89a1214]:after,.google-serp-wireframe__tabs__tab--placeholder[data-v-d89a1214]:after{border-radius:170px;width:24px}.google-serp-wireframe__tabs__tab--double-placeholder[data-v-d89a1214]:before{border-radius:50%;width:12px}[dir=ltr] .google-serp-wireframe__tabs__tab--double-placeholder[data-v-d89a1214]:before{margin-right:3px}[dir=rtl] .google-serp-wireframe__tabs__tab--double-placeholder[data-v-d89a1214]:before{margin-left:3px}[dir=ltr] .google-serp-wireframe__tabs__tab--placeholder[data-v-d89a1214]{margin-left:auto}[dir=rtl] .google-serp-wireframe__tabs__tab--placeholder[data-v-d89a1214]{margin-right:auto}.google-serp-wireframe__results[data-v-d89a1214]{color:#8c8f9a;font-size:12px;margin-top:12px}.google-serp-wireframe__snippet[data-v-d89a1214]{margin:0 auto;max-width:660px;padding:20px var(--px-desktop) 0;width:100%}.google-serp-wireframe__snippet .google-serp-snippet-placeholder[data-v-d89a1214]{margin-top:20px}.google-serp-wireframe__divider[data-v-d89a1214]{border-top:1px solid #DCDDE1}.preview-wrapper .google-serp-wireframe-wrapper[data-v-84b8396a]{margin:20px}.preview-wrapper .google-serp-wireframe-wrapper--mobile[data-v-84b8396a]{margin:0 20px}.aioseo-seo-preview-standalone-view-meta-tags dl{margin:0}[dir=ltr] .aioseo-seo-preview-standalone-view-meta-tags dl{padding:0 0 0 10px}[dir=rtl] .aioseo-seo-preview-standalone-view-meta-tags dl{padding:0 10px 0 0}.aioseo-seo-preview-standalone-view-meta-tags dl dt,.aioseo-seo-preview-standalone-view-meta-tags dl dd{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;margin:0;padding:0}.aioseo-seo-preview-standalone-view-meta-tags dl dt{color:#141b38;font-size:14px;font-weight:700}.aioseo-seo-preview-standalone-view-meta-tags dl dt+dd{margin-top:4px}[dir=ltr] .aioseo-seo-preview-standalone-view-meta-tags dl dt+dd{padding-left:10px}[dir=rtl] .aioseo-seo-preview-standalone-view-meta-tags dl dt+dd{padding-right:10px}.aioseo-seo-preview-standalone-view-meta-tags dl dd{color:#434960;font-size:13px;font-weight:400}.aioseo-seo-preview-standalone-view-meta-tags dl dd+dt{margin-top:8px}.aioseo-seo-preview-standalone-view-meta-tags dl dd :deep(a){border-bottom:1px dotted #005AE0;color:#005ae0;text-decoration:none}.aioseo-seo-preview-standalone-view-seo-inspector>div[data-v-4b5b6f85]{display:flex;margin:0 -20px}.aioseo-seo-preview-standalone-view-seo-inspector dl[data-v-4b5b6f85]{margin:0;padding:0}.aioseo-seo-preview-standalone-view-seo-inspector dl dt[data-v-4b5b6f85],.aioseo-seo-preview-standalone-view-seo-inspector dl dd[data-v-4b5b6f85]{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;margin:0;padding:0}.aioseo-seo-preview-standalone-view-seo-inspector dl dt[data-v-4b5b6f85]{color:#141b38;font-size:16px;font-weight:700}.aioseo-seo-preview-standalone-view-seo-inspector dl dt+dd[data-v-4b5b6f85]{margin-top:8px}.aioseo-seo-preview-standalone-view-seo-inspector dl dd[data-v-4b5b6f85]{color:#434960;font-size:14px;font-weight:400;overflow-wrap:break-word;word-break:break-word}.aioseo-seo-preview-standalone-view-seo-inspector dl dd+dt[data-v-4b5b6f85]{margin-top:20px}.aioseo-seo-preview-standalone-view-seo-inspector .check[data-v-4b5b6f85]{align-items:center;display:flex;flex-wrap:nowrap;gap:3px}.aioseo-seo-preview-standalone-view-seo-inspector .check+.check[data-v-4b5b6f85]{margin-top:10px}.aioseo-seo-preview-standalone-view-seo-inspector .check__icon[data-v-4b5b6f85]{flex:0 1 20px;min-width:20px}.aioseo-seo-preview-standalone-view-seo-inspector .check__icon.red[data-v-4b5b6f85]{color:#df2a4a}.aioseo-seo-preview-standalone-view-seo-inspector .check__icon.orange[data-v-4b5b6f85]{color:#f18200}.aioseo-seo-preview-standalone-view-seo-inspector .check__icon.green[data-v-4b5b6f85]{color:#00aa63}.aioseo-seo-preview-standalone-view-seo-inspector .check__title[data-v-4b5b6f85]{font-weight:700}.aioseo-seo-preview-standalone-view-seo-inspector .first-half[data-v-4b5b6f85],.aioseo-seo-preview-standalone-view-seo-inspector .second-half[data-v-4b5b6f85]{padding:0 20px;position:relative}.aioseo-seo-preview-standalone-view-seo-inspector .first-half[data-v-4b5b6f85]{flex:0 1 auto;min-width:40%;width:100%}.aioseo-seo-preview-standalone-view-seo-inspector .first-half+.second-half[data-v-4b5b6f85]:before{background-color:#dcdde1;content:"";height:100%;position:absolute;top:0;width:1px}[dir=ltr] .aioseo-seo-preview-standalone-view-seo-inspector .first-half+.second-half[data-v-4b5b6f85]:before{left:0}[dir=rtl] .aioseo-seo-preview-standalone-view-seo-inspector .first-half+.second-half[data-v-4b5b6f85]:before{right:0}.aioseo-seo-preview-standalone-view-seo-inspector .second-half[data-v-4b5b6f85]{flex:1 1 60%;min-width:60%;width:100%}.aioseo-seo-preview-standalone-view-seo-inspector .no-keyphrase-found[data-v-4b5b6f85]{align-items:center;color:#f18200;display:flex;gap:2px}.aioseo-seo-preview-standalone-view-seo-inspector .aioseo-alert[data-v-4b5b6f85]{margin-top:30px}.aioseo-seo-preview-standalone-view-seo-inspector .aioseo-alert[data-v-4b5b6f85] a{color:#005ae0;text-decoration:none}.preview-wrapper[data-v-66b08051]{margin:20px}.preview-wrapper>*[data-v-66b08051]{padding:0}.aioseo-seo-preview-standalone{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:normal}.aioseo-seo-preview-standalone *{box-sizing:border-box;letter-spacing:normal}.aioseo-seo-preview-standalone .text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aioseo-seo-preview-standalone .modal-mask,.aioseo-seo-preview-standalone .modal-wrapper{z-index:100000}.aioseo-seo-preview-standalone .modal-wrapper .modal-container{display:flex;flex-direction:column;height:720px}.aioseo-seo-preview-standalone .modal-wrapper .modal-container .modal-header{flex:0 0 60px}[dir=ltr] .aioseo-seo-preview-standalone .modal-wrapper .modal-container .modal-header{padding-left:20px}[dir=rtl] .aioseo-seo-preview-standalone .modal-wrapper .modal-container .modal-header{padding-right:20px}.aioseo-seo-preview-standalone .modal-wrapper .modal-container .modal-header .aioseo-close{color:#141b38;min-height:14px;min-width:14px}.aioseo-seo-preview-standalone .modal-wrapper .modal-container .modal-body{flex:1 1 100%}.aioseo-seo-preview-standalone .modal-wrapper .modal-container__footer{align-items:center;display:grid;grid-template-columns:auto auto;justify-content:space-between;padding:0 20px;min-height:56px}.aioseo-seo-preview-standalone .modal-wrapper .modal-container__footer .device-toggle{display:flex;gap:8px}.aioseo-seo-preview-standalone .modal-wrapper .modal-container__footer .device-toggle .btn-device{align-items:center;border-radius:50%;color:#141b38;display:inline-flex;height:36px;justify-content:center;opacity:.5;outline-color:#005ae0;width:36px}.aioseo-seo-preview-standalone .modal-wrapper .modal-container__footer .device-toggle .btn-device--active{background-color:#d0d1d7;opacity:1}.aioseo-seo-preview-standalone .modal-wrapper .modal-container .aioseo-modal-content{display:flex;flex-direction:column;height:100%}.aioseo-seo-preview-standalone .modal-wrapper .modal-container .aioseo-modal-content .component-overflow{flex:1 1 100%;overflow-y:auto}.aioseo-seo-preview-standalone .modal-wrapper .modal-container .aioseo-modal-content .component-overflow .component-container{display:table;width:100%;position:relative;height:100%}.aioseo-seo-preview-standalone .modal-wrapper .modal-container .aioseo-modal-content .component-overflow .component-container .component-wrapper{background-color:#f0f2f5;display:table-cell;vertical-align:middle}.aioseo-seo-preview-standalone .modal-wrapper .modal-container .aioseo-modal-content .component-overflow .component-container .component-wrapper.tabViewSeoInspector{background-color:#fff;border:20px solid #fff;vertical-align:top}.aioseo-seo-preview-standalone .modal-wrapper .modal-container .aioseo-modal-content .component-overflow .component-container .component-wrapper.tabViewGoogle--mobile{vertical-align:bottom}.aioseo-seo-preview-standalone .aioseo-tabs{margin-bottom:0}.aioseo-seo-preview-standalone .aioseo-tabs .var-tab{gap:6px}.aioseo-seo-preview-standalone .aioseo-tabs .var-tab svg{width:20px}.aioseo-seo-preview-standalone .aioseo-tabs .var-tab .tab-label{font-weight:700;text-transform:none}.aioseo-seo-preview-standalone .aioseo-tabs .aioseo-mobile-tabs{margin-top:0}.aioseo-seo-preview-standalone .btn-edit-preview-data-wrapper .btn-edit-preview-data{gap:6px;outline-color:#005ae0}.aioseo-seo-preview-standalone .btn-edit-preview-data-wrapper .btn-edit-preview-data svg{width:14px} all-in-one-seo-pack/dist/Lite/assets/css/SeoSetup.BQWbCVLU.css000064400000003611151222736000017675 0ustar00.aioseo-progress-circle__circle{transform-origin:center;stroke:#005ae0}[dir=ltr] .aioseo-progress-circle__circle{transform:rotate(270deg)}[dir=rtl] .aioseo-progress-circle__circle{transform:rotate(-270deg)}.aioseo-progress-circle__background{stroke:#005ae040}.aioseo-seo-setup{display:flex;flex-direction:row;align-items:center}.aioseo-seo-setup .progress{display:inline-flex;align-items:center;line-height:1;border:1px solid #C3C4C7;border-radius:100px;margin-bottom:20px;color:#141b38}[dir=ltr] .aioseo-seo-setup .progress{padding:8px 14px 8px 8px}[dir=rtl] .aioseo-seo-setup .progress{padding:8px 8px 8px 14px}.aioseo-seo-setup .progress .aioseo-progress-circle{width:18px}[dir=ltr] .aioseo-seo-setup .progress .aioseo-progress-circle{margin-right:8px}[dir=rtl] .aioseo-seo-setup .progress .aioseo-progress-circle{margin-left:8px}.aioseo-seo-setup .aioseo-button{font-size:12px;height:32px}.aioseo-seo-setup .aioseo-button svg{width:14px;height:14px}[dir=ltr] .aioseo-seo-setup .aioseo-button svg{margin-right:10px}[dir=rtl] .aioseo-seo-setup .aioseo-button svg{margin-left:10px}.aioseo-seo-setup .description{font-size:14px;margin-bottom:20px;color:#434960}.aioseo-seo-setup .aioseo-seo{max-width:300px;min-width:275px;width:100%;height:auto}@media screen and (max-width: 1280px){.aioseo-seo-setup .aioseo-seo{min-width:0}}@media screen and (max-width: 912px){.aioseo-seo-setup{flex-direction:column}}.aioseo-seo-setup--wp-styles .progress{margin-bottom:12px}.aioseo-seo-setup--wp-styles .description{color:#3c434a;margin-bottom:12px}.aioseo-seo-setup--wp-styles .button svg{vertical-align:text-bottom;width:14px;height:14px}[dir=ltr] .aioseo-seo-setup--wp-styles .button svg{margin-right:10px}[dir=rtl] .aioseo-seo-setup--wp-styles .button svg{margin-left:10px}.aioseo-seo-setup--wp-styles .aioseo-seo{max-width:225px;min-width:175px}@media screen and (max-width: 520px){.aioseo-seo-setup--wp-styles{flex-direction:column}} all-in-one-seo-pack/dist/Lite/assets/css/SeoSiteAnalysisResults.oz0MKVi7.css000064400000005750151222736000022636 0ustar00.aioseo-seo-site-analysis-result{border:1px solid #DCDDE1;margin-top:8px}.aioseo-seo-site-analysis-result .result-header{height:48px;padding:0 13px;display:flex;align-items:center}.aioseo-seo-site-analysis-result .result-header .result-icon{display:flex;align-items:center}[dir=ltr] .aioseo-seo-site-analysis-result .result-header .result-icon{margin-right:14px}[dir=rtl] .aioseo-seo-site-analysis-result .result-header .result-icon{margin-left:14px}.aioseo-seo-site-analysis-result .result-header .result-icon svg{width:24px;height:24px;color:#8c8f9a}.aioseo-seo-site-analysis-result .result-header .result-icon svg.passed{color:#00aa63}.aioseo-seo-site-analysis-result .result-header .result-icon svg.error{color:#df2a4a}.aioseo-seo-site-analysis-result .result-header .result-icon svg.warning{color:#005ae0}.aioseo-seo-site-analysis-result .result-header .result-content{font-size:14px;line-height:22px;font-weight:600;flex:1}.aioseo-seo-site-analysis-result .result-header .result-toggle{width:30px;height:26px;border:1px solid #DCDDE1;border-radius:3px;display:flex;align-items:center;justify-content:center;cursor:pointer}.aioseo-seo-site-analysis-result .result-header .result-toggle.active,.aioseo-seo-site-analysis-result .result-header .result-toggle:hover{background-color:#434960}.aioseo-seo-site-analysis-result .result-header .result-toggle.active svg,.aioseo-seo-site-analysis-result .result-header .result-toggle:hover svg{color:#fff}[dir=ltr] .aioseo-seo-site-analysis-result .result-header .result-toggle.active svg{transform:rotate(-180deg)}[dir=rtl] .aioseo-seo-site-analysis-result .result-header .result-toggle.active svg{transform:rotate(180deg)}.aioseo-seo-site-analysis-result .result-header .result-toggle svg{width:100%;max-width:20px;height:auto;color:#8c8f9a;transition:transform .3s}[dir=ltr] .aioseo-seo-site-analysis-result .result-header .result-toggle svg{transform:rotate(-90deg)}[dir=rtl] .aioseo-seo-site-analysis-result .result-header .result-toggle svg{transform:rotate(90deg)}.aioseo-seo-site-analysis-result .result-body{padding:0 40px 22px}.aioseo-seo-site-analysis-result .result-body .result-message{color:#434960;font-size:14px}.aioseo-seo-site-analysis-result .result-body .result-code pre,.aioseo-seo-site-analysis-result .result-body .result-code-alt pre{background:#f3f4f5;border-radius:3px;max-width:100%;padding:10px;overflow:auto}.aioseo-seo-site-analysis-result .result-body .result-code pre code,.aioseo-seo-site-analysis-result .result-body .result-code-alt pre code{padding:0;background:transparent}.aioseo-seo-site-analysis-result .result-body .result-code pre{white-space:pre-wrap}.aioseo-seo-site-analysis-result .result-body .result-action{margin-top:20px}.aioseo-seo-site-analysis-results{padding-top:12px}.aioseo-seo-site-analysis-results .aioseo-google-search-preview{border:1px solid #E8E8EB;padding:16px}.aioseo-seo-site-analysis-results .group-header{font-size:16px;line-height:24px;font-weight:600}.aioseo-seo-site-analysis-results .group-header:not(:first-child){margin-top:20px} all-in-one-seo-pack/dist/Lite/assets/css/SeoStatistics.CB8qU2kX.css000064400000000074151222736000020711 0ustar00.aioseo-search-statistics-seo-statistics{position:relative} all-in-one-seo-pack/dist/Lite/assets/css/SeoStatisticsOverview.DadDmLS_.css000064400000016271151222736000022546 0ustar00.aioseo-graph{position:relative}.aioseo-graph .apexcharts-legend{padding:0;inset:auto 0 0 0!important}.aioseo-graph .apexcharts-point-annotations{cursor:pointer}.aioseo-graph .apexcharts-point-annotations text,.aioseo-graph .apexcharts-point-annotations rect{pointer-events:none}.aioseo-graph .apexcharts-point-annotations .active-point{stroke:#005ae0;fill:#f0f6ff}.aioseo-graph .apexcharts-point-annotations .marker-circle{pointer-events:none}.aioseo-graph .aioseo-loading-spinner{top:0;bottom:0;left:0;right:0;margin:auto}.aioseo-graph-blurred{filter:blur(2px);pointer-events:none;-webkit-user-select:none;user-select:none}.aioseo-graph-legend-simple .apexcharts-legend{display:flex;flex-direction:row;gap:12px}.aioseo-graph-legend-simple .apexcharts-legend-marker{width:12px!important;height:12px!important}[dir=ltr] .aioseo-graph-legend-simple .apexcharts-legend-marker{margin-right:8px}[dir=rtl] .aioseo-graph-legend-simple .apexcharts-legend-marker{margin-left:8px}.aioseo-graph-legend-custom .apexcharts-legend{display:grid;grid-column-gap:16px;grid-row-gap:16px;overflow-y:hidden}.aioseo-graph-legend-custom .apexcharts-legend-series{border:1px solid #005AE0;border-radius:2px;position:relative;margin:0}[dir=ltr] .aioseo-graph-legend-custom .apexcharts-legend-series{padding:8px 8px 8px 32px}[dir=rtl] .aioseo-graph-legend-custom .apexcharts-legend-series{padding:8px 32px 8px 8px}.aioseo-graph-legend-custom .apexcharts-legend-series.apexcharts-inactive-legend{opacity:1;border-color:#d0d1d7}.aioseo-graph-legend-custom .apexcharts-legend-series .apexcharts-legend-text{display:inline-flex;line-height:125%;font-size:14px;color:#2c324c}.aioseo-graph-legend-custom .apexcharts-legend-series .apexcharts-legend-text strong{font-size:16px;color:#141b38}[dir=ltr] .aioseo-graph-legend-custom .apexcharts-legend-series .apexcharts-legend-text strong{margin-right:8px}[dir=rtl] .aioseo-graph-legend-custom .apexcharts-legend-series .apexcharts-legend-text strong{margin-left:8px}.aioseo-graph-legend-custom .apexcharts-legend-marker .marker-checkbox{position:absolute;cursor:pointer;top:0;width:16px;height:16px;background-color:#005ae0;transition:.2s;border-radius:3px;display:flex;align-items:center;justify-content:center}[dir=ltr] .aioseo-graph-legend-custom .apexcharts-legend-marker .marker-checkbox{left:-24px}[dir=rtl] .aioseo-graph-legend-custom .apexcharts-legend-marker .marker-checkbox{right:-24px}.aioseo-graph-legend-custom .apexcharts-legend-marker .marker-checkbox:before{position:absolute;content:"";height:14px;width:14px;bottom:1px;transition:.2s;font-size:18px;line-height:28px;border-radius:2px}.aioseo-graph-legend-custom .apexcharts-legend-marker .marker-checkbox svg{color:#fff;width:12px;height:12px}.aioseo-graph-legend-custom .apexcharts-legend-marker.apexcharts-inactive-legend{opacity:1}.aioseo-graph-legend-custom .apexcharts-legend-marker.apexcharts-inactive-legend .marker-checkbox{background-color:#d0d1d7}.aioseo-graph-legend-custom .apexcharts-legend-marker.apexcharts-inactive-legend .marker-checkbox:before{background-color:#fff}.aioseo-graph-legend-custom .apexcharts-legend-text{position:absolute;padding-top:8px;padding-bottom:8px;width:100%}[dir=ltr] .aioseo-graph-legend-custom .apexcharts-legend-text{left:0;padding-left:72px;padding-right:8px}[dir=rtl] .aioseo-graph-legend-custom .apexcharts-legend-text{right:0;padding-right:72px;padding-left:8px}.aioseo-graph-legend-custom .apexcharts-legend-text strong{display:inline-block;font-size:16px;vertical-align:middle}[dir=ltr] .aioseo-graph-legend-custom .apexcharts-legend-text strong{margin-right:4px}[dir=rtl] .aioseo-graph-legend-custom .apexcharts-legend-text strong{margin-left:4px}.aioseo-graph-legend-columns-4 .apexcharts-legend{grid-template-columns:repeat(4,1fr)}.aioseo-graph-legend-columns-3 .apexcharts-legend{grid-template-columns:repeat(3,1fr)}.aioseo-seo-statistics-overview{max-width:1000px;margin:0 auto}.aioseo-seo-statistics-overview .statistics{position:relative}.aioseo-seo-statistics-overview .statistics-title{flex:1 1 auto;display:flex;align-items:center;margin-bottom:14px}.aioseo-seo-statistics-overview .statistics-current{display:flex;align-items:center;font-weight:700;font-size:28px;color:#2c324c;margin-bottom:16px}.aioseo-seo-statistics-overview .statistics-current-total{flex:1 1 auto}.aioseo-seo-statistics-overview .statistics-current-difference{display:flex;align-items:center;font-size:16px}.aioseo-seo-statistics-overview .statistics-current-difference-direction{display:flex}[dir=ltr] .aioseo-seo-statistics-overview .statistics-current-difference-direction{margin-right:9px}[dir=rtl] .aioseo-seo-statistics-overview .statistics-current-difference-direction{margin-left:9px}.aioseo-seo-statistics-overview .statistics-current-difference-direction svg{vertical-align:middle;width:11px;height:6px}.aioseo-seo-statistics-overview .statistics-current-difference--up{color:#00aa63}.aioseo-seo-statistics-overview .statistics-current-difference--down{color:#df2a4a}.aioseo-seo-statistics-overview .statistics .blurred{filter:blur(2px);pointer-events:none;-webkit-user-select:none;user-select:none}.aioseo-seo-statistics-overview.hide-graph .statistics-current-total{max-width:100px}.aioseo-seo-statistics-overview.grid{background-color:#e8e8eb;grid-gap:1px;display:grid}.aioseo-seo-statistics-overview.grid .statistics{background-color:#fff}[dir=ltr] .aioseo-seo-statistics-overview.grid .statistics:nth-child(odd){padding-right:15px}[dir=rtl] .aioseo-seo-statistics-overview.grid .statistics:nth-child(odd){padding-left:15px}[dir=ltr] .aioseo-seo-statistics-overview.grid .statistics:nth-child(2n){padding-left:15px}[dir=rtl] .aioseo-seo-statistics-overview.grid .statistics:nth-child(2n){padding-right:15px}.aioseo-seo-statistics-overview.grid .statistics:nth-child(n+3){padding-top:15px}.aioseo-seo-statistics-overview.grid .statistics:nth-last-child(n+3){padding-bottom:15px}.aioseo-seo-statistics-overview.grid .statistics:nth-child(odd):not(:nth-last-child(2)):after{content:"";position:absolute;bottom:-17px;width:48px;height:32px;background:#fff}[dir=ltr] .aioseo-seo-statistics-overview.grid .statistics:nth-child(odd):not(:nth-last-child(2)):after{right:-25px}[dir=rtl] .aioseo-seo-statistics-overview.grid .statistics:nth-child(odd):not(:nth-last-child(2)):after{left:-25px}.aioseo-seo-statistics-overview.side-by-side{grid-gap:40px;display:grid}.aioseo-seo-statistics-overview.side-by-side .statistics:not(:last-child):after{content:"";position:absolute;bottom:0;width:1px;height:100%;background:#e8e8eb}[dir=ltr] .aioseo-seo-statistics-overview.side-by-side .statistics:not(:last-child):after{right:-20px}[dir=rtl] .aioseo-seo-statistics-overview.side-by-side .statistics:not(:last-child):after{left:-20px}.aioseo-seo-statistics-overview.side-by-side .statistics .statistics-current-total{flex:0 1 auto}[dir=ltr] .aioseo-seo-statistics-overview.side-by-side .statistics .statistics-current-total{margin-right:16px}[dir=rtl] .aioseo-seo-statistics-overview.side-by-side .statistics .statistics-current-total{margin-left:16px}@media (max-width: 1024px){.aioseo-seo-statistics-overview.side-by-side{grid-template-columns:repeat(2,1fr)}.aioseo-seo-statistics-overview.side-by-side .statistics:after{display:none}}.aioseo-seo-statistics-overview .aioseo-loading-spinner{top:0;bottom:0;left:0;right:0;margin:auto} all-in-one-seo-pack/dist/Lite/assets/css/SettingsRow.BUqir0Pd.css000064400000003126151222736000020520 0ustar00.aioseo-settings-row{margin-bottom:var(--aioseo-gutter);padding-bottom:var(--aioseo-gutter);border-bottom:1px solid #E8E8EB}@media only screen and (min-width: 912px){.aioseo-settings-row>.col-md-3:first-child{max-width:240px}.aioseo-settings-row:not(.no-right-max-width)>.col-md-9:last-child{max-width:940px;flex:1}}.aioseo-settings-row :where(.aioseo-row){--aioseo-gutter: 12px}.aioseo-settings-row>:last-child{margin-bottom:0}.aioseo-settings-row.no-margin{margin-bottom:0}.aioseo-settings-row.small-padding{padding-bottom:4px}.aioseo-settings-row.medium-margin{margin-bottom:16px}.aioseo-settings-row.no-border{border:none;margin-bottom:0}.aioseo-settings-row.no-horizontal-margin{margin-left:0!important;margin-right:0!important}.aioseo-settings-row.no-vertical-margin{margin-top:0!important;margin-bottom:0!important}.aioseo-settings-row>.aioseo-col{padding-block:0}.aioseo-settings-row .settings-name{color:#141b38}.aioseo-settings-row .settings-name .name{font-weight:600;font-size:14px;line-height:22px;display:flex;align-items:center}.aioseo-settings-row .settings-name .name.small-margin{margin-bottom:5px}.aioseo-settings-row .settings-name .name.align-small{line-height:30px}[dir=ltr] .aioseo-settings-row .settings-name .name .aioseo-pro-badge{margin-left:10px}[dir=rtl] .aioseo-settings-row .settings-name .name .aioseo-pro-badge{margin-right:10px}.aioseo-settings-row .settings-name .required-field{color:#df2a4a}.aioseo-settings-row .settings-name .aioseo-description{margin-top:12px}.aioseo-settings-row .settings-content{font-size:14px;line-height:22px}.aioseo-settings-row p.description{font-size:14px} all-in-one-seo-pack/dist/Lite/assets/css/SettingsSeparator.Dlz8NI2c.css000064400000002117151222736000021617 0ustar00.aioseo-separators{--aioseo-gutter: 8px;position:relative;margin-top:0}[dir=ltr] .aioseo-separators{padding-right:100px}[dir=rtl] .aioseo-separators{padding-left:100px}.aioseo-separators .aioseo-col.col-sm-1{flex:0 0 40px;max-width:none}.aioseo-separators .aioseo-col .separator{background-color:#f3f4f5;display:flex;align-items:center;justify-content:center;min-height:40px;font-weight:600;border:1px solid #D0D1D7;border-radius:3px;font-size:20px;cursor:pointer}.aioseo-separators .aioseo-col .separator:hover{background-color:#e5e7e9}.aioseo-separators .aioseo-col .separator.active{background-color:#005ae0;border-color:#005ae0;color:#fff}.aioseo-separators .aioseo-col .separator.active:hover{background-color:#005ae0}.aioseo-separators .aioseo-col .show-more{height:100%;display:flex;align-items:center}.aioseo-separators .aioseo-col .show-more a{color:#8c8f9a}.aioseo-separators .aioseo-col .custom-separator{font-weight:600;display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin-top:8px}.aioseo-separators .aioseo-col .custom-separator .aioseo-input-container{max-width:200px} all-in-one-seo-pack/dist/Lite/assets/css/SitemapsPro.DYaYma0b.css000064400000007273151222736000020465 0ustar00.aioseo-feature-card{height:100%;border:1px solid #E8E8EB;background:#fff;box-shadow:0 2px 5px #0000000d;color:#141b38;display:flex;flex-direction:column}.aioseo-feature-card .feature-card-body{line-height:22px;padding:20px;flex:1}.aioseo-feature-card .feature-card-body.static{padding:20px}.aioseo-feature-card .feature-card-body .feature-card-header{display:flex;align-items:center;font-size:14px;font-weight:600;margin-bottom:12px}.aioseo-feature-card .feature-card-body .feature-card-header img,.aioseo-feature-card .feature-card-body .feature-card-header svg{width:24px;height:24px}[dir=ltr] .aioseo-feature-card .feature-card-body .feature-card-header img,[dir=ltr] .aioseo-feature-card .feature-card-body .feature-card-header svg{margin-right:10px}[dir=rtl] .aioseo-feature-card .feature-card-body .feature-card-header img,[dir=rtl] .aioseo-feature-card .feature-card-body .feature-card-header svg{margin-left:10px}.aioseo-feature-card .feature-card-body .feature-card-description{color:#434960;font-size:14px}.aioseo-feature-card .feature-card-body .feature-card-description .learn-more{margin-top:12px;font-size:14px}.aioseo-feature-card .feature-card-footer{padding:15px}.aioseo-feature-card .feature-card-footer:not(.upgrade-required){border:2px solid #fff;background-color:#f9f9fa;padding:12px 20px;min-height:43px}.aioseo-feature-card .feature-card-footer .feature-card-install-activate{display:flex;align-items:center;justify-content:flex-end;height:30px;position:relative}.aioseo-feature-card .feature-card-footer .feature-card-install-activate .aioseo-loading-spinner{position:absolute}[dir=ltr] .aioseo-feature-card .feature-card-footer .feature-card-install-activate .aioseo-loading-spinner{left:0}[dir=rtl] .aioseo-feature-card .feature-card-footer .feature-card-install-activate .aioseo-loading-spinner{right:0}.aioseo-feature-card .feature-card-footer .feature-card-install-activate .version{flex:1}.aioseo-feature-card .feature-card-footer .feature-card-install-activate .status{font-weight:600;font-size:14px}[dir=ltr] .aioseo-feature-card .feature-card-footer .feature-card-install-activate .aioseo-toggle .toggle-content{margin-right:0;margin-left:10px}[dir=rtl] .aioseo-feature-card .feature-card-footer .feature-card-install-activate .aioseo-toggle .toggle-content{margin-left:0;margin-right:10px}.aioseo-feature-card .feature-card-footer .feature-card-upgrade-cta{display:flex;align-items:center;justify-content:flex-end}.aioseo-feature-card .feature-card-footer .feature-card-upgrade-cta .aioseo-tooltip{margin:0;display:inline-block;flex:1}.aioseo-feature-card .feature-card-footer .feature-card-upgrade-cta .aioseo-tooltip .version{cursor:pointer;color:#005ae0;font-weight:600;text-decoration:underline}.aioseo-feature-card .feature-card-footer.installed .feature-card-install-activate .status{color:#8c8f9a}.aioseo-feature-card-modal .aioseo-modal-body{padding:20px 40px 40px;display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative}.aioseo-feature-card-modal .aioseo-modal-body h3{font-size:20px;margin-bottom:16px}.aioseo-feature-card-modal .aioseo-modal-body .reset-description{font-size:16px;color:#141b38;margin-bottom:16px;text-align:center;max-width:515px}.aioseo-feature-card-modal .aioseo-modal-body button.close{position:absolute;top:11px;width:24px;height:24px;background-color:#fff;border:none;display:flex;align-items:center}[dir=ltr] .aioseo-feature-card-modal .aioseo-modal-body button.close{right:11px}[dir=rtl] .aioseo-feature-card-modal .aioseo-modal-body button.close{left:11px}.aioseo-feature-card-modal .aioseo-modal-body button.close svg.aioseo-close{cursor:pointer;width:14px;height:14px}.aioseo-feature-card-modal .aioseo-modal-body .aioseo-button:not(.close){margin-top:16px} all-in-one-seo-pack/dist/Lite/assets/css/SmartRecommendations.GCIfJr6k.css000064400000003305151222736000022304 0ustar00.aioseo-wizard-smart-recommendations .header{font-size:24px;color:#141b38;font-weight:600}.aioseo-wizard-smart-recommendations .description{margin-top:20px;font-size:16px;color:#434960;margin-bottom:40px;line-height:1.4}.aioseo-wizard-smart-recommendations .available-features{font-size:16px;color:#141b38;margin:20px 0}.aioseo-wizard-smart-recommendations .available-features.no-access{color:#434960}.aioseo-wizard-smart-recommendations .aioseo-settings-row{font-size:16px;color:#141b38}.aioseo-wizard-smart-recommendations .aioseo-settings-row .settings-name{margin-bottom:10px}.aioseo-wizard-smart-recommendations .aioseo-tooltip svg.aioseo-circle-question-mark{width:17px;height:17px;color:#8c8f9a;cursor:pointer}.aioseo-wizard-smart-recommendations .go-back a{color:#434960;font-size:14px}.aioseo-smart-recommendations-modal .aioseo-modal-body{padding:20px 40px 40px;display:flex;flex-direction:column;position:relative}.aioseo-smart-recommendations-modal .aioseo-modal-body .actions{margin-top:20px;display:flex;align-items:center}[dir=ltr] .aioseo-smart-recommendations-modal .aioseo-modal-body .actions>*{margin-right:20px}[dir=rtl] .aioseo-smart-recommendations-modal .aioseo-modal-body .actions>*{margin-left:20px}[dir=ltr] .aioseo-smart-recommendations-modal .aioseo-modal-body .actions>*:last-child{margin-right:0}[dir=rtl] .aioseo-smart-recommendations-modal .aioseo-modal-body .actions>*:last-child{margin-left:0}.aioseo-smart-recommendations-modal .aioseo-modal-body .actions .spacer{flex:1 0 auto}.aioseo-smart-recommendations-modal .aioseo-modal-body .aioseo-alert{margin-top:30px;font-size:14px;text-align:center}.aioseo-smart-recommendations-modal .aioseo-modal-body .bonus-alert{margin:24px auto;max-width:650px} all-in-one-seo-pack/dist/Lite/assets/css/SocialProfiles.DTumgFYz.css000064400000004314151222736000021231 0ustar00.aioseo-social-profiles{--aioseo-gutter: 20px}.aioseo-social-profiles .same-username .use-same{padding:16px;background:#f9f9fa;border-radius:4px}.aioseo-social-profiles .same-username .use-same>label{align-items:flex-start}.aioseo-social-profiles .same-username .use-same>label .form-checkbox-wrapper{margin-top:2px}.aioseo-social-profiles .same-username .use-same>.aioseo-settings-row{flex-direction:column;max-width:570px;gap:4px;flex-wrap:nowrap}[dir=ltr] .aioseo-social-profiles .same-username .use-same>.aioseo-settings-row{margin:16px 0 0 24px}[dir=rtl] .aioseo-social-profiles .same-username .use-same>.aioseo-settings-row{margin:16px 24px 0 0}.aioseo-social-profiles .same-username .use-same>.aioseo-settings-row .aioseo-input-container{max-width:470px}.aioseo-social-profiles .same-username .use-same .profiles{margin-top:12px;--aioseo-gutter: 12px;--total-gap-width: calc(3 * var(--aioseo-gutter));--aioseo-col-max-width: calc((100% - var(--total-gap-width)) / 4);display:grid;gap:var(--aioseo-gutter);grid-template-columns:repeat(auto-fill,minmax(max(130px,var(--aioseo-col-max-width)),1fr))}.aioseo-social-profiles .same-username .use-same .profiles>*{max-width:none}.aioseo-social-profiles .same-username .use-same .profiles .aioseo-col{max-width:none}.aioseo-social-profiles .aioseo-social-profile-list{margin-top:20px;display:flex;flex-direction:column;gap:12px}.aioseo-social-profiles .aioseo-social-profile-list .social-profile{margin-bottom:0;padding-bottom:0;border-bottom:none;gap:8px}.aioseo-social-profiles .aioseo-social-profile-list .social-profile>.col-md-9:last-child{max-width:none}[dir=ltr] .aioseo-social-profiles .aioseo-social-profile-list .social-profile .logo-svg{margin-right:12px}[dir=rtl] .aioseo-social-profiles .aioseo-social-profile-list .social-profile .logo-svg{margin-left:12px}.aioseo-social-profiles .aioseo-social-profile-list .social-profile .profile-error{margin-top:10px}.aioseo-social-profiles .aioseo-social-profile-list .social-profile .name{margin-bottom:0}.aioseo-social-profiles .additional-social-profiles{margin-top:var(--aioseo-gutter);padding-top:var(--aioseo-gutter);border-top:1px solid #E8E8EB;gap:8px}.aioseo-social-profiles .additional-social-profiles>.col-md-9:last-child{max-width:none} all-in-one-seo-pack/dist/Lite/assets/css/Steps.DIeJuvzS.css000064400000000147151222736000017403 0ustar00.aioseo-wizard-steps{color:#8c8f9a;font-size:16px;font-weight:600;line-height:24px;margin-bottom:16px} all-in-one-seo-pack/dist/Lite/assets/css/Success.OYvAsfkV.css000064400000005743151222736000017731 0ustar00.aioseo-wizard-success{color:#141b38;padding-bottom:40px}.aioseo-wizard-success .actions>div{display:flex;align-items:center}.aioseo-wizard-success .actions>div:not(.no-border){border-bottom:1px solid #E8E8EB;padding-bottom:24px;margin-bottom:24px}.aioseo-wizard-success .actions>div .icon{min-width:24px}[dir=ltr] .aioseo-wizard-success .actions>div .icon{margin-right:16px}[dir=rtl] .aioseo-wizard-success .actions>div .icon{margin-left:16px}.aioseo-wizard-success .actions>div .icon svg{width:24px;height:24px}.aioseo-wizard-success .actions>div .content{font-weight:700;font-size:14px;color:#141b38;flex:1}.aioseo-wizard-success .actions>div .content .social-button{color:#fff}[dir=ltr] .aioseo-wizard-success .actions>div .content .social-button{margin:10px 10px 0 0}[dir=rtl] .aioseo-wizard-success .actions>div .content .social-button{margin:10px 0 0 10px}.aioseo-wizard-success .actions>div .content .social-button svg{width:14px;height:14px}[dir=ltr] .aioseo-wizard-success .actions>div .content .social-button svg{margin-right:10px}[dir=rtl] .aioseo-wizard-success .actions>div .content .social-button svg{margin-left:10px}.aioseo-wizard-success .actions>div .content .social-button.facebook{background-color:#4064ac}.aioseo-wizard-success .actions>div .content .social-button.twitter{background-color:#1da1f2}.aioseo-wizard-success .actions>div .content .social-button.youtube{background-color:#d63e22}.aioseo-wizard-success .actions>div:last-child{border-bottom:none;padding-bottom:0;margin-bottom:0}.aioseo-wizard-success .aioseo-settings-row:last-child{border-bottom:none;margin-bottom:0}.aioseo-wizard-success .aioseo-settings-row.feature-grid .settings-name .name{font-size:18px}.aioseo-wizard-success .aioseo-settings-row.feature-grid .aioseo-col{display:flex;align-items:center}.aioseo-wizard-success .go-back a{color:#434960;font-size:14px}.aioseo-wizard-success .cta{margin:0 20px 40px;padding:20px;border:1px solid #E8E8EB;text-align:center}.aioseo-wizard-success .cta .content{flex-direction:column;display:flex;align-items:center;justify-content:center}.aioseo-wizard-success .cta .content .cta-header{font-size:24px;font-weight:700;margin-bottom:24px;margin-top:20px}.aioseo-wizard-success .cta .content .cta-description{line-height:1.4;max-width:630px;margin-bottom:55px}.aioseo-wizard-success .cta .content .aioseo-alert{width:100%}.aioseo-wizard-success .cta .content .feature-list{color:#141b38;font-size:16px;width:100%;max-width:600px;margin-bottom:50px}.aioseo-wizard-success .cta .content .feature-list .aioseo-col{display:flex;align-items:flex-start;margin:2px 0}.aioseo-wizard-success .cta .content .feature-list .aioseo-col svg.aioseo-circle-check{color:#00aa63;width:18px;min-width:18px;min-height:18px}[dir=ltr] .aioseo-wizard-success .cta .content .feature-list .aioseo-col svg.aioseo-circle-check{margin-right:10px}[dir=rtl] .aioseo-wizard-success .cta .content .feature-list .aioseo-col svg.aioseo-circle-check{margin-left:10px}.aioseo-wizard-success .cta .bonus-alert{margin:24px auto;max-width:650px} all-in-one-seo-pack/dist/Lite/assets/css/SystemStatus.BNQD40vL.css000064400000005502151222736000020524 0ustar00.aioseo-tools-system-status-info .actions{margin-bottom:var(--aioseo-gutter)}[dir=ltr] .aioseo-tools-system-status-info .actions .left .aioseo-button{margin-right:16px}[dir=rtl] .aioseo-tools-system-status-info .actions .left .aioseo-button{margin-left:16px}.aioseo-tools-system-status-info .actions .left .aioseo-button svg{width:14px;height:14px}[dir=ltr] .aioseo-tools-system-status-info .actions .left .aioseo-button svg{margin-right:5px}[dir=rtl] .aioseo-tools-system-status-info .actions .left .aioseo-button svg{margin-left:5px}.aioseo-tools-system-status-info .actions .right,.aioseo-tools-system-status-info .actions .right .aioseo-input{display:flex;justify-content:flex-end}.aioseo-tools-system-status-info .actions .right .aioseo-input input{max-width:230px}[dir=ltr] .aioseo-tools-system-status-info .actions .right .aioseo-input input{margin-right:10px}[dir=rtl] .aioseo-tools-system-status-info .actions .right .aioseo-input input{margin-left:10px}.aioseo-tools-system-status-info .settings-name .name{font-size:16px;line-height:24px}.aioseo-tools-system-status-info .system-status-table{border:1px solid #D0D1D7;font-size:14px;border-radius:3px}.aioseo-tools-system-status-info .system-status-table .aioseo-table-row{min-height:38px;padding:0 15px}.aioseo-tools-system-status-info .system-status-table .aioseo-table-row:first-child{border-radius:3px 3px 0 0}.aioseo-tools-system-status-info .system-status-table .aioseo-table-row:last-child{border-radius:0 0 3px 3px}.aioseo-tools-system-status-info .system-status-table .aioseo-table-row.even{background-color:#f9f9fa}.aioseo-tools-system-status-info .system-status-table .aioseo-table-row .aioseo-table-column.system-status-header{max-width:250px;font-weight:600}[dir=ltr] .aioseo-tools-system-status-info .system-status-table .aioseo-table-row .aioseo-table-column.system-status-header{margin-right:30px;text-align:right}[dir=rtl] .aioseo-tools-system-status-info .system-status-table .aioseo-table-row .aioseo-table-column.system-status-header{margin-left:30px;text-align:left}.aioseo-tools-system-status-info .aioseo-settings-row .settings-group--database .settings-content{overflow:auto;max-height:500px}.aioseo-tools-system-status-info .aioseo-settings-row .settings-group--database .settings-content .system-status-header>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}[dir=ltr] .aioseo-tools-system-status-info .aioseo-settings-row .settings-group--database .settings-content .system-status-header>span{direction:rtl}[dir=rtl] .aioseo-tools-system-status-info .aioseo-settings-row .settings-group--database .settings-content .system-status-header>span{direction:ltr}.aioseo-tools-system-status-info .aioseo-settings-row .settings-group .settings-content{margin-top:16px}.aioseo-tools-system-status-info .aioseo-settings-row .settings-group:not(:first-child){margin-top:var(--aioseo-gutter)} all-in-one-seo-pack/dist/Lite/assets/css/Table.CH7puFu1.css000064400000017264151222736000017203 0ustar00.aioseo-app .aioseo-wp-table .aioseo-wp-additional-filters{margin:0 0 9px}[dir=ltr] .aioseo-wp-bulk-actions select{margin-left:0}[dir=rtl] .aioseo-wp-bulk-actions select{margin-right:0}.aioseo-wp-items-per-page label{display:flex;align-items:center}[dir=ltr] .aioseo-wp-items-per-page select{margin-right:5px}[dir=rtl] .aioseo-wp-items-per-page select{margin-left:5px}.aioseo-manage-column .aioseo-table-header-tooltip-icon{display:flex;justify-content:center}.aioseo-manage-column .aioseo-table-header-tooltip-icon .aioseo-tooltip{margin:0}.aioseo-wp-table select,.aioseo-wp-table input[type=search]{border-color:#d0d1d7}.aioseo-wp-table select:focus{border-color:#005ae0;color:#005ae0;box-shadow:0 0 0 1px #005ae0}.aioseo-wp-table select:hover{color:#005ae0}.aioseo-wp-table input.button{color:#005ae0;border-color:#005ae0}.aioseo-wp-table input.button:hover{border-color:#005ae0;color:#005ae0}.aioseo-wp-table .aioseo-wp-table-header{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:8px}.aioseo-wp-table .aioseo-wp-table-header .subsubsub{grid-column:1;grid-row:1;float:none;display:inline-block;color:#555d66;font-size:14px;line-height:18px;font-weight:600;margin:0}.aioseo-wp-table .aioseo-wp-table-header .subsubsub:empty{display:none!important}.aioseo-wp-table .aioseo-wp-table-header .subsubsub li>span{display:inline-flex}.aioseo-wp-table .aioseo-wp-table-header .subsubsub .separator{margin:0 8px;cursor:default}.aioseo-wp-table .aioseo-wp-table-header .subsubsub .active{-webkit-text-stroke-width:.2px;-webkit-text-stroke-color:#141B38;color:#141b38}.aioseo-wp-table .aioseo-wp-table-header .subsubsub a{text-decoration:none;display:inline-flex;padding:0;line-height:18px}.aioseo-wp-table .aioseo-wp-table-header .subsubsub a span{color:#555d66}.aioseo-wp-table .aioseo-wp-table-header .subsubsub a:hover{text-decoration:underline}.aioseo-wp-table .aioseo-wp-table-header .search-box{grid-column:2;grid-row:1;justify-self:end;display:flex;gap:8px}.aioseo-wp-table .aioseo-wp-table-header .search-box>*{margin:0}.aioseo-wp-table .aioseo-wp-table-header .search{display:flex;justify-content:flex-end}.aioseo-wp-table .aioseo-wp-table-header .search .aioseo-input{width:100%;max-width:215px}[dir=ltr] .aioseo-wp-table .aioseo-wp-table-header .search .aioseo-input{margin-right:6px}[dir=rtl] .aioseo-wp-table .aioseo-wp-table-header .search .aioseo-input{margin-left:6px}.aioseo-wp-table .aioseo-wp-table-header .tablenav.top{grid-column:1/3;grid-row:2;justify-self:end}.aioseo-wp-table .aioseo-wp-table-header .tablenav.top>*{margin:0}@media screen and (max-width: 782px){.aioseo-wp-table .aioseo-wp-table-header{display:flex;flex-wrap:wrap;justify-content:center;gap:16px}.aioseo-wp-table .aioseo-wp-table-header .search-box{position:unset;width:auto;height:auto;margin-bottom:0}}.aioseo-wp-table .aioseo-wp-table-header .pagination,.aioseo-wp-table .bottom .pagination{color:#555d66}[dir=ltr] .aioseo-wp-table .aioseo-wp-table-header .pagination input,[dir=ltr] .aioseo-wp-table .bottom .pagination input{margin-left:4px}[dir=rtl] .aioseo-wp-table .aioseo-wp-table-header .pagination input,[dir=rtl] .aioseo-wp-table .bottom .pagination input{margin-right:4px}[dir=ltr] .aioseo-wp-table .aioseo-wp-table-header .pagination .tablenav-pages-navspan.button,[dir=ltr] .aioseo-wp-table .bottom .pagination .tablenav-pages-navspan.button{margin-left:4px}[dir=rtl] .aioseo-wp-table .aioseo-wp-table-header .pagination .tablenav-pages-navspan.button,[dir=rtl] .aioseo-wp-table .bottom .pagination .tablenav-pages-navspan.button{margin-right:4px}.aioseo-wp-table .aioseo-wp-table-header button,.aioseo-wp-table .aioseo-wp-table-header input,.aioseo-wp-table .bottom button,.aioseo-wp-table .bottom input{font-size:14px;line-height:22px}.aioseo-wp-table .aioseo-wp-table-header button.button,.aioseo-wp-table .aioseo-wp-table-header input.button,.aioseo-wp-table .bottom button.button,.aioseo-wp-table .bottom input.button{min-height:30px;padding:0 14px}.aioseo-wp-table .tablenav{height:auto;margin:0;padding:0;width:100%}.aioseo-wp-table .tablenav.top{margin-bottom:12px}.aioseo-wp-table .tablenav.bottom{margin-top:12px}.aioseo-wp-table .tablenav .tablenav-paging-text{font-size:13px;line-height:1.5}[dir=ltr] .aioseo-wp-table .tablenav .actions{padding-right:12px}[dir=rtl] .aioseo-wp-table .tablenav .actions{padding-left:12px}[dir=ltr] .aioseo-wp-table .tablenav .actions select{margin-right:8px}[dir=rtl] .aioseo-wp-table .tablenav .actions select{margin-left:8px}[dir=ltr] .aioseo-wp-table .tablenav-pages .current-page{padding:0 0 0 4px}[dir=rtl] .aioseo-wp-table .tablenav-pages .current-page{padding:0 4px 0 0}[dir=ltr] .aioseo-wp-table .tablenav-pages .pagination-links a{margin-left:4px}[dir=rtl] .aioseo-wp-table .tablenav-pages .pagination-links a{margin-right:4px}.aioseo-wp-table tr .aioseo-wp-table{padding:0 16px 16px}.aioseo-wp-table tr .aioseo-wp-table .wp-table{border:1px solid #D0D1D7}[dir=ltr] .aioseo-wp-table tr .aioseo-wp-table .wp-table{box-shadow:1px 1px 1px #0000000a}[dir=rtl] .aioseo-wp-table tr .aioseo-wp-table .wp-table{box-shadow:-1px 1px 1px #0000000a}.aioseo-wp-table tr .aioseo-wp-table .aioseo-wp-table-header{row-gap:16px}.aioseo-wp-table tr .aioseo-wp-table .tablenav.top{margin-bottom:16px}.aioseo-wp-table .wp-table{width:100%;position:relative}.aioseo-wp-table .wp-table table.blurred tbody tr{filter:blur(2px);pointer-events:none;-webkit-user-select:none;user-select:none}.aioseo-wp-table .wp-table tbody{position:relative}[dir=ltr] .aioseo-wp-table .wp-table thead td.check-column,[dir=ltr] .aioseo-wp-table .wp-table tfoot td.check-column{padding:4px 0 0 3px}[dir=rtl] .aioseo-wp-table .wp-table thead td.check-column,[dir=rtl] .aioseo-wp-table .wp-table tfoot td.check-column{padding:4px 3px 0 0}.aioseo-wp-table .wp-table .loader-overlay-table,.aioseo-wp-table .wp-table .loader-overlay-row{position:absolute;width:100%;background:#0000004d;z-index:1;display:flex;align-items:center;justify-content:center}.aioseo-wp-table .wp-table .loader-overlay-table{height:100%}.aioseo-wp-table .wp-table .aioseo-manage-column.manage-column.loader{padding:0;width:0}.aioseo-wp-table .wp-table .no-results{color:#8c8f9a;min-height:200px;display:flex;align-items:center;justify-content:center;font-weight:400;font-size:16px}.aioseo-wp-table .wp-table tr{position:relative}.aioseo-wp-table .wp-table tr .post-title>a,.aioseo-wp-table .wp-table tr .post_title>strong a{font-weight:600;color:#141b38}.aioseo-wp-table .wp-table tr .post-title>a:hover,.aioseo-wp-table .wp-table tr .post_title>strong a:hover{color:#005ae0}.aioseo-wp-table .wp-table tr .post_title .aioseo-tooltip a{font-weight:400;color:#005ae0}.aioseo-wp-table .wp-table tr.even{background-color:#f9f9fa}.aioseo-wp-table .wp-table tr.enabled>td{color:#141b38}.aioseo-wp-table .wp-table tr.enabled>td strong a{color:#141b38;font-weight:600}.aioseo-wp-table .wp-table tr:not(.enabled):not(.edit-row)>td{color:#8c8f9a}.aioseo-wp-table .wp-table tr:not(.enabled):not(.edit-row)>td a.edit-link{color:#8c8f9a}[dir=ltr] .aioseo-wp-table .wp-table tr.edit-row>th{padding:0 0 0 3px}[dir=rtl] .aioseo-wp-table .wp-table tr.edit-row>th{padding:0 3px 0 0}.aioseo-wp-table .wp-table tr.edit-row>td{padding:0 15px}.aioseo-wp-table .wp-table tr td strong a{font-weight:400}.aioseo-wp-table .wp-table tr td strong a:hover{color:#005ae0}[dir=ltr] .aioseo-wp-table .wp-table tr td.check-column{padding:11px 0 11px 3px}[dir=rtl] .aioseo-wp-table .wp-table tr td.check-column{padding:11px 3px 11px 0}.aioseo-wp-table .wp-table tr td .row-actions .edit a{color:#005ae0}.aioseo-wp-table .wp-table tr td .row-actions .edit .trash a{color:#df2a4a}.aioseo-wp-table .wp-table tr td.edit-row-content .wrapper .border{margin-top:4px;padding:19px 0 20px;border-top:1px solid #E8E8EB}#aioseo-settings .aioseo-wp-table .tablenav-pages-navspan.button{vertical-align:middle} all-in-one-seo-pack/dist/Lite/assets/css/Tabs.DLRSDeIF.css000064400000016476151222736000017003 0ustar00.aioseo-app .var-tab{display:flex;justify-content:center;align-items:center;flex:1 0 auto;padding:0 var(--tab-padding);font-size:var(--tab-font-size);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.aioseo-app .var-tab--active{color:var(--tab-active-color)}.aioseo-app .var-tab--inactive{color:var(--tab-inactive-color)}.aioseo-app .var-tab--disabled{color:var(--tab-disabled-color);cursor:not-allowed}.aioseo-app .var-tab--horizontal{flex-direction:row}.aioseo-app .var-tab--vertical{flex-direction:column}.aioseo-app .var-tabs{border-radius:var(--tabs-radius);background:var(--tabs-background);overflow:hidden;transition:background-color .25s}.aioseo-app .var-tabs__tab-wrap{position:relative;display:flex;height:100%}.aioseo-app .var-tabs__indicator{display:flex;justify-content:center;align-items:center;position:absolute;z-index:1;transition-property:width,transform;transition-duration:.3s}.aioseo-app .var-tabs__indicator-inner{background:var(--tabs-indicator-background)}.aioseo-app .var-tabs--layout-horizontal{flex-direction:row}.aioseo-app .var-tabs--layout-horizontal-scrollable{overflow-x:auto;overflow-y:hidden}.aioseo-app .var-tabs--layout-horizontal-scrollable::-webkit-scrollbar{display:none}.aioseo-app .var-tabs--layout-horizontal-padding{padding:0 var(--tabs-padding)}.aioseo-app .var-tabs--layout-horizontal-indicator{bottom:0;height:var(--tabs-indicator-size)}[dir=ltr] .aioseo-app .var-tabs--layout-horizontal-indicator{left:0}[dir=rtl] .aioseo-app .var-tabs--layout-horizontal-indicator{right:0}.aioseo-app .var-tabs--layout-horizontal-reverse-indicator{top:0;height:var(--tabs-indicator-size)}[dir=ltr] .aioseo-app .var-tabs--layout-horizontal-reverse-indicator{left:0}[dir=rtl] .aioseo-app .var-tabs--layout-horizontal-reverse-indicator{right:0}.aioseo-app .var-tabs--layout-horizontal-indicator-inner{width:var(--tabs-indicator-inner-size);height:100%}.aioseo-app .var-tabs--layout-vertical{flex-direction:column}.aioseo-app .var-tabs--layout-vertical-scrollable{overflow-x:hidden;overflow-y:auto}.aioseo-app .var-tabs--layout-vertical-scrollable::-webkit-scrollbar{display:none}.aioseo-app .var-tabs--layout-vertical-padding{padding:0}.aioseo-app .var-tabs--layout-vertical-indicator{top:0;width:var(--tabs-indicator-size)}[dir=ltr] .aioseo-app .var-tabs--layout-vertical-indicator{left:0}[dir=rtl] .aioseo-app .var-tabs--layout-vertical-indicator{right:0}.aioseo-app .var-tabs--layout-vertical-reverse-indicator{top:0;width:var(--tabs-indicator-size)}[dir=ltr] .aioseo-app .var-tabs--layout-vertical-reverse-indicator{right:0}[dir=rtl] .aioseo-app .var-tabs--layout-vertical-reverse-indicator{left:0}.aioseo-app .var-tabs--layout-vertical-indicator-inner{width:100%;height:var(--tabs-indicator-inner-size)}.aioseo-app .var-tabs--item-horizontal{height:var(--tabs-item-horizontal-height)}.aioseo-app .var-tabs--item-vertical{height:var(--tabs-item-vertical-height)}.aioseo-app .var-tabs--fixed-bottom{position:fixed;width:100%;bottom:0;z-index:99}[dir=ltr] .aioseo-app .var-tabs--fixed-bottom{left:0}[dir=rtl] .aioseo-app .var-tabs--fixed-bottom{right:0}.aioseo-app .var-tabs--safe-area{padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom);box-sizing:content-box!important}.aioseo-app .aioseo-tabs{display:flex;align-items:center;--tabs-item-horizontal-height: 52px;--tabs-item-vertical-height: 66px;--tabs-radius: 2px;--tabs-padding: 0;--tabs-indicator-size: 2px;--tabs-indicator-background: #005AE0;--tabs-background: none;--tabs-indicator-inner-size: 100%;--color-text-disabled: #8c8f9a;--tab-padding: 18px;--tab-active-color: #005AE0;--tab-inactive-color: #141B38;--tab-disabled-color: var(--color-text-disabled);--tab-font-size: 14px;--tab-line-height: 22px}.aioseo-app .aioseo-tabs.internal{--tab-padding: 25px;margin-bottom:0}.aioseo-app .aioseo-tabs.skinny{--tab-padding: 16px}.aioseo-app .var-tabs{margin-bottom:-2px}.aioseo-app .var-tabs .var-tab{font-weight:600;white-space:pre;position:relative;overflow:hidden}.aioseo-app .var-tabs .var-tab span.ripple{position:absolute;border-radius:50%;transform:scale(0);animation:aioseo-ripple .6s linear;background-color:#0000004d}@keyframes aioseo-ripple{to{transform:scale(3);opacity:0}}.aioseo-app .aioseo-tabs{display:flex;border-bottom:2px solid #E8E8EB;position:relative;margin-bottom:var(--aioseo-gutter)}.aioseo-app .aioseo-tabs .button-right,.aioseo-app .aioseo-tabs .tabs-extra{position:absolute}[dir=ltr] .aioseo-app .aioseo-tabs .button-right,[dir=ltr] .aioseo-app .aioseo-tabs .tabs-extra{right:0}[dir=rtl] .aioseo-app .aioseo-tabs .button-right,[dir=rtl] .aioseo-app .aioseo-tabs .tabs-extra{left:0}.aioseo-app .aioseo-tabs .tab-score{display:inline-flex;font-weight:700;line-height:normal;font-size:12px}[dir=ltr] .aioseo-app .aioseo-tabs .tab-score{padding-left:12px}[dir=rtl] .aioseo-app .aioseo-tabs .tab-score{padding-right:12px}.aioseo-app .aioseo-tabs .tab-score.green{color:#00aa63}.aioseo-app .aioseo-tabs .tab-score.orange{color:#f18200}.aioseo-app .aioseo-tabs .tab-score.red{color:#df2a4a}.aioseo-app .aioseo-tabs .tab-score svg{display:inline}[dir=ltr] .aioseo-app .aioseo-tabs .tab-score svg{margin-right:4px}[dir=rtl] .aioseo-app .aioseo-tabs .tab-score svg{margin-left:4px}.aioseo-app .aioseo-tabs .warning{color:#f18200!important}.aioseo-app .aioseo-tabs .warning svg{position:relative;top:2px;display:inline;color:#f18200!important}[dir=ltr] .aioseo-app .aioseo-tabs .warning svg{left:5px}[dir=rtl] .aioseo-app .aioseo-tabs .warning svg{right:5px}.aioseo-app .aioseo-mobile-tabs{--mobile-font-size: 14px;height:40px;margin-top:20px;position:relative;-webkit-user-select:none;user-select:none;width:100%}.aioseo-app .aioseo-mobile-tabs .active-tab{--spacing-x: 20px;align-items:center;color:#005ae0;cursor:pointer;display:inline-flex;min-height:100%;position:relative}[dir=ltr] .aioseo-app .aioseo-mobile-tabs .active-tab{padding-left:var(--spacing-x)}[dir=rtl] .aioseo-app .aioseo-mobile-tabs .active-tab{padding-right:var(--spacing-x)}.aioseo-app .aioseo-mobile-tabs .active-tab div{font-size:var(--mobile-font-size)}.aioseo-app .aioseo-mobile-tabs .active-tab div span{background-color:#005ae0;bottom:-2px;height:2px;position:absolute;z-index:10}[dir=ltr] .aioseo-app .aioseo-mobile-tabs .active-tab div span{left:0;right:calc(var(--spacing-x) * -2)}[dir=rtl] .aioseo-app .aioseo-mobile-tabs .active-tab div span{right:0;left:calc(var(--spacing-x) * -2)}.aioseo-app .aioseo-mobile-tabs .active-tab svg.aioseo-caret{--caret-size: 24px;height:var(--caret-size);position:absolute;top:calc(50% - var(--caret-size) / 2);transition:transform .3s;width:var(--caret-size)}[dir=ltr] .aioseo-app .aioseo-mobile-tabs .active-tab svg.aioseo-caret{left:100%;transform:rotate(180deg)}[dir=rtl] .aioseo-app .aioseo-mobile-tabs .active-tab svg.aioseo-caret{right:100%;transform:rotate(-180deg)}.aioseo-app .aioseo-mobile-tabs .active-tab svg.aioseo-caret.rotated{transform:rotate(0)}.aioseo-app .aioseo-mobile-tabs .tab-dropdown{border:1px solid #E8E8EB;border-top:none}.aioseo-app .aioseo-mobile-tabs .tab-links{background:#fff;position:relative;z-index:3;padding:8px;width:100%;max-width:300px}@media screen and (max-width: 782px){.aioseo-app .aioseo-mobile-tabs .tab-links{max-width:100%}}.aioseo-app .aioseo-mobile-tabs .tab-links a{font-size:var(--mobile-font-size);padding:10px;display:block;color:#141b38;text-decoration:none}.aioseo-app .aioseo-mobile-tabs .tab-links a:hover{color:#005ae0} all-in-one-seo-pack/dist/Lite/assets/css/Taxonomies.DmVln-94.css000064400000001075151222736000020243 0ustar00.aioseo-search-appearance-taxonomies .icon{display:flex;align-items:center}[dir=ltr] .aioseo-search-appearance-taxonomies .icon{margin-right:16px}[dir=rtl] .aioseo-search-appearance-taxonomies .icon{margin-left:16px}.aioseo-search-appearance-taxonomies .aioseo-description ul:not([role=listbox]){list-style:initial;list-style-position:inside;margin:0}[dir=ltr] .aioseo-search-appearance-taxonomies .aioseo-description ul:not([role=listbox]) li{padding-left:5px}[dir=rtl] .aioseo-search-appearance-taxonomies .aioseo-description ul:not([role=listbox]) li{padding-right:5px} all-in-one-seo-pack/dist/Lite/assets/css/Textarea.B3aJQi7q.css000064400000000203151222736000017671 0ustar00.aioseo-textarea-autosize{width:100%;background-color:#fff;border:1px solid #D0D1D7;border-radius:4px;font-size:14px;padding:12px} all-in-one-seo-pack/dist/Lite/assets/css/TitleDescription.c-XkN2H0.css000064400000000465151222736000021324 0ustar00.aioseo-sa-ct-advanced .inline-upsell{display:inline-flex;margin-top:12px}.aioseo-sa-ct-advanced .other-options{margin-top:10px}.aioseo-sa-ct-advanced .other-options:first-child{margin-top:0}.aioseo-sa-ct-title-description .aioseo-google-search-preview[data-v-720a9d0c]{border:1px solid #E8E8EB;padding:16px} all-in-one-seo-pack/dist/Lite/assets/css/Tooltip.DhegAtZB.css000064400000004353151222736000017667 0ustar00.popper{width:auto;background-color:#fafafa;color:#212121;text-align:center;padding:2px;display:inline-block;border-radius:3px;position:absolute;font-size:14px;font-weight:400;border:1px #ebebeb solid;z-index:200000;-moz-box-shadow:rgb(58,58,58) 0 0 6px 0;-webkit-box-shadow:rgb(58,58,58) 0 0 6px 0;box-shadow:#3a3a3a 0 0 6px}.popper .popper__arrow{width:0;height:0;border-style:solid;position:absolute;margin:5px}.popper[x-placement^=top]{margin-bottom:5px}.popper[x-placement^=top] .popper__arrow{border-width:5px 5px 0 5px;border-color:#fafafa transparent transparent transparent;bottom:-5px;margin-top:0;margin-bottom:0}[dir=ltr] .popper[x-placement^=top] .popper__arrow{left:calc(50% - 5px)}[dir=rtl] .popper[x-placement^=top] .popper__arrow{right:calc(50% - 5px)}.popper[x-placement^=bottom]{margin-top:5px}.popper[x-placement^=bottom] .popper__arrow{border-width:0 5px 5px 5px;border-color:transparent transparent #fafafa transparent;top:-5px;margin-top:0;margin-bottom:0}[dir=ltr] .popper[x-placement^=bottom] .popper__arrow{left:calc(50% - 5px)}[dir=rtl] .popper[x-placement^=bottom] .popper__arrow{right:calc(50% - 5px)}[dir=ltr] .popper[x-placement^=right]{margin-left:5px}[dir=rtl] .popper[x-placement^=right]{margin-right:5px}.popper[x-placement^=right] .popper__arrow{top:calc(50% - 5px);margin-left:0;margin-right:0}[dir=ltr] .popper[x-placement^=right] .popper__arrow{border-width:5px 5px 5px 0;border-color:transparent #fafafa transparent transparent;left:-5px}[dir=rtl] .popper[x-placement^=right] .popper__arrow{border-width:5px 0 5px 5px;border-color:transparent transparent transparent #fafafa;right:-5px}[dir=ltr] .popper[x-placement^=left]{margin-right:5px}[dir=rtl] .popper[x-placement^=left]{margin-left:5px}.popper[x-placement^=left] .popper__arrow{top:calc(50% - 5px);margin-left:0;margin-right:0}[dir=ltr] .popper[x-placement^=left] .popper__arrow{border-width:5px 0 5px 5px;border-color:transparent transparent transparent #fafafa;right:-5px}[dir=rtl] .popper[x-placement^=left] .popper__arrow{border-width:5px 5px 5px 0;border-color:transparent #fafafa transparent transparent;left:-5px}.aioseo-tooltip{display:inline-flex;align-items:center;justify-content:center}[dir=ltr] .aioseo-tooltip{margin-left:12px}[dir=rtl] .aioseo-tooltip{margin-right:12px} all-in-one-seo-pack/dist/Lite/assets/css/Twitter.BDmv6m2-.css000064400000000573151222736000017541 0ustar00.aioseo-twitter .inline-upsell{display:inline-flex;margin-top:12px}.aioseo-twitter .twitter-image img{margin-top:20px;width:auto;max-width:525px;max-height:525px;height:auto}.aioseo-twitter .twitter-image.vertical img{max-width:158px;max-height:158px}.aioseo-twitter .twitter-default-image-source .aioseo-select,.aioseo-twitter .default-card-type .aioseo-select{max-width:445px} all-in-one-seo-pack/dist/Lite/assets/css/TwitterPreview.CDpsvIV5.css000064400000011356151222736000021215 0ustar00.aioseo-twitter-preview[data-v-3ab503eb]{--primary-text: #0f1419;--secondary-text: #536471;--tertiary-text: #cfd9de;align-items:center;background-color:#f0f2f5;display:flex;justify-content:center;padding:20px}.aioseo-twitter-preview .twitter-post[data-v-3ab503eb]{background-color:#fff;border-radius:16px;border:1px solid #E8E8EB;max-width:500px;width:100%}.aioseo-twitter-preview .twitter-post .twitter-header[data-v-3ab503eb]{height:65px;padding:0 18px;display:flex;align-items:center}.aioseo-twitter-preview .twitter-post .twitter-header .profile-photo[data-v-3ab503eb]{overflow:hidden;width:40px;height:40px;border:1px solid #E8E8EB;border-radius:50%}.aioseo-twitter-preview .twitter-post .twitter-header .profile-photo svg[data-v-3ab503eb]{height:100%;width:100%}.aioseo-twitter-preview .twitter-post .twitter-header .poster[data-v-3ab503eb]{flex:1 0 auto}[dir=ltr] .aioseo-twitter-preview .twitter-post .twitter-header .poster[data-v-3ab503eb]{margin-left:10px}[dir=rtl] .aioseo-twitter-preview .twitter-post .twitter-header .poster[data-v-3ab503eb]{margin-right:10px}.aioseo-twitter-preview .twitter-post .twitter-header .poster .poster-name[data-v-3ab503eb]{font-size:15px;color:var(--primary-text);font-weight:600}.aioseo-twitter-preview .twitter-post .twitter-header .poster .poster-username[data-v-3ab503eb]{color:var(--secondary-text);font-weight:500;font-size:13px}.aioseo-twitter-preview .twitter-post .twitter-container[data-v-3ab503eb]{margin-bottom:0;padding:0 20px 20px}.aioseo-twitter-preview .twitter-post .twitter-container.summary .twitter-content[data-v-3ab503eb]{flex-direction:row}.aioseo-twitter-preview .twitter-post .twitter-container.summary .twitter-content .twitter-image-preview[data-v-3ab503eb]{align-items:center;background-color:#f7f9f9;background-position:center center;background-repeat:no-repeat;background-size:cover;display:flex;justify-content:center;min-height:127px;min-width:127px}[dir=ltr] .aioseo-twitter-preview .twitter-post .twitter-container.summary .twitter-content .twitter-image-preview[data-v-3ab503eb]{border-right:1px solid var(--tertiary-text)}[dir=rtl] .aioseo-twitter-preview .twitter-post .twitter-container.summary .twitter-content .twitter-image-preview[data-v-3ab503eb]{border-left:1px solid var(--tertiary-text)}.aioseo-twitter-preview .twitter-post .twitter-container.summary .twitter-content .twitter-image-preview svg.aioseo-book[data-v-3ab503eb]{width:50px;color:var(--secondary-text)}.aioseo-twitter-preview .twitter-post .twitter-container.summary_large_image .twitter-image-preview[data-v-3ab503eb]{overflow:hidden;padding-top:56.25%;position:relative}.aioseo-twitter-preview .twitter-post .twitter-container.summary_large_image .twitter-image-preview img[data-v-3ab503eb]{height:100%;object-fit:cover;position:absolute;top:0;width:100%}[dir=ltr] .aioseo-twitter-preview .twitter-post .twitter-container.summary_large_image .twitter-image-preview img[data-v-3ab503eb]{left:0}[dir=rtl] .aioseo-twitter-preview .twitter-post .twitter-container.summary_large_image .twitter-image-preview img[data-v-3ab503eb]{right:0}.aioseo-twitter-preview .twitter-post .twitter-container.summary_large_image .twitter-image-preview svg.aioseo-book[data-v-3ab503eb]{display:none}.aioseo-twitter-preview .twitter-post .twitter-container .twitter-content[data-v-3ab503eb]{border-radius:16px;overflow:hidden;display:flex;flex-direction:column;border:1px solid var(--tertiary-text)}.aioseo-twitter-preview .twitter-post .twitter-container .twitter-content .twitter-site-description[data-v-3ab503eb]{display:flex;flex-direction:column;gap:2px;justify-content:center;padding:12px}.aioseo-twitter-preview .twitter-post .twitter-container .twitter-content .twitter-site-description .site-domain[data-v-3ab503eb],.aioseo-twitter-preview .twitter-post .twitter-container .twitter-content .twitter-site-description .site-title[data-v-3ab503eb],.aioseo-twitter-preview .twitter-post .twitter-container .twitter-content .twitter-site-description .site-description[data-v-3ab503eb]{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;line-height:1.4;letter-spacing:normal;margin:0;padding:0;text-transform:none;overflow-wrap:break-word;word-break:break-word}.aioseo-twitter-preview .twitter-post .twitter-container .twitter-content .twitter-site-description .site-domain[data-v-3ab503eb]{color:var(--secondary-text);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aioseo-twitter-preview .twitter-post .twitter-container .twitter-content .twitter-site-description .site-title[data-v-3ab503eb]{color:var(--primary-text);font-size:17px}.aioseo-twitter-preview .twitter-post .twitter-container .twitter-content .twitter-site-description .site-description[data-v-3ab503eb]{color:var(--secondary-text);font-size:14px} all-in-one-seo-pack/dist/Lite/assets/css/Upsell.BYWwx3_T.css000064400000000233151222736000017470 0ustar00.aioseo-user-avatar[data-v-4705aae0]{border-radius:50%;height:inherit;width:inherit}.aioseo-user-avatar--dannie[data-v-4705aae0]{border:1px solid #D0D1D7} all-in-one-seo-pack/dist/Lite/assets/css/user-profile-tab.BM8uw609.css000064400000037476151222736000021242 0ustar00#aioseo-author-seo-meta-data .aioseo-row.aioseo-settings-row .aioseo-description{margin:12px 0}.aioseo-wp-table table.widefat{border:1px solid #c3c4c7;box-shadow:0 1px 1px #0000000a;background:#fff}.aioseo-wp-table .postbox table.widefat{box-shadow:none}.aioseo-wp-table .widefat{border-spacing:0;width:100%;clear:both;margin:0}.aioseo-wp-table .widefat *{word-wrap:break-word}.aioseo-wp-table .widefat a,.aioseo-wp-table .widefat button.button-link{text-decoration:none}.aioseo-wp-table .widefat td,.aioseo-wp-table .widefat th{padding:8px 10px}.aioseo-wp-table .widefat td:has(.row-actions),.aioseo-wp-table .widefat th:has(.row-actions){padding-bottom:10px}.aioseo-wp-table .widefat thead th,.aioseo-wp-table .widefat thead td{border-bottom:1px solid #c3c4c7}.aioseo-wp-table .widefat tfoot th,.aioseo-wp-table .widefat tfoot td{border-top:1px solid #c3c4c7;border-bottom:none}.aioseo-wp-table .widefat .no-items td{border-bottom-width:0}.aioseo-wp-table .widefat td{vertical-align:top}.aioseo-wp-table .widefat td,.aioseo-wp-table .widefat td p,.aioseo-wp-table .widefat td ol,.aioseo-wp-table .widefat td ul,.aioseo-wp-table .widefat th,.aioseo-wp-table .widefat thead td,.aioseo-wp-table .widefat tfoot td{font-size:14px;line-height:22px}[dir=ltr] .aioseo-wp-table .widefat th,[dir=ltr] .aioseo-wp-table .widefat thead td,[dir=ltr] .aioseo-wp-table .widefat tfoot td{text-align:left}[dir=rtl] .aioseo-wp-table .widefat th,[dir=rtl] .aioseo-wp-table .widefat thead td,[dir=rtl] .aioseo-wp-table .widefat tfoot td{text-align:right}.aioseo-wp-table .widefat th input,.aioseo-wp-table .widefat thead td input,.aioseo-wp-table .widefat tfoot td input{padding:0;vertical-align:text-top}[dir=ltr] .aioseo-wp-table .widefat th input,[dir=ltr] .aioseo-wp-table .widefat thead td input,[dir=ltr] .aioseo-wp-table .widefat tfoot td input{margin:0 0 0 8px}[dir=rtl] .aioseo-wp-table .widefat th input,[dir=rtl] .aioseo-wp-table .widefat thead td input,[dir=rtl] .aioseo-wp-table .widefat tfoot td input{margin:0 8px 0 0}.aioseo-wp-table .widefat .check-column{line-height:1;width:2.2em;padding:6px 0 25px;vertical-align:top}.aioseo-wp-table .widefat tbody th.check-column{padding:9px 0 22px}[dir=ltr] .aioseo-wp-table .widefat thead td.check-column,[dir=ltr] .aioseo-wp-table .widefat tbody th.check-column,[dir=ltr] .aioseo-wp-table .widefat tfoot td.check-column{padding:11px 0 0 3px}[dir=rtl] .aioseo-wp-table .widefat thead td.check-column,[dir=rtl] .aioseo-wp-table .widefat tbody th.check-column,[dir=rtl] .aioseo-wp-table .widefat tfoot td.check-column{padding:11px 3px 0 0}.aioseo-wp-table .widefat thead td.check-column,.aioseo-wp-table .widefat tfoot td.check-column{padding-top:4px;vertical-align:middle}.aioseo-wp-table .no-js .widefat thead .check-column input,.aioseo-wp-table .no-js .widefat tfoot .check-column input{display:none}.aioseo-wp-table .widefat .num{text-align:center}.aioseo-wp-table .widefat th#comments{vertical-align:middle}.aioseo-wp-table .widefat thead th,.aioseo-wp-table .widefat thead td,.aioseo-wp-table .widefat tfoot th,.aioseo-wp-table .widefat tfoot td{line-height:1.4em}.aioseo-wp-table .widefat th,.aioseo-wp-table .widefat td{color:#50575e}.aioseo-wp-table .widefat th,.aioseo-wp-table .widefat thead td,.aioseo-wp-table .widefat tfoot td{font-weight:400}.aioseo-wp-table .widefat thead tr th,.aioseo-wp-table .widefat thead tr td,.aioseo-wp-table .widefat tfoot tr th,.aioseo-wp-table .widefat tfoot tr td{color:#2c3338}.aioseo-wp-table .widefat td p{margin:2px 0 .8em}.aioseo-wp-table .widefat p,.aioseo-wp-table .widefat ol,.aioseo-wp-table .widefat ul{color:#2c3338}.aioseo-wp-table .widefat .column-comment p{margin:.6em 0}.aioseo-wp-table .widefat .column-comment ul{list-style:initial}[dir=ltr] .aioseo-wp-table .widefat .column-comment ul{margin-left:2em}[dir=rtl] .aioseo-wp-table .widefat .column-comment ul{margin-right:2em}.aioseo-wp-table .row-actions span.delete a,.aioseo-wp-table .row-actions span.trash a,.aioseo-wp-table .row-actions span.spam a{color:#b32d2e}.aioseo-wp-table .row-actions .delete a:hover,.aioseo-wp-table .row-actions .trash a:hover,.aioseo-wp-table .row-actions .spam a:hover{color:#b32d2e;border:none}.aioseo-wp-table .row-actions{color:#a7aaad;font-size:12px;line-height:18px;padding:2px 0 0;position:relative}[dir=ltr] .aioseo-wp-table .row-actions{left:-9999em}[dir=rtl] .aioseo-wp-table .row-actions{right:-9999em}.aioseo-wp-table .no-js .row-actions,.aioseo-wp-table tr:hover .row-actions,.aioseo-wp-table .row-actions.visible{position:static}.aioseo-wp-table .widefat thead th,.aioseo-wp-table .widefat thead td,.aioseo-wp-table .widefat tfoot th,.aioseo-wp-table .widefat tfoot td{padding:0 10px;max-height:38px;height:38px}.aioseo-wp-table .widefat thead th.sortable a,.aioseo-wp-table .widefat tfoot th.sortable a{display:flex;align-items:center;height:36px;padding:0;line-height:36px}.aioseo-wp-table .widefat thead th.sortable a .sorting-indicator,.aioseo-wp-table .widefat tfoot th.sortable a .sorting-indicator{margin-top:0}body.vue-build{margin:0}body.vue-build .aioseo-app{min-height:calc(100vh - var(--aioseo-header-height, 72px))}body.vue-build .aioseo-app .aioseo-main{padding-bottom:30px}body.aioseo-setup-wizard{margin:0;padding:0}body.aioseo-setup-wizard .aioseo-app{min-height:100vh;width:100%}body[class*=page_aioseo]{--aioseo-gutter: 20px;--aioseo-header-height: 72px;--aioseo-footer-height: 150px}[dir=ltr] body[class*=page_aioseo] .aioseo-header,[dir=ltr] body[class*=page_aioseo] .aioseo-notifications .overlay{left:160px}[dir=rtl] body[class*=page_aioseo] .aioseo-header,[dir=rtl] body[class*=page_aioseo] .aioseo-notifications .overlay{right:160px}[dir=ltr] body[class*=page_aioseo].folded .aioseo-header,[dir=ltr] body[class*=page_aioseo].folded .aioseo-notifications .overlay{left:36px}[dir=rtl] body[class*=page_aioseo].folded .aioseo-header,[dir=rtl] body[class*=page_aioseo].folded .aioseo-notifications .overlay{right:36px}body[class*=page_aioseo] #wpcontent{padding:0;background-color:#f3f4f5}body[class*=page_aioseo] .update-nag{display:none}body[class*=page_aioseo] .aioseo-app{min-height:calc(100vh - var(--aioseo-header-height) - 65px)}body[class*=page_aioseo].admin-bar .aioseo-app{min-height:calc(100vh - var(--aioseo-header-height) - 65px - 32px - var(--aioseo-footer-height))}@media screen and (max-width: 782px){body[class*=page_aioseo].admin-bar .aioseo-app{min-height:calc(100vh - var(--aioseo-header-height) - 65px - 46px - var(--aioseo-footer-height))}}@media screen and (max-width: 600px){body[class*=page_aioseo].admin-bar .aioseo-app{min-height:calc(100vh - 111px)}}body[class*=page_aioseo].admin-bar .aioseo-header,body[class*=page_aioseo].admin-bar .aioseo-notifications .overlay,body[class*=page_aioseo].admin-bar .aioseo-notifications .notification-menu{top:32px}body[class*=page_aioseo].aioseo-has-bar{--aioseo-header-height: 112px}@media screen and (max-width: 782px){body[class*=page_aioseo].aioseo-has-bar{--aioseo-header-height: 132px}}body[class*=page_aioseo].aioseo-flyout-menu-enabled .aioseo-app{padding-bottom:40px}@media screen and (max-width: 960px){[dir=ltr] body[class*=page_aioseo].auto-fold .aioseo-header,[dir=ltr] body[class*=page_aioseo].auto-fold .aioseo-notifications .overlay{left:36px}[dir=rtl] body[class*=page_aioseo].auto-fold .aioseo-header,[dir=rtl] body[class*=page_aioseo].auto-fold .aioseo-notifications .overlay{right:36px}}@media screen and (max-width: 782px){body[class*=page_aioseo] #wpbody-content{padding-bottom:20px}body[class*=page_aioseo].admin-bar .aioseo-header,body[class*=page_aioseo].admin-bar .aioseo-notifications .overlay,body[class*=page_aioseo].admin-bar .aioseo-notifications .notification-menu{top:46px}[dir=ltr] body[class*=page_aioseo] .aioseo-header,[dir=ltr] body[class*=page_aioseo] .aioseo-notifications .overlay{left:0}[dir=rtl] body[class*=page_aioseo] .aioseo-header,[dir=rtl] body[class*=page_aioseo] .aioseo-notifications .overlay{right:0}[dir=ltr] body[class*=page_aioseo].auto-fold .aioseo-header,[dir=ltr] body[class*=page_aioseo].auto-fold .aioseo-notifications .overlay{left:0}[dir=rtl] body[class*=page_aioseo].auto-fold .aioseo-header,[dir=rtl] body[class*=page_aioseo].auto-fold .aioseo-notifications .overlay{right:0}body[class*=page_aioseo].aioseo-flyout-menu-enabled .aioseo-app{padding-bottom:100px}}@media screen and (max-width: 600px){body[class*=page_aioseo].admin-bar .aioseo-notifications .overlay,body[class*=page_aioseo].admin-bar .aioseo-notifications .menu{position:absolute;top:46px}body[class*=page_aioseo].admin-bar .aioseo-header{position:relative;top:0}}.aioseo-app,#aioseo-user-profile-tab{--aioseo-gutter: 20px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;color-scheme:light;box-sizing:border-box;position:relative}@media only screen and (max-width: 782px){.aioseo-app,#aioseo-user-profile-tab{--aioseo-gutter: 16px}}.aioseo-app .sm,.aioseo-app .small,#aioseo-user-profile-tab .sm,#aioseo-user-profile-tab .small{font-size:12px;line-height:18px}.aioseo-app .medium,#aioseo-user-profile-tab .medium{font-size:14px;line-height:22px}.aioseo-app .route-fade-enter-active,.aioseo-app .route-fade-leave-active,#aioseo-user-profile-tab .route-fade-enter-active,#aioseo-user-profile-tab .route-fade-leave-active{transition:all .2s}.aioseo-app .route-fade-enter-from,.aioseo-app .route-fade-leave-active,#aioseo-user-profile-tab .route-fade-enter-from,#aioseo-user-profile-tab .route-fade-leave-active{opacity:0}[dir=ltr] .aioseo-app .route-fade-enter-from,[dir=ltr] #aioseo-user-profile-tab .route-fade-enter-from{transform:translate(30px)}[dir=rtl] .aioseo-app .route-fade-enter-from,[dir=rtl] #aioseo-user-profile-tab .route-fade-enter-from,[dir=ltr] .aioseo-app .route-fade-leave-active,[dir=ltr] #aioseo-user-profile-tab .route-fade-leave-active{transform:translate(-30px)}[dir=rtl] .aioseo-app .route-fade-leave-active,[dir=rtl] #aioseo-user-profile-tab .route-fade-leave-active{transform:translate(30px)}.aioseo-app *,.aioseo-app :after,.aioseo-app :before,#aioseo-user-profile-tab *,#aioseo-user-profile-tab :after,#aioseo-user-profile-tab :before{box-sizing:inherit}.aioseo-app * *:not(.aioseo-button):not(.aioseo-input),.aioseo-app :after *:not(.aioseo-button):not(.aioseo-input),.aioseo-app :before *:not(.aioseo-button):not(.aioseo-input),#aioseo-user-profile-tab * *:not(.aioseo-button):not(.aioseo-input),#aioseo-user-profile-tab :after *:not(.aioseo-button):not(.aioseo-input),#aioseo-user-profile-tab :before *:not(.aioseo-button):not(.aioseo-input){line-height:1.4}.aioseo-app p,#aioseo-user-profile-tab p{font-size:14px;line-height:22px}.aioseo-app a:not(.aioseo-button),#aioseo-user-profile-tab a:not(.aioseo-button){color:#005ae0}.aioseo-app a:not(.aioseo-button).text-white,#aioseo-user-profile-tab a:not(.aioseo-button).text-white{color:#fff}.aioseo-app a:not(.aioseo-button):hover,#aioseo-user-profile-tab a:not(.aioseo-button):hover{text-decoration:none}.aioseo-app a:not(.aioseo-button).no-underline,#aioseo-user-profile-tab a:not(.aioseo-button).no-underline{text-decoration:none}.aioseo-app h2,#aioseo-user-profile-tab h2{font-size:32px;margin:0}.aioseo-app .aioseo-main,#aioseo-user-profile-tab .aioseo-main{height:100%}.aioseo-app .aioseo-main>.aioseo-container,#aioseo-user-profile-tab .aioseo-main>.aioseo-container{margin-top:0;padding-block:var(--aioseo-gutter)}@media screen and (min-width: 601px){.aioseo-app .aioseo-main>.aioseo-container,#aioseo-user-profile-tab .aioseo-main>.aioseo-container{margin-top:var(--aioseo-header-height)}}.aioseo-app .aioseo-main>.aioseo-container>.aioseo-tabs .aioseo-mobile-tabs,#aioseo-user-profile-tab .aioseo-main>.aioseo-container>.aioseo-tabs .aioseo-mobile-tabs{margin-top:0}.aioseo-app .aioseo-main .save-changes,#aioseo-user-profile-tab .aioseo-main .save-changes{display:flex;justify-content:flex-end}.aioseo-app .d-flex,#aioseo-user-profile-tab .d-flex{display:flex}.aioseo-app .aioseo-section-description,#aioseo-user-profile-tab .aioseo-section-description{font-size:14px;color:#141b38;line-height:22px;padding-bottom:16px}.aioseo-app .aioseo-description-text,#aioseo-user-profile-tab .aioseo-description-text{font-size:14px;line-height:22px;color:#141b38}.aioseo-app .aioseo-description-text.aioseo-error,#aioseo-user-profile-tab .aioseo-description-text.aioseo-error{color:#df2a4a}.aioseo-app .aioseo-description,#aioseo-user-profile-tab .aioseo-description{font-size:14px;line-height:22px;margin:0;color:#141b38}.aioseo-app .aioseo-description.no-margin,#aioseo-user-profile-tab .aioseo-description.no-margin{margin:0}.aioseo-app .aioseo-description.aioseo-error,#aioseo-user-profile-tab .aioseo-description.aioseo-error{color:#df2a4a}.aioseo-app .aioseo-description>.aioseo-toggle,#aioseo-user-profile-tab .aioseo-description>.aioseo-toggle{margin:0}.aioseo-app *+.aioseo-description,#aioseo-user-profile-tab *+.aioseo-description{margin-top:8px}.aioseo-app *+.aioseo-description:has(.aioseo-alert),#aioseo-user-profile-tab *+.aioseo-description:has(.aioseo-alert){margin-top:12px}.aioseo-app .max-recommended-count,#aioseo-user-profile-tab .max-recommended-count{color:#434960;margin-top:4px;font-size:14px}[dir=ltr] .aioseo-app .max-recommended-count,[dir=ltr] #aioseo-user-profile-tab .max-recommended-count{text-align:right}[dir=rtl] .aioseo-app .max-recommended-count,[dir=rtl] #aioseo-user-profile-tab .max-recommended-count{text-align:left}.aioseo-app .max-recommended-count strong.error,#aioseo-user-profile-tab .max-recommended-count strong.error{border:none;color:#df2a4a}.aioseo-app .popper,#aioseo-user-profile-tab .popper{font-size:12px;padding:20px;background-color:#fff;border:none;border-radius:3px;box-shadow:0 3px 4.8px #20476645;z-index:9999;max-width:350px;line-height:1.4;white-space:normal}[dir=ltr] .aioseo-app .popper,[dir=ltr] #aioseo-user-profile-tab .popper{text-align:left}[dir=rtl] .aioseo-app .popper,[dir=rtl] #aioseo-user-profile-tab .popper{text-align:right}.aioseo-app .popper.action,#aioseo-user-profile-tab .popper.action{padding:8px 12px;background-color:#141b38;color:#fff}.aioseo-app .popper.action .popper__arrow,#aioseo-user-profile-tab .popper.action .popper__arrow{border-top-color:#141b38}.aioseo-app .popper[x-placement^=bottom],#aioseo-user-profile-tab .popper[x-placement^=bottom]{box-shadow:0 2px 4.8px #20476645}.aioseo-app .popper .aioseo-description,#aioseo-user-profile-tab .popper .aioseo-description{margin:0}.aioseo-app .aioseo-row-highlight,#aioseo-user-profile-tab .aioseo-row-highlight{animation-name:color;animation-duration:.5s;animation-iteration-count:2}@keyframes color{0%{background-color:#fff}50%{background-color:#00aa63}to{background-color:#fff}}.column-aioseo-details{position:relative;width:20%}.no-underline{text-decoration:none}body,#wpfooter{padding-top:0;background-color:#f3f4f5}#aioseo-modal-portal{width:0;height:0}h2.woo-nav-tab-wrapper{display:none!important}#aioseo-user-profile-tab{--aioseo-gutter: 20px;max-width:1220px}#aioseo-user-profile-tab .navigation-bar{border-bottom:1px solid #c3c4c7;margin:0;padding-top:9px;padding-bottom:0;line-height:inherit}#aioseo-user-profile-tab .navigation-bar a{display:flex;align-items:center;border:1px solid #c3c4c7;border-bottom:none;padding:5px 10px;font-size:14px;line-height:1.71428571;font-weight:600;background:#dcdcde;color:#50575e;text-decoration:none;white-space:nowrap}[dir=ltr] #aioseo-user-profile-tab .navigation-bar a{float:left;margin-left:.5em}[dir=rtl] #aioseo-user-profile-tab .navigation-bar a{float:right;margin-right:.5em}#aioseo-user-profile-tab .navigation-bar a:hover{background-color:#fff;color:#3c434a}#aioseo-user-profile-tab .navigation-bar a.active,#aioseo-user-profile-tab .navigation-bar a.active:hover{margin-bottom:-1px;color:#3c434a;background-color:#f1f1f1;border-bottom:1px solid #f0f0f1;border-bottom-color:#f1f1f1}#aioseo-user-profile-tab .navigation-bar a svg{width:20px;height:20px}[dir=ltr] #aioseo-user-profile-tab .navigation-bar a svg{margin-right:8px}[dir=rtl] #aioseo-user-profile-tab .navigation-bar a svg{margin-left:8px}#aioseo-user-profile-tab .navigation-bar:after{content:"";display:table;clear:both}#aioseo-user-profile-tab .aioseo-description{margin:8px 0 0} all-in-one-seo-pack/dist/Lite/assets/css/VideoSitemap.B1FIEBxm.css000064400000007161151222736000020473 0ustar00.aioseo-video-sitemap-lite .aioseo-card .content{min-height:600px}.aioseo-video-sitemap-lite .aioseo-sitemap-preview{display:flex;align-items:center;margin-bottom:10px}[dir=ltr] .aioseo-video-sitemap-lite .aioseo-sitemap-preview{margin-right:10px}[dir=rtl] .aioseo-video-sitemap-lite .aioseo-sitemap-preview{margin-left:10px}.aioseo-video-sitemap-lite .aioseo-sitemap-preview .aioseo-select{max-width:180px}[dir=ltr] .aioseo-video-sitemap-lite .aioseo-sitemap-preview .aioseo-select{margin-right:10px}[dir=rtl] .aioseo-video-sitemap-lite .aioseo-sitemap-preview .aioseo-select{margin-left:10px}.aioseo-video-sitemap-lite .aioseo-sitemap-preview svg.aioseo-external{width:14px;height:14px}[dir=ltr] .aioseo-video-sitemap-lite .aioseo-sitemap-preview svg.aioseo-external{margin-right:10px}[dir=rtl] .aioseo-video-sitemap-lite .aioseo-sitemap-preview svg.aioseo-external{margin-left:10px}.aioseo-video-sitemap .aioseo-content-width,.aioseo-video-sitemap .aioseo-links-per-site{max-width:110px}.aioseo-video-sitemap .aioseo-sitemap-preview{display:flex;align-items:center;margin-bottom:10px}[dir=ltr] .aioseo-video-sitemap .aioseo-sitemap-preview{margin-right:10px}[dir=rtl] .aioseo-video-sitemap .aioseo-sitemap-preview{margin-left:10px}.aioseo-video-sitemap .aioseo-sitemap-preview .aioseo-select{max-width:180px}[dir=ltr] .aioseo-video-sitemap .aioseo-sitemap-preview .aioseo-select{margin-right:10px}[dir=rtl] .aioseo-video-sitemap .aioseo-sitemap-preview .aioseo-select{margin-left:10px}.aioseo-video-sitemap .aioseo-sitemap-preview svg.aioseo-external{width:14px;height:14px}[dir=ltr] .aioseo-video-sitemap .aioseo-sitemap-preview svg.aioseo-external{margin-right:10px}[dir=rtl] .aioseo-video-sitemap .aioseo-sitemap-preview svg.aioseo-external{margin-left:10px}.aioseo-video-sitemap .aioseo-exclude-pages-posts .aioseo-select{max-width:600px;display:inline-block}[dir=ltr] .aioseo-video-sitemap .aioseo-exclude-pages-posts .aioseo-select{margin-right:16px}[dir=rtl] .aioseo-video-sitemap .aioseo-exclude-pages-posts .aioseo-select{margin-left:16px}.aioseo-video-sitemap .aioseo-exclude-pages-posts .aioseo-select .multiselect__option{display:flex}.aioseo-video-sitemap .aioseo-exclude-pages-posts .aioseo-select .multiselect__option--highlight .option-title{color:#005ae0}.aioseo-video-sitemap .aioseo-exclude-pages-posts .option{flex:1 0 auto}.aioseo-video-sitemap .aioseo-exclude-pages-posts .option .option-title{font-weight:500;font-size:16px;color:#141b38}.aioseo-video-sitemap .aioseo-exclude-pages-posts .option .option-title .search-term{font-weight:700}.aioseo-video-sitemap .aioseo-exclude-pages-posts .option .option-details{display:flex;align-items:center;font-size:14px;color:#8c8f9a}[dir=ltr] .aioseo-video-sitemap .aioseo-exclude-pages-posts .option .option-details span{margin-right:15px}[dir=rtl] .aioseo-video-sitemap .aioseo-exclude-pages-posts .option .option-details span{margin-left:15px}.aioseo-video-sitemap .aioseo-exclude-pages-posts .option-permalink{display:flex;align-items:center}.aioseo-video-sitemap .aioseo-exclude-pages-posts .option-permalink svg.aioseo-external{width:15px;height:15px;color:#434960}.aioseo-video-sitemap .aioseo-exclude-pages-posts .multiselect-toggle{padding:10px 13px;width:40px;position:absolute;height:36px;top:2px;text-align:center;z-index:1}[dir=ltr] .aioseo-video-sitemap .aioseo-exclude-pages-posts .multiselect-toggle{right:2px}[dir=rtl] .aioseo-video-sitemap .aioseo-exclude-pages-posts .multiselect-toggle{left:2px}.aioseo-video-sitemap .aioseo-exclude-pages-posts .multiselect-toggle svg.aioseo-add-plus{width:14px;height:14px;color:#000}.aioseo-video-sitemap .aioseo-video-embed .aioseo-checkbox:first-child{margin-bottom:10px} all-in-one-seo-pack/dist/Lite/assets/css/WebmasterTools.DtGf1JVL.css000064400000010260151222736000021072 0ustar00.tool-settings-google-analytics .mi-alert{font-size:16px}.tool-settings-google-analytics .mi-alert .aioseo-card{margin:0}.tool-settings-google-analytics .mi-alert .aioseo-ga-activated{display:flex;align-items:center}.tool-settings-google-analytics .mi-alert .aioseo-ga-activated>div{flex:1}.tool-settings-index-now .inline-upsell{display:inline-flex;margin-top:12px;gap:10px}.tool-settings-index-now .inline-upsell.is-pro{min-width:100%;max-width:100%}.tool-settings-index-now .aioseo-index-now-key{display:flex}.tool-settings-microsoft-clarity .aioseo-alert{display:inline-block}.aioseo-webmaster-tools .webmaster-tools-description{font-size:14px;margin-bottom:12px}.aioseo-webmaster-tools .webmaster-tools-spacer .aioseo-col{padding-block:0}.aioseo-webmaster-tools .webmaster-tools-spacer .aioseo-col div{margin:1px 0 var(--aioseo-gutter);border-bottom:1px solid #E8E8EB}.aioseo-webmaster-tools .webmaster-tools-toggles.aioseo-row{--aioseo-gutter: 16px;display:flex;row-gap:0}.aioseo-webmaster-tools .tool-toggle{font-size:16px;-webkit-user-select:none;user-select:none;margin-bottom:var(--aioseo-gutter)}.aioseo-webmaster-tools .tool-toggle>div{cursor:pointer;height:165px;border:1px solid #D0D1D7;border-radius:3px;padding:12px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;color:#141b38;text-align:center;position:relative}.aioseo-webmaster-tools .tool-toggle>div .logo{flex:1;padding:0;display:flex;align-items:center;max-height:calc(100% - 20px)}.aioseo-webmaster-tools .tool-toggle>div .logo .logo-svg{max-width:100%;max-height:60px;width:100%;height:100%}.aioseo-webmaster-tools .tool-toggle>div.connected svg.aioseo-circle-check-solid{width:21px;height:21px;color:#00aa63;position:absolute;top:10px}[dir=ltr] .aioseo-webmaster-tools .tool-toggle>div.connected svg.aioseo-circle-check-solid{right:10px}[dir=rtl] .aioseo-webmaster-tools .tool-toggle>div.connected svg.aioseo-circle-check-solid{left:10px}.aioseo-webmaster-tools .tool-toggle>div.connected.active svg.aioseo-circle-check-solid{top:9px}[dir=ltr] .aioseo-webmaster-tools .tool-toggle>div.connected.active svg.aioseo-circle-check-solid{right:9px}[dir=rtl] .aioseo-webmaster-tools .tool-toggle>div.connected.active svg.aioseo-circle-check-solid{left:9px}.aioseo-webmaster-tools .tool-toggle>div.active{padding:11px;font-weight:600;border:2px solid #005AE0;box-shadow:0 5px 10px #005ae01a}.aioseo-webmaster-tools .tool-toggle>div.active.connected{border-color:#00aa63}.aioseo-webmaster-tools .tool-settings-slide{width:100%}.aioseo-webmaster-tools .tool-settings-slide[aria-expanded=true]{margin-bottom:var(--aioseo-gutter)}.aioseo-webmaster-tools .tool-settings-slide .tool-settings>div{padding:16px;background-color:#f9f9fa;border-radius:3px;border-bottom:1px solid #E8E8EB}.aioseo-webmaster-tools .tool-settings-slide .tool-settings>div:last-child{border-bottom:none}.aioseo-webmaster-tools .tool-settings-slide .tool-settings .aioseo-input{max-width:440px}[dir=ltr] .aioseo-webmaster-tools .tool-settings-slide .tool-settings .aioseo-input{margin-right:10px}[dir=rtl] .aioseo-webmaster-tools .tool-settings-slide .tool-settings .aioseo-input{margin-left:10px}.aioseo-webmaster-tools .tool-settings-slide .tool-settings .aioseo-textarea-autosize{max-width:400px}.aioseo-webmaster-tools .tool-settings-slide .tool-settings .aioseo-button svg.aioseo-external{width:14px;height:14px}[dir=ltr] .aioseo-webmaster-tools .tool-settings-slide .tool-settings .aioseo-button svg.aioseo-external{margin-right:10px}[dir=rtl] .aioseo-webmaster-tools .tool-settings-slide .tool-settings .aioseo-button svg.aioseo-external{margin-left:10px}.aioseo-webmaster-tools .tool-settings-slide .aioseo-input-container .aioseo-input input{height:40px;padding:10px;font-size:14px}.aioseo-webmaster-tools .tool-settings-slide .inline-upsell{display:inline-flex;align-items:center;justify-content:space-between;margin-top:16px;padding:8px 12px;font-weight:400}.aioseo-webmaster-tools .tool-settings-slide .aioseo-alert{padding:8px 12px;font-weight:400;margin-top:16px}.aioseo-webmaster-tools .tool-settings-slide .tool-settings-microsoft-clarity .aioseo-description+br{display:none}.aioseo-webmaster-tools .aioseo-settings-row .settings-name .name.align{line-height:22px;margin-bottom:12px} all-in-one-seo-pack/dist/Lite/assets/css/Welcome.DoyAQbZt.css000064400000006160151222736000017673 0ustar00.aioseo-setup-wizard-welcome{padding:25px;height:100vh;display:flex;align-items:center;justify-content:center;overflow:hidden}.aioseo-setup-wizard-welcome svg.aioseo-giant-gear{width:904px;min-width:904px;height:auto;color:#dddee2;opacity:.3}.aioseo-setup-wizard-welcome .aioseo-welcome-container{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px}.aioseo-setup-wizard-welcome .aioseo-welcome-container svg.aioseo-logo{height:40px;margin-top:-60px}.aioseo-setup-wizard-welcome .aioseo-welcome-container .aioseo-welcome-content{position:relative;width:100%;max-width:640px;background-color:#fff;border:1px solid #E8E8EB;box-shadow:0 2px 10px #005ae033;padding:40px;display:flex;justify-content:center;flex-direction:column;text-align:center}.aioseo-setup-wizard-welcome .aioseo-welcome-container .aioseo-welcome-content .aioseo-go-back{position:absolute;bottom:-120px;align-self:center}.aioseo-setup-wizard-welcome .aioseo-welcome-container .aioseo-welcome-content .header{font-size:24px;color:#141b38;font-weight:600;margin-bottom:30px}.aioseo-setup-wizard-welcome .aioseo-welcome-container .aioseo-welcome-content .description{line-height:1.4;font-size:16px;color:#434960}.aioseo-setup-wizard-welcome .aioseo-welcome-container .aioseo-welcome-content .aioseo-button{margin-top:20px;max-width:265px;align-self:center}@media screen and (max-width: 782px){.aioseo-setup-wizard-welcome .aioseo-welcome-container .aioseo-welcome-content{padding:30px}}.aioseo-setup-wizard-welcome .modal-wrapper .modal-container{max-width:600px}.aioseo-setup-wizard-welcome .modal-wrapper .modal-container .modal-header{border-bottom:none;font-size:18px}.aioseo-setup-wizard-welcome .aioseo-modal-body{padding:0 30px 30px;display:flex;flex-direction:column;position:relative}.aioseo-setup-wizard-welcome .aioseo-modal-body h3{font-size:20px;margin-bottom:16px}.aioseo-setup-wizard-welcome .aioseo-modal-body .reset-description{font-size:16px;color:#141b38;margin-bottom:16px;max-width:515px;line-height:24px}[dir=ltr] .aioseo-setup-wizard-welcome .aioseo-modal-body .reset-description{text-align:left}[dir=rtl] .aioseo-setup-wizard-welcome .aioseo-modal-body .reset-description{text-align:right}.aioseo-setup-wizard-welcome .aioseo-modal-body button.close{position:absolute;top:11px;width:24px;height:24px;background-color:#fff;border:none;display:flex;align-items:center}[dir=ltr] .aioseo-setup-wizard-welcome .aioseo-modal-body button.close{right:11px}[dir=rtl] .aioseo-setup-wizard-welcome .aioseo-modal-body button.close{left:11px}.aioseo-setup-wizard-welcome .aioseo-modal-body button.close svg.aioseo-close{cursor:pointer;width:14px;height:14px}.aioseo-setup-wizard-welcome .aioseo-modal-body .aioseo-description{max-width:510px;text-align:center}.aioseo-setup-wizard-welcome .aioseo-modal-body .aioseo-button:not(.close){margin-top:16px}.aioseo-setup-wizard-welcome .aioseo-modal-body div.actions{display:flex;justify-content:flex-end}[dir=ltr] .aioseo-setup-wizard-welcome .aioseo-modal-body div.actions a{margin-right:10px}[dir=rtl] .aioseo-setup-wizard-welcome .aioseo-modal-body div.actions a{margin-left:10px} all-in-one-seo-pack/dist/Lite/assets/css/wpbakery.CQpQmzJO.css000064400000003727151222736000020101 0ustar00.aioseo-limit-modified-date-wpbakery{height:100%;position:relative}[dir=ltr] .aioseo-limit-modified-date-wpbakery{margin-right:10px}[dir=rtl] .aioseo-limit-modified-date-wpbakery{margin-left:10px}.aioseo-limit-modified-date-wpbakery__toggle{height:100%;cursor:pointer;background:#fff;transition:background-color .2s ease-in-out;display:flex;justify-content:center;align-items:center;position:relative}[dir=ltr] .aioseo-limit-modified-date-wpbakery__toggle{border-top-right-radius:5px;border-bottom-right-radius:5px}[dir=rtl] .aioseo-limit-modified-date-wpbakery__toggle{border-top-left-radius:5px;border-bottom-left-radius:5px}.aioseo-limit-modified-date-wpbakery__toggle .aioseo-caret{width:18px;height:18px;transition:transform .3s;margin:0 5px}[dir=ltr] .aioseo-limit-modified-date-wpbakery__toggle .aioseo-caret.rotated{transform:rotate(-180deg)}[dir=rtl] .aioseo-limit-modified-date-wpbakery__toggle .aioseo-caret.rotated{transform:rotate(180deg)}.aioseo-limit-modified-date-wpbakery__toggle:before{content:"";width:1px;height:80%;background-color:#34434a;opacity:.2}.aioseo-limit-modified-date-wpbakery__toggle:hover{background-color:#e9f2f6}.vc_navbar-frontend:not(.vc_post-custom-layout-selected) .aioseo-limit-modified-date-wpbakery__toggle{opacity:.2;pointer-events:none}.aioseo-limit-modified-date-wpbakery__options{position:absolute;top:100%;width:200px;display:flex;justify-content:end}[dir=ltr] .aioseo-limit-modified-date-wpbakery__options{right:0}[dir=rtl] .aioseo-limit-modified-date-wpbakery__options{left:0}.aioseo-limit-modified-date-wpbakery__option{padding:15px;line-height:1;color:#fff;cursor:pointer;transition:background-color .2s ease-in-out;background-color:#00447f}.aioseo-limit-modified-date-wpbakery__option:hover{background-color:#0772ce}.aioseo-wpbakery-integration{padding:12px 30px}.aioseo-wpbakery-integration>.aioseo-score-button{background:#fff;cursor:pointer}.aioseo-wpbakery-integration .aioseo-gear-icon{width:28px;height:28px;color:#fff;margin:2px 0;cursor:pointer} all-in-one-seo-pack/dist/Lite/assets/css/WpCode.A-6p6S1k.css000064400000001010151222736000017161 0ustar00.aioseo-tools-wpcode{position:relative}.aioseo-wpcode-snippet{height:100%;border:1px solid #E8E8EB;background:#fff;box-shadow:0 2px 5px #0000000d;color:#141b38;display:flex;flex-direction:column}.aioseo-wpcode-snippet .wpcode-snippet-body{padding:20px 20px 10px;flex:1;line-height:22px}.aioseo-wpcode-snippet .wpcode-snippet-footer{padding:15px;justify-content:flex-end;display:flex}.aioseo-wpcode-snippet .snippet-title{display:flex;align-items:center;font-size:16px;font-weight:600;margin-bottom:16px;line-height:1.4} all-in-one-seo-pack/dist/Lite/assets/images/afwp.CeIvddre.png000064400000004304151222736000017734 0ustar00PNG  IHDR<q pHYs  vIDATx1ED 9!""!-]Dj`3q[s;=jٞWU5Eƻ=_WW.k@&dK&d2%X2% , ,L`V0{Z_/ώ>Z|ߓ `(f1G߮o {? =h <P}X ^K5PχnZ8KX ^@m?b/)<@5<*]EPs v}%T+1`A'YjQHM Pm ,-&O65X^wKZgu[eZ[eZ8\'7eHg&peQӀ}Ȼ,2XƤ37 HX9ΎvݍB0X ۢbJ|XK`!&c|T,)PE(0b ))b,AXZ CɽRN?NaH ޝ<2d9ѱv;L][Kgdl3,qTG:ΌY<6xfCgJc ~JqhBء ^<7c[ ۵[4Z*R&UݝW'h2б%B©):t=SK%0BB\Ėcc֒uGH-v\[y=҉警%x[m{-*XlO6O+E8,\%,f5 , ĐERƑ- ]r[<3M82]L{1U3&>2f<z/Xcyr5a^InEd&=Y765qVrv.;6e,E}9 cʸPbjw4^+eHG5Kl;CgL秔w,/otXGSib܀o+]UOA3yF%xg Dߟ!Pw m,gF)#cq8ɨy{bCiVkWziKh\2( 팫k?u2k2瀌 +rgZ4zMA<7 #+$˔fq 陆iNQOjGuwk , ,L`L`dK&dK&X2%[ |'iGIENDB`all-in-one-seo-pack/dist/Lite/assets/images/dannie-detective.C0gjJQEP.png000064400000031043151222736000021765 0ustar00PNG  IHDR2su>PLTEZmtWh Ac[ZYmtS\b!DP,K~J)LfM- T;$(J)D'K*Rւ UOҫe\ R~K)L)~u^,uu^,K~('Pπ]c^,~fZ Eʠu7?_^,u^,c$!JK)L*^, U^.^-u=eL*^.օ_9ڑo7ֱ᱙K06ɹշtwZmtZmt}>c{G6;^,KJ)^0~u~>,+W#ԕ3wgo~V˻] O(_T-Mo[;j SF WέbQ@b0o7vCd2ېH55]h3 OAAg~N+.ֺJMrLk8ڪGp=u^ƊΐT\ƶ50:D9C+hԿq̯U@(&cXKa^4[owIӾȱ;dv=$?[Anj*-V2@wvf rǫ՗omFޟ{sRSnA0mT1&oև`YCJdw|bT;ôW,Rfjah\y޴ع|bauAW}e|SEቍۿf uѓ΢]EŰ4Qb?ܸ$w Ǎ:YtRNS33 &SsF.&8D#YpYDݧ$+׽r¨dIIa۝ι[wBxmÑӺiSY|2.|IDATxQj!AD|PYϱkL 7[7mNg® ``~qA)RJ)RJ)RJI| n6fD\^/)x:fJ WV;[,ߚ\1)k@"2le"eJ?=6d:HVXFPg$Aii͸^@S_$>fMlȅl A_f +F*N>p/p}Ʋb5OnuA(X) hOք}b1d$TY>KE>ϒ,-%=]cӑl:̑m'&T2IF“Ƌd^v7lEE>v,vޒY)M1ʲ9MvyM}0ϼdܜAhA Q F!ZIDP(bP  K M91\VQ, ڽ)-7k.) ř&ow3Z/؏$EW):E&Ȣ~"۷) 1]}9A@d{{{z{=}G "+:-%X~.h4ll.h#XY+l?dbc`pYkE-d*;tvD&!JCH@YaRE7@s,8*0ֆybo_d{A7Qs٤\9Uz<Dbp.ifCv%S)="kC9Ȏ*!F31z60r "{Td811Vh.2X6`p*2$x *+A6y0(2,ATP,^ "H) l 28GỹڥѠT'gg׌xbB}Iҟ[d'3S,SHCl' #{A6K"⧻*1#ϯvs-X/|#,ظ2QWdo׋==>FB9\(oמ՚F}eiq 8+%qD1JD z+!(p~l##$ȕbh䎑FFBrjZd"c$٧KܮН. |Ѭ`k * %C67 knBaB*oS0l;"D"ZB?b,H1rQkFȰ.j}itw΢ zFmO%إoykSe&=YMglBZj &D 9B kMKp">9ٱT5Ic(ghNvQŭf~cd~pGC6nPhB ea7clPѰCd 3A2{4N % M41c;/?+#cgk2o%&6O El:-?bq tvEo}+ޥr[ݐ7_:N im}%nɭi8r{:\03a+dy;S$\QY0~0'DL'Ŭ\ڔ[c}钾VUa[oFbgt{CهQqZ7SF„|+VEZQߏ0YhcB **M!M55M01Kht- SI7Z* ]s\? <TeU$%72/$ޠ[KZ2.QKBf4)!c gVaިq+{ikh,2,hm7]ko[̀l,L2댪CAg/(6mw//R$i6|h,SgRlhko> F鐱{:{} zPСꝢNE#]3qh56ڛ[T#e1]&ϐej`dZ@¶uُ"IMd@؅]^"Nˣ@Xf=@Tu)3heNK%7VW>gRf-V.ZkliJ]4f|y&_51i5U-wotbr&EU]:DaLFU4jٴOq iIa>Fkٚaz֒Jz?!eR?*le^بZVBP(3Ag(7WA0h G(;.S%ӕENQ ZUg׮FLնUv!] }_J1XS FgSMeO;+d.cNjeIޑAS ;j^/iSIvv?KVYV6=JmC"YjrƓ5V@ ǡaձpsfpXJJ a iqMRL@I9 6{!p[ihtIغ$fb` \js% +>& 6|n1IWGgg{}"흝MAي*7Њ V?8 2We:ҬT2&F7uw }7ĠU3Ũ4l\05^' ,`O b u)Z$a hr=p\~{ Y3mLʆ=Jea+_LKj(u]:AI4)i z\B|uu;o]w> hsRݳÔ;ߟ՜:VŬ? ZhTc,3w;DgfYiւ1cxl]ARbP'W/GS2S 065y>}*ӯNqAm&ü"Rwc`@-ϩvRY1HN2JYecߜ1t`?vfUiG@^qd]~w \#gcXQsXw5;.-hcFGGfҡ8k'E4_w2-ӗ] Tۻ[^3xP /lB-x[dcqE@\'XkIcdӨo.,ˑ hn@G\e(;-Ķs:.ytp#A~,,W94HB]HlFp9+{]Btgխ9V`5O0q`†Ae;Y8~0vD0ТOC} ӁVl]2ږ03344+k-ued$Ŀ:;I}5ВRW[KMTLKld0bFS4H7`7VVBdY[. xDer[ӒZ\h. R|w}Ob++ƩfvV(E)M6-%l% 5E A*Y"`:{q.-` eH}ɓbgʆR:˴JYƤE#6VE,(m6V9107󧞲Eݵ#m]Ncd'R!{da/<Х0/md@vml,ٜp⼛~YT+ڍ{v^*uI'(sXe/d`S}x1V6 !%ocY=VKḅ2oK:7q=c`llOQ){ 2>!rMF5tϣORf'c$7Zx1FXAe]ekZY[U*se3,Sv(\qDk˶~a7ie=,զha%{2e2cL>=2m<0gQy7Z{z6fb,Wg~>W/N3''z\2'ԷVZ g _^I~TVSP9ev˔5l+ l:ſx|["v!502hfRֆʼe0.Ι?F˾xO~i#k~2,̟ 6 )ee_*[KRI/45+Ic]J"LW1bxWX!N 2fG*>27w,SneŕVuwwKAsM+_+eZY5o}JtVhÈY󈜽\Y[Xgݼp`cSw+s`rG&켎n %M]6/5kŰdL\eWNG7.QL--96dZfP5cSX?yj  d6fMgYoLy(!r>yrOt/d#eo~FA D/كżk' )]y]6o=7+>:h5Xߧ]:/= GHecHo .@] W[Ā)*VuQp0bs[>f.`OŽPWAN4CaG=/<9+@]J26dy{F`e ͂aT^٩y_ S}5ZW16rV־=I\F1[ܔ^mVq\ʽ`wR2 skSSkssn}h|Ⱥ5-!O+& }"ܵ5 seL| 6 ‹/}* ~|-RVvUMxHv﮿挫 sBj4ʞ2| x1H9vg~Xyese9/sFO$T lgzi>| b.w=g)\|rfBpכ*e?.`7W+{OFF=PS!y\J!oʜ{#u >%Z pBipi xFCB/?X" ffnFq1D/ab &ZڮH*`)! +`ÆuƆH nLL|9=󞞗: Qo)K7FhSXtg;MÛ/bB$eĮ\wX(nS03D}wy]E()RҼJ|$:~ _\,p 01ގ)롑 |ADʎEˀeu8{3F:AC6r֥͟0 ʮNQc佮$kۓ^;Tg]km78a!֏;%#c?MILxaO%_x](V3 yle22 r{)@bu&7/c_@e!f]{4R$/KDUV[Ɣ߼1Æf4LZ"[.]p?_xϊ[{qۭDѣTٵ2KJY%v:"K1rAihEMSSzhT&l޾bbM+;:N|X2{hCyd=mśzZ*+tg좪 g~Q`ub԰='J#Dlۅ> yfѦ[+Ce`~HCm}]\d:(_0vo.16qSfw`fmPcb۠X :FlYz% +HRDm$mEQ;!Ba)ggޝn= b:_1 T4gfXKVkƉ(:Vz>nʘas=8s:ˀ߃:#3mz'RxvTe2gUfl)c"/LV,(b;^'@3e.jb=LcYsgKs/5N{BDa.@hLA')^o(qQeܱ$0iא2eQ-z5c愙u㟆q0;Y!ư8=.ueͱ2ҏ׾1 ʍE*d{G,dw>Kp ^gИ  *U4ʾ;Uh5JTV7C}/S=kw{|Ř5mI!C )] yե XiY+1TvMQxgs fb<.eVE߷oXݏri^[,Ee=^[ 9_ 8~PV}Hgq &{o? 8uٽ놬/*U2gDe/+y[ L. E)̶J?dGVQ9Wv20 Q΍!)Y|O\\Q2>`+& em1G2nl S@+q4y `'ù)ȕ52iȄ Q,2ܪ¼0Z[.[[&ժ.l橠i{2O4f.ò7v W2?W6[1XAsc~NTN3ϕAeb:`d􏫥 -u)kQ?);Ε딕Eq 26Qa\src2]zqk_16Zc+TXjeLٝ\ߘpbfIF58zIW60nHm ?q @:e 'peM~ɜ8gN*)2iprW *=VXnYx7Q Ƶ he9Nv6(Lq ~5B 8(I)Wf<=]3.3!˗L^.R]]߼yXXCJf{9$cHV1%?*ه.X[=蛀`ƍ]-(k]!cs6> C,c2v! 2XҪ[hXjE#f@ p ,ٻ%XxҘVSHЇ M*&GGiS$2r7ΧU^K&0]Oj] /E#|.cȚ?*eXϘE#d%+S3Јu G6ُd0Ҙ9v8e%$-%D fjk;J'H0exV< p*p3Odd["uc46Z#OvL~^)ѦҦz_^Jin%npdߔk%_ͻĚ#.Q-^o^[&JU]KzkfH(ߺa쭢jYmbd..)c0 vr?&VOLd c.u} C&edZ;G1\12x_@O$M&k&PM͒\ kblOZN&1ԵhįUUb#;2 eJa0Vz0V˔)û->R[hgs xU֏|TN|+6oFr"w ~̒̿BŁ2Ƕ4dj1wΝ #,5d{H:ier^-IS֭t5Qe dde seCEio.ޏD fTgǘSz#,Rʩ/< f"~)C 9H`b@7bн %B3t+QvYḳ?:V*#[1_0ЙXGSLƒ#na3%i0b۩j'HuӾPOS$ k3'.F{yDʭ.R35Y} *cBl)kn5.叀K{r&9uiƠ=n.8m ɩ+˓x9h- /~:gǍy%VfX ݄ML΂:$O0:G?RfĘ5qPv=W<` pdS# wzw?nۆeo-,M]4uAc5:><|Q5K\֚3F+%U)sapmqe'd:q<6U|l!VzGgи CUoEQT&biyv3OebtLse5 #c)9)LNI@͉62E!.Gu![xaѯk)='W{{A0S߹N&cZ u svrR2DW$X4Wt1eke%?.m.GDnC+!=+Em.O-= LAwl\i9pB\sw$Ba@cN.Y wCQ SlbaJYJaf! Er@DqE YKVyݹ-wMR9&כ,ce?Οx֛Nė?ӟy,4&2um81QEe&^4q.N &LhT咓3H]4}y$P\7)E3.Kܗ bkҤ7* 8az_%|gNPg1d)=Φ"(XSɫ_-M H㹅4 #a1 ~ıKL_GT{VdXUjfY% } @Ԗ5^Mfi{׀[džY܁߯^}<˿7o߾U`pA#u|+X,KI<K &xt᳋s!B΁?NC(~yb<77Mj B0"pѫwt;?l4OfzN>/î ?WbG {ZΦ  ߳WoFjLoNNUW+`g&>#H  wge} cKxx1`oMJۇ5'r%:zj:in ?DYp!l9<6\ ƍ~~ XBs^ T 5USAө *2zjcsEXsZ aozJqҗ=rNR͝%x{x O^;7X 9 ]52CUKV 89`}(p Y'ϞBR.=I-Mℿ>8Q "A龵b`ђ*Z3hz(\2vUpZJ.Z&MECٍ/|^9u. bݨ*=H`qzt`b,\+E`QHB ,NH%t 1J kh.ѧ/ C06|3j8Gn]8GB ~!H@ܠJchZ)i{ihTH4K@f*7CvHge KZ*9tҐ(ڜ %}ײF8z^Kn4,*cNfH>iO 3InKv-k9J?|d_6#a:5k[,.yxhQ8`KpILn-<_QlVT[~ T0K8XYF`{Z ʕghbR׊֭VTրK^結!ڟR˾AKx+ UopIBU.0v] ϡX4EvU٥ *)JO&(4\!#`٢7&(QMA%Wə*%g;po}1PrV\Z i &6 m+PI%9 jI$r9*c! oYa0B\&J@%!5A*JV)l9PIB4EK8:*Unʝ)1sÔ0=I-A TO\CAcۺˎ[*z *Fp!u.Q`q` n*.\?kY`W1ݐ=@*R\ .W:3 /@kp>nEo/zJ[˧l)pwIΠsP}ήZK;\'S ޡjX.F y XT>Ч9.Qp٥5aBV[ \.DW eSj> Up,;sG.߳K 0ZjlP /:N$Tbu UpqeOhp.,j8FPPb`Nʍb`IB\C7PC*#1X mI[R[Աwu\y }mj1B{Nc3q )T?gy]zؙ:FDS2bz fK#2g_Dg'[k-K:_j gB-3 kD@=ytjoPPbe,:Sg0.`FGtR1c J1SנͰ"ĆR#e wfRbkPI,m}#qߙ^T`>fo)T$gkEV㮑58|0MU_EEugm^oڙFMl쥛B[4GFgֻz!,>^睮A9[Q-n$F-;Zk7ˣn-(١omH(F<чja~۹V|]#`m$e;&̓v}7!t;3}ަY,U:JMk7Nx?NGbmUO+u`Q?Z~ `tJx$FZp4o ^z\R*,Ҷ!/ԭUXk E279lxSTDi8V:XŽA[s]Z(5یXeH+1ڍL>?j#}GJXB/B!^ԗzTAd׬:*zL 18d}.o%QH<-"1gt2ڏXpӡtPCEKEGf- |ɩS{Uv!5'cR{Lo=ie,l[q$k5@JRF.M1V|7p!^J+t%b`۔ @C:'{\j%)y{_яBċaJ@p TK3\UrØZo`!эEk%?l.ڴ,1: y-IZCLf/?Wln U@VkP"hBH-iAwFS h᳕p6FKC?kC.5}M3rTM=,XRש'lnZfmZyּ\!SMq&Pru襚Lm22`Bw%(Bziz>&ߛ meB4VhPCulBӱP߁Э.T\GhG/jhh[8SzHvk}8vrĴ30'NW0 Vdxxk:vi5W֜΁AHr “A V㰡SXtuL[Bxt簕`)Xjj `)Xz Jr!IENDB`all-in-one-seo-pack/dist/Lite/assets/images/em.fs6WLfI9.png000064400000004315151222736000017226 0ustar00PNG  IHDRddGqnj" Ͳ{! ´T98))O/>IDAThW@DcW@!ޤ {{>'jBxpvwnf߃69\fi5YR@WnAp-_ -l-e'O,_d&i)~M-ʲ[l"<ΊuNqγ0xϬ=O9V@;kK2: oFF$ uYcw-DƽƄ#]wrK$gCxL3¨;n+3p 0;*媦 BswL#tjجu(keiܩrC|FE&Ӗyi-h,wbJfai-6Mfrit{3ᢌ6׌)FO8lMMWC& LE#멩 ?١i{cX.6J٣kYB-WK*ucY#rIݴNw]G94<|񿟊$^Nd$wT/Wwނ-{_ʘѩlqz2ƛx"X18M?eS'V=H_u>c-)FIdάQؕߝ)OIDwuF|ΕJwhV.݃ `(hǒv#G6B֍FG70nLnfWЇDZ3j"8 )q˽O} q -p0`4$NUdѾ3KTqfwmzBCPYx:^d`IAجJȾ;Cx~l^<5D^p0$B S"5lvn /JM \j .,AZ FU3ҧFH/G?C](] J۲V۶F`RV H]iB$R) G̸"3OB>~m&vJXeJyOrPD/@BzE4\pW7}cH׈)"jlEZ&mZȂ*{(X*dHcv0Db$& 5]Cx DZ%z7P{ Q&F-xpPb8Tf0 u#eq8,.Q~$L28=43GJn٬c4/@0@0"&D2堵:);WtjO6yFCNÕ[6iu6f :CiN;Z_,%A\J4ĽRkX,SW]kvyc==RA1,{p/:W҉WiXQ}VxB~Ob85~xWg?V?Fr^i}&#q*ay L_<\r̞ ([$>zFGM !ڋDM?/|IENDB`all-in-one-seo-pack/dist/Lite/assets/images/em-graph-preview.-ZrV488v.png000064400000050343151222736000021725 0ustar00PNG  IHDRn PLTE#(,#(,"(-#(-sadh$*.e(LOS!Y韣ݱ먡(-2泭?֫ĿӶץ3"f.os%\CHLkUGκz~αFJNvz}"Zĭ\N@{gZYKQC}𶷸{tiɳnbՖwlmqtB2rgjn_Rʊ\OdhlљͼcWjnrD5taTiloIMQJ ؘilhng7{v4p⢙F r q rx.B@bTduː )PRH:v(OaӚ.U|%?I{-Yq׍f`4mFː 7]zUGN89 ?.!`. ̅,&{z={#x& ܄p0vF Ǔ0@HP`%%޿suzȍ=}Ыa\n,Om2pX]Ly[D32a=4{6zf$_OW}Ty/ܺ[mp"5&;I_& P6SakMZy!#Ң'wbJ5&1n˦{*/䶒 3>QműtkO4-dn2*$|(U̩~\yfIKy~ :gvbz>ǔbSnD dw@1/!r{2ݘ7 [W.A "h/g'vM(xry&Βv-.RC )t./ҡG%C'qاI Z{z~ w*T^կk ~B/t ] Ւ[:N܆ЋvEjB0: sC67ǒ- tvnYt|H)~22#fkJV ("HT% % kC(W *%9(H1TCt6N[G.71KSe")s"I.Er[G\oNx}P4.4-Oy-%$2!"MJM HN$y7#3qʍUl0`nM"5x= kAw{\Ҝ[ޭm! 0fpmKó( z| [zv8m\9˟m.Bnd6YE \kx5Nk ~ÞNʍȤr9|;m95̭qZ`s!(=T3Ҁi Y[jya^:?`T(4dM1`oHФ0 BERQE#2 6][wn\=G];S5Y\׹IP4Ǧn>-ӧ_#[e%[jٖρKPh Mǖ dh_vO鵻c˾&{咟 SoVhjQC| ȭB-^c17Kwenl*{T.뚩Og^׆&.97Vun /x23 6fRGn1.`f,,/4l- 6 dRPCigXsTMvٓ;aiTc!Ak#P ܶ7y6C"&Hnf61uKJd$ @ۓ f"*\ d @X,ME|2Ʀ7H<JyV' jsa5,¿=E{|sۃoc l*s&;b'MuK=xB d][/ӥg.30Crʜ'iW^73qˌ:9m Kv9gUٴS*nZU vT>~m*EGOIwՋIux_!Z1l @숎3cQ|jWv6'dnk;5cZ$W!oo"U,ȵz")m6Tm1V֖V^8u_~$~eX`dp`tDrK vL J |YorKL&3.d {OCnYwt:nmEIOuuRp@#N!F3lޚ6s6Â>>%f;GlqtGeo Qtw 8jIb[vrZj>r)5v LFwN˭sbT {c@O'խGT7zS rSC= _Ï&= ?7v ` ;;r"_gU|嘫taZ攲v|l9B'Z&NE[Xf7$\Bg2Z܉cߑ۩3]rHθ Yq^f *:,p0TH9f gwaߞEA0)ڎ͐)8ޢ' ,x%d$OP:D_(-Y^$/`Ttv! F7cxhr%)u,##Us;qXfI>ٙ9e>vonH2W "o0-R.g<90 oegm\LIA٬0s9'q+Ǎ69ޠG(`9'IB$pL |8 R .|LiYX;Dx8k*AQG$pp~-7']eSY˘˅y, (ܲ˜?)DM`|ASUDIr͙[IegL?SOd;g}/ L?([*/x*bFgZ֮O{2=+ЉS}6ªS`1Zܾc6{vS = ʾg]!tIvL`5ZL'N4 ?of _.t{vRŢToBH7qkN3Y*;h&X`%N"f%(z(m ּ-ZM4˳XKO^9saͺefd>rutR۷r[+7e*A^֠Í-;̳b2^m<;un:~]0XaُfUn?Gg1~.>sMlMPMˎm^npܲ6z6s|rs+$A37 2Ms3J$ di'dŒ4~sf)rA'F; yaۄh4eWk'qtmO}*;Q6ֈXF#e6ƃFeDi[R3xB·?{;BĔuI_q,2s))ID2+sT37j8Mn'KܩD+dj>1 4'XAص֦8`?ص )t(uX Nܪ)P7A 06(+8+Uلi ww+%US ! C@|QQ'u ܾj$";peIBOM=@ /h]?c78W\N$C0Đ($9Cd2tHBxAN./& i~ "A/('SqhkYUBV^ @x>5Mq#r,?vqWsk+`l~ned&,~߿MϵJ*4rw`>u< cnۍ7U׵[FIfٗuGޘ#8>9ULߦ醛~uuҥs85 mW+,_mzlGknBiHu#e(`yj̘zS:753fk^mICQB;B)-[E}'lbk;ߺvMQ'Jhfx,G 'vrLDZf]|$H/+I2:(gIF᭛b|2X-θZVZ{Z<l==߰| o!yGyqhSJjJ Co g(6|y#8֜N?O IZvǨ[(Pe;'&pkpI IJI20=FMpڼ` NVSiu b]،Rpu9r(|0;nP* Aрf2ͷ=eX{fō]I&}iM w{ݏ}(`4܀M3d4z%7IIDm6݄l  F(AeZfag//&7 F& p$ {km 8Mۂ"Fj?C7'M,ɽ38g *;,W",FV -[in78gf&•ĉ p3YF`/zP);7Ed/X(Wϖy܀]e3 2 jhr H6RD T'7҄EVB2 ,3ꝕ 8(1%We{ԛ@o8<4D6a}\D܆Cňxͅ*3<7Tbj^52?8h `/x!Z' 707Sjgrjv|6 =^n ,[[@-ܺzO&.<}jimuLm^OW5n߸~Γwn:܏@ܨD{= w3^h߳9-zFipo]]''W<<7сM7kp"Z1uvvݺʭ_͹qס?\Z{qݮ狏;is>j^|CëO P+b==#q9g26ƬQs[! Yݸ]?Ki&O#hs2jj_wBi=2<`q\oH2~cPȰ&1WCz2o4An`r+o7ӂ(g޻Ӂ )>i4NBn`rS n[nrO DH(f,&-7I/Q|Q f37S*SWf 7Sr.7/ 70@njCnSc XHŘ ! 9K2&jڛX ,a9&ȡf|AaPFgR@1(qu1yikj_؏6hVo~[nQ|/{pS;T!ićlR9۹mv5Wooe$7 ?Bi%qlx 56J(g;Mגv869Q MV_6Lsc\H ˀ7ZR5uo8@L5R<ްN-l1y٪4*=Tz.6G[McK'qbI=6&.lBO"m r`SuؙOs%?:(Ta!sg!ygka;ʁ's97cngpiAzw--1n0dm3ܨqK  Ps!˸<1nD\m 72nE+M PJp¬Ʊa<7c0H}rTnu92!dr%]xs[HB.EnHp&nAoa27&ۺvNunJ5ǪVK*G ܅r[ra썔!<-l"nyL E pZ]G1_Te2:j_گYgT*JzjwS!U{Zr[2Cn(np[Q6qvlqn776/q˛>anrj"7u)RDh ?!4'fEb"?]nRH |<~bX,,6;n?1¤ \A(LD"NH(T@ôhO;aI+⤊(v`dFd^E5SuZgr[oMT唖&p[ru]@qt7QnEŸ }ݚ; ៺[:a^wwj߷X&V/Knj/)( Q)Jf'eevb :fFǹQL0ʭے%Gn0T2RfM%f2 nVmO-`=qp>1K̞nsvp[`2!~c m&B1nx/+}J8۾80qhŃA4ƍ`nТno+$3K nn4{wЃȸB1nlBRn`s{Krb0L0S0c[Ƹ[ )pAWÍ۠޹ee*g$.P2ƍtc-l?7|~7Xp#n󧯫AɕӧX J B͹@+ :z[ n(7ʡ>Z~]zzsk03 |(- ƌ[([$BonA QNJnu0[Bony5 nLkn媹s,7fnwh&SK6ћ[G"KV->Y>ZuFr>:O٫.^ B}ޭ>4Ӛ[CL im {q)RY`);1:G 'JUe%c)R'B<XiΝ+SmvbI^r%y#BEH"&r/Jy:H ɕaL + kV[ܼ֭ *+[.Y:ٹ[[ݭT[,Xr ` nnzr Y0CnЁa6[sBRYDW]FUW4ӈ/p`EJN17vr-keSm@*k| ~ARAom1օa]q+ĭfa<[*nW5OͽU|=Ua7 ]:`6,f ^1ud̍7_-Ź"Th'VY,X;UU!K`5(Y sr9zƥbm031x?qVd0=)lj05Hs3vrZr zQqݽNqykGߙd9.2Wo L@%D$$Ĵl+4^H^ z鶾%]uÞ$}~nܼû_[ rmbD"?(| #pkK7S]:n={^Y꧰žCC՝X dTPc7{]cOguR`RnHn43w{:+#+yp[;#6\p{}} \ B8n`ύwJ 7^/{/ܝӓSv㸵y.TxnRT!nа.b:n{}}(kGwj\F(fJEˍM0M3qs+7xKnyxCs|s`0 sXS'skj~[&7z;88ؗDcͮ{pG ^&qq3:$[]#ȏhvnBU[M!yvZAO؋Jun̋ `:7Hp#:BM D«ǭ{M'ܤp尫mgMȭޜ7׆4iUs[$"zފf8?ocGu;9b{Nndn ω["C:n`nagHE#_niR#ڹ1l["=Yh|6n­$q='Er-DUUPnoEn;ŽUm[M4qp]Hϭ||(E?70)4peAY~B]{vU}@'3JZ7lUBͭ΃[# : ؄yp$757@Jn3pzSiq(nvG"lۘ317[P <#nRa.ܠOV%`i(<ԇBkw(KM8vKϝR}wux<<A71 j\X%QlB_}čn/JqviS~ љ,oX^&)Ѧ@RsoozG;+T8pֱnloHnsy|7zƠ<ف?`Mpc7#`וrtnqÎyC㹤 ӽw64ra1 ‽^SȰ;)5Ɇ5Ex^Uo*1'HN[0,d ,ےXݳl̆ IK@\-B$T4R _6ALMGi*+ =t6SDvMɤɆ K 7Y:}|:JNKU:Ȟ9:&m m 4h)uH#^DY#$xpdRJ2rO"z/U0@_P')EJ 9 -nU7x[j9.m1ly3@ st^ddL]L彘~1 HKj\Sjeb6hd1ejqLgfK*6rte/ӹH-榷a6n+.{|+7N,Ȇ`*,ߙQq7Iǭ𩸙q܌& x[RT/7DP+ Wy \KMs!7Bsq[(0onഇy p^L3w'BJnq#7xJnYf*̟c܄.ʚf*E0+7cht\enl!NV|\N nܼfNJ !T9371c΅(%n-nUf:pa"w_սzjntfnH8Br Ἰ!QJ] ۏ?Cjn f%KE@%*BֹqSHZk3$o'&s(J}6nhiaK+;7hq:!Y!)Oб&s4!7ÝPhrF7Z.ǟ|o_x ^&4*T9Ŷ'q+a3 Ve&nlGwl~휸=ȋozyrfnB2)<7)^T+Ms! 7gFpvNcnzCku!O8yt+k46>m&U1TY9qՋT>pQ.c7x[Ͼ H6݆+qӆlf Α]V܄G6Da4vVn,Ѷvޙ, `Fn:;7rXׂ%037)cdgj,]nSJZCzfn$f_r tG ܦD7SEE0ҹ\# Òs69rHBGF>lLͫdfi,->7 Ggp"-- Cvnb[3rkp"@s&n F--<.YMMv nM/%h[rns4 K/ !na37mB‹Ӹ m5rm#v.'מy[Onrm 7!rfƉS2BXr(no<ڭQ6O[$Op}̲ʶP{dOS}dlb=vbZj4UMb=_LgB¾3U=]v.uXpnD@$Zr[anl4[:8 n-6o>>wtAGܿ/O|+k#Fi&ɌL%8s}:Ow碅L7a/ZL,Mơi7P u8X^75#c#W8ۡC?XTMnZ /J |9e7Di%/BPYWt]ٙa:C@Ԓ1_LdJmj@VTқOMC lV򱩡 .g F>6ߋ+,j#Z q3@3a 632 )5h:j+\i-3Κ6h}=@̬g-j:6r[^b=uy؆֮ ڤІzOƆx#0<#휁ٯA7C0eVh46͞e{HVDgaAԱ%`blҗPqu]_b#,,`G5`6h0F6*~[\AzZkWJ4P[Q6jXVP7;r=hj |*1P_O2L`tΙ¹eG`D ˟>Xpnellsø<km%tD;9i;ʘ&9{~ds6`*zw+0v_׎ 6;tH&1b uö~9ӵ̉nѫ{`= `:6ZA ؜+ gWXP9t߅^T=/NƐ:\Zά0 4ĠIǏ~əYF>#@ 9prF)}L5k`5rY6o OAƄ_3!g6\oJB#&g rt+NQ*6!Ǖh{J#P[JfD.vLOv9e&3Ҭ@zEfjeHw7h4x! 14ruhZET4[#$LGeEESPDۄ>iЈ%TO#qCycK 䨀DfIc 99#MFQ" ? #µ#d I3IH$hso491  9 U9 %en%7SVrʔL[)SVr3en%L[͔2en%7SVrʔL[)SVr3en%L[͜Rn1%%E^`nUN N22Ov5q< 4DH. $F(jQ/(PS @OZ CBOuy6cwM7̿e"n7En#ܖnp#6F-#,Fmp[FY,pᶌpXFiTb j#*73F^7L[nv1Q&oўIGMn.5֔ 77ϼ0cߏ3Enfߌֹ9e)s2|0abV3I7;6E =n]%ڙ‰k]mT]ÔܡSE\DLgaj#]n)ti==?ˍ^൛xD=H Ϊt~9Ҟڭ"ЌaR,DK&-HfNޤvI-mMԏ&3b52Wru8q}ټ(\0=Op MRߙt-~D}`xxce"e^>o*qqAk_ccm$}MiSYGvkb@B0wRD=^ҍٸIԻ9j%}6*QEL4-5n4&7~j=n:7P,̔57BxS 7Pϔpuļ׶ro95A^'/op[FY,pᶌpX1mf7mc2bne"n7En#ܖnp#6fqn;˙h9F˓* $B-*#p{oV維(rgu p({_%hmpp3hҡE4W:䆆<#xaˍ~#nk Օey~nr$cLtei[C&Wd=fnn~0<܎lAܴTnCF8uBJnCd3p[q^,`mmqnnAۚ-qYTn0q7%/mdŕYæpSB,..n嚱7"laIENDB`all-in-one-seo-pack/dist/Lite/assets/images/ff.DHfQgB8s.png000064400000010210151222736000017204 0ustar00PNG  IHDRddGr=ͣŝ~k]2j"ʜŽ|tiXUJDB>u7}3p/T ÔhfMHE2Ř}{bWPL:6j5-o'dϵSROIEw*j*z&|UsJF;7b5Z&_¨뽡鸜yCi<[,])s#@ 㪌ःߠ֎iԉeтZȯژwڗtٕsԄ\}P_, W FIDATh޼yla*Cbqan2$h\Kj[lꪛeյ]#HfsD#$c}}iyu_s74u "TPMµ&u  $!u$5jvACp!fDV" 3q4F}o @;;2hБc%A~(Zy Ґٜ̎c3 nՕ8gWɎky0Zez |hu2~+sŐb@Fc^^ɔnUTD B25{N"/'5ܪHw:z`PZ,L%5m45c} h+cY^gNNXE@hϋ ".%Ÿd3#G%#bh%3󐅍Ux-~$6FKoH "TH.d=QuݯcPuQ`^ul \:&6P(Eqf竮.4pɇVzYz}v`}A`Wv k Z?%HiKS(m װ6P<A{ΐZʫ7jۈ%5_C@0 [R%,WOx4 ޹ E];Urҗ 49ᵢH/NxJCB{qk4'p)R5C2ur`E*_ԭIHp~jIIv^_?yբ5h?LUj]jT}R`&PZj bEY|O͇@*3( (/.\~I Mzv+#^x{gFF' j$P\j [8BTfqcDF6%lTl5iɛq3p sA@EYJЭ9NMgRJ S'ߟU\d׊Ἐæ.'+~׌S^]9P^u[>rc*ݏ,8n/M.A,D7kxSwmF|هОVmp,&B%1Ιujr,)_ i'lp@ϳym25"} <&L"h˔`oRVnI" $2xd씳؇b2UA{s 5l?0Dc<bi)tFD+M>e݊XM3ve<+lo}4 :Du36M7n7Fܬ$lw(cyOVg fytfF lYs35Hu@j3RXad~QFaDK#9h!K!O>$-TVޒpz\7Il&dqfa(MtF􎨊FRlN+6hfǡ2 !K(]j4H>cԨx*Efm KIiQr FfM̠ZL32c$(5/yMeH ]^7F @#[*afI t(JHվ0Cb)0,v7("dtgE5d9Obq],8@jaFTx" ap+e.h> 0Z(FT$(ZmAa^X[/&$4fKĚ6ieC3zP }ٽ\-)ICŋV5 ;D4zt\@VTOu* D-&- ^Rm\Qs ZV@٠߇c im c " ;~ѡ58{, t %/@݉3dcց7i+g<\0Saj 'p5ĎzGaP1`Œ Qc'K0{*Þ1ȝʅzAE@ec'@ΞX Ұv{hiI:k{j`#@oNXΞ{p/w:st9՗a =%`5 %Gnު4]?_wCK5A& L{|v< y0pZ]l}q2^f噣mڲv z0>Yp {Eή$+W[Ø%1Ǵl/sӞʒ󁆕k.;[*7da$ca8,k'OU!ņȣZ cI#g:J6.s f0eaD⣲D2gȵc Ԭ v!F) r@.]u 3RqR0p yEV@W ^"{B4Pȉ {[ep|g ԣ$_%c)'{MiSg Ԩg qd 2 j񌁼1@jQC5~@&i=.@hah=WY~1c ӢDi[VR C@vh0-2thQ^+- 8}*Ci1+ Pc݇c d;]¤q1а^?Aկ$c4  a@#cT XX٤n,d XqS:;1f)wD56 "A 50hlp CCxvt$~ @>yf[2FCKb/ z1U@Riw|B4(]ldCa]dZy!{,МC yBDص2744$l#LSdA~ۇ~gH:=J$|7=AMc{hS _&@P5|l 1 ~T;ӟ Cq|>_"Jr=843,]ĚG>y=y6g1|.W'j&U!a̵歍Kk54q(o!īwNK}Ft3o1`,d%鹞Ee DٕrԊet<`2.ऄXݞ}xsԳIDATh޽wXUeEfY"4oV %\@2dȐ[@eRd"{pp2l~{=}Os>} !g^[U=IMLwgzJz. n ,1UMxV?@D7h"]@ƃ_ .\سSgFW/|ŒyPޛCJI ɖ(_1,Ggӧ|hp,) Д<..Po`c逸 g ^v78?w`ܲ˛/_S^ﮑ~EFFP(lZYHSەp]#vx0H>]/t3>ȥ}b;2cdddaaan iW7PzZ s6111C2BS4 9&0n o<%`۲%\ e58d1 X{nį__M@ <\j`ק20~r 䒙 qSzAE`P$]en{iۇOlk88/ڲeˢ< /[8Q>yQC`0w'ߦ{?9a2fvxmJq5ͷLE"KS_Mb<7׫rm\ŋnwdbXΦH04 c5]dN&qۿ̙Ûf3xPCO(4kQ亓{xIcw mlm}vN&b o;1*)ZL0 D}6vwbv y>HSm{Ϝ0gIu1y՛f99]9ЙjP?}?w϶ _XPwtd7w@=@W~vAF &3,~;B&Fv* 'a˻'G٦] )VY^} Fph{N85ٶ5I9xS5t%%De\tC7?ѻ_-WtMC$ B Zo @ +DWװ4Ci$g %,imө * nTb:C* UWVxֺ&O xd*{jժsV==ryw8NlPA(LwD'z{{k޼W2YZfv K7~@Bwf(q>&˼(""o'6f_CJzG[ K>` ǚ{A{˚gwM{3\[l.7o|62aپ4y`XUD"i cmR~QxZ2e;"[\z̶{JyyʕkM?܅bejko Hs{{Mܨ)>9;68V5I?^Y68܃yU^YK2@@cɘ /Td 0'sjfQDYG1NIm]qpJP az;0VuosGrꠎL%I[-y'~\ߥHŜ!@ӈjO:ngvG[L&+v{0YAv$+Րj5ިf.mU=+p9Mgk 3Y.$@&:Gz%xOڑjVy;vl1,%,XƨQ\z'g<&P(ǖbzi1n5tVY^8]Jʏށİe4%9@TImqv+wXpar]Kt\ij?;VԍwP@AˡUhVnNJRAEP@@{P큳exe1vIu "8ka/L큝Юfl::E=Y 3_eِI VquCAc$|: X 0j๬Dm;`MhHgexuͭ_6 tagd b kXkz< ݬ5^msc@XG}]KВ9^!0ƍL]yWHrqWmg_@Fc:?W?Y^AC:S1fQ +鳪,"?Lk #a)@=2k &2uti~u,%.IhͻǩAc Ǧeͫ|K /0x\ ?PhQJA\b R*,eJ%9%92> Iӆ:ַH0w'g5P3RYd49b->AvXԱ+mڤ"x#*}"E$S8L@ݍ9gܚߤ&k h5@YoW'nl(kwUc#4s6IMƥQ}0x߸ %ellQ|\awitws|gi b\_[et4'e\uÊ3u>gg]: *- u!59r-C1˰.e).Z:?ڲQIO yRk+֞E O=ĝi jhR}g}k cd 4I>M 7`@n!1Ϳ 0M4?ެpjIENDB`all-in-one-seo-pack/dist/Lite/assets/images/import-from-csv.OyzQxKAE.png000064400000072450151222736000022000 0ustar00PNG  IHDR2PLTECI`׿,2LZ𕘥{`exn_?9?W<]ud݈SXnodsnr0yOzѵžn}UMY@^$j8_c>^ynnQPb5rD_l$a tRNS@>sIDATxn0 E3hT!_ lPl0E-Ho~TJB^Z$Iҥ\m豬$I7Xշ6o=RSq+/~_]s{S+ Wa^FzTLe 8p/~_ƃfR;;96xW:A"Rބ5t_+)ۜ7"w v{>)5 S]/?m%sŬqZ&}:w~6d!41/~$?\*Y` ?.Y$+, II/N Q㯔G "m!? s/~ˏ#,hד]=hA;_[%In$-Z$JZ$IhIt+iђ$VjdqY|U$}ٻf~1nX6فJ-呎t&Uj2_i0Nf\kZHH+=wl8[=G sR^2Yhyٳ7b| O: vKV ,;N qSOi/~g]e/^wwksN뭰x*~慹>iQrc; Fҙ'k qwZc; u}s1@yӋ_OVIJ81; y,`|h%̟n*?wNkqZ'o~~GwZW'~dz8W=SO[ ?_=<'Æ?ٯ^SO?ٯ6'~zϟk^kd#~&p?z8WvZ3iMblW$A(/иiR;Mըǀ3̇w UTmMP?=Q7/#3?=dG# FS:T6AmH\}W3_xXA)$tE+w uʀA,=?߾59J|XS1-U6rhzQ"a~_Gn4Rm_#TȯUa~Yq\*;tzJ#VRE/M7 ѽs3 qh3-yhL;d_u7!ʏ&|a?R4,ܲ&R*Hʤ DqHr7?&Dn>7QB0q'p,xWڀWWajȒp7?$5%#Ov:$0gHz&R y6$e+S`ӯo~L2ĪdD}S8TNH@7љL 9 ɜhf!@妙=^Jdo.m~km0c3[ *pe3sj D\'slDV|ݝCjN+O&V #f_'_##/OM\?g2Ξ+=yᙲ#A.lN_A9칙R6T@& [vR} j_g_!sBE,?\ ,Mn诿诿شD cQشDd6-MKDFaQشDd6-MKDFaQشDdUwShVoۼ_g_uXߧs^YZ|֊EN.Aǃ6WsOZUߴf, ҳ6o kE2R<0kb@ܟɿ_b5jj&DHi:eDV?ןV7eDU+-DdQ e诿w7$3@ %+*l65:sOβӳAG{Vt Ou!@OkCƜxdܺ>F|guۆ͐-KH3v3PJZ$CcJE;ܟގ]W+Itv꟭u1C_7>q! \d+ _qCAx, ^FPm?֊\_묉:WɓY+ a>af&;#f#=M1=]&Vcx/L+V(WH טm }Ikq/_82QxIХM&NHw+E>=\`BIY:DS?j<8G*4q,ch-ee[gZQsrh.@ #%ߗ3Ul("9C"F<==7x ?m5R%mY [ClǕD"f#?61rtQ+H0νՊ,@EC?"RN"!oXcհD 9#Jq#SCEY]X!!7!U?ٮP}LjsZԸN,wgq<%j_r#U_6Í풳ZQ@~m:Cõ7Y$`rVk⑂b !uݡ, iM7d摢Rȴ: Jk<697NZŇZ\CmJko~ԷM\k _jQ^EϴDe:!޲A_UZkAZ~VW7mȻLMʹV?ΦGi Hprj6ك$71hи뾸+8/O# e+NkiT=E%Y |p<[ZWF[T󑶰]_Zu m"-ϫnƃ`NZVZX-e 6Jd }hXZp%;Tf`52NWrCJ[zEʖm!ޢ~y(oQO ծ+wb^$+C04?.k/gF2&[ֲ5-3ZUYb1,]+WϓT/{zd==Xwq6={nQ`|vA=tj>ZFkvvߡZ=KikkIHvhz27i}f\Qu Mlb Q_Tzt!t%C'~Ü dv#_:Ǜu6'95WA<=fBIs.OY-YPYy%r^Z}4D`#ap$-C֯e6p͏FX"^ FU_81RjQ-D;yUU)&,zhv/Br; Flaq{[Neݼ'njjK'OqwK뉷V1K1^M}* Յkndîñpt&Z16`]m?߂=ĭCjԵV#! ReiiZbJ"OىZX 壼vON}Y}gŭuKY,PZF5Xth#TƚW- R)fz(]\ *K52.+X+ZsIih l̒$-h ޢRߐeZ,i) \.pi*uT=6!,{ NKw]-K hK 䴉dil\g!woC 7p[ՏZw`9ǬEaE*'U1S=?LBn* Z]pԏZ}]GBz9AKka9eT7@WH+V"-gwH\5P{$$Ȭ׋" "hqѰ,K]Z"Hn[u%U6֋E=â(ʩ3PaE,MK"#HJZlOORIK i9kio''Qu6iII+M*EUr,<ʴPҽ\"(g˪)jօ [ZZN\- ZSp(i`FuB|h!~ll$H7;iM&s5vɇZ"<\7!6e P\ )ķUG jIK~H oeEI-YzvÂB~i EZme 3ӧD-#і3ţs=+)EZIUU!Պңܷ]MC,Z "CYDK!-̈́XPIy e'BH0y^5?CҢJі[s z0r5-0*g[~H+i^14ua繅'-#(%!-̱#$i}A-h!iQU˼0fZZ\m;K:ZBūZs;zXZTأ$i! -rُB9 )it5bj(J}Ar=IknF2"ڦ]XBcEZۇAieodRGK@βeb&ۆTi q[פe/E[u1 I!BQVN :CMom~nH+{Au &^bڢE {^U^5øz-BڥGb7c.IK[_8]F/[EIŭU(K־7 +fq*O9OCbÿ[|m%0<9f^lpOP =D|V럷zlW!`CBeBg 0Q}OG NzrY)?8-&Œt+4Xf{Y^T?&stw+7p-vkuwZZMge @x`bZ08Ps $xBl~ |ʃBx%<"^TB҆ǿi%U P-;q%8Xp逼ci\OY!Zت,<$JMP?Pc6 Բ;j=r2Ҟ=t~|pMn|#$ 7>Jۆ hFF4O{j\/}q=M3`] QlK~W4hqM5wovߔ7^}^m@-}]BbeOSGKatى&1ˡuZEh5 AyE )jבX"Zzl %?ufB?N%00bM;-T}@UsZɡ5*?>tReElEY\(wl-3 ;2o..~p&zՠ*nCk*}]萗5ծW\H #b] Sj|buR;qA;-shi]+VZHj%%bTRB%qU@me)08-!5NKźk>ͺECA+Z-0]ZD-f^<ds DN .;pӒwZˡ B.^;a:d DYi=RQ%1ei$촤sZК2EHìx$Ym JeV-?iٝ@ҭ9-촗N 9^beP% Z\e5K UMi;:Prh9R-"촖pIN xƳB&^Ѕ(Pv[;-쓕nϒ9Vrh0h _>-j 288je%yi̦E?==Ķ%Fq8sZ]UHN#CLD|8zoc ZR_Tӂ.Ew*ͱY&D46uMZێE?MS0}ZL,XnՊ6++Бf,|-j ^+˿ykEvۦtM .-Zӎtx(Z]ԩZ K^-IYV-!ᴄV.eذӺ]ݦs)]CkA:> amݢdh>>]uZjN@Dkb)3<-֒R ,5dԭ紪1=8<N-yU,β*Z%j.+~'Nޜ$>UkrhI -]DX2N>5RKő!kQνUiICZ8-d,h}<`hUR }0Z+i90+Ԡ J1wZBoYyZ-+VZZ+^-\G.KHjyx|Z F:jhIJʆ˝; rhZadZdblIp -N%: ȡUZZ!@LRJJ k Y}*rh9T-Z%mjQ[ 5Dŋ.[NV9Ȭ_q%*Y-HN7rhZĊR9- 5Ğ$kUX`X:~#VZbZYHi#[TQ&Ž,,--+VZgsP+אGn_XAUH֤Nkh$<dֱ,5Z~CHU,T$zt\S;g8 aDA`XeBO_a}w~$viǖhkvs 7q͏p$n}WE5.죣@@kTZK@K"jm%Dk!-Ve >aMK>KZ&͔3U h ZQtHiF:l1S-N4LX(]BHåy7f5čZPu+"JDC2b=T=kN,?tΙɷReJG.+w\2@k}:V+ ` [󟖊ˆ|(x1\h-BZ냖Z5rd܋,nqJ'x"<_4 _jL>ZUD2-UJYœi9+Z /sRUn%IѝϛR;TL*ZhYexHhe67{w_eZ.$?kw uWDT/55@k}jxפY*o#)m* +2/e#3 *ZnZ_?$rEIOɂ^fz@*2&0"4*܉8pcYӺ V -4d-ϳ#yHȘ2id@Q{ԅ+x4S<⠡]ltLCkߙ0Ci6]1j;v1@)7}Z9CXZ|6~+{Y2t3ؽ{g又<V KlӲ9f"͚66hȿHLjE h<vqQ'4xB_' eޅh3F8tςON QV~#1w~Q.?CEz>dZ2WXVqyU6:_י9n}uA<&iiRqZ9)a {#Mc&x֘^.jIf`DWyvP [P}:h*% ^Cl2G8ZŐ@n,=߂VZSn>z?n% !i!NaXO5vT&*rcyS7ߞVҴoB7oVgmڐ*6%hJhڽ6h?\N6E6bޞ -Ⱥbn -':q\Շ/xzTU{ Ql(o].BrbJ:|W߿t=+q rTݛZ*Z#{O2=tg; >'An׊ o~/ 罁6vb(a 촖Bdõ&ijlފ{ivz#~LHI6ɘcJlu8/S ĒD=uD$O2 :>;'\ oZgI0H!hEU o-h9YfjZ1Pt.heΞ#/2z\×r_⋥KqMVlp؄WwxfBUs͢Zؗ׎iW|wLmT5:Z-]/?$Bˢ3c`jfM@&Razߡeͳ3LZ-y H 76<7$T*ml `FPi-w^@p~P{EGj XuVʵg .>ίВ6gh5 <0Ch%z G *h=Z@h*7h]-+yvg oCO Z@ycT`| 8X7{{-ŅrTg6p"=L0CjTV|[qHt*mq\pH <UfMKdޠ38LKowjiJsƣZAgGMbh9$<"ZgBKF͠B˴$RHFWcBL-2-Ypt&&j'SB s*B+xSPqZU*˵r}M/?xc^bZb=J~Zm19"Q P t)pBC$Ph-dď^17"q;h젥bn3e@H&YUEBD[* \ Vɍ4L_yZ/ [#/-|z/]ɥ߇7h]&սjr$Mc]?k >uZI-< -_zVvI=-`"hB (]Ss"穩{Y˗7b |zZ%Okr, #OK_Ԑ_ rL&k= DAX/qhE{iű&]ޤAB$Nݠux㰇X@~/z X,^Уː4nc@+.[H'B+`ƺ^Qh |8FTO"i9{j:;%o@\܋3ЂlbZ/:ZYC!M S bil:Z[0ܳi_۶B+ Xwv}?:JZyoFh5:⠚8ҪO(a@op_^Z\Z 1ujMTb[=9%#Zw1p)IYHY-`)~\ d=ͿqsEws~Z"VѶ.̉f\CDkN_Okg3zɬ^\ g>-֩9cVXqbdzےZ cῂ睾cZ?;{=yhh-c 5:*5mO[ u%uh HKhhlZJ Y{3'$JCbBFYA mB& 2"sZƻfAڬ`V)u|ӊEU2Ɨ,8.K,Qع aǕbC@کѝ,ԡ4hgCRZZ*bVHt[F :Jq65@z~eT6pLwZQ5%ī bCE*؅q)ei6.aK;X}JqZ?/п//7]"7oFdXUxJL*oKPiACG=Q8#^|/_.~?ⴔ*Jm9Ei/ݿ-|vH֯! yF">d'A}x uRNK%֡:jl VJīiET Eٓ`!tp wZ4C;Ɍ4z"Z\r ]aVAbV^ƈ^X,ikp;-gnvUYԤ@Z8-%OPKaZ[[rZ" \PZ63  U x6;fA+qZE@JVRiY**Op8v_V@ 2 BFp+y} ԡ8h0ˌ:i(%VjR> G 9j3,QT }Z9~U*FnLyg)ܫԏѺ@N=P`W4L౗#[kwu{uh-Z824xpfNh)RʼnB04Mkhz9.<[ 03BkYVrZ +x<@% ?X2(\ _&mr¸(7 3ŹЪTrgY$AIz?4tpvlָI2403Ggw3Ǐ'?3KjT,Gh̝it--okU0IwdCWޮز,]Z \H٩,74MBsyWiZ]މqk~R+3 }Bf a?ky$: L_IS.֟[c_#4ɜkK{]Z1nܫ1ZQBAR^ 5V+MvEt58j$0Q6Ԧ(C OՓ/鲡q5&:w^J6&*r&yJQIx-*/ =Xsﰮ -5Sc Z5"FM ~_{j'W O=1z':Û7 3 ZϏ/rhq i@ڐE P:h' dAY98ӻ}I3]G%/ cL[`.]x4;?OAR P%vqEjB Ȃܱwǀv KM+GTZ(2uEh BfXAW̜&7Dvt\~!g:1iDY"jxg%Y'b~D|<7oP|΄V@~F4Db"C̳`^AKCjP8&02@&*˂l '> ̂QQ@8CkD6h5,KCE*vIb^ - [VU,6%v.@9ZDBQvN6+Ͳ)YhE`}:Jt8OThBCBДhhezRez~-V'7Gɞ`*hv_᫕F@aq aѵ%R55E.aу-a^P$'~xH‹Dd$2mCO`֙:&5E DLjuIaE1GbJǘG Aa\`a>7@Cϓw<@+QƝ⫔徭RW+e.A* x!6dh#D9 6a\ sh l*iӊjX]-uZ6qgcCZa2Q1 thXAkG51EZVB wS$9d_H-QZZXkrj*`C8-^9 hROp)Ճ7 2hrB-`LK'[w]\+Vͭ.<$75#R_@if%y\q/qk8sxXZOf13!΂͸E9P%f<缘lhx)nr 'IB|hEW՜lhy^1v++bV\+<-jL< xz~|bfU;B=|hprT '+h$~, q 1iqzdCe&2=TEBZ2!_L6B3LsRLL4Z, cjЂʯr=*MYl up4t "fI±}D%Un42qZz9 bA 0^Qp ExrE$uڞ˽{rMhyy 2HxsarPڂ֢Bk_ 2F6l+y2vfzq+F5R-l2}dNbddq,H#ӊ#/K0F"n,.-GɊZHB,CKZî2#̢yfTT6Bh$lb缨lhZN&m$$* i˾p!4 jE KǞ! O@ZBKhZu{Or}6 7af5j!:!bS=#ѡdDS5^b uh"~hiEԒ$N䢱DsZ7iYwZIoT2ZԂ*'C9գh%WKn,tؓ'A"4uBBKЏ-v|<>(>wV-V6@ 9-hE5\`ڣ9]vz:h=ZmkSKrZ$PKCNjݝpl.]:OCF.hWje;Zw!Z+LkW 6V=Yգ7}.VTZ9£ZQۂe{ZgEK,R,K.@E7bذeY8Ouк-h!Ӓ-ZhY-.+cnUu i 65pvlJsTηZOW6AkH;Z?FTuz[O+ 616P,p{ڞ=N^ QYyZVZ%ܢQV\BEuMjr̜CVΆlG:`Bu)llP\7ߐ.7W ;^1+]U(uȅ)M/j=*8[ ؝'ؓ T o^ŅuZYX=Z䂄Wu=::ݵhw=#ܶmzquᭅ<ȬXJ {{A οeE5տE֭AWZkO-Z[ кAuk2̲\-b1 \!o(!gKAF6hҤ[zJ-G\U\UVp"h]1SV-gWӺpWXdsh:h=Zmԫ֯PbjET&* e}.WAZmԫҷuZ]-iQEVCAwZR65A ̪U/yӂ$:nUeĈu &Wvz@ڨ-[pD+->i^q{uV-[ڨW_D<-o2KrZ`j^aaiuвAz]В)JzC]iAT(QY%o>|χt6C*S+ ilhyuaXv_o'΃eY"N/Vb} k|.lO=D-OѡFJF ~n_ `VѴx uڕ}ي?dAk+,:/&Z^vN9M-ՠ5lxj.V._w,_Zqa^[v!̋bX:p{~}thM˧( r\a(4[CkOCynf>R{]Zq!eu*˧')3_׸VxZ,y|nm$A>$huкCɿaX3g99ZBE"8Uˠ JpxBhBezɚT LԎ9N QuZ1@,F|e88@d*\姇?o?bo?ZYbbE6hVL@ln5"ϕA6 )v>ؔA%J20a_kk>脡ua4 `0ӌfdʁM6Sk͆ X4m; ׮v][2dTMă5p ] Z~u!wtQ4dKf/$[tδRC,V'В5\xphDZ+ln Nۆ s1( Rp,TWl 1'FGr3ebr SxSjhY塜bf!ED CO,4inCS*6yyE"lhKQX#JZ-'ϩHs} 杯.%D}X쟱ºjV X3Zl`߀?0pvo\ˡeZ$Fi+e^ B?=tt `4Dph͙̠'-I83+2CHgCA&k?AyHCm)7Аt|1 U`gsaWuEhHJ+WZj"_C"_E~Z+?HUӲזlxU[mh}n?q$5DBhx >ЌKM"+ˌ15& 덓Q(b p.wPІ>- (̸p&Z@j3p80i.2'lUY8[*r+؄z搷RoP+ЂtxXIJC g՗=LyZĥh %$ t03'pP68 ,pF!פ Ќ58 2 -6GܘhYdAvЪfh-UB"zJ0d ]eZUb;ZzOUwJz;!7Z6U%xO{6lp1nZ$ֻZ5O  ePfә7ahDJSeŨo@+XSZ x=Hh&C?-e8FLuvTwmc ]Zj~oUWG'a8.{.]WQՊlhY -zGFp4s`V'f[V~C7B QIv6%(<2:b9 ,lyѡBKI?' -'K'=7Nv Z5V,2APDf!o=zzص j*? leIi%Uÿ́SDiLVXѩin+׀<ؐ6* -'ВAXtZ,, DuEǂnaW#tr*e:_۵ypj n sTG$Uh-lA2]`+uJZL-Գ4|ӡ%?̈hEӎ B9WhB뿄r,j0>"`Y2^$cGexR@W+iY9VPfi;}5Zè\dhO#xlV&:?(P54Jǰ=^7OI s5Z93!bA/ KiqE:B~HU=P?UWcq=:jjN "xla).ˠ>)]kNiTUVV>BZh D9%PqJI@mU_Pgj+\' S0KFd٣x>&Uw˾0Iχd\- ϟ?UrZ:M,vñTE=+iJHof!厞ҞݩP;pT(@۫V#䏗^D$ԳH A /DZ{%{J>"Kjuj,h6Y-6ԢB(uNe\),~(GYWnƴw҆UڢZ)@9>YkYngFX* thr(I`Jn5k;y1uxjѢO{ 4z݌^Խ5U- V }~wVA~wzw4<9me=ȔV\Lv_uajzx;÷W;^Z 5EBA@եBY.N`BVE-NQZ6uńRe3hK$*%ڲizI-NQZ>dh!‹3 lC. P'6BkZh >LJ@43dT1mBjuz7%Ժ-ՙ!K Pp^Q}n Z[hՃVRuW"TKh%Zc_P8 hVMUW͊@uŚӊ1##GZvK4Y&ΑXauHhSŇKUc*yci: ȚZ̲T?$Zht\҅vBkc߿jUhU?7zVgLa|ڵWiNz땿 t_9fIEl+ 'XvGnj݆Cd.8GS ʿ{dWBoo7UZ+%AcH-8o!uZj]AoLJZEW ő֙,#oO׃G$&|kN^g76{oe]q$\@e0|L7O 0$LIl~b#w &ZCյ8cE?@kÄBgTED0-0Cӆ3K9k ƾ n|JN: --- 2T=:V tK-hC 2a>>Mk@Ez2AZCqFUf ٸZs_:]*`"ЂRMxC`v|EB3x);C:1uGZbxh4xd/>֠-`8zh]sVsdO;-H>jqYRK$qV q0_O߾ZqetHdDk40hM D⦆hMt(K˃PCZ2cNƇC˓1?B ~%h=(3J0_՘rBksƇ::<$yOZ..s*fxgBkaXҜyLi]U$ɿG/EZi ^3< dA I`Pª+1C_j2jk+'am#SPà5w5Zhq"CQL%a0=պmW=ugEՉuO:i[y}HxH)-[zf kZ<#SCDfHDlXgLZS9^I ޒ/Sx*ӽ9O/l!3/ގqi %5*ey6kdxd⾙q`wA:hqx> ^of]/#g T<>gTAz$x0>ȅ!3S.ӂB, ܂GKc!٨JϿ<3<#.NJ,R-S)B%]؄5yN}t7Í .kYm>D@Ar:1hWӰEf^oC qؐi.yZ։AKKVK\-[ e-AhA:h +̺J_ 2f堵EZu@K "IJk[,,Geݖ:*:H4y $ڳJ&HaA3ig|IGQRǐ ySJ։VDcu5z^3U̜Mv/;xZdmkiT0=' Cb<8<$Ft @Y:U-P.ofMofT9-̃uFН4Kt25ueS鯫LdCIܗIK9lh=FDcPYʰ q4pۄVX!?um[o֊֯yZ_4 HfNR/_ϷB 4jbN+3:l65R 4TEѥ WNPtCzMG ]jMJwukiM?k ZA DXg:6LS2 `cZBZ"W$s#?0ߟR/$̲SXDž<-S8qh=}_&@f YH3أf#[ ۸A "? (6ɐ #1)uC0@K5qj(yd(/Qu221B=!cv0###*|4.z2#jq-vsm/!3 ߺĜvgf]blJhJ/9CZ7o=5H09ʽv{vjrSgE?|@EZ3P2R1H.`-!=|sssrDomlllǴkP1l"6tRNSq H_.#y?gV6#ѥʂ=ԇMdjVJ]IDATh͚w\gq&ivO(V RWܱm6MڦMt{~;Zipqgϻ_hJFLG̘+Q)C2@bݔD0W\)AȔiZB2iV)Ɯ4wUHJXp8A6;dh*;m+xiXgiZz٠אԘ>h9-+SŐA!)P:b2E>(ӣϤTtH! MCe :h/TLvĀF-ˬj  եwLn|IA6,|{fMzW;ޮCH-QSMnBєB!-25MhdcTM6-ᵱ3u:&I&G}j!":yB3s/ )SKiQ4*J͞nҸMf]]gF.KiiI2^.rL=mԨy_̄Hi@wڌHey (X :kQkyvUB$D9zPTZkZIueE\mZy<׈>*6w xm:j$:HQVN=e3C%4!1&d@q88kX09!9@g*]fx!Dw#Oe0H ͂UڢZ[8x]= Ew`"vPS=XtΝK m{N]z0'4< /96Ƨknkiim(>gʝ"&t OYGIxCH<"!WcCz;CH᧦xy2= @x[8Q._4҉)@/RSfSp8#pm9AoAJAVUť d&)+ JD )Y).si`AƭҥO # EI(iUUE~V,T.dU3vLgkPM)"X)^%z@|Q_>+* )B)2"UI=&t.Z#΂eƅ;"RL~ާyp:8!C UDTt X Elpղ;w,zZs iZRr 9UߠM!ڴX, qb8.\LH7ǯ|rY<,ihhm ֒ hܡr֧Pr~y2/_AЌ~eGkE RZ$tT/AʄLe<(=~uu?~rwh@5*w,a;.ԖD+M%v|f!nl{hIKEkR _hcma^l?@}ˬ-i@3D)fP%S8{C~~~{PFIEYw9{/U.e.FQ=f9Rs FLpX:t{xȥrK|n^fp8HgݛOugDz #rN}"93c/Aj_l~&: HK8ȇoRƙ't̒ H( 8g^ 9aLi/uIk[C |.a}VШekPҏ+ޤ b%Lbeckz܉ޤreGY}+s.]wfdqZrk/|5b ,r "#`ݿy,Sq#g)>[U8&IcRpemnJQ7y߿g+ma\blS"~x Nw->}z!2t0~wwqGFlZBՊhFkWNT[^~u*: :K)1Y_[*ѩR~ū5ۂu=h;F(ɔ mCax 9z޷Z) W[ "2SW$2Mء]wr79.ݺ ܺ"pX[US¬$`W2ځm^Ŋfڥ뷚aB §)H9#(P]к-0Gse|&#E;e)\#hn-ܶAc_MtUq-5T{>Uv@kX,.7+6)Q]T]7 MM]FsSJa)Wkqw7 :0E3 pP3-*d/UtKTDmҕ<>ՃޅcAВ!6#*[.8}$b1Nw{W籕L9y<>jow;nrY5 ˶Ziƌ {tXsB۵/E3f4|ΉJI1>d͛jJKBZbb Tժϋ˞5O'yƉogaiƑq4kʂr@5u,ꐨlA]Y'䡎>J؁Zmx-(h*Zl߁x\tTѱNEDN9T'6l!U]cC:Μp1yGsbnasR[S ,!YS3dÞ{}8žrCS[#KʖB$G{[N:f vTPd%rm-vr0\˜4\S3RMUyy\X1F IENDB`all-in-one-seo-pack/dist/Lite/assets/images/mi-graph-preview.Q5saIZQ3.png000064400000077305151222736000021770 0ustar00PNG  IHDRƁmPLTE$(-#(,%yPemnrNRU?BF_ɞEc{r9?Lٹ򚛜ݽĤDZ䝞MR^uzX]gy놉QWbg飦stuūƭ}~EJTk黻qvtꔗxyzmq{@FP^cmWZ\_ac6:?(.3Й挹cis۰/38uimwofghklmϲHMYؽԟʓa֝6kجSXI˔{tٝϺ* %)lƮUNjoQѶ\qؾ{Ǥ`m8e%җ~PAgAݾ=\"tRNS"@X2/ 'HʍW"{]IDATxM 0aS槭nztfE0HwIp1^B_3UgO60ǧڈm%ÂD+MԂJ>4( EQM.a9hPD~ct#nPd ep'bt2AeQ33,a'$r&vD*,#A*e@R! X\u:pbeLdG(5B~`Q) @!+H@6 @tF#t]^)]ZӞ<"E*FnL]dvnvľ&:ޱhiyAP"uml\hJWJR^pYF8l[&ߨ2§B"̫` |rH?mzΟ4@8[ ~C3&%KaV2R$e B&<Ą ܱH &=hu&F>Tzʱ} 륯KAʿ~]>VNƍM߅fS<0$)ZpD."a.54xxhI3F mJѦơ,#I \pr:?~/նa(Sb{|+.<@nM ZPC2)3Ԡ!ыn ~֧?2")9GGrKrq`=h6W'^Y ]L]~`HzWrA,rVt3 ە$R9iurm0y>/xA뙘 FD̅F'?[ G{L ;;-;;_#~aыau0NT(eBnփ,1h]-U֝L#6l߀ #0WD0ߘD O6 Dz< : "*84V4]$fw :>@t:(lbC&馜mӽQWQ:ʬlױr\g ߦ'n,/ܪ$mq, E%q8쇽( F0axE E%+$J,ImM‰1mDJ Nr /@YH nݽ/_hrY/_i'ӣ4d+=3?P͟rGhC UU.ȉF&`m3\\|d< D "X B޹Խ|aU^pX-b|(2I%/yg0MBr ߰+2gq2L |@L }!*umǧeh us'Җэ?:(ˣE'2P6I64}f4NCfJgKğ)t`)H8C!X1&*2iy緔GeRR sxx K9T潕J |8;Az{1v-^ȣ==͞2eTE浾<7N^ntM:*Ǻ# Iz[UrCnVJ!) |Ix9$4q 3{@C=/GoXqI"D2PJJWU)QcX18!g_ڱNAgP*ce* _m| xↂl5A2̌s޻7~e\%j|ifsVOkJklqlL6{ʏaa‘%ńN>01jIsX4ZSjO.j-`e%cFYy6~Hw2#ò!RBۋjRD,P.X*U/xU`YpƇ}S!X2q6A*&D"7O'ẄZ-:Pq2 +i{U WL-xcH[YN32gF}9$)7牕 F>Ljz:I&QEm܍/Wi\j敾lv ״Z!0ql~]Uuy{!=qU!] aػ:azV ?|ݸ :܌~1ߖ8_HF$4I"p]v.('RB&գD$=UD[A7ОΑ{f&ap?{νчs./! ׸w XA^%[8UVևj5&MMp $d4CMC2LuqB(,cn;UH8?7*a}.9=(,= CWa04CCMj< m)̭.%U_9'la4D7B܉ $J3Km-{fr)띬*(KІ{un2tt)ߑ󚤖hJs<64VV(\vZt(j%g3*3?G&3"GZi/*HxzC-,*˶QqьV"$xlg .!z¤֚cN_3=bBWVau_}E@KKn~軮τ#;S;}s8G6#}SsuzߜcsӍsNml,O9cody}jX^v!!_)U)dt La v%oIhpeT0n qp=5E,N3(O`g5XN:N'bXR*:n|QݨvqQQo?Y}b);]+JBb"F.aےC %agNB[F9**' 1`T4AXB1#5aGYUkHC=WC 8?2E%}uld20QQi:aD hz;*xic3Ղ =]q$H- XB&h8eƦ( \ ɱb Ud&Y&0ؖ0giP6sЙd`Lg#)3S1)1 i75(= 叕!a=*5k2sGȽnŏz0@NC%q -LȣBy73̔/b6?ޓp,])>)dyVeH%=$]+d +F+ܢ5"hX^ yCo 1Jj(Iɬރ=++ΰ=c`8HKqX&e*䌔Gɉ-Ḣ$y%w\{ M0nwkPWCUW#Ѕ@?Uk<##aGLgځ&Ku⡘4"a%IhYc[p`yʑ?vկW.}Sn VBz9y9vh[3\҈B*ʆ@J]k<c mGCt`&:<6O&\d"F"%/]垬,!p20;/{ҡOB3e2 K8> LS@֥JAƗT @6ϛ(=G.d\:FL.dv}\db(]]K\0WZ~W;*a#6LؕleSkAoFC@`͇'"zȃ[cҢHPtH>,H^eDW,`&Neb,ŀeL 0H8W*kxCeǣng䓌Oιt^SӘD{,jۭmK"d5E Ժ- Z0dQA.ĸ>0k?.9=1#Gc)!V\+<%c[Q"L7QM9ԅQ50} *F*@K &o;83M Fݸ ~-h6(7E#72!qf8Rg ["rٮr$(ڣ3,ycqHXԓaZUnZ鐜ƛ<"w}k"aHd +*Vx&} kO$&VkkNGEKhSw7c Ֆ h{xP u6P @ީ~]i K.Q<!e}] ͭ* L5{oY@:>&|[ pb;xҧ$̕ɻ%4{-C:׼P95=Ň~ҷcex ǰ1)ױouX;`>(yT)c,aثZ\oT O"e uDt+|%4Pγ`~(; U35V9YMSG֒vՎv͎.-{woAUߑ,^®|ep&F̏Ae` =O^0A{{K% Kؖ{K[\đ+{D5ayP#Z[0*q(RBt\B/BY)\>~lKkɳ'_?{c&I·O>:WW)#+++ha QHI(%Կ|#"!t^x~ 5ԭ[jYm^J\KK"7$D>y kJeO)*yPnHOs Ԅ҈ f5k[lTS՛p.pE)SDXplv>;.+݊$/D+cBĹhHQW|wU. E]r*d5寫8P@+B~o*!;?+!vD@ ts6;O=$!GXy~WI8·<,??B~wYu<ݎ#EW{!,DY P,ً8B@рPJ "O/;YƒTBXY0"7lE٫`q+ swLx+v?d&BAˏ1t-⿟m[ Qu#BeJn3 n௱o6}8;4lulmN6B<;Ӓ[+\P{y񺕊FX<ׄ~IŢ-&p\K 9x3YPrtƚ7"7.6 + G7?ӟq盭!#-8wNe mr꼰b8 b (-BfQ(=~MJv#$(?v`뛭w-1[B؇ۑ!l+)6LA"V/E ob԰GuJ)Y5{"K q?E?o?V]}h!td}]q1˽gA+@d8PAHiQϗs0Eکb;P I@AML@dqbž_ ?Ox8Y6 aFaȣdN=r3r +a, Br@  w \~R gWBS:)8BQ,p<7os!BV Rxe叟@j:c L'FΞ lR)L&谙v^"U~mcGG>ʁho~eE)fݠJ0P0i!3eES{7UPƟ  ̻ Y7r:dC`i674qD"qׁ@f@:.ZJД7YeՋ-6cΎLQDѢ7"4آ&ut⫖Q~󽂱vd(&&lȆczh!^ 5b:sa(].I:.&&E ;ҮBeooԲUD,_|_E6O'At|Q m[P:趏 loфy{y_mL&SozѤ$E{}1@N\}gfGd5]; 3iGE(]և#ܵ9…HoE6ķHd ,Oyo'? ,s]]~H\WOs S18>![=44j @zS!+c--ԡoM?f3f#E(m叁 XӔowaf3ؾێΎ=L&,AH  +6EΥ \3H1a@,c!鬅 M 'F^)}En\zwbR~4#Y>00_5!U^FO4%#D1j=C ̎Qda%>x>z P(u. # z9!e BI౽`|Co#͍O)d g׻ s6J轺Y&зСDX}%)DO9>Ep6N ns?{yѩxJ)3'OBhP$ަ,t*Ic\ 2|{nzdy%)N%C\W 9&~gWw(tKQ&r3Gn܌([7\tvP(WFL ޿H4 (Q.7gEfǨReO'ka o _%415(cMpٱ+2o"(G`8մR)H0u!xaZ@5QpbyW> ; " m;( 9e77WBf-?E*쟇3xRYf&h)E:x.aɓ' OFpoO{oW%$IQCb]).Aaae\otvQ anX*cR(0RB Pa!T6.$-CѬ76O =^(Z`m,)t$܃$3qG0deb^6,oâSɕg'ģU᯼d2 1"F[gb^8aV@% %!\ BYtOe:|:'&O:^!*W79+s>D\F7SaPeLgl6sapLv=/IA%PI G@bx)\kwp] ?!ЧrkV6a#\OB(D#txr! Y3Gw?Tٿ8Ͽ:aӠ 27YˈNRI^gSĕppp #P~EV{ЕS4"ovLMi(>B'AMZxT{4(~% 77W@nF]  +Mss]$ۆngG6K{GJGe^ LXՃR3=%< }炳zwOV~mUnT:e^SREX /'Ox_:͖~|J)paR+N!D֥$2"VpG$1d|L)URoRW8KA8k;Xy"FD/ל^YhI'#34vjIFXz}Y{vt6ڑ .Nyz\~kWX,="ң\|NPP ygsZ4 Or*8y7GBɆ k=^t>xҺTmrɄP:7x / #ٌb韜 >2贸ڮY39g_4@jZ򾧉[. !w:h:?N*ϰRPDoѻؽoNb * ^/l;ǹ%4 %dٖiK.?2z#\dW^Ku 4+>1 yag;Zidi06>1$dv\ ZF^˅މAYv[扶iKh]=wa`abRZmćZۆnis/ NLQP-K~G_ƳpL&plX.p@1_!xE(yh ,lmfzz;#pP}* & =Chbj 8bvPyoIJp'&4ӏ.Us?DZ d Q|`Ahqur@7vZ !yՂ&s!Lecms7Ƚi%cЕ JLjO)47x iyh/5e% s# !; Ah'9ֻuRۊ\Y\  $i 7֢ O6XSd'#>ܾt TCkth+RZfDLK|:9G#MgxѮΞj27g At`[,\ Kx pǟed\*feZ_TU1Q7gܡTf1 !wfLlE8iE @y)8+Ո ~0:鐮ںMޞbvseBM&ל]e,pq]k:;c?Mb6}.a_-Œ{v(r4Z@r1R'ha]G^L@Q쪹b.@3n3}w!_K>^KD/Z45t`qFDuAC'GgO7OfDB)[! T0`iKJ@Ox>\P# D3˅PIj@$RpAe U=&^}~| G'hhqpnvg; Ɣ խ/h]w\[SܗGf {! s 'f-/nɝڠB@v!y2!^`!j\4E^@wnČ dbXY-I(;&]F{Ž>o; p UxuckUࡡ;f!$L̅} D)8\G䑣R˃PnJTRJ @(%=:b^S')`X3opxkd6T6plm ,aװ%* L0Ol pՒ8$\%i Lܵ8/Ec4"b4KK3|gp !A=I. .(C-um"h%&ܙBG]a_ !5N>vN^=eY5YjW9xdS:؜;y>S~zW_1!_l~n cM+SڎǮ\9vH,!gU!%<pltqǧ!m1'!cKH{!}Y+l?w,W>yp'BDty~[9OQdBCkplYز:g-U4T֟n)wMQ +bUnIDJYQaO A $K+9x PZVfK!~Ս;@X S };>{Z+Wae^&[ 24ڄHD-e$VܶB7' *qP%n󻎏ZNjm0J-NPG32NU !Ɨ&9CRËX"B6"ȴ~dB]@X/ L*"FTR9l~QMzm[p-c>n3[F8]B_]l%PU [?I?ҕ3 KWWn&BiaCn|ĿK 0E[U7%lW֧޽ ?yDז:B(|_qzFI@ e%WL.>wmDS3 7Wa[N/Զdv!;6U@( :w9?˝H # &M!eBo4 6GC?LqI_Ϣ]4k a,?«g.A7gDp贖!eƢCٽ݅h nƈ/;fni,,7'>ӈ!cx<#6Yy0[7x͍ =+x-߯ƭB98 wZG 3(?#$tIG3fǐaq/`{InVGY["+amxdX<)8vA2=SvEcρ-XDr@__h>Mߜt|bRyPMاëe;)%cWaQnVlLpnM:c?hBۊ'04#ەJ ,LLpauRg"Tw]4cP%:_ua՝\PaMa6&827i Y=_UZ6bh\R4 JEl*+}hue(P鋽?%z"X߹5n7O.s3LN jJ&s2Ƞ&5UY/lLPÍ(jNA2@wQʰqmȹ0;~0zՁF iDiaEߕJņ(Pm/9 )5ދe֩ud#„,j\H)(PDPčʠe--eQ0 (lNSŲ*_LG n ϖ/͹ lBp֟ [&RTY ati##(UQҝrgIe$(( TA! 4Qր"Z5QWiY:*6{&1k٢:a䂰aJr\ʠC2C0 G u"  +0FL4A!DC  /jF2i&&gdB!K($)uNj@8W!¤2W KBavfۛG>}(թ:aȐpJ#{Kʀx3e5YGkٻA_ !l cK ǕG 9]sjgDx8B?#jOJRH6gᾰ ¢QtA~[LѰI[vABXc7[mݾw8!IW;4t(ˉc턐- bb5Q<ܻC_- p\CTCZBO,H h čFn*q Mb!;4;1 %d USGm ler?'$x(NȢU O7aFBz \bMvp%7p͛[9apZI/| ׁ1^K` . !dFMHtB+-y&4K!B*AO2suFLGK&: >ĵ"2'R~N/8#>!w(1q=m[=_ *M02D!,J*j/uqEo{$-V1[G Jp4əmgB\C2%N{='KBaGB1^t4@f5熐ɄKu‚QN!p~[wF$K 뫖kqb% B䣛LLP^p:s@Xۼ}hafT.u1A$MqzW,£ԡ4Xif6ؿ, Ƿ<{ E/v eߚRfCXՋ+:0cX#U̵ˀ0ý | BrgCLpע I-gP ۥub(j1dDhO =yz}7_>V9;wΐ0<>1L  B -;S{gZ4ѯh'}+ qAwѻ1:#H׼ۈ %<=˨Eg<=6{$XqN?z&|{=Ye'" >H>ߒ< |,̆a?y|`C8%޲!_;0Ķ^b(Yl4"2ڢ@  lMxQ ň&&&f|A?yz{oOs{26ۭ={i}{s7! =Sg X"t? mL JcƅY4F@(g׮rf ^R@F֒fM=J!#-t`voEȖdǡpN'CWBW.w/)9ɹ| Phz} 0$3^[%B6~3Ԣytg)Wp׮]UUҚO6{ޥwe2cٳI\eqKagB[a>'plIyĮs!,2׼PA9D+\9cq&5=VFGEH趵Wt7r+EBV$tIq;BH"B-PN x ڟ)<u %;8t=F Oh\e RFh,(n86 J^+ n u^/ZZ$T[ 1  !>fVxU(^|!ˡ7 O]0fΉ~vݧ 1d 3pE8`b!ZJ!1;ee'7jR^M`wH+ $fǎ ϮStB|#!/ 1Zȕ#' :g55YaijX^ nO0\c#!.a qi*pEߐ&R!C&اi~9ƥ{֯2VrLVz|c9z YW)mL\vsYײyvNo\36wlhUohi o}oyF‰NЈl(x•Ah TA,p=oǢtw ~)@ފ>FB\'|C=L NVMtÑ>:!%SF۲AH;jۦsp8Έ5X( ժ*a6{\GG8,1Cf2EIz=m}1g4urm-8zd\Aԑ;91QZyБTfeZDXMkMnv696-ۦ^`r*{ \S'B>FG,Lz- m'\L9~}yӳm+5-Q#ޏCeb$9B[bϳǜdNIGc#g4nҒBA2{dЇvOe ^ {î~Zn懿뫒~8Wǒ%̠Mk"IUW3c bn%ʝw^yog= ,WLg]>Qz ~u7~c\\疆#2&hT#DY%1,&ec0Tm1FOQ|'u? F.cDۈlЛSo&C }Bi0eAߧ}O],rłF*++Ss{D);30l)ΖnWnݖꛇ?pTA !&ubQo Qw^' Ƅ7'pVR梤aRQ|O8 l =5'yv{sB( >ӿMqkd'}ە ao!+.:.\* m(>8t~ny$.UU ¼&xD\8})-BR;NyMu,%͍ȇ2HSY(s!tmqiHfYzA$_O//msnfc2fdskGZD t6̉~K{e7; jh-ֈ}Ũj6fg8u Mm i 3NxxI=ef9Vzl x5U`PLڬ?kˌNl l| g_ nvi\ʼA{D^2VY=~c)NjMskjbb5"jZ6łHg>{6p&VDBDr׌O4LW7!2>>Z%$DN nY'v `S|L4bK΃xB|yĨņ8qHx6RBr:ELtAoH.qD'?~<K{UQV240) ǶJAh -^VlUڪfft³|z h<:H,L!3tYo3a-JtMDZ91&yGb$nk~P?Al4 p {s?ޏ?Ơ|n$/KD B&&FӶrutf{:ҵ&Z@UZ5^nBmwAkxvhWX8t(W@y19[ͦg*0}51:!~Dz~X~啓! A?[ϳwsN' Br56 NB&C級fZUg!ԪlWAQ:֓?Y$_(MJ'$3rU^U'+<kguT{|@B!>(D J wdB|%XY >=MfF`}ĵAh-C~=mp"vuegn6.Y.17'Bu@6^}-/!A Oٮxpޙ*ʽB{ [BH9s$t z E+?V,֟j Tv ʁ -`K5:'<_o0kI[ܮr FhzkNhVHzT/I]4=o+/!^!4!<2CH,%I wPpi;}'oFWjt : a81@:6P!H^Ϛux hfъDA.bIAB @~h.}{, !(obXTI7 A~ݭo͕Se[_=K?tO؁#4e ɿH 338#ȥ (Thw/H xz*-u;OvU* L0خ3fF'^‚SB$kT A_HLONJ) \*qZ4ݫaSA#/>E8 n a.^)`}\ ۉ͑ЗVbh_,B\ A@ѽT$4cx8{AϽdW?腤,і]w*BauSoeǭԅ= V-݉n7Em!G+Z"hް6c0 z Apd83q M+2J"YfKg.N91>' #ɥ]sY sSsdifiW9|g߁C=nh_'o+UʾPۜzninג7`Ф&[$*]Q8I)80$niCt <y{r}fGf3酑H*"4$%$SkBnxeRHJ% |e?0ۥUjtJgl~R 4/o<u3l`6Kkxjݷ7?!m-GǶ[|y4-ǰ*yƼW%qu9zeڜܠJ|BTom]} oj5c! Hm$H -j [M T!i@oP:,Ly:<-@x~wB~БF;v <@XU—# !ĥ\4zRhYA <8bzkcrp-gw)D6I,%'Hf!)BF@M1}:7u* C!qn8f0u*/L SzeMqj\`ΐB0bz/~\6/T~i6~ySʳ??VXa3*CRbcJƇj$%3U qAkNzτy S\X&K8?)fX@Rr2V2Ĥ;$`FUF+Q~֩Hė1V™:'*ښc- lMM.a4DPH@AX@^d?,4OANRB$!F`Ƒ䭠r&ֻY- Xh"/z5j%+-cQLP,sbGRsX 9=.a0EB-V]!aj91ML #$ds)춱rKBg(R9P.asdL^a hA $DkaKa@ڇ[J'<0Ə$D&]VEltANg+oǖP+uW_HLJB*];E8̀lˢ81SK#C(9)Lg 4Hǖ^ <,<dEi= LӠ>"L\;Z5`OkS|Aa; ڤڿMURtFIٶ=bƦިbjɀ ?ѻ 6PFc+#P2fOр/5{ŇYxl!PkJ %FJqfCiJh@*9 ~&j>7KQ TfOR [7}̣=?[řa:Y5ptk7P—y-Q x>΋~/x93UngnÍ0ǜjB"L+L0T9yԻ"/W`~@ hZ(#'y$v>KH]=`0Pfjb捌YAS ̄>W;~w3!B-}"j$Q:{ݗ+o?jFB(ט\jZRj&=4D2Ͳj:˪]*ܫj~L.y49J}ˀ%$ 24[f0.LDz B"OTB<)LŤBhMh,fVB5RRz9—=lu_w5/4_h "Z2 |!X5f Җ`*PoЕPNBT92̄.ԗS?z%KIi)eZ 4<$c,_YSN@ƿBlK3/,ӗo%V ]ן~ݓp炴4iRig5!K.u.>dLff5zڥc54>$9?QZLx +6N82DU'NkKxx UykVowKxʖ&? "*pD$ ^s]Ypō7QHgBؽDFM>]]Xߢ֫hv]]B۪W6a . - 'fK>–D$Ćwyۛխ`ڬ 'kU]oVw*~h,_; 1FpKغ- +_t侮CDBT֫Wwͭmܮ׷!'aUm߬no} ӖPw5;K5AO&ySk[.l#$ă{\"=&8y okfb {%$*"΄UzZCٮWIJXE^nUM}WSP}ʹbKH3IhNك%,]W 6Cҗ_ Wr]$lq!+'/F!RɄtRyb.C^Yh31 c0Rn$@!jBpL4I iЙДҀΩ1!Ax3܎/4a]ʰɊ1cD{0:]JKl&Og c1*KYĽ|Rwr"5ZN& ԦwZXPI g9au\pҗ9Zc*.:X EIQtP*j~-R!|N8GN a*GH<paG;G‹\xG=Ѕ=o(.Lk=Kp +0PV4hVJwV)E ylDzƭE>dA;$OOk7Z'Q4e`| ̎ 2gobҕkd'&j$pF_"$!8} JxۗGs7t/a_CH_^Um|~r_B"CGv_uUѮ%$#!:inWfDum7J9A 5?Ǿu>inO;Kf3;o{P zjտ?ucCMd=@N3!&xoUA{T7!$|x%ע*m  p\&{m윕hH<τ]%|ʹX Q_$05!uN:ݲ쐣EY'T-XڠĖRPVktpy=w9JC_qK_*65O;:i% SVѨRGteٞNjif-V3MNBCMX70D˲p@O aYE+f.W7 7n"-hcuO/gifǍ0Uȧ!!' Z.l=ZBk$l1:%Ҵ"n`+ά{ᆵz.)m|`n+Ъ|ƾnvjPH8cOca*j2{yLEooHuK7Q;W/l `^UiO^|'?VEB|^h.O_JRA?bB@;?fY6<-q& ^% d\Z?tQOR_RMQ+4` jB[HH) .DKt#RnMkfR|'E?ܞv|-ޯfɉ 6WR l)`A}ŗ,9?JI&cqE[AӶoȫ*e+n f-~m(a,:C8#I8Dlr'o`MAjѸf=$,b.[%QsH/H÷9~/,Ӎs7o7nUr,#/78.u&Jqia*[FؒJåTMmV j^Q3?{2fҤ }C9g\%{_TSI`搄npIU˂`Ój<r펥-dt0 g`ى}6>i)4J dI@OjRO*3IN_!5>-4`5Kw&~7mtuW`ctK'l^8K%H* c?j+!q|ߝ'V0I3&?C'yGa&)ȑ'&sIxϗfB _-1o5' CD_ +axdxЙ >]D=k%˄X_KrLh\Fa NCtKI=&G߼~s,:쩆F0 l`hU,LKI$kayzG@ u@:g VŮK8IB BALҿ$}a H@· $œa*Y^dU.Vztۆ 0*YŮyHHAp8iW8&H o+;wDq]f1;l/ HQ:hf5TjCaF `p0d {4CABПσP캭MR2/e ()]]D#JTԢ;EȎTagswfYx^dnYyrg'FKO.;w BvThu$b,Gj[G+R<$2ALqwz 6Q-\#F9}  RnR[& ` !£w'w~Ijps<0A$;PX렮|@Gf~ת:͛ڪBbzdҘox_#̪b9Q&P!( Ed4edK\l9%l X"%E!6N#Ě&g~;vyυ1o)\RCuѷ;zV!cKʛ=FFL4ltQ۠ uI.„ Rq&WoJ%Bz"}w0rcp`Qs`6K YMY=6) #nQV i`,PrC-vT{C)b,j Mk"|b;d<{ a{ ΍LHK4K5DJrqqSExB &/dĴ̫y]籀ͧ>DhK4FO>fbu d{iPE0F`.|Vx [;y0_~762 TjNa p%i !Bp[Y_=zy3ZSbQ{#(# @48fB4"Te GOO2nu/&G# 3TpvhgHMMau&"=pNN!?Zf|`P6;Dw?YY@R"aDh6h]@[,Ș&B) &4=9 MD"`*=FݎGey|X=|xOCG"kq;No ~g|Z8|Ճ_E2KE )z`h@ ^CP赐n$Ҧ-ې[)=*&5[i~o3L?KsժoԽ6H/a]2 K-Z}eݻ7{3==Q%a&WspeX/ N0G{A"K, cHGW3?Oڌӗs?0{e&!KBT_eƒbmbKӕq|u}IEB<sLBJJK6wzꍧ'T% PuJI3805 Qo: '=2sҔr`@ϛz0c]N<^xlamLc_RZ{;F;` z'qo:iJH(c`0+MB%p v𨁣0MA=BZ5|\r4;Q5\QҢ3r%tD7  o-)ict-$nꍃ+MB@q[.lnd,bh.MaCmX#q+)#߰F%jey5 4s: h[~qj?'D cSOBˏ&!a7݇ 03r*N{q6ܪ}UQ2šcͶ4npGTB2+F٨T؉M" )b+H&H;U.7;!gbl45_6#\kԴM’֩JMkO͚7fiVu2qy&I;G|pHs͟%$, x QAOC».,`2" " L S E /Ɩ"P_ֹ|DUEI( SXE@yqy@B$$Z3g%!tßge{7$%0M mI%N v_UŮ+**$]D-AEUU$ EEBDVu}K(}l`uRm1vR_9?: dZ‹+Ixf$AWEyE'u}YEm^۲d(9O㏷m.頲"S %袬P_I*.@:/1M AF# OeAL*)<+"] lQ7+I(Ӂ\H&h msja%, "Um!"Uw3~)!ц>ɐ>;F*P2 K%̦hz3+XB&a|Os?' ۵քa0MΦ ll$xx:ǞBaT_ sDcy8B+pa4uÑ0 zmǣHe!qP`TKT`Da=*$B0vAPpR{\ zt GlȜʲt$qqb*6"9?L_>6=I28D7=J9>L7>K9?L_>7=J`?KGl_>`>9?L37D5;G]=^?_>+09_>9?L5;HgD_>4:FlIxϥoK}]9?L_>Nd###222qMbw{ZuΐrrOb+09e:_ğ҆hǘ}bAlHwyWtQvSp˖zeC|>DRыmʉkwUiFknJfDnFMY~`wXqQkKv.--q03B稹D7mr~VkMUa㺽ݖT]i֍luߖblwIIcDF]֬xgZb#_O HMzh'֗y.%jtWe=6[lKGUIйtŽ?K0~>V񕩉`TRzF.Xw0񃡊.$IF.96rK:l϶H9[:z*X6+s`@}P^& N#%=RthX49 yH8D}M7 &~vCe(]}tB= aqМu~죸)qJ5;B[ϑ_[w-8#?\_nĊ{+bODKA}\}GLI7, M@f7&,&ԅ.* D1}qݮ'8ppRX}KĐoIJbdFY.麜(5 UTMY/4WB|] #xxƇ4&d^Kļ숗ΒxjIA,ϰF#f.Y5 #+sR(2ޚ;WW'O]|Nxţb+':t}\%ۘ=۟a.%^nVȽ c~SdB[D|:6n0/FFnA5jL r)tjZdA0p*&wjpQ>|pC7;)P,maqA|v>y¾T1!UFnim:apAcu{ԘZ.S,_ɯGW+zP$,wԆxr4F4{/כJ/gڵN.Ķ6'oibTWYT}z 9ޜvHcP9G4u7x2W5B]y`g{w?|9) hYҎs7~rjfMDQwW\7D"TSC51MژJj,m5i*FԪѪ(*E}"/Osg2'$3=HsιY1a*wm6ʫhkVv=AYvC/wh?RjkP0B=V/!7I:Fd~i: &y\/`ZF FJ[cBTO"A:I `5e")@ׁ܅TkQ;,:`v6t*an34rDi\4>%^66zv=@ S@Kq1.r#&N@/*9\K&qiÌM (m1U)c:|8v6HZ*7N:eObTNP=$lj3_ +- O^C2-䋀/`R.$ fT>r1p\'nQ pUg f9o5<-e"gWЃqcj],Crp` u_fx>8czg JjMNYMw֯ʿ094'\z>b:Szȷ;Kz㪭y}>F y9'F>nBֱOUQzn:Ԁ!ȟBsDQoU;0K K#gX&'g憇O 熮\E*yS_`O=xFKr|\ [IpR]zA>r93丶៞Sgw@mEi$\zB`/o+E߼F|$r W>!× `0Jr@o2U|28|>YRnoRnd,|UB|Xfr_CGOv8^ ]tGujK!D"G@|M-\3'T*9_JO7 A(?ҿ[EɕZr r8bKy{1_NEkJR5O^-?\ T;ȺOh:УEIO䎨t5Z&ǧv9;әM@,2$QE7Ho(%LLQ@ Vއ56-JRJD+r ߧ$|!b\q}"w%jQKIF C_T^{k0,AӻvcƅIGpQcӂ"Eb5 o&.Cg|%.Mq;2-d#bV#a#KD?u"<95KZ)1m> T .=$*,R@Y!=8yZo}94..&s:3RƦ߼-gF7i݂ruSnCˈňͰVwuH`L3oU6aN_b$l[ΝO7D-7:Ьf1!֐ںcwn߮ukPB0 Բr9~e6L0z b\+|SNt>sef&,QN] =,tM39,n7oTB XP%,K7^ 㓬1D~MNSA(N,QxFW˩8d7VzOŢBEq_trDV㐜98'yDMjXx[0-XD-װ߾DM',< N5A,O^*fǍ1v 3\x 5[-.?'g}YΎx6m쨱XȭY+&%_^B/R`g"BLk) |<ݙ3>6{CJEE^^&'$9[sq vkoAgy&\!'8GI5œ 6h@t~AAA..bj П\uɿ(ɿ5-]+']Vy™9 1K|.W^"+MQH8*#V%jh 34tqFؗHku'W> ƉqN#Xxr}K+{/M"=7AeKeB|-̫O+q qQs×*w.ηZݸ5QlObq\d[7>Df҇e? |~F]1jږzD^<95K⤩n产rM Kd+!łz࢞~igY&SZA^j h!Z ?9[R x|\'b~T=uA s:4K"nBgě:׽cLHAU|?y;O\c?'G*0XT/[6drb@)gɤgHגCx4^:q=^$'*+h.i/L/TP׳ë9?y x8$(DnNs=9y &Zc2N`i!:fVCmK y~ۺ~ɌfS{/֓zaQ -t(oqNJQ$7ũ!!?U?Fw x^Y'ON5@4u[>n}VkQMhEEoJ ,qB^#5 d $X7P]+ AЕw2wLZߦsϹ3~W+4mhN[:b] &/aP kc8^ ;>?Fb.ܷ2N}|@3fIDA~ټ* sCT*5L/?xte4~i<Kq\NOqz"嬀ZuUm'1o/4-. \>mL19ݑUR<ƃo1[ շOۏBKrМ))wl!qtLt>'}'$nx0Gq@Li5P%";1&cPb!X|u÷ϟ!=}a72\ɩ[,Yr7jv.c6؂C0"$Sg~IUePnf#rp AٍwwYr(pMn>#ReB.C -ۓh2['P~]89?|yPLTR^mA-u%ٰ㉐ 9(8[E&JJ35.?{%ž7_}ȹ|ɔzVha"JʇMϐlB \JXJw\4ro3C7k3 UX mKUh8QyH4$_Wmd#$ opp(&38yZL|!4W^u[{aFč,ը3>U*7o\޸OrY._FEBZj.Spq*q,ZeXi+`JJDr͞R :{vGR$P3U\˞"^-#Qx"{O<nz LcF`.kzJYfKr(҂^ocZxV0s,$IKx<@C3Ph4f(*7V;TL[Kt)'#Y:R9{y2I&H4/r rɲ|)'?! IQUU>~d*Qj+CT& ~wT )F%r\1%BR( 3O!oEa?XSy/^R=fG*P.n6י `BP2LCkăW=DNJ i4}'``1yheWm%KlZKTZ*1R۰F %.0mx% !zkOkrzGni*i7zFR\8ɗ.f&wH;7X68 Lrw(k bӔ<53%ά>K)SG5g![ qtxEIu[GجJbR}Fu lkAj'$=%ouDp P{ riN%\% ܕ`~"0)µpW4bUZ /5~}Rh,xعx#%GAsb$@̲ 2#dse1ՄmR1R*臎4x poYr;mi͏<Z}lÚD}F.kE (Yª U%{Oso 3_;7Iy[ASXz{BMm5968ľ|-YhϏG-O:Nm^ǰCJ!>Q  gL7A:ݽig K'?g4DDc19{>k8刓*c3u' 1i cB~ yt0)|7 99Trh22mIM 5 K>ѣatkk'u$VT:]#ێrz$i@Vn甩o0*PUrxAvIt b=R_W4-4+UT?9,}`9H#n~{lV QTÃ[Pƅ+ZGu*ݔjtJRcjʮ[vO>{!ack7W%!nL ̂{~dcZOUţvtݲعsϜ^Kv'%%ZU$)I y.DeCZkR౵gQ@`rc"#OUYK qbx?OR. 7j#HCc&t#/F_]bxkqѧX^untvnQ󐔢y~djc>a w`ꇷz+1NRELdu{-sIDATxԱBQۇf6`&`b78I8ȳj<ȳj<ȳj<ȳj<ȳj<ȳj<ȳj<ȳj<ȳj<ȳj<ȳj<ȳj<vIj`o4j`oj`ozj`ou:a&˪`eV ɲjXdY5UbV1YV `_ηu Q~a(&& SkgNoڱy#)r^-aqdH>:VSO2ySs1Ts3}UJE!>UG<;h>Am|_Gh2u wʶmnn326^IF";`eҒhzzOO0!P=/JZ Q&S*!*m/>M֊!;J| *Ϝ֖}ss)ϣ͜-fb;DN|T'J Q)&ZUi>Zd^Q?|5=) cDR!O05|*::ӧ 6}*dl/Z=`sAuL{E Vr3brC)7J'Tsl54F7\R4f:x84 p06[ D|QꒈeyqՈ*%\36qT0fB74ջYͨfyQf63hcnq%Xh ]u;FuU7ՄLtԩQVmtjQlNZSTJ`sx(PrT֨WrZ/u*%{T鯫)vK$%'J@m!78L?/TE2$J&8Hc ߥl:QCc1 >t C<8g5M>Br?(E]s*#,l=D҆f8 l-/LAH2MW=a.yZPJ= Cl%^d]r -N%-Q5QMTn G6 xf]Du&`RbPM1YFsjنbWu뚟x>Ahv/8#:n`F\!>1u6Bvaq|rE1:Ta%U2zT4rPAfP]Y$6:m@Uu=]4)]DЕ^|A*%gZ>sN}ɹ:GMK ե='YvPkIQ HPr6Q Ї 'FNe:2(gT+)6l5c=-6j/Mt./zTSzbT/a/. h6sAuʃg4,}ư֪EQ\8@7zTQ]}-ӯ@R.XڰcTwQ Du F 3K{i+}hPEVg/cFi7kwjk$6 ^9ߣ-oYj>ju'Pm"dw/[w{2䩯|x<8)}/@#T,Ji }T*ᤍG)# j&*lP$;UEc$aSnAD݄j\=: \Hkq?cm[ J[`&ii"I%WtwǨ3+B!`dQ+)T&e[j~ >b'Yӓ Wp \TOiw #`oQ3/oP=W8}6z2QfFu8}AizUgdPU#w|]8|vȃHZv$Q-5I S)UQMaNxarVфj6ZpԠ 0T׌j@۶TBE#bGl%j 9l/οGWՋɐ0QIiEDuYE+0ocThgI22՗hnEEZ-{Tzsjƃr4r+wlP-jlW -2<֣Z[ٶj-eZ},y\IzXvqj4vֲuUY2䪭5rji+ub8Ց]&(5Q~̍0 7+tJpydtcT{tE-[9 4jc@,wҍH02xEVzcƹB"n?jԹj03yVjBz)ǨWo:JQiݯ /җ/_q}ZG~4~\//xM]԰~D2]UjHu5D1g|hw96oܫ?ue<5VZG` ?GtU h k- kpx<7F~I)[W8,9&kOTq8[HQP]IU[RK|Ug&:< [gdۮ l9d8"Tun]ԂQ mf8tJO}( pپ\BUQq۰L9hV*;kMPKpzXs*c᜾:Ϫ7#ܿTsVĨsr7HiGFT@#G}Xgj#?լWJbFT@#G}Xjޏ%cOGA4=[5jԨգFl5zԨQFTNAS` :zDMSBGb@]T,UjUtqVoLS5R]cͽT cP5@v9$,k{qi,Ϻ ګ8ȓj<ȓj<ȓj<ȓj<ȓj<ȓj<ȓj<ȓj<ȓj<ȓj<ȓj<ȓj<ȓj<ȓj<ȓj<ȓj<ȓj<ȓj<ȓjkp\gt5_Z^=w߸y?(0-P?S?Ϫ_s9ՇMq6?^Mډk\>G|^cS 0_蜓88;+kO^UkI}78Jb n+֪.j{U'/Mܬ,Q}0EQUoĶyi_hD⤯D,pAm U|.xR;zF:s,gMUv>}g%ɝ̺`Q,A6xh.akkcIm%96VC(y46@D^?F)]CIBJ1U,({z<}dUwYV?xi7{yXcJfmg_c>07ƚԮd$9臭r-trƖ) 22NդMnW>z"W R>hS6'{Zkh\_U۞kTZڡԻ2i]!Vr^5NJ5C6ȇrYmk;jِ(|e=k vNjG{-^mtI6?99Y$6#sQyhf`vZJ7<N-Hr^43N˨P Dq?>Eu OtJ .IU_2Z6< D{f4!2;2yՑEh45:l'2p_d{ck#֪;vs7xZ8浚&[AwUUf!m-Ugh@3K!E pןlzZN(=۶^\ȡ7|MTܑsjb:mZjY֥֫][roi=ݼ \m_uKT[j9ɤkr$"fr5R&0x#,[[=}TPjTɾ7S۪6Տ߬Gg|;VΞf)isy6/V=}]xXƾ.ZVϿD/)Dȿ7S_jm(n#Ƕ%5[cEcoJU vQ bzW zh B(E5o ;D4 g[ꏟ1<H[S]5@<m3j`>+iƏٸ9<ՙ^~'%5ho/8"R G֖PԃN',4Ƶ4{b↑UwfC2&<ɡdHom;ݗ#.UHyUj#G!={6])8zTwG3Rj sRmM,7o8Fҁ8uX]]:GیxZ*-v3NQ=A9d\u>X]:ntHu'jή_[Z]m0 &'\Ehw#5CȜs\kFJ4xuMQ8OxFGSG]fTY3M%kg[n'4@lmf}iC̱sƂNG"7{$Ž\*/_#/VBO91b,Q }Kf }"a rKtAƽoRgu-R>` `S۞nY.mV(;bde Еq XY^}fވ,)~3RYG&s,(:Vp`dLΈRGeڝ>J'I4 &VƄ0@12 K\uL"yNk2+2PLGR(m]^uF}=Wwc`D @Ac#OLk@AUVpx:6#L)棊$ xjH)Y^KUh|dP/7efm=^U? Ʉ… lfbz&%3}b.rЕ{#&zlh~ (z߅D@܇ &OAL;!``E܁XfY{R 0[9rՕޛ8A2B/`ɵ]RD̸lfYH\znb2.g 1Xgx2$ˠ8 d X/楈&z%#)vh| nm }6^RD|NXԒ-iV-‘;W"/XI5.6 eMݐ`[eR]l%Q/al,Gd8jP, Ŕ6Q^KaHTs0'n TGr5'[vl9E޼gjJ5; xjT90r! ܕ+ A4lxOja*YYg()ã eS,9.1DJ5QVXk>/f)-6̈AʊK/VI i,X Mt Hs%S" KO5.| l@\ 2WW>=jVJ5V?vgr:{'J~í[ӛĊ F8/l[[VQj]S%}U~5 M#( _Q-J0^o{b6C%e4oMagRކ|dB@є|(Ռ;^8RC.;PhoiBT@{,ՄpN$|~ ꪕhFաa*l+ĨfuޖR@+ xYveǢ Y3H(p" Οzk"`Iu䯔e2{ zejY=ӷ#-:JlD MDjB"Fȝ: _HTlY2%U5`cA#ՌyFn#>sF_B TSh%ՙn@kcKΛМ&VR%C`R9Szycfb񿆍WoP(*z?\$*a(q3j:!TřKVv[e6GRv)tsr/ -(2oĎ1:)%Ko>IiDs iޡrnEtFz^=OsJx i=ReRFo!';a aQ]pYR})}jw2^f&y\ \FAɻ=iύHuG;]r T`;VҮBΣTC'C7JuM`2{@CJM)wdP4RMz8֖ D䉜!ō@ZkYS9eJڃ_d$%$ ߕj ~GfTH$UdVÚa1yR>1u*? #+}J @̘ Le(<`ioF,b>F[2blnZ|d _63bLB="… -E"h>ݐR 11s@K+YXDv\E5w}F<U1eG m51be^L%Wq <\BRv63Q P{Zv,S3Lt&e-HFv3Ey'OΞnhFrv>ء:HL"]g>oic$HIu73ieJ`2{ 8bB+![@ťze,~5rR]ˊcfNj{s//mY6_i惲j\F`"3)K:NUK$^m >ewXQͱ1wߗ X9Yw&"j=>le%Wf/bL0!W>5/?Qx6.vC;R/W؏؏}U؏؏wWc?{w0 p㈎ٝO܊?kHWueVzO_kkEr0VjUmt\ݟt 㚪'=R2롓g}(U?&,MbO?yiJCbߧ2))'.[0]$,l a ~ }(s쓕b GјboVCl3[blGsbOMCZiZ\9_ˎ?j :f:EuZӟ0Rq^g>bO +ϲ}ĩ[?wV8k<^Ӆi9106֊40WST"RMU| Ux!\^ZHI}ޤ3sk )OlZ,JPP9!Wmy\YmxJ#%g(v@u5lMhǛ$aڴM w7 jjfdIubB%h=;t9%T5{6^Ij}xXw.cci]> .Fo~*?u~T]Vjv_!z鬯eƪ2vk3ЦTmxR3,> Nei\7Fe%N8Vb08,8gƠHW Y!/YklU_xw:dj 1|5VrGT{$E NrJU/%JJB9y9ycVۅ w7ǸBfW͚%g Ôj1VVRvSI&-P&H@;ޜQ[XVbj$997;N.E5X ~ mLs#z{LA~_8)dG_b{{Q}Drn&H R(X]0'J~_4Fy*A+&iE[NPlRT˕ubjLD5hNJ<:N˘)jeUpj)ED!IƪMRlٹT,\7g,U4fDuOT또SLQLBf*nꖭ/]]+nOFT@Tj$._?jkT?̔`"|y,*2PeD@5ՃuU.j=գ 2 eQODjϢ̬Dj2 jU rY[tJDTj(DTD }ՆX9>]ÛDu>drTm n1lQݜjA'L$C6/U )9G@37*Bq\3%5v cJPuZ2 # U(ebkE, jÏx4D57uJz-2jN^n4h[B9=w&.vb Cu M۫j=q*7I>ƍeDD5S˜aj56:e03 LWIމLjp3ɢ `,Z'=ϼl.IF{7'?xsU3q;C5kwN32@uPP[=A5\ƻE)y6p.f7P5]x伽^ o}cZC~j q*i sCb*o`:1"P͔vHpjS8Lz#;q2꒏8`p4LQ+UiLS52B|].:ofFv2۴H՘p͗cRZ{5tŢSTF-R%X9)!kdn?4;TBѩaY%FTF{Ȟw zvj.GTԊRXQꍰhj+ ,+ΞUP AK jZ /"rA3Tsqa쩤$Y@@j1@0Ve>0o'売uMXl;ZmC(lb rً/+MJ8U i !']&"Ï9kTgC1[tQf5䦓S[[)kFb'g?1zT0Mޏ_:OPeNݲ,l˜n,DuRv|;غZuէ<.l`>1 yX']`v r~a93Vȳ7QtyKW MW TTRmmj׊mcU-oȪҌfU٫UYț"@W \<yj+ͮڵ"@ꡫ CW ``%ly @ oj'0mˇ]J5@$8ߏonOfmtNE16–@ BK{(}f\:xזF>Y BUϚ#DւGP̗y ,ZqƼZ=gq ,92_2'q ,j92O^>PQ=vAxί6O#ӭ >騲(̌I>@ϗ| \wS%xMh0pApQ5* wβxubҎIpcIրf1ODѥZOm;U<UT+:ŭkCk "%pzGfVEMtRPuꐞCdYygpb8ʥyjgzs8ZP[q'6@@KT: ij!b'+ 6RT]t )?/j n4deC9MΛTĪ6w̴Ǫ㗏AKgU5$~cU[fXUC;U<bŕ* YG[&iUgoF߁ ܩ=U;ݰW>mlCWhq7wjyj!R::pn5<71#1eZA:暴fM*wlu髕rjc2B zny<XkvuwaL6RYiM0 ft &*hbۚVӛG,gIby筴9f3YiY7#"E ,~5yƆ- 3Vʺ9:̍F5ϝNCShe4*d9bX*$U0io?P𢡊71 \>&ó<HTIWNNW"7@nTWVu&Ru*$Ӥ=y^=ah,:BC, {Ej hBTgGx1AVO`| #/p"wQ Ɗ-"^5@6kEQ X ^UՏ}Ͳ+jzЫgY > @ EA|כI"Ģ Ϸ"@ބ } raVDM oȻTSaps/_7VW @쫶 Rm]iE\]i M O O ϫ ozF`ҶqͫZ m(mT,hSkjKPV9إT9-g@*6;A(hn MDD=Sjc; 7@O jlOAvڹjlv=pT}Ss{ ^{Mokzl[W`V x5DZzU'H5,@|Vj \\-@!]R-R O7jwvNAzJKr(M+bɍ9o6FVbO:dv'zT]RUEՂ oLAޫ~@T-RUr _9U .S$0VA%gN~a+uH~g>sjAT=gNuD!KۤYɯX"!߀$I#+U]`)EՃX!9W%J5Qq)UTr{*ǖ&2jAVuEst(z⪪aj{jOdTꔦ6UuE]FU3&gYkQ6Mk V5>˼U DƦD^.5{ǨDՂ hi?Sb#/8!ȇMoHd#29V.+PYKS- rURTmV弡"N(Q9&̰ńL) 3StVV!qXhXc|'z=ޅdC?#Cd LBym2j`LLQ>ږT4MIӫ<-+NTн-;r"ܳmq1DՂ 8lQUzYq >nFd?㚞ђOU\՟W vHCʭEڰCݜ\TVJUR:: @;L h{?¼LYӜl;}}JT- ՊGݗOXzSP5[:D+|M_z0O Um5ߩ w- Q#Y>"샪:&0>Z jca"o|[k=x7GR/)zGz΁X?odzZL}AKxT歎Tb~>WR^SPRrHe۬08qxNRTZWUY)z|nQ>A Zomm4A4@juQՎK+94)撪YXcuN pU 53g )p1DՂp7@>yKyTkl%M+%Q3BۜJy"{Qէ2M)/e}8A2\KUww輪>Ri!<6 p_ j7QĆ^UѺ^9Wۻ~ 2eSWvۋ8LU.ZɶĔ8ϡwk zNǐ|Za ɩjA۪oU~qwBưD˶$?Q9ia;1XFx}im Xch]m^eD!Կm`qq߫)^Bk.T}[U8_DwO8~?7XW bf`HSDQ L߫OUaN(D.dFDɜS jUZ`#]jQ-$/!0U<Q w1U8VբZTCjQ-բSDTjpj8ߊNn~:jSWrjjQ j@~ZTj1yȳW X ^5@ ߊy yLyjmmE6U򶨶X O @ y{Hsxw'@D٫l"{E 5<@/@N}W 6߾JH5@~j[˥V 'yj<g= t5yTHKԟs*Ch;m pF|H{la8L0S cr1sGX'w__oo-U~RS/~J}xn$3};J;`[爍U͞i0{`+Gzdldyl̫//7#nÎ N옕 ۩׈Mk džfeuqKKMf1 /@@B žG5nH̠*% !a±Sxu#(ÁON#/_ϼ#!{w xlL {xFa߷uZuOHM$'jx 'jx '!_Suf~mZxߪz}{|o_WSuQu،r*RUկ뿘޶W#1MTL#Duf嶨D5Q jhWm Z[ƪQW jlzv@6S`i ٫^D5@X00V  D"@<7U4jUg&xeZۆ0@12=arxc(z1+(l]Ѭ=,>0x*N(ê_QEmT(@nٍdEQ^!z!{GnǚolqaEQnKP+kk.ዿ${!k6.VV[b#:FJq iqsvFQ&O@Օ{sMU;ɭUSܛHEb'c{~UCrF~摪fOTj$DhЌ3qWZkYZT(ZZLJ?=w<29)9c<|nKoEy|b/&jf}U5S8%sU{R v%(fVȘǐqVIyn#k?_UuU ۄ<`F WkMioEyDZLժ,_ [ó/p^a+Z͊&@ٟEr٘g{?IGqTѯ\.:9ʬZ<LL$QvM]& L0 =\p^&팢(/bǫڹUT8lx\[)kVgXl'NTzn1$b)bBIy ;:FɝHs(WKڔ(/#L}+'@jhgo~`5M\/;4(֭㹪ypAiFT·y㞗Ǩk.?^ ̐7]''ATՊZ_f=^հެ֠Tϑ|b'5SpE]p%Ί&PJ%1Vk`L Z "L}+QheW}ȃ[Vڮk0`'|,3Vj3vX:Uugqp25>FQac΀QV+ 7b,rmX5޻~T`vֳu;UpHl>VUMUMxRfv"CA9݋UxػEr"݅0nDU@U^"[k+U'1:Z\HaN镪&ρ&m%Ih Ns?NոwFxSS5DTT 6AѦjPžSjr4yUUZyIxȈz1t6"ZT}ĵܫ:_BH &W̿2g6H 'Kez,yU"RiERܮM\&TU;XnaS5 擮_T= "G1aBF ƽݹ|ݩi =djrM(:@CGzx@pwjH/UӠBY-i i%!XPZE{U;c܌<{UKݫY AF9HKRqf#najHJ=7``YDg "\?Mc L>vX]08mT]fj&㉪{8XaXz:Sbe<",&3jDՐdkOY5aQ5;  G\@'|d=2PijrUxXP+7 8w h^cb'SbBQYT=">UXvT]D`W  2UM&|aT] RD@zj0$kgL;UuCbL^ю@1_6!:a=4#˪YQijrUUuaA[xXIؘ`0"ݫZe^.]z/p`%㹪AkQ^T.@sWT@U&7uuVVYEoTDm ʵXƇ,xqiB;V6ң~1 RUMP?jomn;u+PՄ& |3PՄ&휫V7UMjrmUuB4UMjrUAUPCUPCUyՄ&T5i[`UMjRQU優&T5y֬[&T5ayjBUSUHPՄ& YʧŮjBUQ}a UMZ|ƊjBUGU_j.rK. UM~w;jPoZik D ,мB}Gj+ĦƒϷ$Gub75)7՟!)>jj4t^uV4`.y< u>\R Rfa{TSmӶTkk+:٩GR R KEYpTk[SR9nn% hkVm6Jk˴w+R \{ jB O9JuN֓wZxX/6yk[I.,^/߀;NpʪB?I_~w:~7{ޏ)lZVjh|Uͅ]4/[: мǿcVƶ"45H[S$wCR\@^5@"@^5@ ooEY+䙪dyq[gզj4S5@ m֊y p^,0H Ca8&ڋTBBR_svnGL@LM^|f:7y_#جk`1cBUӊ-?/)<?kjU7T @Vبt\Y[ )R Up}UPV1-+qczN! ]m UHf/K5ps'OufC229¼DBߪZe2pzVu)3ieh_n@6o_;BPw)﫪=1>, rwI8u"5?K4VZx/ZZ㇙T Z_=n{-Q}wd`ب:Q-VNDlB]"joU-יJ R`O5/P5=7U]HtdՒlGbU۬}-3H^&ͥEգ%未Z gUUraB]zWMU`V[TC2EՌvh/TuDL VU"J[EvYcE28H' W'U A+UmU+Qp-vDQ6êyPo5T w=&˶f2:ۉ߲ϪZ,U]f۪ZuW.LHA^] Up>DK r$ʳ(-9lU]\)%/Lyp8yjYRs\R>J1 27@4"ΚY&pˡU/WeY6^x^5UpJZ &ekO.iIpC;9(?1L'07Zd Mt[@U5U`9ȪoF"P5<T Yh=y};:a pj~G/+w8z ,s]Duՠri[?X}!pzӺonY?@0՞dkD5@4x %VF@6Q  @fV o( ^5@&ܸ.ڱ.ګSmɸx VBՋ3c&>ShfuO+kSlb-J3 eɓ>5Aޟ(#:u2xX)'j֏R9A=УiL!{zгx`&T[Rϰʳ ,I˩N &v]kgQhTsrFE]7k`=H&mRhUmiT{2‘vku`zMu$c]aI麺ʑ:1=-gE:D٩3Ey BI(# eT"i451cPrWMS"߫@RC( PS^&uRq Rt,;R?jY6*4|6=O .X {(S(u:΀#H6ZɾLT SK8kAR}S"D(rD60oT2(Me4  ~$ޫ˦ԗSqڤ=KS;&,|divRm ~4^:xХ'5GN؁HlIlnٱrH(kՅX22𹯽"1L>oUG=]I TeDmS/~>UUKCKCa> :h&JqVN_j*Qֽ&wO,Yj =IwE&sL837dV0R3b?OQUmXHB tI9˪Ϧ-ktls2(]^y6*;<yxjdzׄ4SZ"y- (7®>:'0hxFӽf)rEՎaaybYmG'l̳z2ٱ5 YCcW]KU;222iuNʚ)0: w7lU-Ogb/LpkhXj=3=z]MvJG(}.`2|߮jD*M%yh˾j%?Kd:rNu0L}cD ߍDGeَChlAh&#KUcXj.QvB9}Z O,ZXS ΄pƩiSLH#S*jMݽ}9xMU/094XF1(-E|єԂG{t׌Sqlq?u&]^?P.j잞L5@ދ'|aU.0vz2|S`ދ %cVSՓ w(@xKHXdcfy잖=E7Ls/(Sigp95M*߬@T)˕j_5@}R5@}R5T #0?\ ! D8SDXjGYO mR?< M iR5@ޡTj4@^W 'UIyF5@Q j@R8}O`pJ6ж?` ;j? qm0Z9B 3w4/)q L9ȥ/Mȵy'.ñGRQn)6Ɖ?<LNSUWX#0n w[.D9Pbh A!#~LD2qC }=o"$٘*NL\TUVU;zuߔĵuN _%϶نqݟR+U au /f֜weX"9UUc^)&e6~clY( a%U܄:N֍}1n,Uze͐ 0ϏKZ@8BE;&ZMƿK))(ܧSW(SF3:/㙜 Dus@wV՞[qw"R]ZѷկȬES9K}IvԆIU'|sU"r] 'jZvSay(2`˪:+O-,ccx8.r8!ԫ>CF;U,@$C= 'zЫVPU& )y"/F7Z>:*d@8mH]fLL`d:/wMGv/k c^Ypu =GURGZU5ɾ!5x?ҦXR.~ݫL%2>HaӟSu_\UEiCk%M~@ ] Rø& WVbUSgT}H8jkUU=)q@ ( *]3Ϲ9{n%mN8u}qW 'Z!nv'Wډ)C1"m\zz>ExD Qua </U*,NTyyߊz)쇍 :9UgT /zQU=zڦH]?tcO3r r=Qgfqmnfa|?]ke{erop3L qo-F }+B Rp+C T~{dppw~Jp]A bqhm먺áei#""u>(222Ħ73*B m~x{a"ʷ+}0æwy+𸾑p޳ɵ֖ի[ͪ'Ⲳt$ ָΡ~u᭼.XNt9X<*׼ԼĕΈ>%(+uGkI[@z:GlL Tϔ醱݁a!AZD-,+ԸץcpbYlȿ]utn_+$ɱϒxjx IDATh[HSqektL]2IYv-z;&;g ΂1ZMԬh%L%lhFVZYTнϚGբ?scz>1c@=!EzT _!Jh4뉕.M7Lhzl^1KILLXf.I[|&/QL$O4߾X0eq L,eK)tdR(\c1I.0W)DӁ) Nv .eK 17^;pBenVzRҸ"P DRݝEvkK(z%) Fgd(_+V=)MOg(!+wDӪH%$ ؋Kjnz ,[ ("b;nZ>$ #X?tdg)ni?@z32$vSbP ̭]*[Za  FeZigZ>0Tپ%U`s lВSf͗yr |w_uwc-H/ 8ɓ83=ղB*A Cvg`ѽˆ")%?! I>kXa4y i( [.}֝QQFYC2pX.JP;uбeۨkIrZ%/i Jc(G'LZPpwvm=|NDbwR&wQc5պ?#)DzŮرQzoW7MKe2)Ld83'Dvxj4/4,8=ԵӍ{}#* %+х6/LG6^:-FM2t PoڳyJnj,LT]ɚcp検{S= Lh?꺟ut`"&Pz~:ZSU1$.k=HQhfоt%?q#l@$p\ í⯙WD=$6( Z!wc\F{\.H|>$afpXK"mq_Һ6qML1zr?n Bߡ77<пgzǺw8~3M=CCD{1%(?0]Um;v~\,ڶ\ѳ.a6@%bz6"THX 84owkWtaĝqD3Voц ] O?)LG>vϧ;@r#Yf-pKCj$۬K9D51cEE*Z ~ܮ%&1XzloW CnK#*w'ƝRG߅T)5FW5:Gy0{㼽p.38ƌVtV 3mh!m(;fU aquu#q g/HHawKcѣWx,߾sF;8Ʃ ^L,4ݿyHǘ~)I3)RIqV9a^}R]uQO$-I)i3L/^NI#$I[~woߦl6Wr<' ITgd/K.(l( O%ٜ!'hC 5+8qnpayD6L[S:uxrR,ŲBoF5`J;vw201MYZ'r 9,Kyz^=2b3 YמDy>x>}9os(Cӊk-!cOܨ3\+זV߅"r'RtR.KQ!E\1FU+<^9hf)|//y5V%3ڲn-ӄ@1d2BA "#m5bMd TZ@AS?TL$*n:58SC?7WFg*IENDB`all-in-one-seo-pack/dist/Lite/assets/images/open-ai.Du2ac8yQ.png000064400000174713151222736000020216 0ustar00PNG  IHDRjcj^IDATx}oY}{{ȌC v%nUB柨eiВbCTH6d 4lLԦ8vC"Uϐ&Q`1gsg<3Woy޿s=|}ݿ^{<]:sBAđˮw& Ο{^|ܙ vřAAܦ8Ϗ0AAlr9 n x5w 3lwAA.=AgqA     Aq H (p 8|  6 t|P  cP! yZ_xpxEAǀsA86^A1ҹAA{.PP  c}pAa{@    6t`+A1AA 8j\AAlPP  7 b@' Aq*AY 8j  60)`CAQAAM 8jlAA{Y:P  -8 b@ M 8RpX ,{C@  #  6 #vS@  \BA)AAG KAA`[AđAA  8R\2 Ђc" @'AIA`[Aс{AfaAAAAlhA`[A"=Aqg3(pAс[AfAAq9 p}fEAGZpA g&6 8 -T bp 8"̕  6 vo\AqD*AA* AqDrs@AĞAuc@  ['AS6l1 8 l B  6 \[qAqRPD&td=-T bpf87 A'"."Fz!0y}'J# NH6 6#v@ $Y@PK)5wZiNj[,twu-İ$ç3;sO]Q=p(`~fdVk~~}0ѴWVHPS]&sV gfR]R/z,2Ѯ2SJl<7-G&~c 8+TM+n/qB.PVnH@S,CcM > nˬPSh NcF#8v~rd;dN*Œ̮3&*9E8՞ M&YS@a*J[[nujh]p! +LwL|>$bqfs@<(pA/y 8!X؜gyPjU~D+/y*OEPWLxo5V\0oYj^Ai*jc:J+Lnil,( 6R-9*k8 EO$q`;6'ƵLt^P^Z`Cf+P)$yND#0XyNkYJ, v!T]dt)]Xiڬ6RFw 40 :DNߝBr*.,4>na) -'-S S:DP 8NOo D4c;H wi &W%U`eK^iWN Rp#6HdH..Lr,b?}:KebYe7cia2IE;b5Fʥ+GeR-F-2ȑrݮ~%+*@I'H=%0=9>hm=Qta1Tܩl>\;*YK3`o oZD5ENI`dخ1!)~2(hq0L QEtKme4;> pl"(pA#lxlk &.:Ǭ5a'${Թ< O[\*,D4U Ǧw<$h%!>jɄxuK &Wq*EJju<$J6̨ٓ y93sH8Ӟy?6EG,- .?SķQ |: AqV|ט3Yw:33:0   Avuҡyw]kZc0N߉&x ~R"pbeNՒ.'zAD 8W+lQ7|C~ UV0rʃh;MDQ2i1mBIg4Qu* h J_S ~buzY@5"A9c:<;Iz IӪv &=2ܑ~VM igV3$WdPKVLy+s]FTFM!.&3mtޤD0QlYOu;O4V bh%Z?5'GRADݒA"l܀0S081%@\(4<lQ,|,F;FTU)Uى,{zFv.JեMSIDX\*VO~xV/uLNNbQ6ƥg|ا|glߗDHgSx bŬ"W&iLDQa˭#3E#0Y>%8|>/0YJ id c-ݔ7ei5KO:ӏ@0w/,I9$Ar}y޻._a ُۤ.KXnt͚68Bs$ʛ A>4R nTh:XvbvWjS3LĘb.9A?H R`JQ&Tbqх#`z2fX'k ~5 7TU5>`IkIr=4+P@`=ڤ4&ST$R齗e99!üo #?0S)Ne^fX{L&y;1vkJn--3x1 p`tBh hkcG޲֡JW-ͰM$Jl$K՚977\u>g /V+ K["M$2uJøeꧽp$<,-U.858 p}ʆFubFn7G2bA=iLS7/ӆyXBx6vNR|| fbYÊT*vhlO4D@fVn@-kc9** ؉h0Vtl X.OA7Š$`bzh,Znƃ:{4~Dsy$҂"֪4+lDcB*L@OF H鳚$V_x)[)@4.H+_rM?+ [ڡfV̤{LDō@N- 5TrUۥgOК:R.7Yh$ڐrOdžF(/b_Y%̤E`#77pJ笽 sSRwmڶA\G"\86ƣnF| T_P&&S%O'mY%7tIR8 @X6ƹn'cwUJm[:+rUųN+`D!n iӧLzS"쿱N56Pyj\7+X$ݪl;!,lAYqf!. Yd3%,EUF]3X?FqE"WkX[ yTIxK_'y)R ]pu?^7/j \`A _يN)PT/@M<yll ,;1@'Dp6I:Q,2@hy6c gg -x5)6ʞ╂-A"EFK*խEJeFA%fI84u >Ƌ礣m]z*)*2^Uݛ~6`hC$% KMR`lKYYjXpf]k4 }tG2eT皦va^@4'b]sLZB?:J&5]JLan&K-/m]'D8) 6A||<,Av Ay„ ^6e\N9Dꃩ7^VOf/#m o/N@ wHT#[RaeI^Z5f(j!@~"ژFwnr5A(Y$J쑈uEcרUգnu.w OsۛBXI׳=5gøe U#6)\Ws goQo[]=@es)N5?.e/>?}[j?Y\e;".z.J{I jQW6F]29j.?E3l_i㐵g ֠mNl"(pq#';A(>SV5r)[׊i#k: Lǭ߆fA}L>I~R;q,FQq ՃIN(q0kSds[2O[glL JU ~[|W7=sVU fj 0B0tu@,/-")"lyeFN.+[H@5EMJ}'ᡴ6u&m>]&VXB#%a&Q1.lY]h߰)bdIh,f,`vC+zW[G32[Y?W}bJK%2z =uo,{M{dVBMI5ETSr=F^Qw=̼ōF6>#G=L9Rͮ>%<ƿՙے@r%+ky a̮{%g7!" )pl2(pn\w&&r $NBcpS)$@m2) 9h .ݱ'ҍ滌/Oq-^ kY38e\rtw)O[b S,t'Tܖwϑ4qHPϴg۞O>c}F ΁q7T\^[C`S]iHƌV1ܮP !)}S \$w J n="Jwi#D%m[ĮʜjF_M)LNU1ZFUloqRASt9ƑD.J@H/_l2\QfQBFCTB4,'i OQ PhPTlΘS?# p:8 Pдo:i$4(Ygso86$m"+Dx\#,M[+(y-K;)]J@X9(qgy]60Tcg0LJ ޑJ]o?_y ҵr}kUKZ$XW _RXF`K*TXԠ Pnƍ)(3-h'PJ̺.u9B@(Ib- eLԿ@ ?̅ -[FwBPKEZȋ;W:} *m.W?k*JҐi(x0G8uɅ,kvmUwRbF|h:6aCVps).%Ja Tu*+tyx%SwS.X@f;qN9( Dv0Od \Vmх^խUT"33^zyQP^j=%%VNbv"\l N[4>R&+qVUnY.ʣ,`DZ.t$8ոD All`RTL0b rf#I0RaƠ6sײӋub:;Wr%ebrxoNtD{~.$ye)-'qSK9_I',P{\:P8O0;LL[lAQ*DJ܈{nUrxzwLG񮎱_Ruo}y<Ԣ]Ծv!0+]]?K4f!'{c"K0Lʹ1]܅bNf'=W"ҙ5~)tvU30rbgsIUY~j`#`{M*Yل K]C}dz7T aJ%?žКN6"iH] 6w[ N Vׯ]J#UhQ\ůc5p6ĄtRzVu&ғNgjaJcD%)آ%vޥOzv,l`HozYz;[5mT#BD͵zhj@qoǭk]IgPĺ}G<2JՓk/P)W^q\VeDu]6Rely:O;"cR!I@$B5} @%Xs=cƧ&[5E( ʱ2 tJI+CYw49B # F= bFE̛ 6 8N(pq0 *pP"f/|$#͉Z2ݞ-t;{d݂A^Xbi5 [=4inΐ2]jiE1d^^2֞Aj~uqc.aܰ/&JYH]O2/ S[h1WTrm KWoM9hu2KR!Ixk~{UfSs z;" \$8c2NBH5eD _]4>_㬘_9 oսXLlTi6DjӼ 7`".Q9`qR0 @0r]( KѪg=]od|2aAZ]·R0_P&`9Ans.f[5Fd.`Sb-f,{kfWVB PR0& y`=!8TL[i8u ը.~1.5R[t4vK\{,XuH+-(h/x-#􄼢r[T(Bɮ OKc[g<ѧR`n[#aGkLu~?mOѐ"~BKݒYt0^}EF<n܃GzawtAbp#688!pcXU}i.+xװfI#RIYD "m 6vf'FV0#2qJO4H <1fnduφشx3 λ&cdmE]g'BmGuKj"Ţ{΍EBĻ_]fahNJԙķyXiB<%6:t<2HÀyjTkucvvsH)@u"E*j5UWOe$x+'Zƃ>a)]␫^ffK٦]Z5KS3xܼcUCL1 1Kz3_h)}XuF.Ң13w~H,Nim:r>bs@6#AǎB !XnSDl.)3fkKW7J1?L1{CPҏsu0aҥEaeJ4N_mX5S༐uAV<-pHJW9Xs?LfKY"YTwAS̑}ދXΙ`ocmKV#ATV4ί]NvXt;̯&9vtqg&'_D0|P`, H=sm4aDLX*kv dI dЛnJg={ՆX1?ŞVNgCPx[(bǪS-}vpSGX 0"p"vb0|UF8|ŤLmRdaDjSxL8y8nf:7YMڍ yl*a&mYBva Hnvo93ׂxn 6#b+?=!kNM4B "}5:]ZiE~-M5Q;''jh1=)ovs98M9[#YwY߆8Ca#`ݡ|($ⵟ.;c^B [--ۥox}δ'Y1[C'kig,)' o 4a@Ѷ4Ѱ /[()Qds9""-68 N&Α  8vtmY׆>W>eD Av[|Fa%1sCmw^M˰QF'dhkiAJ=dn!׌r5v2ZTO c<:I1N8mdx:g²{`K_c9Zm$0vK+ڹz_5[[9E+rQ&lvl5(6(V;m۝!vhYxf0.pGѮF,smYWN.UWJ뛫^4__Ueܚg'QJ[3NvÒ3;8^ nQ#)ęyK˞ȏnEGRW_zْH ˭YoMF%K,e$hZ%"\2dR&"ڳ'+.hnu\iu$*2FvfzOX]pC+*W(v J0Jeje *xx{X-`R{i7Y4O"}7Al?#g;AA'0D72T>.`Fmټ]8r\WlyXT1&m6;Z) NM Ж5CjƎL[lR8Bܬ>,OeX $B<LJd"PZb[Ǭx3jIVg#VhoO%YK*V .cǸBJ2y%6E^F KJ-GJ f4+4%JU,⴮63tuDZm;3l8M2XkjL4%=199yɵ9yŤFoeFs֯q0-2tVQ,y5$Q Gx=.G;5 iWIڣ &{I^z+e6OLDLNZ'Ѧ:^ҭ9jM*@^m,)by˗2u0[%W|QXޭd؁J'485`Kq\|",YqYp]Eʝ-u7( lC\Uц̵Iu(> A5p=gQɴ[JQukR='uW%h{|'d: F,h#Zmc1O#ْolP,R$u(_ujA ZcP/MZTԬ3H!@MGypvP/9M;YDyJY&.(YdR8D7x\݃]`ta;ͅX96\v`0VQ5gaA:'W0<>\gdF {ֈ~L`APkcR$dߘRBOj-hjNPHTCo_=~uZ$ե/[c\"$ONWW2PYkR&V*>^_`dhjm D77 s-򥋏 N0g) sa5U2d-> M Wn=je•=)dեuѾΕ W5]1$hŮaVViJmZw1E.7eס P~;^<x&TX|d 8r'{}X8ǩ[ #FHM53E1195yVV"VS 0J4!$@& LpcvWCla4֧/ZoBҵ3ْh_ SbNzMmgO mK-la:vP hVrEO+M%7WdHd9HthJM=l`mM8-L$$xEg?Hc X߭e'A7*ofԙ15&Qy0?buj}veCTFS.uAզݖ(xG}b᫓yn7(7%4}`yB$t7)+leүBBQ 3zx)9VA#Zx_U=uq\]) oI;ږ(/aKfxkv ]ȱ0wZ$0egO3R;Gzy4PYH؜E2J jσ`2D#֪:ځQK>\A[ᑫҤ./l"tݓ</[gϥt 4\ͦE:o<> U=͋~|-Z^@4 ӥ^.J?2s M+n *֢rAkmT8V.Ut3oZq#B\)A'U̗jWCj0b$*J`2O:Cifb9kD3"it,qLAuI*΄Fjè;#}:vAŒvnl$jYkb% -`;Ǿ9`W-+v KlMȶS>hv e`]ag6FI@ ;AG \RRXfRܢ'(m`7bqXIט\:90OmѨ9>Ę-[bv ^!'aVvUB6+擊ZdpvIe \N%4k<%H]k(8Xg^WvE(UE֘` 9phIlNc(7y]-R X,S#x0X l󓕌8,9Νl#<=>W@+-3#=sbTh%{Ds]sp#yu~䧫%U:^A`91cxL^w7Ӏjl9n`%WW͝?V?mx(ܤ`DcIB4uWLkRt ]}:;]Ym[ܫYqA 88B FhѦ}&+sP#bsGc:Qm[( <RG͵NMb ,ёFไ=GN<,,' E.ZYZ}GqScl=?CNDr2@;{Iq)T=1q{ U]ّ]Jb5sA)uD5]( h$2h0|LZu%;xf1YZy:]'Nuä":l^dRtʂYc.WZͷ P9ERRI3P̹뫫f!”_A)oZMO_y?mBҷD u2ښ 4Q矫x{)WmlNچ~~]Yh*l=MwCho_N N㔁AGdm-@#ڨP9)wQrxkFJg /m:xԇƯ6a/mPVкFjRuGvֺoYK6~l:VEzFJWHD+c+ 4owm/u5 x/04$yr}b&slѿ  NΑ.= 824֫ci)HbH븯bvM Fzm@:i|6ݎvcHjˡ+wp*IGH!/߀6j/ͮhcss`Zl40~3ϕ@u+cwHV09]D U4}ljQnSKN@+]F&6_-roTto{ošEU;W th:3Mh}!3tq@ #C5^.\ÝG԰JG*#4f:\-&Ě  {A+zq\BW;bԨvK]duz9Zʋ}uO(vvz:9dW!Gl,qQa\w[rx]Bd=wĔ3Lp{RwqN:ήvҀ*ks~RjkU3aSR!!@BS+S?BJ]ht|ִGn lCJZ9thF+ *N,K\н=~űUtt/t4O7X5UI%dj]L"`"=r'MqS*()dG=**k.7B1*FA[sjJ.AU+oycIG$>NHE3 *0jLa1l$Y 9*snOشyJ%(m:}F3hkU5(Iݣtc Ƌ֔oE$"7=uA:gƧ`0jCkCL[wQR{5Zm:cD6q:ШZ8z=a*\*kvqJ>٥.X.C < >pzP~b:Q ?atM}>Ȱ.9I :.%Wi-+@/E-ն({zSw5<{R~$7`rFR<ۋB[w:]n:!y F2sCUa@ܢ@as4zxÓ oH^+5-v~n+aCm} 3KɢBI &FZN›Fe N~7t' 88sx)>.lú*TӉg,2 u8ALlF,΂>Ï?G\mŠ` ҳcǜKGfOR~b(937,H͖rAlj={+/2Q{ ;}7}S$` ,`CL=TvUV3ϳ&+}1K?uNI;5dq+Xox+o^v]ų}S A*2 k,v]cesφخ[-3vh5i*7dP=_z\?  _5/7m.R?g-ĵ)-~g9noia4AnQ `fd[Λk[ E th5ܚ".hXe?o/>~BA~my]w_u4oJbh&-TFێ};lSXU"VϿ?1bIڈc1 F˕tA>~xnơp A&`|$l7ps҄'= 5N ^ /P  N0>NRQ^Xfrqxk[:["c?'"}]u ѯ+l˧; ǝVP __{Swѽi 5]p?6>T5fot; ojcޢGsNZ~ AF[?3Ҷ-MЧ/aum,'aaeQ7wI/kKMp#ֱ4H0@^iwۑn#=f8N)(pq΄j5v:NE+ gfUwKDCݘ8toG~w?ۿvBAkFaBA[_ RwUlG:0l?E9=WcY;䏴F5ӏs2w<Mr) He ) &qMIf4>t4Q2_C3TС( bsw}τdqUo5ЋBe\9(Ӿ*\ڶc1OPf&.N÷r734mgK7{Ÿ?#g)  ė, }DU|UK1[R!@;Fv6D.-P7vz״z   #:NpT|G52رMU~&.MaA_:746âaqۂEO1(pq 1 sEӶux$V1fOww /]ugem5nNj[b3[㼺״?z]3Ğp=ww80\{מ:\x?_|e9IVmLX}̌ n4fn߉d85|E% +Tl@挣j6!pcuAp9  88 &%sbF͹Y3iz_,XEpm|UjsC!V~٘esgn)׾{_`OĉŵkOC?p;\x 8qh88jwyU!$4PL1NB81{$~Db9o[I~ͽ:qXz^ڝ~o=3u:q}e{Z/KE{n7OikOʚf tB]/,f)Y]17 A =B.87=ݠAĭ#|^WcX]( jz8T@C'MzG*Lo&x#ٟ{{}[}OSJ>hHQBU؜L6nPG0 Cu'2;/ %Ȩ2оD̄[. e#I!q8ulM7΋ \ipc;P7eDEԡ5}etz:nQ Qww.8s]_z{yqB-3mTwKxd4+LI3E7b۪.]PbhIH'7=ݠAāgf3Јw3pS$4LЬ5T#R/t ruxꕟ{qg cƏ-w^iC,4c5S VJK#x"۬.&Iv]|a-3u+kWJcX$T7C7=A'&=\qsVi)d$` :I#HgVׇHi BcmV-#j̑%-a=\q"oyΫW~<ToD_YNC+|pmb_⦜&h1ל^PT+[x TZp;wC n z"X7 Ä:b~IpR.ЇG&Zl7WXB.w㇨nx|ǸV倠EI@qjU߼q%V<6#& &cixp+\սlFU#y~ЦCk;>崃A-jm%+hXRڀ4&ޜq4墌u)&t-v } qXm_㗞~f`kkzʋ_tf ->W>Gv'엟گ} cԏ䵧;#'QUصJ&MQ/Q]ʴJ,@1WDgBM7}: j ][֥OqurgVG_x7rû/{]y+=WWo*~uwl;/<7|37W}Ϋgv;w_W3/_>_^om /𕯼 3ggToyǭ\N(pq6F| |G%'iI yٖ̬?ֱ3DH 8ufkDOZ_kLQ`-xal^`ja͝u8㨫w]Nz;^]'o}ݣW!<^oUƗ=GZ}Mm6߸3;_s^z'|/^h{=s౵5qǥ}6z -=q{Έm]WUWYuR]Xsh P:htp#:qH(pq0Ù_27h~e74s5֡,@o}a~+؏7?x._j~~|IpCrBVS(~zerk9"b-vk׮xn8nh^U%iu=t2wќzU&c~B/ \:T7e (pq0 (5 (9E8 ݴdͶ2>`!4| 3uF=gξew3 Eu'Wq_saQp<+/V{_yH1T7h/]oַtQ]ӘL{Ԃħgo9TnfU(C}h jn Q\YE1 w

    2C>p3.:ʹ{ka'16 6>qtV<1m+qLw7EaQc׻ !xVr`) n({ $;Axztt߮¤X%fЄAOweO~@ﻼ,p]8=׿ǯ}7qf?3w|w=y{ =>/Ew;wca?< Ȱ=s7e)pսe7iLpC Gq*7nP I.Ӷ)Dmc;FEN18jVX\ѽnt}i zQwr;x 0w^]_7翲nb n_M瞗C2Lu|lBFCws֬@]gSbIb1-wJYP  n5u3pd1ݵҫ5T[~bWpSw2v*"=g/҃^=P+M!# ĭAv%wխ}CX$“vۦ$X:m -jaqi'DrC ՏiA)>8ųrvk9q 0A.\3$/k+bD"#,ѫ+^Drk3hyma]P5ޮð3Amמ4b9;1yҐ,/ƪIaɤ2lV¶GM{6"p26[q8 B;niDl(pq0GMUR.PG g/cH%Ҭد:zcik![г/wȫvBtaG3OrO 8(roWc\Jsgon AsnnG;"19x0w1`"r5q ^#wE+xVozm+TgM A n>ԉ %N&Ž.]7fѡY6|由Z]hLTݞF'9tza]_v&Oo}ݣOR?|/l}>CpH0U`1闷fҤnqun*R}-Lu_l@˰U5%eZq ק^AA -TdtO/-#kc%lz;n[Beמs??kϝfrg~wwq~dO'=b?~팒/_SObf .]u yt8&d+>۩iqt8^j2t+VL݀uՌ*uAJ;)!I$ó2 ]rrA{Ҩgp$Vڂ^#(F> Rc : 4yQA(tf ی=|bQ+a-}7ܟ/|-m[~]z3퟽8/<{>j]C2h -Fv?ĵcѰøƱ>/ ;tS?zH}P ,Ow?>+.plon2qs>/p?AgϞmOa/ѸbDwBG7S]9 ur]߾ݥX+¯]>W^SOIMS^tL,`ӱ• vק܆AЌ%J7z6ʫ<̏NTASͦJd*Y3TXFӢ=D<_x_ʯ?s҆KwK_{_̕/|Wo(m8/<{ؾ3O],~OV vWWmo;;qJ0 Ù3gnjYGC8Z3U-s}ޘ<^/m/U=uDG3,#{^C?_[]ym{&_ A uj~7T4f)!(p;B_;G #tֵ#ԑpKWu,HLMĵqgo1^o߷zz}߾?6 vGqy ,Ņ⸙!^,4f҉Yl,]:8[3,J{7dkkxS3x>_9\l<`_KVrYݟ>ڋ?N݈W]ƛ;}Ӄ}{CNkG}AsĐ]u) > v4ZNQ݆B]Lz:FN)K;9[TK0"KZc;codB,v띿/_g7^A5_?x N}pJ0V8:,;GԀzӃ1[o14"HpU*4:n\r{A7@lU6, .;IK!{?13UND뢑Ը3$y?}ʋ_|% N aBDwMv> ,x4U p5H>®d|mow5}[em#}LD,zS‹aɛ)^)'(p7Ny2B)jTԤ.V:#WW,҇:{Mɒbs;;#A}b7LSWz3ko\i}Lj)׼uRۄ#}V(Op`.[(r}m Aa PVQ@qw|5?E)ZlW;$B1bh\#oy~]5ǒ,/R3XUO]A GMހh5` ڙU`ipҟM%m LO+%|ǡO^~7U!䵧~=ȩC5fQmI 'дJ+Aa0ϣG\?M>o{վ-ݹj}I.Oml6rÌEڢU*hXąsǝ@ =Hf: =j b#4Ad2en!Pʶ7c3[%0K49ee朦?~? Ay?wa,֬$|2ofpWV2݅"m1Wxk}Ιy(|כWXqWL9ufSU|uAt8l!j=a?}2 [} N5vY+;wv$=E : ^H sR%R#;u_=pw>pߛwv8 4g;;#a!AO΂EâQ%!Q۪yH m+2 wՎ:['n0-&U8=ZHCBK\s N' XH,;3G|c2wH @$?ևY \Jx%,uMBn uKͮ{WoU{nty~ٻv:mPy}׈"C= |vZ(m7lP?2DHp ~Ӝ.wfdhG,҅cמ?}}W\q.Y|W5{P`ozgH3rMe@)Ox XkMSg[>og(%Y*hrr귾P7@5@Fuض B:&%o NExu#r F=DTV\n}WqfrDwP(lC'wlޮ p q!s_!@:p 6I0˝3ooݶ\‰2(HQtOgDiB27)m @m mPȆYl1d_f !~"JDh&E[QrOܣb @ט.߈&3KG)q欃h/L)4h}D&ُwX_R"^} "CL2'k" ?́ c/7&~)Us#asC)11(WA~cȓ^ \hd+Qp*I~b<4罸(Iةj,w,4Oڮ9?ŭ8rh'-#|f"8@;P[ℊj&"b({ nی\g^J*e@\A(Z*.=dxJr *zew%/mltזB[ȡh68as a%ѡ>ZRX](Z4#ym5*4yKKǐGHL[h:ѹ 2so#N$P2n W|W8*&^e ERfqj&.gδK ͏}GhJq; V*p+2X\ Bh8~i`F {QP@vɣ)'E $jCL8 WU%*JcL{8N:zH.?;&~E ${S>MaMrq2"$ L4Њg@~ @ . ]ųzAR7̓H҆G+%PƔ!shY° MO"?^ R S.~"6p%QVS&Q/Xi*9Qz;jdB7 pj#D3»)~#ME!4%(%HQyXH%*{[+K{ZwL7#\e1x2vd \E\WM>V\,O"u ܵa݃q_n!8bCȳfnoP0ۀ'Zkꥂj?Hx9cDRJʯp/K{3ZL1J^wޠ?@p_O w&а>JL@K %$R2RT^ǐK?pG{XIک*a@< Rlэ%]Cτac| &Dzx ^2Ԡ(ÞG"?S)ք4jo8(o\L1w 5hB;%K~#um@Laxʅ*hlڔ "z@@m((½Ӂl ʫrjF JS[]Q NТ0J6M\5Vˉъ&twUh9jP(ŚAON^鐺{V~!` " pj#,CTNV+ijJL.l"NX#MD GJ$5Y%s% ah6+޸#Y OܭF>Nݮ0"$TSIZ)/r|†A o9cs'HqsknTd薄lAkDs&Q@Ka(?e1Cepv6^2mk ]D)->$ u5gX +SNo  p+e!^~22A4;oR;HZ]]UnXOq?cWDm?l?}yI,9 #seDt(U~@xQAD pG, T@Ӂ ]~C_Q VK@,4l63hQTˤQ:eߝq}2<2bD^㆛Z!BHc7Zzoh pC,l8 ![XAש(o[ ډkD֥\ͰhA"o$b˔󼈕p jkP3WO>sϝ֩Ov߰$cQ!EE@ MٜF! p-D0:t_ooEq‰#:E 5Dv)F} +j68CytMߚB2\:+|h؂)A}gZOX UXq)V-! WZxCXMכۭ@@m0s2wDp:/nP]܎L )!تr;Nq@ }NE8S 6U>JC%h ml<F{ ``zXRJ% mȤ:ECCI<&8P.,#_D0buV-Ą7S*?9` z'^ٌJp,q? wQSmHX4r㎬.J}Ii0 uPJEb@ *OxQ{x)%DŽh{.2E(vI5v&P%u  EP(DaŁ/n4+G~%K/_vݏ5X׏6BKy%a١PaE &fcM}lYk*-,ZB%F)h#xʿ2L#0|dr! x!#!wp@Md)N |{d7>łf@) \xC!X kSJ-L|Vwa,,[p KIshP.U FL;32IW1aT,N-tEY3,sQ/)"C9+Q;k{GJ{f^xK%t6THh0``A pEՔXQ'Ge 5!@kXbP0Gdhx#]F3B0~CA :՜J!$G ]LJQ2RSpq+J7C@4 *͏DfJ 6bs- ժT &ݑy?n FP~=Ćf  xNA+nωҰn+ an*nolIpY.煃8}yXARXf3P78u" Vpx>P̷EY'}NJБ tBےh4)3tIEgEBќI&h| <&JH BbmHdW9!L@4wKN6.j-RTʭ`mZW<&Q|oh Ro$t%kM^ϲR)w&7ްoĦZᚚS %eXJ+E-I{HH׀ m)K.ZTCQqhVB|G 2!8S>0\ .GfZsIa"m7GUu 64V)eE4R+JGv6dEUL+}+o0>C2DEdb>e6;n]T;coIr-20iYXсQl#mH]n[ 8M-55!P6#]}K?fqt_{wmXj߸C#^700((r;,5|-b:kSrɲݔEupa4)pdGޑ $hzxXtaY\2|jRSɆ 6Ȋ#yC1,N|5{۪ޔ^{~vx䑁硡H{_IeUc#V\] i„㰕 ٩+XõX {DqR1UŕY87Mai$bW"'?ʅs֑ijNQJnR,i.Y >{oض,g/jOe#>f}}Û6<=mǮ=&685͐:[Ƚ#UB&Q(#K΃CsTeήZ4^PrA†j.Dt{TKL :| 0XPwjrp;Ae,eݹam=z㚡`a.䮍kܰWoy==߾?S~k㺇7mH|osNzW޾~m𦍐9h+ pjÚ -> {mDЎRhBRJ4<65ZRc([`"2K:I~Յɖ8KW΄q5{I%K==y*~lێ6m82pOvntYoxƵ_#K,%q\gyM s>@Ԇ2S\ ƅd T7 %T >.=BLf-E񉲖A}I5Th[:CKl/?=8<祗_920uCp3C'!mІ@ԃUokhR/Fy.)e?%xşH ıעl5 bub1)5lcj-G3M~k`r66ц}920j+o>B(GFڱMӷޞkV[M[~_`fP5J4ţ9 ;Yw'FҊ>OZw %:)<)*ZC5Zi,lu|Q| fmb\_t 6&DΫ4b+|́-nyd`I9t2DAmJAnqFQ => @()JU傯Zb&Q fr_'ƕ6XE6A.r8C &"dac87%n I8֟B"փ~bq%EURw6ı[|p{~sr;D [ 70''XpeݸqQȇG@D [9uTeԈ+w!bGdM7eHq\q0rh* 5fX 1!='s Yj޹tPєjk X=\EQ3".UW,TY6{(`z[55cqL0 vȸ"\pJE+,}P A+sFMFQ=Ir&AN e0TIQÐ |lzM[6~WkK?toɢ;PGoO/Jٷ@n'u%j?|ZT|62`K6 QGiی U"DP8ED^ES FcDS4Wu5JDG=ga_D UR\DE7")١>=sCo[S7~!mptGOmn`0844rϦ-߻6]f+ضܺo1e=]iW6|uE6m?y;v:ruo`ksNQPHo#-_v}z^sUv0m{{ۺm+ٷڳ'?q,}h:oݾH_<طv/|Q˴۞0C'(^'%DULK*C*^_"֠J!ř)YV O~7+Wܹq]xv|i޴1=Hh/:fʛm/3;~xW]󉫔*8ڴqܸw}7ׯ]No|nRK}/RHz6G<gA 8(ppyYHg԰!-J/ )GԪA5T03<1I' kGDޢE9|84m l.W>'6?m𡡓׭]m;ܺ5A~uV\׷؞16۵ǶHo&m˯r]׷d1zzߘu~-쥾%޴q}n)5Cߺ+ҚW{{ӷ|x-GW=i~J}iW_}/x^8p7żܹqm[v[U@KP2?QST=#WO#^UIh)&:bfR1F o\11utXmh;[-Qzէ?_Ѵ3~=T!M3JeEFm;oSFں*J4mO6MJ)'Nnݾ_?*WpŹ~Ɛ'k>qҒ+TC`[>p}z7TȽoYo/uiHmGWqiҎZ/>eZ).{bII@D^XM6u+ιbNLgl?D]ۧn 2G~rto yg4 !Z¨Nw[b2ZD.<Όm4`{C'\ضGs3?c׾/._v7=kH zz~rÅ0Me"Z :fTsF*QLQU;lDD 6@h2@kG3㆏5{(mv )  {G Ȉ=87|d3{.J젿px/޵9%]uNLzpH㌩"H1Er7{{ɼ+4|ջ6V\qd`7޻H!b",w?ksWxf699ytY@kP;6NtC-`붧}>ܸv#?x楃OqPNh4Hߖ8P+iޞU+WZZ-‘Z,4ťRAUt@>,x 48Is4Ό9h3J DaQ8oI\Fۭd^+leH,6?l&wm\'F^z嵯e@ϴukǷ}-ZԎ=v_]H;+ʹ}Y!;weų{xr Ik&=8t04UBy o><К3O|d?őCE5ύTw_L> Wwݬby(LbAFiF6K姵^7aiF bQ6YHFzrKPLӯG}'J NJ }؃Ay^kO*RC]u< N0A-Ho3B[tR)hp`ƃ$ ֱ5T@`|w.C9Q2(mOxcm( &9VãO#b4@ 0a5{6Lp"An*5 YdDU8X 1qH?jxղJ~Bh:4$pwƉ':رk_'@x0q` Rik]{YD&5HуckJպp_I8.j ;5-&~DQP `¤LJ!sFL~)𽱥_s5Rb Q 6¢,Twf s1U5o(?#4uŽ5\J^ ׹m"m;ܰ8^~M[??t_!)>r_wOWڠ_`L/~H$H+ ].FȄHXUCfF(U8B qԋA#h3QE7-2~J͈$ФlkkKI߮Zyӏu~ gުϮH:9 'ӷ_y5P?;rڳ/oq_NoOWoo@憏[m#3*IS=u(2䠦#+(-J% !}%0UAEp(zwGh!ŤmM>ca8K$ĬKEܾ%ܴaʛ>ᡑ٪+v˯Ϯx~ھesߗN 3ş;}o{zg;!s0&jݯg6{2<`{DaZ%F[Ea)Jq~ϋRT1v1M,῁ L7W=T0L[4m8dGp;Yksqcܰ{=/MV\u)tȎġo|o~6^o8Sǵ}7{I$1b%WJE NSk͹ԍˮ;ĕO=M mU+o:t~tv[?0x荷nmp+EٽO:5_Ygv~3=~W۶#~m&s{jn-a@dQ7o&x4 21 ,LyQh.IC&8$(BMbHфZk.aD>w3;UE*>iKkksϿp||oίЂ@DI*gc/Pn|$ļ#eЉ/87`22gߠp5I ,a n:+ " &K:x.%hoOߏ+L p##Yɽ5bbcuCv%-4| S( {?KZ/VҗIsg7{(mK(4TJN&);R.0ڴM[go @-8IUjb OZ*4<3BԐmT&R.~mg'Q(Ew&|x$30R}HqVe-qcpxdp&Gw>tUo w= gSÖGN?cϑF @CQ-CĐ3q >tV2*_$"FGx6RCH >p2Y4X\`}:f``W1 m) ݺmg>km^޽io 0ӀhYrV cŘI4L7n0 a٢f0l#8b%(@ȩg_b3"bY<"ش8$Ÿ8pNUoS'LL,([FȰ]Z{ĭܜٙdӭ!lnvT_#UT|d[ԪiBC% :JD |1 7>0xH6S|*> lLCyƒ[@]_nJ]q0m;!E@. yU6O!zn:j XB`ER5|Ʌqf48y#F(,!*A[2"%Z!#psa^۱3o'JhZ1zV[HQNEZkY@@2dCKT\h2.,x7bЭ(EFexlFa&φ=pA1;%}BSX@P8ȱ`q\jV/6 MMt4ɑ;s";] + ڈRfy%NAChD!i+4ۅ` "dD {paLMiG,Uqbʯ*-I(p6v[X$Nu# W8ꚅl hÉ\|@߾<{1,7"'pLEq Z`@flh.h)f,5q.BCZFpƔ 6ƋoB_f5ƤsXbTE8&oIHKa(,~m,ۗksçlWQ1bJ:Ir("X s¬'h{i!3;0>`,?Y8񦑐[0}x }p}nx@S'\|fpGCB0j'>eh esO䩨2,0CX,kH% &EDa߅O*8'V[4)WE}ڞt#L& lK ff-fji( 9:z;JIܽE!9%NYo)#ퟫ_Zq0Bߦ\в:8DU ILS:8+,90P7E pk3QSi_)*vqefnu9A&Dϟ(UW1Ib9 S˿%pG CH Z-|T{lUowW?b5:qLZqp sggnI8р qȆ-D %/:̓3ʄ +y}l"`t2E8H<|p(Z(ƔbBaU=8߭BڟOvw^~˿yLi4Wzm(/tlnJ&ϵ}ٟe2aU`C,x_֭g_ (1j:829152t>D'kgȍ÷SYQ\JOOWt}Ї}9QV!$aXFcPm p\#n҄%#~Cƺ/ ).gfF?4f3ff )_CZmg*ĭ+vhDm8LoW~}S'tbȤ #hqYVsqY*H pR\4E#T$ *K ' [rUW*CX|PAnѧDFqjc'|F3ϪMpJ\]@[SWD1zSyzkIa\Brʃ9dfbѷdQ_Qh&^?(mt`LdG HQCB:j4QDX {:'6:0n 4|#U{7a6@Nסt"QS)65d fJa rD8X0;nӟ_q8qV#|;6C )kuwir MNBD+x;C(&C5zQWrj {Q@)8py:i92r{^Zzyc!<1QVj髜D9QG KnJ}4f~/Fh`|*um_[?vare!)d2liT?b.3țS\b$JzhP8WFFN8f??v1ZOTE},[%MKj!rLj_6AKl>V8;[}ZK= 2<,KQ&b1s;bj_:YhM)$5= 7KD U֦hecΕSGGO[e$:1>xSgrN8Җ##҃O-[p˓ Ǐw|2rekZҡλg'wy",lȿEJ"?"ER>$)*&>r}*bUkAAJJCkOs.B"aQCl`J@/FpV lˣG2[.Yw~VrKʖ{̦ny69FA3Z*mDN`I2$Km!!6`qu)2"O,4֟dXo ]7ẳ4iA -E_6m0}(r[.>z"=BJxAŖE"myهxHH;ntΝszzr)c2`9#MLQIx\kY@ܳQL&Oj tD\BElHBPҙCHAk?]qDl o Y,8$dR*8*Ur:$~fϞ`Ɲ,o9^ιJC?; ܽ giR P~ ERZe͞jY*|һ ~9i&UQ. ]Zi2X_PQ36ⲶJhQE%Dؼk>Ňr@H pI|@˼B~ztBUZ-OͻFZUZ[oo9V^ulі>0f~rԄ,?;75Ȝ9e98勵i"sMB{) |2{ނZgrQ%K)L >5jxp+P" "!EyiN S[˟ 8I2':qBF)4زّE^.s\so !}dmX4j+bN[Wyw1]C(n5<82ڛngkKagpue&PHφL+Ұ*ujnC2%|*8 p"(-/tb+ SɼF`;EX)>Czo"#)ZAoaF#To"~V٠ڎ%p ۠9_kũ2qūcx L8ՊXS^UNLYyܱ[P%>#ItxWv* K/ v&}J~[T(7dQ!uCqKz}h+.j!@֢akUTbR<`2~u}Y?|<43cP Ik2ղAK/oWL քʃF{0^P) ry0F^ Zؕr\檽YZ~)eFN9!8gdr=#Sa&40ڋOq:'2#zjR=-5hX< hq~Q?;|:$)ͩ^{4⭡[64 VBY/N܈#+RB*@LAhCLsSnvc]q2KQC>`]*RSM.DE#ߞK l*ÐP!)UUiY+G}}N X p 3zzC-bD0DYFz"7VݨT43"DFpT'F*n7@APQnAY&6ћAi^y ĻNZPg"2Ћ;<:[W*ZM05Xu 8H&!rQ 'z ك0dE[3mX. `T*rU!b7QQ-!~ko 'ܚP IGP h3ig_29CkbFgӗB52gEArN eMi{\˼#']SOuta1]rGnHQ} C`̹ӣh&$4 ߠhXʹ:-{L;N]")i@`&$xV'nΜΝ ~bgjN J#U|+ދ{ )RX4o8DѣM;tԭڊjt0 vkP)WW]9l7st./b|&pK-_ɓ>T0ŌBG2\2GFHXS_:+pp= u_c邧i_H%K!٬Xqo}{Ijj)ۄgz6Ukp|k -ψMVybɒ7|fL pݕcg$e`&!<6@+$D1"KR҈8y|hAM&.*~ӗ$F"|pff2ccgfHi@#>'g*21[}_~wv'XvhLa3ԓh1~^~sEX@ {ÿw= 0]h5f}p\KW%'D Y,N!1I|8׳sV3Y:#I{t:nVY>sNDF,~D9㷾œ##{X?ѹO*yZ8p30Z\(2pM {xH{Qw<@rpۭF&i@4љ£<$oW$\54)p8{vكh#V%Jvђg߹O Rf*:v;|w&OQqw븜 0Ѷ,YHN!8u(.qAop M)12G";TA UscZ>C[MMsAglaC' bSTS7O7~kߜ:9,a|KLdewU6GIZ<0EPԗޞy7CԿfPn%%xH "ZȾIРd#6I"8F A,\ɦZkKpLrswlpB<~8h#w7ZLٳWf8)MQ)]kRN1Q02%E> (Ze@expa?+};i`?`qT:vDAL`Q;4@3 Zp6JtJ2 Me\ q,6K~j>c|:q)+loBF?L˦}!{+" g$TWO0%3ܯ*PޛSN9ك`J^Ei6Z\p9(% 0m'U܏Gu4 3YDQ-#Q+1KZF oy VtʵTB#'7Zt_ hٳԥS ĐK :V#Ѧ rD7$F';Z"ZeqF fN 5[,EJ?+6X!#˹l}3๜>|G1\>#<01Bi#V! 2%D!b4unO|ه"8F}VZEt!D˵/o-kp'N)<~!pETM&%`f&8(mō9(>`*&YØ"luԓS@D - $ -^@Еluh*2T彁2`A#k)mjfL`F0e&x# R7|:rKĦJޭD&Uj#%BJKQF8 )S*>6Ilx"E{9prv#7Bر'FOߺRq!2Q_ ZR.#7=a}7>_zqd/FGyE.=r+1 L; _kּ56ުhҮ5ͬ6V(b#GhaA;) ǡ1 =WͿك|Lw}Ƥ;sU:)mp ow{|fs Ն1A.Vh#hL鿥wA``Ph",1Ɲ9th/Y9FC.+tIKI||z8Af9rf)d-T"EY H#!j' )5}U3kjCA!T< %t,+OM] $0a* "8΅ʬ1HaT9Ӳ:l$6h9%-fR|nI|# sha\d庅QƳ !;tb4 vƖ:.k%OΒԲ`hK`̛92r٣ha:;眿{;1Nϒ5SdZ-eb);LW0\NIAmA(@L(Z˾H# ([Bڹ{kV!SQJ(El%#eEuU1!`\wf%wy4wT* ΟBk%[SXJ[}:cMF /}L܎{Fӗ( P( E ΚK5deȉKzOn0܃S> uaA[L{_vbhfTy]A{{̹hHL7wqez%XJZħ&F?o5_>Z-^ @ue ae# )̧Չ]DB(Oi }zoLԅm0:::.]٣U;s)LD5VUP=ľ:g0U'H12(waɠphi,v UzmjǕJX57+|g*WՔ Yڐ{$Q/8uaA(^J9ɨ|u HG0萮j"4XƑCІo>u}mDlRG|L ;} 5ݐu7{\X pj!U(p#-+Or=oeT2C).XW-eE&lǕ` KQɞj:'}Rb5L06찇,̞u/8d8vfbZsɂ zwyTuhͧ=ouaC&N϶7(} MmXX.]yf?T[;HZ0U5ڈԍ83H甑ghOQ)DX;"Clp3UUjl}Z"@uɒx.о@ԍw|h9SSuBLj)R($h%ͫpId471.!%58D (}r-ć-tăC5'xH[51}",Z sR\Sṕ&0ԍǩSV`dXQW%)IE.FfA$s64=RKؙcsQg@+yp)U ,P{lDvLqvK|AW#+k틠OP 7&y<;ۄ93}b29!4&*dV jqx\a|-J(?`NOL{)|o;*z mAu^=/~RAۨY<9 Ʈ7tA-v\6IIE 0 fwt@h;TɎyƢ.,Q IK>bXTUTbCL$zfh)XСa $ ";+"^2'bnF0^@^t-N+)%eh{`&AOoױc'= 9y@ZrX ?ԝ):QdWA()F{6֬YΝ*ª @t`.%T`شߓZWt~Q EVl |L5+"Рq\u `IsP2}T* vww5ї_~ٔWQQY~&=IFnp '^ʸ̺̗ڈ1bT*($Ԝ9s.]@<hU8bF#oN3-E 4I31&MQ Qo9;PK-2a ȠxqHwMV`:LKt;s&IݰywV*3K^~ztt|)ΐf(p9cGyP?\(_E~mCtbuU%WH,I\&nje.dW1 rͬʜ.JXZX#]5%:YW-W,b3(89k op\(֦- y}ɬ74$9Jܩ){>RJ"֯/M7•."$؍앪ƺ97R&p$Ӝ/ h:~FZvtDpEsّ$0FLGH#{7~z啟B `< HFf\2ORuf\ x~/R` V!I^Z?F)nPWϩ^7NP1'nĆEG5lwvWC=ͪl5M)j<pOO&pɠe0`{hU-"uڠ BAZ+7Dod8YQ5/~5 14?YS#s\Ko(‰*CmXp:m?7Oi Џ j nԊuŌ>! Q\x|z_>|/pg p0#,Ӣ @xsbNG|mVc\ZTxZAӒzV>7h5e+{vK&RG+{Y3ri%U iW˗o/ pPGafaY&DˆS)o-ð^ EFΜ;W.Ď${I2ʉ { !RLf47_?K%p!zZE$3d!۳Zt\kRȺs480P1Rn+ 歐`NS|D1B8By`,U:1O;xG7 p5Bʘ0GSբ%cn'YfpY|J4l}< 86;1G9+{Eеô1͘yxRS^ڧ؜">~7eaR4*P v`E+jٸI?}bܲ/Q?kjSgOuP7O1i S*fAlFklc2$^q㒻~ ;ô[ʮ>4IX:5%m1%4ju~F AZst_M[:FĬLH@SG,ɹzٶ|vՊaC:ڭ`Q{-?|~ of]#Gb/ȍh#:fs7Qt*u/=ul: )Ard)٩D5dGj鮛j:/c.T}W7wT@Fm]x2ٝ K)vmEU'JPRbFEٱ=i) q%C˞vtՏl:GugJOzmF!Xq pE)x0'vd3aC8ȏV'Yv{X̙ YJsJѮuYlCWR4Z4^*FV:SJ=‚Di<YIGm)VpJK bGXjeDQrAJN+>rQ0uآEiqVk,ʼn&ex+; )]OH X-\˿{ǿ fˆ#S9<䏹Ed!chT9}Kz==Y^ 5_Nŭ]c+S*ބ2՜b&H6E!?G(@EKVpz1m kkAhQZ!VeHGuK5'vyM^>j=sHu5TIrj?JXfls -N8 |%27ۯ%Ȃ?[+t} z<y .5SHJ%ݧRXAQ@ v֤2moo;#_ѵq#5.kw{:czꆍ~O"}^1: xѼ}s =,O,?~ 0⾰KQvEjU iV2]CO) :W鳰zB%U$ba# ])F\-\C's.ۮG<+hGenr? ϶cmUcKվ_QeAM,:ݎ7M&Y؍v6DwGEg:QteSZRc~ HQhzBHYc6;kafةdl2Ro$3 '_k1Zl=7ҭD1sNULj9ߦVˊmq08e$/0&=cv|ΪG-AǮifΜ?*v0,  0sI^/޵YvVJtX67ȹvGr&sۦ81QwMDlH/emVxy?ҥĖ,c!dKc(hg\CDN;g-:D-&? 3mS~$+yR)zf|G8h/PGGgr"DaU9!4;DƑfwdO?bjr}0_;M p#oEdN,nH];xu l+=Əd)R,_ub͠Y%iXz ebM+ W*/swb <+Vj&%6=X:pӕ匞+X/#Yn_U4ccL}͠ploCS, { Z37N_wf_#x.!X>Y{dWwCxA'H:"&X?疖Uh>,0T[{G&QOtY=آփW#)"bz]nst>/zx pMz#x./I61-m3WdiL[YYH"pPǃRӥL mnqfE.ⵁԲ̣q#rԍ_m OܤBLt@b5PbGVFXo!#}"qzR+eb`6sc<&DN=I΍qQGt4iC٢8`;]_͇~ \G4^v6~yQI$(C9R5jݽZ?pJo޲5cC&͢)~6k,bjN6ca!ɞʔΡqթYM>OK]O o_|xY pu,\jMuתx]=d`=#nNBᚺc'8 ccX]DOb E;J.{B$_{ &,g_jayDt[~fSX@Qy烃EШR Q&Ú7nůl >A-ϬRw x gHX"yo *GHꛬDJ "59oqU9%+%o`;bEN]Sf-Cm'n4:ruTQ7>7pꡝx $u/V XL2tJfu{{ܮzQc~:;p}w=c+L\XZ$I"-i(>5fX^TSnn|f8:;\RTh{I6;KDaXj-yJOӛ$ ptq v 3/skIiᡋ ~}9>3k QU.$ͦ]HRH?5H[ rbjUP1Y4T8]&2 e/pHd 69$kcf=s!v5#yBhIa/YsA*ԁ8ۮ%~ /2GZQ-czx- \,"&G;D_M@YO)񞡱PALx|hۦQJ@%ȧE,l&7쮡{;E\oNVֱ}amѺzDfџFo/v, ^-H!ǧs g Y- 4A ˙$徕u{bFߗ2updke!N%-sVto&սq/[PdF &ؤ2hT~P#"ҟ>s{K1]z["IeKfj/CQYP"f{9\Eꁚ+nŇcEhni_MЃ=kJI_ 'gVvnhǃ![#PE:W/s_&rwrsBlX8f\ϘB##/=ӗ w/Q7Adu#?kuS;5-O \vL~7F$9#>5d=K>;mUi a9un;CDчP1H{duQL0sJ^;XݩڶWє2k؋DoC[ V(F,6x]_:P5Ke|g'§vwJ3sۛҒ˱ʻ_Йpg pu$.#% "Ϲ}JV-Ik(:%]p[iuks%Sk恳 *]<ZftZBmRһT),$]0ӧb=b$dݣʴ}u9Q=p"U=ጝt7fyic-R:ufH8T=%898)'p\+^F! ͈>uױ,S݅8SuJ6F+.NMp pM&hwzIR>/LUttzGoH3%$==m&@5n!<G+jlBk=alIcuhV4%u_%ϷOޑZkY-L +"1bh;6CM)@8pZ4MT[.gH = YHآMIT_Gi6fl6") گ>uBlp5ǛoX=~?vJ6nc~/DE,5QC^ԩdu ˄{]hGg1w2z~"xpxhO ÐpsTf%^m)]C2䀏 394%=[n>{("CqI(VA1QitLtNlm->MݝKXE&˩5L+H)8l Dif 1r!DCY&dxE"8צ@"s cBP&y^bKeC,W9AE_O)7LO'^ѓ9ו'-ĒpHYW| b B,rba9g|bCE`J~IV*9oLϐQ=*Ua %Ո\K(mT"I$V%V:4J ,S2LA'`5ΨcD_}_@<+D%Vz_|7~;gA]c*6չ(K(j SU#N~פv}@-A!VJC s)+:_Ǎ@ƪU[,E2JRv>â\?i"9#(Z7b}nz,K.30* 姜 8Yh}#)LĔ"E*֍c QD[/jG"3sϟk5`J8kΉxZ7HAvTJHÉ-o/ҿ3,SwYUv |*G86J"TE/EhkT@BOȃ><s^8J}2Ӌ[y䎴1 *]p!XԷ XsQu:WBQ'u3=z 8cpYy.΃QDf^PB'T匦:u:J!fBD hм[>3D}nrToֶ^4Q&>44K͹tDWuĈ>!"tmsvJk7Ou`I5-E8 1J}񻣞4agؘ6n:?jD P ABk2[Bg =kCP'INKNjI[Nb %gMPUkԱEbYm"$WF6)Hq~I+ GFʎCg'{kU+[zUCm!mOTuluqHl:,Y%hEPH}Yu$k8u 6Qk\׸bL@;YIENDB`all-in-one-seo-pack/dist/Lite/assets/images/rafflepress.BX9JrCHk.png000064400000003306151222736000021113 0ustar00PNG  IHDRddGuqh,=!g몽֍hns+monB%.2M'}GΨwHWPG[zjW(ՒIkoMG̤,namXD\ TdCjCrؐY/T 1 l:VsG !ˑ5 |H첦ڢsbc. obK N\N$ ]7Lt_mĨ-IENDB`all-in-one-seo-pack/dist/Lite/assets/images/rank-math-seo-logo-small.CYAnAjcu.png000064400000001315151222736000023420 0ustar00PNG  IHDRHHb3CuPLTEcncnamcn14Lcnaobmcm@Dn88Wal14L.2J14L14L14L14L04L04K04L02L14L03J14L14Lcn14L14L04L14L13Lbnbnbm14L14J04Kcm03Kcn14L04K14K04L14L14L14L14L14L14L14Lcmcm03L03Lcncnbncncncncodmcn14L8AtRNSL.Rҷ~S;50&ǽlgaE=4! uZ.ǥpmWLC‹H)=<rIDATXn@ZleA(ZW 3kC'0y?3.[s.C +3A<8t@w}K@m[۶3BIF gMN IK M6M Q u4 ,Ւ=%BvYu@AJ$@q~ՁU }:+qj!vzkBtñNT LLyEoEI2v$ߠ#M9wgeŘ1EЋN]XDfLu d|B$5|kHNTQft9JRc6qxz@UtK]ZlL] cׅxIENDB`all-in-one-seo-pack/dist/Lite/assets/images/sc.CbU-f6AE.png000064400000007722151222736000017116 0ustar00PNG  IHDRL\BiTXtXML:com.adobe.xmp iCCPsRGB IEC61966-2.1(u+DQ?ƈBYXLVF~(#i2ؼyͨzo&MVQbׂVHƚ0=59s~={W$mw73Y+<F|OᦙAt&)kTxPʟ5CieDž'W-&=- wZrANJ8QOV$<a_~rTNz'&ފM1`鑾K(?Ų2X"A,z\!z\F߾F_o'U՛Pp)BgJ0&FIw N/JZl֡,[wC}vس} *_u ;! _=g8 pHYs  IDATx{llc6`  %vM0 i+4!MQRZET)jOڨUPED4"ySGP>q|pwg|{3s;ЋcG#@3Ff14chЌ#@3Ff14chL3s)=tP v1dEe\õ+164 HIc}RRrrʅXԞ;k(?4lfbQhլfe,[;[yA,[TSsUCL[f{^!˕^0ۧR2YywC@Ye]wŭ.eΊHw3vƒON92t9ik"nrQ<>k>./_'\h{T&W1~J{`ޥTÈ 7zh>HS=>$x:\LZOWdgX'mgʩ]Kam'gMx,{)[(,/1a]lࢺ=}뿡\փ!j)sl_̩r0U1Iy%3䗰9[>Ǟ#Jk,Kw6S(RwPN$'aV6mʫ^P^!+U4R3xv>*( +oa?r9Q3돴b(& 3Dj{_pQ2EkE#'RT&t&{ -V.w4o Md>~{(?8_6[Dkb oO{<4lG͜9f ynaP.Ay>.zf6ߵMgZ-eJL>"xeͤ`4^Ο4/_"ߴn0aCRG/ Femi?/ȁ*T8`:xWǝ.A9t4eX@܁2N[S2"rRG/#q!r>e,%%pM&c:H܁Y>U1sC5chЌӣEPI0qbj U!Tw:R@/$b&ODS 8O@Q b'1 x#~I |m/p]w5068j ƥ3bYeғ{(PmBP( ?n dQyLZ`>wGeohz&I 4iuJoFVcnX!9Ejeݙ!`Bte$8.WΠ?I&YwI2Π?$]NK.rb)BzYhM@0:p;Fx[ 'fV.>cGwt)6z{uM8e=MZxmkĘF^FhQl]Q;%̩Zb#RהT~Lu>{¾k'>'-өM,mKxv㩧Qx`(pKd呓ON9:~6j0"N|YY #ߋKGdH14chЌ#@3Ff14chЌ#@3ZsIENDB`all-in-one-seo-pack/dist/Lite/assets/images/smtp.CgF0XKTF.png000064400000006376151222736000017524 0ustar00PNG  IHDRddGลlhRKB"3ֻw^E:6(U-%qdZj_ zIDAThUXABۛ$mHHq+ZZ-ٻK.4@lrfgvXj .XhYC*83*WCM2*ǢI moh[$cyQ^/ZC )F_ܒq+8`rB2 ӠDԬ xyJ")\HZZ4@GKJD@#)(poX`,OWԡC@ش]EP\t U&8iIKT_xɮSQMuҭ[&X(}¨TS׋NuT*(t7|ٹ]0^א]?JO8<R,-cG>Y,P*yRӽ;Вv9X D USsZ5j8fPޤa\9nS(e}rw4bBSٗEYcQlO_' UjȮQ6wHzb(٬1ҭ_dPJrQR/([c_jqF.;`7 ǢfFG$Gb Q*/i}ָZ 0N18%h)ZVI}) sK0'Q1=CE;V) bnry9?U({VF",^tM1j.%tw3i ;r!C7gB%lS&4w`ԹE,[W(wk(E!  EO: RP0,%94_~{p(1R,?Pq!Q(kFMvۜ_Z8yGE8zMf9I%;& ЈVղI` ^dF;):oDEW`r'"4ΘIt /_^Hl=wƅ\A% Ev2rD,F,(ءgo޿DbJ]m<&VTyDTGF` dx˜&۞0)qV&;bN"깭f tSL5%Aky';)20 X+#nǧc"3X9JEg^> i^]Zgt>1faJ$_)[VNWA|.dۂvn&M9=BD FJ8J#ғoVgu}]d~m1# Q$n &n~P@|7wv8ȸۯS Cw񩦒 pHP M,PASawnj¯6{6up|(i*r0Q]x4o.;?%'1>>SMRhсYFH%sQYyH$ L.pYJeOG 2I.u ]_;:&%eM{;eCǎ#+!뤥[MF)&zec^nkPmx}7{W` z:KigWT.\Q5Hė'$'W++c[Q=vu/f+xzrfog_q*LޯLi]{F2Ċ[zVT*~/>Ld%+I@N*FDPpt[a.Z>#66C`f*c {+S>L+zSDj ~~Z6]Dw:~~8i)>P& \5X%J5Hh_i]ן= DFp4M8SƠ LL W+VSd. ,vVTg1Q.am# H?)Ԁߑi-d, ?lX^qz@k ٪eB碥u,33q{n-#)DPODd-t4-Dq1^[l|Xl$q8ԙ"N;Dul{-(Sͫ8%.X'weiؙV~fb%cuc~-Gn캿em½hAGvhQӏgm[Cj0ñ3ۑ{k3+ghCAN~@..H ta<+:-7o5dU?ϵ-D! #7%5h֦eRXgH H%v7[vPou5dx)`#J%H(wV";Q|QN5cyeX=K!mH9WuY;Oh4eD5^F-L{;O5cr9XM@A5eE//tu"6_g|%l[I"4f!f{('\R]@@H'S .zTp0qD5KC7{B9|(F/D5L1pv("UA< 'D4J!TVZy`f2mn7\G+1qO]=JF,K|4gH)OM*B;Q 8X%5bC53i:T9V@@I$p!".z/v0sA>/xM,-}5eRSkE/P T$'H&)B9(*C7&}{UtRNS 30!bm?#ݢG43,,&ƿfdRLC;(( ¿us_WVPK?8tnkZHG9ʾva8ֿ~}lKԵ{1J WIDAThuXA PJE  QTD ܺ7[:̼IWȉ Uވ{jz۷YPDT}OI5i`PDOc bCמ=o߾lczF+dŀ {H§׿JLX۟3Hx511q͚57mzuf S(4)frr7HbuJMc:ܦN¦P3B$0u$Jxi; qP8upB z2@=;S5WDMG*nH5j~3+NHJzcΑo rxG^]'Nʠۻ 9/1cZl;9*c>/2L,W=L߿D=A"k׮':<*^~x8.߈],(@@n Tfi?nIi(WhAy G.C:6q7Ǐrb\"rW.rKώU5լ\!ck]7 u4;: v;M,cA0VA;;\!`yZoD`;֒8{\Q-U&tx7W5 ʠ.jk,W)6+Ͻ(%wexƁ9BeTփ*C&r lWTs8>U(a ?ƠY0 sSLۙDT=4=rGJ0f PS&Tgr١Hy&GOal5h<%Vka?"w5`Di+ԃ6n?WsAR9E\k )}A#;Cù@]l^#Tդ"/Jqg0o^k^s? c;zmVjEO܄83 %xaэUضY({2f@̽l.&̊[hqñEj eYn+Z{='VݸGq`*W8Ӵ.uWoG)b_O֠6Z7ݠޔq1e ANYZƹ˾4Bzm7YEHhkyٔmD9GUCl2Ff[21)v;ic{0823}O`QD* |82osa']q }n hܼ$/}d27zs zTGɡ&A׃ƃWf 1abS:ָC\@yG}QDnXtoJő8d [15>W#AqhE @8fv +L??\rQhK5^[EqP2Bzu4`[ ƃ2հz #y[dи_Ch{'GI 9o>8B?zjxq dR:K[Ti6@:QƏzKc PF)GBͥj%+4i@(ɔqE4@F);KcrECGf 0KK7X`9@_xq4K_&51~ d DQCr'OY@mɴm;ׯdN'T;᭛A& ª^ o ?oQQ8r!ˑ(PrF7 gN2Jwܾ}!C 4Jh;ZX9{HNIENDB`all-in-one-seo-pack/dist/Lite/assets/images/team.C8DBqPIM.jpg000064400000742141151222736000017453 0ustar00JFIFC     C      y'bvgΚa9ӕg"{^SH}8VRu9s';޻wv=򵲦aXNy빻ysw7׸NoGp_.H~C_ߎoo7/'|QTAJ]*㜺ލӹr,{uk(ͽ#&Iy")"Cٜrw7&g2(Ul֠NDysZTIxF^PXoۘ\Yo:zr.s嗔Noh9ؠp(GjȎ%GnbW]#]ȮQPTbgaf}9wH"A9.T9jcP?Jr~{xc"nOSkXUYtרӑ|9r)[IوD,woEQwdu(;{]=H={r,:= TߕwN*]x录ntn=?rDVNS"l"*ȃVWDfe«GSFyEnj۹&c[NQVQej*5PEAI{'ɟ C tUr6Nnw^QSrf4pb;r*lâ /:;檫NUNgnDnYg+kV<8vtkIۙ!a#nrK#tDQE{,]hFr皳}ܢUXDY^ÄsNUɯ"ŽQy;6]ەj*ꭢTܩ'"jA;HfM.w"CdEw戭ӳQ aD[*l:JWvg5^rOʽsUWfS$;P(QˑGܿ#kD9Z%i0$'6瞟77汻^WEOU&ɕCwrw/)Qw\ #,VEpۚ{v*j#"Bw5U&+twpv9jOnp#CI!^ך9ySjKFHqzA\֨ 8FkNזUQW/KrVvT(?P$y#Tv=#9sWr}^nӚ(dVDwq݊;r 9QlfN87=/~^yn懲5{XMf<sSUq$_9X171UnŊ٠ 7FmmVDyܭZEGDA6.Yw4NO_F%#Y{ty(z;l\Y6eïVrܪVUw7E_șT64GOkGsy1s'}g1E瑚/=rnCrKɵQjE(~1ܹ{Qҳw^"܃g)XSa"DڿW+S^M$mnU'fC+鱭Tl7o!܇9.kd׳!:ӛ7wpr._r$iʇw @fM*jD[ mAڧ}'+ܳE;sjo^*ebŽ$%+tQUs6IADwDxTf5T[~T9FW7~IۣUwvW \9ۙ+TT{5[o5^hf 5=+;35͑o ѽߕkV\Pv}4rMFw$yj 5^Iy'73Ɣn#E)'Sb"UDE^p[/\z.5QWi?^kΕ$fklU8w+΍Qԗ6fi^f>7VnI=ȳsݖ/trj[Ywݧ/ȤWZJXuxywӒo"+V?sFv]OUQ5toh׶I9$LTȯ"4FHg$ټroEnO.j,G ,ݜs%IvB]S/+ۗwjՑʪ$iaD^HG#yG-3d^ZΪwQA`5.k6==w7G"q"}w+b=MFSV{F型((sT"5k\Q~TI/=͑эkH$$7>*G'G2FmDRk4E㻅mT?9s!Ty&ךS^FDiʗ+v*!nASVG28z1[wO;]wnUsTT+_YyDz\&^py$}ᮣrP,BQY;+Zrjs$ ޱ(b ۹ݏVREvlxկ$y^t5=וxgeʼ;#[ȹ"۫Ln5n3Qڢ[,r)GӾw"E]H t6g#ɫ*r$TQȵlU<Db+v(bBo]wr'HuuNE{,O,Uz/#`$w<D<`n/zW95=h a1LzZrm0{#!w+ERaN'~k^'VϙdIÓrnQVXhI4EcVvh(?TRُj3cVk̓Nfmvo&;M+uVlr ԗEKoktV|5"p<ˆ/5j!]5|?R+^QUW+W^~Nr{'=ޕx:o+IBhDK]c'rK hCP-?Wn8svL&F^m M^瞄CeE4pJƗ+"!fI?^zEtԡ'=P1իQהOV۱1QkGٜ YN(7|UFV4r(7j!GKuM!8V959rOZdAsQ$DجJ^9nMHh/sףߟ%MgUWrh<6Qi|'x6|4qRQL|^50Ed+>P&J{R64q_zb_GUCYgY 7~ZդHAh--&6O sB3u-USX-2bj6cbU=T-w )t2]d?R9%[r^6hav(:nikj_$W!ޡ.yF$>* A:&YyI`dapyqEXt'z)ǿ03 \A~汷Oz<~}}H}8@EGp?,} _3ATt=)7.r[eUܖIlkr  IL Ja6:|,H5S ; *t]H9$dP9FN\Z 1buslbZ_AͱbרPlL>d㖈9mm=ӣh fFdqؙ SGN\^kuZciYF9{-dlcfLw徑n 0 $o~M!{vn5M R+VރaTiViXa E5+yEg H=P?:>"(>ռ<oS{qO14q6O;iNO7G )pNi=32Z<;Ψs֑I1,O' RX5hQ̶ a-7Hz4j Du`fW*S΢)#fi bf3]Kяn汹q;x)Jʜ֥ OD.Om [Q&2ZZ )ɫm(^VRxo/VoAúEG_z-MQ8 :u=WxC0>LgFfMbv؇Fm%m#b6CQ>/Q}z+:ƻ-tD>%X9zrCt^8䵽"7E!v vĎ--: #nXaW<+bi `ۘЇ&k h']X['klfHhZ>m$V|9*ehU@IZўyzՠh~EHq,~>:~ck_TA>=5>Uv6Ҵ^?NCAuCbyFTFS}oԳEtߢ?UW#N ClQtW)tB[^%N瞺,.ޟ5#co}ּSO4iu-CLzYY]YnZ;XIxS gZA Z6q afZݠn) L I. WKA+rv+ >uX xU4VZ{-P(t}a G$EZ/AXj9D+ү/5FC?b7smlPW9rtM[W Wnnf8"އca[1 ^HoqC'H-)]?_E3QK9Y̙t 0-Jn7͢4~GjW"4ޯg=.(+w&Ɖ"GK76@kǘNHeG1 4jub D -9p@u *]5.jFd4(7:ywK0HIz4F?;VCHG{/Y>KóucKj(؂4F)zs`X`s|AvJmt[d@f_9 uefwyo5JD6mNiG-hqZJ@FD@/+>΂tX+WxV6HMq.,FPhkHѷ"Z8u,ܹ`&7Ag}b˭掷X]M')s0h+>AFPY; >j$/M &ݫY<:v.&҄ەOc{|a,>aSyӭg}1e\j,@v}rtW|zbj&['4?#F5FTN+l)-V辗D&2s 3aqΏ L:l$`,إpQm7rt>qZ3A*d#΄0祾co|6[sDc!GpHD?_K1YAU]ӵC5^;Ϻ t"7,մQu~/Gb?Y f>^G.69e 4?v^*'D)+6:BFtp.YM|9P@RK!Ih5J;ܶ&jt!N΅\$"WMy'+W#l!8dج:*ܺ+B4瞵c,w@"VjxqD\8[Wls0q1k̉&mTOs:az}L_zW.SO7@S_44*B祷PTh޼Q-ӼyȌmkFOI뙶t0>eFtfk9N=+w46.Rh5lz.f%8ECRltԁg!/t&V5ʖYz=scu\NIzH0#݊&|E]I'c0 zRS3I!- . p/vRzG ET_E܎4 @^Ot+_`/>mS, jZ}K1YbQ H-{J4Aɞ;!QS+!OCATbNrgT ]Gzkh !o=_WyM&Jtkyͽ]R)4nzM!z G=~TX"oY׏0>ŮbΣ6=U+7W>ߜT!g4M"R5: 6(ZOeGGX(nd6Ԛ@@qg[<5D/w Ar'w G_)eCry^DBDSd՚do#줍jr]lvA.4*qĹjUYcT0%=~14b/UsI\z;cjbO}+XhNA:枒$ioϑ E Ev=7pE:W:J` jƇ9`>5>-J)L-zEZ<]< ]Kd0)\LVsgfFnӋ8zbѝC-U-ݏ4Ҙ-*4@z\86#ߥs;.PAհ.a+{z)4岺0 e>w-ac!jwQޑtD)ŚW4׵tms67!;q ڲT[BKT~3(76TdfޜD_< .d.^<N%b!G&iYT2=X)u no`=Ϛ#w-Vf/@rqchFͻ*6yDw:4y#OH'Q%76&ta@~MBؼ֖=nv=%^~^g~ezeƓ-4SsbckI֖j/6Pxe|3idq.R:O9g]=|}!BZĽY4w6r|je@NǙ/n I^eo]w,en))q_Sx)[nΣa럛{HP_;}/yj2L0~c\濫NavgۂuJmz5m+Ru_55~sOWD%9`<ZZhI-ySV*yN'h:Q' Β 48`ƅwi~'ͭ՚:F.=:^?рb4vkMjp lfrsOAk:4BRֻU8יDj];Ԍn ـӥ WؗOF DEfQ`=Iu[ގEXD/ h{d g0!u;G8-q%[ _+3`#==p-qQn]V,CC 5eNcV03Azj6wOa~2B,<)%!#F^ߪhȮwtz}f!myt⥫L#Лg2x ΜdPL#nLͬ-]<)amFiLhgQjT;1#^D8Hu⌧{E3 0Ak˔6?edZnziZDB4/Zz"IM#O6hp:JP!M!@S1">޶aTTL6%^5t|iM{a_p䐒x%*9oSdvGx)C *lmÛk+f77rgi,,wJi[{?> 't^m-_y*wod_)y`1@g>6dz)IU|x:E[Y.,;A'rK2".W0h.Sm%.gvB,Au?ЬL嗙ϗiXGoͽsRx\s%NwGBtg5 )G]/S(5!KsE>wk0V:wTzכ<Iz mۉ :g;xmp 1I1>1Kz?Ye46×]SX5QPxI:̒G9l&JA!G&tSWyA^ 3"^#o_ig]UzĕIsq_6[r(hA%2IA1r&9[2.AY(7*q[!MUz)}Pm4IVdc Ua %-F)/q2@ym 9XAXߛf]z$ӛd|G.=>%u]b7|_FĶ Fߘ؜p{sS郬V yh5z-QED?F+ +|`0VEh³*aYϱHxKdzF #jgR%G+ϓ5DߵSmwZLNj9 RlVآ:gb4/u ,X7b)@9K~{e^ |ylme,'-]N&c=Ɖ-4/rz.(ȳjY(a8^_$OJn(Cc7ZV-/ŏ6NeVjm\~5m|YYEbuAc9#qo79&{k^"M ?4j1^YCC0دHT:^Q7$i=OO["Ӛ\%)!=nهLS5ðioɺ;f/rήH7Gq.ݕs A%K|_yoZzH QGA#E]Ig<ߧOafzi xdXذq ذHDK寢JU6gʣr6 Vz 6C=Ѫ=eѹ&溣ᧈkJVVZNcP ;L#LFZ[\;-A֦8qs[4 v墴=YOlۘ؏o9ݏ;,F~׏0d׭/LNb$IiIoq^Pz;]%9b)Gc g>;ngjF3=g%Oe-4ݕϵ(ع97.-Bb;S5sd0ߵ_elhvd: U<_|MWDTe(ޒYTsr^UjKQ톚3M49ٞs\* 3]^Dbԯ(B41,>;Q1yw0YȭZ,ZhƭG.Zҹkc,`+<1_$&ozG+n?~FcFx@ѣNg>!zc@ЂЁ kǧ_z:jcN9FOaG/y.ؠcTpB+OFFۣ1›{V;N'SwNFSUlĥן,\HPvHksi+,elk G宺*i8,y` fbӢ#2ު _Igt+Z#pY[ҫ{k/AB VFxݹӭExTBUM:453\D}c?#kv碰 swg.9!V)nmRh56+O]>uNr)#1zuz} J $ѯJJ5i֑:;wNwvj؝.1뗆s付*V*>n;;r]U%]#Of"tnU<Ѓk,[yKK{]J:N9yEfcs$wI"(c?+w3j@jZ &g:>:$|97uFWzY?Bh1 d!52Ǐ9044 Ca涚gP.I9UO <hpgCB)_cvI(Es,҂':qg7ҘAI{Zld\*I{~X7{<6RWz^z[q1fYb+̿13?-jΓGXf,zx+[dj4rvګ]#m𧄶kGÁ 0X*1txUQu/ gKJ7-ՓYh)*̒c`룔IZ9΅$ހޑP'Nd-Mo#lM1F$>Q3~CWf8Y ff7]I@%?$5"&RoaDϞŁ<襬\bfXDa hizl3ڏ eoiBM vɒ|3BKؾ TUUQm'AEP]hOj *Nn}j֎N ȥAIs[刞e :V+b̍.j"YjEdbpC T XN물>nj5d ΚZ7,L bBٔv,<gauUb6o|~dL57A=IȝU( F\\ӎx>MXR5XJ׍>ZT{ /B^4F{p\ R)IKĵ"'9T`lY"dfW*2c⠫bs*HGBtH\](;F 1#VpʼpXͅy#dW&H1k)!&:Hn@Q 72ik 5g:9$H9T԰^5Zrw#%})C ωQ۩5A%}U &@V8Ѳ).)k;fb}' w sLRzjHȉ;bľ-NPtq0צkZexDc+]#&;LޕJG@z1 ,tyٸ!NȺ _Ta@n (D2fN ƴWb"jyKZKU$)*}1I7Ԭ^i xRoEiE6Z<$3;FɦnAis3i󸚈?Q<z BGvo0vڱ;U:`d7lOG D!Qn}7(^Gmػs^ W.rUJf:ͣRl:GMGJ/} l3 l$Ҡ2@@ ]ڣ7ڽ2 ב'Ƞ4-xf3KuX7c"kA"4ߜjA̰_WQhCa6fϞILW' D#V1А3M=ֹZfz2hd)~fNE^U gn[Vb5؊62ڼ#7=vrųH;h-N!V(HYvF烊dHjvz07( @=&tN֣3 F.tJm9a5gp"HilZn5 \ܭ^:6@Ht^CQލbJ:5떃ՂcO \-W6 z*ⵤp %a3(98'ֱ1N:#bk[4<`m4!b'%AK8VE 1(>l%$ZI*Swf^_YA-l2˒LU֫Zj<BOoCO^p]PZ҂3[kIW7~KYt[vhdrxi+"DlQtYʽs΀oF2 ´⊮D,d#* э*,> J U>" or{ lh$l™'= \Ԭ]_p vΚ+?! )JH{PK ĺ5YcY-kUnJ'L;d{SbvkӔ4+c+. X{0%֑;f&R3H!dVl~BKkY/ "HKqd4ay|R5}?l9emtsDmv@K`9M[hMFaSʏ6P3)CrBQlt݇"ԷGBtHXTR`M foRV#7,|Vԥ iٟ]wчa5kh,=Q>>[GMZ[ foJ,;UuZcuª4lϽB%d䖯*1'mb5n&M\s-)jٓxj;r75N7+BHQKaE7Nx-iCz<۷{&.]:vɶ_z.rvCұ'o(z]sv+$zC>t\F.vEb3D|b:mйkJޗ4Яc՛5]I?/amF*=BpËL1qO`awf=%%v=lOI]6ݮڼ /1X9UijhZŎ (:+-gu4ke/UdӟW/5j5|w8EG-yI^/ڞAU$gl>+cJ9%Ъʨ ŅynUOޖuW$񏉂Y+/BVOY9. GJh4%g hs'z4-gX+1S*X?Gڦ8([hɵe+z i ?Сnl^kd|Um,lfMN}ۡt^P$<%=fYQMYā~FTHi كVSp儢y_- t)L3܅sKVvIjmtˌgKΊepTQ 5ya`JI} 'n1_ɦz[}:ȱDX d4Ɨ( zGLIp Ga~4|J5JAji 2FFiye=u0/1K+RWJ6bq b}TE3PS⽇P. H&õKԒ"k\m0_mpD&2ZVIigP\(͈%F&{Nr^(̐O[bA6k"lC B[z_ uy']4{[O ,؂Xy DdRɇSCm ܎V7#@Q%ܴR3%^܋K ,=o)56׊㺭q*f:*0hSv:V:qh@ZߺTyRX$*6K, vY`4'`鶫R p,!#M5AG߰U@m8jD0x>2sqmgZȶVYh/Gkf*-:Zۈ }6#900Ff1s[{m4P*zΞ}siL41 K}>)43Ly $+^ 0\"->/4벃PsE*}=2٭dC[ؤ\Ir.p~N!Hs3;!"1#23A $0B%45Q6CaqR&DFbrS\v;݈|ubž:b&#sLË H,DoeϜ9?&7M|w̿nRc ?'5dnCbLsZA_ <444Ϸÿ#x&&ix࿀]mq}[F>DOi1~$ONOO l_'OR2b'/?^t쑳OL/S#q|ʵ\OӉۋ%bx'ؾFIʯ4e@cx'i5Kћ⿩u r?-P'釷1Ӄ~^1rx&&'bbb&i^'yYIު?C{_r24\O(rI=];jq$t+IUL?/n2gbbx&&'xܦ2sG\4SeG.ilL⿆6+ˑ^(:M+ Gg wi]>'bbx&&&"x*ijHL+'YˏRr?L?ݚG3_˻dx/Oʿ8Cc<;qT5LOϷ/~@7 HY4:xii.?IDQ4?(?Y诇+WI۬gLLmq$LOD툉sLT2kud4ZxiiYGxifif|O22?Fӿ/8w'x_GK4 'g .^;4&&&&&751S4IR c֙i~KOO2?L4:fᦸ)4٧ ߛ8?wVO1> %֕N LT=K؏<ľ l" pAQyKn8#&ȟoo޾<Z}o{xuo85/!7݆~h+SWJLK#ĸEijWcgq& Èim}o{kz6Md/AFVʶs4lcdo=1n-~UY+@.Hv 8_Mv/\_/~lwf ')>dr'1IkIXW0uHYQY"d|7G1c(U,dd(x3d8^`C$Y%Jx%H uUW6;"#S9AB+U^!p5Xc|1}' m*/ >8e4b mN|- VۦGۈ3LEs^bxd"o|VR|r@AW7\)4L]WFN)Di cU?Tp#^"&U#6' ${_NH][A'9EZq0ّLz{(clBXf4v0'?kBnLpЍEOl(H$X֔p|RSҪat_b QW3wfp_Ŀ)v*!Ʉڹ rYr`7N2Q4M.*._sd%QĎVso_ʼnۚ`7Lq=yʸ ~S42 r63DnLXLf|WnKYO;8[&46p<>uWBܻ"@#yrJjho\Bo_$}sGvUbHJc:Άr1|6rDsM=Udϐk(̕YÌdd-B2$I}KM-cJj!Y!rQ1j.X+JTV3a!XAG ('lKp/; !2[b `AjGW.{QvnbY ,Ajrb1F٘Y$]1&qrcl䰯T7x&"zx ^nX.zoO -O[cq2Iy WbJ8_ظϗ&=2Ӵ"yظ'L̚tDlmumd6󪥆 Is_<R$l,2&8&DU/ bzx~(ɦF7d87T#!Cd⏞Лi%-G囵13+X-c%-MjY:A]ymG|tap \s.AOCq{LJ _n|4q!'hDs}6ظ.iKCVX"3VַH\S$ni=asGl 6օ2{; <,d,69q}SW|@uMQ"nWC0u::ϱj6K徶L >^a_÷窷l,jT+yN*rƄq2C GɲzZɊATg)1$Wcq&tzlʩ\rq9Ml,qqFV|< Lf V6(Bo)1WhB$q _3Ɋk#G /In$0dM>+X[7I6|9/(2wn [w~Qd`H?s Cfszf@]DiLh1/'>3j |4g Lm˦HF^0;B W$E%Fw7ks_lyؿkۖ.}fl&ZzS%\gcWďd26?n( gǕPRdVg*:䲩 NgyP/^+?7'ȍ&ŲXG3&h_#1"T+:9SXR5] h1\1īX,zD@`e ėA1S.! $#]<)FcmƔCvIQv0Y?1ԱA6&Փo.D"i=T%FYeTu c .c$Wnxd5вZ`BÉ#+Nv°sHK"1y$ɀ!Yq+\%fpl}$LpnX1nFGkIP|h"Z-GE ͣ?nH8Oy5aV"# 9rMc/'"(}r~F >.ňU4ts{ԁ U-譤0 nnM |[S/-Ã8ur_2$$"u@LFrWdr.ʮ77"|jmLob-`BFhA4J`d47r0$1.1PM< jlH[E &жs̅*q1g􃷊sd [8$f<=Ln cǺg V9sg"HOgWי牮R&$p`'<Vfg ^d)\Ѥ6<Q쯆ѻcD=g,?,dފ\#lxV dȩ)62V̖tYTiSI ![Y*Şv+~oǦ˷zّ߸\_1ʳIiWK&\7َ::@I.ѧ=IB9 *510%4- ϴ{K+ {&X*ǘnHU$bJ_;3B-&H|%*U" \Dfk)7?y5&.LT^  [9]^G;$FQ^$=aMcf89 RLuɩLY,Rh,Gad\b"Idx͋ .A$Kx{^2HWV8w[XtnNK"7#qݞ@*lybî7pݜB}ʨͩ|qsN4ё#eŜK !l[;w]ShR'!Nw2$Cxd]BY@Ss;Eo3֨g֯5Ҥ9I.cY[~:ڽ6Nݩ' 2Ķe25vry*8lMQ6%mk1[._;V&(0x7T>L,|a4l y2pGww=Mqozk4Q>XV̚x ?H0Dw̍_,Rk\Z92h(,AłyZ5L&(IS:+,aC9katxvŐ86ct\E"J"iTc͉bC+M֗ t)DKi lkeBHV$3} j'WF{ O [yn7^P,EWr0rzMN9E)ӕVJKYE?1c;Su&."($qȟW1y^$T2oޕscSMlP*5;6S^V29n\8f@|4U_(Y渾 x( ` #]9̧b$FXO)DXZ8M~}Ao1ɵ݌׷ VY*0aN|P"x/??\1X榮`O{G0]5[ndɫg@=:MK1j`;] Y~| Xϕ:ms'q|F8ka1aZUyM'Ǒ!Ɍ^|=1wlhIPK(zƏ CRrm5O "5`9GEv L{A54Ͼ95LjnMrA at~`*yOo"| c gdqMXq쌉Lo^uj&p!o6ɆW*WID|֩V lB,s)09遞V *jpȭ?>cqX(\TOCPVk5V=ٛQ.}C_l']'ݜ0ԁ񵵏T>]9Q{llݬU0]X1ס,6?8ktCr'Oe,#F#UTV:֥뽊Sh5G:% +psfWtED2*39̚E;fּi }APl.tXXC<]R6%bgFVR"ǘ?]1oע*mm3Py+>b hzl yJigsG5`JZ=AݮO<.&b$FZ^F%AdmLb:IK(nTGUPVpFtk2[KL^;1*1!u gF+Uy2_b!@1BxDbjÒRs!,r@Ȕ&A1tؓ֬\G+_)#9^ym'& vMs? LhMNֿ8^R*qg|2ĒV(BtvئWbdԏ`jmL9q;*D[rH u rXc[͔fF}ӹʉ3_D1fȑb4A9$]Bzl-?!@AStpDkفd ZƒU!7+܌EXW|f7<;7IG,G'dv5Eհ(Vq^n\Ǟ.^IE$I[fdWOr&g #XvpGQ&3^f[J$X+1p*=Nv.- Ҥ5rb#6tĠZWw|c=,bLyXyؠR)( ;&SvFt¨<%t T84YQ;景|sw`uc]33qrS{ۥC?ZtTz4Np+_NҦ+{yf~?8Qc$x{zʙ\wiN0H7I50e=lpZ0kXފG9ʨW#4FpXsJcy͍®mL~tm뽮,u'<>\mUR*F>A't̏:=\@V,qpAa@#K VTi-*Gf3zlmh_!#yÜƊiD7xp O#*۲ _6p52QKic,\JuJ>KtEW0tDTn7mfkbCrGVxA`AITRͭ巘& NW3eC +˷!yqD4܋3WBYdhL*&Xcj;*gcyіb#L^p`j7t55n1l38-Hz-B)@pN-U|8xC5Q]+BTDl{"gf#pL*gS@`˒ik  A r7AàtV֒PQ^{ɜ7dSpsFD .dߕA7`/^#ult%{jI/#\17s 5; hJ,,q˻EUکWbrx%Fஔ;v87='!AH9Okdr"n)eK䐉䑢@W3!:#W*Qzjg ubÉݶ# g'hi#V'O䣫Ƥ3WLg!D9e%s^p,6al˖+Aɷ#ABQM+ D$dHYaM*]K-C&Y0}U 4m.SSG6y7ƿE;`G gY.GI*C1s* sALq)WGaQ.e{q;8zΞ8V2㝈-)W>|2>&=Bb9rhtop専m*Un|"K>9۲J]ZDcH$MzMFTvp, |hc'0r7֗R&[z4I$|U) cWT+f 9䋖 zt1A1)oPґlsz&z)$4wL%;#5^b-s 4jNRԎ\_"9] Jި.Mܢ:Qڻe\i- i.CyM+ :"iG8!v$ω#5T>'#qK&SYh&VKϰs,2K3șm.j "[1Bh$뭋NT2W5T>l+wG,zj/ELiuL7LaEy^.CWyI4䩂 Qj͐ d(l5\1?.z_ ?51*|-4.%S}a#sG땼3"H%,W¢pU,syPEiZr^NF^aQs<*9-C nG!߫nsr'rP הHWJm{D\9_Hj4yE) FG&{}T!j; Z–\e[e^dCM|`UyD nyGfUĐEdyI,(k(SLiXx]HǤKS4e%\la^#|rOV9!ϥkΔǮ<|hٻ$ yLRpFK7֦ckGSdOUt#eWv =#7ֆȊ5sG6S]_:)V<~gRHV-C&Sy0fn4Mw*ba&ɝ X\(Qv纫Z{=u~Q[XTY@fё{uus'1WTJ/.0|mCZ19QHgik9y.z}LMd1$E.XcѡH'3#7rj &\4K% 4AA~H;QD\ryQ..k%(V_>KG8Q5 S+&N/ϳ{Rɓ17Sy_0JqSC -,LBTcc# r)G)dI$(vE{kQJG±sfT'NڈWb;ckG'DTgXb"xHɊVVV[p fC#VMbZE]jbu\Cw XB*J#3 ]qCC1xa!v`M~!eoe!-xpݏ`WHgϋ_6v KfֹOߦ@ب-|}G Z!2!.l^&2^4Q$XKl8>_ 鶱6+e#ךNr{FVE[B̕ĥV5ޤ\ܘa, ELROW^ƌSn\7<Wf]&‰ A_5 NfG;1+>1k%[>Cs8?1hDLLW' Xz=Dno[[:!E,ܓX  rȀ~iW b&Ep0aJ+"FQ+RX+&#ExCl@s "&;լUbNMsqxKRǙ3_ 駱k*g,܌Gud]7pdoyYn’*᪵w$.[֬cX;Bn(QD_̻IC;@:tU,ïrʎfqp aV?K ćWG^.)lr=*p25h/WE*Q2q!l &2 _=\DGȃQHJ &v=ZinM W kReqcCr<G&Xf\G+ \A䲶,e1fsjxt0(91C҈%zWv:`e{JXp[ L㨇IhF)c4PK&pM)1er*fu$o3$:d|kh Gu][M~alE#`17"j gCYfH I{WА9ELPY=&5PH(`mֲKlsS,@Fգb&J#ʟ =cQI MQF"G(g)F"Ri]٩R-\h'&"d)r"tnƿFf.Q^۪d28UN13D23m\FN5A^'x*Qߦ G~Yc/1fC뀅K/óHQTjvo#7{/;ƵxDi<F#c)dOXE2/n"U>a ]'WB9u$Nc[-3B3^(GsDP/˙ toFfk[F z9u' I+~"9$3咛\ )\ѱ p[ayyA;( UUld5, eNr B(R^Xuqw>w &RB;ħ⊴'R1=w!YubCO͌'|vv<;yLk%K(L(L6#g2R8QBt9Z >"Wȹ,Dۨ,G<2?TI.|z+`rlrL!nɡl w=%w.Y#չ5 +Z嫗c :7c㿉#"7{x?GmʍɊyW'i,GToӧ1#ң 㐭c'Z7?݅,;$OӞڋۍ5q=5+Q}1_*~r$^AZ0kYFKFm9}Z,).}0,N%KfMq>e NB#e5QMDERy|eQ׷Q'%F !M#=mZ?cBa-|ʜ⠦⎩TE(;,KGXhxSwETkko8/5Ռ)Ĝ#0Rm=$d7EsU Zںn`f2;}2zEX|itɓ:[*wTV< y"q&KtPrmȅqڏͩ&Td.Gr4'ʹ5"7蘤G -CvVڅAɓT1xr;'bn"&Jc]6UEesE"!RLcΗ%?9;i8݁s/9S_.vLb*&9^vvoeR $+:G:W5Q_\ Dں8݈3MqՅd4svIfrdqˎk!h1Sz ۱7|uL^A0񯤆! Z%N鼍~n.ޚ;W ""l"VoyWNXߝ$'gӮ*U7ɑȏ9y @;G2TQ܍'8j]pzAt⽊1H#'@jig^l(Β.t7"`KckMl>63SWM >揶WfL2@W41O='+v'9qv={b5_.֦tέ\dߋ_mbjTvoW6;g^ɈDMolыϛ7jLW_V1U93sf8w{{&{Er~=v+V|_msGOgsvnlw.7ͬګ921GQ_q{d3'vu[ "zɝrcZ|/<TUxW*ȸLӨ <񝴜ݑ_DkW"7X9bDZ&k)5wdډ3-o`&s6FcRG]ϒc׶׳_"Tτ>io}]6m\LظMS /\cvG}詎#7|mf~UG4;Mdۻ'lz/E{ߙEM;ݮg^U_K"3Xwn72vE^=="}/77U_`U`T~-QpVsI]c,b69^Wd`d߫Hƻ5ٻoIhc,RֵwQ5DWup{,nMe 1fH3 k@=h4kQ t?\q#/G+qꨘc"-H "-ι7ljonBENJ.()`%#ѱ3hl\{[C1hZ!E3}1aYj&Uvv_g5Sn:v/Yr`WIkz4ƫǮE[r&5iԅlOC݈Ƨ߉;%]w-ft9>)~դErY>g__0GExR>$HiߦQ9AtLꯃ~O֪.Dk턭$asV̄E%.$NcODS`,ޕ\ K{<˦p& .=#шP}*Ʈ7? 3Hz` yiM1( }S^$&70AQ:[x. $ y6('6K+S L3DIyd6.9+Lfͪ#Ѫ2i~m`Do}?EDqq;aWu#zQ]XTeV{͈&"qẗ՛oѧؚI_Us[2[>cd1L#ks5& cu퍜4W_Q1iii"'˫ȹBeyR1{Hcʷ+! |ΐdN1q !t9DkULR4bx*j2k}B_N*c?E{717\EG7 57ʽW6YBQ_ٓ4@lU1. | b8{9C"Hdb#|#pz,IqD{( x*jHhXAAj};QlDkv{*95F1C"L"뒗F;}L_/lf7d׶rt]#Î~Ƈ '_* I8% ! gUC&OrLKn¢&X>8#|X*@{9pW9ok7*Sj.GWȱ1(6q;Md.V'[s mcG]7&90)^;XP՘=WL{Վ9uroƯlU*\jq&Vd.m7:Hy0W&/HӏpB,X)^ hvj{a'D(chH)}Ԓ ed:#H viY"?,[{>UW?ԝF+m'hֹur_^u]j\vNzlD7 ]˒\`׶1qںin2WdWlH\ 2j@y,|%1BR&I׺j)XH!Gj:Ijy=s\ yQ/͛%U*|G4hbrK0GcbO,z&sU.ޓ%NzP.ϝeUCcZޭ?l8s^}Î&а+ǨuB5cavlEbf\"ۣ틄s0N՚+x76>ۚA/f+f(񓻾lCy ڢL~udh 3Ɛ k),DTrY;%+21gFA}K닪j㽱8{9Dbv+!E ۦQ9Tf0CW Yʮvdp!߷< ]~q )0b@6A䗰soDħ߭ svq#vࠏO4c̟Mg'嫃6V\.,N6 ȮvU2 94[8X+CӲeW:p]UQ݀9qEژVm`VQ=۱{`ۚ]Waѕyfv+cWT0l~m|C}ls!ȆulhcZ_zYQ,ar‘&?vrvv*1Qi]5n?$D>R+T^ؙFB5$KN|s@!kJF\4Mo&cB77 )L(dy\0ɮXe4U/ +MCI[ NPV3qOK#H=MW?k7-䖋<7tl A!L s}EJ~qsE_,Y\J wyGd.*Ěb0dD)~ ,ɢ^D3veEHLĒwזtsPD8+kxzD9 ,jdH.gFuHJ󥍯aƨgs4Ճczl&܏^f48ELhY搽agBL8:kN'U;nCtn] J{(t_*Nz:hgw1y ]\(+bXkm8]9o,vW en{'{+r,+lx5ݱm+v}5b5@,A9`|)s.1H' ώ)?jκ3l<ڲvKa~FR=yQWVI.T * qpunDs`I`|J3G;=K͝] ϙ$ 7&Vֲl)cj˕e9Q:YdRю+qI\=>?|k:'&ё=V4˴fPj Se? >x{hCwUڑh M9PzE 3u1Vd=ey9L;G"Kg-c2_mso]+T | $;^OgbD21PK+,ڛ?Ps%=QoM9c[+ *M3v΃'ֵSɵ9NDLNcRϕ"BTi1v#`<ҩ/fN,o/| ᰇe.*ƟlQN vZw_9*^T"UO<}x6D|l33Oi\g-Y>Fٿ@_SZϨY#$ gr.u`S/ čމA/ZtgQzTAN G9{ vQ]vM>PLh <;R|w3-pFL:٤IdoZjjdLg'K)%,$SM"\?[LJU`2 QP4%*gZޗOuH tJzjKZxswx&wibbg {| ̨Lcu^'/ jڴc_uTXF8o .q[ )#;r1u!qr}4]@s:H6l YſV:v{fEqܖc;T+&zʝkuWcd*bk_M2nꐶFFM RT] N ]Yqn<6 ;t2@i?cº lRXS)!&Jwd]gTv-AqK~n\ ,.}L_T]NWn_+U&W6kE׶\IrC 7EVr9Ӟ۔;=v(IO&uߧO 6%S9QUܼvV=H])k˕~ ' Ui_?L#Yϔ\ |Ӯ7ZOҐk8ww ,kqّwGb$,4dS$q\'uȒqd^_gfTre{v Ʉ#`7t7->ڛ6oC!\,!Ȧ7i:v.TnQG$*L:qjٶ'=w|xtAO}+W::/rg֕=/_iDl6\e1tQ\% SɺL5cgMfX"s: D6$C*Z`j]S$]dQb ͉jcowצr[SgXȰvD??S t{"s@pi|A.P"]u`D7r2GI3/=N]`1 O8ьUw]U=Q}4L Qjj.$W2q!G~F9')EOd&/|Du?vy֫E`1 Z1(a綨"7p-=x+{Kn8ic]ٟV\vtl8 0$s"K&u4qcS?b;pwYK=.GE"zw+␑ڧs2oCdx:n`jwo5P/l$ٙ(Jmr%Ņzhם: s'H KGKCd<|iAD%e3*nf{HܪĎ$!1`Wv;._kGsC_.(h-K`VFLJC 5WYvL B*e :ySMsMt0sOzo7|-VY(ͨNG!}7|ډpӦ5E[^؅nyC~螥lV&YTLotQ *Q$úeU+Z':ݘo]hws\ꑭ 6MMu**4ka胉޽6ʌlxn螄'fɰr''ofi={<|q~,wnRO{WU"D9qyoLH[0QYQ҉LWmqfT_s3Yoh?8=Ӊ$ DnȐ; |Z7dIvN*kRm-z}DLn쀴x|Tv5 Ua*XʺLghVf$Jz/O'G!1A"2QaBRq #0S3brCT$c4@Ds ?|!~RzW7g \o?|!J~{G7x=ǿ%|?'x=/%|/#f/K _ }J~7%|{,ag%x=oJ#o=nKI}W{=ArZI''.?K=%_kܗO`\կ1­_VVTS?2†b^b^i9Dmez.W-zWmߣ+z 9w«/}EYtkV R'/ `ߥnmE܊>ӈϔ_0~{_KU/cu=y#ۯs_Ҳ+'J_/mҦPOe+ۅMqO0_ӳ~-?+n@Z֔UfzO y#j>[Iܗzsr^Pivw΀XiQ+#o oW% Tp/5'w0S=S<M,w|Fe *HӒt W\ơ@xN?T_U80?hSq')>[K^_m1{smYzWj'mkEZZb'%h1(C.&_d7ԧEx]eC=>L4z{By:籅+P\O9S$|,5Y_^䬮/:$. 7[S$Bcmg P;]BD$]qre뙃0^RjVR V4Y ktV\QH٘)yKBP;=' ?8P CIF"os40FIC$9YC˷|>{ ZPQ's>m9:4YBdzs ?Cӟ"fn<pV;hC>vA"7]ֈw)Swk+烘Q|)<:m-mTfuT0Ophu4R105V}jH,̝Pbh{o1W_ibvZq׈̖5e E682h(ucg|Aw^#n9ɵڧ/žկ[AӳE4Pd(ߓT,ꁙׅF>!. W;%uU?q^_XS.Strfej w2S v,\qrr|kU.&:4dk7(Cz$cE,h0Jp.Tl(K,N)O}.|!v6qsr =ó4ӗ;y-p> n. r\cc'|!/ a{z=7Eٛ(TQqg?WSk} hsG"=ru^}shjx=@-ꥫ#o_[mLLym?wҋ=MXjϳSBc7CT!cr\#n;.Њ;Wj׳|͙aU *@ !ܪZY?QrLcf\QOh^өzTjW͖g<%o]Z&wNBV-|+?i}*\'J;qIXӁO/1ԫy4ݓ*IKU7L=M1N  pWkq%oK3˻6N4V^f}''λzh"UFV?jBM<=q>60W|!y/);Guԩ q{Χy-5nߒsZka'\bW|!r]א{7q eUidu=F98!Hp #S+jmR]2mpoY]v4wD+ep]c.(PbΕ^W42#ݿ;˪v49zQ@fvF(:ˉ>;@BUْ0셔 FjX9uA _j*0Rb㊜jv $@Vgpw1O"]ceT&qGъcȾ .>o-xG cGZ;Tp:R g}@uFS&!|j<8(pŮ[?YUWjifн9:d =:*VnrS~l2e !vn7G RP෦sjYJo`ɴ.:&a[w4@HpjU91JmD 4$S:-UiU)!tQc:ncw8+SYR7AډaiG{_@ړ.+DOq p;JXM$꤫$\&` 8T1T v'qC{M)مQ0<:{]@oh=2k;5Z@SLW%QuЅk8tF*'o?Ar+LPMlMRC}S{&]kp&* u:&*|-ڝ)sT#T뷳rfz(5VV!8S5X+&طU/ GM)3k;>3P^â8R %M*YěJ! ?)/03]l[溧}1ɪGsU1֎JA{kBsGXp9=8^ouJuBKE/"L2+haЅ+4 sG$EV?&.|1%U] e/nDyG%GI1muB3JcahEӤ쫺OJuYVWzẹ-mqg1QSB';CիUFHjY4wٙ5G -CّvY]\B`#n2\00UTG]E؞\N#nAzLuQ,)T0j\H,;D q*hͫ21Q_.ȅ#kt N+t Av&|fG#歕vOyuY(Z׌z.S/37Zťz* 5P1ey8B"uװOݴQuo5Aԕc˔5Guګc{NKn]uh^ԯD:6%蹋tza`du ߀V^Ӟ*É@w#hz;9QI/9U@Sͫv7;n'uPZԩ o$;:(kHJtQ:#Y8^:{]pL9/-v fT)XtjJۢQxQ33;1U^q|1z 6v46O$ yyhf5g",̂nR _#L;C.Z5+ mtcT-vhtMmoWaPFn:,]Z溭kZTu]W]9&?8<8v@tUfd]CTu2 6Iڳhq*?7!hvGqRJ!ݞS]q&wtITrVdbU]ˉ8S\fPk14۷FpRyv:Zwf1)]ve{9rBz*~>J0 ʼnrdݡGvT- CiN"wEggȦ?7v00g¢TEF ZяQc?4ˬS0v W:;7n%NӌhC-n-zhnpLe0∌ ŀx 9 \Xꓙ+䆪 ShfJJUC %Φ nƛjEKy!@ng}5$ `߫j"aZ#4O2Gn u@3LOa 2|i{tOtPТUIZ³9uL"t8iY┘ljZZm8l#(!ɥhdNjVVz.𻌷0 :"9PT'9+Eh H?R@@buO4瘵Έo:W3BL cM'PuSo 9#Ju ?MhRuL4f8#@nyd1BRT:eğw )^-n%H5v]1MZrM5OY)S?h̽a4?4;>^Zّ#J9JMPRGz({K90*=J0 +\šFqժYncVFDii34^eגM..#ުDzSjU^-Iz1VZ;<УZ0eƪ&w L7m]rTU bJ*hͥ=­$3N/G9%;_u+DDGB4LCcCtHp*Hsdd^֪:5P;k 9h5KiWeE$X.szUDZiۭ]S#kRH\.1ê&"^E< YYJ9Z|tPECq(n8jiM LW$/ah b^jڟ| v DyӂE ns[Ŋb(T/qL2 .j)h)eqcE(KWDkeqͽ ggutV.ȞN.$N{!.YD+ zR\g碔Hoo9Jr *5j$un=P^:ԨZa:H5M" c%c@LZQ d`uC60@3RpdksҤߘԸh{4M#n|EGFRG~H8:' f=+\Wyȑwq<]dۯ@=u!M4 N9p%\rrvsudikExvk6.>rpO6yzgSr]8\M8;Vrs NmM¾da?L&\wcDfN)5Yp#]+a:wPQ1L7 pIOL+x;q5›Od.?%Οyr.eeNccS8VJaw - XSN7Z{+UڿZ9ݍ\SH?{KF{bz~2wVY{]c0amz7jG%JyHaJ^&Bi#&IG}O΁ v9]yZYZVrծ6[Ig`džwNVL.*+x L_UglPke!Ŏ!Èq9Fu̡ٔdQY^}gyٞiR)5 sNW aFBڭ. n\C$o<)wJMP5KWW^_HK4)]4{Y\{F;8׀?e:Q֜N+L<|\ޣd7&ڜ+xOU?hp℡G70JOBƌJY,8RnC EzEpm~J>o4`,0)avrO;w#k7R;(ݓu>K0퓇a|V-^p¥[o;(u$le}wy[xH٪*L-pw''k e:Si/ahkq:^+ x+3]Fbhd!45w6r݋g|QfC⨊:{^,3N.EB pUoeg(.Z<@-8vZS%Ƒ|e᮪(qQ[+H!O7{^ÂGT?}n"oa£9H\rЖܽJk)[IH/*ƪc¡X"w^iÞk1.#"l5rSp +n$#IѸdI^mLX!"u4 V$KEGBzܔlBCLdznmS-k d,ި(=ƵJg1ho]TKu¶M$#h&;py( ۽]滇 MPSLb؅W#V몢s](t2恂8Y┶[ݩ}20o|E%|Aa|:Q 6/DGt_iURb9lNh08vjvmeoaU7+VF?5[LwqpNJ Ɓ{lS28. 0B&2AѢ(jE[ǒhi2~Jc<@ >[)ݮ G.J"oDȊU}TEBm4٣vGKTu*KB11k,E@a#v XB2P%E? n7T3Gc|JS˅HKg鱠iK#*lwYqVև>3<~Y+%E^h_;Du1y®yO.W 9$v_5bZu}ྉ.\N>XEXN-]*_,Ѕ-U;1Wy&b4L5Z_\ hyM ZYz[]Ϫx~ҷB>ycxK6LC7){nu׫@.TmfҎ5Y9YiTc>Ksr{M C[!{c("1n@ͼ!"#Rɟh)JW6;.ɝ4}OmVyHZU@ +w]T%f ڀUV2Oc7hiuh*Fa`܋urMnҮYE<#ΫѯϩҽW] hS2*,NLHj6rCmwO.i4G}ځW]4_c^H\`kpJveMYoQ ;7&֜+ 6 mGtn4M\U5<`?Z8/2N];ܔ{NJ )%ݐhy}U״<#YĜh_u=oUyQD%O#Fo++n7Eo R5~nTm rWu%ٺ%kup)Bѵ0gSN^co%j-j\wgeH]scf| o5DEPTe2Q\'G_)6!NJY-((w@N楠 VTiY[w4cEnXDӵ',ëN汭?r]h&4Qe Q1}5f̈ohQN% bwf7ATZ)rTSYaCή#?4y yoDp/]f{>E7uOo2{w96ȯPkNxxGJO*o9Xy=z).|O7Twl0Jkq¼;09< բE:tGM5 h+1r䬡b`\#ipQ)B6.źٕgolc)#9l+K\͹(b0Le*vxJs 9Er{Slm3qƏ H5>J[BEL6jAeT\;ިi> W\~X&SՐuI̕\UX*>Hv ytL!bG/T)"s*W7ȫCQWo0u*@U?5*PU P SUWsB*49!j)ƗFbЯza,S |Wvd(Ȋ'QYzK^>e<{dO~ANܶ3iM%`'y'GO:T|%Wa=9rqO\ºEEЈ2E;^ ǀJnӳSiђaej*0Iܶjj 5ySiFnijoco>(l3s\۝`߉y2QWɃˠ1h9 E'|re~J?nwB8y) ĢQZIc Xh8#)~vy29]4BZ ժN E'~OS>\?e0?2BmJ DEXg)kSx(ZwIO42fnE6 -Z1 w,-Bzj%5аSf%b( >j6 =Cn>$T ʁѸqG7!Tjx5}ɮjSW՚j`eAZK-yc'RQE>H_λ9'Wn^iNPpRMja\Ţy"iWC1\R;iȩn;Xh)5J;0saMP !މMt|9c⪱&u֏ H:UTpQ|ձt9/In$B-Vb[Ho%OZ1(H[QÏGyhxܴZvZcȅ88f6S\.p̫MLo#ae!C٨vl QUrY:Q?3 5xrOf.tB< gq /Sv9ZLqVZĭ+-OtBf9584wGV;VPjT(ݺ6ę_$FF<Ӛb)CnGEorKBMKJ]FJH̀&/! @mUt&*'E`+\ ߚ38#YoSZР҅(۔7 h¼GnMigg B70jcM6V!k9S!4SQJ)E2#ܦ; ^xnX)ԫI?+Ata-Yܬ [ZhG`3Pf?UfVeJT9RoSc I_4<<&MA7nTxhR0*bBÎj":(D %>J?Jڋª?:rL8d83M#w iljW[\׉ɥ'QY*S'~JIzsM-P8ѕ P2U)TreNBP Z-gjMɪFr SAt@:) Trb` 5 B6ً(Ё{hUhR> PҧL(wZO3dA@ϢLqB_dUUUA/PL2.e L5Q ^'^xsb6kR+6ZAۍ*MSݍ9`/UdkV(/<ڢ1Q5`}/Ұ_5HPgAQGЄ\ &=pܣ7d~G ejz[#*vN8VzC 5EV&V7ghm &OTrEqۼӛJ71ߙF3pP?RhWV2Qٛ^cL0gHYo4VՆOnAV[ձp =j)2Y]Zbw O5}D怑ڛCh4Wǜx)^{zUESY([BZ,M} ҃O# {TwBJZ9Zj`Я"T$-ەhJ5s{fH*oxdgWb)xoUz21[ }+;UIηM_jX*t Z,U^o(1.ُܦNg4 phFުB4e1MPKn99*R=M VVW|noT5iq~sʳ|E[aoH+5V`*,碱]S+|wY9zJ1V%2SVy]V菚1&EZ\dNR^:H!߅EPVZyhzFA#7eʴ7?Q6  ~$欲f}+;5tzaj >j6O 'VNNV&?/G)Qʬr3Ze+-VO:#RXV[ Ty@|'棫uZq:4hNO X?|B)+zN2PJK/NNcV8]uY<,(|)XWQ7@B9ZYe/=f ̫+oF|/Fn/HGyzESz7^ϙ^bk~gjBǷTT{!(biM"VPT90qčڻ1OO(XbZCknܫ3*+KF^UuG* ?-TF+[jϜaX#>J+҅"$g^(> q3U?b9 ,T|g6[posXIb 1h ]-֌G)7!E Jd2EB<\ ]QjhT>NO IN.=Jrn^c:3]nri %GtiUQ#e66ZmNyX9WAY0-e=פ^(V QgVER `*s~OSUwtf0;~H8BѺ&VggFtYMwV[[3nLkA=A␫Py ONonRS\wO?~J3iG G GO?8;4cU۵Cԁ=SL:<ڭ:O+$(_TN*ʬRe#ZZΉ(.?5%P,FYNQ#R>JUOҦ0Sݨo 87N;&VY>AA/PS Q2@v8'v+Yv+V$^z/J3᡹T9Æ,EW0, ay8fw[~GFhF{y1ɡ7HP9>FU *kѬ' ~ lz%jzFT]+걵ˏ ُ QnxAM'9YS1Kץb; M p,Ý\PqVڽ, &WBǡw3F52R@VPzzF2>kVȯ̌;㢵W9Z] 0 FGm/<UqfS4ɫoPUjKUY|lU0o@_Q*ԭ wͥ=o܃<Pnke$tMjx /%D9^Bz*6;V+p(3vShq$z@^OC~^{h~CF^(P÷!dz BB%hu<@Fc[@Ր4A"c^@# B$P?D9hS/cϣ#dr_~D2w~^?yP*$H^J}#=G .H2="[41 c E># H"h B҂jfD!(:'ȃ#<zGC4/GG߶rz^?4ׇQKg'J#dǤh i "OX= ~w  "B@ނvM3ady-үF?F-^Kd>#F}O"^Ў0OH_!- $%Dx6 䅒:Qh cD/?D@ hwIV}#CR1ע?(HŌH< ~׿9􏰽 ؂A} R! !J=c9H b_'҄G= W? "#^'>MPD:"5I] _~W"44hdA JD jSCAQKAυ}#k?[ BrA}m G(Llz0dKΆ9&EDGQ? HHZ9у?K)BHũ'3V< DƄ['/@5$PEL^cK/D^^x"R'"Dg$l.] S'Ї Og/pڰ.uH/QJoJm= Pxka3 -[4ߠDK hp*塿g5BO6e?d,軷 w*K5/:RQFg8"W#9sW#`DH2Nҧʕ%iTȿBPOEFI@>H:45cix.J~LD@r}$%zCȗcM>ǧF/JB-\2񆔽fO1,*/9; '0ڑ#%pbi]vIb3PR|2Mr<ɾ,7Jh c!\(<4̉]TQ-ג|jD[x N>d|O@4;'bs#tɸdq'ybdcFBz< RGJDTG45^!B5D#آEaVS 1 2iC^ii[`Xc{SGd|zglߊ-b%ys|RLH&ѻ e+BHi,TDb]4L<coSh/ikw3[#SpUVHF͙;?"E,6iԾ\!]:V1͋D:ځ0DU}z0%JJd2%[NlMu*3s񂨦\#eӜ8b$҄z:Q"r4>|Ђ k W8߀HnC@?٠Y͑A(dT]*dE{|8MMc}D~uLL8"F<"V$`/CP偯kh\*8dKڄ+ R_Ȕ[1L $x(]!2źs9ӑ3jeo^t.9rj{:΍k}mJz?Izj]SkRoQ$2FzD ~2<%1這  R]Ñ ]F\s+Ӣʼn/hʧЪ.=#DVEZX\z``Sh+| d] 'f= 1e8 gب";&#w< I{y \:Ngg`6(58T gs(k]0(cU*~h^é,CY /-mW09Plbns^ܚlc5֟gߌT`c[BANEǑh(䂽RƸ8S̹LH1$BGqn(r=pbkB>~h鮬j3lix/&dɨ%Yao+TtrV."zC,@R\IRa3Bxͫ9? qQWp E=q^%!E:lA.PRKH;vrC)A.86U^x7:,lBT ]%LQ=pOBri}FU-$?fGwIƶ|flt/,h6crNCDG,dOx;J p dy%f?cglunVD0a/GLdF-\1'D&.;_G"nv3.OaHVj]1(ԋ g mċ"OSҋ!Pv?e*ĶE גcR#S](J\n$jƙZ E cz71uu`O#+0cf9թJ")tm~FQ íj2r9>|d5)xRfy9o4K^yEP#t^Qb%}, -Ce , ςRq?zb%2&_p}Dvy(f}3`_bF-0vCvAKdG~ M߰HЎb&kRJHZ;c]Qې=["N֑`2dU47{,+`i(>%8 %i2md>Gcz͒Do# F?|ָczOmlxVF/;Z {~BnM>d躀+n)vrݲJW)`f>cuН !dv5rMW1*t*K7dJbV3*4&2l*5еr+`[G㥾Pj٤*N) Q/ܶ&[.!44ւDEQLu\{Hш$ۏD$0̩&'$DbxM ˌnjV{<~tbtx`CwJITGlQp=uIH-pZ9k36 ftrwBj .7*# bB?g1"dySD& HʷL%> 66=Č;Ghi](Ww 1u%Dm]a/Qw&=T7, ؞2=9օ_&fl*"{37Ixk(o: ^ʴa)VpuL/ykDRD| )H]Hy1ݒK+#le<تT$e )FP؊wTqB%KO"[ j9'ח"'O€8wjӤbqetUIl+%)@Z\Cr,}/d. QD7vBX&ͳVM NXlʳ2T҃*'o+* VLkV; pMMtO9Yb\ȉβVt^FbR=hM(r-V\([N[hٹf|UnԄOQ-BfNkxF!jZNٴ&ZS`M1]* *k4o+|uWfjoplw/ovFУ(6X!E8PK <'ÂrWj45d 8I2U>cZc169+{î N;1 '"6Z6NȷQ}\N[r*=ʦ ar!LL !ykcj ɀ6#a,fkÙnf!II$( V>b0 {D!aq;/ٱC}j!K0N)~Vr6#N%E4" pʈ[b{%%"Z,F |5F&m*zZZ6{Y)e*BT'D?S1/UöݛV5`ݱjVQF4hWJJ#]6PE?,~"xcfl.=$g.+ÂP X!moFH\kL "Πn)]5[KF=GFBi s5J" %uv5 ,;aS<Fg G%G>k |h}Ř /d ?Bc3 /`<ODp]MU NeDl8%mYTx&<,IO#zT+搡q,_$Y5ۖd%wu(]d,͚"7>5j_0Fr[eY? B83KE飙 v6)?D-GU HrH{FJLM p4'nj?:ܫKOX# $DPBؙ#I&4 PŃY_эC Xf[,AZn:a 9D+WQ^U6Rh9FD#}qfē"vvQ`)K |fqD`9i\8@O'LwmkχbCCbpr4u^*&Sɠ+ͷ^^ѳ[i"'07Ж%ʁO'{z/mt>arfR(v&%y $9n`cܢr7lWRM9's1;ueY)l\kMH(i XOJ#=I+cJuF"Lg^veD㟭} AGdH]$fCT-p&Uvߖ$fw5>#MwlKtP^.)Uurz+OȰv%yY/p+'b~,m= $Թ,^'Õ9 b=Jh:L8`CW+HS"¸x@TYF)o &-3zʻjڱ5\lJ[(W] Ke$Wъז-hc'1>i(v3)UMH<-Jl̶KlRu&BX[j*:":iInƍ .i-װBEV"柨e6NԲ.(8L3=d58GW /yY2uI9*/g! `;o%ֳFA;-µ9uT!B|J3_BMEh0f۟G3e,"2d1Ҁ@JJ4H"U$MTo ;Pj(@yҬp5M}"DI "g% d@WǓ8̓lF`ll~qL,.;doQa&XGtpC?؎*Lwƌ |9t-&urB.Z.t,Kl$C.YE[t.r^;f0.7ܲ'aץ`6b޲IDx0Qan h#gɊ&u㦘F!8_ї P ZRD${Q)ZK(nWm '6/Ѝ|PjW6m!y[[ZRAja9sqƭ2#9-ȗx5&Q,|VLBbq;|L-+irv:`&REOj$_ə S-S@a +ґ.F zNݬ{VXQʓXI="<Ѣdkcף_qKNސ}*k wG#B(XqkIMTp4].dѐ`kQCU,i?'<$a3"Ka ld&%$ľ٧#rj+ë? ^Cx"-d\&qVEu ^i}I1:=ϬH{h/̖=#CV e XQ"8DV ח?b]z_ #|rˉU7[s|S?S-AH!);k] 0MUٴVHHS2l;y@XGp14c= #~} Q͜qB=<>ȵrd@ I@Lnu[sn1T5U Dn])2%Y$;{>Tځ&pm1}# N,%v9q.^! Fte'$pe2hi305PNd g2φ,{c^"J EynklUٓÚidĉR ͽ"40ĤL^x N}'/a;Æ>Wd%QAUc,1+%/BY[?rӝb!%2г )Kjr,YrcZq&魌arBMdzm~GERC0SDvT3Nפ*M&&mo 9}HNlY*D #jȂz'jn'#mbn} oD9̼5Ę& Ͻ@DEy ʱt>.Z5%r*ʮo'T F"sҫpqU$ut8yXpBBI*EM2ؚ=1:ߤ7,i\qy*U8*+@d`mnE{FCZh!Ĝ-N3 iɀ=mTBC"xr;2儩G#8iݷgd`1,2쏛!E?cbދYRhivOe)$Vܓm;!Rf),Z$ىEw Lk,I'x Ki 2s^gqO־LlO$&ڟԆreg,ކ/0Sdw䭯/ BE G 3G~]2,daK{e/S?A Q1܎| |! ')D&gb܏}l@y8D+. ?U7qؒZ N;lGs"bo%”7lxm p ȁL{ӁE+ײQ ZAUU5u6R)11Mi.K2^yMnq04r|XC3ʒK鋊%36uRgNH뒗!ZuN.XߦiGAEXnXz?A8/G-@\134U5_OfIө "G0?ɝ dvp5. "͒C"zf2ľ= WJey-bW+1qY^D6-q K\FEA{z0K$6+:COaJqU9 9'ےކKIC~`%kPOT90@`B΅ +N$_>$_L8ͳAu#!Fڤ rJw&!ֻ(L~2L|,/@ъ)e)G H͖E JQc==NAL'G&KGu$(ŹFV ݲ(dhL|!]yKI lV#h:+8pGp ->3K x9$,5Yǧb47J&db|g YFReH_Hz KBP/ Y:C:ES*LDIRDI,ۧ -5xw4B.ub$@:ղ}r6x"[얡3vW[z[l~%h i9 b AZ4T X2棻'n(S8-DrcC*%B_HCEH8sbat>4~fI5/ ō4m!5,hC #fPDSf29(06<h+tnʹSN-hZ$kJĆ= 䓎|tT$8n+GD}ATxZ'IW&"T$HUCP4XY|&N"x_6أQSVSH҂f; /,JWn$22E ~@܁!+bl*IM!6wou%\߳vN<+Y 4!"Y##Q=FEaGA$/%MI/O+$"#n,K"J\p'$0;qܔ0H4q !`()\;)}lyІx0nCLX03̿O?|8R[<+[dG l1 B K_w9%V NlOT= <ؼGوd)v^<,g sIiQ"!VuI|_a:k<2|,1 `ӆ1=-rV`D|V=絲ōD̰Y"}jl0s nE=Ey^ DG,I)$M _liET''8) uNAoI_"!bKؔқN8k.Ğ 8+|d,3wD?RMb-ΘFfShIwQ ,fɷ#Dވw_g=q.c+/5|{.(d+)E˪|Fȇ%pc~tѪ)ld&I - :_$s,i%. KBc˂QK`!X>$>psH#$S*Ѫx** EC?.4Qe _Bn2# ^QIcVJFWaƼZZ$Ӡa%<״b1mͩHɐ,+U-Ax<*^p(as9wFE){*tO95/ Pt0p.m7GX\@ȞQ$3Pء2T[l *~3&0DIRv.R:XaP &QNzn. $6:O^] ;[!(ED/btT 7ޔ Ҫb?W-iTE}Kȳ9F^`9 t`./R0ʵFi:.E s:\H[id^p)#HЉt~q49gw2iR?Bʘ2u ,C|ZUD 9uZ',\(|b )p\3WFl@),9_fp6(`ܒM7$T=fq -ԯOПG/04_Y(D+Unm謓 ǁ J(GZ–mL2d4`6Șt;M{µ]n5a$(TDHŸP1&L_#b8[Nv.NϠR^Ԫ0",0`Fr3Gb8)tx{Y.ŏqN76~ `F ̇ $*Wd$Aq&å$7^0ETu_Ƒ?$K"BHeI X$6'{"4j8 aJf 6YH`n$pN4)@l~m"?A¥<6}Mc){B S-i1eXvͶVK#MT4^lH< fvbWbcE.FnPrM?h*.if*+E<սq Z5c 1*23C )8>W-\߱?)W2@T>(B _6Y9x)rfhF@EV21'k2(w~G+`ie2";q^!ё| e.$.Q* |4DTCFI;Єd3*Kz]-na)e0/-ϟjމ}.ɶ-/i$ϔNWfLN`;bR%!]z&&z0#OBȫ~5nL)G00:1G>e#Upax!~{S]|VQ}`4OMb"?C^I9pRπʋ嬆cuoBJAlGTm(Оrtݎ͒\ WvU ! FN>D =l5  o"T咧$w͉EIbXѤsѦp#Uk/QUd|< 6rR(e<4qqHe[lo[( h?`G.z}ǧlǽ LN"+6P22%!?,S?-(-;#0c*=NocLTU)T؟*Ly$=ߴ.t4"EwgOvh؄$A~LKW8Vm.bC3gMS7~zb/`Z" )G#"Gǔ.T1bP],UYA 61z70ud@DS c8m1 #(%#lS??o)ޜ>A> 7k7^Thc!n["!%P/T<['==Jenj+" I2r\rff& &qc x [I; w- ]`jb[{ҬmRIDGcPBĕb9K2#0'DM}.~Co݉\ -vJpl P,q=' CЂJ$M6B-=a2# !dF%N_f=97#΂VSZ{)_&IdnPFn6M.1CqckASda36[1OW!v$rd .06CHcP2L<zZ.̠K:Zq P~hy(E4% .6 Yq#9K$fgn#ۛF9ZMD !'& @/$% T'ëdḓ&%E0<B^4 O\ľzV.6:Et{s9`֜%]Șu56aAPv}d-5NV2=ZK3q*q.dD(CQpI÷F06b aЊj &J. SmR1/"G58c'a[%k1!H+ZmGTaM >춓;2$tz@2Ƥ eeH>s6Cl>4PEұu/pNdR'@֣)}~% ϐ9+Б-ホ)V#oᅹzmJ}4f_Zhkg!kB}"$ZRZ,^E/ J{ bPJ[QQHp[w˧X|hA7JEssiwl~8D ݄bPW>I8?#=YAǔD,GrJe ׺c}d'#j#J]53wm ]N+cγ25!Ri줸;9K$lvE[6x#zAvI ?F1[ Q4@(o/FQ5cnE~f! )Q1{%(7:Vq2[&k"ޣ e!Me#D\]efNj>&Tv?bMIV#"r%2tQQITG㯀`S  w;V9KDj)CpăHE/ 7`_E-@G [̹S\d#en~bD\Q˫B ]E$&eOŐ(X]Qk^Y=FJhg> vCF^?oU? óQ8ǹ%.9:X|/4`{`q>16#9!O`+D^gF봞N;.ř$D=*@0 ̍M V_% Œ@a%˖ d:r]d8hET{ uyBYgKAG7/(btT'z/qr!JWr1Ʊ{KOiI(7+ w.w7_`klrH3)Gbm&u,cpm!X"*1zKcOBUQAZo'IJt3 ލcԨԸ(\%, Y# $>S^ğ;[wM#?7,jp.\xKNO_1-O ޚyd kCH% PD|RDlHF6]ecFc.']wx<{)yrہ=H?:BvH3mI#ZEєcVQ^Щ6,ܫ ? m8"iʤ̯<#HxY+a{KI21a"?tdE!Ud?Y{L ,ᑶFv+KB,&J2.?i*?2Mc"gL,C#8G5mQ`d)X?djL DXP)HnuL!d5-qߖni@C2Hubƅ;XdxbUJ;2!03Qz=q-\C8H?Ƕ匍$C^E-`T'ٮ.'w}={^=8D(o{VER$te%=''pQtg1'CEy.L>IZ01cy2kSjx$(`^0Aݜ1{J\DW0qv5#ĴИ>vѾAĎn<,xQ@@Hp>-`OHtCOcޯd1_gk f8@PBKC'P@?y?2qKVOHxܔ 4Y=DIܗ#ve`iK͢dg2b̓^ߍup0VpZ)`KhE{r!liv)'8P/>D%!\~f#@V*&jw$/(yDbbɵo!l=.JWJcxy% 6'$*HU`L4"W 3Nm6?dJpDom HSJgAӧB1,Ux)t8<~qkH")Ebo>i`i_ctR׀\dKŔQo | H+N0V$bl ؔsitSv,T_ɷ3I$D'Q ^AZߡ'yZdTÑ2qԞ35Zu l*$05tH x[t+GثݟC+\ e;'4e\ʖIyX z7 -)yre])E~.K$/ :jhSC&^!f)zx/`)d< GcSvז|G؅'(_(RqDeRޮIH <"[>GRf:2Q6띙Բz$s=m=8D εE蘟]n{)HeR<U7sb"nF rLАk,ga&BkQR@Q ;K#A.K\LENqB3Im5ObV38daI/3ߎL Oن ;W9&DOvFCʧO+#⬼gGw'$?_^e :`Q$*{+9ɕ0e5A&ʞ$JCBw 5 JLDJy!ߞ݁kG)L^dϓCF˒S_$|W +'vt5iJv[ ޞB?=LpY"لCN [.HTx;dߔd)s, B[`&E3IKQ3N50ooLЍS jCl=5se[Z*A ;miB^Ówi*e~sā1n+NN4Db [9fAm E͍Rdt"sYPHB4cqTM> RYC2WHK]6u1Dz/o83e:f:L&p3F$oz)N*|4f҇#0<l` ]!AIW"[PW7!U'#SPI7 ,2ǗcQ >G R2Y~/"`p"cu q2sEI҃ @=ɜ H^)m)= r "#`m?V_ gJrKIgӨ!+)<~F~Lֲ]L# oH1K='lB82D:N쏣+/%e ubK..;`k3Dؽc)aJ6d_o$~p ГKb{gq ޖ<^PNEs3TPY.rG 49\/SkhW8{eFUmgM}@6ÓSI |92F{1,ySs"HYN!vDT8!rP! oZ\>‹?O["G(d..[I M!&I#N_G0ĂޏLG?G_BFOL+,GzJ)*} y%}6^Y%F??Dѫh؇C|"̴cFBSvW =Ò94&n~Hwd|yy??BKUnwdhFL&e?D7E! `j~_F͝{u4Eq6BHD#ULFgtl6Phꅓj/Yp6Bԏ2^@A+ ?4si4ƺ6 %UjfE) LNBcOPoρ&ieC[Kԗ baOâWbm[U4 +c[Op!ɕj15ǧ2핐 B6mZimS +L*oLk;ʝ!$aP g)~~cNe K r3*#1#)EY)_G U#X$ULm+ݙW^O#%cb*n6͂7ΰY? ~ ([g8aP1{YxPf&(ܤ?N ,0Mz"ryb҅ @)D(r- N͞$)Fě^P".13/:w&Fb,OBC{hqT(]d/CD"Zp9#CyZƋ^+[*%dlDl;qE1% *} ȁQ@CX%Fp7b [D,T7B5WB?0.5F^m4鉷ѕ&[B}\VZ"77dZ̗^!Kd2Jp&!1AQaq?!8iQ߉̈CPB37`9. gı0*_SfPmþfb3X䡴:eIR!` \"(! +1S54w<07 w #]L.]Oҩcgu2y 0i2 yFbĈ0wP&&[JSU7q ۩vʷQmQmLlR^GmSq%~=LD0fk2+A+N!|A=)P[D4 &,38'10og,Iy5,xVpP23 )2QJQ9 .U08b2XjF-aD)l,KCg{8Wܹ5g.sFM|S_jLTuW2h$\[⓹f7iS7yg+ϲv;Q&n|T??i r1 6TV:3qqjRm 1*2](|14syEusnVe\( s;:!\ʅɸa0bnq-X[F4Rw8fOLqنD.DZ!ԸrrͿpKe.vysKe=ja1R8<,\l<4e(u᝽Kl7HD3S\rܬz^%670/`!bDxp-yzb8?EV]Ŀ nYŽoᜥ: Ę.7 JWGI"M@*#n4'gn6 wrKf9Uc;3|JV! pbr~%ІI+ĬqV%N+[k̮zA(4ԧP1Wr䕺Lae`S)\'z"RUR<%e_im xSlNRӏ+@Pjq9ed -ixKK`3Q:&KP ^3^ UKbD C6bR@}GJf+#]Dexy'2g$Xno&h&wΤ$"nP0[2݁[\*s 3OM͖*ƦVfqHɈ؝"wDA?hp7Os,򑨥 -kQ >[`!KkQ-JGaN,$/x93(7A=e)7lT9; hoc\ª8u)X;Qg%ìh0:yS2 0GJԪyJlH}@ږbG&7yDʰeQ1]@ -6s|A(x,bb+# "5Ro+#֧!-ub٪E/?I}i)-6oC3W3 ^XH^HzLBJo CK[.⏌jD718:M.Mo7^)5̬zgԟU4ӔךS^)[u,w21J gsJ)*"&)c=V}B1s0kc nhG U)a1.,:"&0~ 18V``f&W ,B9bEJbYSP\|j&9'{٣`=eAe ] 퇬l q?ߍrPs j|n;6DVγ,G%ܻ(ݻ:8ψgu5=K/ޜv_^*Z s -H0.hzע|{>|cy1u;3I@!c UTtfW&b3 %?2ˇvj"A `E(^@fɗgo]y^D"*-7fiWfJT3xNY)Ķ1CxONۇu}Gu TS˾ iEc=g:@6 QM=ܭ^!fߗql'$%[L%R3A/%qX.0qKrԯS,FoV"S,feMgi.a4QEgsK w0ܽ*Zv֖K ! [SlVKHtf,馣HFhC,B6,o4+( ϲc}tڀRtۦz.o_P0ԉ Re*tL% TϘTF4/N&6{=aAύBBjm<z W-yHV-?1yg+J3Ov85G$@nߘK~'0O5̥k[{9&~KC4|E[]\} ]qx}bs13#K>f)+defb=Sö0:<[^(Bv'MΗFK:M8dOUgōte=|Q!e% dhTVW%|& *|Ÿ *-)nu *mŸ.4K>U-piy.?0\`:}*4L~IEZ:-QWrr%*^ (M*`W@@Z +f.2uJju"*,q ; o0lb(5XلW1k5"(b#[ SpL~`ˍ8Ԯ"ʂ_`QchZ9 ΔvfEHx1Y- fecpAߘ %k\@²cM1, 8oaoO*˅2\ǀ&SI#HL \LH`qx{:Ժ;ԧ @=?ieJmĶhuCtQU;\SהҜSY+WgY -e)֫Tf3B]zj2fZ=K¯LM?zqwh}=/g꾍?IYe|K ➐\lQZGRs䗻`oW̰yiML xK DT.ьe"l+olc&⠊\ t9Ձ{P0$:ģ<#],[ʾe);O7Quz_NlK;R}./Fl9Ճ;+_*'f F,]e]\KW:^.%#ZlpfXBjWDo 5Eگz,>Re-GzrR\njFiI Q~cU.<#RsajV_o 77%y=1d-]o2l#uf ,6}Cj>,|m4]v_ܧ1ԧH6=b:UJ%0lee熿j L\sh^X|1hpcc'?-y9@u eq=Nr!g#;QOWs#o92[.$ -LZ,U]JeLkuj\ x9//Ԏu}_¿8s~{[^o4@ o^-d2&p^ezvgࠄ[u%e E2[wO^6}e^!+ʨg>LUD<Iؔ\J4 [<+4p@qPn6*ʳN:Ab>W4xLN|.VVɟ+af^R`R`һXzUaSǩ52\TY̡]}4p}2LՇ?6 oW0Nb>+*En|E5DZw#r>hkv_pG5V`f'DNE"cRő&010 /'GN#?hQjW-K#\%=p10HLby{q]zG-|mA!长1=6>QR;D3L(8!zZ@Omƥr u/-EEũw _p8q@(8VpYH( gh10Nss͆;)` ?k-]|Lp" 1|sOD8|v&kd3Y@LvSKEetZ*b=WbӞNTA7~&V:cwN,ՋNG25MP=5CF%EuU k[)E͸A*gˍܙ سgZ2}Fjd<է̰3*7qIJ_c1[XmJl-882N+#Z zK{0n( g`q %ov@K߹o|?{ڹi SuPqPej2DݷR|?15v9w ު_}'c4sAw{勝ތ356:cW^n_M)#SYd̠҇kM,yd˕;_JO+M(U1uUnZ=@ \ؔ*}FjZ=hBjua ƯΠ֭ 繁b9JBWR %U?;Dt)ne5K鿐cykr=7,kye+|!54Es,I1و,)( eXGʸr;K|3{njTNzhK E|]kGe74u.![m8)]W3]hf8[_T*wѷ/9a%GM/?u:pl$k) :4|YuWS쥴UΠr{qGldt1\Xk.E>O4\T~əC$U΀,s8P xB*MDqp-;ن/t#C(J:͸0xB{ꢌ? Y7 m\>y zh'!U );Q(`](ƳckٲUT/J7, JXZlJ7bibFѾCPObtc.oG@L?ZEwOI4#El-yU69/f\r7Lܹre\fC°6Įci+p~\kRZJtsJTCm9vk* I,#s]~/|3M:3 %hyaZ Kp2QaZ< b;Ԗk.Ѧ_R}ܭãx[Qp/_pKG' wf4g knilޫ$~1j{x^ERW--+g*VEVaP^ 8 gwpm`7yQkgZ T;{ޫ&8AQG7%j ~8'x: .ys, a|a+~|s)0nΛ@N D3(Byح~Z\!hG%k.0;|@׋Z^ɤaZ]X _kh7Ab~Ԩy7 it瑘>/p0ĹEK3ԗa\J֦+ٔCQ`و6^"BMuPu Gfo?>ǽCx=FNeT-O.p]s:EO*sRӷ:o_kb{ycrva[,n~^QlmmOTOf/i?:IWu>eOLOd;I TJ|X0|dlR 5nR6~y{{9f (#_ߗ?T#$jQ}Ml6}ƻؤ_CD!~%|ne肼lMNUѨBٚDTV/&#R&V O4C(ecTqjL`FLY6k?]!b1= ڻ'cyY((3ךij* v0fL?:`fǿb. ,p%j<1l|];$Һܪ+0ýr?"zu!YW{A:GBV ]w_"v.qn}mM!5`<~)1&]^gdVׂ 0/Y}?IK8[]h cbHg5]'ږ2wCר c^`;`fgUg>WUs@M1J6xC͔:G;/aM&fFakPaq/&iA=%¬: LgzL(tJ7f2Yk-X536< N5p,srB=U_25s6m0ʻfp s3O8%ıLf?lBL3wqO5*Uz`GNQQ㦿eskNe1PP^'Z|J | _5;fE0SṸ1mR"jw@3ifRpͻ兎*QڥHKr5;2jhͼL&0wT\iC/T:x(YavuS (uxb3lPӉ}*ʗiQP m9OX-.#.:J:&p12>!`Lp%y[}9ouJȀN luUS"A0w0 *(֦Qr/ɳpn͉r{YK_U1M-ĵcuO;9~W2k>a8c'7gcKXb&=$n /u(/<8a/p #mLm2CD87*@o@,iN3CV>Tz3Z Rw(&2M'/ylnb\g)/(x.N'4g: > Ysj:8AƑxL .40hz‡T/5ܭ$%q]{.X]_z&Hw ~, !UkD EL-e3}.> oϬ]wW?50]ٱyԳ(h |6|xϸ QzؗLM/ppL+R04-=iP\U}c>"\V3C_ pBpلUi e]/,˻&BUmupKH-T^@5) @+1 ]CHY_3v%9 ޗQ:{@~R2B, A fi sR{Cԯ)0"S/mh|IA9WI9_,g_W1M;SOξaG4^?lO"=xbi1ʓ&G!^v#Eg~!bڱ3{.a<刌h'V{8*. -%0OCs+LXG9>%[tj[fk-ǙlB+d e׫Dсb"49cuPJ5xmUûu6Ml<عJk֙/,+h׉\tJ ˿ I`*JE^;G$*-.Igs tµu5]>,?Qhc*HZA}]FrEsPՙ1Q0|Ɔ6콥_FV4㊹ \i[f pm+Gy)%kh-0T;˦Q 1oZN-wG90wI'H7ytJ6b ,+%@&Ժ+C`=F8}㈎ןri*뇽c嶜\XEstw"x (Py?Sϣ=4"yt'=!T:`UcNsGrV00nXwpF:<n8b_33PwTݹ}\8 JΖ; y˻iyu цlOD$+#^װ/2_Ҏ[2qAR}P=k,:E6y9럘\wv.I %[pFBJ]0GQrwu+qEJr U 5}L*NJi#`GtmLKNO3$6IH\eT׊H"Jo0's4qZ'0Rlp!p51*k3ӵ:};;܋[9{ FaD: (̪W)P85pKu9E95DNZ\ΌW\s[HJ{Eo@\K23_84F"U篃c9@d2B2y۞`ωtLmQ/&#ԾUI͝zu!}7L=Ī0l 4f6,|sQ%*o%&|k̯qk8n] ya8*Y, }4Q-P=u seAA7*,#yŋu!VcF |7KEFe;Q3J6Qѽ(xM7=U~bR ӵqRb dFy;LMٓc 2?5 %]thEcQw_iXX)y/"f7-_.[ż`X6ǒ!)z\/hUs oxTD PN9&*a"[G#tk,Gnz_s)qkvZЋHJ߬8تgF! }w/|/fav'󿄕 uc!,.Qi9ƙL*kԶY7SRgg:n.+0SU .{YKAыsdwOP6[.YAi^y˙MW#s⭜_kGJ8SbeAJgiXu xדu), E8G ɵZMkr*6)hѽëkJJCz8gGg("ԍ1F(C1rus.hZ ]_ Oh\V"޶_^~#bF&-10`H}K\?.m޶7 ߖUR{Mf=37+=0<8'ǡOz?ZC*ZŮ泆e&jw0ku;]3\l:jC26s"_7F_2<W/fكLSC pA1k[ER쏉<ްGxwU{ y0߲40Orɔm-RnU]u=RΟ%JqY/G e#Rj#q@x#MAiJAk0Asd]iؖgu>E5JX6_1B\zCjrl7ԸL!.e4ÀwB('MU>1{DSVQQ>8Oh&i+8_M[-yUlQ+,1 Ϊr5+J (/-LH\!B1swa?G;gbq-UUs/t{־+ۖ,8N9Y8JWm{TaJd0M3B ̢5U=g{ ыePEJA v˩N.KWB0fboИRl6no a-C,i*^u~1cDpf",gZ1@ܥ2_PJ5dsQy(x,0I;'tP{ =LmÚFV)1&)z_3'،>Lvg8i>Cf0^YЧޱ^|\^XzyE9?ſQwc[U NMc8tA.xDg? 5_tEm,(& y|ܳ"y3U>f93vsX.׸˔LKp]zLB0^_;Ȝc5 n /%cL}1X"O2%Koѻ@qQTrc 3Te *שv=t<@S3=;&Gn`4L!k$:erXm3ё!I&?Hd]i>3\}%W%Q& a!{!N`Mc:յo=rhb8%պe3o5T50 $+G)V4'ꛘ}9J%;9NrVw((ao3ſ51k¶.Պ@r_Gw&QY[x\F.D/ MޥWw[i^|*d(2̪|WQ9(й-Q`3gt׺jP50by *+{bӐ|ZVs1YF23bnwJ«b'yy$%n'=j*H5Fjob.ht}yf$^ib<Rm̈́/^]~k`'gU WJC(nQ^F:4dQ3CL5n9O>ꥮ6F TYO)((yN%XMґzٹHi]jmxmݫj^5C,[ xÌM(}?p+5NKNm+a+~3B$f  at4ܼEneV_kp3c9qCѧ Z͇s*M0ڔ A,PXl[ GèT3\{M7U/?I? KIxnb8f]Qs.% %f!T*CQ[J h!$+U/<fWuhw֘K1b1cpg4 R`Zq07|3iiTZ8Z650*Ԋ_  U&1El.t]S/ء2QSoYUZ3*ɂl]fhm$l,X%jQqmYELv^j_אK›t24w(9s/Tݩb jTM[c2ӂ b|M=5W{oLUn2eJ[f,|P\q:֫gålv[1&'(+*2ԑLK4z2q*CuJюK-dghmК4 W 6Ƚgs |d!fЌݏCnYx%S^ 'U}%چ<ǰ]OMX WA3]QG ,RAMk;!ׯN$՚NW^'1I7QGrj܋v30S724ߛ)52`wiaeKFvB51Cg2M)4s-#$n0KKq1*}͵Fר+bR5rxP}~OW5 gSԯ McrWnΟ]pQi`vfboU|w5xOč;>ָ;Ͷ^_ lݶOc`I2BC4{ *ˑx߾<6N0]y&'a77WW,AEUqdcl|~n71 W!@ڥ*˓x3貾2ep5ү_D1hj}/9U+˜7܁gnM̦85߄p!{ג&6Y0⨂O,K^O1n]VkB7E? m@ OrG s.faqyɝR^mp]9Be0nfۗ“ b6^VĦڻvD kG i2s8ݚ;FiWCpXÒ1u*JuQuvVBl f-7y#q֘bm+Oq{>J&Ylj׼Ki}hZ/POT 5A 8_X[AIg.>#*sCmV-;a5 xRpXA-Li C0[ 2}7f "XX9rBƜdUyDDB._jЄJWR+x">hNOxC{E3M`!q_ Q,W%tf[}5)ן+C}L  tVFKs]{pC.5\,ʁ5 Cgm&TK0vmcs9źPH0JXP:pA^, :JPAe؊.YuUPl|P#$nd4V2ݯ(&b \yopqw9 rަSP+7uTˉEsWFs4*jm"xjg7 _ Bbc-%Øw:`pigV vMsDXe^k,rA:Q' e~' nm(ܡyqA? %/9`bQm97~#Li{P-q[yj%ܟb5gJeib'4pSGYe/#z|a@nDlLJM`8?Dr;N0"f-WXa=s\9zD-3>^ee4Q1aٽSԽB/AM w1 NӚg8Q ߽O-Ө W.i%iZǗ@&YXCQ1y0iEZ?ͻB)kײU1$U8Y|&![0̦?kWkd5bj^?M"TFvn3 -2:mGGdCf6kn0߸z-hMqsWӟ,"MԱ# kg`Da|A[u .9j&pҟzjj-ڱ1ݶMV}l'|S:-Xze13#x) =mL0I%Y ej$)naGqSbPޛrgugdQBiBզ_vǍn3e2MԴ^.@T7׹Ft9adt㴌dC X[^`GH]UOqf]3Q v_p5,1Pv4ƲaW-p0g0oXǘUj`#> P,v c2?%l*蕠97[k]T`l,/19y(%%6֙\jmaQc?xfDƣInj!-j,Ի&m_ߝD(ݠLM[V*?r T9%iٌyNO{1r*}ҡfHIRMàs7OR73 "VE(;^Pb3s0[ꔚ|^>Coe*,5L,R4-Ji㩑%_ܵ;KԹe ]e͵)y)Y:^PnQ*qZq^o(2Gn,=Z;dFa^ =7|Fޜ vW;.eqDn @iUk̶U;="rN@=>mXCv Q@AJ:}Lfغ9%^.[hGt" o,84 V< cXb֡{ЮI~P38uYO 1Y]ϴ @|L| \6 ]%Mݿoh}/ܻ=ҦoNC-+T2 M gzkqA>l=*؋ə*!KP@+Q5BCSOQsS9@eVt!u'rqʗ߈:c)C:t5c/raJGMϳT~d9<=Zjrn7*@9*' Pe:_>vOl,vq#^`->T'xjS&Hxh߈˶$K%Kf+Lj.Rr<17İ㍘+=p\+VשEo矈g:[< ]Zd 5N-{3P:._2%+bj\^xE ,Qn L`^7sO!Mi*n+U48VaY&6& ?!%lSB^i9ElwPn4_ac7~(R3paYۥbDG'q X{1{}B ;.72E ! 9Q,K*)x~OwHiSpk핸{z26q&7*(Er*%f|LH/Fޕ[*hZ4E2W'7x-eapgs1b pœ؎Q=յ_'oTU@lj↹|ע_ʑ͋:EgTG <*^8#wV2D=J떰--lv aPV&Ήe%dū7 ?Px;enn0de9KӔY3r ww~Ul~+s~@OApBþ5Ɓ:lra5,Nq/M,+*'9}A%/Лoԧ~yemc2ԁRSJq JcF+ QT"0kNse!9@Y'Cz:(]0.ᄹ6+4buTmx|f^-a$b }5F.0?NnWʺ'/Z9~`!R~J||1Dޗ>ë=Q9>OzRҰ(&PUA _pLvY3Ӊ^߫ nP.j9?,> ^c~[yKYy$맀K^s}Y#DnrWUs65j Y]uC?4.0GGaVJQnpw+Ν)>EkFe/K?pq_1}"r~% ߄Mڷfpƍl nRӠr2ưۘ gOҰZQkAF.md&2zr v:֟cWE~sQKnV >~2" x#e֙1Cv%eΪRu\ѼB/*E.\ƆޠcUϙGᙧngN|Oè<=EM ҒK˻ /*P hjY\˱E%W&'f߾q/ĠcXFkVOy} ??yKĠ: .10Z8*`r^Wv2ܪ-:HqyFi/ҙ|5H?$O{9}]Qx:<]Ts}(>:~_sCcVaꙻ6ICYΖؼǕo&*bO;}6bex?p?s PM%w4|b(sdyw0bIZ;Eh^lvy-1LNqZvܗ4  ÏChQs0P !a_t:Ҟ -/6!6biJe92fk ;Q$эа 5̩(vN ;N AwPf!m/cA`Aċe׭%M%Bgs2,CMҺN,]Dx<1|ꬫTxǾ׸^MkY5*e:{zB e%U&}N哺GF EjX_ɏ4~j䃠&b1z%q5FJ.z_ÃNټ>"1p}Gx6 M0yZx_8>>{V51J#п$AɩE_%4aop@v3 1ec.L UF߄FA8Q7(Kڍeu)'W]V.EJKOP8XGD/gy:*[^\Y><[9{t@4_0wb2XGJR:sR&6tY#,SK U4젙ETܷ:S _FRJY2:Fd.U̿XU,XkO wpQb;z]6^5|F%:%ǩu^$qxW3s,`/ HusC c-G)/7;v =؍9VgO]»b|J@~e=d/WƎ/ Un6J>c܉W a@&t QV) Q$0~A?}[ >Okچ1Og:%n.jA H\¦#Wg*|ZQM?<39_̼Zeҩ!)L[1 DV8~cbT<*8V?Po`y MENe4s O>ٺ(@wBR~i;(^@z砊|2(A+VEAܶuR=XfeBr31E Y)r,%W?/>H;s@\Oyq<55,GdCZ 0Wģ;*AZ0jy^] K{3GmwdGyߔih+v-}K<(}sYosS˘AV]h:!|, 9tE*F%-\JG0}k¶es"x 8hQfnX19ԧ1]_/4QKa2|wX$'M0DGC^nSS~rdd͝8|s|pf636>Z%m0ǎR q)~0H+݆go/UKyD*TJ 2, ""1N h] %kF*puƱ$0 S֏9kň}.sFt_qÖndb DN1+#?lq7+<Ái\7%@1.N dsq̳DX=RQ9AN@򹀛Mo.|Ŵékn}!y\K{O,\^x!7ηpl\0sLu[\0N[j3ģ__D2k4[C'vr9wx=F Xz}g16wZCVB/۞Cr|H.5O̺a6eVtdg+j9fW~ 2¾/$#HDQN6?V>*KttS2WP/C qm<OS8),N%3M`9XKtH0&iPNtpPl~#` ]8T$>p6uw 0fo_d"^|(Z "T=TeZ6^:TmUVmz"Ǹ*f45s]ոH;ekJMW=eUjm+Q* yX>=xo'KCYy`.|v?dnOrmqp)6Ӈ;/yn|1o̮2X?2]=Զ]m JG^:z[8et9H? \1S<}AiF|$RGPYOu 9i4\zLd7>|n˻ x!vQR3Rnտ$`~kZ J@fiy4M] 9Hwb"]>.WPLg5Sp:F6f2BƖA 5Y3|_ :V<"FOl|Al;y՗`|c8y z/99wRnBR}zZJ7࿹b[>@gpMazukv iX4[kV8h@7o'^ eA< !# 3C:6 EHŝkANN41{D9yޠ1Mz%XcurZC癆otטԱLL fb{+"ꗈ?>s/LS,Ubvݶ[%ݽM? (bJŵ;V(6.؊Pw)ApK - eg^got;7kG8 Z7`wo|JԀritQM]=44/[ZіMo zp9 ˪3`{> o9 w=iHaoPOJAN_%chۊ7{}3q0 ]BZ,2 i>r̘0W>mRܥ81N8Kr,m\ aeX2*l".Vba3p6p~'P'X̲/ Ϛ1Rq }={ }&*O]J%"rԖ1H/A|x9 o4‚(Hǔ}Oo9 'W jWoϗ8 ]0f_șNˎPf6 Yj7#Ǜ_=֢{cSg+Bf ?iLi``,s-oDVDW%P)J 52GB?qGM>窢ۻad_?X1^+CS{ާ+zJ#øLs/Ͳ1M t^bL&#.L~d`GWpDœ0B .9;MS87 Ǟ/ V߄O3-x'10(MC6L<TQ54/tk+Re;QNҚc1b+|P8rӚȧʍ/eoq G--e3}*oAft[\1\S17z8x)5)_ 9\Vy(=aW4z9JbLɼ^cEO4M,1g O0oD3Xĥ+*~ T30.fK€'QY/.㲧}\2!"1 2A#034BQ$DaCqRaC܏rc9cgc%1 _uO1EKCGϠz\ CB(r 7bzE\~#VQ_hÎBS[Phkoc=KV4ǸpiaYT~(6S{5WHk7<_,|k-SUc=4@EVy?"MO13MeW,G?*!ghW_iN-1oz7]|~QK/?'JG1g?B?xCrOxk~qs_=)___ǬBկ{}#'_7?T߸o?WϠr'zGT[@CEwHTߴ>O*o܇!~(Կ(TC4=#r4!!P+*(MJ_ђІZ]k-t$ ir Inm&+餯zWzFtSM*jj#_DhYѦ59J= W Bٯ_DkھھZ0l34- lDrWѽ}#Wҽ}$-G57(?= ;;Rzk뺲Փ[֪l2QVk;VMd&Whu HK qRj1G/W0ɦ@Xu%@.;e)L HVy4Mm[sɭCqCji}'OǢG1Bn+=}טCk(OsW1Q\J6\@ĐA䩾h zoqU}Ey??~`U8}PZ"j1oq%pspƭP'Wa70@ MqSYŲgO1" ٔL&O1lrX_*I9fA)X -?)b>(s{9EuBGhAO5h'ڱQj-0ޞ!(ոhA$lh_u7=IӶƭHYfKY/ iCQ 6 "l#]TҘ]xX i'X{hz9N%Ҳм2/2C XEp3FlvLjFIpji>|P}" 6N(ѥVT_j1Xcz]O!>(F2 :yGQSVߴow,I^AojAFA)mXڤnLfiw~O&Vk&ElY Po2&c 5c `]öޏ{/BE:^榸[/X>boo*Oh riz``B`5iamW򄀭Ê a'x'JՌbÙ|i44;jS d9] bYɧ yW(r>KvѮ(jFDk/_4Q V+c-4(oP&ynXQՄhH,gG5ӂnԢX|^,هAZ%+g*cXkGZGss>m3śYK jE<= 6"O İ 4pNi$*g]|ֽ'%T19F/`vʴ;,ɡE#Q:5;dXcRR!u1Y]G .9$tz>ի⧅_zX0M(\ dXӵȦE`P`{'{WGZIMCɺmIm,M,qY‡8mxB*M_NhVS.`Eã_5~1VԒá!4tr7ҌUJl $M 5OGY e}K$ሌ2$O bk #u7e!PULbtGu.A)$lF{5H$I1WC̫Wq*BJTi\0/nRQԋ{Xd93Ė #HIqzjKh WB.E6ƿQ&cYi_QKQWFwԿ&*dl") (vڎ~JgDWꤷid?h%6-R4ѽGmlmS[,E63w-^u5m}CQβ#;\D˩-U/+2TA`Tꗗր+i(Vtų\;TѳLNpǥjfП[{⬝xl:;\0w j?*)cW0(U*ӫ>[{gq\`˨LmKnǘ$We\m\E`h2w#xm5Vt 3RLX2(z3_ձ( M]w[Iw@V8~}<%Ϡ22AپՍ^I[*t͔=0ʛkV/ X#'yVDf)1YcnynnNS\3a"A/$(Uel#]MujXwᒐ#9q)ЩrQcQTе̐<3O1XrQZ8 ~\R[XP_7Ӓ!5,S":tuH5v<m' 5AOE'Iݣz$\E|U ( ý]~CsBX46".W$ɪk:<-ȍ+z9XڱKBDW> FQWLLj5a=JE%XH4x6棂%Pc4."F%+x:{1(1^(d>+qi nB@ڎ3#J髄U 琬b‚uM鄃K4atHX_82[,{f$,2Jpjqb9W kNWIIDmWMK_5n1 յ mDoN@TlЌբ=!WaY5 _i4-rmoV2<|Qur5^ݪ[_ju)!nh_5lmMGu1 B9 |,[2hh9B">yZp''|sEkQ[PCZ0 9b5 +Y5YNdd|Wnu2=Շ>Dl٨h›VHkN!luMfZڼ[RmsneEB4B+V8HOjo]ɊI7VlV1Gru*g\-]NѨ =Uu ]7p OlD:&$bCs GD#iU r7Mq)Qoa3[]#Zc( qх{ Oq9[ eֲHLJvڇluDPbk=*HH* ċ9h2HثhQmCLhq[\&o8EV!B&&HC c+O.h sSs^Ȼ9%^#۹Ek$~k 9lԐ] #@6J;s$ hJ2$΂J1* ܚU<3C)j ;%[vi% ly殈.UÏ 򸧆4%iBhSEZe3wfj飱ɒick-7={ dJSZf1yV21WqkF ໊K4Ht uSHiZ{gMMdd/jƆfH8tFӝCGekREԶ[bm_۷F&' J')Mq}Msۖ18w. jj*h to:h[MmKNY4U4F7ZljSz=+h9ky'ZqVtPX_867־h 1+fo_ֶnr'c5FSj]P[ԃ瞪M IW`ՁW|3TA%adžP|j^+ƗjTqhƓJ3MK+M _ 97"Ŵ~Q+֊lP C `j m[rچ3RQX3+j0)>)+j QP6Qbf ]2t+Cö`V+M0ޣ@NkVՁX+Wݫ 0Ċ2>p|<nT& +Q梷ݺI #{Nqt`Q V:N£)Pݠz9&3]. lzi9F%w +IwXޱۖOo)1HO<(0>[xFԃJJje&kyMo*CB;@'\zy:c5yd +:ErR&w88'WoL-lŭ#uK4LzbfK5>ʹq yԵtQdYڳR(r5-i,t”?9j9hrh(QG:@5W8*x* >AE jǾ 'KYΪYR?ȦAr-EaiDQ FW9mEm`M+E>!PF(pWdv#IχhXGG| sKáɰ;6Qm/xgcָ/5])wюC?Eu;" MK 58  |DL"vԫ{‰Vj6pbеARG(IhGm"S+я墋t17َ@ 9f/LmUg}am";b648|??Ki-LR|"WH8|8lj ķvJ=w¨ȬzvHSI3\K2 vޝ2L|M槊9*oqo)FYb9HﭤExd^岴5uvt5\{t)sc m9Kq i~!p[48U}̼BEK;X~ R)WrvK_.Cfj3=;L-ԏ,Щ.T9OƠcOsimM*~Hf[Bh[7leMIîs3/Csg H=9]9*ᮛ 1OH6<4˳lJ`ıyDqieS1'H݅ [fxxU413P]JA?ڮ $SF[|J*;qklKE衺C"0k#/s7hQq]K폅r+;H(EڥN~#h<7TdtJșiRZ^Y|IujI [ݜw 孤zk RgaVQ"QⰨrtHj1V@ `T1ˀhʟ\N,{jvuu c[A"PZ1 9S{1ߏ#^rxr:[˝)sl;akx>IaLGSp`:[RR1YSNk ç&|i%iYm=wYaC&Ug$˨a+B^Z@T8crľ7%Uw7󬌋Wn,86rxg{{8!m$'Kڿړĭ%qG`upj{Ñhp˖sKRqV 7y9p|` %#U!:s*0j{%|-4b'[M xփ7P.dve~VhaRp8ዝFK*Tڵm)G^h'm8uȱUcOM[ J Ȥ 6v?AoMaoRA;bhNk/ⴐ+ok <fVA IQf(+r1Fq*aN;d%F277 =JKWr)e4ɬd$uޏ@i7 7i@hU J]X꧂km  wʾh’Eݠx6"B$A;dhT0۝,/ZZE8]de88+Um8+Vs,+ޓF xΒJѿQ6{bhSG{j';\q+C&hbZC}o!Q;-q?CXH8N*޿) lmENƺpbkiU\m/RQ 8؝p h4d @ "{ H{r7M2嗼/Ê>w# O]4xq_\bqW*czݒ1R(F񚼒"V荅썺182 229%?5}TM-#q4Ng' K?SGv<ޞmMaf.^g81aSZI5l 8KJ,qUai8J6qFBJ72}m bP,yi{.>K7jpآĒvE *ᡃ\%Tjs%K،")3 |;j{EqrQ*z\f)aoyQ(; ӂj;Kg&xlɓh6FR:S ]Iom0քmM2s/ :\:|VfB ,\%*i4Ekm,":u\q[*rwΑ構G?nWjt7R`t[q]=,L2@5-361],q{W\x8 0RU#+U_ S5Wu S`|3]E+/'On4dB(6RsH6G|62"҃s]<-" :hl%?Z~/.&EtNR%~$!16hj܆C*4h sR<Dž޸^uF4is <ԭt~(&sZraYG{_Z3]zSuN%rӋ@WK"qZYV5'b6٩o"N1ח7CM,)F;WMZ@,#ڒ3B}Bv.RآhMBg+)ݕ.kQ+W|3P2ĒhHs[lH}U^m̽Ico;f2yFS?ډy ]AY$wOeV=32E2JNKb]b[ RJlH(椊4]&5A4E#}WDSO>t2=h_$,'-VY kص(5;Mơ7qWOs'8f'>hpג!{{R=5ߜ״yz8m:AAhv~Zu[9Q#beңv X2&Ϡɀ[Z"7 0͗]d^+vEQe](Ƿ2F⬤vmC`ᗲ|<6<fnjd=<z! K1cǙ1c61};Lȯ ̞;~:wn5f_*Gj;Or++{Shm8\Qp\VRĤ[z~j⧁hbV{?b0Z{vE)}'L Z],nD?ә*"DT䋵"*>HWJ]E[yx:Y4|0|4"j0ǩOJ6}U㴲ˑR#s0#?yunpbWKE9V0dFxԊzK\6Ь?zpRɅ,oA֛klsFaWv:_Kw.XQJT>%s8\/ T]w=̱ [IOB+FWGX*~}Q%.̲D:iCO4sⱃ=ygF8q>J*hfN1ԸB)nm<-%ْӴR.Tj:JPԳ2-dwĢvד&Gl#[膦ȅyD;"}c/56DD\s QQ5Eٱi]mhB2̝!o]%yXRtⱹaBabW[sD? yGu 䥙`R 䭃e+ ij2rrŸ=]̬haijuOB%\ǝN㸬bsȰZ ahwK$=h/r>:$m,uzUaz!dn^Eg60첞Py_g:vl1[F u̱am3,9cC^\XDEUĽ :Z ^Au4^w$^ߧd]]䵬ћthgAߣd2˪pֆ Zbf5aG/)1OF^:uLDV"= +bVܗ2*tq'<'Gj)n!tI]XΆ`xYo׸Km0Ց,1Y2ER㹒⶗DRƌ9괝cѴi':)1؂bNghYvY-yХijB7RM֋J76默FTX7.E"1х<̱UE-d*hر:ws53:vSrfGv`Iuўte_;J}zjVe+7ˣ灘XS;kTy^:JK cw0ǃjB/2sUzټ޾f,&i\~VJ)T7*3+q)h;0"/6fYuݺ8龄w;8+nl:n|OUYDU*CB,D^B+r1w3;*B"ЬW&&.Z,|HER"y#W"#.YN*ZJP O9GuB;"1)7r"&DEq*JHEd'H|t#qWE55W1wz3|M|v244]fCȈ<IY!bʴ$!!ezȥs z܇"Bou,~DDDDY,v""!"|&YiWv^CĕM,/ r$GO"Wb+M쌹3lp̖9:^φZ-пd,)DDb'!pK=K*\vGwK<_W?4>_@E5X7]}wPQ>RMإGCFɚCOAs>>G'??_P>(t> CGg?/ >T}WC\5'X돤UG_5>?u~Pߛ{̃*?\?B?j:QG|}C!C\m?>Fu>Bj/(}GUQuk}gئI>PߜVhx?c=G' ~V~ZoV?i:|taO>忛ʵXqZ?txAGzQvCKgI?2G:ߜ(~Q~1:?+0PW|R9'V=>?t/$?=wR[һ]ĮP 㺜YWJ%wֻ]P%<{E 5kW}{԰+;rWjO^W5MzQ*دQ^+Q\sVBWZ Fyn[: OT{Zi"g<#Ҵ{AOӵ>IMH̀hQWK"oIjHMHR4X 2绅+6Zw#Uyn渱jhGsCi&imږ YCƐMggUOCCfpS'h9YF4n5NFwGZ=E$`KĹb>:VJzʕp}j2n^ D{ ݒ9۫mGJE2jWrb\8Vj+kDjMrUk%kj}'@$w&z:nB3B.hC )>cJwv՜S*Et꿗?n#?ݺk*i'Aә5lb:ɪ]M5y"^([ h8y%ڎ@C _V'cvK?x[_t u~# w-b k$9vDr^?jLtc7Hv9as&{uNeS}5=|QkkeX XKc4|Wy;}2mYc/>4?lgtM⯊?D>Ajb*4*fab:c m`XEMi{?=*GyVhq_Y=GK>YDž=Ei>Ţ13SGE]~vmmɐ2ƃAGն {_s B\/aÌkɡ江f |Po[KH>;fi5(UW_ӚxՔLtO|k5qi?&j{7iTu$WKљ0:y XEۇvq42-d r3VUHs?Y(h? TTm >J(SD稣OWUj ^/n9S!~:#/>DyLap' ĵ{b\ӊ_ n(Sv ߅FRӻ2 MXU1+[y Srۮ"Et;\砫qM5Q䤧Ӏb_P}4k$Ҷ*e1l|Ґ5q/u)S"ksׁT+vя*K {oh:U5ɥ]V7"dvǓ#! c6ǩElQzE8JJZ+m/5o*aeuL5M5o$@MѨK,PH!ۊZ9Ya<Hl~Qa&>~i qJ sV^g?Pqudc2H܊@^9AɬPQՄm2^(.濶8U}܃F2H]F9Q[wC ne #G&g烊ChV: [XB%VkI,;sn.q(RSű.o߳଄Udmd&AoHf+v7{Xj/.޷IL&U^*ӔcC yvfr9ubdCsk# 2M&Է^Kx."d ㏌P5P5C8hk4Ԧ_@vgU2[;~>Fr =Ҷ[{j[V Wz̻@|=YNDiKfÐu)ⴘ w[Sh-[qJhnkL2 <g4M5[Qlw/RsR[$+2 yͥ2Ƕd p3ԑs_m!RU{=>*ˈ>⭏b 1x5j)l]%oKKc[ kE}\› .mݰG4=x旮Ao+ehjrhqDgFJE+ZY@l-i-i!j !WWPfsW2mWFi Ȯ3@nGmaj>^l]vĖn'[yj oC)B4[wKOю1:ʊqk׊o=@n)ayeړkwiZE{Q.!15ќC#q\x `Z{ۈ,S`E:m>Xic,Q R[*-xqUwN+`~qEh%=xm5@VAI-W1J|Wx)(4'-2ޔ*XsFL׃P Xo$<, "vצt *XdmFkiZN@ rG'*ⶭ(-UZbB㕻kkn85eI >Vh5G$e^M/OFՇ7fPWZV=NkPhTm"Zo+Zsl3E%9X֕g-T!9/ &FnuiJb5eu9ӣE#n[ .Gk禒&tur ҠhvҬqg iՏ۞LKIr,pU5]7ץ\Eqizh`R?i8)&.uq y18x^9ҿi2/-n_3J%8)sǨ\ʒ$2(0V}l;~`+pI 5 i"9ʦUKH`WR5᝔qD,"+Qm\ߕڠ(jIۑ=475 r&hbgeՄqH*`7_jįHH4Xrֈ}Ȓ:-+݊UoNqI4I HsbsR> f[Rl낵Z&݁MX -W+b)-Ӫն5ݻ.seڲ@5q?>bi-Z+Z-+Yj2ZI_Y;Yd}>9ɠ}r $F0-g6n嶟Q[/2\cy ؁85 26D*SdűK,_c]țNY|g|UkMRvB!m_XX.ALWlǐvvW#BYbX曚Ռ<^vM[?IAAz#ի#&UbI\S"hQnXm6ҫ!k}݉Z&q؛5I;PIte#TdgqX3V>Unϻ%kѤB <LgWw/srys^+aKYHz 㺻-=-]m {{jB+\ma%r*9}Ж!31 v!c5XYK$۔k$Jۊ"vVy@WQ6Hո Wws\}=; M3§6RB7-q#f ;8)+zq^ݼ3[uj)a#xsj#ԲCVڸVT:==@*Syg-7ګVvbV̬mZK]tY:RN\ǿhq\P.L;v;-gp*-:Kx",W i![Hb~f1Ѐ+W[-..;1$Mݙ!n4> 1Y-<>1Cxk0_5e#6$֡j`jpAlc(T!Z@ ݓZM#q$f~qrd:/ؠk'"N`9wFJ-[aliAQKwh^1Cť5ڿI [!W_wsY`*B*,˴vYlcsNq2&X`ulq;P9x3PD[Hȁ2iɨKHm X5asQ>ߝ-! M5 x&ώ5QhջzAaRů = ρCGSy(MF "~#.T.%LBMa8ihKYIxo5je~vWm]SX4GF)OHk0q2ɭⳊ8&:tד>+pV/R ]T$p˶hct0YE$1O#J~۩1ۯ5kqcUeVJ?@BE`Uֲr'^k'=Բ.+vY";c@o]-ndiM+̋Gkn 0()dx7+$|:MԸJ# )lu(B4܊@{y;i4 [P ~=Ry⍽,җ^*(үm*[/oT~8/%r±=3Ts"ZgNSF⏵鹧j/ƗviHa(Pn85ך [E/a!sP>(1/Y]^ɽ-A{ۋkM<@k@88op@w47siFj4E DtoE8ldK5V*m^*OzmZصG5O& Fh7)FE|TQH={( #5)|tmZ(p6 PE,l:l|Qjm_gu@#z/>F>v1J3[X8 ;$рYDm.r`[ v{&/NeSYCf-̲[bѮ@Xg%J?uQCKCQ|-xFh%CKj\(VyhX2GizixD~s)2# H+$F'ߊS[CSBQ3C8f%G9o5 #mq0ոP4 C&9%k*D)[2ΖN +q¶&r.+(鳅nr*{{T"HUh9]n }Vy4(5"k\SLK5~jIR1K,y#v 5݆k|j.Q{q턳e:"Mñ= i>gt z/(#m&LԞ(d%^[6h\;U5,|ZaRx> `f<5Yȡ3A"息w-%i͹< h--m-Jۓ4+n-Ρ$mRڌVo#+IK%Kj8W5n5Bќ.nG9nnc> *'M`;^V?j=T((^8$! F/Y4ݾr+hxC5Ed1D渦u+W|PNվN6#*@1X<*qJ=1c>ik㏊\+5i bi \△Bf1^J\+FZkq_;6ҕ;c 6j|T'b$W\{fBwTwuj1%W@m0`mEzHEF9+56)҅il 8@@KPmUk, @il_*(+/h g݁ބ.#M=^ukB[(+yi8KKZ_Nj3o"WQꉌW074oCSK74.1mI1BHɝco]sIMb7x5L{ʳr3xFkߊIp jq3j ƈgVpː.xup5iGW)598#=W2ɐ?O#"%2 B|Ws59G&ۚ}Fp ;_MK}(90ޤs s=}K]%N 0zv6oO$b-<;6W b;YIwvQ- !o=j&Kw?ϭf휘.d08M0o>RsR1p܀IC>hLȼT`>jPqSm36{.88iSڞU5)OJ)UԞ'\!pu&#ɃԮg#;6Ӻq.(.%*_j>+"Z*F2yv.IRY6^Ҧ>Nu.ѐ`[JѽCv*cr $ƧxEvyJиG\ԧ'n+e-l?{s$1)MF55H cV66.#D͚ `:w` sGkymf0JZkyVK&+2q*da^9hjm2L^d\2\7r29æk=+Ti*& .p-b^p6bDdB +/oyuhUOMF oEuq h$Z(kfjRPP;E4}6>jC^,YDu+`05TԶ +2KQ%LG9MDvcnX&u<j⭻Me\mI'EAtPpK9&F(6<H.@ETrhǵo8nOp=+)PG6vՍ+ iO-FW9d@iB 'iy+ 1⌐VFU k.ڴYՖN W.*9e+DsFeZ$-hI5Ex,g:J.]c4ZE ^q-s#.w&+ T+܃[*o~6/lVRyL F (3S6_^{44xMZ@=+1A{h$/ f-iKb8"YƑp|smbw+#Pckz,MDH|Ԏ.pRKTkKeʧTn8W+.#K% P~yE$X֯5=t'nG͚KuyQv`\EOIh׹ŃKy$ɊkPb>ne1ZuR8h g0dHef'hsIcIﵸYOmR'E$})߷ Z^K5fۘ^h Mjశjq\$r =)e$фծ:FxyJ@!mKY]Z,#wWnԻs^52mw2Ia#liw(įĝ_\<&E3\RIm4d u'M.lw=X4|MX$i'vCfj}R)mu)kt tjMZԜcym(pD\qf[$"fGIqmK$< fT>MRЯ+sRL2֩?A*2h'v6p{q!ԷF^fԥRUUDq#y P0o+fN&k`z|TqQH5>2 CbX@ԇ8u*fS=TkgeG@oV'c1)ӮJv5p F\"%߻t{ҠwC xncG8(勵$bS^{eM^b=1~=Mk& Qidz -mTFSaO_NWuOr[I#gzY[ս)i 8'C7ע<,J9LF nOSQ$!%:?(B!+RB!B! hBQrţ$Z=S1Ŀ8ۢu쟳 6l~M Vohx]ND+-P_dxԽ?[|GXw䆍1 *ڨj(h{EՍۥB~Q;x#Un! ~Ό˻auJN"eݞp.i{z<܁?r!{y Hj\{hpE7mV*(aU7"^}_;W-6Ea5cgSě)yK8fȆ!IuLGޮeUtV͈k:~Z :ɏTtc⸩*ET=;uTZ)bHȺP .U瞫+۸=JIjެE xXz&y2Z:;["\C*_N**PNFM\Tч:qGEvv',`垈c]6 %bnlcJ[I 2Qª/M0TrġmtErq [r+:BrTC73\UB 70]rfN{>:֔O/AӍpԃFK_" Q~ڔ"1xl`v6k(DUR6faXTB.[gm|D^N|X> X:5^O +B:L7ft1RtBӲ?E']ܮ(kqf(wt/YY2K{̡KD:EiCA[>a+=ͅaT3mNQPuY|49C,1UE];.4i`s .ngy+1QTǁd;!̸aмF^I3bУ>I`͞e]$]LĮo%T&*-6hWqI z>:<ΌKoQQ JK,1śiܶd!q2%Hx%P]Yb+Gfpu|^Y8ci% &OB3VKZFF K+ݖk>|Vp*.'QvYp>Q;URlN%7v"SGD\X^YU٪ XȵZ)QQuR}~eʹ" u03Jmê~&+}RW7D2Wt|Li5" -ht jTt-W.2-*W \u*JJ K/_NYװ+r^LbK|1ׁ/)dΫ wE*WNZWJ $~7ZcNL{5mPeĽ =ɼ/2"!Ճb\Z"#}U/F]ެAY"nYL5lu9bjdNÿQm<#s'EV"bg2&6"J~e/,rӺܰGd3}ي[&Qܞ]G:͜ \Lج/sVc[G:z/[\NLbJ-=BYFwSN#wz=G-=LycdTťVXHKóӾպZW!eU!uT^Ƭn!U2:5(:FP˕Ъ_lZTw^&SӷqZ\.&3tȪVǛf5^oa|SCut߻+;G⡝f7- 7qEQt/I|I҂RtṀa1EWc'G\?Ѿtf=ydTK ^"Wx"fku3y "θ+D*MW]W :0o7]cw$nYr^Եzqޕb3.Em+ˬ֤YϑنЩ%bmmD)CT_=Zݻ+yyֵ~.LU\jEU7ɘ*Pu6U~ȇ-'[u7~۪YWW݇Y;L]f]Bq}R2DD HlHt1Z3DE>B71^xisCwZn{Oxu^ `B91omɼѾMy71%FҼжUDCFV>ioo*[O! |t#&rz62"!Xe >%y4!RBЧQÓ= fVY~:I!KJJcC+܊m?FOfXu'(Ȇ1ǻo=NWܡ!萘yV/_"0VEc2I]IdSeaq,wrU0絽gb"Хs%&-*jm*lV/%; Hդ%]$yR_[x#ϟqPb9,C0DYBVMʼ/ͬ#n3Ģ/'q3$+r2rb¢]DXbSWȇ%:f4Eai+sF)\CzKw. Lu!֢1Јeڒ,1Գ361ݡE/5$C!)M=SJNHRB+dT<wܴB5,y,rwE:|1 *lee$,hj_|t>NUb~ I{>cegVLyHjb>RBF?ȇT!d擼8ǟ_aXǖldx"$ySK23i2'b! 'FvTlqh~?2ydGC,S;f5y,⨯Ȥ^HC&!1AQaq?{IxkMF4:!Z#\I2x'dVkQuA#h>dV[\W/B M#%HZ>'wPvTY.l 6r[- xu+sy1)a3vceZ:x"Sm 2RY~P4-(hS-+B]_wR-(#؏jh4x+LOF#e3p=i-xmTTK:IZJ27b2*7 /Kq;:3k]PTyzT̽ /_-#&IȴA%Ͷf͢q ?\l@['>^k{/#4 LoT} )Jg !$JNkpG_1iC!oBES `N/O[ (2n!kA:ōO9H]KA/RQY YJ귂8.\xjV2:rZhy԰_~ >ȩe$|̔ % _7|0cԘ-KYrERqdu;q7t1@Mv appT9.ISB@R fQIݎ`+N#0a%.QNvVE-TK^E FSS2T!g[ &a/eT\qoHB+Vxϸ*4C*7p O:|R_tR<ǡMrp/k/|YQ,;Qf.8EV**2Pnʸiy헔g @|GRalar˸p1NqCK7P@ $*)RT\ܵXJeԺ틣$5Խ:TPU *_"G; *(#  t՗e/r_,J2uR8N{RO5Q94zHq y*S(LxF=ǾEu6@[U 7|"X \Lѹ̱s`7#E 6;A U]'+iӯU)?bù_e.,}|Y3ǐ\LAtkXU/Yk0l}$t%Sx)ib\oe up ƟV0d 2 QJ]E`Ty݄"7&^DTql;zNLyUİXܙ Z[v?]B$ņ-D}Jb+؇iFˇtElX ý߇)BD X1t~bPԿQ+cɓ5 Y")eT;sp`(6*")/>_09/y2V,S񉊣y%nV!\#}S *k.0>jw ?_mzd+Zq Y\9*c2Fi-U2õ}`Rv$*V~0,Wk0D+L]\b"KXKl쏂%-p &Px?΀>X6`kP FgWW?8Y'HAZi2ĪE( %ԃqL\ Fp͉SA8܄ld5}\wx9DFeI'30ּ#R%ޯ1yg.CW{'ԙm=/]yf˾Ktᄎ{JTGM6AD%9EdQĊ).'qGNK aqL9w႐AO(}ʭ=\LjEVVy"5w䀵)-ZT,Yw,j&4 8^^`*W©P.4c}Ņ[R~Υ5@Є@Xz',G\UkKDe {==q# MIFPZDK5\?èSZƅ6pՠ=G-맞%?ɇ*bWQ1t"gK%hc`H0 '?P)\Z+׺G%6/QZ W̽ks`7E3w4yk?< Avޛ@ Py~֑@hsYme]x)sVF?:߭aR =kvAGp {E=,aR7؎ErM -o2k0i<^X"}=bk>J A)q͏u[-J%YuZ4'fۉ4 id0ֆ0Eqrey xvTSӀL h^,X 5^v\}(?|"N9u.4J MyW",.j QLu8\u-?&5|D+@4@Iʴ$^%Ru{D؂6 I^$b(#1RhKX*|T K3XlQ AأPtnHh$7x͚r-BqVȝNCu-WH l^) BբN=K "a;mZ< P0W*=%#K%Maz@i&Ņ̟ѽѥE⯈ +*Vխ6x^Oh[UL$ţʇ'-=XjqBj5Dh1yDxx) *,a2cřQ*q$*CX6R6s-Rw/߶׎Ȫ͕(\V,"Ux{VEVȬ9 ^C6nTn@*l0Bl0"SmCuESll)mN9ZjW U041h굪pGVs*rӎ3It6{Bed2!X_u]=7W6 Xn \ (;0lԍʐ ,-ցD B $WCcH7p*"0ħ1ۆ/ EW􇥯$j.pt@@]d.G\$ ][+v_S,n]{aUr(A`b:*OHr| |ym1@{u8$e/8WF[X+SP͍qKs*X=! sg2iՍL;D@  "K-H#aG aTQÐt"R;x :YAEQ`,6gH*mlF+/+̖1TS:- yg.&LU^vx֒{!UAiZX)ꪏtBhyWmA_Fd1im"x8KCWvu{8i48|~iha9KIyDnޔ&ui[Txu(+x]A ^4\ĵ 2]px,O6"S7ʙM%LTaj;tSm ێt]\AM*Whi)F"<M[Uy BGX{ ]hu¡k`Xہ:%h rS^ Bk`DuTbůN )đD|Jo1ϳy EN _/#3ʯH4+\C@]ƦOqJ"uྈ`ۣ'uz 's .U~{u,9{>ptH-D:cq!3~,ܛA:a"UŤMEx%| |8 \U/r*GXR&#)n'5yY  =#R;<з 1㸄 P\́GvG {aɕ`S<cI9_1PHNgW>VK\nieWF'Nix_Z[XQM8%wM`8\- >oYUSV˰֠kgunͥZ(6$@}\ s`gZjWC`F֥ʫB,^~Q|V((b*gӳ^cv򿉠ݮRw9 `9are+ӪG#0}JoB) UBX- |ZJ>9*Bht0 8?N2x0>D)4Їm| &'#RBg-WZ2Q/UjR߰ E|#P R.1C#a!'O5Qپ 0%"[vجitK'IJ~D U~'hoCU$Wb9:#I4 M| ڢBbxУO uA4b5ͯ,[JLں eB.,@a_.O%qFHZr!K)խԽ"ɐ@3unjVUfp@yX؂6>7ﵥX$T^tZ!Q$eaE\R߂ljMlc>Z.b@W9ZBY ;2*+R[8ciZ)}J"soM@u9+hrA/_ Vcݵ%uÑzX8#u1ajbg҅ip3۳;U?%V$_yNi5qqvDEwv=_n0/0*8]],AU-ڣ C7g/iR%]Bs; Dc/&"DT%ĮVpF@TƗ<RGM tv~#82(s?.c\E^U,Nd 9D17'A TtrA_x6Iul2?)H "h*0_D9b7Wo-ꃱ%Doyj!k] yXYŖi.Cțn^1VMnS {m\ H2>RzX Ɗج(*eWjò(& OCO6XItYY`,wACChUz%7J|x vʧA ϕ0_)/;r0L#eY}$(3+B}T[CTw$ħ'!nF'"dһ8lk1hR"lRNS}E@wFk;m'b:8]g5BRT-($g<0ț?U+/!`d6>_R"-j* 3BW$ ]mVA N|rg}75긄׺ZfVce@*aBR?Di1w]G/ct>k_Q-Z셏Yj]Ś  ^ t e7 좼 vdO#E p7I`}z2KI-bO+MbvۈN* B0gd Oni6Z\WLsز*%l7 YL $x%a# iT=Pj h(Eq1Ǣqs\) L92Wïҡ^b(ȳ /1U^vs r}Fd2/mU%qԥ/*3Q@>1`x/Xez~`.[~xKUB. ul6S]Kd#pQeoq9#UFt%9jFcQnhZ^Eڍ܃AR_ƾCAp1t^ڔ>*]Z8:@[u.EYrS&[XH&G`%1`9~D&s*&-z+p{[eIAT1&`*QVJ+mL'^/Ks p;JE> Yv ~U.zY` \ jx ven5l)pQ~8Gz7ZB>KA}p݆fuLjR&J [m 0tD}$0sx.Z͔jWP85/!.U#T8h)(Mo̻x]0ۨUڊYETe Q09+cf8xR(!K-9Ę2]͢#8H1_t˚WYw:586Q# `T\+mj!̀B6C%Nn] ?y_UVe'ޣGywS5:!zcxC*r{}a}PA06D-ΊPh@9Ls|V]WRAJh;E-%nQ5r.X4PJqg ЩEG+"Q*>yz\:j&_+#$E_}BѬ<-ܵNH5R`v7SJd+BA"6֨ASn(MUF˪nGXn$W'gҐU"[mmn7,'b"~ .VkjQ+hu.#;9Sȫ5Y aN ;RC+k)A { Pك42a.);Oh*e/j5VAy$en||#GK 0l񌯕}|*S5븦kWpJwiKp`^@\2P U-?UԝOG R:^;~|*T6aW$IÙ 6%`p('%y&M, h]_mSW0EVx)AZ }!eO-#%?=B߰%#U&b[y\} ];Xd۲1ojYV< 7<5 [G0 kLvvn@ {-}zI=˯B\W*>H4j+_,ilU/KSܽpZYdܣm˥-P2'CyQ7ЁA*]#ȳ#[D98yUG Ұës s)TZ3PC& \쮺|*] xI[+!b5Ŋjm\2߇e4x SnEA]K" `oYeG:]@ q I{,O1*6,SOu}>}Q1~5@Ƌ6 0"DktEzۈ)j`yE~p+`>zoL8/ c8Td2ѵZ6^7l֠]YQ e%;Ycn9M(ˆe*W2OlJ ./ewL)E*hBfhw:pUONLN,h[,:tZk–.c [^GNe+ik@e^6?MWcQe׾"颏wEɓ,1+vVNz`Dт[Ea}LD9 5Eѹoڮ_%&ngy H/EVpkY+7 HoRS<\W3` DKL>o킍7(.půD'^)f8EleG-P+AtWi&H` y!YJ8TN;B &ؗРb/2-C1ڑ2,6 AqfG-lS ,eV3RօfsꘋꉁuaN"/iZiփJ^%J "R|v̫>bO-tp]7.Cء:hcLl¬ZsI("!wPP%:Y%bb6W ǣxЦd`Y^8.J#Md1z6s/T!*7kN ;טO#*mN8)7-\fD.8H(.n~E^809MhyK޴~39dVRfTe5qD+BV䨓N Bnإ( +y0hV-w=4EZt`z9CT\[uU)q0Hㅳg521,d\]SvI"F)(*sQȮrGU/a}DLZ*^$cnv&( ?}Lмs+`.ovb! .h# %)I(cW./Y8ւ Nw.ȇJzf^p)pP ."$K6ɚi0鷎.dحDUYr|id30A(;jZ9aZ/U"l 5 nQCj0AyU%~¦m@` `/sdn}\xSa=/ʙo-P~`@_٫1j%Er#i4.Y)UVD3J]XMqPWVn ʈGF~ +d% X&;.0K-ഹnU¥ Yww\#WZfGMӹ}͟ϝytz٥i%BG* ZzWJ\N. @{|YKt\{5LFj]gPb5x *Z}s,Ptt~`\&s>l 8¥ĄvRlGBZ뷸[=W M<+rza [EZ3˻(D<~mi`UJCQWK!A\b]Fl5_q@Ö J,.8!6?(y Q%[X^ogj>6N_,CifZ űPF(83'Hv}<ܦD Hޓ)04q *ǸiEL70,{z~"'8j̡CQ@Z 0_ ,DKߚ>+!5,^0D_Ft뛆TjmT~;q"QIW񔣓~u{WDڛڌx` xi&뻰En =-+C=w-m\od5O-ok0ipNsXYc.5*+D#w(N͞Il :%|yk*+|PGظǢ6i!D'xl+[W;b>4#ԧB0\6*ɡŒ!n!Epʄ``gmQc8KZ+ )y@~ԯ1s6lUhDs⸾G^Yu^gn3\|A`zM1 , _((U3 3o6 wN"]$:&ݡ``,hv^'b 9@fNhsp.cҏظ4E}%0bb{[Fr&--)v-Ik6z7|sA*gpcyVS01Mhk-\Wx nsҡ.bp@ZS*X 0 2Ӣ`52QNNҡ|GCA63DZdM)C9D XlA ImķgIs\]k΁Kb*-up<5nW]ڦhrLO*0C^U!Հ: ]Qҵw(rAQ/b:%[_W9"P5!lHh( 3ȾXЮx9 қG{bdm^Si9R0- %-Bbl~9Kc x?]Nޙ4EpS\&u.=([PU~ljc+(qYu܇aױeW= ϥ+zDV`"56wrk Lu0e \0,:Whrf..޼Aג2 &_8Vp _zau^GQWq]Xuۊ5X^! -N[,5KP['Ȕ($x,_%qt "Y*.7VrD 'i] V\^(eQUW5"0)k9M6L0w[#4qiQ CiS:ʠ(񛟒v ײ0{+̝IĬX A}brˍB@4t@ڪ(PW0Z!`]tm+喿`E cN^\ !M.C6S@RAh@gqAvb-` -.5UX5@/Ub/n )o1r f,v ZMkȩJY(4yB<zPItrX.QP{U/e5I؏0 a=DUw$ IYgb 痋Wadm -]@ёPMoŀTȵ镤U!+D޸q}A_E*l`e:TZ1mw3h DUR ∡mxaa⺃Ȁʜjj4){pTծ-sw[%۠Q8~/,ճǽY)ȣt&B+͛5jt~bⷍ)za҅ͽuֽڗ 4):V@lz_ؗ E [h CWU.Va;iҍ1.'MV1kIU?/H}sRC^v!;ej c [*v}]jN #BintDUNA VyBwkڬzw%A 96d[t(bЏyIHgq!#&gPpV*dIx7"`Q4" oyRVw|Lx*JԃBmb$-2[$,7jKmY7iN n[j}ȎwJњЊۆQ ֕z҃CF9#o? x!`}w.}hhq2ڶ stS/ o ػaJ =w2SȊ]}LFI*A*[Zv\A /, v1DhU^eKQnxl)EBYԪ Ԕ (a4.(7̥4'cQҔmbEecQrD7!Ur,Gۙi䡋Az_<2#_U^ۄ qQȻqR5KwhcP*].JԮG-Cܪ_+e-oW3D޸PE5ƻ󤽇ԌOklJ\*tѣWNUV bSt[wcL4l(ւB~JO(H(ܢzbP }Iy*:ƻu$,Z7RGV{EGQez pp&@G֏1w[7 WaБǁ*1o"0ê٦{O _h&i)ZWmJ硻FˤZȕ6&,$Ek D%4 &ծ%n~Yl)W|%& U=d{OQv>1\(c<` u=kla?=4f͂*P)ˌvwt k%lYnw[ ӝj]W@g~_K 1ߩ|mj7xpF,JuG4Dq\iW%6[aYp**\C ft'd >~F Jw;/N]c בr0}( K(l u_[|F=auxdvTj"l'ǃ~uZyy^Jm(W>Tǒ@fkJgV T=oh620Q t RSjbl O^1HoK]o@Hx(LbG Weա0RQ vf~̍/OgVE5D%Z]"XyZ7VSl|uA@x5Oka>\.RZU0ceRhdwRyQ+V*8E헦>"q [S`%ub4i3*G(LIeQ%>o?c" ?=J﹪KXD|:I07C2/,ijFXՕTp2'a ؐ}r6)HI>{[(YD@XݫA"i`y+kӲV-6#3BxyL,<ȶK!$@jPҳ#lSXz"Hx mpwCJ@/w /"3]e#ORxPZH#3bP:x׃io=c3"H WcGoE jY\kVL{ԍC@TZ*>ٖc E,_<3w/R1ėߦ^i[XL,_Ey՞S3rmKbwuˬR BR1&J 5M2ƘaG0gVuJpy̅s״ؿ_[W1I@%7l.KHL p׿y Pږ$+-uhZ0̨ (o $i6 2vInWԮhNN8[EWU3#WՋ.UEirW5ϭ+BɋZHEn2,|{l,1dM86@jmY< p|:l\? c+x5&V[XWM1M Ȥ?Yc݈Ķ8@nS|Ti;0qtEjܕr\=٥74J<ÌN [ϳ.~*w1]WKV:V˩=Al(PDjK$qpt3#>8J|QT X[8X"~,+dkXU5Īsj<-h28y4f#P`3jQbUZL 1>O-4bBD JX[4 !V ʬUQ eU* @ӹ#jo1J]\?qIe3J\ j8$"4EiB T.6<# t5¨!?;|Q-8i&dix )H=U^af%]n*AR3HئM<0A(?BmXVa Z>3JHA+NUB A- d84|BU\gSH~ Mj"cAo(Q;2E`Q5OF4QW-nB.<x+:[QF3]3+Wo6=\{Fگ,*xT*9.J)vQ{J=лr5 Խ+MB4s-q۵ jHA"Zs * pKMCSG[L4rʪ0Lb]Ua+zr0o Cݑ,THRDc+4uܠC@YZoI⬸TU۳ܣ FVH=z{$PclܷPYK^ ԅR}B啎4я-M.ֳVI]Vj!֔6$E-_<-VKxiA(!^o,qq_m-S:4ۂ|K0)svÐXtS$6;sKLTv$DȻ_9h=[!c%n ͗yN˄hߏG_"qi\S#B){m^ >ۀ%_5loϴkMׂNZWylJJ*h@LDWNsJ: U0ػlS0,@~Z+;o;*Ϛ tDTv$pOL*dk:\&̰ϼ'(TwWajg6ȱ͞_"զ%܋Gr"*Tl.tM=TaZMJEWQ|$p8mQU\`&9JM6[$wBJ@1[c*A,9K<΍tw J܋xtU)IW6Ŵʇl;rو$-@Ya`9e7'{>D^B`B< F֖^軔.g ˽? H;ل\9QAkT~vS4B776V%ڞJ< >:w.GlQѧ G_qϼ,{I|Ny#ƉTE\K rAHj+}ŶY8Ʒp ~ T/̱n6iP$%@CiO7k՘Nm"8+PJ_eoħ4O]SAgqBѾ1=y-Ǻy$_0qvsH: UTBGڿ_|}LU?q]Bя5G ԱD/tu4 "U*[k߸xV\ۗxv?l*<&™HvKԮ()(T ҕQ:4 V<(v[x$ ig*0/_%1fD -+zdo?qͪhթ?*TPEi)v9}e7.Ie֡bMe}7}:.W_BPS*XЗ̀ ŷ %֍#NWP+5+c&aUAA+9 +E)&i3^oZVi{Eya5% mLQʮbwP΋@[<D$]zr9KW[؋MV@Eq`A tu%^E6W7n"MVhSQ[ݥȐ=:@Ԣf]P,w$su){Um:ܢ? bŜ Ԩ< d uD @4ԭfJdh"e!.\^%9SAwܼm,)Dk> ª/b-jyipRړ`K! =v(cZBZ;r~pʘA( Y,1h!<hL_@NǶL]'P `W}@^T)gb*ec8KWV7`vGɄuuq[O6'au Q7*-P{A.!_ȶ6A 6@E7Ed'i+lr# vҲs .feK ̳aU+JqHHJmCP @-j*z[qiZr1ű#ua@j-"BETyY` VEcKkq-B3:^|8R 4]Q& U"Vln1~5RĊmA(J̕۰AkPUHٵMR)`ѐX3mfR"e*h$]H2-#R.@-۲"flhCB َ1-C\Mc7M9mtgC)5rQ?f[LhWʠM沎) h #+W,Yˣp\R[51cZoqE ,؛x\K_HkWP_ Tͱ6&Ekקэ,}ѕ(jkKHm?-t\ȤQ4稻ylb83&h`ju mPZZׁh2grTb }ܕOigJSмJ6xo)(t=`cYrXbɵ +Ֆ'6:K_gBy=J@OH`N/ I] fl*VSd#xD`(`DQv9nPw vV3x]KilkX2M.U (=엛%L+I vڲEĽrwts9DoFRQ9TQ̀,qS-i `$Fy̏j.h9#*BB3⦘8lƎ,yzI w3d:nӔ'T\ Q)s2z!eA;*KZu8hh y1cya*)Gg7J|*:K()=cخnn{:p8 g.Tt-[+OQ-Dn4n=2އѹޙ>jqP-טjZ/X@25b8ѵmY ͨn!`xqw,q֬!"hE,کѥ@,dʹd61kS<"@qoRjB!tܭބx瞡' vT8J !qo;ܳxKG0He?eqqč@N#Zo^8ofg^ԾA;hŗiSn}Gl5^"%|#mJ?ŋm-Ƈ8niLiQWʥqpDǁw% a/#{ztD֟` VSDEEt_'Y] Š88XkE9Q! 3 (A?qͭONo<d_//<f@$"4 7P'i*%ρ{YCp6Ď;@@&Tiݱ9Pߨu!޼Jב>tҿ6t,h\'+mhvhHj6U: D./ iTC"+.25[Mcd6]as࿳9h_eq`U7qL31bbg9PN`WWl6x;4Oр(XU!5M?SF(pP/mErBv3c}eA7jj Z/ND tt4xwV(H0t|q|k,5 G7r&df.h_Vn˨W҉^zYs(wϙ`hqOI,'ڢ@+oG47JQ/Rq~JDxaI:lO1#{J0:K>`G(lvÎ%40nXh0OΑ#-\JR_bfEm.(ru~enCe"~n)-=;!_4J6䖩rQOB T\?y>Y|lNZR6 iم?Y6POKJ,5ZB0,fvz6#⠚K"q*Z*P:-Uqj&qWz$ީy3+<6*\ W̪ FZCݔ3==Ш|7|c_)4-}?)>XB6-+8>ĮOfB*]kbG rP>cjV*"Oh' dAыD9B' GKq.6]8ٻȴՃK5R<ǵ80\b36'$!0)1Eig,ѐf$+E@RrCz"{oas+3y/0t[^Xl㐏i/E`%f6mt0~*,RplݍHP\TsKKSOq 7,];//; (>P~ŲT(z=Dzl{Gb)_iwU\wC &h6RuOkxHsoFmy4){t x:Эaz0߱-ڎ 8'KM q&o/HQ_d T:rv) ) KK yl>%q T# ǚ~ī*M[/ *##⪐G業b'Ma"L`q!v]j-k!j*_jyRJ+,r~ o`:X/(;,q~Y++qG22?Q$()o>p3cE$y*$SwmJ[+[ТYd>(?261yL=VjȢT]{@dek(>S] ;dVSqu98tx%)X oq~<=fTɽa?Kj;jw-`\Ut/Dsq}1~3jgߵ vzc|bxd5%6߽Y1v!ƗfP\5fhKmc wPQ )ZY-3v`Z[iX¨%cnȠ b;[M?2bb<-JoO2L-Jw4% TfJ`]vS=_s|lJb ,X, { Wв ( ][Vŗ jQTb-}Bn]mH7eMi=|K,F w,4%yy=A9U E,4bIJF!/A=z.)\ OB"lZek#aF|M) a~#7R[Nڣ 9pSwT~eԤ/ui~^h(8|00#$Rt<s멎MVDZ/ JՀVen3BNm߱] oV[qcEFxT0rejAZm2u˘bSI0y^`r.(!--対a cͲF6gʹY3`qf‣FGZ yVcU^*]1_?\_nE:!C;eeck1xX8ꋯV|_$U5TY1̤v1B9@ZR*u0@S12kNеչ~Xqu B*[9k z\:V(بʼ*i -Y{.^؛Y+@(T"-Q[JG5g"VY4ty%⠄ z6Yb!7كel%-\^,FDC_3 4kAb`rbj`N4DcvEFO6U5w%\7GP>eTYH}rO,PV.qzLT_=)^"mg@ QJ SbzP4vuGli6<袚` >^Kiⅇ[aÚ|>$jvE051HkN{>9#xFw@n]Pa=}1,8m>svg lU~eK?&KOm.-^|-nBō .Qde9`H4V컝jZ0YAxQيŀU+FAcI6Tu&ru[b61"W8D8akl-ɿO!vVU;2_9 rrsa&W#.é&EF.膡sJ*ELN +[{2wHE('k⒯rf8 qb2 fQ53a- BJFςs ^İ^6[^\]l 'ϓQҥ,T;ɻz[K x6~H Bqt7n-&EwF;R2|Ѝִ_*7Gnޯ- M$0};ރW8TN~U"j+sݺsPmO_\!6~XuWAVLzS%Ph)t[N7@gCғNCۏw)b؜0N=z2lJoa_os:v7;]M40Q^ڨZNr*ZT3-lKm I/@_0T.^j&BaTx ]E.Tԡ;^g=Z i"VR7%rRz5 9R){Fy`1?wYod,Fe^,yr̀Ek|w\QXthOv\?S VP@UcbїZb]qKˊ6*= *iv;9E4ATc_g,n&ZqT4`yy d?Ao 9 ץL]YwKSz~"beWZ_Lf3iȨ9*wk_ }|KwWIr6l} Bakÿq"i۹S?{^J*Yr?Dtpbc_hp ّy޷ T/IA*Vt X/CKU#K(tE}.yyvr֏ Ǧ+}7=|v;rXQ8GRTAG1rTQF$4h6ÂuxyJ+  Jŏ63 >G 0-Mt n% FD}L 0Nps |fZ5O 5t^sgj,hhCyEh.YޕZե_9o!ߘh .2st|Vs %yH2S Gka)?s-6h_T{k_$ (GA.- $֥Or֡5qAywl ݇X>WߚGd(G 9xʘIo(w/M03n7wTH,^B@mT, ˿'o s2ΏL?VfE퉴.>Kb.S}Pl'gP_ rՍ`Jx zTd՟}q ZmKޱ_.v1S0%> m0%*m#/T{Gɔ.ޣ)UV>l/BTO(ҧI=OkNZU6C-EtG|XRiz{~lUwP z xk -x&b/8~{IsۀYA.|DiZT.q~nٮ2EYfo''3cV6&@K׸Yk}练5yk~Xcy{{] .eVz6"趐[ GOjay,y6K=C}_6[Z!CK12A5O嫧-iYYw p]YwƝ8 8HX/, lW8A$ҩPy'<APn x@{V;%5-Wa%6ϚnQ9ĊSuϲbx.%eWK`5*FVV0|&+gz#=o_ hĉ[o>aI_"g10-WUW r:1oOP.ao,^zQ8 sŦ{ 1w*(y_FaTZՈ֌SSƁWtr4u*`w%W6rwGoge 5- \ybYۺ;B@Ua\fj%oY\PWzv!l/yQl  ^l` )[ PHaUs£RX2[嚿p _ܸ.燈'$8OJF_AqQ7K1+KVOlKnŠSmqyHާݷ8KC&P೭KP2'y& ,訖Z3f?oqTnʑ~? QJ(yx/凿T.(Xk608_OiߙUj_3b!#ɜgA,2iiKcl{.7(:f(OzNi&*^ FןavG('B嶼y!ń%3%p|ڨZO gcW Z ~[Sitr3݃m>_D ػw25fY8.)틂x,Ju@e#ni?WAhh'yYTopJ`7T=m/2yHwL@u|ܣѽoՑ Yx=Gp|Vbuޮ4 ~[7#ODž^)yeÿ3-UpHe%V[8]D֞}(-`stm~.At@%>2O5mmB8.h9YHnXm( Z % k̐u) Cf4{UU^); KIGn#:EJo֏0Xwx$Bl2Z{U0n9FAP5YӨ_eT, ZEgl .aWN@UkORkAnݍ\(n?@`s ÿ Ns_lu% m|j]? XogO`-1܏6`%R l%T5 HLMipQ%FmʺF  6!%y>/V3¨$Us-`1u۸:}mFiUpKB ];±ۭ,c WC] a4Jx7W EуIyaVQ>Ǡny.H XЩm~Txѡ8@3:}f"[<¥:IbnQr%?{ &9B%j$xI)3|te1 eAfrg }@v}/ ڴx$mǨ3eη!kd%A^хI6_--=U0=^fY-s;J@0~%Nq5/N+g6 H?HU?b_ؼ0e.lX(;_%X juTE5j7388AI{q0 {) xEv[5jD=hMhAoOp867-Ri^sAlnht|;ܡ:6XCBjBcˌT{/RB/5 bקl \}ËWնOq3žKyW$xtQy$c@XXi' F)*:yXofScfx]MwH,tAek* R^Q.ݗܻ|9(aTwb1-xگ1텼A^XAu"7+(HP'a kk}B1߼4ɢJ1él"6*߰[ĄdGViumV%R|dގ)u8 ĩԧ%SDy0B*s+땂e(@cncHanj#3T,Qjh.gi At~"\RJ2Ta?&*F3X0oUkyLPKax*#RTB\[Jq,l4D< U Qbs1J7JXrRkhŸLoX螘h -iMou)HmUyI4q Q WtO^.֨S*>* VJZLYJW}DQ*(aH dž4jg v ho݅0 U@; #Y F%P\981 <6J*Kz NPRʸ}秿EEc VAren=DV;0JЖƱ粭oNd kZM{` M:_rev^BY7ٵTr n}C˃_{[eIB: 4Ak78 WFQI8(Q-6c jW/vXӾ8 <[i)4 pUECG'6@7[K=l+p,al2%T~Њp>`ToיF ӑu4+ջ~9.;PU&ǘ[(N7APU|L0R ^6܎O;w,fMj{ ^;cNۛW)yJc@SoG4a ǵ-'eFz?fSmB=XqpZYzRbͪ,(]EFI1p-C3bc9 K{wPG5Ŧ ŏl6 pt p4 `Xz@hԊh>ƾ>E6{y/PJA?b4SRA13w0T\Uc(JH@|m8ѫ/ gڈ<m~3| 9w^Pኝ۹ LcĚi>%[Yx{(Ue/.?/t5qThmv7k%q{BcC_(ZL*\߳7^NGnGc7ևF# p@žΠmnb]LJ`^~H=-ir&PΙ]s0!͚W0ePx|my (-9*Q5Mx"EjPS2_~+.ܿ"(Mؾ}dg̚}. 2vߜ㎍>(cz,H,'#04Y[ eZ~V=(T 3^k_b>7]Z4chY߉xoKm [؝LrN]Bǰ3sM2ihGkD%9,^t+Yh*P - j,6`e؊eC^»!_g`)@SRT2A(ȲƣRήT) .2g. qP/on2ڶB_Fy (tYmnj.?p(Rw!޴k]B`@y 5:{o!o1_dZ0~_k"|:dZQ8[mæ:hcyRZܧURyjemxJ>X"Ɩ9Sn1Q͈7T[F<4BxPaoO q?Ӄ. rwxQ~OZnaʍօT|"3y[0`5¢^\RNMd/.)*a/6X{Rd[՝+AgrS~?Y gݗqQKHCj@lAqM}<Ə" I ƚ6s`=+a0.Xu0{%j%Q|1x!kw*UCǕ՛ތSYTJ'䧯eOu|BojZm˜[QL]腊[|3[Aw$m1#/JAȯ+"]zl?TԼc&'>,Y>. c_?جT RPnGJai @PCJ6Av gaD'X+_o#`V=R9ҡ"+yGi!mpa>RlpF0 i*K|àmҏ 4sK(bm(ƙRBn;{M@;m-mhB>!Цǃ s\~ao+E wRgչps ! Faضp"_ZԨW{⻍|M6qڨy,G- kcFc⛻OR&l liVd}I$|byDX/ɜ#VF N-(+7A[bԁI_p{Y]qzƎ`H) 0B"ik*BP _ے{y.{/b|+ݶroĊC~AGA5F5z{ыd N>yF.ghQL w  {FVR\4<9\Bw@Bhcϯ|B+y{AΔ46~qGE]ݛ0`QP]?hKfNJW+"䮇*iK/tt3s,_d8׋b#;t/pm†*T: 7m(~?(!1AQaq 0?1v! R]K7 G1 %H|rʉ8] .$7J> XY@5 74@ `Jh r: 4?BTes1w0~OnBQ1T6fH#*hJ!P7$J!o)L *i4?p i7R4 7UL<(|"i2@ij#fj*bf>y|flƦ+_sHu*fWΡ"KAF>?c,:(!( M1qn_,~S bA! v\\%8m!cERiWAVgf. |4_&/ȓn x,%\ɧ}R Bi|8rU?!?b **e˃xD$_Ρ3o(c_T _ ID5L.±4@ i5411g~Q>"JL~q75x(zq/|sP5 @:B^鏶?ȶ.fpZpejKRg;~k_;g1 ¥{%f+-Tf ZHӅbfSbW0|s #sjP 05Z:|gp*^+Uc"tMB2//,j_bϋR _Jj  dXtʅBC0C$37@|ϭk@B{I?5*\s71`m>L'|V.YO#RNf nbrXyr 2_s0 aCQAbl "B R#, ?L@ R_a1+1I\u k!>4MĀs5,. 74?755/ `Tl&fᏰ_7q790_5dpgJ?G_ "~mW|V> 2;!Ga#``!q:],}UOO _:ԝ|:\O(|MUBPm񘒉~ਙ7+O~k%T=/t:[b0Wïc 0/@\21# A2SP>ĨK01; ʘ zKQ,'㩇|,6۳F:q=?[EOT Dy1[Q =i/<?OdCPSԶÆQ9_{U^sM@Mtw`牀ʑqĕ2s hԺbܬCLZ`! 2> pMs1r8xq k̡ %{Pp}69vӨH$NOh1}b.?|U^bb\.:O3kq2)̑܁壉3IqkF[5 be!SL|[t2o, DtaqRTj;`FV )~ f>j>|f&I\J Er_ooBϨ  -Q Pω^/vO.•l$] yNV36c% ]^]鎶 +Tc"H= oZC\82+˚Ûa~[WloP8L_FVo ٘<սJiyfj6<\" m"s3*NDܛM^q8>ܱXT *#6qzHךgV{WDE - ՘+>O>e8wsICMC ́Υ:MmhX*ŜLA!Rb,%:sS>qYP|\򀓳n6=~gSFL]nވ6=|?h/r鳣 M3(`4ޟm)dG"](m:s(څlo@YuYs]aoXO@ $4W߸h[JSY ]SߌzJ4j/srlus6 yK&) RۭNu7hPuy)S(GP .,%`t~ ʗCNvb (^Uh=9 aPfxmJ*EL: /~_>"+,/h[%bidw UaΝpqF3ĶN # ;gEiMxnrL, m- :Gp+-VI.pS$,!̻f15 (c%8*)wbQ1b83:&>sߩedDW1!#J\?Ghd0O6hJ Aq7jqV aqZƆ bn懵&$!<ł\x~D_?,Ӗ{uCDcxqY5{>m4v*G bWKϘUד*3Cʊ=?t=lqp% D%w #wH>B`gl1coQ9{"kQX?ַ\7RN谅nX/8'L>uܻ[8<i-8X-U_jj%l,w h9GX{.%ͦJ4ǰ 9#UvV&hum2kUMDR1;,+:H4<%a ّVVaU/ }N_nthrb61Q,E>.&eBʺ*a-^b7r9C&pdFtx\ZG4bf;￴e <0DZ/ïPD@ jRFfZ|G+3 G}"~Ynᔰ/"h%!\O$n`]ÇT" VNI7ׁ~;]{ڻxY`u~%RdL5jަ"ً LJtcy{(p#\"C`WYU[l &;"Ry^ XZumJYkC'23p0mk,4KHɍ:i\@?JY#6w6 "~.?v@0 ko8lE%KPF[qsI6JCq6@Xe%ϯBN M_&?r/8eX0(zBf `>(Z YyrWpҏ/5\X/X%`<ɆGrT=\dWo@n6)q)IL4BZ-GELf;9u-g xbU\* tvwsx@٘?X\= qSW3EIkykyU1vG 飼̯uq֋ǩ2n7U:ĭcvMRoGHF˒ &Ho&QP[Եn@@ gqM81ۭbYE@x?f?+VV-xbHmYp*G4F+=G+kC$^~ YslLe  mp-k3v5u0p8̩^G͆ ٚ /@f ʁlt O6fhkKcp!ЫZ-d8ٚ64?i!wGpsz`uoWhD>-丰-!t5h ^kfI=| hep YExT#18gUcu4q_1rȒ fDAW R8i@ FY>ؙa*GWfؕҵ"îssp8uX-`[Lg(z5/݊E.Sljc)p>f!ֆ* %'<)(oZRK.B^JJ~#|TsKݾ ~ t]xvKIXBC3C q=q(HZ LdF8jtfcU.=ŮWžO緊EYK ?ĨA Jܨ7k-n.p 2}eS( v"G1(zpXCQg1_'qO%&H @<`U3 Ǜ9*dc,1V2}B*-X01\~"iFfR`$l,SQja +D%]F迼l'reFUvRE {gÝJ\KiTʛ9ZkzKı"әOK|"Eoٙ#lekHL  .ܹAL|)/uT\; TŊ)h7 ^ /Xmu_0%hP1ZsybWƭǙY *_MQjk k9n~jr/rtptDoFKʠ(4uRYqTı\/R%\#YXgށ{oZAA+*jjsDžK oΕ)T ħ}Q(Н_0ȱeK#cqHUw Ns (8ܵ qpi|G)Jt*s|Vc w~,.d\!cILf`vNg'V(!A. RIqR5Jr,H`^%2Pqwu*ĭlwT#yi䕟'7r',hW8pE33+EP\r+R X[ `r/Ztں" wTߨ2{PӃ,h-C歙bv_P] n@nbC'0@z?P})35 r;(\}^ڹau|!R*2ăDZ&D9zQc@ .'d4 щPb" ƛ. L)qf?+>bq_Yb7?,1!ycqooL\rŲ1~* (3r0ZkJ+xXAǨ>7=u//3f2V(k3#e i >B:1z^G1ja8!t.Z!P1o^@ 3 0nEV8Tyd_` `qDYS~ 3ZsoE041Rf/̻nw˷AjxuWspSqUE:Ync++p-#`F.`VyꘫuFw.ƄYB17.7C>S2UAA~ +qsKnLo<6-!kyLUMiN -w-1CW6 "Z)j?$,48 #qRd`s[Ja&&U4Kxu1èY>1b_gȀܤ\p8&,Ų8=SPsC %(/".(ֈd͓1L&χ r4shx^͂逰=~f7lk1LW 2L]*r3;F 4ӸAğ01kJ[~&?F4 &}.8̲ c@а5ln׼dc%b-3RicKxܵ{`"qx-\c E#$M~x@`uD-?ƃ'ftqHaPP-d1䣣1v0T #קO2ee:h Jk-Y$?,Fg=yߎ7}B'ψ̇ޣ@+0[-jf8"m~!JI%Q A]L!౅HRYS]KH*_0pN/n-!,EWG y`"/QPY7 !3m+x$ҳYWUV|oVS%Gc$Mg̒Mn#U#mL-Km\tAL«q7[ xʅ-Wlj7,e_UOĊ*-T4;\䰷8bă"h-_Vi" n|w^gX\/L5LJbBKEHrr~9q:_Q ܪ%uw/ +e%&὿eS1O 8"[PpC}TY?sJ)Ko$B5PJ&͵QtD9Ä|:噉6^XĸT>Q*2lE*lu;%!bIj '+,f7QaY i`,bATTqP lcjQ0.`ƯDSdt!%JHꦯ I09񮠢 Ki,9l9GF1.5VCw&**8jW'QkYWQ_XAey6m;WMH+jY K2q = #'6@Z.,p`w|Q{%f59!q 8u.B,ʿLv*Ak85 ƣ+}GRr!]1zDPG).#P`38GŗefjE, &4L:/?x[Pn''Pz]1 W>Kf˾ |zytkm>ZƙՖq [&G3GYυ`q_EMbYYwP[߸5Y~Yl#x`q3tS }:aT%[[p*FRTR0BsP 5ju!D>n+$ ,7aSer[2`F3JeA0Mƈ'r'>aHs;2{|Rͷenalݎ+ } YT hV!MKXB !c@p3?sS,LM ͙Y/) 13X8"݆f^ip3 :ԵemY G]EAͰhorv;P^G)[*Zܡ}wۀFi$񃸫W1XG1ſPJ)c7tFPZ@S0lEsʰ'5*W$0ۈj)= EEif*(,@ǣ2p\~Yt7eV=耋L%CJ⻜adCK!o7b] %cXLo-Q<8]#'ģb,\mF#4DXeTRA[u Cl"9 G:Y\ra`4\ej5R^#~j"mS2!,C? eL Ep*&6)"k 9WyaoTPe rlhnX h.\A-qEAATC; T`R v$K(ـZ0UMCpm"-tb[)2d)|* w'5@Lv49G*Q#s=p. tH fJb&>.V lPcxD/VLɛ-9Fp@,|H B1ZbSpmrBUL|js$dqqn-fqѸ%T3İ!h+qZkq!Y5;3GQSkw1x+]Ȗ1XSQ(&5xĤ!G<ǓޥzDn;9UGA') &h!jҷΘtJ2CāQ@sʣLA8d̬fpz1L1XQanTfć:\C&?lƒ ^ V2ql(%JWi0 6`V'>ncOr pXb( QMsP!!\Lj]Pr[!rPI[,: ˥{DĢTu{bT^$``TL6PP3zyf@ %s`ĩSṂaDQYIQ'Dž*4T x`̲CPjloe;PDJX 'HyF."e]1,p]k4w* qRL(Obap\ΚZ,A d#AU1{ xf{ IL+LC55*4"x%%Qj0 d-sh.4xN0Wnvߙ[ǛQE+Ϣ?CA|V\ K6\<La]\DAkrS:FXf\OY,GDoV+2~ sF8WPpeu/mJ7;aһPJVW`(Ws)TEO U9w[.):ݮyLjsROޥwvE堘f=F+@TDL֮+* }sIm0]2~@i@/c?hH@҃eD+3]=^\3|QJ_Q34̸j)45 r<ᬧYhN@ Zڡ'+R`p"M[ueS)zjq/o Dͯ1 oVRWySw^ V*,>IJ߸"9ty*Țb".?Rpn9J*lepp5<ê#; 4KkX+YMhʴ]߆\1=w5xL;%(/ز h&7`f,As*L f 9^V)W;%>N_|OFJ?j}p`~ѧf%X5N`6& ^7*3`^H-ӿ:z̾o+n%HEnW0MG37~ ƏDpG54E,RAR4ĭߙiO0#_#+1_Pqyjт}LqnO&IS%⛇Tب]fЭ=q_sk _-\ nSSeWJRlyQFƇrgSu7P"[7ym\~ʦ?DMNY31,$FeCdPBcW!V,+0feב ^K&1+ @K4JQo5zI*9; 5p1ɟt\qPV=Nm|:f\Op,)=LK_gXMX eR~LB&#ز']> %0X16 yu7Qn%U 8 0 ZZhט*!1.לiR܋oYm(H"_dv=n}BJ#ڐ󸺚xb1Ķ؛t6W*GqE/w*J _ݞ8mQ#E)va+Rf=u??[^?T|inफżuq2H(߮8䕡=Se̳q[E(j . %)Q;'GT10h[[ll+@Y06aCJg. .%uV6e,n# ˜C Kk9nr+,|ǏsqY[1ظ1Y(F8p{ܴM׬JoًV?DV!zJQR+;dF2?le 'Ew6N#-ƠY%m;`߉D$WO A{TfEc}7s72UY|嬏W vU(0=S0#G.?Gk-8MBrR V)繇S9Z9.  ++!{sš1<`s9gpz "nk?hT[9_1FGw\n&HA哶r!o~pG>dܲ^ %~y_yR7o}+ip /i8s=b_r>b9 `DiLZ!BiYй[hiΜ_ѓ[618j<"o;}Ue6X:8~QSMafԏ:[?h1,E ;2=TI*XLLΠ Sg>Ʉ*uAe+w\9X"eᆩ_L22}( #r.Hke4ӈ+S/jokW,+e\Yknk2lfbe75PGoVꢤxW@Pjw,/ua\G` A̠,v̕?*-NnZަqÀKťffjj 6mKFӂ2 Tc8s %/ #᣻ש$xp -z~VۮBi̶l`Y_?Q]v;;\|”Km02S뀣K{XRf @K'?kF㳂}]S|倳}yKaF)טt]g-IF@#ǓEDg< 1K{(6 + Ub^PN/KaN65neˡ @<>ghܥFe{I?;^~3y B YF? ~H Q˴ܽv|$N q}W ͞h7WJ2OJdSnǁe+^/-VѨ);?y*Y\J,O@PxBĻ_~{ebAqf_6^:ӧ BmNCWZ*CbOϏ\| IWA:be* 5{*}lFg _A] ()("uWT`eb)pH1Ju;!uypB-:̶3@5p"V0o}֚W*/vH'A_n.?{}=B_,>өTT[Ek +a>41S%<(7µ( Ķ־G pUK; E"5*8V#AFgǘ5Y{F &?Jqq8Q_[@\Ltw+#l2pq.8lraG9Jz@!fw`W3:Nܠ1q S( ~Λ`B* h42 f 5 oÐt*m^ث7él|M\+3&Q ]K^X- 2*W33 2B ۽GKbg̫N/Pt(&'p>$ ݐP?r0E4"!@(6E(;ƒCɪ.Y)ѹ&@C8 WD}Zz(Ye1nf\{(o/\`X]&χ.5 jfsIs@eYt#<0Kj0WphR߷Q6 "mBzOKk|79oZ "˕ܯ}A3H0yЁCwj CDOK "MJ*~¡ \B9u*MU!)a8\U2-\ޟI be#K.4Uķ|˚]'qZQ`Wxh]T[тHW6fCXNbvLYfY]y_S~" 2W%_uYL(Ly790icmqLj`ި-kLL̪k}ɐbeD{9w/,ޏDu:aO,ؔR>k,j -.SvbJ*Uz>(.aB}Tަ~HOp6KCqU:9IMOfysN1_?/ξ)}ePs1Ĺ\B÷xd$qp]FQ /^"wѕ]ƃ45ad[-)7U?QjB/6_^w=.%)|_/HyTߞт{.`7G}Wl{*9e}!]S4Qe_N㴞R\ex[K\xz78 {-mzOSxFփGN ;8?2jȱ"kC$w"ѯBkoY$ϣqw7>'sz~ƶkzzV:)0Gj}ud}B]\Zw4KkMdMȬxH fXGI}稍 黸DLꠛͯ #ԟk)akldPQ?X}7f۷^`0`Z^UY\l zIeXMTs`:ܯN>u#KU&XM{ 3.6⋆?sT#gݸօNW3Z"&H-8ޱmq0UrpD9L@|Ch? Fu.5 \.B}wP6_cGkï5x0OiC\ԈnُH*Y"~bo͜;wh+gCp]A+mE-/&B3WB:'?g{ U?{+ևe[SsqU>5&RT)r6 c~Q4A{]&x] (Y?(^k-Ӈ,_/PQq #e01yF-X\3S<;jhX(!1AQaq 0?ķԣЎ';OF/I4J5R6:=cKǡwYK#jW/n_K`ܢ 3 M=GLP4@=4cp> G+уLbG4zAaoa. g!/S%-1~bi0p&,BM`mK, B>_˛Ó ILnaWp&_W'^,S>=A&ei9dT5eg>q`lx[4QOQ|~gWF!^#S?SD@YlN&kИ/x>垼p!'(GPJ?OeHbqu)pbKj&Il3w5a[}1uf=LU>&Hzf'Gz ~6`5>5%~P0Lrm`ܩwʛY[.484z}*Q0B\>נ4&^0U@+N;!{a z*S=)- S4`ҏ^!N!uhhĸ`סE`RGD%GRF&o=Z+_=KWrΦ=wgLzBz)@T2EU3g*z |~zQ+e)'JC#)./ߥEz?=y{ٙZ%z.?.}s.+&KNc) P+Ǡߥ`>l~ ^frsFRy$#lg#7IRS _S" ĻpIJ/e 0,vP4˂X kKa9:4-?sP0"Q]E@bZT pQ q(Ǩ1>&3 *Q*?4nun"9)g;_o,WҽKQ=_A=9#c9/fPע\547r z\M=3?T >!DBs CI90&>^~~Xz ǭA5>O3;7[M;yq7ƛ%4w%L7E1ޥz. #BO)qkQe &bß],>R@2¿WS#dH. ǘ;9`sW/L@3_Qe@]E%_$CЄT!`aX'Ĺy0Q\D%0ÝʦC~j=q*<+O bV*}^SK־cdK,}p}V\eWu)fh(bfYJB۔C pܷz-*)e,_cz=L6C@ֆqOB0Leq+)0e?0!C:6Ќ E% nKM]â!znŧ< o͊%9aPJh`)>#0jbEV_0"WlPpQÍî=ubbU(~<n,Uϱ"# wzy1-^-ټ;0[Ih)[U]eoR %Ao؈M;C p ̀ ' xxltj0ɒDxx9jX)HyGJŤNooИC0A-y`bB%!c%`1hB <%\zHH}F1ba>_P+Ĥ+TMi[ /e4:04rc؉V.R)lUR@/5\K(waZHP-S)g Yb3 6S^V+jAi\Tx6J-A|w kͦ{B_cAۈiw͢GWY^ - Lq&%Ul6Eϊee(/1¤vIp:2(U#~h1^9_A X kMrb0sO/@;ݭL7 fT!D!7/%Pj_T&b#6Ĩz!9AQ Pn[\+}5Q,9c[S(be*zKyeF e61711YES77 =1d+o1mNE舳54TĬ|ԼQZ?s;bm/D(c3# zh~,=lY:%6^=<4 qJb4fp7*k,4v>" &G=F%՗aCxr=ݚe!'7_V*v_iWf؀9H(AǼ~~!f%LFh- i/(AKS+n`K 2 @4t<MY` [qE^nu ZT{]QPkb0 /'cAy92Faj*!S81)4 %=yxe।y|cb!nGK̼,Э@?3AO.:TIzQIP{to'`J"[i3L`9 =j@R3wއR[@0x1*J8fj XltM^L4 ~fSJb PeaE~kЗQԛ6\;zL:'[yQg\`GLQZf7"|i^ex V<[89sq vnV YܺVF߈Kq1 5qAp.Kp9Jh3EXgQފ>UM[lLkPGAoܘQՙ%怱 ͺ쩵&~,q!qȓlK%\Dn@_ijM:&b7T+Uo3 hnX^`lbYl\lʨۃs-bj5 ._)(9P~ws")Z.T%wRx. Trc2ֲIo3>df}4 -^^~R+{bqs9Աf*kZ2'̫g͜Oqt?]9W@(e,ڠMʘ.3*UfGD׼aj.iQVӱ:os<~K>H63`GZ+4# udb3Ժf͞LlטHk7E,2qt_PAFcX:}1k G!YW'#Lpn]yH^wp9?h{^Wu)d0N5[k>&7lߴJu6"|Aʛn:N@)KYR>4>:ɘ[^ J_?ϤF+{_| JOh0)TQ`{@yZy[2MU.|@z*jڨ|'}RBZ ;6&-jyS5PLbف01P޶ \^:C\D"y]OKԽ`V A(E9c̭x#(61SݍÍX?2h 3$ 7U{]{BFf >ݲv}# Z^i paoQ*vStvigP)x zS#ӔLME~cnb`e2r_b9Lj,MJk} sb[?M=PܳqXul\j>;e!i., >o\{0Avp~KJ< H뻀ga]yjCgG$JfkɈ 9 p$#a< mN uE4:邬\ L S?3"ZbegZ:Ye.8 ^i+F1>~+dkܙR¯Xa4&=S7.PZ\6倭Kw#4:wnݖywЗAH,+k #Zl}-a< 9@baw~&#q-Q7󹊗dIxf"`QKccsZR/4g_ɵd25Z{a{;qkgkf.U/<?z<kCiF+Lg(˲ djNP)P}%^N 5/,zM<ɷX_-'0qUT:do*bvL8K9CDX-E,|Jbd>{XbC|žɖ[ J5NJGLf4N >$uܥ "$2˅/.~*8WWQt_A Daiy`McR5,Fs9SǠKuQ9ԡe_Ծ|YE! YF|6*]Z Zdy7s0aܯ8Nc,QDɃLmм eQaeh8𿈗uB0zC V}F;nMgO:/ט:0Bn URn4L*V)tw+L`0\YaDX)!(ZT^%eQ73}F.eFMiW:vĸ'O9As-8v GȟaQV0aP9=R++ih\@55?J  LK` dn jB-5//E+ö-SAi[ !K %F&@ L20ڟHZ] ya0ZD54Un eB#p:_YjA+{'!gnj q@6 yK l_^AzbُD~+\D*;Q&RTCh0C[)Jb,9RȌ.(jF^A`XԠ$# xcXPx7 tj+Zx,R;0VwN` W;>n"`9}@0Kd 1Ed4r/mpA *V-" 3,er* f]yen<]7Yc]r1ү.4Dhu+TWl$1m/|Lk*OA@&-xw1x\nxi5r ge})d1mqO)bayJˁZs(0e|P, >0W8C:v_✣Cl{å*sgPa!7p T^AGNuAms"c?ʑ~rA`n; ;x{*%V`T0}1q_k@f-0@P6Y~$ϹsdŰV#hſl8T䃉j=˖)Y TS { ߃"qcCh}MFi"D|L$Z5& ū_nb!uUuD>L3κՙp =+^!$bp,&B6,e%daגŇE\`fC*;,mbDŽ H%๣ݎEvY8R&yx`n9:[X4=#f=.@9%n3)ؗNƾ˸R805/w,P(.p0SE#kHb,rHj%ju]f: [yt S5%ZPҥAH^',"5֪Tw4)S e]]`FLSShci@gI̡UGaį/F+dPhI 0lR}B3wC9y-"O3%m TbUKh} 'iPNam$F8xN%0m\-= 1:+VCk3>" @8u?XdVD4E7 g03S=ˍksf/>,M~躮ph[^b'[g .VCLM, uxcձo,2<e؎qrx%W 7? V}Ge/W;ŕs8kۙZIm`2.ʁ#g&y!9m幥 Uϼf6S bnsr#QU1bfش<8.;{?)#G&K|H4W?ip`&JR"1U:k*QVL2s2LB\N = 1kaj&-5K#-)ʓfhkϽ#`mܾ;E`7~ ŕ0JR%v[gf`PU6]NRP#qil*i f}@vf^OogҠ-,CQ,H2yb{jW=瘻B.1}!bqg K.*yoq0@X;a1+:Ea\Fpge R=&6_oSA&a^s "'K7N f)m}P '@l }PN=I<l(2/wg4\] u0#t4! {y2pp'a܇/̄'EM +̖ B&Y SX`<-qyq!1xjop[^x`c*vb\,;{tk|3.(ay ύi`Cg;etAsleihDr̫bYHbƦN@Tɇ{H}d+Iq_Ȓ6&hak'G}KWg2kY0.>-dHMX>Wr*(F SKKx4UE5[kwӵ硈FݵܭhTA$-ļ.Z諥yaiqW ) `r=e׼ )x5JR6|=F#hNx'TT㛗x1z3×R:4v8j7FB}$ ZUO+ f 1/w5p]PeiJx_,9X3n{~k;DgY.`gmﯜ1kEKSkljei-)a6=((|8pV.}d/:PK f%`3J7G9Yex< 0FAh%\fr{iyY>%utp3{̏OR`,\ELiLDweOxM$ξZPh Nm.8 wN(m>0K +P9 ReU`pq()gg)qdf @r,-3( bɱ,y8eVeK0- zmPb`S|^/˓'k.Qs}j)pL7r̾|FxnRE>Г[X¿Gҟ_~%*e(*9h_yJ%Pc7Q@bV`O [t^7I(]:+O07!ËJMnqem~mOko@AJcD=(ZMj2TaZmϰj\6A]%~5R^+!d\|&k"Bԣ`8`d,IlW2slȰQ)-Se9m>{ ]ݙgV#lwp%H9G;^WcsRx@K1CfT;65VXg $R;#XZp6b|Kw.哛} R|jt: 74?W̪ dH ʋAԩt RuP3`h ^ubr+a<2\u|j*e!1]8eq('Oa<%%Cوb$/n#ccBHeRP߈Rb9Bkg^H({%QR[g`mv)5r̐+p`E݄"g,"+]Έ,73l+,YQ#47KLb~a_=%` +0 kRVX_lTl͋ Z캌$wgL*yhD8iDdpvɖu΍|3PD#F5Ÿf|n]Tw.!TM¯N0 DsP * ۅ1bӻr\!kNje=\-qj̒0Asc*MbC-nw)Y!L%mÚR}fy&CxwP!ihCu WՉTlPLX$#'B<5P =ދgzj H2K͋p%b?d֜M+m3~%):Qx A*q LҌ` A,"̺`BSa=5C w xDM \V-T*%T{ps&Ir҂)1'ȡeEkߥCL 5-x8͟t+e*m8czfHABKD5Cl\m (0#(X& k'&`>&fVY05{_4]0 gJ*㱉a02<0j"PJ%@Tc (4C0pơuyE^o9D1Q tP m߈)Xp7ψ6V रV`qEaJqk*R jPAf`iX%Orġ=Kly>7^ڀAkRː&m~7ArJN,E`)pn\@#PD;1woUd aap|!0zF 1M2aq*8;2 GR!cS$0r<@"V+.8^+Qhh]~,v,bsݳqkT&VGB3/W(,9] %DP WSbMs<$ c>v=a, SΥ(̴\A\Uq#jLSX"[G5X!9ը5[Q똃!N@LWĻea=GYAZj(f@Щ~8cd\AU"EV1e5\re%CBD"r!qHKP 1௴`-_tMAblS0w){Ӥ CC Pǖ_/(r!LIė!cQ$jMkvAC'8Xz_4M6~Oj ,b#q%35*L 9Tn*8iLkn.˘eptRi&z,L6n y$ (qb22#nY qwVb菹O']*BCc9# d@`+ʻU[ao BBɜtp#_*NEs-|DlP%% rk$Ng3?!w>LfaĶؼT`Dvm8K$J^ҫ$9`c6X$`L3 6aA`$ ܡqZT2tؿg2 q!B/-{:AD7^ۑsbIJ(PwG~jlovwpQj*6ѻP"Lf=V߉ Yz剶X_Qm 1{>"~0T^Bԡ{YL)[hj&?6th뺀PYaAQ~\\9]PmxGjhnly,h!*f"%+}&=S2\N<,w =gSe5̹j^)BeV}U0?s%GW፸ʷvÅ,z̺87bnVD zM>ejՏjoR]~VJں lTz<7īShٕMp3*"߼nYX&$-c: z5Gg^_Q ,IT1`B4UܣU`͈ÓV%<=C YC(̴&j?ɊQBdzr?fv2 a?he*p%V| aKdV>z k] ܗ}RJ ?xЂY6yeFSboIN?L@{|YpgCP ݯVԫ\T"5,N9xH4Vb=eMґTX$ΏMp:, ma[VhL^PCԡdtHMdu)ƧT6e^ +Ʊ&鏤_WU<؏v@L_cۂ~0Ub曃 s/,ցe`'$;j(U_9J֮¯h"nQd&L(IP4,.+1xX6[ $Yյ^:-i` -A3-C8i uek;bw97mq.`1g~`-cܼ{;u |KI)-4ϘhnGx 1V*YuʲI(+vNp^k^WύJ9ޟZVpݾf[>HNr1S=x4kX4\V{l뿘T)e`Em\0mܼ|F `W5`^UibOa\v /P>64gDb~kߑoKM|MZ=`۾36![.=lP?51+ظ\qpm+&D E15~|GT5>y|TWϘK,E.PFH'd#=ߜCƲê!(d-{kYyLH|',Jl_ vSJ ˋ[̥7"h;Y8h}#̯Pwbj[_/)C5͸/.}׼qH*Dq f(Œ-yƯkXc+ÚO0=`?%!=N^Bi>&dq+kC@ Z.ae(ejHO1;@W1N8mbA9쁡g1Rjav bVm5 =9+hM~kGdswPn1nm>3lz@?2Q3iK7u/M9!,47kkW C7}[_%2Kn\mv^=,JN M:*"P+|q):Ԧ^k{MckψXн7u06 Zl Y% ,,Jןbq,?)br[f/6 '>[?P)l)j<. H nÿ!A>dF*FT"Jk_ˌ>(^bkZe1l|mrU>K}IZ8 Hqi]{_'kϱ|, 8/1Ѳ2ee/1Yz\Rua[XUUujc1MTGp5feFPwUxPc Rjj-4F3uە`SgkUypfH`9#IM ^`!E^1.4'P"7oa2SX??\ W'ƁKS0]5ͳ[l,sI[ޮ{lIH5h\2%û2 ڷPW"+kaBFsMךL,0쩏w0v_zHxgQW\n[õ@뉭Pʮ&OXcth~;hD::HwX;ȡ XlxQHf"cO=(P{N %v>HԚ:k[HSH8z3-$JGSK_5<.(]y&ǃ5ߴ2dXP:#^!&+|Ey%#J[ H w|n-Ee\wubx\R.LjX3}Px,u_] h~߉պqd=6Tegs!ї7!ρAOWzSwnY?xnye7)2кY#WQ^"y~@xԙT9x Qvׯ}\?X(Ev?((#²1 / ~`z|?l_HUc`ڢ33β5 zH.>PA礵W>/bkK$x{(1Fɯgꔤ@4J ĿuI+~bY渀q/U8/sPh 6܃1$- vv^{j;w9Yn!߱{Y +~!toQxx;<[=bb&P~X_kCdu;>И :uu RG!f!&j虤-<~/-U O 1ܘQxwk0xg+~FU޶W$0Y X*7Z~p>0(fG#+ĤDJL)r^(+Ȑ%?]C/4-(&0X1B'9V9fvv@䖢6D- :>"fljS*:b4}G ?u3uKmK9ppC^aњ}yY=UAj4V uqhRj"Mb*;^<<؅Q5-e/<{vu-}O[i~b;e \ryA[ V%y%Fa u60]I֍h|}}*7۲(x^P})N\2| eSt\ 54U~ puab/+Kjw~J`(S,эWu/?Pw{]CdSuSGXVJ?%P點8/,b˚ kqVv2} W#<ex^%21y}]L W[q̗xAlkс]qEp190%s 2[є~hprwӓ /QcL,ד =h=*yYGCy]ëKG\\P90US#\s{KFxfc(SjǓP-ӗ_8i$9)EK;JU7Yk?(^V_Bq݅iW'Ԋ&d.t>Xt\nחJH0NfGhWg o5nS %o)eecFk KxcP J%dāmᅰfDtntdzPz ]VFN!]C"r`׈`I~]{c`M.#ͧj?;>! H>^,~feabcYW-oNv u[8)'FJ^AM-Σ*D5]lQ`:_P֍: i/)X8<+1.@NV~>Ў?J=?gɉ-n/fWwB^c], XW!J+̷uQk'c47Pv/,|ˏhiy5/ٖDJޔ^t2g[DFp*[2y_y|hb"N7c1)1/*R2E<\~_D5{)3m)JyYuLnaDfU;?2q V:r%Z韗scLWD=@sxZ̈́ ;|X7w`:{Q{D:-ncW 04u/Ecsqw0=9Mh޳DL\h} zr6 qUA{\ޅ<}^9 JH0all-in-one-seo-pack/dist/Lite/assets/images/tf.p0oGLkzl.png000064400000005336151222736000017373 0ustar00PNG  IHDRddGrj^* n ^rF+;wõbu"˪[5$me>:ڊWaIA|\Z-~;z g'Rh':uh~}Nzɓ,"VF1Sw^aFה6 /w )m幢CFφ5L@1yYjU(_V2QN;vޡݕ 1bxJF߃ ڷv eZю4bó҂mE% T -@DCJ)nff `t@F IjҷӛH P4@ڵ>c;dwb!$  2}F/''O^6 ;14Z:!Ȍ={nuS  V\]df;HZlbm#dM=Z$8|X后_o AF$|4ٶmڵwPi&$WR;v5K%j_ۂ HJ-LIGW,R_TH:kwt"uJ,WPZC[ ;ZBUTlf! @$u ؠ/QMl # ¯ [dҩ)T:slj= Tr͕9S=ˆ_*u)9z5 's lB/*ADI +̆Yg1Se!_uf{@_WlɑՆnG H|S̋9 a D ӖUmEUILE$8NoAtu5*;ۭ[8.:r4._A_MÁj{a$߮.d|" Xr! 1=v/~̐b$2T[ep mCA{y1 nWvMͶ $%b23uʜ;B$1/&3O'!+*" &$?J{zx!!&RL=ߴ\ZMC z-D҄K $H5f[ $T`) A HhB`XdF[k Rpg7UqB"CS"gxB@@@6}M6= xĐ figJJ ^ Z)DAc"d^?%7Ys*Yg{ E9t.^ )ȟP6H`pA(%IՎ U+_ĎH=c l'D\MT`z3pb8;[k[i{$%@'=CáZώN,9:;9b )/z4w,?{a(X1 v4X:Veጀ WEbHܺi9G1FRYL+Y zR,$,+b,9ml`BQI2_Iǡp{"7WFL~Dc)0}A1}2E@3N∵䨊Sm/c"tFZdv}D;A^̖Gqs+/(ûKEDpQI3zaYZs,"{\a |pFLkq5O4 X)j`ֻ ;ayAe š P?U3 㛡JcfF)aq' OD*zӒ:Dn-/#6FiHO# ;7oSH%.;^ZeyTY%yS_AM{Df?@Ǜ %YΙrcS2:Iأ ΀G~΁,8br"Lj@YgEdђBLj`G:VqzBoV. ?R-Z}܏CYɊR5ٴ ?F%p3b)~vkOatIENDB`all-in-one-seo-pack/dist/Lite/assets/images/wpforms.CAcCc8Da.png000064400000007470151222736000020247 0ustar00PNG  IHDRddG~>>>~@>͞>>~>z?>>>~>>~>~~}>?>?~~>}~~~>S?8~~A?:>~ym~7:F]bZa{Y~34=Zv/>~ӕ[7:FĘK.2<<wjυAID?HTWd1 Fp+m)NP(d%zOb%#֓HM]Shvʴ]"h&RLz8eEӃ^Us-RzBu:~LzL}H&Ƌ~sKR3l6[.t}bp7h._#l={b]aQt>g6Y pd_~AP/ܫ~rҘokv=仃xʃQMQ:a7˳__cfREGPNEU@J#͐_uwlh΍^ZGD99\:'ʬ񺖹ʝjtf|^vYqAlloVORkVOq@X'!'Xƾ)`OmL3"$*NޥoV;ȖMtRNS m<&^W|oq}3H$fIeͼBǶ='ġNxZ1پԽnþfP IDAThMh`&tHG ~.xL^[H%PJ2&[aV(:h1v8/ΛxPP^|&GC|}9۳lt]NǦ[ml΁^ {T]"ڦLEdXEvT8(&1Q:B[7($WIJF˗UjPXm||וdmeiZ% Go߹wK$o]xÑj%+59J=wh1%>hoɒ1L׍ëmn>9`-NGN4 C8yFj@`&o,n{d2[ricsKYN=Ti.p "H.Kb% /N?6T. T.]<>I'h ee햇Bx%'Oy r t .={ b!="!j ot@4H09E>SRy*-1zM\Otp4=]LM$pg l\dN%}u]Ӡa<ǜ=73` Μ f.y^1~ݽwl_K@[zm= )"(Y&)R55JkjIB+hZmP\X, >NTP/xx7i3+1 ݋ |4 ~8_;|E;g~Tks.Wpw35 ͥpɢťN?9bIXJ9+wnWhYԝ=vsgnP]Vcxkg_ޏ|?z/2J(j?Gx6[\̮p) D X @@",` D X @@",` DNM.(OEt\)U0{/ZGStoXM~6JZv*oTkE̱=hdJ ѳ%4}>:WX;?O>>Zу\<ĒeQօ0嫕3 PUմS0ۚgkf-OWMG6~&#;7+UTѦo|WjOio w aPڝYwޜ֗F$RW]ݯ|0s%uP-cޓP@;v|2l?^VqC}K\ |WCTˑY^j ӠKlڟ 4@@",` D X @@m+_\U |OTunT?Éx2f,[9,< A",` DvnݜۇTuC0ex'W |3ZQԅr",` D X :x#fkC\; IR-sRߖ]"yc3WCns׮s')r{q4kl o*Z9s)y ܎%RkĂjYaղ>#hs>{]"}ʪjjY˴g:]Z֗apGc" ׷1A3Y | qeJ.2H=FXkֲt24J{(24P]L9n:tRRR=Dblx0ݭ% CCc<mI/PW':,NMSiy,:hLr[:4SWNŷSX<t*HhN0g C](,`/Π./EӼ)}_ݥ1c1\]fCžt&.HM`Y'h.pK6f+`YDJp7|;~'3icY/[{iaްt_]C)"4@kɹGΔ;ȕ&S[(,pȶsGex ??_z8ZxS?F%g#ᐽ)P:6 \,&j}݃=_+?$S)^,si&ttoӗz#@13c]VX;oPj}cu],T|cP~j ǏL3K?ϦRłevl(#k/_թfbÃ@1ac\;p9K,Xܿ_Y;**UѠQ4]{Dw_ķwӻ8 -t{g;.=NyHB4ݯMp9yỈk6һIV6*f>xK.|Y!tXXJB.U8C:_,Wnz=ibJyO,I Tۏ9V0#_n8mݪe RziUj3N͂df^e@02&(qA#|nTX-g Kk`y+)JXw%#Nh݄`ywhڣL6!X B~v+t[!WFB`'{&mϸHSV-G;^MѫfDy͙}3SRuX=Xb´E4wmCxAo:%u_扎 .-vb⩴nXx$|musmT} ӋU˚ioʼ7m2g-*n8Z>UOh݌E|ݖ|+y7Z WUCӤ.2rDY?QՉ0JGHuj͊wwU* r WX.,7,`]ӊ{gMJanѢ],` D . g1[`޶ï<lK?˪%Fx5)} KOSߖV+k3cE&:]L榪#[Ųa*$uЏHic`,;o3H<>ek}%=tP7 -xYUwn|~ u oooj ޟ~ԨwڅSٯ55˪w[8ZCu)OeOH7.։0O߁MVĸ ÓS?r8'X \'XoB@",` Dfްg:/뎫# ̂-(@܀.*`:mrb=@  s+nᙳq!`sΦͥ@ D X @@",` D X @@",` o=R7JIENDB`[#cVa?@c Z{d!Jw=ue9iﳂ-Ⱥ&8Md_JϷi1]' <8rCj <3\/1(hhn|3-Rǽt'Yk}{: IaѝGAgXvu}{^iNE}Pgٶ?a;|5๑\7 Dx Вң{&n@l4d_4 xٖ#iy 5Vk8i>Os&³oΉ4>b2] {}g9c9j3лЏub]~<2SϾ8ǀy}"Q  {4ټX[=N ^d s:=@uk(=]%^/cC+1%|yIsSs(kҎW׻d4i:$;Pm0'hGNqNъ>&'J務ކz5zI- +#otџCrB#uuI*$c> ܏d5VC//WOxW \`m |_QњF~Oy>K{5W~~6:r@철VmQ5d5GFS_TU2< :@q]\Z cKk2׹&rk% 3xؿz(v`Ph.f t̤2H1@4ɠ sNK6:hK)m{75?{dzY,ܘ?jNځd[ N[h>;i~/G zmEB8M53\GL n}ir'= Fw >b՞"C~V5vfǨMZit=|{WA `aW`9<H x.wo*%pÐ9 `pÙz c0 [h\ZuG5dDL6De=0ϼ.n h$\K:A^h VW?S ΖSy=7^pQוJ{ueNiɨ_n?W+&<1@{iYKx4'uv@7ۑ/.6&cr|.w7&"{eYi*n3b:u9(,bujR ܖs&B}@]:׿#1CD M&kMťVڨwIVOGZ梾3 c8f5V~9 јǛw0 >uU&.ǮЙf-ؕIp{w6WlFd8s=&8+Di/MWL Ҁ\kʔ8cxA i +J bF7>&n&'-yN)2ShrOnHSJR7Ό5>Ei<5a Z[&?8 (RUԻSݠhW##&pyu5Fn^g]xg~i&'y Qc9`Ã^t=nriYVo'U#dhԷi{R2 ܡd.zYi[GFމB[Wv^:WV^kĻ^.?@ 1:4]iM 6j1 @'i@+Ѝq?.fW_Na-{XI(D݃ms@MF$܊?`76ZGXa@׌n3@NpWc@͠F&*$ Gu-ʡsVM2!-1 u.4"F;eoZ̵m lZ韍4l=`8 rmmhq~#e&|8R2gAn90d X`NRڰZߖۜݮ!ī*˲d,k[HW2f xVzhC%Yq'^F~ZZ a\Atbp`_+0r{V3$.7{<0cp4j|ޡ6mY2| t@'Y5dff9$$<\D龰*|=^ܺmTg&9J6su1T,dTRC%qF"LyP&ɤPI9$^GBI6k;^;J2ע9s+`"Yo4@"q[.TtP_/hFN-_QTJ6I*9 7ƕ*h~E˘ UcRV>rgUJW:)W<^҈#4 ΃QhfUP i\ϱEہJl#M^l7ϓGJ$-. *gVҘԶɱݣ{ݟğixpKz>xd^a;a^\w(Ph?}>W6r/K )طҾ֭ؤ˩Ѧӣ޹͎Ø̆b\ĊcWVoz}vySywOulp8l-b`wM_3YkRn8POHMTE@~D<{@h=bMѡ&-bvfO8r*+ii1t)]yªz6oux2CB.-mm\v&j t;=N]`%t~G&%'t!dnv>scF g.ȴm'B[DELG.:YX' L籈yT_3Jb"%p@^.J7Tσ m~(LŊʞKL_6@=ϞIENDB`all-in-one-seo-pack/dist/Lite/assets/js/AboutUs.qljW4kpi.js000064400000041354151222736000017406 0ustar00import{o as b,u as I}from"./links.CKSg78-h.js";import{n as a}from"./isArrayLikeObject.CkjpbQo7.js";import{e as k}from"./em.2x6etyqr.js";import{G as D,a as W}from"./Row.ou4tdPuA.js";import{S as C}from"./External.bx7ZSfw_.js";import{y as m,c as f,a as i,t as n,D as _,m as c,o as r,F as S,L as $,l as g,d,E as h}from"./vue.esm-bundler.DzelZkHk.js";import{_ as A}from"./_plugin-vue_export-helper.BN1snXvA.js";import"./default-i18n.BtxsUzQk.js";const T=""+window.__aioseoDynamicImportPreload__("images/team.C8DBqPIM.jpg"),F=""+window.__aioseoDynamicImportPreload__("images/afwp.CeIvddre.png"),E=""+window.__aioseoDynamicImportPreload__("svg/blc.OdlyqOb-.svg"),O=""+window.__aioseoDynamicImportPreload__("images/edd.DpQTObrr.png"),B=""+window.__aioseoDynamicImportPreload__("images/ff.DHfQgB8s.png"),M=""+window.__aioseoDynamicImportPreload__("images/if.BzSUPWic.png"),U=""+window.__aioseoDynamicImportPreload__("images/mi.CawcRRuC.png"),x=""+window.__aioseoDynamicImportPreload__("images/om.CO62a3V5.png"),L=""+window.__aioseoDynamicImportPreload__("images/pe.DLAePbst.png"),R=""+window.__aioseoDynamicImportPreload__("images/rafflepress.BX9JrCHk.png"),z=""+window.__aioseoDynamicImportPreload__("images/sc.CbU-f6AE.png"),j=""+window.__aioseoDynamicImportPreload__("images/smtp.CgF0XKTF.png"),G=""+window.__aioseoDynamicImportPreload__("images/sp.K6GWNRcC.png"),V=""+window.__aioseoDynamicImportPreload__("svg/swp.B6Wjzgdf.svg"),K=""+window.__aioseoDynamicImportPreload__("images/tf.p0oGLkzl.png"),Q=""+window.__aioseoDynamicImportPreload__("images/tp.DHhiBiXO.png"),X=""+window.__aioseoDynamicImportPreload__("images/wpforms.CAcCc8Da.png"),Y=""+window.__aioseoDynamicImportPreload__("images/wpsp.CvAXWjK4.png"),q=""+window.__aioseoDynamicImportPreload__("images/yf.B3poydhR.png"),H=""+window.__aioseoDynamicImportPreload__("svg/wpcode.gpKvR65w.svg"),J=""+window.__aioseoDynamicImportPreload__("svg/charitable.Bdjxf6b0.svg"),Z=""+window.__aioseoDynamicImportPreload__("svg/duplicator.ltQ8M9rj.svg"),N={setup(){return{pluginsStore:b(),rootStore:I()}},components:{GridColumn:D,GridRow:W,SvgExternal:C},data(){return{getAssetUrl:a,teamImg:T,localPlugins:[],networkActivated:[],strings:{welcome:{p1:this.$t.sprintf(this.$t.__("Welcome to %1$s, the original SEO plugin for WordPress. At %2$s, we build software that helps you rank your website in search results and gain organic traffic.",this.$td),"All in One SEO","All in One SEO"),p2:this.$t.__("Over the years, we found that most other WordPress SEO plugins were bloated, buggy, slow, and very hard to use. So we designed our plugin as an easy and powerful tool.",this.$td),p3:this.$t.__("Our goal is to take the pain out of optimizing your website for search engines.",this.$td),p4:this.$t.sprintf(this.$t.__("%1$s is brought to you by %2$s, the same team that’s behind the largest WordPress resource site, WPBeginner, the most popular lead-generation software, OptinMonster, the best WordPress analytics plugin, MonsterInsights and many more.",this.$td),"All in One SEO","Awesome Motive"),p5:this.$t.__("Yup, we know a thing or two about building awesome products that customers love.",this.$td),imageCaption:this.$t.sprintf(this.$t.__("The %1$s Team",this.$td),"Awesome Motive")},plugins:{actions:{install:this.$t.__("Install Free Plugin",this.$td),activate:this.$t.__("Activate",this.$td),manage:this.$t.__("Manage",this.$td)},status:this.$t.__("Status:",this.$td),statuses:{activated:this.$t.__("Activated",this.$td),deactivated:this.$t.__("Deactivated",this.$td),notInstalled:this.$t.__("Not Installed",this.$td)}}},pluginData:{brokenLinkChecker:{name:"Broken Link Checker",description:this.$t.__("Broken Link Checker by AIOSEO is an essential tool for ensuring that all internal and external links on your website are functioning correctly. Quickly check your site for broken links and easily fix them to improve SEO.",this.$td),icon:a(E),installed:!1,canInstall:!1,activated:!1,loading:!1},optinMonster:{name:"OptinMonster",description:this.$t.__("Instantly get more subscribers, leads, and sales with the #1 conversion optimization toolkit. Create high converting popups, announcement bars, spin a wheel, and more with smart targeting and personalization.",this.$td),icon:a(x),installed:!1,canInstall:!1,activated:!1,loading:!1},wpForms:{name:"WPForms",description:this.$t.__("The best drag & drop WordPress form builder. Easily create beautiful contact forms, surveys, payment forms, and more with our 1000+ form templates. Trusted by over 6 million websites as the best forms plugin.",this.$td),icon:a(X),installed:!1,canInstall:!1,activated:!1,loading:!1},wpFormsPro:{name:"WPForms Pro",free:"wpForms",installed:!1,canInstall:!1,activated:!1,loading:!1},miLite:{name:"MonsterInsights",description:this.$t.__("The leading WordPress analytics plugin that shows you how people find and use your website, so you can make data driven decisions to grow your business. Properly set up Google Analytics without writing code.",this.$td),icon:a(U),installed:!1,canInstall:!1,activated:!1,loading:!1},miPro:{name:"MonsterInsights Pro",free:"miLite",installed:!1,canInstall:!1,activated:!1,loading:!1},emLite:{name:"ExactMetrics",description:this.$t.__("The ExactMetrics Google Analytics for WordPress plugin helps you properly setup all the powerful Google Analytics tracking features without writing any code or hiring a developer.",this.$td),icon:a(k),installed:!1,canInstall:!1,activated:!1,loading:!1},emPro:{name:"ExactMetrics Pro",free:"emLite",installed:!1,canInstall:!1,activated:!1,loading:!1},wpMail:{name:"WP Mail SMTP",description:this.$t.__("Improve your WordPress email deliverability and make sure that your website emails reach user’s inbox with the #1 SMTP plugin for WordPress. Over 3 million websites use it to fix WordPress email issues.",this.$td),icon:a(j),installed:!1,canInstall:!1,activated:!1,loading:!1},wpMailPro:{name:"WP Mail SMTP Pro",free:"wpMail",installed:!1,canInstall:!1,activated:!1,loading:!1},wpcode:{name:"WPCode",description:this.$t.__("Future proof your WordPress customizations with the most popular code snippet management plugin for WordPress. Trusted by over 1,500,000+ websites for easily adding code to WordPress right from the admin area.",this.$td),icon:a(H),installed:!1,canInstall:!1,activated:!1,loading:!1},wpcodePro:{name:"WPCode Pro",free:"wpcode",installed:!1,canInstall:!1,activated:!1,loading:!1},seedProd:{name:"SeedProd Coming Soon",description:this.$t.__("The fastest drag & drop landing page builder for WordPress. Create custom landing pages without writing code, connect them with your CRM, collect subscribers, and grow your audience. Trusted by 1 million sites.",this.$td),icon:a(G),installed:!1,canInstall:!1,activated:!1,loading:!1},seedProdPro:{name:"SeedProd Coming Soon Pro",free:"seedProd",installed:!1,canInstall:!1,activated:!1,loading:!1},trustPulse:{name:"TrustPulse",description:this.$t.__("Boost your sales and conversions by up to 15% with real-time social proof notifications. TrustPulse helps you show live user activity and purchases to help convince other users to purchase.",this.$td),icon:a(Q),installed:!1,canInstall:!1,activated:!1,loading:!1},rafflePress:{name:"RafflePress",description:this.$t.__("Turn your website visitors into brand ambassadors! Easily grow your email list, website traffic, and social media followers with the most powerful giveaways & contests plugin for WordPress.",this.$td),icon:a(R),installed:!1,canInstall:!1,activated:!1,loading:!1},rafflePressPro:{name:"RafflePress Pro",free:"rafflePress",installed:!1,canInstall:!1,activated:!1,loading:!1},facebookFeed:{name:"Smash Balloon Facebook Feeds",description:this.$t.__("Easily display Facebook content on your WordPress site without writing any code. Comes with multiple templates, ability to embed albums, group content, reviews, live videos, comments, and reactions.",this.$td),icon:a(B),installed:!1,canInstall:!1,activated:!1,loading:!1},facebookFeedPro:{name:"Smash Balloon Facebook Feeds Pro",free:"facebookFeed",installed:!1,canInstall:!1,activated:!1,loading:!1},instagramFeed:{name:"Smash Balloon Instagram Feeds",description:this.$t.__("Easily display Instagram content on your WordPress site without writing any code. Comes with multiple templates, ability to show content from multiple accounts, hashtags, and more. Trusted by 1 million websites.",this.$td),icon:a(M),installed:!1,canInstall:!1,activated:!1,loading:!1},instagramFeedPro:{name:"Smash Balloon Instagram Feeds Pro",free:"instagramFeed",installed:!1,canInstall:!1,activated:!1,loading:!1},twitterFeed:{name:"Smash Balloon Twitter Feeds",description:this.$t.__("Easily display Twitter content in WordPress without writing any code. Comes with multiple layouts, ability to combine multiple Twitter feeds, Twitter card support, tweet moderation, and more.",this.$td),icon:a(K),installed:!1,canInstall:!1,activated:!1,loading:!1},twitterFeedPro:{name:"Smash Balloon Twitter Feeds Pro",free:"twitterFeed",installed:!1,canInstall:!1,activated:!1,loading:!1},youTubeFeed:{name:"Smash Balloon YouTube Feeds",description:this.$t.__("Easily display YouTube videos on your WordPress site without writing any code. Comes with multiple layouts, ability to embed live streams, video filtering, ability to combine multiple channel videos, and more.",this.$td),icon:a(q),installed:!1,canInstall:!1,activated:!1,loading:!1},youTubeFeedPro:{name:"Smash Balloon YouTube Feeds Pro",free:"youTubeFeed",installed:!1,canInstall:!1,activated:!1,loading:!1},pushEngage:{name:"PushEngage",description:this.$t.__("Connect with your visitors after they leave your website with the leading web push notification software. Over 10,000+ businesses worldwide use PushEngage to send 15 billion notifications each month.",this.$td),icon:a(L),installed:!1,canInstall:!1,activated:!1,loading:!1},searchWp:{name:"SearchWP",description:this.$t.__("The most advanced WordPress search plugin. Customize your WordPress search algorithm, reorder search results, track search metrics, and everything you need to leverage search to grow your business.",this.$td),icon:a(V),installed:!1,canInstall:!1,activated:!1,loading:!1,installUrl:this.$links.utmUrl("aioseo","about-us","https://searchwp.com/")},affiliateWp:{name:"AffiliateWP",description:this.$t.__("The #1 affiliate management plugin for WordPress. Easily create an affiliate program for your eCommerce store or membership site within minutes and start growing your sales with the power of referral marketing.",this.$td),icon:a(F),installed:!1,canInstall:!1,activated:!1,loading:!1,installUrl:this.$links.utmUrl("aioseo","about-us","https://affiliatewp.com/")},wpSimplePay:{name:"WP Simple Pay",description:this.$t.__("The #1 Stripe payments plugin for WordPress. Start accepting one-time and recurring payments on your WordPress site without setting up a shopping cart. No code required.",this.$td),icon:a(Y),installed:!1,canInstall:!1,activated:!1,loading:!1},wpSimplePayPro:{name:"WP Simple Pay Pro",free:"wpSimplePay",installed:!1,canInstall:!1,activated:!1,loading:!1},easyDigitalDownloads:{name:"Easy Digital Downloads",description:this.$t.__("The best WordPress eCommerce plugin for selling digital downloads. Start selling eBooks, software, music, digital art, and more within minutes. Accept payments, manage subscriptions, advanced access control, and more.",this.$td),icon:a(O),installed:!1,canInstall:!1,activated:!1,loading:!1},easyDigitalDownloadsPro:{name:"Easy Digital Downloads Pro",free:"easyDigitalDownloads",installed:!1,canInstall:!1,activated:!1,loading:!1},sugarCalendar:{name:"Sugar Calendar",description:this.$t.__("A simple & powerful event calendar plugin for WordPress that comes with all the event management features including payments, scheduling, timezones, ticketing, recurring events, and more.",this.$td),icon:a(z),installed:!1,canInstall:!1,activated:!1,loading:!1},sugarCalendarPro:{name:"Sugar Calendar Pro",free:"sugarCalendar",installed:!1,canInstall:!1,activated:!1,loading:!1},charitable:{name:"WP Charitable",description:this.$t.__("Top-rated WordPress donation and fundraising plugin. Over 10,000+ non-profit organizations and website owners use Charitable to create fundraising campaigns and raise more money online.",this.$td),icon:a(J),installed:!1,canInstall:!1,activated:!1,loading:!1},duplicator:{name:"Duplicator - WordPress Migration & Backup Plugin",description:this.$t.__("Leading WordPress backup & site migration plugin. Over 1,500,000+ smart website owners use Duplicator to make reliable and secure WordPress backups to protect their websites. It also makes website migration really easy.",this.$td),icon:a(Z),installed:!1,canInstall:!1,activated:!1,loading:!1}}}},methods:{activate(e){if(!this.plugins[e].installed&&this.plugins[e].installUrl){window.open(this.plugins[e].installUrl,"_blank").focus();return}this.plugins[e].loading=!0,this.pluginsStore.installPlugins([{plugin:e,type:"plugin"}]).then(l=>{if(this.plugins[e].loading=!1,Object.keys(l.body.completed).length)this.plugins[e].installed=!0,this.plugins[e].activated=!0,this.rootStore.aioseo.data.isNetworkAdmin&&this.networkActivated.push(e);else if(Object.keys(l.body.failed).length)throw new Error(l.body.failed)}).catch(l=>{this.plugins[e].loading=!1,console.error(`Unable to install ${e}: ${l}`)})},getPluginAdminUrl(e,l){return!this.rootStore.aioseo.data.isNetworkAdmin||!l.networkAdminUrl||!this.networkActivated.includes(e)?l.adminUrl:l.networkAdminUrl}},computed:{plugins(){return Object.keys(this.localPlugins).forEach(e=>{this.pluginData[e].free&&(this.pluginData[e].description=this.pluginData[this.pluginData[e].free].description,this.pluginData[e].icon=this.pluginData[this.pluginData[e].free].icon)}),this.pluginData}},mounted(){this.localPlugins={...this.pluginsStore.plugins},Object.keys(this.localPlugins).forEach(e=>{this.pluginData[e].installed=this.localPlugins[e].installed,this.pluginData[e].canInstall=this.localPlugins[e].canInstall,this.pluginData[e].canActivate=this.localPlugins[e].canActivate,this.pluginData[e].activated=this.localPlugins[e].activated,this.plugins[e].free&&(this.localPlugins[e].installed?delete this.localPlugins[this.plugins[e].free]:delete this.localPlugins[e])})}},ee={class:"aioseo-about-us"},se={class:"aioseo-about-us-welcome"},te={class:"welcome-intro"},ae={class:"welcome-image"},ie=["src","alt"],oe={class:"aioseo-about-us-plugins"},ne={class:"plugin-main"},le=["alt","src"],re={class:"main-name"},de={class:"plugin-footer"},ce={class:"footer-status"},fe={class:"footer-status-label"},ge={key:0,class:"footer-status footer-status-not-installed"},ue={key:1,class:"footer-status footer-status-deactivated"},me={key:2,class:"footer-status footer-status-activated"},he={class:"footer-action"};function pe(e,l,_e,we,o,t){const u=m("base-button"),w=m("svg-external"),y=m("grid-column"),v=m("grid-row");return r(),f("div",ee,[i("div",se,[i("div",te,[i("div",null,n(o.strings.welcome.p1),1),i("div",null,n(o.strings.welcome.p2),1),i("div",null,n(o.strings.welcome.p3),1),i("div",null,n(o.strings.welcome.p4),1),i("div",null,n(o.strings.welcome.p5),1)]),i("div",ae,[i("figure",null,[i("img",{src:o.getAssetUrl(o.teamImg),alt:o.strings.welcome.imageCaption},null,8,ie),i("figcaption",null,n(o.strings.welcome.imageCaption),1)])])]),i("div",oe,[_(v,null,{default:c(()=>[(r(!0),f(S,null,$(o.localPlugins,(p,s)=>(r(),g(y,{sm:"12",md:"6",key:s,id:s,class:"plugin"},{default:c(()=>[i("div",ne,[i("div",null,[i("img",{alt:t.plugins[s].name+" Plugin image",src:t.plugins[s].icon},null,8,le)]),i("div",null,[i("div",re,n(t.plugins[s].name),1),i("div",null,n(t.plugins[s].description),1)])]),i("div",de,[i("div",ce,[i("div",fe,n(o.strings.plugins.status),1),t.plugins[s].installed?d("",!0):(r(),f("div",ge,n(o.strings.plugins.statuses.notInstalled),1)),t.plugins[s].installed&&!t.plugins[s].activated?(r(),f("div",ue,n(o.strings.plugins.statuses.deactivated),1)):d("",!0),t.plugins[s].installed&&t.plugins[s].activated?(r(),f("div",me,n(o.strings.plugins.statuses.activated),1)):d("",!0)]),i("div",he,[!t.plugins[s].installed&&t.plugins[s].canInstall?(r(),g(u,{key:0,type:"blue",onClick:P=>t.activate(s),loading:t.plugins[s].loading},{default:c(()=>[h(n(o.strings.plugins.actions.install),1)]),_:2},1032,["onClick","loading"])):d("",!0),!t.plugins[s].installed&&!t.plugins[s].canInstall?(r(),g(u,{key:1,type:"blue",tag:"a",target:"_blank",href:p.wpLink},{default:c(()=>[_(w),h(" "+n(o.strings.plugins.actions.install),1)]),_:2},1032,["href"])):d("",!0),t.plugins[s].installed&&!t.plugins[s].activated?(r(),g(u,{key:2,type:"green",disabled:!t.plugins[s].canActivate,onClick:P=>t.activate(s),loading:t.plugins[s].loading},{default:c(()=>[h(n(o.strings.plugins.actions.activate),1)]),_:2},1032,["disabled","onClick","loading"])):d("",!0),t.plugins[s].installed&&t.plugins[s].activated&&t.getPluginAdminUrl(s,p).length!==0?(r(),g(u,{key:3,type:"gray",tag:"a",href:t.getPluginAdminUrl(s,p)},{default:c(()=>[h(n(o.strings.plugins.actions.manage),1)]),_:2},1032,["href"])):d("",!0)])])]),_:2},1032,["id"]))),128))]),_:1})])])}const Ce=A(N,[["render",pe]]);export{Ce as default}; all-in-one-seo-pack/dist/Lite/assets/js/AccessControl.B_dncQFp.js000064400000011750151222736000020472 0ustar00import{u as v,m as B,f as x}from"./links.CKSg78-h.js";import{s as a,_ as s}from"./default-i18n.BtxsUzQk.js";import{y as i,o as c,c as _,D as l,m as r,a as S,t as u,E as p,F as w,L,l as h,d as C}from"./vue.esm-bundler.DzelZkHk.js";import{_ as E}from"./_plugin-vue_export-helper.BN1snXvA.js";import{C as U}from"./Blur.B433XVqJ.js";import{C as P}from"./Card.C6Yzm1Gr.js";import{C as D}from"./ProBadge.Dgq0taM8.js";import{C as M}from"./SettingsRow.B0N4hwjp.js";import{C as N}from"./Index.Ck0NNxBQ.js";import"./isArrayLikeObject.CkjpbQo7.js";import"./Tooltip.DcUmvaHX.js";import"./Caret.Cuasz9Up.js";import"./index.DX4OhBfI.js";import"./Slide.BfXXFx9A.js";import"./Row.ou4tdPuA.js";import"./constants.DARe-ccJ.js";const e="all-in-one-seo-pack",V=()=>{const t={tooltip:a(s("By default, only Administrators have permission to manage %1$s within WordPress. With Access Controls, you can easily extend access permissions to other user roles.",e),"AIOSEO"),accessControl:s("Access Control Settings",e),useDefaultSettings:s("Use Default Settings",e)},o=[{label:s("Administrator",e),name:"administrator",description:a(s("By default Admins have access to %1$sall SEO site settings%2$s",e),"","")},{label:s("Editor",e),name:"editor",description:a(s("By default Editors have access to %1$sSEO settings for General Settings, Search Appearance, Social Networks, and Redirects as well as all settings for individual pages and posts.%2$s",e),"","")},{label:s("Author",e),name:"author",description:a(s("By default Authors have access to %1$sSEO settings for individual pages and posts that they already have permission to edit.%2$s",e),"","")},{label:s("Contributor",e),name:"contributor",description:a(s("By default Contributors have access to %1$sSEO settings for individual pages and posts that they already have permission to edit.%2$s",e),"","")},{label:s("SEO Manager",e),name:"seoManager",description:a(s("By default SEO Managers have access to %1$sSEO settings for General Settings, Sitemaps, Link Assistant, Redirects, Local SEO, and individual pages and posts.%2$s",e),"","")},{label:s("SEO Editor",e),name:"seoEditor",description:a(s("By default SEO Editors have access to %1$sSEO settings for individual pages and posts.%2$s",e),"","")}];return{strings:t,roles:o}},F={computed:{getRoles(){const t=v();return this.roles.concat(Object.keys(t.aioseo.user.customRoles).map(o=>({label:t.aioseo.user.roles[o],name:o,description:this.$t.sprintf(this.$t.__("By default the %1$s role %2$shas no access%3$s to %4$s settings.",this.$td),t.aioseo.user.roles[o],"","","All in One SEO"),dynamic:!0})))}}},G={setup(){const{strings:t,roles:o}=V();return{composableStrings:t,roles:o}},components:{CoreBlur:U,CoreCard:P,CoreProBadge:D,CoreSettingsRow:M,Cta:N},mixins:[F],data(){return{strings:B(this.composableStrings,{wpRoles:this.$t.__("WP Roles (Editor, Author)",this.$td),seoManagerRole:this.$t.__("SEO Manager Role",this.$td),seoEditorRole:this.$t.__("SEO Editor Role",this.$td),defaultSettings:this.$t.__("Default settings that just work",this.$td),granularControl:this.$t.__("Granular controls per role",this.$td),ctaButtonText:this.$t.__("Unlock Access Control",this.$td),ctaHeader:this.$t.sprintf(this.$t.__("Access Control is a %1$s Feature",this.$td),"PRO")})}},computed:{getLiteRoles(){const t=this.getRoles;let o=1;for(;8>t.length;)t.push({label:this.$t.__("Custom Role",this.$td)+" "+o,name:"customRole"+o}),o++;return t}}},T={class:"aioseo-access-control-lite"},W={class:"toggle"};function j(t,o,b,d,n,f){const g=i("core-pro-badge"),m=i("base-toggle"),A=i("core-settings-row"),R=i("core-blur"),O=i("cta"),k=i("core-card");return c(),_("div",T,[l(k,{slug:"accessControl"},{header:r(()=>[S("span",null,u(n.strings.accessControl),1),l(g)]),tooltip:r(()=>[p(u(n.strings.tooltip),1)]),default:r(()=>[l(R,null,{default:r(()=>[(c(!0),_(w,null,L(f.getLiteRoles,$=>(c(),h(A,{key:$.name,name:$.label},{content:r(()=>[S("div",W,[l(m,{disabled:!0,modelValue:!0},{default:r(()=>[p(u(n.strings.useDefaultSettings),1)]),_:1})])]),_:2},1032,["name"]))),128))]),_:1}),l(O,{"feature-list":[n.strings.granularControl,n.strings.wpRoles,n.strings.seoManagerRole,n.strings.seoEditorRole],"cta-link":t.$links.getPricingUrl("access-control","access-control-upsell"),"button-text":n.strings.ctaButtonText,"learn-more-link":t.$links.getUpsellUrl("access-control",null,t.$isPro?"pricing":"liteUpgrade"),"align-top":""},{"header-text":r(()=>[p(u(n.strings.ctaHeader),1)]),description:r(()=>[p(u(n.strings.tooltip),1)]),_:1},8,["feature-list","cta-link","button-text","learn-more-link"])]),_:1})])}const y=E(G,[["render",j]]),H={setup(){return{licenseStore:x()}},components:{AccessControl:y,AccessControlLite:y}},I={class:"aioseo-access-control"};function q(t,o,b,d,n,f){const g=i("access-control",!0),m=i("access-control-lite");return c(),_("div",I,[d.licenseStore.isUnlicensed?C("",!0):(c(),h(g,{key:0})),d.licenseStore.isUnlicensed?(c(),h(m,{key:1})):C("",!0)])}const lt=E(H,[["render",q]]);export{lt as default}; all-in-one-seo-pack/dist/Lite/assets/js/AdditionalInformation.cpw07oEZ.js000064400000027140151222736000022150 0ustar00import{a as k,u as O,g as C,m as T}from"./links.CKSg78-h.js";import"./default-i18n.BtxsUzQk.js";import{y as l,c as d,D as n,m as p,o as m,a as o,E as h,t as r,d as c,I as P}from"./vue.esm-bundler.DzelZkHk.js";import{_ as R}from"./_plugin-vue_export-helper.BN1snXvA.js";import{u as L,W as U}from"./Wizard.Cs56tV0n.js";import{M as x}from"./MaxCounts.DHV7qSQX.js";import{B as A}from"./Phone.D5yQTsW7.js";import{B}from"./RadioToggle.XiBFFWmC.js";import{C as M}from"./ImageUploader.DrSIpvuy.js";import{C as D}from"./SocialProfiles.CvQDn_XF.js";import{W as E,a as J,b as H}from"./Header.DlbHtOYW.js";import{W as Y}from"./CloseAndExit.D_-Wd9tr.js";import{_ as G}from"./Steps.ig9y9PNj.js";import"./isArrayLikeObject.CkjpbQo7.js";import"./addons.Bhqo_sme.js";import"./upperFirst.Cx8cdEgZ.js";import"./_stringToArray.DnK4tKcY.js";import"./toString.EVG10Qqs.js";import"./preload-helper.B7sCc5Li.js";import"./Caret.Cuasz9Up.js";import"./Img.sJ8H0e44.js";import"./index.DX4OhBfI.js";import"./Plus.CShy191p.js";import"./Checkbox.CfGJSeWE.js";import"./Checkmark.Du5wcsnR.js";import"./Textarea.BirUpna9.js";import"./SettingsRow.B0N4hwjp.js";import"./Row.ou4tdPuA.js";import"./Twitter.DCBjQ0eg.js";import"./Logo.CuK32Muc.js";import"./Index.6gbvf_mk.js";const j={setup(){const{strings:a}=L();return{optionsStore:k(),rootStore:O(),setupWizardStore:C(),composableStrings:a}},components:{BasePhone:A,BaseRadioToggle:B,CoreImageUploader:M,CoreSocialProfiles:D,WizardBody:E,WizardCloseAndExit:Y,WizardContainer:J,WizardHeader:H,WizardSteps:G},mixins:[x,U],data(){return{showOtherSocialNetworks:!1,loaded:!1,loading:!1,stage:"additional-information",strings:T(this.composableStrings,{additionalSiteInformation:this.$t.__("Additional Site Information",this.$td),personOrOrganization:this.$t.__("Person or Organization",this.$td),choosePerson:this.$t.__("Choose a Person",this.$td),person:this.$t.__("Person",this.$td),organization:this.$t.__("Organization",this.$td),personOrOrganizationDescription:this.$t.__("Choose whether the site represents a person or an organization.",this.$td),name:this.$t.__("Name",this.$td),organizationName:this.$t.__("Organization Name",this.$td),phone:this.$t.__("Phone Number",this.$td),chooseContactType:this.$t.__("Choose a Contact Type",this.$td),contactType:this.$t.__("Contact Type",this.$td),contactTypeDescription:this.$t.__("Select which team or department the phone number belongs to.",this.$td),logo:this.$t.__("Logo",this.$td),defaultSocialShareImage:this.$t.__("Default Social Share Image",this.$td),yourSocialProfiles:this.$t.__("Your Social Profiles",this.$td),showMore:this.$t.__("Show more",this.$td)})}},watch:{"optionsStore.options.social.profiles":{deep:!0,handler(a){this.setupWizardStore.additionalInformation.social.profiles=a}}},computed:{users(){return[{label:this.$t.__("Manually Enter Person",this.$td),value:"manual"}].concat(this.rootStore.aioseo.users.map(a=>({label:`${a.displayName} (${a.email})`,gravatar:a.gravatar,value:a.id})))}},methods:{getPersonOptions(a){return this.users.find(e=>e.value===a)},getContactTypeOptions(a){return this.$constants.CONTACT_TYPES.find(e=>e.value===a)},saveAndContinue(){this.loading=!0,this.setupWizardStore.saveWizard("additionalInformation").then(()=>{this.$router.push(this.setupWizardStore.getNextLink)})},showHideOtherSocialNetworks(){this.showOtherSocialNetworks=!this.showOtherSocialNetworks}},mounted(){this.$nextTick(()=>{const a=JSON.parse(JSON.stringify(this.optionsStore.options.searchAppearance)),e=JSON.parse(JSON.stringify(this.optionsStore.options.social));this.setupWizardStore.additionalInformation.social.profiles=JSON.parse(JSON.stringify(e.profiles)),this.setupWizardStore.additionalInformation.socialShareImage=e.facebook.general.defaultImagePosts,this.setupWizardStore.additionalInformation.siteRepresents=a.global.schema.siteRepresents,this.setupWizardStore.additionalInformation.person=a.global.schema.person,this.setupWizardStore.additionalInformation.organizationName=a.global.schema.organizationName,this.setupWizardStore.additionalInformation.organizationLogo=a.global.schema.organizationLogo,this.setupWizardStore.additionalInformation.personName=a.global.schema.personName,this.setupWizardStore.additionalInformation.personLogo=a.global.schema.personLogo,this.setupWizardStore.additionalInformation.phone=a.global.schema.phone,this.setupWizardStore.additionalInformation.contactType=a.global.schema.contactType,this.setupWizardStore.additionalInformation.contactTypeManual=a.global.schema.contactTypeManual,this.loaded=!0})}},q={class:"aioseo-wizard-additional-information"},F={class:"header"},K={class:"person-or-organization aioseo-settings-row no-border no-margin"},Q={class:"settings-name"},X={class:"name small-margin"},Z={class:"aioseo-description"},$={key:0,class:"aioseo-settings-row no-border no-margin"},oo={class:"settings-name"},to={class:"name small-margin"},eo={class:"person-label"},io={key:0,class:"person-avatar"},ao=["src"],so={class:"person-name"},no={class:"person-label"},ro={key:0,class:"person-avatar"},lo=["src"],mo={class:"person-name"},co={key:1,class:"schema-graph-name aioseo-settings-row no-border no-margin"},po={class:"settings-name"},go={class:"name small-margin"},ho={key:2,class:"schema-graph-name aioseo-settings-row no-border no-margin"},_o={class:"settings-name"},uo={class:"name small-margin"},fo={key:3,class:"schema-graph-phone aioseo-settings-row no-border no-margin"},zo={class:"settings-name"},So={class:"name small-margin"},vo={key:4,class:"schema-graph-contact-type aioseo-settings-row no-border no-margin"},Wo={class:"settings-name"},Io={class:"name small-margin"},yo={class:"aioseo-description"},bo={key:5,class:"schema-graph-contact-type-manual aioseo-settings-row no-border no-margin"},wo={class:"settings-name"},No={class:"name small-margin"},Vo={key:6,class:"schema-graph-image aioseo-settings-row no-border no-margin"},ko={class:"settings-name"},Oo={class:"name small-margin"},Co={key:7,class:"schema-graph-image aioseo-settings-row no-border no-margin"},To={class:"settings-name"},Po={class:"name small-margin"},Ro={class:"schema-graph-image aioseo-settings-row"},Lo={class:"settings-name"},Uo={class:"name small-margin"},xo={class:"header social"},Ao={class:"go-back"},Bo=o("div",{class:"spacer"},null,-1);function Mo(a,e,Do,t,s,g){const S=l("wizard-header"),v=l("wizard-steps"),W=l("base-radio-toggle"),f=l("base-select"),_=l("base-input"),I=l("base-phone"),u=l("core-image-uploader"),y=l("core-social-profiles"),z=l("router-link"),b=l("base-button"),w=l("wizard-body"),N=l("wizard-close-and-exit"),V=l("wizard-container");return m(),d("div",q,[n(S),n(V,null,{default:p(()=>[n(w,null,{footer:p(()=>[o("div",Ao,[n(z,{to:t.setupWizardStore.getPrevLink,class:"no-underline"},{default:p(()=>[h("←")]),_:1},8,["to"]),h("   "),n(z,{to:t.setupWizardStore.getPrevLink},{default:p(()=>[h(r(s.strings.goBack),1)]),_:1},8,["to"])]),Bo,n(b,{type:"blue",loading:s.loading,onClick:g.saveAndContinue},{default:p(()=>[h(r(s.strings.saveAndContinue)+" →",1)]),_:1},8,["loading","onClick"])]),default:p(()=>[n(v),o("div",F,r(s.strings.additionalSiteInformation),1),o("div",K,[o("div",Q,[o("div",X,r(s.strings.personOrOrganization),1)]),n(W,{modelValue:t.setupWizardStore.additionalInformation.siteRepresents,"onUpdate:modelValue":e[0]||(e[0]=i=>t.setupWizardStore.additionalInformation.siteRepresents=i),name:"siteRepresents",options:[{label:s.strings.person,value:"person"},{label:s.strings.organization,value:"organization"}]},null,8,["modelValue","options"]),o("div",Z,r(s.strings.personOrOrganizationDescription),1)]),t.setupWizardStore.additionalInformation.siteRepresents==="person"?(m(),d("div",$,[o("div",oo,[o("div",to,r(s.strings.choosePerson),1)]),n(f,{class:"person-chooser",options:g.users,modelValue:g.getPersonOptions(t.setupWizardStore.additionalInformation.person),"onUpdate:modelValue":e[1]||(e[1]=i=>t.setupWizardStore.additionalInformation.person=i.value)},{singleLabel:p(({option:i})=>[o("div",eo,[i.gravatar?(m(),d("div",io,[o("img",{alt:"User Gravatar",src:i.gravatar},null,8,ao)])):c("",!0),o("div",so,r(i.label),1)])]),option:p(({option:i})=>[o("div",no,[i.gravatar?(m(),d("div",ro,[o("img",{alt:"User Gravatar",src:i.gravatar},null,8,lo)])):c("",!0),o("div",mo,r(i.label),1)])]),_:1},8,["options","modelValue"])])):c("",!0),t.setupWizardStore.additionalInformation.siteRepresents==="organization"?(m(),d("div",co,[o("div",po,[o("div",go,r(s.strings.organizationName),1)]),n(_,{size:"medium",modelValue:t.setupWizardStore.additionalInformation.organizationName,"onUpdate:modelValue":e[2]||(e[2]=i=>t.setupWizardStore.additionalInformation.organizationName=i)},null,8,["modelValue"])])):c("",!0),t.setupWizardStore.additionalInformation.siteRepresents!=="organization"&&t.setupWizardStore.additionalInformation.person==="manual"?(m(),d("div",ho,[o("div",_o,[o("div",uo,r(s.strings.name),1)]),n(_,{size:"medium",modelValue:t.setupWizardStore.additionalInformation.personName,"onUpdate:modelValue":e[3]||(e[3]=i=>t.setupWizardStore.additionalInformation.personName=i)},null,8,["modelValue"])])):c("",!0),t.setupWizardStore.additionalInformation.siteRepresents==="organization"?(m(),d("div",fo,[o("div",zo,[o("div",So,r(s.strings.phone),1)]),n(I,{modelValue:t.setupWizardStore.additionalInformation.phone,"onUpdate:modelValue":e[4]||(e[4]=i=>t.setupWizardStore.additionalInformation.phone=i)},null,8,["modelValue"])])):c("",!0),t.setupWizardStore.additionalInformation.siteRepresents==="organization"?(m(),d("div",vo,[o("div",Wo,[o("div",Io,r(s.strings.contactType),1)]),n(f,{size:"medium",options:a.$constants.CONTACT_TYPES,placeholder:s.strings.chooseContactType,modelValue:g.getContactTypeOptions(t.setupWizardStore.additionalInformation.contactType),"onUpdate:modelValue":e[5]||(e[5]=i=>t.setupWizardStore.additionalInformation.contactType=i.value)},null,8,["options","placeholder","modelValue"]),o("div",yo,r(s.strings.contactTypeDescription),1)])):c("",!0),t.setupWizardStore.additionalInformation.siteRepresents==="organization"&&t.setupWizardStore.additionalInformation.contactType==="manual"?(m(),d("div",bo,[o("div",wo,[o("div",No,r(s.strings.contactType),1)]),n(_,{size:"medium",modelValue:t.setupWizardStore.additionalInformation.contactTypeManual,"onUpdate:modelValue":e[6]||(e[6]=i=>t.setupWizardStore.additionalInformation.contactTypeManual=i)},null,8,["modelValue"])])):c("",!0),t.setupWizardStore.additionalInformation.siteRepresents==="organization"?(m(),d("div",Vo,[o("div",ko,[o("div",Oo,r(s.strings.logo),1)]),n(u,{modelValue:t.setupWizardStore.additionalInformation.organizationLogo,"onUpdate:modelValue":e[7]||(e[7]=i=>t.setupWizardStore.additionalInformation.organizationLogo=i)},null,8,["modelValue"])])):c("",!0),t.setupWizardStore.additionalInformation.siteRepresents!=="organization"&&t.setupWizardStore.additionalInformation.person==="manual"?(m(),d("div",Co,[o("div",To,[o("div",Po,r(s.strings.logo),1)]),n(u,{modelValue:t.setupWizardStore.additionalInformation.personLogo,"onUpdate:modelValue":e[8]||(e[8]=i=>t.setupWizardStore.additionalInformation.personLogo=i)},null,8,["modelValue"])])):c("",!0),o("div",Ro,[o("div",Lo,[o("div",Uo,r(s.strings.defaultSocialShareImage),1)]),n(u,{modelValue:t.setupWizardStore.additionalInformation.socialShareImage,"onUpdate:modelValue":e[9]||(e[9]=i=>t.setupWizardStore.additionalInformation.socialShareImage=i)},null,8,["modelValue"])]),o("div",xo,r(s.strings.yourSocialProfiles),1),s.loaded?(m(),d("div",{key:8,class:P(["social-profiles",{"show-more":s.showOtherSocialNetworks}])},[n(y,{leftSize:"4",rightSize:"8",sameUsernameWidth:"4",hideAdditionalProfiles:""}),o("a",{class:"show-more-link aioseo-col col-md-offset-4",onClick:e[10]||(e[10]=(...i)=>g.showHideOtherSocialNetworks&&g.showHideOtherSocialNetworks(...i))},r(s.strings.showMore),1)],2)):c("",!0)]),_:1}),n(N)]),_:1})])}const zt=R(j,[["render",Mo]]);export{zt as default}; all-in-one-seo-pack/dist/Lite/assets/js/AdditionalPages.DYKb5Rt_.js000064400000044605151222736000020674 0ustar00import{D as I,a as M,u as F,e as N}from"./links.CKSg78-h.js";import{W as E}from"./WpTable.EicK-ih4.js";import{D as T}from"./Date.Bc79vv_Y.js";import{_ as $}from"./default-i18n.BtxsUzQk.js";import{t as S,n as z,s as V}from"./isArrayLikeObject.CkjpbQo7.js";import{B as Y}from"./DatePicker.9jCaxc1v.js";import{C as B,c as W,e as J}from"./Caret.Cuasz9Up.js";import{C as O}from"./Index.6gbvf_mk.js";import{S as H}from"./Exclamation.BU2oeqa4.js";import{y as u,o as c,c as v,a,t as l,d as h,D as n,m as r,F as j,l as f,I as R,E as g,H as C}from"./vue.esm-bundler.DzelZkHk.js";import{_ as q}from"./_plugin-vue_export-helper.BN1snXvA.js";import{C as K}from"./Table.B2KnjpXq.js";import{C as Q}from"./Card.C6Yzm1Gr.js";import{C as G}from"./Tooltip.DcUmvaHX.js";import{S as X}from"./index.DX4OhBfI.js";import"./constants.DARe-ccJ.js";import"./get.CmvQfcJ_.js";import"./toString.EVG10Qqs.js";import"./isUndefined.2CoGFx8R.js";import"./_getTag.0B4_HiWU.js";import"./debounce.vOAperWf.js";import"./toNumber.DHWd7Z3r.js";import"./_baseTrim.BYZhh0MR.js";import"./numbers.ursUutt1.js";import"./Slide.BfXXFx9A.js";const Z=""+window.__aioseoDynamicImportPreload__("images/import-from-csv.OyzQxKAE.png"),D={page:{url:null,priority:{label:"0.7",value:"0.7"},frequency:{label:$("weekly","all-in-one-seo-pack"),value:"weekly"},lastModified:I.now().toFormat("MM/dd/yyyy")}},ee={setup(){return{optionsStore:M(),rootStore:F()}},emits:["cancel","process-page-add-and-update","process-page-edit"],mixins:[T],components:{BaseDatePicker:Y,CoreAlert:B,CoreModal:O,SvgCircleCheck:W,SvgCircleClose:J,SvgCircleExclamation:H},data(){return{csvFileImage:Z,priorityOptionsValues:[],frequencyOptionsValues:[],filename:"",file:"",loading:!1,showImportModal:!1,page:S(D.page),errors:{url:{invalid:null,exists:null},upload:!1},isLoading:!1,strings:{placeholder:this.$t.sprintf(this.$t.__("Enter a page URL, e.g. %1$s",this.$td),`${this.rootStore.aioseo.urls.home}/new-page`),pageUrl:this.$t.__("Page URL",this.$td),priority:this.$t.__("Priority",this.$td),frequency:this.$t.__("Frequency",this.$td),lastModified:this.$t.__("Last Modified",this.$td),addPage:this.$t.__("Add Page",this.$td),importFromCSV:this.$t.__("Import from CSV",this.$td),saveChanges:this.$t.__("Update Page",this.$td),cancel:this.$t.__("Cancel",this.$td),importAdditionalPages:this.$t.__("Import Additional Pages",this.$td),modalDescription:this.$t.sprintf(this.$t.__("You can import additional page URL's to your sitemap using a CSV file. The following 4 columns are required: %1$sPage URL, Priority, Frequency, Date Modified.%2$s",this.$td),"",""),downloadSampleFile:this.$t.__("Download Sample CSV File",this.$td),imgAltText:this.$t.__("CSV example file",this.$td),fileUploadPlaceholder:this.$t.__("Import from CSV file...",this.$td),chooseAFile:this.$t.__("Choose a File",this.$td),import:this.$t.__("Import",this.$td),csvFileTypeRequired:this.$t.__("The file that you've currently selected is not a CSV file.",this.$td),invalidCSV:this.$t.__("Unable to read CSV file. Please check if the file is valid and try again.",this.$td),errors:{url:{invalid:this.$t.__("Please enter a valid URL.",this.$td),exists:this.$t.__("URL already exists.",this.$td)}}},sampleCSVData:`Page URL,Priority,Frequency,Date Modified\r https://aioseo.com/pricing/,0.0,weekly,01/30/2022`}},methods:{getAssetUrl:z,updateAdditionalPages(t){this.optionsStore.options.sitemap.general.additionalPages.pages=t},addPage(){const t=this.optionsStore.options.sitemap.general.additionalPages.pages;t.unshift(JSON.stringify(this.page)),this.updateAdditionalPages(t),this.page=S(D.page),this.errors.url.invalid=null,this.$emit("process-page-add-and-update")},editPage(t,s){if(this.page[t]=s,!V(this.page.url)&&this.page.url){this.errors.url.invalid=!0;return}if(this.pageExists(this.page.url)&&!this.inTable){this.errors.url.invalid=!1,this.errors.url.exists=!0;return}this.errors.url.invalid=!1,this.errors.url.exists=!1,this.inTable&&this.$emit("process-page-edit",this.page)},updatePage(t){const s=this.optionsStore.options.sitemap.general.additionalPages.pages;s[this.getPaginatedIndex(t)]=JSON.stringify(this.page),this.updateAdditionalPages(s),this.$emit("process-page-add-and-update"),this.$emit("cancel",!0)},pageExists(t){return this.getParsedPages().some(({url:s})=>s===t)},reset(){this.errors.upload=!1,this.filename="",this.file=""},triggerFileUpload(){this.reset(),this.$refs.file.$el.querySelector("input").focus(),this.$refs.file.$el.querySelector("input").click()},async submitFile(){this.loading=!0;try{const t=await this.parseFile(),s=this.optionsStore.options.sitemap.general.additionalPages.pages;t.forEach(o=>{const m=this.prepareAdditionalPage(o);m&&s.unshift(JSON.stringify(m))}),this.updateAdditionalPages(s)}catch{this.errors.upload=this.strings.invalidCSV}this.reset(),this.page=S(D.page),this.showImportModal=!1,this.loading=!1},prepareAdditionalPage(t){const s=S(D.page);return t.forEach(o=>{try{if(V(o)&&!this.pageExists(o)){s.url=o;return}if(this.priorityOptionsValues.includes(o)){s.priority.label=s.priority.value=o;return}if(this.frequencyOptionsValues.includes(o.toLowerCase())){s.frequency.label=s.frequency.value=o.toLowerCase();return}isNaN(T.parse(o))||(s.lastModified=o)}catch{}}),s.url!==null?s:!1},parseFile(){const t=new FileReader;return t.readAsText(this.file),new Promise((s,o)=>{t.onerror=()=>{t.abort(),o(new DOMException)},t.onload=()=>{const e=t.result.split(/[\r\n]/).map(i=>i.split(","));s(e)}})},handleFileUpload(){this.file=this.$refs.file.$el.querySelector("input").files[0],this.file&&(this.filename=this.file.name,this.file.type!=="text/csv"&&(this.errors.upload=this.strings.csvFileTypeRequired))},closeImportModal(){this.reset(),this.showImportModal=!1},isDisabledDate(t){return t>I.now()}},computed:{importValidated(){return this.file.type==="text/csv"}},props:{inTable:Boolean,row:Object,index:Number,getPaginatedIndex:Function,getParsedPages:Function,rowPage:{type:Object,default(){return{}}},editedPage:{type:Object,default(){return{}}}},mounted(){this.priorityOptionsValues=this.$constants.PRIORITY_OPTIONS.map(t=>t.value),this.frequencyOptionsValues=this.$constants.FREQUENCY_OPTIONS.map(t=>t.value),this.inTable&&(this.page=this.rowPage!==this.editedPage?this.rowPage:this.editedPage)}},te={key:0,class:"page-input-header"},se={class:"page-url"},ie={class:"page-priority"},oe={class:"page-frequency"},ae={class:"page-last-modified"},le={class:"page-row"},re={class:"page-url"},ne={class:"append-icon"},de={class:"page-priority"},ue={class:"page-frequency"},ge={class:"page-last-modified"},pe={class:"page-input-footer"},ce={key:0},he={key:1},me={class:"aioseo-modal-body import-additional-pages"},_e={class:"alert"},fe=["innerHTML"],Pe=["href"],ye=["src","alt"],be={class:"file-upload"};function ve(t,s,o,m,e,i){const w=u("svg-circle-close"),k=u("svg-circle-check"),A=u("svg-circle-exclamation"),P=u("base-input"),y=u("core-alert"),b=u("base-select"),L=u("base-date-picker"),_=u("base-button"),p=u("core-modal");return c(),v("div",{class:R(["additional-pages-input",{"in-table":o.inTable}])},[o.inTable?h("",!0):(c(),v("div",te,[a("div",se,l(e.strings.pageUrl),1),a("div",ie,l(e.strings.priority),1),a("div",oe,l(e.strings.frequency),1),a("div",ae,l(e.strings.lastModified),1)])),a("div",le,[a("div",re,[n(P,{modelValue:e.page.url,onKeyup:s[0]||(s[0]=d=>i.editPage("url",d.target.value)),size:"medium",placeholder:e.strings.placeholder,class:R(this.errors.url.invalid&&"aioseo-error"||this.page.url&&this.errors.url.exists&&"aioseo-warning"||this.page.url&&"aioseo-active")},{"append-icon":r(()=>[a("div",ne,[e.isLoading?h("",!0):(c(),v(j,{key:0},[e.errors.url.invalid?(c(),f(w,{key:0})):h("",!0),!e.errors.url.invalid&&!e.errors.url.exists&&e.page.url?(c(),f(k,{key:1})):h("",!0),e.errors.url.exists&&e.page.url?(c(),f(A,{key:2})):h("",!0)],64))])]),_:1},8,["modelValue","placeholder","class"]),this.errors.url.invalid?(c(),f(y,{key:0,type:"red",size:"small"},{default:r(()=>[g(l(e.strings.errors.url.invalid),1)]),_:1})):h("",!0),this.errors.url.exists?(c(),f(y,{key:1,type:"yellow",size:"small"},{default:r(()=>[g(l(e.strings.errors.url.exists),1)]),_:1})):h("",!0)]),a("div",de,[n(b,{size:"medium",modelValue:e.page.priority,"onUpdate:modelValue":s[1]||(s[1]=d=>i.editPage("priority",d)),options:t.$constants.PRIORITY_OPTIONS},null,8,["modelValue","options"])]),a("div",ue,[n(b,{size:"medium",modelValue:e.page.frequency,"onUpdate:modelValue":s[2]||(s[2]=d=>i.editPage("frequency",d)),options:t.$constants.FREQUENCY_OPTIONS},null,8,["modelValue","options"])]),a("div",ge,[n(L,{type:"datetime",size:"large",dateFormat:"m/d/Y H:i:s",defaultValue:t.dateStringToLocalJs(e.page.lastModified),onChange:s[3]||(s[3]=d=>i.editPage("lastModified",t.dateJsToLocal(d,"MM/dd/yyyy HH:mm:ss"))),isDisabledDate:i.isDisabledDate},null,8,["defaultValue","isDisabledDate"])])]),a("div",pe,[o.inTable?(c(),v("div",ce,[n(_,{type:"blue",size:"medium",onClick:s[4]||(s[4]=d=>i.updatePage(o.index)),disabled:e.errors.url.invalid||e.errors.url.exists||!e.page.url},{default:r(()=>[g(l(e.strings.saveChanges),1)]),_:1},8,["disabled"]),n(_,{type:"gray",size:"medium",onClick:s[5]||(s[5]=d=>t.$emit("cancel",!0))},{default:r(()=>[g(l(e.strings.cancel),1)]),_:1})])):h("",!0),o.inTable?h("",!0):(c(),v("div",he,[n(_,{type:"blue",size:"small-table",onClick:i.addPage,disabled:e.errors.url.invalid||e.errors.url.exists||!e.page.url},{default:r(()=>[g(l(e.strings.addPage),1)]),_:1},8,["onClick","disabled"]),n(_,{type:"black",size:"small-table",onClick:s[6]||(s[6]=d=>e.showImportModal=!0)},{default:r(()=>[g(l(e.strings.importFromCSV),1)]),_:1})]))]),n(p,{show:e.showImportModal,onClose:i.closeImportModal,classes:["aioseo-add-additional-pages-modal"]},{headerTitle:r(()=>[g(l(e.strings.importAdditionalPages),1)]),body:r(()=>[a("div",me,[a("div",_e,[a("p",{innerHTML:e.strings.modalDescription},null,8,fe),a("a",{download:"aioseo-additional-pages-sample.csv",href:"data:text/csv;charset=utf-8,"+e.sampleCSVData},l(e.strings.downloadSampleFile),9,Pe)]),a("img",{src:i.getAssetUrl(e.csvFileImage),alt:e.strings.imgAltText},null,8,ye),e.errors.upload?(c(),f(y,{key:0,type:"red",class:"import-error"},{default:r(()=>[n(w),g(" "+l(e.errors.upload),1)]),_:1})):h("",!0),a("div",be,[n(P,{modelValue:e.filename,"onUpdate:modelValue":s[7]||(s[7]=d=>e.filename=d),size:"medium",onFocus:i.triggerFileUpload,placeholder:e.strings.fileUploadPlaceholder,class:R({"aioseo-error":e.errors.upload})},null,8,["modelValue","onFocus","placeholder","class"]),n(_,{type:"black",size:"medium",onClick:i.triggerFileUpload},{default:r(()=>[g(l(e.strings.chooseAFile),1)]),_:1},8,["onClick"])]),n(P,{type:"file",value:e.file,"onUpdate:modelValue":i.handleFileUpload,ref:"file"},null,8,["value","onUpdate:modelValue"]),n(_,{type:"blue",size:"medium",class:"import",onClick:i.submitFile,disabled:!e.file||!i.importValidated,loading:e.loading},{default:r(()=>[g(l(e.strings.import),1)]),_:1},8,["onClick","disabled","loading"])])]),_:1},8,["show","onClose"])],2)}const we=q(ee,[["render",ve]]),ke={setup(){return{optionsStore:M(),rootStore:F(),settingsStore:N()}},mixins:[E],components:{AddAdditionalPage:we,CoreWpTable:K,CoreCard:Q,CoreTooltip:G,CoreModal:O,SvgTrash:X},data(){return{tableId:"sitemap-additional-pages",changeItemsPerPageSlug:"sitemapAdditionalPages",page:{},editedPage:{},resultsPerPage:10,searchResults:null,deletingRow:!1,activeRow:-1,showDeleteModal:!1,shouldDeleteURL:null,selectedRows:null,bulkOptions:[{label:this.$t.__("Delete",this.$td),value:"delete"}],strings:{searchUrls:this.$t.__("Search URLs",this.$td),edit:this.$t.__("Edit",this.$td),delete:this.$t.__("Delete",this.$td),additionalPages:this.$t.__("Additional Pages",this.$td),additionalPagesTooltip:this.$t.__("You can use this section to add any URLs to your sitemap which aren't a part of your WordPress installation. For example, if you have a contact form that you would like to be included on your sitemap you can enter the information manually.",this.$td),areYouSureDeleteLink:this.$t.__("Are you sure you want to delete this page?",this.$td),areYouSureDeleteLinks:this.$t.__("Are you sure you want to delete these pages?",this.$td),thisWillRemoveLink:this.$t.__("This will permanently remove this page from the additional pages sitemap.",this.$td),thisWillRemoveLinks:this.$t.__("This will permanently remove the selected pages from the additional pages sitemap.",this.$td),yesDeleteLink:this.$t.__("Delete Page",this.$td),yesDeleteLinks:this.$t.__("Delete Selected Pages",this.$td),noChangedMind:this.$t.__("No, I changed my mind",this.$td)}}},computed:{currentPages(){return this.searchResults||this.getParsedPages()},rows(){const t=this.currentPages.map(o=>({url:o.url,priority:o.priority&&o.priority.label?o.priority.label:"",frequency:o.frequency&&o.frequency.label?o.frequency.label:"",lastModified:o.lastModified})),s=this.pageNumber===1?0:(this.pageNumber-1)*this.resultsPerPage;return t.slice(s,s+this.resultsPerPage)},totals(){return{page:1,pages:Math.ceil(this.currentPages.length/this.resultsPerPage),total:this.currentPages.length}},columns(){return[{slug:"url",label:this.$t.__("Page URL",this.$td)},{slug:"priority",label:this.$t.__("Priority",this.$td),width:"90px"},{slug:"frequency",label:this.$t.__("Frequency",this.$td),width:"90px"},{slug:"lastModified",label:this.$t.__("Last Modified",this.$td),width:"180px"},{slug:"page-actions",label:"",width:"40px"}]},areYouSureDeleteLink(){return Array.isArray(this.shouldDeleteURL)?this.strings.areYouSureDeleteLinks:this.strings.areYouSureDeleteLink},yesDeleteLink(){return Array.isArray(this.shouldDeleteURL)?this.strings.yesDeleteLinks:this.strings.yesDeleteLink},thisWillRemoveLink(){return Array.isArray(this.shouldDeleteURL)?this.strings.thisWillRemoveLinks:this.strings.thisWillRemoveLink}},methods:{fetchData(){return Promise.resolve()},processSearch(t){if(this.$refs.table.editRow(null),this.pageNumber=1,t===""){this.searchResults=null,this.searchTerm=null;return}t||(t=this.searchTerm),this.wpTableLoading=!0,this.searchResults=this.getParsedPages().filter(s=>s.url.includes(t)),this.searchTerm=t,this.wpTableLoading=!1},processBulkAction({action:t,selectedRows:s}){s.length&&t==="delete"&&(this.showDeleteModal=!0,this.shouldDeleteURL=s)},processPageDelete(){this.wpTableLoading=!0,Array.isArray(this.shouldDeleteURL)?this.shouldDeleteURL.forEach(t=>{this.deletePage(t)}):this.deletePage(this.shouldDeleteURL),this.showDeleteModal=!1,this.wpTableLoading=!1},deletePage(t){const s=[];this.getParsedPages().forEach(o=>{o.url!==t&&s.push(JSON.stringify(o))}),this.optionsStore.options.sitemap.general.additionalPages.pages=s,this.searchResults&&this.processSearch()},maybeProcessDelete(t){this.showDeleteModal=!0,this.shouldDeleteURL=t},processPageEdit(t){this.editedPage=t},processPageAddAndUpdate(){this.processSearch(this.searchTerm||"")},rowPage(t){return this.searchResults?this.searchResults[this.getPaginatedIndex(t)]:this.getParsedPages()[this.getPaginatedIndex(t)]},getPaginatedIndex(t){return(this.pageNumber-1)*this.resultsPerPage+t},getParsedPages(){return this.optionsStore.options.sitemap.general.additionalPages.pages.map(t=>JSON.parse(t))}}},Se={class:"aioseo-additional-pages"},Ce=["onClick"],De={class:"row-actions"},Ae=["onClick"],Le=["onClick"],Ue={class:"page-actions"},Re={class:"aioseo-modal-body delete"},xe={class:"reset-description"};function Te(t,s,o,m,e,i){const w=u("base-toggle"),k=u("add-additional-page"),A=u("svg-trash"),P=u("core-tooltip"),y=u("core-wp-table"),b=u("base-button"),L=u("core-modal"),_=u("core-card");return m.optionsStore.options.sitemap.general.enable?(c(),f(_,{key:0,slug:"additionalPages",toggles:m.optionsStore.options.sitemap.general.additionalPages.enable},{header:r(()=>[n(w,{modelValue:m.optionsStore.options.sitemap.general.additionalPages.enable,"onUpdate:modelValue":s[0]||(s[0]=p=>m.optionsStore.options.sitemap.general.additionalPages.enable=p)},null,8,["modelValue"]),a("span",null,l(e.strings.additionalPages),1)]),tooltip:r(()=>[g(l(e.strings.additionalPagesTooltip),1)]),default:r(()=>[a("div",Se,[n(k,{getPaginatedIndex:i.getPaginatedIndex,getParsedPages:i.getParsedPages,onProcessPageAddAndUpdate:i.processPageAddAndUpdate},null,8,["getPaginatedIndex","getParsedPages","onProcessPageAddAndUpdate"]),(c(),f(y,{ref:"table",class:"additional-pages-table",id:e.tableId,"bulk-options":e.bulkOptions,columns:i.columns,"initial-items-per-page":m.settingsStore.settings.tablePagination.sitemapAdditionalPages,"initial-page-number":t.pageNumber,key:t.wpTableKey,loading:t.wpTableLoading,rows:i.rows,"search-label":e.strings.searchUrls,"show-search":!0,totals:i.totals,"show-items-per-page":"",onPaginate:t.processPagination,onProcessBulkAction:i.processBulkAction,onProcessChangeItemsPerPage:t.processChangeItemsPerPage,onSearch:i.processSearch,onSortColumn:t.processSort},{url:r(({row:p,index:d,editRow:U})=>[a("a",{class:"post-title",href:"#",onClick:C(x=>U(d),["prevent","stop"])},l(p.url),9,Ce),a("div",De,[a("span",null,[a("a",{class:"edit",href:"#",onClick:C(x=>U(d),["prevent","stop"])},[a("span",null,l(e.strings.edit),1)],8,Ae),g(" | ")]),a("span",null,[a("a",{class:"delete",href:"#",onClick:C(x=>i.maybeProcessDelete(p.url),["prevent","stop"])},[a("span",null,l(e.strings.delete),1)],8,Le)])])]),"edit-row":r(({index:p,editRow:d})=>[n(k,{index:p,rowPage:i.rowPage(p),editedPage:e.editedPage,getPaginatedIndex:i.getPaginatedIndex,getParsedPages:i.getParsedPages,inTable:"",onCancel:U=>d(null),onProcessPageAddAndUpdate:i.processPageAddAndUpdate,onProcessPageEdit:i.processPageEdit},null,8,["index","rowPage","editedPage","getPaginatedIndex","getParsedPages","onCancel","onProcessPageAddAndUpdate","onProcessPageEdit"])]),"page-actions":r(({row:p})=>[a("div",Ue,[n(P,{type:"action"},{tooltip:r(()=>[g(l(e.strings.delete),1)]),default:r(()=>[n(A,{onClick:d=>i.maybeProcessDelete(p.url)},null,8,["onClick"])]),_:2},1024)])]),_:1},8,["id","bulk-options","columns","initial-items-per-page","initial-page-number","loading","rows","search-label","totals","onPaginate","onProcessBulkAction","onProcessChangeItemsPerPage","onSearch","onSortColumn"])),n(L,{show:e.showDeleteModal,"no-header":"",onClose:s[3]||(s[3]=p=>e.showDeleteModal=!1),classes:["aioseo-additional-pages-modal"]},{body:r(()=>[a("div",Re,[a("button",{class:"close",onClick:s[1]||(s[1]=C(p=>e.showDeleteModal=!1,["stop"]))}),a("h3",null,l(i.areYouSureDeleteLink),1),a("div",xe,l(e.strings.thisWillRemoveLink),1),n(b,{type:"blue",size:"medium",onClick:i.processPageDelete,loading:e.deletingRow},{default:r(()=>[g(l(i.yesDeleteLink),1)]),_:1},8,["onClick","loading"]),n(b,{type:"gray",size:"medium",onClick:s[2]||(s[2]=p=>e.showDeleteModal=!1)},{default:r(()=>[g(l(e.strings.noChangedMind),1)]),_:1})])]),_:1},8,["show"])])]),_:1},8,["toggles"])):h("",!0)}const ot=q(ke,[["render",Te]]);export{ot as default}; all-in-one-seo-pack/dist/Lite/assets/js/AddonConditions.CQeNF7DC.js000064400000013731151222736000020566 0ustar00import{c as f,o as S,u as v,f as u}from"./links.CKSg78-h.js";import{a as n}from"./addons.Bhqo_sme.js";import{C as _}from"./Caret.Cuasz9Up.js";import{C as A}from"./Index.Ck0NNxBQ.js";import{y as c,o as g,l as h,m as o,E as r,t as s,d as b,D as x}from"./vue.esm-bundler.DzelZkHk.js";import{_ as y}from"./_plugin-vue_export-helper.BN1snXvA.js";const k={setup(){return{addonsStore:f(),pluginsStore:S(),rootStore:v()}},emits:["addon-activated"],components:{CoreAlert:_,Cta:A},props:{addonSlug:{type:String,required:!0},featureList:{type:Array,default:()=>[]},postActivationPromises:{type:Array,default:()=>[]},ctaButtonText:String,ctaHeader:String,ctaDescription:String,learnMoreText:String,learnMoreLink:String,alignTop:Boolean,preventGlobalAddonUpdate:Boolean},data(){return{addons:n,strings:{activateError:this.$t.__("An error occurred while activating the addon. Please upload it manually or contact support for more information.",this.$td),permissionWarning:this.$t.__("You currently don't have permission to activate this addon. Please ask a site administrator to activate first.",this.$td)},failed:!1,activationLoading:!1}},methods:{activateAddon(){this.failed=!1,this.activationLoading=!0;const e=n.getAddon(this.addonSlug);this.pluginsStore.installPlugins([{plugin:e.basename}]).then(d=>{if(d.body.failed.length){this.activationLoading=!1,this.failed=!0;return}const t=this.postActivationPromises.map(a=>a());Promise.all(t).then(()=>{this.preventGlobalAddonUpdate||(this.activationLoading=!1,e.hasMinimumVersion=!0,e.isActive=!0,this.addonsStore.updateAddon(e))}).then(()=>{this.$emit("addon-activated",e)})}).catch(()=>{this.activationLoading=!1})}}};function L(e,d,t,a,i,m){const l=c("core-alert"),p=c("cta");return g(),h(p,{"cta-button-visible":i.addons.userCanInstallOrActivate(t.addonSlug),"cta-button-visible-warning":i.strings.permissionWarning,"cta-link":`${a.rootStore.aioseo.urls.aio.featureManager}&aioseo-activate=${t.addonSlug}`,"cta-button-action":"","cta-button-loading":i.activationLoading,onCtaButtonClick:m.activateAddon,"same-tab":"","button-text":t.ctaButtonText,"learn-more-link":t.learnMoreLink,"feature-list":t.featureList,"align-top":t.alignTop,"hide-bonus":""},{"header-text":o(()=>[r(s(t.ctaHeader),1)]),description:o(()=>[i.failed?(g(),h(l,{key:0,type:"red"},{default:o(()=>[r(s(i.strings.activateError),1)]),_:1})):b("",!0),r(" "+s(t.ctaDescription),1)]),"learn-more-text":o(()=>[r(s(t.learnMoreText),1)]),_:1},8,["cta-button-visible","cta-button-visible-warning","cta-link","cta-button-loading","onCtaButtonClick","button-text","learn-more-link","feature-list","align-top"])}const C=y(k,[["render",L]]),U={setup(){return{addonsStore:f(),pluginsStore:S(),rootStore:v()}},emits:["addon-activated"],components:{CoreAlert:_,Cta:A},props:{addonSlug:{type:String,required:!0},featureList:{type:Array,default:()=>[]},postActivationPromises:{type:Array,default:()=>[]},addonName:String,installedVersion:String,minimumVersion:String,ctaButtonText:String,ctaHeader:String,ctaDescription:String,learnMoreText:String,learnMoreLink:String,alignTop:Boolean,preventGlobalAddonUpdate:Boolean},data(){return{addons:n,strings:{activateError:this.$t.__("An error occurred while activating the addon. Please upload it manually or contact support for more information.",this.$td),permissionWarning:this.$t.__("You currently don't have permission to activate this addon. Please ask a site administrator to activate first.",this.$td),updateRequired:this.$t.sprintf(this.$t.__("This addon requires an update. %1$s %2$s requires a minimum version of %3$s for the %4$s addon. You currently have %5$s installed.",this.$td),"AIOSEO","Pro",n.getAddon(this.addonSlug).minimumVersion,n.getAddon(this.addonSlug).name,n.getAddon(this.addonSlug).installedVersion)},failed:!1,activationLoading:!1}},methods:{upgradeAddon(){this.failed=!1,this.activationLoading=!0;const e=n.getAddon(this.addonSlug);this.pluginsStore.upgradePlugins([{plugin:e.sku}]).then(d=>{if(d.body.failed.length){this.activationLoading=!1,this.failed=!0;return}const t=this.postActivationPromises.map(a=>a());Promise.all(t).then(()=>{if(this.preventGlobalAddonUpdate)return;const a=d.body.completed[e.sku];this.activationLoading=!1,e.hasMinimumVersion=!0,e.isActive=!0,e.installedVersion=a.installedVersion,this.addonsStore.updateAddon(e)}).then(()=>{this.$emit("addon-activated",e)})}).catch(()=>{this.activationLoading=!1})}}};function M(e,d,t,a,i,m){const l=c("core-alert"),p=c("cta");return g(),h(p,{"cta-button-visible":i.addons.userCanUpdate(t.addonSlug),"cta-button-visible-warning":i.strings.permissionWarning,"cta-link":`${a.rootStore.aioseo.urls.aio.featureManager}&aioseo-activate=${t.addonSlug}`,"cta-button-action":"","cta-button-loading":i.activationLoading,onCtaButtonClick:m.upgradeAddon,"same-tab":"","button-text":t.ctaButtonText,"learn-more-link":t.learnMoreLink,"feature-list":t.featureList,"align-top":t.alignTop,"hide-bonus":""},{"header-text":o(()=>[r(s(t.ctaHeader),1)]),description:o(()=>[x(l,{type:"yellow"},{default:o(()=>[r(s(i.strings.updateRequired),1)]),_:1}),i.failed?(g(),h(l,{key:0,type:"red"},{default:o(()=>[r(s(i.strings.activateError),1)]),_:1})):b("",!0),r(" "+s(t.ctaDescription),1)]),"learn-more-text":o(()=>[r(s(t.learnMoreText),1)]),_:1},8,["cta-button-visible","cta-button-visible-warning","cta-link","cta-button-loading","onCtaButtonClick","button-text","learn-more-link","feature-list","align-top"])}const P=y(U,[["render",M]]),E={computed:{ctaComponent(){return this.shouldShowUpdate?P:C},shouldShowMain(){return!u().isUnlicensed&&n.isActive(this.addonSlug)&&!n.requiresUpgrade(this.addonSlug)&&n.hasMinimumVersion(this.addonSlug)},shouldShowActivate(){return!u().isUnlicensed&&!n.isActive(this.addonSlug)&&n.canActivate(this.addonSlug)&&!n.requiresUpgrade(this.addonSlug)&&(n.hasMinimumVersion(this.addonSlug)||!n.isInstalled(this.addonSlug))},shouldShowUpdate(){return!u().isUnlicensed&&n.isInstalled(this.addonSlug)&&!n.requiresUpgrade(this.addonSlug)&&!n.hasMinimumVersion(this.addonSlug)},shouldShowLite(){return u().isUnlicensed||n.requiresUpgrade(this.addonSlug)}}};export{E as A}; all-in-one-seo-pack/dist/Lite/assets/js/addons.Bhqo_sme.js000064400000001506151222736000017317 0ustar00import{c as a}from"./links.CKSg78-h.js";import{u as c}from"./upperFirst.Cx8cdEgZ.js";const s=t=>{const n=a();return n.addons.length?n.addons.find(r=>t===r.sku):null},u=t=>{const n=s(t);return n&&n.isActive},i=t=>{const n=s(t);return n&&n.installed},l=t=>{const n=s(t);return!n||n.requiresUpgrade},d=t=>{const n=s(t);return n&&!n.isActive},o=t=>{const n=s(t);return n&&n.installed&&!n.isActive&&n.canActivate},e=t=>{const n=s(t);return n&&!n.installed&&n.canInstall},p=t=>e(t)||o(t),m=t=>{const n=s(t);return n&&n.canUpdate},A=t=>{const n=s(t);return n?n.currentLevels.map(r=>c(r)):null},_=t=>{const n=s(t);return n&&n.hasMinimumVersion},g={canActivate:d,currentPlans:A,getAddon:s,hasMinimumVersion:_,isActive:u,isInstalled:i,requiresUpgrade:l,userCanActivate:o,userCanInstall:e,userCanInstallOrActivate:p,userCanUpdate:m};export{g as a}; all-in-one-seo-pack/dist/Lite/assets/js/AddPlus.VKUoEtMj.js000064400000001626151222736000017255 0ustar00import{o as n,c as o,a as t}from"./vue.esm-bundler.DzelZkHk.js";import{_ as e}from"./_plugin-vue_export-helper.BN1snXvA.js";const r={},s={viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"aioseo-add-plus"},c=t("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M4.66675 1.16669H11.6667C12.3084 1.16669 12.8334 1.69169 12.8334 2.33335V9.33335C12.8334 9.97502 12.3084 10.5 11.6667 10.5H4.66675C4.02508 10.5 3.50008 9.97502 3.50008 9.33335V2.33335C3.50008 1.69169 4.02508 1.16669 4.66675 1.16669ZM1.16675 3.50002H2.33341V11.6667H10.5001V12.8334H2.33341C1.69175 12.8334 1.16675 12.3084 1.16675 11.6667V3.50002ZM11.6667 9.33335H4.66675V2.33335H11.6667V9.33335ZM8.75008 8.75002H7.58341V6.41669H5.25008V5.25002H7.58341V2.91669H8.75008V5.25002H11.0834V6.41669H8.75008V8.75002Z",fill:"currentColor"},null,-1),l=[c];function a(u,i){return n(),o("svg",s,l)}const f=e(r,[["render",a]]);export{f as S}; all-in-one-seo-pack/dist/Lite/assets/js/Advanced.BXhPCBjq.js000064400000035013151222736000017360 0ustar00import{f as V,a as B,u as D}from"./links.CKSg78-h.js";import{v as I}from"./isArrayLikeObject.CkjpbQo7.js";import{B as x}from"./Checkbox.CfGJSeWE.js";import{B as G}from"./RadioToggle.XiBFFWmC.js";import{C as E}from"./Caret.Cuasz9Up.js";import{C as K}from"./Card.C6Yzm1Gr.js";import{C as P}from"./PostTypeOptions.CpDFp6IT.js";import{C as N}from"./ProBadge.Dgq0taM8.js";import{C as R}from"./SettingsRow.B0N4hwjp.js";import{C as W}from"./Tooltip.DcUmvaHX.js";import{G as z,a as H}from"./Row.ou4tdPuA.js";import{a as Y}from"./index.DX4OhBfI.js";import{y as p,c as y,D as n,m as s,o as l,a as r,t as i,E as h,l as u,d,F as q,L as F}from"./vue.esm-bundler.DzelZkHk.js";import{_ as j}from"./_plugin-vue_export-helper.BN1snXvA.js";import"./default-i18n.BtxsUzQk.js";import"./Checkmark.Du5wcsnR.js";import"./Slide.BfXXFx9A.js";import"./HighlightToggle.BLZDQLdT.js";import"./PostTypes.Cef6XkQ_.js";const Q={setup(){return{licenseStore:V(),optionsStore:B(),rootStore:D()}},components:{BaseCheckbox:x,BaseRadioToggle:G,CoreAlert:E,CoreCard:K,CorePostTypeOptions:P,CoreProBadge:N,CoreSettingsRow:R,CoreTooltip:W,GridColumn:z,GridRow:H,SvgCircleQuestionMark:Y},data(){return{openAiKeyInvalid:!1,strings:{advanced:this.$t.__("Advanced Settings",this.$td),truSeo:this.$t.__("TruSEO Score & Content",this.$td),truSeoDescription:this.$t.__("Enable our TruSEO score to help you optimize your content for maximum traffic.",this.$td),headlineAnalyzer:this.$t.__("Headline Analyzer",this.$td),headlineAnalyzerDescription:this.$t.__("Enable our Headline Analyzer to help you write irresistible headlines and rank better in search results.",this.$td),seoAnalysis:this.$t.__("SEO Analysis",this.$td),postTypeColumns:this.$t.__("Post Type Columns",this.$td),includeAllPostTypes:this.$t.__("Include All Post Types",this.$td),selectPostTypes:this.$t.sprintf(this.$t.__("Select which Post Types you want to use the %1$s columns with.",this.$td),"AIOSEO"),usageTracking:this.$t.__("Usage Tracking",this.$td),adminBarMenu:this.$t.__("Admin Bar Menu",this.$td),adminBarMenuDescription:this.$t.sprintf(this.$t.__("This adds %1$s to the admin toolbar for easy access to your SEO settings.",this.$td),"AIOSEO"),dashboardWidgets:this.$t.__("Dashboard Widgets",this.$td),dashboardWidgetsDescription:this.$t.sprintf(this.$t.__("Select which %1$s widgets to display on the dashboard.",this.$td),"AIOSEO"),announcements:this.$t.__("Announcements",this.$td),announcementsDescription:this.$t.__("This allows you to hide plugin announcements and update details in the Notification Center.",this.$td),automaticUpdates:this.$t.__("Automatic Updates",this.$td),all:this.$t.__("All (recommended)",this.$td),allDescription:this.$t.__("You are getting the latest features, bugfixes, and security updates as they are released.",this.$td),minor:this.$t.__("Minor Only",this.$td),minorDescription:this.$t.__("You are getting bugfixes and security updates, but not major features.",this.$td),none:this.$t.__("None",this.$td),noneDescription:this.$t.__("You will need to manually update everything.",this.$td),usageTrackingDescription:this.$t.__("By allowing us to track usage data we can better help you as we will know which WordPress configurations, themes and plugins we should test.",this.$td),usageTrackingTooltip:this.$t.sprintf(this.$t.__("Complete documentation on usage tracking is available %1$shere%2$s.",this.$td),this.$t.sprintf('',this.$links.getDocUrl("usageTracking")),""),adminBarMenuUpsell:this.$t.sprintf(this.$t.__("Admin Bar Menu is a %1$s feature. %2$s",this.$td),"PRO",this.$links.getUpsellLink("general-settings-advanced",this.$constants.GLOBAL_STRINGS.learnMore,"admin-bar-menu",!0)),dashboardWidgetsUpsell:this.$t.sprintf(this.$t.__("Dashboard Widgets is a %1$s feature. %2$s",this.$td),"PRO",this.$links.getUpsellLink("general-settings-advanced",this.$constants.GLOBAL_STRINGS.learnMore,"dashboard-widget",!0)),taxonomyColumns:this.$t.__("Taxonomy Columns",this.$td),includeAllTaxonomies:this.$t.__("Include All Taxonomies",this.$td),selectTaxonomies:this.$t.sprintf(this.$t.__("Select which Taxonomies you want to use the %1$s columns with.",this.$td),"AIOSEO"),taxonomyColumnsUpsell:this.$t.sprintf(this.$t.__("Taxonomy Columns is a %1$s feature. %2$s",this.$td),"PRO",this.$links.getUpsellLink("general-settings-advanced",this.$constants.GLOBAL_STRINGS.learnMore,"taxonomy-columns",!0)),uninstallAioseo:this.$t.sprintf(this.$t.__("Uninstall %1$s",this.$td),"AIOSEO"),uninstallAioseoDescription:this.$t.sprintf(this.$t.__("Check this if you would like to remove ALL %1$s data upon plugin deletion. All settings and SEO data will be unrecoverable.",this.$td),"AIOSEO"),openAiKey:this.$t.__("OpenAI API Key",this.$td),openAiKeyDescription:this.$t.sprintf(this.$t.__("Enter an OpenAI API key in order to automatically generate SEO titles and meta descriptions for your pages. %1$s",this.$td),this.$links.getDocLink(this.$constants.GLOBAL_STRINGS.learnMore,"openAi",!0)),openAiKeyUpsell:this.$t.sprintf(this.$t.__("OpenAI Integration is a %1$s feature. %2$s",this.$td),"PRO",this.$links.getUpsellLink("general-settings-advanced",this.$constants.GLOBAL_STRINGS.learnMore,"open-ai",!0)),openAiKeyInvalid:this.$t.__("The API key you have entered is invalid. Please check your API key and try again.",this.$td)}}},computed:{adminBarMenu:{get(){return this.licenseStore.isUnlicensed?!0:this.optionsStore.options.advanced.adminBarMenu},set(c){this.optionsStore.options.advanced.adminBarMenu=c}},widgets(){return[{key:"seoSetup",label:this.$t.__("SEO Setup Wizard",this.$td),tooltip:this.$t.__("Our SEO Setup Wizard dashboard widget helps you remember to finish setting up some initial crucial settings for your site to help you rank higher in search results. Once the setup wizard is completed this widget will automatically disappear.",this.$td)},{key:"seoOverview",label:this.$t.__("SEO Overview",this.$td),tooltip:this.$t.__("Our SEO Overview widget helps you determine which posts or pages you should focus on for content updates to help you rank higher in search results.",this.$td)},{key:"seoNews",label:this.$t.__("SEO News",this.$td),tooltip:this.$t.__("Our SEO News widget provides helpful links that enable you to get the most out of your SEO and help you continue to rank higher than your competitors in search results.",this.$td)}]}},methods:{versionCompare:I,updateDashboardWidgets(c,a){if(c){const e=this.optionsStore.options.advanced.dashboardWidgets;e.push(a.key),this.optionsStore.options.advanced.dashboardWidgets=e;return}const A=this.optionsStore.options.advanced.dashboardWidgets.findIndex(e=>e===a.key);A!==-1&&this.optionsStore.options.advanced.dashboardWidgets.splice(A,1)},isDashboardWidgetChecked(c){return this.licenseStore.isUnlicensed?!0:this.optionsStore.options.advanced.dashboardWidgets.includes(c.key)},validateOpenAiKey(){this.optionsStore.options.advanced.openAiKey&&this.optionsStore.options.advanced.openAiKey.match(/^sk-[a-zA-Z0-9]{48}$/)===null?this.openAiKeyInvalid=!0:this.openAiKeyInvalid=!1}},beforeMount(){this.validateOpenAiKey()}},Z={class:"aioseo-advanced"},J={class:"aioseo-description"},X={class:"aioseo-description"},ee={class:"aioseo-description"},te=["innerHTML"],se={class:"aioseo-description"},ne=["innerHTML"],oe=["innerHTML"],ie={class:"aioseo-description"},ae=["innerHTML"],le={class:"aioseo-description"},re=["innerHTML"],de={class:"aioseo-description"},ce={class:"aioseo-description"},ue={key:0},pe={key:1},he={key:2},me=["innerHTML"],_e={class:"aioseo-description"},ge=["innerHTML"],ye=["innerHTML"],Se={class:"aioseo-description"};function ve(c,a,A,e,t,_){const S=p("base-toggle"),m=p("core-settings-row"),v=p("base-checkbox"),b=p("core-post-type-options"),f=p("core-pro-badge"),g=p("core-alert"),k=p("base-radio-toggle"),T=p("svg-circle-question-mark"),O=p("core-tooltip"),$=p("grid-column"),U=p("grid-row"),L=p("base-input"),w=p("core-card");return l(),y("div",Z,[n(w,{slug:"advanced","header-text":t.strings.advanced},{default:s(()=>[n(m,{name:t.strings.truSeo},{content:s(()=>[n(S,{modelValue:e.optionsStore.options.advanced.truSeo,"onUpdate:modelValue":a[0]||(a[0]=o=>e.optionsStore.options.advanced.truSeo=o)},null,8,["modelValue"]),r("div",J,i(t.strings.truSeoDescription),1)]),_:1},8,["name"]),n(m,{name:t.strings.headlineAnalyzer},{content:s(()=>[n(S,{modelValue:e.optionsStore.options.advanced.headlineAnalyzer,"onUpdate:modelValue":a[1]||(a[1]=o=>e.optionsStore.options.advanced.headlineAnalyzer=o)},null,8,["modelValue"]),r("div",X,i(t.strings.headlineAnalyzerDescription),1)]),_:1},8,["name"]),n(m,{name:t.strings.postTypeColumns},{content:s(()=>[n(v,{size:"medium",modelValue:e.optionsStore.options.advanced.postTypes.all,"onUpdate:modelValue":a[2]||(a[2]=o=>e.optionsStore.options.advanced.postTypes.all=o)},{default:s(()=>[h(i(t.strings.includeAllPostTypes),1)]),_:1},8,["modelValue"]),e.optionsStore.options.advanced.postTypes.all?d("",!0):(l(),u(b,{key:0,options:e.optionsStore.options.advanced,type:"postTypes"},null,8,["options"])),r("div",ee,[h(i(t.strings.selectPostTypes)+" ",1),r("span",{innerHTML:c.$links.getDocLink(c.$constants.GLOBAL_STRINGS.learnMore,"selectPostTypesColumns",!0)},null,8,te)])]),_:1},8,["name"]),n(m,null,{name:s(()=>[h(i(t.strings.taxonomyColumns)+" ",1),e.licenseStore.isUnlicensed?(l(),u(f,{key:0})):d("",!0)]),content:s(()=>[e.licenseStore.isUnlicensed?(l(),u(v,{key:0,disabled:"",size:"medium",modelValue:!0},{default:s(()=>[h(i(t.strings.includeAllTaxonomies),1)]),_:1})):d("",!0),e.licenseStore.isUnlicensed?d("",!0):(l(),u(v,{key:1,size:"medium",modelValue:e.optionsStore.options.advanced.taxonomies.all,"onUpdate:modelValue":a[3]||(a[3]=o=>e.optionsStore.options.advanced.taxonomies.all=o)},{default:s(()=>[h(i(t.strings.includeAllTaxonomies),1)]),_:1},8,["modelValue"])),!e.optionsStore.options.advanced.taxonomies.all&&!e.licenseStore.isUnlicensed?(l(),u(b,{key:2,options:e.optionsStore.options.advanced,type:"taxonomies"},null,8,["options"])):d("",!0),r("div",se,[h(i(t.strings.selectTaxonomies)+" ",1),r("span",{innerHTML:c.$links.getDocLink(c.$constants.GLOBAL_STRINGS.learnMore,"selectTaxonomiesColumns",!0)},null,8,ne)]),e.licenseStore.isUnlicensed?(l(),u(g,{key:3,class:"inline-upsell",type:"blue"},{default:s(()=>[r("div",{innerHTML:t.strings.taxonomyColumnsUpsell},null,8,oe)]),_:1})):d("",!0)]),_:1}),n(m,null,{name:s(()=>[h(i(t.strings.adminBarMenu)+" ",1),e.licenseStore.isUnlicensed?(l(),u(f,{key:0})):d("",!0)]),content:s(()=>[n(k,{disabled:e.licenseStore.isUnlicensed,modelValue:_.adminBarMenu,"onUpdate:modelValue":a[4]||(a[4]=o=>_.adminBarMenu=o),name:"adminBarMenu",options:[{label:c.$constants.GLOBAL_STRINGS.hide,value:!1,activeClass:"dark"},{label:c.$constants.GLOBAL_STRINGS.show,value:!0}]},null,8,["disabled","modelValue","options"]),r("div",ie,i(t.strings.adminBarMenuDescription),1),e.licenseStore.isUnlicensed?(l(),u(g,{key:0,class:"inline-upsell",type:"blue"},{default:s(()=>[r("div",{innerHTML:t.strings.adminBarMenuUpsell},null,8,ae)]),_:1})):d("",!0)]),_:1}),n(m,null,{name:s(()=>[h(i(t.strings.dashboardWidgets)+" ",1),e.licenseStore.isUnlicensed?(l(),u(f,{key:0})):d("",!0)]),content:s(()=>[n(U,null,{default:s(()=>[(l(!0),y(q,null,F(_.widgets,(o,C)=>(l(),u($,{key:C},{default:s(()=>[n(v,{size:"medium",disabled:e.licenseStore.isUnlicensed,modelValue:_.isDashboardWidgetChecked(o),"onUpdate:modelValue":M=>_.updateDashboardWidgets(M,o)},{default:s(()=>[h(i(o.label)+" ",1),n(O,null,{tooltip:s(()=>[h(i(o.tooltip),1)]),default:s(()=>[n(T)]),_:2},1024)]),_:2},1032,["disabled","modelValue","onUpdate:modelValue"])]),_:2},1024))),128))]),_:1}),r("div",le,i(t.strings.dashboardWidgetsDescription),1),e.licenseStore.isUnlicensed?(l(),u(g,{key:0,class:"inline-upsell",type:"blue"},{default:s(()=>[r("div",{innerHTML:t.strings.dashboardWidgetsUpsell},null,8,re)]),_:1})):d("",!0)]),_:1}),n(m,{name:t.strings.announcements},{content:s(()=>[n(k,{modelValue:e.optionsStore.options.advanced.announcements,"onUpdate:modelValue":a[5]||(a[5]=o=>e.optionsStore.options.advanced.announcements=o),name:"announcements",options:[{label:c.$constants.GLOBAL_STRINGS.hide,value:!1,activeClass:"dark"},{label:c.$constants.GLOBAL_STRINGS.show,value:!0}]},null,8,["modelValue","options"]),r("div",de,i(t.strings.announcementsDescription),1)]),_:1},8,["name"]),n(m,null,{name:s(()=>[h(i(t.strings.automaticUpdates),1)]),content:s(()=>[n(k,{modelValue:e.optionsStore.options.advanced.autoUpdates,"onUpdate:modelValue":a[6]||(a[6]=o=>e.optionsStore.options.advanced.autoUpdates=o),name:"autoUpdates",options:[{label:t.strings.all,value:"all"},{label:t.strings.minor,value:"minor"},{label:t.strings.none,value:"none",activeClass:"dark"}]},null,8,["modelValue","options"]),r("div",ce,[e.optionsStore.options.advanced.autoUpdates==="all"?(l(),y("span",ue,i(t.strings.allDescription),1)):d("",!0),e.optionsStore.options.advanced.autoUpdates==="minor"?(l(),y("span",pe,i(t.strings.minorDescription),1)):d("",!0),e.optionsStore.options.advanced.autoUpdates==="none"?(l(),y("span",he,i(t.strings.noneDescription),1)):d("",!0)])]),_:1}),c.$isPro?d("",!0):(l(),u(m,{key:0},{name:s(()=>[h(i(t.strings.usageTracking)+" ",1),n(O,null,{tooltip:s(()=>[r("div",{innerHTML:t.strings.usageTrackingTooltip},null,8,me)]),default:s(()=>[n(T)]),_:1})]),content:s(()=>[n(S,{modelValue:e.optionsStore.options.advanced.usageTracking,"onUpdate:modelValue":a[7]||(a[7]=o=>e.optionsStore.options.advanced.usageTracking=o)},null,8,["modelValue"]),r("div",_e,i(t.strings.usageTrackingDescription),1)]),_:1})),n(m,{id:"aioseo-open-ai-api-key",name:t.strings.openAiKey},{name:s(()=>[h(i(t.strings.openAiKey)+" ",1),e.licenseStore.isUnlicensed?(l(),u(f,{key:0})):d("",!0)]),content:s(()=>[n(L,{class:"openAiKey",type:"text",size:"medium",modelValue:e.optionsStore.options.advanced.openAiKey,"onUpdate:modelValue":a[8]||(a[8]=o=>e.optionsStore.options.advanced.openAiKey=o),disabled:e.licenseStore.isUnlicensed,onBlur:_.validateOpenAiKey},null,8,["modelValue","disabled","onBlur"]),r("div",{class:"aioseo-description",innerHTML:t.strings.openAiKeyDescription},null,8,ge),!e.licenseStore.isUnlicensed&&e.optionsStore.options.advanced.openAiKey&&t.openAiKeyInvalid?(l(),u(g,{key:0,class:"inline-upsell",type:"red"},{default:s(()=>[r("div",null,i(t.strings.openAiKeyInvalid),1)]),_:1})):d("",!0),e.licenseStore.isUnlicensed?(l(),u(g,{key:1,class:"inline-upsell",type:"blue"},{default:s(()=>[r("div",{innerHTML:t.strings.openAiKeyUpsell},null,8,ye)]),_:1})):d("",!0)]),_:1},8,["name"]),n(m,{name:t.strings.uninstallAioseo},{content:s(()=>[n(S,{modelValue:e.optionsStore.options.advanced.uninstall,"onUpdate:modelValue":a[9]||(a[9]=o=>e.optionsStore.options.advanced.uninstall=o)},null,8,["modelValue"]),r("div",Se,i(t.strings.uninstallAioseoDescription),1)]),_:1},8,["name"])]),_:1},8,["header-text"])])}const Ke=j(Q,[["render",ve]]);export{Ke as default}; all-in-one-seo-pack/dist/Lite/assets/js/Advanced.Dz2MsfwG.js000064400000133361151222736000017427 0ustar00import{s as T,F,a as G,e as q,u as K}from"./links.CKSg78-h.js";import{J as H}from"./JsonValues.D25FTfEu.js";import{B as E}from"./Checkbox.CfGJSeWE.js";import{B as W}from"./RadioToggle.XiBFFWmC.js";import{a as x,b as Y}from"./index.DX4OhBfI.js";import{C as B,S as z,d as J}from"./Caret.Cuasz9Up.js";import{C as O}from"./Card.C6Yzm1Gr.js";import{C as j}from"./ExcludePosts.FxL6R7pT.js";import{C as X}from"./HtmlTagsEditor.DRjNQQYX.js";import{C as Z}from"./PostTypeOptions.CpDFp6IT.js";import{C as ee}from"./RobotsMeta.DjWj_HSz.js";import{C as se}from"./SettingsRow.B0N4hwjp.js";import{C as Q}from"./Tooltip.DcUmvaHX.js";import{S as te}from"./External.bx7ZSfw_.js";import{a as $}from"./strings.gPxlDykU.js";import{i as oe}from"./regex.C2CBDGQi.js";import{S as ne}from"./Plus.CShy191p.js";import{y as p,o as d,c as f,D as n,m as i,a as r,t as a,l as _,d as u,E as g,F as ie,L as ae,H as V}from"./vue.esm-bundler.DzelZkHk.js";import{_ as D}from"./_plugin-vue_export-helper.BN1snXvA.js";import{C as re}from"./Index.6gbvf_mk.js";import{C as le}from"./Table.B2KnjpXq.js";import{D as de}from"./Date.Bc79vv_Y.js";import"./default-i18n.BtxsUzQk.js";import"./isArrayLikeObject.CkjpbQo7.js";import"./Checkmark.Du5wcsnR.js";import"./Slide.BfXXFx9A.js";import"./AddPlus.VKUoEtMj.js";import"./tags.BOsOOXAU.js";import"./Editor.lV8823Bb.js";import"./UnfilteredHtml.D-19NKqQ.js";import"./HighlightToggle.BLZDQLdT.js";import"./Row.ou4tdPuA.js";import"./PostTypes.Cef6XkQ_.js";import"./isString.Dmb68Xbt.js";import"./numbers.ursUutt1.js";import"./constants.DARe-ccJ.js";const ce={emits:["blockArgAdded"],components:{CoreAlert:B,CoreCard:O,SvgCirclePlus:ne},data(){return{strings:{blockQuery:this.$t.__("Block Query Arg",this.$td),delete:this.$t.__("Delete",this.$td),add:this.$t.__("Block Query Arg",this.$td),regex:this.$t.__("Regex",this.$td),selectAValue:this.$t.__("Select a Value or Add a New One",this.$td),key:this.$t.__("Key",this.$td),value:this.$t.__("Enter one or multiple values",this.$td),createValue:this.$t.__("Press enter to create a value",this.$td),invalidRegex:this.$t.__("The regex syntax is invalid.",this.$td)},key:null,regex:!1,regexValue:null,isRegexValid:!0,valuesList:[],warnings:[]}},computed:{allowedAddQuery(){return this.regex?this.regexValue&&this.isRegexValid:this.key}},methods:{getSlug(e){if(this.regex)return this.regexValue;let t="?"+this.key;return e&&(t+="="+e),t},addQuery(){const e=[];this.regex?e.push({slug:this.getSlug(),key:null,value:null,regex:this.regexValue}):this.valuesList.length!==0?this.valuesList.forEach(t=>{e.push({slug:this.getSlug(t.value),key:this.key,value:t.value,regex:null})}):e.push({slug:this.getSlug(),key:this.key,value:null,regex:null}),T.post(F.restUrl("crawl-cleanup/block/")).send(e).then(t=>{const b=t.body;this.regex||(this.key=null,this.valuesList=[],b.success===!1&&b.exists&&b.exists.forEach(o=>{this.key=o.key,this.valuesList.push({label:o.value,value:o.value})})),this.regex&&b.success===!0&&(this.regexValue=null),window.aioseoBus.$emit("blockArgAdded",t)})},testRegex(){const e=[];return this.isRegexValid=oe(this.regexValue),this.regexValue=this.regexValue===""?null:this.regexValue,this.regex&&this.regexValue!==null&&(this.regexValue.indexOf("^")===-1&&this.regexValue.indexOf("$")===-1&&e.push(this.$t.sprintf(this.$t.__("To prevent a greedy regular expression you can use %1$s to anchor it to the start of the Query Arg. For example: %2$s",this.$td),"^/","^"+$(this.regexValue.replace(/^\//,""))+"")),0^","^"+$(this.regexValue.replace("^","").replace(/^\//,""))+"")),this.regexValue.length-1!==this.regexValue.indexOf("$")&&this.regexValue.indexOf("$")!==-1&&e.push(this.$t.sprintf(this.$t.__("The dollar symbol %1$s should be at the end. For example: %2$s",this.$td),"$",""+$(this.regexValue.replace(/\$/g,""))+"$"))),e}},watch:{regexValue(){this.warnings=this.testRegex()}}},ue={class:"card-block-query"},he={class:"query-arg-logs"},pe={class:"query-arg-options"},ge={class:"query-arg-key"},me={key:0,class:"query-arg-value"},_e={class:"query-arg-button"},ye={key:1};function be(e,t,b,o,s,m){const w=p("base-input"),h=p("base-select"),y=p("base-toggle"),A=p("svg-circle-plus"),v=p("base-button"),k=p("core-card"),S=p("core-alert");return d(),f("div",ue,[n(k,{"no-slide":"",slug:"blockQueryArg"},{header:i(()=>[r("span",null,a(s.strings.blockQuery),1)]),default:i(()=>[r("div",he,[r("div",pe,[r("div",ge,[s.regex?u("",!0):(d(),_(w,{key:0,modelValue:s.key,"onUpdate:modelValue":t[0]||(t[0]=c=>s.key=c),size:"medium",placeholder:s.strings.key},null,8,["modelValue","placeholder"])),s.regex?(d(),_(w,{key:1,modelValue:s.regexValue,"onUpdate:modelValue":t[1]||(t[1]=c=>s.regexValue=c),size:"medium",placeholder:"^utm_.*$"},null,8,["modelValue"])):u("",!0)]),s.regex?u("",!0):(d(),f("div",me,[n(h,{multiple:"",taggable:"",options:[],size:"medium",modelValue:s.valuesList,"onUpdate:modelValue":t[2]||(t[2]=c=>s.valuesList=c),placeholder:s.strings.value,"tag-placeholder":s.strings.createValue},null,8,["modelValue","placeholder","tag-placeholder"])])),r("div",null,[n(y,{modelValue:s.regex,"onUpdate:modelValue":t[3]||(t[3]=c=>s.regex=c)},{default:i(()=>[g(a(s.strings.regex),1)]),_:1},8,["modelValue"])])]),r("div",_e,[n(v,{size:"small",type:"black",disabled:!m.allowedAddQuery,onClick:t[4]||(t[4]=c=>m.addQuery())},{default:i(()=>[n(A),g(" "+a(s.strings.add),1)]),_:1},8,["disabled"])])])]),_:1}),s.isRegexValid?u("",!0):(d(),_(S,{key:0,class:"regex-error",type:"red",size:"medium"},{default:i(()=>[g(a(s.strings.invalidRegex),1)]),_:1})),s.regex&&s.warnings.length?(d(),f("div",ye,[(d(!0),f(ie,null,ae(s.warnings,(c,C)=>(d(),_(S,{key:C,class:"regex-warning",type:"yellow",size:"medium",innerHTML:c},null,8,["innerHTML"]))),128))])):u("",!0)])}const fe=D(ce,[["render",be]]),ke={setup(){return{optionsStore:G(),settingsStore:q()}},mixins:[de],components:{CoreAlert:B,CoreModal:re,CoreTooltip:Q,CoreWpTable:le,SvgCircleQuestionMark:x,SvgClose:z},props:{showBulkActions:{type:Boolean,default(){return!0}},showTableFooter:{type:Boolean,default(){return!0}},showHeader:{type:Boolean,default(){return!0}},blockArgs:[]},data(){return{tableId:"aioseo-query-args-wp-table",showAlert:!1,alertDescription:null,alertType:null,strings:{delete:this.$t.__("Delete",this.$td),add:this.$t.__("Add Block",this.$td),regex:this.$t.__("Regex",this.$td),key:this.$t.__("Key",this.$td),value:this.$t.__("Value",this.$td),yes:this.$t.__("Yes",this.$td),no:this.$t.__("No",this.$td),at:this.$t.__("at",this.$td),blockKey:this.$t.__("Block Key",this.$td),blockKeyValue:this.$t.__("Block Key & Value",this.$td),unblock:this.$t.__("Unblock",this.$td),success:this.$t.__("The query arg has been successfully added to the blocklist.",this.$td),unsuccess:this.$t.__("An error occurred while trying to add the query arg to the blocklist. Please try again later.",this.$td),unblockSuccess:this.$t.__("The query arg has been successfully unblocked.",this.$td),unblockUnsuccess:this.$t.__("An error occurred while trying to remove the query arg from the blocklist. Please try again later.",this.$td),deleteSuccess:this.$t.__("The query arg has been successfully deleted.",this.$td),deleteUnsuccess:this.$t.__("An error occurred while trying to delete the query arg. Please try again later.",this.$td),sureDeleteQuery:this.$t.__("Are you sure you want to delete this query arg?",this.$td),sureDeleteQueries:this.$t.__("Are you sure you want to delete these query args?",this.$td),sureBlockQuery:this.$t.__("Are you sure you want to block this query arg?",this.$td),sureBlockQueries:this.$t.__("Are you sure you want to block these query args?",this.$td),sureUnblockQuery:this.$t.__("Are you sure you want to unblock this query arg?",this.$td),sureUnblockQueries:this.$t.__("Are you sure you want to unblock these query args?",this.$td),thisWillRemoveQuery:this.$t.__("This action will permanently remove this query arg.",this.$td),thisWillRemoveQueries:this.$t.__("This action will permanently remove the selected query args.",this.$td),thisWillBlockQuery:this.$t.__("This action will block this query arg.",this.$td),thisWillBlockQueries:this.$t.__("This action will block the selected query args.",this.$td),thisWillUnblockQuery:this.$t.__("This action will unblock this query arg.",this.$td),thisWillUnblockQueries:this.$t.__("This action will unblock the selected query args.",this.$td),yesDeleteQuery:this.$t.__("Delete Query Arg",this.$td),yesDeleteQueries:this.$t.__("Delete Query Args",this.$td),yesBlockQuery:this.$t.__("Block Query Arg",this.$td),yesBlockQueries:this.$t.__("Block Query Args",this.$td),yesUnblockQuery:this.$t.__("Unblock Query Arg",this.$td),yesUnblockQueries:this.$t.__("Unblock Query Args",this.$td),noChangedMind:this.$t.__("No, I changed my mind",this.$td),actions:this.$t.__("Actions",this.$td),crawlCleanupTooltip:this.$t.__('The "Block key" blocks both the key and all of its values, while "Block Key & values" lets you selectively block only certain values, without blocking the entire key.',this.$td),blockedArgExists:this.$t.__("The query arg you've entered is already being blocked.",this.$td),blockedByRegex:this.$t.__("Blocked by regex: ",this.$td)},showModal:!1,showDeleteModal:!1,showBlockModal:!1,showUnblockModal:!1,rows:[],regexMatches:[],filters:[],selectedFilters:{slug:"unblocked",name:this.$t.__("Unblocked",this.$td),count:0,active:!0},totals:{total:0,pages:0,page:1},pageNumber:1,wpTableKey:0,searchTerm:null,wpTableLoading:!1,limit:this.settingsStore.settings.tablePagination.queryArgs,isMultipleSelected:!1,modalMessagemTitle:null,modalMessageDescription:null}},computed:{columns(){const e=[{slug:"slug",label:this.$t.__("URL",this.$td),with:"100%"}];return this.selectedFilters.slug==="blocked"&&e.push({slug:"regex",label:this.$t.__("Regex",this.$td),width:"60px"}),e.push({slug:"hits",label:this.$t.__("Hits",this.$td),width:"110px"},{slug:"updated",label:this.$t.__("Last Accessed",this.$td),width:"250px"},{slug:"actions",label:this.$t.__("Actions",this.$td),width:this.isBlockedSelected?"100px":"220px"}),e},isBlockedSelected(){return this.selectedFilters.slug==="blocked"},bulkOptions(){const e=[];return this.selectedFilters.slug==="unblocked"&&(e.push({label:this.$t.__("Block Key",this.$td),value:"block-key"}),e.push({label:this.$t.__("Block Key & Value",this.$td),value:"block-key-value"})),this.selectedFilters.slug==="blocked"&&e.push({label:this.$t.__("Unblock",this.$td),value:"unblock"}),e.push({label:this.$t.__("Delete",this.$td),value:"delete"}),e},yesDeleteQuery(){return this.isMultipleSelected?this.strings.yesDeleteQueries:this.strings.yesDeleteQuery},yesBlockQuery(){return this.isMultipleSelected?this.strings.yesBlockQueries:this.strings.yesBlockQuery},yesUnblockQuery(){return this.isMultipleSelected?this.strings.yesUnblockQueries:this.strings.yesUnblockQuery}},methods:{fetchData(){this.wpTableLoading=!0,T.post(F.restUrl("crawl-cleanup")).send({slug:this.slug,limit:this.limit?this.limit:this.settingsStore.settings.tablePagination.queryArgs,offset:this.pageNumber===1?0:(this.pageNumber-1)*this.limit,searchTerm:this.searchTerm,filter:this.selectedFilters?this.selectedFilters.slug:"unblocked"}).then(e=>{this.filters=e.body.filters,this.rows=e.body.rows,this.regexMatches=e.body.regex,this.totals=e.body.totals,this.pageNumber=e.body.totals.page,this.wpTableLoading=!1})},getSlug(e){return this.selectedFilters.slug==="blocked"?e.regex?e.regex:"?"+e.key+"="+(e.value?e.value:"*"):e.slug},blockKey(e){T.post(F.restUrl("crawl-cleanup/block/")).send(e).then(t=>{t.body.success===!1&&(this.openAlert(this.strings.unsuccess,"red"),t.body.error&&t.body.error===1&&this.openAlert(this.strings.blockedArgExists,"yellow")),this.fetchData()})},unblockKey(e){T.post(F.restUrl("crawl-cleanup/delete-blocked/")).send(e).then(t=>{t.body.success===!1&&this.openAlert(this.strings.unblockUnsuccess,"red"),this.fetchData()}).catch(t=>{console.log(t)})},openAlert(e,t="green"){this.showAlert=!0,this.alertDescription=e,this.alertType=t},processSearch(e){this.searchTerm=e,this.pageNumber=1,this.fetchData()},maybeDoBulkAction({action:e,selectedRows:t}){!e||!t.length||(this.showDeleteModal=e==="delete",this.showUnblockModal=e==="unblock",this.showBlockModal=e==="block-key"||e==="block-key-value",this.showModal=this.showDeleteModal||this.showBlockModal||this.showUnblockModal,this.action=e,this.selectedRows=t,this.isMultipleSelected=Array.isArray(t)&&1{this.showModal=!1,this.wpTableLoading=!1,this.openAlert(this.strings.deleteSuccess),e.body.success===!1&&this.openAlert(this.strings.deleteSuccess,"red"),this.fetchData()}).catch(e=>{console.log(e)}),this.selectedFilters.slug==="unblocked"&&T.post(F.restUrl("crawl-cleanup/delete-unblocked/")).send(this.selectedRows).then(e=>{this.showModal=!1,this.wpTableLoading=!1,this.openAlert(this.strings.deleteSuccess),e.body.success===!1&&this.openAlert(this.strings.deleteUnsuccess,"red"),this.fetchData()}).catch(e=>{console.log(e)})},processQueryBlock(){const e=this.selectedRows.map(t=>{const b=this.rows.find(o=>o.id===t);return b===void 0?null:{key:b.key,value:this.action==="block-key-value"?b.value:null,regex:b.regex}}).filter(t=>t!==null);this.blockKey(e)},processQueryUnblock(){this.unblockKey(this.selectedRows)},processChangeItemsPerPage(e){this.limit=e,this.pageNumber=1,this.fetchData()},doProcessFilterTable(e){this.pageNumber=1,this.searchTerm=null,this.selectedFilters=e,this.fetchData()},doProcessPagination(e){this.pageNumber=e,this.fetchData()},hasRegexBlock(e){return this.regexMatches[e]?this.regexMatches[e]:!1}},watch:{showAlert(e){e&&J(()=>{this.showAlert=!1},5e3)}},mounted(){this.fetchData(),window.aioseoBus.$on("blockArgAdded",e=>{this.wpTableLoading=!0,this.selectedFilters={slug:"blocked"},e.body.success===!1&&(this.openAlert(this.strings.unsuccess,"red"),e.body.error&&e.body.error===1&&this.openAlert(this.strings.blockedArgExists,"yellow"),this.wpTableLoading=!1),this.fetchData()})}},Se={class:"aioseo-query-args-table"},ve={class:"actions-query-args"},we={key:0},Ae=["onClick"],Ce={key:1},Te={key:0},Fe={class:"no-link"},Le={key:1},$e=["onClick"],Ve=r("span",{class:"separator"},"|",-1),Be=["onClick"],De={class:"aioseo-modal-body delete"},Re={class:"close"},Me={class:"reset-description"};function Ge(e,t,b,o,s,m){const w=p("core-alert"),h=p("svg-circle-question-mark"),y=p("core-tooltip"),A=p("core-wp-table"),v=p("svg-close"),k=p("base-button"),S=p("core-modal");return d(),f("div",Se,[s.showAlert?(d(),_(w,{key:0,type:s.alertType,size:"medium",innerHTML:s.alertDescription},null,8,["type","innerHTML"])):u("",!0),(d(),_(A,{id:s.tableId,"bulk-options":m.bulkOptions,columns:m.columns,filters:s.filters,"initial-items-per-page":o.settingsStore.settings.tablePagination.queryArgs,"initial-page-number":s.pageNumber,"initial-search-term":s.searchTerm,key:s.wpTableKey,loading:s.wpTableLoading,rows:s.rows,"search-label":s.strings.searchUrls,"selected-filters":s.selectedFilters,"show-bulk-actions":b.showBulkActions,"show-header":b.showHeader,"show-table-footer":b.showTableFooter,totals:s.totals,"show-items-per-page":"",onSearch:m.processSearch,onProcessBulkAction:m.maybeDoBulkAction,onFilterTable:m.doProcessFilterTable,onPaginate:m.doProcessPagination,onProcessChangeItemsPerPage:m.processChangeItemsPerPage},{actionsHeaderFooter:i(()=>[g(a(s.strings.actions)+" ",1),n(y,{placement:"left"},{tooltip:i(()=>[g(a(s.strings.crawlCleanupTooltip),1)]),default:i(()=>[n(h)]),_:1})]),slug:i(({row:c})=>[g(a(m.getSlug(c)),1)]),hits:i(({row:c})=>[g(a(parseInt(c.hits).toLocaleString()),1)]),regex:i(({row:c})=>[g(a(!c.regex||c.regex==="0"?s.strings.no:s.strings.yes),1)]),actions:i(({row:c})=>[r("div",ve,[m.isBlockedSelected?(d(),f("div",we,[r("span",{onClick:C=>m.maybeDoBulkAction({action:"unblock",selectedRows:[c.id]})},a(s.strings.unblock),9,Ae)])):u("",!0),m.isBlockedSelected?u("",!0):(d(),f("div",Ce,[m.hasRegexBlock(c.id)?(d(),f("div",Te,[r("span",Fe,a(s.strings.blockedByRegex)+" "+a(m.hasRegexBlock(c.id)),1)])):(d(),f("div",Le,[r("span",{onClick:C=>m.maybeDoBulkAction({action:"block-key",selectedRows:[c.id]})},a(s.strings.blockKey),9,$e),Ve,r("span",{onClick:C=>m.maybeDoBulkAction({action:"block-key-value",selectedRows:[c.id]})},a(s.strings.blockKeyValue),9,Be)]))]))])]),_:1},8,["id","bulk-options","columns","filters","initial-items-per-page","initial-page-number","initial-search-term","loading","rows","search-label","selected-filters","show-bulk-actions","show-header","show-table-footer","totals","onSearch","onProcessBulkAction","onFilterTable","onPaginate","onProcessChangeItemsPerPage"])),n(S,{show:s.showModal,"no-header":"",classes:["block-arg-modal"],onClose:t[5]||(t[5]=c=>s.showModal=!1)},{body:i(()=>[r("div",De,[r("button",Re,[n(v,{onClick:t[0]||(t[0]=c=>s.showModal=!1)})]),r("h3",null,a(s.modalMessagemTitle),1),r("div",Me,a(s.modalMessageDescription),1),s.showDeleteModal?(d(),_(k,{key:0,type:"blue",size:"medium",onClick:[m.processQueryDelete,t[1]||(t[1]=V(c=>s.showModal=!1,["stop"]))]},{default:i(()=>[g(a(m.yesDeleteQuery),1)]),_:1},8,["onClick"])):u("",!0),s.showBlockModal?(d(),_(k,{key:1,type:"blue",size:"medium",onClick:[m.processQueryBlock,t[2]||(t[2]=V(c=>s.showModal=!1,["stop"]))]},{default:i(()=>[g(a(m.yesBlockQuery),1)]),_:1},8,["onClick"])):u("",!0),s.showUnblockModal?(d(),_(k,{key:2,type:"blue",size:"medium",onClick:[m.processQueryUnblock,t[3]||(t[3]=V(c=>s.showModal=!1,["stop"]))]},{default:i(()=>[g(a(m.yesUnblockQuery),1)]),_:1},8,["onClick"])):u("",!0),n(k,{type:"gray",size:"medium",onClick:t[4]||(t[4]=c=>s.showModal=!1)},{default:i(()=>[g(a(s.strings.noChangedMind),1)]),_:1})])]),_:1},8,["show"])])}const xe=D(ke,[["render",Ge]]),Oe={setup(){return{optionsStore:G(),rootStore:K()}},components:{BaseCheckbox:E,BaseRadioToggle:W,BaseSelect:Y,CoreAlert:B,CoreCard:O,CoreExcludePosts:j,CoreHtmlTagsEditor:X,CorePostTypeOptions:Z,CoreRobotsMeta:ee,CoreSettingsRow:se,CoreTooltip:Q,SvgCircleQuestionMark:x,SvgExternal:te,QueryArgMonitorBlockArg:fe,QueryArgMonitorTable:xe},mixins:[H],data(){return{emptyString:"",strings:{advanced:this.$t.__("Advanced Settings",this.$td),globalRobotsMeta:this.$t.__("Global Robots Meta",this.$td),autogenerateDescriptions:this.$t.__("Autogenerate Descriptions",this.$td),useContentForAutogeneratedDescriptions:this.$t.__("Use Content for Autogenerated Descriptions",this.$td),runShortcodes:this.$t.__("Run Shortcodes",this.$td),runShortcodesDescription:this.$t.sprintf(this.$t.__("This option allows you to control whether %1$s should parse shortcodes when generating data such as the SEO title/meta description. Enabling this setting may cause conflicts with third-party plugins/themes. %2$s",this.$td),"AIOSEO",this.$links.getDocLink(this.$constants.GLOBAL_STRINGS.learnMore,"runningShortcodes",!0)),runShortcodesWarning:this.$t.sprintf(this.$t.__("NOTE: Enabling this setting may cause conflicts with third-party plugins/themes. %1$s",this.$td),this.$links.getDocLink(this.$constants.GLOBAL_STRINGS.learnMore,"runningShortcodes",!0)),noPaginationForCanonical:this.$t.__("No Pagination for Canonical URLs",this.$td),useKeywords:this.$t.__("Use Meta Keywords",this.$td),useKeywordsDescription:this.$t.__("This option allows you to toggle the use of Meta Keywords throughout the whole of the site.",this.$td),useCategoriesForMetaKeywords:this.$t.__("Use Categories for Meta Keywords",this.$td),useCategoriesDescription:this.$t.__("Check this if you want your categories for a given post used as the Meta Keywords for this post (in addition to any keywords you specify on the Edit Post screen).",this.$td),useTagsForMetaKeywords:this.$t.__("Use Tags for Meta Keywords",this.$td),useTagsDescription:this.$t.__("Check this if you want your tags for a given post used as the Meta Keywords for this post (in addition to any keywords you specify on the Edit Post screen).",this.$td),dynamicallyGenerateKeywords:this.$t.__("Dynamically Generate Meta Keywords",this.$td),dynamicallyGenerateDescription:this.$t.__("Check this if you want your keywords on your Posts page (set in WordPress under Settings, Reading, Front Page Displays) and your archive pages to be dynamically generated from the keywords of the posts showing on that page. If unchecked, it will use the keywords set in the edit page screen for the posts page.",this.$td),pagedFormat:this.$t.__("Paged Format",this.$td),pagedFormatDescription:this.$t.__("This string gets appended to the titles and descriptions of paginated pages (like term or archive pages).",this.$td),descriptionFormat:this.$t.__("Description Format",this.$td),excludePostsPages:this.$t.__("Exclude Posts / Pages",this.$td),excludeTerms:this.$t.__("Exclude Terms",this.$td),sitelinks:this.$t.__("Enable Sitelinks Search Box",this.$td),sitelinksDescription:this.$t.sprintf(this.$t.__("Choose whether %1$s should output the required schema markup that Google needs to generate a sitelinks search box.",this.$td),"AIOSEO"),descriptionTagRequired:this.$t.__("A Description tag is required in order to properly display your meta descriptions on your site.",this.$td),crawlCleanup:this.$t.__("Crawl Cleanup",this.$td),queryArgMonitoring:this.$t.__("Query Arg Monitoring",this.$td),logsRetention:this.$t.__("Logs Retention",this.$td),crawlCleanupDescription:this.$t.__("Disabling unnecessary RSS feeds can help save search engine crawl quota and speed up content indexing for larger sites. If you choose to disable any feeds, those feed links will automatically redirect to your homepage or applicable archive page.",this.$td),queryArgMonitorDescription:this.$t.__("This feature allows you to log all query arguments that are used on your site and block them. This will help prevent search engines from crawling every variation of your pages with unrecognized query arguments and help save search engine crawl quota.",this.$td),globalFeed:this.$t.__("Global RSS Feed",this.$td),globalFeedDescription:this.$t.__("The global RSS feed is how users subscribe to any new content that has been created on your site.",this.$td),openYourRssFeed:this.$t.__("Open Your RSS Feed",this.$td),disableGlobalFeedAlert:this.$t.__("Disabling the global RSS feed is NOT recommended. This will prevent users from subscribing to your content and can hurt your SEO rankings.",this.$td),globalCommentsFeed:this.$t.__("Global Comments RSS Feed",this.$td),globalCommentsFeedDescription:this.$t.__("The global comments feed allows users to subscribe to any new comments added to your site.",this.$td),openYourCommentsRssFeed:this.$t.__("Open Your Comments RSS Feed",this.$td),staticBlogPageFeed:this.$t.__("Static Posts Page Feed",this.$td),staticBlogPageFeedDescription:this.$t.__("The static posts page feed allows users to subscribe to any new content added to your blog page.",this.$td),openYourStaticBlogPageFeed:this.$t.__("Open Your Static Posts Page RSS Feed",this.$td),authorsFeed:this.$t.__("Author Feeds",this.$td),authorsFeedDescription:this.$t.__("The authors feed allows your users to subscribe to any new content written by a specific author.",this.$td),postCommentsFeed:this.$t.__("Post Comment Feeds",this.$td),postCommentsFeedDescription:this.$t.__("The post comments feed allows your users to subscribe to any new comments on a specific page or post.",this.$td),searchFeed:this.$t.__("Search Feed",this.$td),searchFeedDescription:this.$t.__("The search feed allows visitors to subscribe to your content based on a specific search term.",this.$td),attachmentsFeed:this.$t.__("Attachments Feed",this.$td),attachmentsFeedDescription:this.$t.__("The attachments feed allows users to subscribe to any changes to your site made to media file categories.",this.$td),postTypesFeed:this.$t.__("Post Type Archive Feeds",this.$td),includeAllPostTypes:this.$t.__("Include All Post Type Archives",this.$td),selectPostTypes:this.$t.__("Select which post type archives should include an RSS feed. This only applies to post types that include an archive page.",this.$td),taxonomiesFeed:this.$t.__("Taxonomy Feeds",this.$td),includeAllTaxonomies:this.$t.__("Include All Taxonomies",this.$td),selectTaxonomies:this.$t.__("Select which Taxonomies should include an RSS feed.",this.$td),atomFeed:this.$t.__("Atom Feed",this.$td),atomFeedDescription:this.$t.sprintf(this.$t.__("This is a global feed of your site output in the Atom format. %1$s",this.$td),this.$links.getPlainLink(this.$constants.GLOBAL_STRINGS.learnMore,"http://www.atomenabled.org/",!0)),openYourAtomFeed:this.$t.__("Open Your Atom Feed",this.$td),rdfFeed:this.$t.__("RDF/RSS 1.0 Feed",this.$td),rdfFeedDescription:this.$t.sprintf(this.$t.__("This is a global feed of your site output in the RDF/RSS 1.0 format. %1$s",this.$td),this.$links.getPlainLink(this.$constants.GLOBAL_STRINGS.learnMore,"https://web.resource.org/rss/1.0/",!0)),openYourRdfFeed:this.$t.__("Open Your RDF Feed",this.$td),paginatedFeed:this.$t.__("Paginated RSS Feeds",this.$td),paginatedFeedDescription:this.$t.__("The paginated RSS feeds are for any posts or pages that are paginated.",this.$td)},logsRetentionOptions:[{label:this.$t.__("1 hour",this.$td),value:"hour"},{label:this.$t.__("1 day",this.$td),value:"day"},{label:this.$t.__("1 week",this.$td),value:"week"},{label:this.$t.__("Forever",this.$td),value:"forever"}]}}},Qe={class:"aioseo-search-appearance-advanced"},Pe={class:"aioseo-description"},Ue={class:"aioseo-description"},Ne={class:"aioseo-description"},Ie={class:"aioseo-description"},qe={class:"aioseo-description"},Ke=["innerHTML"],He={class:"aioseo-description"},Ee=["innerHTML"],We={class:"aioseo-settings-row aioseo-section-description"},Ye=["innerHTML"],ze={key:0,class:"aioseo-description"},Je={class:"rss-link"},je=["href"],Xe=["href"],Ze={class:"aioseo-description"},es={key:0,class:"aioseo-description"},ss=["href"],ts=["href"],os={class:"aioseo-description"},ns={key:0,class:"aioseo-description"},is=["href"],as=["href"],rs={class:"aioseo-description"},ls={class:"aioseo-description"},ds={class:"aioseo-description"},cs={class:"aioseo-description"},us={class:"aioseo-description"},hs={class:"aioseo-description"},ps={class:"aioseo-description"},gs=["innerHTML"],ms={key:0,class:"aioseo-description"},_s=["href"],ys=["href"],bs=["innerHTML"],fs={key:0,class:"aioseo-description"},ks=["href"],Ss=["href"],vs={class:"aioseo-settings-row aioseo-section-description"},ws=["innerHTML"];function As(e,t,b,o,s,m){const w=p("core-robots-meta"),h=p("core-settings-row"),y=p("base-radio-toggle"),A=p("core-html-tags-editor"),v=p("core-alert"),k=p("core-exclude-posts"),S=p("core-card"),c=p("base-toggle"),C=p("svg-circle-question-mark"),P=p("core-tooltip"),L=p("svg-external"),R=p("base-checkbox"),M=p("core-post-type-options"),U=p("base-select"),N=p("query-arg-monitor-block-arg"),I=p("query-arg-monitor-table");return d(),f("div",Qe,[n(S,{slug:"searchAdvanced","header-text":s.strings.advanced},{default:i(()=>[n(h,{name:s.strings.globalRobotsMeta},{content:i(()=>[n(w,{options:o.optionsStore.options.searchAppearance.advanced.globalRobotsMeta,global:""},null,8,["options"])]),_:1},8,["name"]),n(h,{name:s.strings.sitelinks,align:""},{content:i(()=>[n(y,{modelValue:o.optionsStore.options.searchAppearance.advanced.sitelinks,"onUpdate:modelValue":t[0]||(t[0]=l=>o.optionsStore.options.searchAppearance.advanced.sitelinks=l),name:s.strings.sitelinks,options:[{label:e.$constants.GLOBAL_STRINGS.off,value:!1,activeClass:"dark"},{label:e.$constants.GLOBAL_STRINGS.on,value:!0}]},null,8,["modelValue","name","options"]),r("div",Pe,a(s.strings.sitelinksDescription),1)]),_:1},8,["name"]),o.optionsStore.internalOptions.internal.deprecatedOptions.includes("autogenerateDescriptions")?(d(),_(h,{key:0,name:s.strings.autogenerateDescriptions,align:""},{content:i(()=>[n(y,{modelValue:o.optionsStore.options.deprecated.searchAppearance.advanced.autogenerateDescriptions,"onUpdate:modelValue":t[1]||(t[1]=l=>o.optionsStore.options.deprecated.searchAppearance.advanced.autogenerateDescriptions=l),name:"autogenerateDescriptions",options:[{label:e.$constants.GLOBAL_STRINGS.off,value:!1,activeClass:"dark"},{label:e.$constants.GLOBAL_STRINGS.on,value:!0}]},null,8,["modelValue","options"])]),_:1},8,["name"])):u("",!0),o.optionsStore.internalOptions.internal.deprecatedOptions.includes("useContentForAutogeneratedDescriptions")&&(!o.optionsStore.internalOptions.internal.deprecatedOptions.includes("autogenerateDescriptions")||o.optionsStore.options.deprecated.searchAppearance.advanced.autogenerateDescriptions)?(d(),_(h,{key:1,name:s.strings.useContentForAutogeneratedDescriptions,align:""},{content:i(()=>[n(y,{modelValue:o.optionsStore.options.deprecated.searchAppearance.advanced.useContentForAutogeneratedDescriptions,"onUpdate:modelValue":t[2]||(t[2]=l=>o.optionsStore.options.deprecated.searchAppearance.advanced.useContentForAutogeneratedDescriptions=l),name:"useContentForAutogeneratedDescriptions",options:[{label:e.$constants.GLOBAL_STRINGS.off,value:!1,activeClass:"dark"},{label:e.$constants.GLOBAL_STRINGS.on,value:!0}]},null,8,["modelValue","options"])]),_:1},8,["name"])):u("",!0),n(h,{name:s.strings.noPaginationForCanonical,align:""},{content:i(()=>[n(y,{modelValue:o.optionsStore.options.searchAppearance.advanced.noPaginationForCanonical,"onUpdate:modelValue":t[3]||(t[3]=l=>o.optionsStore.options.searchAppearance.advanced.noPaginationForCanonical=l),name:"noPaginationForCanonical",options:[{label:e.$constants.GLOBAL_STRINGS.off,value:!1,activeClass:"dark"},{label:e.$constants.GLOBAL_STRINGS.on,value:!0}]},null,8,["modelValue","options"])]),_:1},8,["name"]),n(h,{name:s.strings.useKeywords,align:""},{content:i(()=>[n(y,{modelValue:o.optionsStore.options.searchAppearance.advanced.useKeywords,"onUpdate:modelValue":t[4]||(t[4]=l=>o.optionsStore.options.searchAppearance.advanced.useKeywords=l),name:"useKeywords",options:[{label:e.$constants.GLOBAL_STRINGS.no,value:!1,activeClass:"dark"},{label:e.$constants.GLOBAL_STRINGS.yes,value:!0}]},null,8,["modelValue","options"]),r("div",Ue,a(s.strings.useKeywordsDescription),1)]),_:1},8,["name"]),o.optionsStore.options.searchAppearance.advanced.useKeywords?(d(),_(h,{key:2,name:s.strings.useCategoriesForMetaKeywords,align:""},{content:i(()=>[n(y,{modelValue:o.optionsStore.options.searchAppearance.advanced.useCategoriesForMetaKeywords,"onUpdate:modelValue":t[5]||(t[5]=l=>o.optionsStore.options.searchAppearance.advanced.useCategoriesForMetaKeywords=l),name:"useCategoriesForMetaKeywords",options:[{label:e.$constants.GLOBAL_STRINGS.no,value:!1,activeClass:"dark"},{label:e.$constants.GLOBAL_STRINGS.yes,value:!0}]},null,8,["modelValue","options"]),r("div",Ne,a(s.strings.useCategoriesDescription),1)]),_:1},8,["name"])):u("",!0),o.optionsStore.options.searchAppearance.advanced.useKeywords?(d(),_(h,{key:3,name:s.strings.useTagsForMetaKeywords,align:""},{content:i(()=>[n(y,{modelValue:o.optionsStore.options.searchAppearance.advanced.useTagsForMetaKeywords,"onUpdate:modelValue":t[6]||(t[6]=l=>o.optionsStore.options.searchAppearance.advanced.useTagsForMetaKeywords=l),name:"useTagsForMetaKeywords",options:[{label:e.$constants.GLOBAL_STRINGS.no,value:!1,activeClass:"dark"},{label:e.$constants.GLOBAL_STRINGS.yes,value:!0}]},null,8,["modelValue","options"]),r("div",Ie,a(s.strings.useTagsDescription),1)]),_:1},8,["name"])):u("",!0),o.optionsStore.options.searchAppearance.advanced.useKeywords?(d(),_(h,{key:4,name:s.strings.dynamicallyGenerateKeywords,align:""},{content:i(()=>[n(y,{modelValue:o.optionsStore.options.searchAppearance.advanced.dynamicallyGenerateKeywords,"onUpdate:modelValue":t[7]||(t[7]=l=>o.optionsStore.options.searchAppearance.advanced.dynamicallyGenerateKeywords=l),name:"dynamicallyGenerateKeywords",options:[{label:e.$constants.GLOBAL_STRINGS.no,value:!1,activeClass:"dark"},{label:e.$constants.GLOBAL_STRINGS.yes,value:!0}]},null,8,["modelValue","options"]),r("div",qe,a(s.strings.dynamicallyGenerateDescription),1)]),_:1},8,["name"])):u("",!0),o.optionsStore.internalOptions.internal.deprecatedOptions.includes("descriptionFormat")?(d(),_(h,{key:5,id:"description-format",name:s.strings.descriptionFormat,align:""},{content:i(()=>[n(A,{class:"description-format",modelValue:o.optionsStore.options.deprecated.searchAppearance.global.descriptionFormat,"onUpdate:modelValue":t[8]||(t[8]=l=>o.optionsStore.options.deprecated.searchAppearance.global.descriptionFormat=l),"line-numbers":!1,single:"","show-tags-description":!1,"tags-context":"descriptionFormat","default-tags":["description","site_title","tagline"],"show-all-tags-link":!0},{"tags-description":i(()=>[g(a(s.emptyString),1)]),_:1},8,["modelValue"]),o.optionsStore.options.deprecated.searchAppearance.global.descriptionFormat.includes("#description")?u("",!0):(d(),_(v,{key:0,class:"description-notice",type:"red"},{default:i(()=>[g(a(s.strings.descriptionTagRequired),1)]),_:1}))]),_:1},8,["name"])):u("",!0),n(h,{name:s.strings.runShortcodes,align:""},{content:i(()=>[n(y,{modelValue:o.optionsStore.options.searchAppearance.advanced.runShortcodes,"onUpdate:modelValue":t[9]||(t[9]=l=>o.optionsStore.options.searchAppearance.advanced.runShortcodes=l),name:"runShortcodes",options:[{label:e.$constants.GLOBAL_STRINGS.off,value:!1,activeClass:"dark"},{label:e.$constants.GLOBAL_STRINGS.on,value:!0}]},null,8,["modelValue","options"]),o.optionsStore.options.searchAppearance.advanced.runShortcodes?(d(),_(v,{key:0,class:"run-shortcodes-alert",type:"yellow",innerHTML:s.strings.runShortcodesWarning},null,8,["innerHTML"])):u("",!0),r("div",{class:"aioseo-description",innerHTML:s.strings.runShortcodesDescription},null,8,Ke)]),_:1},8,["name"]),n(h,{name:s.strings.pagedFormat,align:""},{content:i(()=>[n(A,{class:"paged-format",modelValue:o.optionsStore.options.searchAppearance.advanced.pagedFormat,"onUpdate:modelValue":t[10]||(t[10]=l=>o.optionsStore.options.searchAppearance.advanced.pagedFormat=l),"line-numbers":!1,single:"","tags-context":"pagedFormat","default-tags":["page_number"],"show-all-tags-link":!1},{"tags-description":i(()=>[g(a(s.emptyString),1)]),_:1},8,["modelValue"]),r("div",He,a(s.strings.pagedFormatDescription),1)]),_:1},8,["name"]),o.optionsStore.internalOptions.internal.deprecatedOptions.includes("excludePosts")?(d(),_(h,{key:6,name:s.strings.excludePostsPages,class:"aioseo-exclude-pages-posts",align:""},{content:i(()=>[n(k,{options:o.optionsStore.options.deprecated.searchAppearance.advanced,type:"posts"},null,8,["options"])]),_:1},8,["name"])):u("",!0),o.optionsStore.internalOptions.internal.deprecatedOptions.includes("excludeTerms")?(d(),_(h,{key:7,name:s.strings.excludeTerms,class:"aioseo-exclude-terms",align:""},{content:i(()=>[n(k,{options:o.optionsStore.options.deprecated.searchAppearance.advanced,type:"terms"},null,8,["options"])]),_:1},8,["name"])):u("",!0)]),_:1},8,["header-text"]),n(S,{class:"aioseo-rss-content-advanced",slug:"searchAdvancedCrawlCleanup",toggles:o.optionsStore.options.searchAppearance.advanced.crawlCleanup.enable},{header:i(()=>[n(c,{modelValue:o.optionsStore.options.searchAppearance.advanced.crawlCleanup.enable,"onUpdate:modelValue":t[11]||(t[11]=l=>o.optionsStore.options.searchAppearance.advanced.crawlCleanup.enable=l)},null,8,["modelValue"]),r("span",null,a(s.strings.crawlCleanup),1),o.optionsStore.options.searchAppearance.advanced.crawlCleanup.enable?u("",!0):(d(),_(P,{key:0},{tooltip:i(()=>[g(a(s.strings.crawlCleanupDescription)+" ",1),r("span",{innerHTML:e.$links.getDocLink(e.$constants.GLOBAL_STRINGS.learnMore,"crawlCleanup",!0)},null,8,Ee)]),default:i(()=>[n(C)]),_:1}))]),default:i(()=>[r("div",We,[g(a(s.strings.crawlCleanupDescription)+" ",1),r("span",{innerHTML:e.$links.getDocLink(e.$constants.GLOBAL_STRINGS.learnMore,"crawlCleanup",!0)},null,8,Ye)]),n(h,{id:"crawl-content-global-feed",name:s.strings.globalFeed,align:""},{content:i(()=>[n(y,{modelValue:o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.global,"onUpdate:modelValue":t[12]||(t[12]=l=>o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.global=l),name:"global",options:[{label:e.$constants.GLOBAL_STRINGS.disabled,value:!1,activeClass:"dark"},{label:e.$constants.GLOBAL_STRINGS.enabled,value:!0}]},null,8,["modelValue","options"]),o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.global?(d(),f("div",ze,[g(a(s.strings.globalFeedDescription)+" "+a(s.strings.disableGlobalFeedAlert)+" ",1),r("div",Je,[r("a",{href:o.rootStore.aioseo.urls.feeds.global,target:"_blank"},a(s.strings.openYourRssFeed),9,je),r("a",{class:"no-underline",href:o.rootStore.aioseo.urls.feeds.global,target:"_blank"},[g(" "),n(L)],8,Xe)])])):u("",!0),o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.global?u("",!0):(d(),_(v,{key:1,type:"red"},{default:i(()=>[g(a(s.strings.disableGlobalFeedAlert),1)]),_:1}))]),_:1},8,["name"]),n(h,{name:s.strings.globalCommentsFeed,align:""},{content:i(()=>[n(y,{modelValue:o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.globalComments,"onUpdate:modelValue":t[13]||(t[13]=l=>o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.globalComments=l),name:"globalComments",options:[{label:e.$constants.GLOBAL_STRINGS.disabled,value:!1,activeClass:"dark"},{label:e.$constants.GLOBAL_STRINGS.enabled,value:!0}]},null,8,["modelValue","options"]),r("div",Ze,a(s.strings.globalCommentsFeedDescription),1),o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.globalComments?(d(),f("div",es,[r("a",{href:o.rootStore.aioseo.urls.feeds.globalComments,target:"_blank"},a(s.strings.openYourCommentsRssFeed),9,ss),r("a",{class:"no-underline",href:o.rootStore.aioseo.urls.feeds.globalComments,target:"_blank"},[g(" "),n(L)],8,ts)])):u("",!0)]),_:1},8,["name"]),o.rootStore.aioseo.data.staticBlogPage?(d(),_(h,{key:0,name:s.strings.staticBlogPageFeed,align:""},{content:i(()=>[n(y,{modelValue:o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.staticBlogPage,"onUpdate:modelValue":t[14]||(t[14]=l=>o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.staticBlogPage=l),name:"staticBlogPage",options:[{label:e.$constants.GLOBAL_STRINGS.disabled,value:!1,activeClass:"dark"},{label:e.$constants.GLOBAL_STRINGS.enabled,value:!0}]},null,8,["modelValue","options"]),r("div",os,a(s.strings.staticBlogPageFeedDescription),1),o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.staticBlogPage?(d(),f("div",ns,[r("a",{href:o.rootStore.aioseo.urls.feeds.staticBlogPage,target:"_blank"},a(s.strings.openYourStaticBlogPageFeed),9,is),r("a",{class:"no-underline",href:o.rootStore.aioseo.urls.feeds.staticBlogPage,target:"_blank"},[g(" "),n(L)],8,as)])):u("",!0)]),_:1},8,["name"])):u("",!0),n(h,{name:s.strings.authorsFeed,align:""},{content:i(()=>[n(y,{modelValue:o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.authors,"onUpdate:modelValue":t[15]||(t[15]=l=>o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.authors=l),name:"authors",options:[{label:e.$constants.GLOBAL_STRINGS.disabled,value:!1,activeClass:"dark"},{label:e.$constants.GLOBAL_STRINGS.enabled,value:!0}]},null,8,["modelValue","options"]),r("div",rs,a(s.strings.authorsFeedDescription),1)]),_:1},8,["name"]),n(h,{name:s.strings.postCommentsFeed,align:""},{content:i(()=>[n(y,{modelValue:o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.postComments,"onUpdate:modelValue":t[16]||(t[16]=l=>o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.postComments=l),name:"postComments",options:[{label:e.$constants.GLOBAL_STRINGS.disabled,value:!1,activeClass:"dark"},{label:e.$constants.GLOBAL_STRINGS.enabled,value:!0}]},null,8,["modelValue","options"]),r("div",ls,a(s.strings.postCommentsFeedDescription),1)]),_:1},8,["name"]),n(h,{name:s.strings.searchFeed,align:""},{content:i(()=>[n(y,{modelValue:o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.search,"onUpdate:modelValue":t[17]||(t[17]=l=>o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.search=l),name:"search",options:[{label:e.$constants.GLOBAL_STRINGS.disabled,value:!1,activeClass:"dark"},{label:e.$constants.GLOBAL_STRINGS.enabled,value:!0}]},null,8,["modelValue","options"]),r("div",ds,a(s.strings.searchFeedDescription),1)]),_:1},8,["name"]),n(h,{name:s.strings.attachmentsFeed,align:""},{content:i(()=>[n(y,{modelValue:o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.attachments,"onUpdate:modelValue":t[18]||(t[18]=l=>o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.attachments=l),name:"attachments",options:[{label:e.$constants.GLOBAL_STRINGS.disabled,value:!1,activeClass:"dark"},{label:e.$constants.GLOBAL_STRINGS.enabled,value:!0}]},null,8,["modelValue","options"]),r("div",cs,a(s.strings.attachmentsFeedDescription),1)]),_:1},8,["name"]),n(h,{name:s.strings.paginatedFeed,align:""},{content:i(()=>[n(y,{modelValue:o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.paginated,"onUpdate:modelValue":t[19]||(t[19]=l=>o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.paginated=l),name:"paginated",options:[{label:e.$constants.GLOBAL_STRINGS.disabled,value:!1,activeClass:"dark"},{label:e.$constants.GLOBAL_STRINGS.enabled,value:!0}]},null,8,["modelValue","options"]),r("div",us,a(s.strings.paginatedFeedDescription),1)]),_:1},8,["name"]),o.rootStore.aioseo.postData.archives.length?(d(),_(h,{key:1,name:s.strings.postTypesFeed},{content:i(()=>[n(R,{size:"medium",modelValue:o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.archives.all,"onUpdate:modelValue":t[20]||(t[20]=l=>o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.archives.all=l)},{default:i(()=>[g(a(s.strings.includeAllPostTypes),1)]),_:1},8,["modelValue"]),o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.archives.all?u("",!0):(d(),_(M,{key:0,options:o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds,type:"archives"},null,8,["options"])),r("div",hs,a(s.strings.selectPostTypes),1)]),_:1},8,["name"])):u("",!0),n(h,{name:s.strings.taxonomiesFeed},{content:i(()=>[n(R,{size:"medium",modelValue:o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.taxonomies.all,"onUpdate:modelValue":t[21]||(t[21]=l=>o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.taxonomies.all=l)},{default:i(()=>[g(a(s.strings.includeAllTaxonomies),1)]),_:1},8,["modelValue"]),o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.taxonomies.all?u("",!0):(d(),_(M,{key:0,options:o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds,type:"taxonomies"},null,8,["options"])),r("div",ps,a(s.strings.selectTaxonomies),1)]),_:1},8,["name"]),n(h,{name:s.strings.atomFeed,align:""},{content:i(()=>[n(y,{modelValue:o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.atom,"onUpdate:modelValue":t[22]||(t[22]=l=>o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.atom=l),name:"atom",options:[{label:e.$constants.GLOBAL_STRINGS.disabled,value:!1,activeClass:"dark"},{label:e.$constants.GLOBAL_STRINGS.enabled,value:!0}]},null,8,["modelValue","options"]),r("div",{class:"aioseo-description",innerHTML:s.strings.atomFeedDescription},null,8,gs),o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.atom?(d(),f("div",ms,[r("a",{href:o.rootStore.aioseo.urls.feeds.atom,target:"_blank"},a(s.strings.openYourAtomFeed),9,_s),r("a",{class:"no-underline",href:o.rootStore.aioseo.urls.feeds.atom,target:"_blank"},[g(" "),n(L)],8,ys)])):u("",!0)]),_:1},8,["name"]),n(h,{name:s.strings.rdfFeed,align:""},{content:i(()=>[n(y,{modelValue:o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.rdf,"onUpdate:modelValue":t[23]||(t[23]=l=>o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.rdf=l),name:"rdf",options:[{label:e.$constants.GLOBAL_STRINGS.disabled,value:!1,activeClass:"dark"},{label:e.$constants.GLOBAL_STRINGS.enabled,value:!0}]},null,8,["modelValue","options"]),r("div",{class:"aioseo-description",innerHTML:s.strings.rdfFeedDescription},null,8,bs),o.optionsStore.options.searchAppearance.advanced.crawlCleanup.feeds.rdf?(d(),f("div",fs,[r("a",{href:o.rootStore.aioseo.urls.feeds.rdf,target:"_blank"},a(s.strings.openYourRdfFeed),9,ks),r("a",{class:"no-underline",href:o.rootStore.aioseo.urls.feeds.rdf,target:"_blank"},[g(" "),n(L)],8,Ss)])):u("",!0)]),_:1},8,["name"])]),_:1},8,["toggles"]),n(S,{id:"aioseo-query-arg-monitoring",slug:"queryArgLogs",toggles:o.optionsStore.options.searchAppearance.advanced.blockArgs.enable},{header:i(()=>[n(c,{modelValue:o.optionsStore.options.searchAppearance.advanced.blockArgs.enable,"onUpdate:modelValue":t[24]||(t[24]=l=>o.optionsStore.options.searchAppearance.advanced.blockArgs.enable=l)},null,8,["modelValue"]),r("span",null,a(s.strings.queryArgMonitoring),1)]),default:i(()=>[r("div",vs,[g(a(s.strings.queryArgMonitorDescription)+" ",1),r("span",{innerHTML:e.$links.getDocLink(e.$constants.GLOBAL_STRINGS.learnMore,"queryArgMonitor",!0)},null,8,ws)]),n(h,{name:s.strings.logsRetention,class:"table-retention"},{content:i(()=>[n(U,{size:"medium",options:s.logsRetentionOptions,modelValue:e.getJsonValue(o.optionsStore.options.searchAppearance.advanced.blockArgs.logsRetention),"onUpdate:modelValue":t[25]||(t[25]=l=>o.optionsStore.options.searchAppearance.advanced.blockArgs.logsRetention=e.setJsonValue(l))},null,8,["options","modelValue"])]),_:1},8,["name"]),n(N),n(I)]),_:1},8,["toggles"])])}const rt=D(Oe,[["render",As]]);export{rt as default}; all-in-one-seo-pack/dist/Lite/assets/js/allowed.B_mIy271.js000064400000000240151222736000017164 0ustar00import{u as t}from"./links.CKSg78-h.js";const e=function(o){const n=t().aioseo.user;return!!n.canManage||!!(n.capabilities&&n.capabilities[o])};export{e as a}; all-in-one-seo-pack/dist/Lite/assets/js/AnalyzeCompetitorSite.CWN6lOLB.js000064400000023067151222736000022044 0ustar00import{n as x,a as I,u as L,C as v,m as R,e as w}from"./links.CKSg78-h.js";import"./default-i18n.BtxsUzQk.js";import{u as z,S as C}from"./SeoSiteScore.9LP7E1ph.js";import{y as l,o as m,c as p,D as c,m as h,l as b,q as k,x as D,a as i,t as a,H as N,E as y,d as g,F as B,L as M}from"./vue.esm-bundler.DzelZkHk.js";import{_ as A}from"./_plugin-vue_export-helper.BN1snXvA.js";import{s as P}from"./isArrayLikeObject.CkjpbQo7.js";import{C as V,a as F}from"./Score.BDjoJfW4.js";import{p as H}from"./popup.Dv7cb5WI.js";import{C as W}from"./Blur.B433XVqJ.js";import{C as T}from"./Card.C6Yzm1Gr.js";import{C as j}from"./SeoSiteAnalysisResults.DZSlcLAT.js";import{C as q}from"./Index.S3yt8Lmc.js";import{S as G}from"./Refresh.BTBdxJdv.js";import{S as J}from"./index.DX4OhBfI.js";import"./params.B3T1WKlC.js";import"./Tooltip.DcUmvaHX.js";import"./Caret.Cuasz9Up.js";import"./Slide.BfXXFx9A.js";import"./Tags.BcJqtOJO.js";import"./tags.BOsOOXAU.js";import"./postSlug.D1i5fFFO.js";import"./metabox.BW1QyeRU.js";import"./cleanForSlug.C_GG_Tvc.js";import"./toString.EVG10Qqs.js";import"./_baseTrim.BYZhh0MR.js";import"./_stringToArray.DnK4tKcY.js";import"./get.CmvQfcJ_.js";import"./GoogleSearchPreview.C5aCQaFX.js";import"./strings.gPxlDykU.js";import"./isString.Dmb68Xbt.js";import"./constants.DARe-ccJ.js";import"./Information.Dx9dnFtu.js";import"./Gear.CzHv0eD2.js";const Y={setup(){const{strings:e}=z();return{connectStore:x(),optionsStore:I(),rootStore:L(),strings:e}},components:{CoreBlur:W,CoreCard:T},mixins:[C],data(){return{score:0}},methods:{openPopup(e){H(e,this.connectWithAioseo,600,630,!0,["token"],this.completedCallback,()=>{})},completedCallback(e){return this.connectStore.saveConnectToken(e.token)}}},K={key:0,class:"aioseo-seo-site-score-cta"};function Q(e,o,s,r,t,n){const d=l("core-card");return m(),p("div",null,[c(d,{slug:"analyzeNewCompetitor","hide-header":"","no-slide":"",toggles:!1},{default:h(()=>[(m(),b(D(r.optionsStore.internalOptions.internal.siteAnalysis.connectToken?"div":"core-blur"),null,{default:h(()=>[k(e.$slots,"default")]),_:3})),r.optionsStore.internalOptions.internal.siteAnalysis.connectToken?g("",!0):(m(),p("div",K,[i("a",{href:"#",onClick:o[0]||(o[0]=N(S=>n.openPopup(r.rootStore.aioseo.urls.connect),["prevent"]))},a(e.connectWithAioseo),1),y(" "+a(r.strings.toAnalyzeCompetitorSite),1)]))]),_:3}),r.optionsStore.internalOptions.internal.siteAnalysis.connectToken?k(e.$slots,"competitor-results",{key:0}):g("",!0)])}const X=A(Y,[["render",Q]]),Z={setup(){const{strings:e}=z();return{analyzerStore:v(),composableStrings:e}},components:{CoreSiteScore:q,SvgRefresh:G},mixins:[C],props:{score:Number,loading:Boolean,site:{type:String,required:!0},summary:{type:Object,default(){return{}}},mobileSnapshot:String},data(){return{isAnalyzing:!1,strings:R(this.composableStrings,{criticalIssues:this.$t.__("Important Issues",this.$td),warnings:this.$t.__("Warnings",this.$td),recommendedImprovements:this.$t.__("Recommended Improvements",this.$td),goodResults:this.$t.__("Good Results",this.$td),completeSiteAuditChecklist:this.$t.__("Complete Site Audit Checklist",this.$td),refreshResults:this.$t.__("Refresh Results",this.$td),mobileSnapshot:this.$t.__("Mobile Snapshot",this.$td)})}},methods:{refresh(){this.isAnalyzing=!0,this.analyzerStore.runSiteAnalyzer({url:this.site,refresh:!0}).then(()=>this.isAnalyzing=!1)}}},ee={class:"aioseo-site-score-competitor"},te={class:"aioseo-seo-site-score-score"},se={class:"aioseo-seo-site-score-recommendations"},oe={class:"critical"},re={class:"round red"},ie={class:"recommended"},ne={class:"round blue"},ae={class:"good"},le={class:"round green"},ce={key:0,class:"mobile-snapshot"},me=["src"];function he(e,o,s,r,t,n){const d=l("core-site-score"),S=l("svg-refresh"),f=l("base-button");return m(),p("div",ee,[i("div",te,[c(d,{loading:t.isAnalyzing||s.loading,score:s.score,description:e.description},null,8,["loading","score","description"])]),i("div",se,[i("div",oe,[i("span",re,a(s.summary.critical||0),1),y(" "+a(t.strings.criticalIssues),1)]),i("div",ie,[i("span",ne,a(s.summary.recommended||0),1),y(" "+a(t.strings.recommendedImprovements),1)]),i("div",ae,[i("span",le,a(s.summary.good||0),1),y(" "+a(t.strings.goodResults),1)])]),c(f,{class:"refresh-results",type:"gray",size:"small",onClick:n.refresh,loading:t.isAnalyzing},{default:h(()=>[c(S),y(" "+a(t.strings.refreshResults),1)]),_:1},8,["onClick","loading"]),s.mobileSnapshot?(m(),p("div",ce,[i("div",null,a(t.strings.mobileSnapshot),1),i("img",{alt:"Mobile Snapshot",src:s.mobileSnapshot},null,8,me)])):g("",!0)])}const pe=A(Z,[["render",he]]),ue={setup(){const{strings:e}=z();return{analyzerStore:v(),settingsStore:w(),composableStrings:e}},components:{CoreAnalyze:V,CoreAnalyzeScore:F,CoreAnalyzeCompetitorSiteHeader:X,CoreCard:T,CoreSeoSiteAnalysisResults:j,CoreSiteScoreCompetitor:pe,SvgTrash:J},mixins:[C],data(){return{score:0,competitorUrl:null,isAnalyzing:!1,inputError:!1,competitorResults:{},analyzeTime:8,strings:R(this.composableStrings,{enterCompetitorUrl:this.$t.__("Enter Competitor URL",this.$td),performInDepthAnalysis:this.$t.__("Perform in-depth SEO Analysis of your competitor's website.",this.$td),analyze:this.$t.__("Analyze",this.$td),pleaseEnterValidUrl:this.$t.__("Please enter a valid URL.",this.$td)})}},watch:{"analyzerStore.analyzeError"(e){e&&(this.isAnalyzing=!1)}},computed:{getError(){switch(this.analyzerStore.analyzeError){case"invalid-url":return this.$t.__("The URL provided is invalid.",this.$td);case"missing-content":return this.$t.sprintf("%1$s %2$s",this.$t.__("We were unable to parse the content for this site.",this.$td),this.$links.getDocLink(this.$constants.GLOBAL_STRINGS.learnMore,"seoAnalyzerIssues",!0));case"invalid-token":return this.$t.sprintf(this.$t.__("Your site is not connected. Please connect to %1$s, then try again.",this.$td),"AIOSEO")}return this.analyzerStore.analyzeError}},methods:{parseResults(e){return JSON.parse(e)},getSummary(e){return{recommended:this.analyzerStore.recommendedCount(e),critical:this.analyzerStore.criticalCount(e),good:this.analyzerStore.goodCount(e)}},startAnalyzing(e){if(this.inputError=!1,this.competitorUrl=e.replace("http://","https://"),this.competitorUrl.startsWith("https://")||(this.competitorUrl="https://"+this.competitorUrl),!P(this.competitorUrl)){this.inputError=!0;return}this.analyzerStore.analyzing=!0,this.analyzerStore.analyzeError=!1,this.analyzerStore.runSiteAnalyzer({url:this.competitorUrl}),this.isAnalyzing=!0,setTimeout(this.checkStatus,this.analyzeTime*1e3),this.closeAllCards()},checkStatus(){if(this.isAnalyzing=!1,this.analyzerStore.analyzing){this.$nextTick(()=>{this.isAnalyzing=!0,2>this.analyzeTime&&(this.analyzeTime=8),this.analyzeTime=this.analyzeTime/2,setTimeout(this.checkStatus,this.analyzeTime*1e3)});return}this.competitorUrl=null,this.competitorResults=this.analyzerStore.getCompetitorSiteAnalysisResults,this.toggleFirstCard(),this.$nextTick(()=>{const e=Object.keys(this.competitorResults),o=document.querySelector(".aioseo-header"),s=o.offsetHeight+o.offsetTop+30;this.$scrollTo("#aioseo-competitor-results"+this.hashCode(e[0]),{offset:-s})})},startDeleteSite(e){this.closeAllCards(),delete this.competitorResults[e],this.analyzerStore.deleteCompetitorSite(e).then(()=>{this.competitorResults=this.analyzerStore.getCompetitorSiteAnalysisResults})},closeAllCards(){Object.keys(this.competitorResults).forEach(o=>{this.settingsStore.closeCard("analyzeCompetitorSite"+o)})},toggleFirstCard(){const e=Object.keys(this.competitorResults);this.settingsStore.toggleCard({slug:"analyzeCompetitorSite"+e[0]})},hashCode(e){if(!e)return;let o=0,s,r;for(s=0;s[(m(!0),p(B,null,M(t.competitorResults,(_,u)=>(m(),b(U,{key:u,id:"aioseo-competitor-results"+n.hashCode(u),slug:"analyzeCompetitorSite"+u,"save-toggle-status":!1},{header:h(()=>[c(S,{score:n.parseResults(_).score},null,8,["score"]),i("span",null,a(u),1),c(f,{onClick:ze=>n.startDeleteSite(u)},null,8,["onClick"])]),default:h(()=>[i("div",ge,[c(E,{site:u,score:n.parseResults(_).score,loading:r.analyzerStore.analyzing,summary:n.getSummary(n.parseResults(_).results),"mobile-snapshot":n.parseResults(_).results.advanced.mobileSnapshot},null,8,["site","score","loading","summary","mobile-snapshot"]),i("div",Se,[c($,{section:"all-items","all-results":n.parseResults(_).results,"show-google-preview":""},null,8,["all-results"])])])]),_:2},1032,["id","slug"]))),128))]),default:h(()=>[c(d,{header:t.strings.enterCompetitorUrl,description:t.strings.performInDepthAnalysis,inputError:t.inputError,isAnalyzing:t.isAnalyzing,analyzeTime:t.analyzeTime,placeholder:"https://competitorwebsite.com",onStartAnalyzing:n.startAnalyzing},{errors:h(()=>[t.inputError?(m(),p("div",_e,a(t.strings.pleaseEnterValidUrl),1)):g("",!0),r.analyzerStore.analyzer==="competitor-site"&&r.analyzerStore.analyzeError?(m(),p("div",{key:1,class:"analyze-errors aioseo-description aioseo-error",innerHTML:r.analyzerStore.analyzeError},null,8,ye)):g("",!0)]),_:1},8,["header","description","inputError","isAnalyzing","analyzeTime","onStartAnalyzing"])]),_:1})])}const et=A(ue,[["render",fe]]);export{et as default}; all-in-one-seo-pack/dist/Lite/assets/js/AnimatedDannie.tdPgYao3.js000064400000164543151222736000020620 0ustar00import{o as c,c as t,a as l,l as s,x as p}from"./vue.esm-bundler.DzelZkHk.js";import{_ as f}from"./_plugin-vue_export-helper.BN1snXvA.js";const h={},y={width:"100%",height:"100%",viewBox:"0 0 359 436",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink","xml:space":"preserve","xmlns:serif":"http://www.serif.com/",style:{"fill-rule":"evenodd","clip-rule":"evenodd","stroke-linejoin":"round","stroke-miterlimit":"2"}},Z=l("g",null,[l("path",{d:"M187.384,412.157c-72.576,0 -131.401,-4.103 -131.401,-9.215c0,-5.113 58.825,-9.289 131.401,-9.289c72.504,0 131.328,4.176 131.328,9.289c0,5.112 -58.824,9.215 -131.328,9.215Z",style:{fill:"#dee1e3","fill-rule":"nonzero"}}),l("path",{d:"M240.16,386.022l-7.992,10.584l-44.784,4.895l-4.392,-21.239l4.392,-41.185l46.656,0l6.12,46.945Z",style:{fill:"#17113b"}}),l("path",{d:"M235.84,393.15l-23.4,0l-0.792,-45.792l15.048,0l5.688,43.128l3.456,2.664Z",style:{fill:"#2b2b57"}}),l("path",{d:"M260.247,401.501l-72.863,0c16.56,-23.327 57.024,-24.911 72.863,0Z",style:{fill:"#cb5f2b"}}),l("path",{d:"M134.536,386.022l10.872,9.719l41.976,5.76l0,-62.424l-46.656,0l-6.192,46.945Z",style:{fill:"#2b2b57"}}),l("path",{d:"M138.856,393.15l25.488,0l0.432,-45.792l-16.776,0l-5.688,43.128l-3.456,2.664Z",style:{fill:"#414076"}}),l("path",{d:"M114.448,401.501l72.936,0c-17.136,-26.063 -61.344,-24.336 -72.936,0Z",style:{fill:"#ed7b46"}}),l("path",{d:"M155.632,248.646l0.936,48.887c-23.544,19.873 -39.528,28.369 -69.769,34.057l-7.056,1.296l2.016,-64.944c4.681,0.36 5.112,0.719 9.72,-0.144c14.185,-2.664 43.633,-11.232 56.521,-16.2l7.632,-2.952Z",style:{fill:"#5f6f8b"}}),l("path",{d:"M150.016,256.997l0.792,37.945c-22.752,19.152 -39.024,26.135 -65.089,30.96l1.584,-51.768c5.76,0.432 46.009,-10.656 62.713,-17.137Z",style:{fill:"#d2e9f1"}}),l("path",{d:"M44.103,303.293c-2.663,-19.223 10.728,-36.935 29.952,-39.599c8.208,-1.152 16.128,0.648 22.752,4.536c8.857,5.256 11.521,18.36 4.609,27.431l-19.729,31.033l16.921,0.864c-4.321,2.88 -9.361,4.895 -14.905,5.687c-19.152,2.664 -36.936,-10.727 -39.6,-29.952Z",style:{fill:"#5f6f8b"}}),l("path",{d:"M49.575,302.573c2.232,16.128 17.208,27.433 33.408,25.201c16.2,-2.233 27.505,-17.208 25.201,-33.409c-2.232,-16.2 -17.209,-27.431 -33.337,-25.2c-16.2,2.233 -27.504,17.208 -25.272,33.408Z",style:{fill:"#bed6de"}}),l("path",{d:"M108.472,299.766c0.072,-1.729 0,-3.528 -0.288,-5.401c-2.232,-16.2 -17.209,-27.431 -33.337,-25.2c-4.968,0.649 -9.504,2.593 -13.32,5.328c-0.072,1.8 0,3.601 0.289,5.401c2.231,16.2 17.135,27.504 33.335,25.2c4.969,-0.648 9.505,-2.521 13.321,-5.328Z",style:{fill:"#fff"}}),l("path",{d:"M73.983,271.614c13.32,-0.72 24.336,10.728 24.625,25.56c0.287,14.832 -10.297,27.504 -23.545,28.296c-13.32,0.72 -24.336,-10.729 -24.623,-25.561c-0.289,-14.832 10.295,-27.503 23.543,-28.295Z",style:{fill:"#fff"}}),l("path",{d:"M72.111,270.606c-12.888,0.719 -23.04,12.96 -22.824,27.36c0.288,14.327 10.945,25.416 23.832,24.695c12.816,-0.719 23.04,-12.96 22.752,-27.359c-0.288,-14.4 -10.872,-25.488 -23.76,-24.696Z",style:{fill:"#5f6f8b"}}),l("path",{d:"M65.199,272.117c-6.408,4.537 -10.44,11.305 -10.296,18.721c0.504,17.64 20.376,26.928 36.144,21.096c3.168,-4.681 4.968,-10.441 4.824,-16.632c-0.288,-14.4 -10.872,-25.488 -23.76,-24.696c-2.448,0.072 -4.752,0.647 -6.912,1.511Z",style:{fill:"#9c4822"}}),l("path",{d:"M28.047,289.325c-2.88,-1.656 -4.968,-4.391 -5.616,-7.847c-0.792,-3.96 0.432,-8.28 3.312,-11.088c2.304,-2.16 5.256,-3.168 8.424,-2.952c5.832,0.504 11.664,0.36 17.424,-0.72c5.256,-1.009 10.8,-0.36 15.84,1.367c5.256,1.729 10.368,4.681 14.256,8.569c3.817,3.816 6.624,8.711 6.768,14.112c0.144,3.672 -1.08,7.128 -3.24,10.151c-5.256,7.2 -10.224,13.105 -12.96,21.744c-0.504,1.513 -1.224,2.88 -2.231,4.105c-3.745,4.68 -10.225,6.408 -15.985,5.616c-5.976,-0.721 -11.232,-4.032 -13.608,-9.433l-1.008,-0.072c-17.711,-1.008 -22.32,-20.592 -11.952,-32.903c0.216,-0.216 0.36,-0.433 0.576,-0.649Z",style:{fill:"#cb5f2b"}}),l("path",{d:"M49.863,279.749c-6.552,2.952 -14.544,7.992 -18.864,13.177c-7.703,9.071 -5.616,24.552 8.713,25.416c-0.433,-7.488 2.447,-15.408 7.631,-19.656c-3.6,-1.296 -7.2,-2.017 -11.376,-2.521c6.768,-6.263 23.616,2.305 26.928,12.097c-4.32,-3.528 -8.064,-6.12 -11.807,-7.92c-5.905,5.399 -8.209,13.823 -7.201,18.504c2.449,11.664 21.024,11.808 23.976,2.447c2.736,-8.712 6.192,-12.887 13.68,-23.111c9.649,-13.32 -12.168,-30.097 -29.088,-26.929c-4.535,0.792 -10.512,1.441 -18.648,0.792c-7.92,-0.647 -10.152,11.952 -1.44,14.04c2.52,-2.304 10.872,-6.983 17.496,-6.336Z",style:{fill:"#ed7b46"}}),l("path",{d:"M49.863,279.749c-6.552,2.952 -14.544,7.992 -18.864,13.177c-2.016,2.376 -3.384,5.184 -4.032,8.136c-1.728,8.136 8.136,13.752 13.392,9.719c1.081,-4.824 3.528,-9.288 6.984,-12.095c-3.6,-1.296 -7.2,-2.017 -11.376,-2.521c6.768,-6.263 23.616,2.305 26.928,12.097c-4.32,-3.528 -8.064,-6.12 -11.807,-7.92c-3.529,3.239 -5.833,7.632 -6.841,11.664c-2.304,9.359 19.8,12.6 22.104,1.655c1.728,-8.208 9.432,-14.399 13.248,-21.023c2.593,-4.393 1.584,-10.368 -2.159,-13.681c-4.104,-3.743 -9.793,-6.551 -15.553,-7.632c-4.68,-0.864 -18.576,3.384 -28.08,3.384c-4.032,0 -6.912,8.137 -1.44,11.376c2.52,-2.304 10.872,-6.983 17.496,-6.336Z",style:{fill:"#ffd696"}}),l("path",{d:"M65.487,278.022c6.264,2.088 9.936,7.416 8.136,11.952c-1.8,4.536 -8.28,6.552 -14.616,4.464c-6.264,-2.088 -9.936,-7.489 -8.136,-11.952c1.8,-4.537 8.352,-6.552 14.616,-4.464Z",style:{fill:"#ed7b46"}}),l("path",{d:"M152.104,231.798l97.2,0c-3.528,42.695 2.736,102.168 15.84,132.264c-64.08,18.864 -129.024,13.752 -163.296,-2.304c-1.008,-21.816 2.808,-47.593 11.52,-71.496c6.984,-13.177 12.456,-19.513 28.872,-22.464l9.864,-36Z",style:{fill:"#5f6f8b"}}),l("path",{d:"M154.192,237.558c-16.92,14.544 -28.656,35.64 -36.072,56.448c-6.984,19.943 -11.088,42.624 -10.656,64.008c19.584,8.351 44.208,11.592 65.016,12.239c28.368,0.937 57.456,-2.592 84.96,-9.935c-3.6,-9.792 -6.12,-20.376 -8.136,-30.384c-2.88,-14.76 -4.68,-29.809 -5.688,-44.712c-1.152,-15.769 -1.44,-31.824 -0.504,-47.664l-88.92,0Z",style:{fill:"#bed6de"}}),l("path",{d:"M154.192,237.558c-16.92,14.544 -28.656,35.64 -36.072,56.448c-6.984,19.943 -11.088,42.624 -10.656,64.008c16.416,6.983 36.36,10.368 54.576,11.735c0.36,-47.159 6.408,-89.063 18.144,-132.191l-25.992,0Z",style:{fill:"#fff"}}),l("path",{d:"M267.88,252.749c2.952,1.657 8.856,5.185 12.384,3.744l6.192,-2.519l30.816,61.271c-9.072,10.153 -51.624,11.088 -65.952,-3.527c-4.68,-4.824 -6.12,-11.952 -5.4,-20.952l-9.144,-14.832c-12.6,-18.288 12.888,-33.624 31.104,-23.185Z",style:{fill:"#5f6f8b"}}),l("path",{d:"M262.912,258.077c-13.824,-7.92 -27.936,3.672 -28.44,18c-0.36,9.361 5.472,20.017 12.168,26.065c16.056,14.472 42.768,18.143 60.696,9.72l-24.336,-48.6c-5.544,2.231 -12.672,-0.937 -20.088,-5.185Z",style:{fill:"#d2e9f1"}}),l("path",{d:"M262.912,258.077c-9.504,-5.399 -19.08,-1.727 -24.336,5.832c-2.52,3.529 -2.088,7.849 -0.432,11.809c7.632,18.216 47.16,28.872 63.792,25.271l-18.936,-37.727c-5.544,2.231 -12.672,-0.937 -20.088,-5.185Z",style:{fill:"#fff"}}),l("path",{d:"M336.136,279.894c-2.736,-21.96 -22.68,-37.512 -44.64,-34.777c-11.592,1.441 -21.384,7.632 -27.648,16.49c-5.616,7.846 -8.856,31.894 10.296,40.319l22.464,15.264l-21.672,1.368c7.56,4.824 16.776,7.128 26.352,5.975c21.96,-2.735 37.512,-22.679 34.848,-44.639Z",style:{fill:"#5f6f8b"}}),l("path",{d:"M329.872,280.686c2.304,18.431 -10.872,35.28 -29.304,37.584c-18.504,2.303 -35.352,-10.872 -37.584,-29.304c-2.304,-18.505 10.8,-35.352 29.304,-37.656c18.504,-2.233 35.28,10.872 37.584,29.376Z",style:{fill:"#d2e9f1"}}),l("path",{d:"M262.984,288.966c-2.304,-18.505 10.8,-35.352 29.304,-37.656c5.688,-0.649 11.16,0.072 16.2,2.015c0.576,1.945 1.008,3.96 1.296,5.977c3.96,32.111 -36,48.239 -46.8,29.664Z",style:{fill:"#fff"}}),l("path",{d:"M286.528,250.373c15.48,-8.279 33.912,-0.863 41.184,16.633c7.272,17.495 0.648,38.376 -14.832,46.728c-15.48,8.28 -33.912,0.864 -41.256,-16.632c-7.272,-17.496 -0.576,-38.375 14.904,-46.729Z",style:{fill:"#fff"}}),l("path",{d:"M289.48,254.694c14.184,-7.128 31.104,-0.648 37.872,14.471c6.696,15.12 0.648,33.193 -13.608,40.393c-14.184,7.128 -31.104,0.647 -37.872,-14.473c-6.696,-15.119 -0.648,-33.19 13.608,-40.391Z",style:{fill:"#5f6f8b"}}),l("path",{d:"M330.016,283.997c-3.816,5.473 -9.288,10.225 -16.128,13.536c-11.808,5.832 -24.984,6.193 -35.64,1.945c-0.864,-1.368 -1.656,-2.809 -2.376,-4.393c-6.696,-15.119 -0.648,-33.19 13.608,-40.391c14.184,-7.128 31.104,-0.648 37.872,14.471c2.088,4.824 2.952,9.865 2.664,14.832Z",style:{fill:"#9c4822"}}),l("path",{d:"M199.12,294.654l45,1.656c1.152,0.072 2.088,1.151 2.016,2.448l-1.008,26.928c0,1.296 -1.008,2.231 -2.232,2.231l-45,-1.727c-1.152,0 -2.088,-1.08 -2.016,-2.376l1.008,-26.928c0,-1.296 1.008,-2.305 2.232,-2.232Z",style:{fill:"#3157a7"}}),l("path",{d:"M209.56,295.014l12.024,0.504l-1.152,31.536l-22.536,-0.864c-1.152,0 -2.088,-1.08 -2.016,-2.376l0.504,-13.176c4.968,-4.32 9.432,-9.433 13.176,-15.624Z",style:{fill:"#3c62ae"}}),l("path",{d:"M224.176,300.63c0,-0.144 -0.144,-0.288 -0.288,-0.288l-4.32,-0.144c-0.144,0 -0.288,0.072 -0.288,0.288l-0.72,19.872c0,0.143 0.072,0.288 0.288,0.288l4.248,0.143c0.144,0 0.288,-0.143 0.288,-0.288l0.792,-19.871Zm10.08,5.256l-0.36,9.647c0,0.649 0,1.873 -0.216,2.449c-0.216,0.431 -0.576,0.719 -1.008,0.648c-0.504,0 -0.864,-0.217 -1.008,-0.648c-0.144,-0.576 -0.072,-1.8 -0.072,-2.376l0.432,-9.865c0,-0.431 0,-1.656 0.36,-2.087c0.216,-0.289 0.504,-0.432 0.864,-0.432c0.432,0 0.792,0.216 0.936,0.647c0.144,0.504 0.144,1.513 0.072,2.017Zm4.68,7.056l0.072,-3.6c0.072,-1.44 0.144,-3.097 0.072,-4.536c-0.072,-0.792 -0.36,-1.584 -0.864,-2.233c-0.504,-0.792 -1.152,-1.295 -1.944,-1.656c-0.936,-0.431 -1.944,-0.647 -2.952,-0.647c-1.008,-0.072 -2.016,0.072 -3.024,0.431c-0.792,0.361 -1.512,0.792 -2.016,1.513c-0.504,0.648 -0.864,1.44 -1.008,2.232c-0.216,1.44 -0.216,3.024 -0.288,4.463l-0.144,3.601c-0.072,1.439 -0.144,3.096 0,4.535c0.072,0.864 0.36,1.585 0.864,2.305c0.432,0.72 1.152,1.223 1.944,1.656c0.936,0.359 1.872,0.575 2.88,0.575c1.008,0.073 2.088,-0.071 3.024,-0.431c0.792,-0.288 1.512,-0.792 2.088,-1.512c0.504,-0.649 0.792,-1.368 0.936,-2.232c0.216,-1.44 0.288,-3.024 0.36,-4.464Zm-28.728,-8.785c0.144,3.025 0.288,5.977 0.504,8.928l0,0.361l-2.52,-0.144l0.072,-0.288c0.288,-2.952 0.864,-5.977 1.368,-8.857l0,-0.288l0.576,0.073l0,0.215Zm3.384,-3.959c0,-0.144 -0.144,-0.289 -0.288,-0.289l-6.912,-0.215c-0.144,0 -0.288,0.072 -0.288,0.215l-3.384,19.8l0.072,0.217l0.216,0.144l4.392,0.144c0.216,0 0.36,-0.144 0.36,-0.288l0.432,-3.456l2.52,0.071l0.144,3.529c0,0.144 0.144,0.288 0.288,0.288l4.32,0.143l0.216,-0.071c0.072,-0.072 0.144,-0.145 0.072,-0.288l-2.16,-19.944Z",style:{fill:"#3157a7"}}),l("path",{d:"M224.392,300.701c0,-0.143 -0.144,-0.288 -0.36,-0.359l-4.536,-0.144c-0.216,0 -0.36,0.144 -0.36,0.288l-0.792,21.383c0,0.145 0.144,0.288 0.288,0.288l4.608,0.216c0.144,0 0.288,-0.143 0.288,-0.359l0.864,-21.313Zm10.872,5.617l-0.432,10.368c0,0.72 -0.072,2.015 -0.288,2.664c-0.144,0.504 -0.576,0.72 -1.08,0.72c-0.504,-0.073 -0.864,-0.289 -1.008,-0.72c-0.144,-0.576 -0.072,-1.944 -0.072,-2.592l0.36,-10.513c0.072,-0.576 0.072,-1.872 0.432,-2.303c0.216,-0.361 0.576,-0.504 0.936,-0.432c0.504,0 0.864,0.216 1.008,0.647c0.144,0.504 0.144,1.584 0.144,2.161Zm4.896,7.631l0.144,-3.887c0.072,-1.584 0.144,-3.313 0.072,-4.824c-0.072,-0.936 -0.432,-1.728 -0.936,-2.52c-0.504,-0.792 -1.224,-1.368 -2.088,-1.729c-1.008,-0.431 -2.088,-0.647 -3.096,-0.719c-1.152,0 -2.232,0.072 -3.24,0.504c-0.936,0.36 -1.656,0.864 -2.232,1.584c-0.576,0.719 -0.936,1.511 -1.08,2.448c-0.216,1.512 -0.216,3.239 -0.288,4.752l-0.144,3.888c-0.072,1.584 -0.144,3.312 -0.072,4.896c0.072,0.863 0.432,1.655 0.936,2.447c0.504,0.792 1.224,1.368 2.088,1.729c1.008,0.431 2.088,0.647 3.168,0.72c1.08,0 2.16,-0.073 3.24,-0.504c0.864,-0.361 1.584,-0.865 2.16,-1.584c0.576,-0.72 0.936,-1.512 1.08,-2.449c0.216,-1.511 0.288,-3.24 0.288,-4.752Zm-30.816,-9.431c0.144,3.168 0.36,6.336 0.576,9.576l0,0.359l-2.736,-0.143l0.072,-0.361c0.36,-3.168 0.936,-6.335 1.44,-9.503l0.072,-0.289l0.576,0.073l0,0.288Zm3.672,-4.248c-0.072,-0.216 -0.144,-0.288 -0.36,-0.361l-7.344,-0.215c-0.144,0 -0.288,0.072 -0.36,0.215l-3.6,21.241l0.072,0.288l0.216,0.072l4.752,0.216c0.216,0 0.36,-0.145 0.36,-0.288l0.432,-3.744l2.736,0.072l0.144,3.815c0,0.145 0.144,0.288 0.288,0.288l4.68,0.145l0.216,-0.072c0.072,-0.073 0.144,-0.144 0.144,-0.288l-2.376,-21.384Z",style:{fill:"#fff"}}),l("path",{d:"M136.768,275.43l-4.608,-4.536c4.68,-11.233 12.816,-21.24 21.888,-29.521l41.76,1.584c6.624,8.929 11.952,19.441 13.464,30.889l-5.76,4.103l8.496,3.168c-4.752,17.569 -30.096,42.769 -48.456,45l-0.504,0c-17.496,-3.599 -35.64,-30.456 -35.568,-48.168l9.288,-2.519Z",style:{fill:"#7da9b9"}}),l("path",{d:"M163.552,324.39c-14.328,-2.952 -34.416,-27.792 -34.345,-45.145l11.017,-2.952l-5.976,-5.903c2.736,-6.696 9.72,-17.496 20.304,-27.216l20.088,0.72l20.16,0.792c7.776,10.439 11.736,21.672 12.6,28.439l-7.56,5.401l10.08,3.744c-4.68,17.208 -31.392,40.32 -46.368,42.12Z",style:{fill:"#7da9b9"}}),l("path",{d:"M163.912,321.798c8.856,-1.297 20.448,-10.08 26.928,-16.2c5.904,-5.544 13.032,-13.824 15.984,-21.672l-12.312,-4.536l10.152,-7.273c-0.72,-3.671 -1.944,-7.343 -3.384,-10.656c-2.088,-5.039 -4.824,-9.935 -7.992,-14.327l-37.944,-1.44c-4.392,4.175 -8.352,8.712 -11.88,13.536c-2.232,3.168 -4.536,6.767 -6.192,10.368l7.992,7.92l-13.392,3.527c0.72,8.065 5.472,16.704 9.792,22.681c4.752,6.552 13.824,16.128 22.248,18.072Z",style:{fill:"#fff"}}),l("path",{d:"M150.88,252.39l45,1.727c-4.464,29.017 -14.832,51.552 -31.824,66.745c-12.744,-16.344 -16.704,-39.384 -13.176,-68.472Z",style:{fill:"#3157a7"}}),l("path",{d:"M154.912,252.606l18.432,0.647l18.432,0.721c-5.184,10.224 -11.304,19.439 -18.36,27.432c1.08,6.696 2.088,16.416 2.664,25.992c-3.6,4.967 -7.56,9.504 -12.024,13.464c-3.384,-4.321 -6.048,-9 -8.208,-14.256c3.168,-9.432 6.84,-19.008 9.792,-25.561c-4.824,-8.424 -8.352,-17.928 -10.728,-28.439Z",style:{fill:"#17113b"}}),l("path",{d:"M170.032,277.157l-5.976,43.705c-3.384,-4.321 -6.048,-9 -8.208,-14.256c3.168,-9.432 6.84,-19.008 9.792,-25.561c-0.864,-1.367 -1.584,-2.88 -2.376,-4.319c2.16,0.216 4.464,0.359 6.768,0.431Z",style:{fill:"#2b2b57"}}),l("path",{d:"M186.088,285.077c-3.672,-7.2 -7.704,-14.111 -12.384,-20.735l-3.744,-0.144c-6.408,6.192 -12.312,12.744 -17.928,19.583c-1.008,-9.647 -0.72,-19.727 0.432,-29.519l41.4,1.512c-1.656,9.792 -4.104,19.799 -7.776,29.303Z",style:{fill:"#4c76ba"}}),l("path",{d:"M127.624,136.758l39.888,0.072c12.6,-39.24 13.464,-89.856 6.408,-109.872c-1.296,-3.672 -4.176,-2.88 -6.912,-1.296c-28.728,16.704 -47.88,62.208 -39.384,111.096Z",style:{fill:"#492915"}}),l("path",{d:"M134.392,127.614l25.488,0.072c7.344,-25.128 12.816,-65.232 7.56,-91.656c-0.072,-0.288 -0.504,-0.288 -0.648,-0.144c-27.504,19.728 -37.585,61.632 -32.4,91.728Z",style:{fill:"#5e3114"}}),l("path",{d:"M150.16,127.686c8.208,-27.072 12.168,-59.256 9.432,-75.24c-15.48,11.016 -23.616,47.952 -20.448,75.24l11.016,0Z",style:{fill:"#7f3f1b"}}),l("path",{d:"M228.28,123.51c2.952,-15.552 -0.864,-34.992 -16.632,-39.888c-6.336,-2.016 -13.176,0.648 -15.192,5.544c-1.656,3.96 0.36,7.488 1.224,11.304c-5.184,-3.672 -11.376,-1.512 -12.096,3.528c-0.288,2.448 1.08,5.4 4.104,8.712l38.592,10.8Z",style:{fill:"#cb5f2b"}}),l("path",{d:"M202.576,117.102c-0.864,-6.985 -4.968,-11.881 -8.28,-13.536c-4.248,-2.016 -5.616,0.936 -4.536,3.168c1.08,2.16 2.016,5.111 2.304,7.776l10.512,2.592Zm19.296,4.464c2.016,-10.728 -0.432,-21.816 -6.768,-28.368c-6.984,-7.272 -16.848,-5.616 -13.752,4.176c2.016,6.192 2.88,11.376 2.952,20.448l17.568,3.744Z",style:{fill:"#cb5f2b"}}),l("path",{d:"M219.712,100.254c-1.152,-2.664 -2.664,-5.04 -4.608,-7.056c-1.8,-1.872 -3.888,-3.168 -5.832,-3.888c-4.032,-1.44 -7.272,3.24 -4.536,6.408c1.8,2.016 3.096,4.536 4.464,7.704c3.456,7.992 13.608,3.744 10.512,-3.168Z",style:{fill:"#ed7b46"}}),l("path",{d:"M269.248,171.462c8.352,4.104 19.944,14.904 19.728,23.472l-22.536,13.248l-162.936,-16.2c1.368,-23.4 7.056,-45.865 15.408,-67.68c3.168,-8.136 9.648,-12.96 18.432,-14.616c21.024,-3.888 52.2,-1.44 73.368,1.584c17.856,2.52 36.792,6.407 53.712,12.6c5.184,1.872 8.496,6.696 7.992,12.024l-3.168,35.568Z",style:{fill:"#cb5f2b"}}),l("path",{d:"M288.976,194.934c-0.504,7.488 -2.016,13.968 -4.896,21.744c-3.96,10.655 -14.328,31.392 -24.912,36.936c-35.064,18.36 -104.688,8.208 -139.032,-10.153l-16.704,-50.327l0.072,-1.656l1.656,-15.984l96.264,34.704l78.696,-18.936c3.384,1.008 7.272,2.808 8.856,3.672Z",style:{fill:"#a19076"}}),l("path",{d:"M229.72,145.902l39.96,0.144c12.6,-39.241 13.464,-89.856 6.408,-109.872c-1.296,-3.672 -4.176,-2.88 -6.912,-1.296c-28.801,16.632 -47.88,62.208 -39.456,111.024Z",style:{fill:"#492915"}}),l("path",{d:"M236.56,136.83l25.416,0.072c7.416,-25.128 12.816,-65.232 7.632,-91.656c-0.072,-0.36 -0.504,-0.288 -0.72,-0.144c-27.432,19.728 -37.584,61.632 -32.328,91.728Z",style:{fill:"#5e3114"}}),l("path",{d:"M252.328,136.902c8.208,-27.144 12.168,-59.256 9.432,-75.312c-15.48,11.088 -23.616,48.024 -20.448,75.24l11.016,0.072Z",style:{fill:"#7f3f1b"}}),l("path",{d:"M139.288,117.174c27.792,-5.328 86.976,0.72 122.183,13.824c1.225,0.431 2.161,1.512 2.017,2.88l-3.888,42.912c11.232,3.528 18.36,9.648 20.52,14.472c0.072,21.959 -17.424,51.552 -25.488,55.872c-28.512,15.264 -95.616,8.783 -127.08,-8.352l-14.976,-46.224c1.44,-24.624 7.632,-46.872 14.976,-66.096c1.728,-4.608 5.184,-8.064 11.736,-9.288Z",style:{fill:"#cb5f2b"}}),l("path",{d:"M245.2,143.166l-2.592,29.088c8.496,1.944 12.312,3.024 16.992,4.536c11.232,3.528 18.36,9.648 20.52,14.472c0.072,21.959 -17.424,51.552 -25.488,55.872c-28.512,15.264 -95.616,8.783 -127.08,-8.352l-14.976,-46.224c1.44,-24.624 7.632,-46.872 14.976,-66.096c1.728,-4.608 5.184,-8.064 11.736,-9.288c21.096,-4.032 60.408,-1.512 93.456,5.688c5.904,1.296 13.392,10.439 12.456,20.304Z",style:{fill:"#ed7b46"}}),l("path",{d:"M184.216,116.022l0.288,0l0.936,0.071l0.432,0l0.36,0.073l0.216,0l1.224,0.072l0.216,0l0.216,0.072l0.36,0c0.432,0.072 0.864,0.072 1.224,0.072l0.216,0.072l0.648,0l0.072,0.072c0.432,0 0.864,0.072 1.368,0.072l0.144,0.072l0.648,0l1.008,0.144l0.432,0l0.216,0.071l0.432,0l1.008,0.145l0.432,0l0.432,0.072c-10.656,11.16 -13.681,37.728 -13.464,51.336c0.216,14.328 14.616,21.384 28.224,21.816c7.555,0.222 14.814,-0.868 22.183,-1.958c14.12,-2.089 28.644,-4.178 46.433,2.966c0.072,21.959 -17.424,51.552 -25.488,55.872c-28.512,15.264 -95.616,8.783 -127.08,-8.352l-14.976,-46.224c0.288,-5.256 0.863,-10.512 1.512,-15.552c11.663,3.888 27.144,7.344 36.216,7.92c10.655,0.648 19.296,-7.992 19.728,-17.424c0.792,-18.865 4.536,-43.776 13.608,-51.552l0.576,0.072Z",style:{fill:"#f0dfc3"}}),l("path",{d:"M184.216,116.022l0.288,0l0.936,0.071l0.432,0l0.36,0.073l0.216,0l1.224,0.072l0.216,0l0.216,0.072l0.36,0c0.432,0.072 0.864,0.072 1.224,0.072l0.216,0.072l0.648,0l0.072,0.072c0.432,0 0.864,0.072 1.368,0.072l0.144,0.072l0.648,0l1.008,0.144l0.432,0l0.216,0.071l0.432,0l1.008,0.145l0.432,0l0.432,0.072c-10.656,11.16 -13.681,37.728 -13.464,51.336c0.216,14.328 14.616,21.384 28.224,21.816c7.555,0.222 14.814,-0.868 22.183,-1.958c14.12,-2.089 28.644,-4.178 46.433,2.966c-20.016,34.416 -108.432,40.248 -158.4,20.016l-9.144,-18.72c0.288,-5.256 0.863,-10.512 1.512,-15.552c11.663,3.888 27.144,7.344 36.216,7.92c10.655,0.648 19.296,-7.992 19.728,-17.424c0.792,-18.865 4.536,-43.776 13.608,-51.552l0.576,0.072Z",style:{fill:"#fff"}}),l("path",{d:"M221.152,154.398l-1.224,13.392c-1.368,15.192 -27.504,13.104 -26.136,-2.16l1.224,-13.32c1.368,-15.264 27.504,-13.104 26.136,2.088Z",style:{fill:"#fff"}}),l("path",{d:"M220.864,157.782l-1.08,11.52c-1.152,13.176 -20.592,11.448 -19.44,-1.728l0.504,-5.76l9.648,-2.88l-9.072,-2.952c1.152,-13.104 20.592,-11.376 19.44,1.8Z",style:{fill:"#1a1c22"}}),l("path",{d:"M203.584,179.382l19.584,-2.304c-2.664,-6.84 -16.272,-5.472 -19.584,2.304Z",style:{fill:"#ffd696"}}),l("path",{d:"M203.584,179.382c3.6,3.312 15.84,3.816 19.584,-2.304c-8.424,-2.808 -15.12,-0.649 -19.584,2.304Z",style:{fill:"#e37d4e"}}),l("path",{d:"M167.944,149.646l-1.224,13.32c-1.368,15.264 -26.208,12.96 -24.84,-2.232l1.224,-13.32c1.368,-15.264 26.208,-13.032 24.84,2.232Z",style:{fill:"#fff"}}),l("path",{d:"M167.584,152.958l-1.008,11.592c-1.152,13.104 -20.664,11.376 -19.44,-1.8l0.504,-5.688l9.648,-2.88l-9.144,-2.952c1.224,-13.177 20.664,-11.448 19.44,1.728Z",style:{fill:"#1a1c22"}}),l("path",{d:"M196.528,243.966c8.856,-1.44 15.912,1.151 20.448,2.951c3.6,1.368 6.768,1.657 9.432,1.009l10.44,-18.792c-0.072,-0.36 -0.072,-0.792 -0.072,-1.152c-0.432,-4.68 -3.24,-7.777 -5.976,-13.105c-1.368,-2.663 -2.448,-5.255 -3.744,-10.151l-30.528,39.24Z",style:{fill:"#4c2b10"}}),l("path",{d:"M236.848,229.134c-7.488,1.151 -13.68,9.648 -10.44,18.792c7.128,-1.513 10.872,-9.217 10.44,-18.792Z",style:{fill:"#ad6151"}}),l("path",{d:"M237.856,245.478c9.504,0.72 9.792,-8.065 4.392,-14.977c0.288,6.985 -0.288,11.16 -4.392,14.977Z",style:{fill:"#d6b887"}}),l("path",{d:"M87.303,155.909l73.081,6.624c3.816,0.361 13.032,5.041 13.896,8.425l-13.896,12.312l3.96,19.367l36.144,27.433l27.288,-27.288c4.896,18.144 -17.856,51.335 -26.208,55.945c-18.144,9.934 -47.88,10.511 -68.328,5.831c-19.728,-4.536 -38.665,-14.544 -50.473,-32.112c-4.032,-6.048 -6.552,-15.193 -7.847,-22.104c-3.025,-15.696 -2.953,-33.913 2.663,-48.456c1.512,-3.96 5.4,-6.336 9.72,-5.977Z",style:{fill:"#a19076"}}),l("path",{d:"M87.447,163.11l84.025,7.56c-2.592,30.096 23.4,35.352 56.304,32.112c-0.144,21.095 -21.312,45.503 -29.664,50.04c-22.032,12.168 -84.096,13.248 -109.153,-24.121c-6.552,-9.863 -12.888,-41.327 -4.247,-63.863c0.431,-1.152 1.511,-1.8 2.735,-1.728Z",style:{fill:"#f0dfc3"}}),l("path",{d:"M87.447,163.11l84.025,7.56l2.808,0.288c-2.52,30.024 20.592,35.064 53.496,31.824c0,3.672 -0.648,7.488 -1.8,11.231c-4.68,16.705 -14.76,23.833 -24.264,29.089c-21.312,11.736 -49.248,2.952 -80.568,-15.481c-9.792,-5.759 -30.817,-10.223 -32.185,1.08c-6.552,-9.863 -12.888,-41.327 -4.247,-63.863c0.431,-1.152 1.511,-1.8 2.735,-1.728Z",style:{fill:"#fff"}}),l("path",{d:"M78.951,153.318l44.929,4.032c5.472,0.504 8.28,3.455 7.992,9.287c-2.449,52.417 -77.617,48.528 -56.737,-11.159c0.504,-1.44 2.016,-2.304 3.816,-2.16Z",style:{fill:"#17113b"}}),l("path",{d:"M78.951,153.318l17.64,1.584c-3.888,9 -6.408,19.728 -6.552,24.984c-0.288,6.984 0.288,15.12 2.376,22.824c-15.408,-3.024 -27.216,-18.792 -17.28,-47.232c0.504,-1.44 2.016,-2.304 3.816,-2.16Z",style:{fill:"#2b2b57"}}),l("path",{d:"M81.759,157.782l30.961,2.808c1.512,0.072 2.736,0.864 3.384,2.16c0.648,1.224 0.504,2.52 -0.432,3.528c-8.856,10.08 -38.881,7.128 -38.017,-5.4c0.144,-1.944 1.944,-3.312 4.104,-3.096Z",style:{fill:"#697196"}}),l("path",{d:"M167.944,120.198c4.032,-0.145 7.128,1.296 6.984,3.24c-0.216,1.872 -3.6,3.6 -7.56,3.816c-4.032,0.144 -7.128,-1.296 -6.984,-3.241c0.216,-1.871 3.6,-3.599 7.56,-3.815Z",style:{fill:"#ffd696"}}),l("path",{d:"M210.136,123.726c-3.888,-0.864 -7.2,-0.072 -7.344,1.872c-0.216,1.944 2.808,4.247 6.768,5.112c3.888,0.936 7.2,0.072 7.344,-1.872c0.216,-1.944 -2.808,-4.248 -6.768,-5.112Z",style:{fill:"#ffd696"}}),l("g",{id:"Hand-Magnifier","serif:id":"Hand/Magnifier"},[l("g",{id:"Hand-Under","serif:id":"Hand Under"},[l("path",{d:"M298.606,246.346c1.015,-4.391 3.757,-8.058 8.439,-9.202c4.898,-1.216 10.01,-0.775 14.325,1.968c3.668,2.309 6.254,6.13 6.967,10.451c0.713,4.465 -0.518,8.423 -3.043,11.587c2.877,2.02 5.032,5.048 5.674,8.864c0.641,3.674 -0.229,7.345 -2.465,10.364c-2.598,3.525 -6.634,5.607 -10.811,6.607c-2.089,0.5 -4.249,0.426 -6.264,-0.37c-4.677,-1.879 -7.764,-6.996 -8.547,-12.399c-1.082,0.863 -2.379,1.509 -3.891,1.795c-6.194,1.286 -12.312,-0.524 -16.047,-5.787c-1.652,-2.306 -2.656,-5.045 -3.011,-7.851c-0.851,-8.211 3.985,-15.404 12.268,-17.117c1.224,-0.214 2.449,-0.284 3.6,0.006c1.008,0.217 1.943,0.579 2.806,1.084Z",style:{fill:"#cb5f2b"}}),l("path",{d:"M310.824,303.677c14.403,-1.415 24.507,-16.014 22.59,-32.722c-1.917,-16.635 -15.144,-29.04 -29.475,-27.624c-14.402,1.344 -24.506,16.015 -22.589,32.651c1.916,16.707 15.072,29.113 29.474,27.695Z",style:{fill:"#cb5f2b"}}),l("path",{d:"M310.328,299.07c12.17,-1.205 20.758,-13.574 19.125,-27.761c-1.632,-14.115 -12.847,-24.574 -25.017,-23.441c-12.17,1.203 -20.759,13.645 -19.126,27.761c1.633,14.114 12.776,24.645 25.018,23.441Z",style:{fill:"#cb5f2b"}}),l("path",{d:"M320.126,295.27c6.56,-4.958 10.463,-14.023 9.327,-23.961c-1.632,-14.115 -12.847,-24.574 -25.017,-23.441c-1.945,0.213 -3.745,0.713 -5.475,1.431c-1.975,19.293 8.073,38.389 21.165,45.971Z",style:{fill:"#ed7b46"}}),l("path",{d:"M305.659,292.221c8.713,-0.849 14.848,-9.695 13.713,-19.85c-1.136,-10.08 -9.188,-17.582 -17.901,-16.732c-8.713,0.778 -14.848,9.696 -13.713,19.85c1.208,10.081 9.188,17.582 17.901,16.732Z",style:{fill:"#f0ad76"}})]),l("g",{id:"Magnifying-Glass","serif:id":"Magnifying Glass"},[l("path",{d:"M289.502,222.354l7.202,-1.643l9.937,43.793c0.786,3.384 -6.489,5.029 -7.275,1.644l-9.864,-43.794Z",style:{fill:"#5a6d75"}}),l("path",{d:"M291.204,237.693l10.588,-2.429c1.945,-0.43 3.887,0.798 4.316,2.815l10.865,48.112c1.501,6.556 -16.431,9.262 -17.647,4.005l-10.865,-48.114c-0.428,-2.018 0.799,-3.959 2.743,-4.389Z",style:{fill:"#17113b"}}),l("path",{d:"M296.462,236.479l5.33,-1.215c1.945,-0.43 3.887,0.798 4.316,2.815l10.865,48.112c0.787,3.243 -3.321,5.612 -7.787,6.397l-12.724,-56.109Z",style:{fill:"#2b2b57"}}),l("clipPath",{id:"_clip1"},[l("path",{d:"M285.283,217.268c-0.382,0 -0.762,-0.007 -1.142,-0.019c0.038,-0.102 0.075,-0.202 0.113,-0.302c2.893,-7.772 4.416,-14.249 4.932,-21.736c0.23,-8.568 -11.344,-19.387 -19.689,-23.505l0.759,-8.375c4.359,-4.276 9.927,-7.431 16.333,-8.877c2.563,-0.586 5.124,-0.866 7.646,-0.862c6.692,0.011 13.102,2.021 18.482,5.585c-6.3,-8.487 -16.4,-13.705 -27.225,-13.722c-2.507,-0.004 -5.056,0.27 -7.602,0.849c-2.196,0.498 -4.292,1.197 -6.278,2.077l0.377,-4.148c1.643,-0.621 3.351,-1.135 5.115,-1.53c2.816,-0.634 5.631,-0.937 8.402,-0.932c17.215,0.028 32.765,11.888 36.768,29.446c4.574,20.312 -8.203,40.523 -28.514,45.097c-2.842,0.65 -5.68,0.959 -8.477,0.954Z"})]),l("g",{"clip-path":"url(#_clip1)"},[l("path",{d:"M269.546,141.745l57.384,0.094l-0.124,75.498l-57.384,-0.095l0.124,-75.497Z",style:{fill:"#fff","fill-rule":"nonzero"}})]),l("path",{d:"M275.979,138.377c22.293,-5.048 44.491,8.953 49.54,31.247c5.048,22.294 -8.953,44.492 -31.247,49.54c-22.294,5.048 -44.492,-8.953 -49.54,-31.247c-5.048,-22.293 8.953,-44.491 31.247,-49.54Z",style:{fill:"#fff","fill-opacity":"0.45"}}),l("path",{d:"M277.104,142.703c-20.383,4.574 -33.088,24.786 -28.514,45.169c4.575,20.312 24.858,33.088 45.17,28.442c20.311,-4.574 33.088,-24.785 28.514,-45.097c-4.647,-20.384 -24.858,-33.089 -45.17,-28.514Zm-2.787,-12.389c27.154,-6.147 54.126,10.889 60.273,38.043c6.148,27.225 -10.889,54.198 -38.043,60.345c-27.154,6.148 -54.198,-10.888 -60.345,-38.042c-6.148,-27.155 10.888,-54.198 38.115,-60.346Z",style:{fill:"#7da9b9"}}),l("path",{d:"M276.746,141.334c21.104,-4.789 42.107,8.42 46.896,29.525c4.718,21.104 -8.493,42.106 -29.597,46.824c-21.104,4.789 -42.034,-8.421 -46.823,-29.526c-4.79,-21.103 8.493,-42.033 29.524,-46.823Zm-2.144,-9.652c26.434,-6.004 52.687,10.599 58.62,37.033c6.004,26.362 -10.599,52.687 -36.961,58.619c-26.433,6.005 -52.686,-10.599 -58.691,-37.032c-5.933,-26.362 10.598,-52.615 37.032,-58.62Z",style:{fill:"#7da9b9"}}),l("path",{d:"M274.888,133.051c-24.417,5.504 -40.151,28.877 -36.591,53.292c0.64,4.537 7.626,3.541 6.985,-1.068c-2.99,-20.741 10.435,-40.591 31.179,-45.309c20.815,-4.718 41.459,7.484 47.691,27.51c1.36,4.393 8.132,2.317 6.771,-2.149c-7.305,-23.484 -31.618,-37.78 -56.035,-32.276Z",style:{fill:"#d2e9f1"}}),l("g",{id:"Moon"},[l("path",{d:"M266.772,207.99c-0.69,-0.455 -1.364,-0.935 -2.022,-1.438c0.236,-0.145 0.468,-0.29 0.7,-0.436c0.419,0.642 0.86,1.266 1.322,1.874Z",style:{fill:"#fbf7ed","fill-opacity":"0.76","fill-rule":"nonzero"}}),l("path",{d:"M270.256,163.331l1.356,-14.95c1.986,-0.88 4.082,-1.579 6.278,-2.077c2.546,-0.579 5.095,-0.853 7.602,-0.849c10.825,0.017 20.925,5.235 27.225,13.722c-5.38,-3.564 -11.79,-5.574 -18.482,-5.585c-2.522,-0.004 -5.083,0.276 -7.646,0.862c-6.406,1.446 -11.974,4.601 -16.333,8.877Z",style:{fill:"#fff","fill-opacity":"0.76","fill-rule":"nonzero"}}),l("path",{d:"M261.558,177.592c-0.563,-0.197 -1.135,-0.389 -1.718,-0.573l2.039,-22.103c2.797,-2.683 6.075,-4.914 9.733,-6.535l-1.356,14.95c-4.029,3.951 -7.026,8.86 -8.698,14.261Z",style:{fill:"#fff","fill-opacity":"0.76","fill-rule":"nonzero"}}),l("path",{d:"M261.558,177.592c-0.563,-0.197 -1.135,-0.389 -1.718,-0.573c-2.653,-0.863 -5.027,-1.585 -8.134,-2.406c1.107,-7.54 4.735,-14.479 10.173,-19.697l-2.039,22.103c0.583,0.184 1.155,0.376 1.718,0.573Z",style:{fill:"#fff","fill-opacity":"0.76","fill-rule":"nonzero"}}),l("path",{d:"M260.053,186.734c-1.83,-0.139 -3.633,-0.203 -5.411,-0.206c-0.855,-0.001 -1.705,0.011 -2.549,0.037c-0.86,-4.042 -0.957,-8.076 -0.387,-11.952c3.107,0.821 5.481,1.543 8.134,2.406c0.583,0.184 1.155,0.376 1.718,0.573c-0.906,2.928 -1.423,5.999 -1.505,9.142Z",style:{fill:"#fff","fill-opacity":"0.76","fill-rule":"nonzero"}}),l("path",{d:"M264.75,206.552c-6.112,-4.683 -10.687,-11.408 -12.558,-19.538c-0.034,-0.15 -0.067,-0.3 -0.099,-0.449c0.844,-0.026 1.694,-0.038 2.549,-0.037c1.778,0.003 3.581,0.067 5.411,0.206c-0.07,2.772 0.198,5.599 0.837,8.43c0.895,4.029 2.443,7.707 4.56,10.952c-0.232,0.146 -0.464,0.291 -0.7,0.436Z",style:{fill:"#fff","fill-opacity":"0.76","fill-rule":"nonzero"}})])]),l("g",{id:"Hand-Above","serif:id":"Hand Above"},[l("path",{d:"M308.118,241.393c-9.291,2.29 -6.011,21.303 2.628,22.397c-7.279,3.948 -2.987,21.09 5.945,18.945c15.342,-3.79 11.697,-20.069 -0.688,-20.016c14.77,-5.952 7.89,-25.187 -7.885,-21.326Zm-15.061,8.183c8.571,-1.786 13.791,20.399 5.004,22.185c-15.486,3.143 -19.121,-19.327 -5.004,-22.185Z",style:{fill:"#f0ad76"}}),l("path",{d:"M317.731,262.794c-5.047,4.167 -2.618,16.123 3.426,18.221c9.441,-5.24 6.22,-16.981 -3.426,-18.221Zm-22.551,9.251c-11.736,-0.02 -14.734,-16.008 -5.653,-21.178c6.838,0.875 10.844,16.721 5.653,21.178Zm18.411,-31.074c-5.839,4.526 -2.983,18.788 3.998,20.959c10.953,-5.815 7.16,-19.789 -3.998,-20.959Z",style:{fill:"#fbd395"}})])])],-1),M=[Z];function n(e,i){return c(),t("svg",y,M)}const o=f(h,[["render",n]]),r={},b={width:"100%",height:"100%",viewBox:"0 0 359 436",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink","xml:space":"preserve","xmlns:serif":"http://www.serif.com/",style:{"fill-rule":"evenodd","clip-rule":"evenodd","stroke-linejoin":"round","stroke-miterlimit":"2"}},m=l("g",null,[l("path",{d:"M187.384,412.157c-72.576,0 -131.401,-4.103 -131.401,-9.215c0,-5.113 58.825,-9.289 131.401,-9.289c72.504,0 131.328,4.176 131.328,9.289c0,5.112 -58.824,9.215 -131.328,9.215Z",style:{fill:"#dee1e3","fill-rule":"nonzero"}}),l("path",{d:"M240.16,386.022l-7.992,10.584l-44.784,4.895l-4.392,-21.239l4.392,-41.185l46.656,0l6.12,46.945Z",style:{fill:"#17113b"}}),l("path",{d:"M235.84,393.15l-23.4,0l-0.792,-45.792l15.048,0l5.688,43.128l3.456,2.664Z",style:{fill:"#2b2b57"}}),l("path",{d:"M260.247,401.501l-72.863,0c16.56,-23.327 57.024,-24.911 72.863,0Z",style:{fill:"#cb5f2b"}}),l("path",{d:"M134.536,386.022l10.872,9.719l41.976,5.76l0,-62.424l-46.656,0l-6.192,46.945Z",style:{fill:"#2b2b57"}}),l("path",{d:"M138.856,393.15l25.488,0l0.432,-45.792l-16.776,0l-5.688,43.128l-3.456,2.664Z",style:{fill:"#414076"}}),l("path",{d:"M114.448,401.501l72.936,0c-17.136,-26.063 -61.344,-24.336 -72.936,0Z",style:{fill:"#ed7b46"}}),l("path",{d:"M155.632,248.646l0.936,48.887c-23.544,19.873 -39.528,28.369 -69.769,34.057l-7.056,1.296l2.016,-64.944c4.681,0.36 5.112,0.719 9.72,-0.144c14.185,-2.664 43.633,-11.232 56.521,-16.2l7.632,-2.952Z",style:{fill:"#5f6f8b"}}),l("path",{d:"M150.016,256.997l0.792,37.945c-22.752,19.152 -39.024,26.135 -65.089,30.96l1.584,-51.768c5.76,0.432 46.009,-10.656 62.713,-17.137Z",style:{fill:"#d2e9f1"}}),l("path",{d:"M44.103,303.293c-2.663,-19.223 10.728,-36.935 29.952,-39.599c8.208,-1.152 16.128,0.648 22.752,4.536c8.857,5.256 11.521,18.36 4.609,27.431l-19.729,31.033l16.921,0.864c-4.321,2.88 -9.361,4.895 -14.905,5.687c-19.152,2.664 -36.936,-10.727 -39.6,-29.952Z",style:{fill:"#5f6f8b"}}),l("path",{d:"M49.575,302.573c2.232,16.128 17.208,27.433 33.408,25.201c16.2,-2.233 27.505,-17.208 25.201,-33.409c-2.232,-16.2 -17.209,-27.431 -33.337,-25.2c-16.2,2.233 -27.504,17.208 -25.272,33.408Z",style:{fill:"#bed6de"}}),l("path",{d:"M108.472,299.766c0.072,-1.729 0,-3.528 -0.288,-5.401c-2.232,-16.2 -17.209,-27.431 -33.337,-25.2c-4.968,0.649 -9.504,2.593 -13.32,5.328c-0.072,1.8 0,3.601 0.289,5.401c2.231,16.2 17.135,27.504 33.335,25.2c4.969,-0.648 9.505,-2.521 13.321,-5.328Z",style:{fill:"#fff"}}),l("path",{d:"M73.983,271.614c13.32,-0.72 24.336,10.728 24.625,25.56c0.287,14.832 -10.297,27.504 -23.545,28.296c-13.32,0.72 -24.336,-10.729 -24.623,-25.561c-0.289,-14.832 10.295,-27.503 23.543,-28.295Z",style:{fill:"#fff"}}),l("path",{d:"M72.111,270.606c-12.888,0.719 -23.04,12.96 -22.824,27.36c0.288,14.327 10.945,25.416 23.832,24.695c12.816,-0.719 23.04,-12.96 22.752,-27.359c-0.288,-14.4 -10.872,-25.488 -23.76,-24.696Z",style:{fill:"#5f6f8b"}}),l("path",{d:"M65.199,272.117c-6.408,4.537 -10.44,11.305 -10.296,18.721c0.504,17.64 20.376,26.928 36.144,21.096c3.168,-4.681 4.968,-10.441 4.824,-16.632c-0.288,-14.4 -10.872,-25.488 -23.76,-24.696c-2.448,0.072 -4.752,0.647 -6.912,1.511Z",style:{fill:"#9c4822"}}),l("path",{d:"M28.047,289.325c-2.88,-1.656 -4.968,-4.391 -5.616,-7.847c-0.792,-3.96 0.432,-8.28 3.312,-11.088c2.304,-2.16 5.256,-3.168 8.424,-2.952c5.832,0.504 11.664,0.36 17.424,-0.72c5.256,-1.009 10.8,-0.36 15.84,1.367c5.256,1.729 10.368,4.681 14.256,8.569c3.817,3.816 6.624,8.711 6.768,14.112c0.144,3.672 -1.08,7.128 -3.24,10.151c-5.256,7.2 -10.224,13.105 -12.96,21.744c-0.504,1.513 -1.224,2.88 -2.231,4.105c-3.745,4.68 -10.225,6.408 -15.985,5.616c-5.976,-0.721 -11.232,-4.032 -13.608,-9.433l-1.008,-0.072c-17.711,-1.008 -22.32,-20.592 -11.952,-32.903c0.216,-0.216 0.36,-0.433 0.576,-0.649Z",style:{fill:"#cb5f2b"}}),l("path",{d:"M49.863,279.749c-6.552,2.952 -14.544,7.992 -18.864,13.177c-7.703,9.071 -5.616,24.552 8.713,25.416c-0.433,-7.488 2.447,-15.408 7.631,-19.656c-3.6,-1.296 -7.2,-2.017 -11.376,-2.521c6.768,-6.263 23.616,2.305 26.928,12.097c-4.32,-3.528 -8.064,-6.12 -11.807,-7.92c-5.905,5.399 -8.209,13.823 -7.201,18.504c2.449,11.664 21.024,11.808 23.976,2.447c2.736,-8.712 6.192,-12.887 13.68,-23.111c9.649,-13.32 -12.168,-30.097 -29.088,-26.929c-4.535,0.792 -10.512,1.441 -18.648,0.792c-7.92,-0.647 -10.152,11.952 -1.44,14.04c2.52,-2.304 10.872,-6.983 17.496,-6.336Z",style:{fill:"#ed7b46"}}),l("path",{d:"M49.863,279.749c-6.552,2.952 -14.544,7.992 -18.864,13.177c-2.016,2.376 -3.384,5.184 -4.032,8.136c-1.728,8.136 8.136,13.752 13.392,9.719c1.081,-4.824 3.528,-9.288 6.984,-12.095c-3.6,-1.296 -7.2,-2.017 -11.376,-2.521c6.768,-6.263 23.616,2.305 26.928,12.097c-4.32,-3.528 -8.064,-6.12 -11.807,-7.92c-3.529,3.239 -5.833,7.632 -6.841,11.664c-2.304,9.359 19.8,12.6 22.104,1.655c1.728,-8.208 9.432,-14.399 13.248,-21.023c2.593,-4.393 1.584,-10.368 -2.159,-13.681c-4.104,-3.743 -9.793,-6.551 -15.553,-7.632c-4.68,-0.864 -18.576,3.384 -28.08,3.384c-4.032,0 -6.912,8.137 -1.44,11.376c2.52,-2.304 10.872,-6.983 17.496,-6.336Z",style:{fill:"#ffd696"}}),l("path",{d:"M65.487,278.022c6.264,2.088 9.936,7.416 8.136,11.952c-1.8,4.536 -8.28,6.552 -14.616,4.464c-6.264,-2.088 -9.936,-7.489 -8.136,-11.952c1.8,-4.537 8.352,-6.552 14.616,-4.464Z",style:{fill:"#ed7b46"}}),l("path",{d:"M152.104,231.798l97.2,0c-3.528,42.695 2.736,102.168 15.84,132.264c-64.08,18.864 -129.024,13.752 -163.296,-2.304c-1.008,-21.816 2.808,-47.593 11.52,-71.496c6.984,-13.177 12.456,-19.513 28.872,-22.464l9.864,-36Z",style:{fill:"#5f6f8b"}}),l("path",{d:"M154.192,237.558c-16.92,14.544 -28.656,35.64 -36.072,56.448c-6.984,19.943 -11.088,42.624 -10.656,64.008c19.584,8.351 44.208,11.592 65.016,12.239c28.368,0.937 57.456,-2.592 84.96,-9.935c-3.6,-9.792 -6.12,-20.376 -8.136,-30.384c-2.88,-14.76 -4.68,-29.809 -5.688,-44.712c-1.152,-15.769 -1.44,-31.824 -0.504,-47.664l-88.92,0Z",style:{fill:"#bed6de"}}),l("path",{d:"M154.192,237.558c-16.92,14.544 -28.656,35.64 -36.072,56.448c-6.984,19.943 -11.088,42.624 -10.656,64.008c16.416,6.983 36.36,10.368 54.576,11.735c0.36,-47.159 6.408,-89.063 18.144,-132.191l-25.992,0Z",style:{fill:"#fff"}}),l("path",{d:"M267.88,252.749c2.952,1.657 8.856,5.185 12.384,3.744l6.192,-2.519l30.816,61.271c-9.072,10.153 -51.624,11.088 -65.952,-3.527c-4.68,-4.824 -6.12,-11.952 -5.4,-20.952l-9.144,-14.832c-12.6,-18.288 12.888,-33.624 31.104,-23.185Z",style:{fill:"#5f6f8b"}}),l("path",{d:"M262.912,258.077c-13.824,-7.92 -27.936,3.672 -28.44,18c-0.36,9.361 5.472,20.017 12.168,26.065c16.056,14.472 42.768,18.143 60.696,9.72l-24.336,-48.6c-5.544,2.231 -12.672,-0.937 -20.088,-5.185Z",style:{fill:"#d2e9f1"}}),l("path",{d:"M262.912,258.077c-9.504,-5.399 -19.08,-1.727 -24.336,5.832c-2.52,3.529 -2.088,7.849 -0.432,11.809c7.632,18.216 47.16,28.872 63.792,25.271l-18.936,-37.727c-5.544,2.231 -12.672,-0.937 -20.088,-5.185Z",style:{fill:"#fff"}}),l("path",{d:"M336.136,279.894c-2.736,-21.96 -22.68,-37.512 -44.64,-34.777c-11.592,1.441 -21.384,7.632 -27.648,16.49c-5.616,7.846 -8.856,31.894 10.296,40.319l22.464,15.264l-21.672,1.368c7.56,4.824 16.776,7.128 26.352,5.975c21.96,-2.735 37.512,-22.679 34.848,-44.639Z",style:{fill:"#5f6f8b"}}),l("path",{d:"M329.872,280.686c2.304,18.431 -10.872,35.28 -29.304,37.584c-18.504,2.303 -35.352,-10.872 -37.584,-29.304c-2.304,-18.505 10.8,-35.352 29.304,-37.656c18.504,-2.233 35.28,10.872 37.584,29.376Z",style:{fill:"#d2e9f1"}}),l("path",{d:"M262.984,288.966c-2.304,-18.505 10.8,-35.352 29.304,-37.656c5.688,-0.649 11.16,0.072 16.2,2.015c0.576,1.945 1.008,3.96 1.296,5.977c3.96,32.111 -36,48.239 -46.8,29.664Z",style:{fill:"#fff"}}),l("path",{d:"M286.528,250.373c15.48,-8.279 33.912,-0.863 41.184,16.633c7.272,17.495 0.648,38.376 -14.832,46.728c-15.48,8.28 -33.912,0.864 -41.256,-16.632c-7.272,-17.496 -0.576,-38.375 14.904,-46.729Z",style:{fill:"#fff"}}),l("path",{d:"M289.48,254.694c14.184,-7.128 31.104,-0.648 37.872,14.471c6.696,15.12 0.648,33.193 -13.608,40.393c-14.184,7.128 -31.104,0.647 -37.872,-14.473c-6.696,-15.119 -0.648,-33.19 13.608,-40.391Z",style:{fill:"#5f6f8b"}}),l("path",{d:"M330.016,283.997c-3.816,5.473 -9.288,10.225 -16.128,13.536c-11.808,5.832 -24.984,6.193 -35.64,1.945c-0.864,-1.368 -1.656,-2.809 -2.376,-4.393c-6.696,-15.119 -0.648,-33.19 13.608,-40.391c14.184,-7.128 31.104,-0.648 37.872,14.471c2.088,4.824 2.952,9.865 2.664,14.832Z",style:{fill:"#9c4822"}}),l("path",{d:"M199.12,294.654l45,1.656c1.152,0.072 2.088,1.151 2.016,2.448l-1.008,26.928c0,1.296 -1.008,2.231 -2.232,2.231l-45,-1.727c-1.152,0 -2.088,-1.08 -2.016,-2.376l1.008,-26.928c0,-1.296 1.008,-2.305 2.232,-2.232Z",style:{fill:"#3157a7"}}),l("path",{d:"M209.56,295.014l12.024,0.504l-1.152,31.536l-22.536,-0.864c-1.152,0 -2.088,-1.08 -2.016,-2.376l0.504,-13.176c4.968,-4.32 9.432,-9.433 13.176,-15.624Z",style:{fill:"#3c62ae"}}),l("path",{d:"M224.176,300.63c0,-0.144 -0.144,-0.288 -0.288,-0.288l-4.32,-0.144c-0.144,0 -0.288,0.072 -0.288,0.288l-0.72,19.872c0,0.143 0.072,0.288 0.288,0.288l4.248,0.143c0.144,0 0.288,-0.143 0.288,-0.288l0.792,-19.871Zm10.08,5.256l-0.36,9.647c0,0.649 0,1.873 -0.216,2.449c-0.216,0.431 -0.576,0.719 -1.008,0.648c-0.504,0 -0.864,-0.217 -1.008,-0.648c-0.144,-0.576 -0.072,-1.8 -0.072,-2.376l0.432,-9.865c0,-0.431 0,-1.656 0.36,-2.087c0.216,-0.289 0.504,-0.432 0.864,-0.432c0.432,0 0.792,0.216 0.936,0.647c0.144,0.504 0.144,1.513 0.072,2.017Zm4.68,7.056l0.072,-3.6c0.072,-1.44 0.144,-3.097 0.072,-4.536c-0.072,-0.792 -0.36,-1.584 -0.864,-2.233c-0.504,-0.792 -1.152,-1.295 -1.944,-1.656c-0.936,-0.431 -1.944,-0.647 -2.952,-0.647c-1.008,-0.072 -2.016,0.072 -3.024,0.431c-0.792,0.361 -1.512,0.792 -2.016,1.513c-0.504,0.648 -0.864,1.44 -1.008,2.232c-0.216,1.44 -0.216,3.024 -0.288,4.463l-0.144,3.601c-0.072,1.439 -0.144,3.096 0,4.535c0.072,0.864 0.36,1.585 0.864,2.305c0.432,0.72 1.152,1.223 1.944,1.656c0.936,0.359 1.872,0.575 2.88,0.575c1.008,0.073 2.088,-0.071 3.024,-0.431c0.792,-0.288 1.512,-0.792 2.088,-1.512c0.504,-0.649 0.792,-1.368 0.936,-2.232c0.216,-1.44 0.288,-3.024 0.36,-4.464Zm-28.728,-8.785c0.144,3.025 0.288,5.977 0.504,8.928l0,0.361l-2.52,-0.144l0.072,-0.288c0.288,-2.952 0.864,-5.977 1.368,-8.857l0,-0.288l0.576,0.073l0,0.215Zm3.384,-3.959c0,-0.144 -0.144,-0.289 -0.288,-0.289l-6.912,-0.215c-0.144,0 -0.288,0.072 -0.288,0.215l-3.384,19.8l0.072,0.217l0.216,0.144l4.392,0.144c0.216,0 0.36,-0.144 0.36,-0.288l0.432,-3.456l2.52,0.071l0.144,3.529c0,0.144 0.144,0.288 0.288,0.288l4.32,0.143l0.216,-0.071c0.072,-0.072 0.144,-0.145 0.072,-0.288l-2.16,-19.944Z",style:{fill:"#3157a7"}}),l("path",{d:"M224.392,300.701c0,-0.143 -0.144,-0.288 -0.36,-0.359l-4.536,-0.144c-0.216,0 -0.36,0.144 -0.36,0.288l-0.792,21.383c0,0.145 0.144,0.288 0.288,0.288l4.608,0.216c0.144,0 0.288,-0.143 0.288,-0.359l0.864,-21.313Zm10.872,5.617l-0.432,10.368c0,0.72 -0.072,2.015 -0.288,2.664c-0.144,0.504 -0.576,0.72 -1.08,0.72c-0.504,-0.073 -0.864,-0.289 -1.008,-0.72c-0.144,-0.576 -0.072,-1.944 -0.072,-2.592l0.36,-10.513c0.072,-0.576 0.072,-1.872 0.432,-2.303c0.216,-0.361 0.576,-0.504 0.936,-0.432c0.504,0 0.864,0.216 1.008,0.647c0.144,0.504 0.144,1.584 0.144,2.161Zm4.896,7.631l0.144,-3.887c0.072,-1.584 0.144,-3.313 0.072,-4.824c-0.072,-0.936 -0.432,-1.728 -0.936,-2.52c-0.504,-0.792 -1.224,-1.368 -2.088,-1.729c-1.008,-0.431 -2.088,-0.647 -3.096,-0.719c-1.152,0 -2.232,0.072 -3.24,0.504c-0.936,0.36 -1.656,0.864 -2.232,1.584c-0.576,0.719 -0.936,1.511 -1.08,2.448c-0.216,1.512 -0.216,3.239 -0.288,4.752l-0.144,3.888c-0.072,1.584 -0.144,3.312 -0.072,4.896c0.072,0.863 0.432,1.655 0.936,2.447c0.504,0.792 1.224,1.368 2.088,1.729c1.008,0.431 2.088,0.647 3.168,0.72c1.08,0 2.16,-0.073 3.24,-0.504c0.864,-0.361 1.584,-0.865 2.16,-1.584c0.576,-0.72 0.936,-1.512 1.08,-2.449c0.216,-1.511 0.288,-3.24 0.288,-4.752Zm-30.816,-9.431c0.144,3.168 0.36,6.336 0.576,9.576l0,0.359l-2.736,-0.143l0.072,-0.361c0.36,-3.168 0.936,-6.335 1.44,-9.503l0.072,-0.289l0.576,0.073l0,0.288Zm3.672,-4.248c-0.072,-0.216 -0.144,-0.288 -0.36,-0.361l-7.344,-0.215c-0.144,0 -0.288,0.072 -0.36,0.215l-3.6,21.241l0.072,0.288l0.216,0.072l4.752,0.216c0.216,0 0.36,-0.145 0.36,-0.288l0.432,-3.744l2.736,0.072l0.144,3.815c0,0.145 0.144,0.288 0.288,0.288l4.68,0.145l0.216,-0.072c0.072,-0.073 0.144,-0.144 0.144,-0.288l-2.376,-21.384Z",style:{fill:"#fff"}}),l("path",{d:"M136.768,275.43l-4.608,-4.536c4.68,-11.233 12.816,-21.24 21.888,-29.521l41.76,1.584c6.624,8.929 11.952,19.441 13.464,30.889l-5.76,4.103l8.496,3.168c-4.752,17.569 -30.096,42.769 -48.456,45l-0.504,0c-17.496,-3.599 -35.64,-30.456 -35.568,-48.168l9.288,-2.519Z",style:{fill:"#7da9b9"}}),l("path",{d:"M163.552,324.39c-14.328,-2.952 -34.416,-27.792 -34.345,-45.145l11.017,-2.952l-5.976,-5.903c2.736,-6.696 9.72,-17.496 20.304,-27.216l20.088,0.72l20.16,0.792c7.776,10.439 11.736,21.672 12.6,28.439l-7.56,5.401l10.08,3.744c-4.68,17.208 -31.392,40.32 -46.368,42.12Z",style:{fill:"#7da9b9"}}),l("path",{d:"M163.912,321.798c8.856,-1.297 20.448,-10.08 26.928,-16.2c5.904,-5.544 13.032,-13.824 15.984,-21.672l-12.312,-4.536l10.152,-7.273c-0.72,-3.671 -1.944,-7.343 -3.384,-10.656c-2.088,-5.039 -4.824,-9.935 -7.992,-14.327l-37.944,-1.44c-4.392,4.175 -8.352,8.712 -11.88,13.536c-2.232,3.168 -4.536,6.767 -6.192,10.368l7.992,7.92l-13.392,3.527c0.72,8.065 5.472,16.704 9.792,22.681c4.752,6.552 13.824,16.128 22.248,18.072Z",style:{fill:"#fff"}}),l("path",{d:"M150.88,252.39l45,1.727c-4.464,29.017 -14.832,51.552 -31.824,66.745c-12.744,-16.344 -16.704,-39.384 -13.176,-68.472Z",style:{fill:"#3157a7"}}),l("path",{d:"M154.912,252.606l18.432,0.647l18.432,0.721c-5.184,10.224 -11.304,19.439 -18.36,27.432c1.08,6.696 2.088,16.416 2.664,25.992c-3.6,4.967 -7.56,9.504 -12.024,13.464c-3.384,-4.321 -6.048,-9 -8.208,-14.256c3.168,-9.432 6.84,-19.008 9.792,-25.561c-4.824,-8.424 -8.352,-17.928 -10.728,-28.439Z",style:{fill:"#17113b"}}),l("path",{d:"M170.032,277.157l-5.976,43.705c-3.384,-4.321 -6.048,-9 -8.208,-14.256c3.168,-9.432 6.84,-19.008 9.792,-25.561c-0.864,-1.367 -1.584,-2.88 -2.376,-4.319c2.16,0.216 4.464,0.359 6.768,0.431Z",style:{fill:"#2b2b57"}}),l("path",{d:"M186.088,285.077c-3.672,-7.2 -7.704,-14.111 -12.384,-20.735l-3.744,-0.144c-6.408,6.192 -12.312,12.744 -17.928,19.583c-1.008,-9.647 -0.72,-19.727 0.432,-29.519l41.4,1.512c-1.656,9.792 -4.104,19.799 -7.776,29.303Z",style:{fill:"#4c76ba"}}),l("path",{d:"M127.624,136.758l39.888,0.072c12.6,-39.24 13.464,-89.856 6.408,-109.872c-1.296,-3.672 -4.176,-2.88 -6.912,-1.296c-28.728,16.704 -47.88,62.208 -39.384,111.096Z",style:{fill:"#492915"}}),l("path",{d:"M134.392,127.614l25.488,0.072c7.344,-25.128 12.816,-65.232 7.56,-91.656c-0.072,-0.288 -0.504,-0.288 -0.648,-0.144c-27.504,19.728 -37.585,61.632 -32.4,91.728Z",style:{fill:"#5e3114"}}),l("path",{d:"M150.16,127.686c8.208,-27.072 12.168,-59.256 9.432,-75.24c-15.48,11.016 -23.616,47.952 -20.448,75.24l11.016,0Z",style:{fill:"#7f3f1b"}}),l("path",{d:"M228.28,123.51c2.952,-15.552 -0.864,-34.992 -16.632,-39.888c-6.336,-2.016 -13.176,0.648 -15.192,5.544c-1.656,3.96 0.36,7.488 1.224,11.304c-5.184,-3.672 -11.376,-1.512 -12.096,3.528c-0.288,2.448 1.08,5.4 4.104,8.712l38.592,10.8Z",style:{fill:"#cb5f2b"}}),l("path",{d:"M202.576,117.102c-0.864,-6.985 -4.968,-11.881 -8.28,-13.536c-4.248,-2.016 -5.616,0.936 -4.536,3.168c1.08,2.16 2.016,5.111 2.304,7.776l10.512,2.592Zm19.296,4.464c2.016,-10.728 -0.432,-21.816 -6.768,-28.368c-6.984,-7.272 -16.848,-5.616 -13.752,4.176c2.016,6.192 2.88,11.376 2.952,20.448l17.568,3.744Z",style:{fill:"#cb5f2b"}}),l("path",{d:"M219.712,100.254c-1.152,-2.664 -2.664,-5.04 -4.608,-7.056c-1.8,-1.872 -3.888,-3.168 -5.832,-3.888c-4.032,-1.44 -7.272,3.24 -4.536,6.408c1.8,2.016 3.096,4.536 4.464,7.704c3.456,7.992 13.608,3.744 10.512,-3.168Z",style:{fill:"#ed7b46"}}),l("path",{d:"M269.248,171.462c8.352,4.104 19.944,14.904 19.728,23.472l-22.536,13.248l-162.936,-16.2c1.368,-23.4 7.056,-45.865 15.408,-67.68c3.168,-8.136 9.648,-12.96 18.432,-14.616c21.024,-3.888 52.2,-1.44 73.368,1.584c17.856,2.52 36.792,6.407 53.712,12.6c5.184,1.872 8.496,6.696 7.992,12.024l-3.168,35.568Z",style:{fill:"#cb5f2b"}}),l("path",{d:"M288.976,194.934c-0.504,7.488 -2.016,13.968 -4.896,21.744c-3.96,10.655 -14.328,31.392 -24.912,36.936c-35.064,18.36 -104.688,8.208 -139.032,-10.153l-16.704,-50.327l0.072,-1.656l1.656,-15.984l96.264,34.704l78.696,-18.936c3.384,1.008 7.272,2.808 8.856,3.672Z",style:{fill:"#a19076"}}),l("path",{d:"M229.72,145.902l39.96,0.144c12.6,-39.241 13.464,-89.856 6.408,-109.872c-1.296,-3.672 -4.176,-2.88 -6.912,-1.296c-28.801,16.632 -47.88,62.208 -39.456,111.024Z",style:{fill:"#492915"}}),l("path",{d:"M236.56,136.83l25.416,0.072c7.416,-25.128 12.816,-65.232 7.632,-91.656c-0.072,-0.36 -0.504,-0.288 -0.72,-0.144c-27.432,19.728 -37.584,61.632 -32.328,91.728Z",style:{fill:"#5e3114"}}),l("path",{d:"M252.328,136.902c8.208,-27.144 12.168,-59.256 9.432,-75.312c-15.48,11.088 -23.616,48.024 -20.448,75.24l11.016,0.072Z",style:{fill:"#7f3f1b"}}),l("path",{d:"M139.288,117.174c27.792,-5.328 86.976,0.72 122.183,13.824c1.225,0.431 2.161,1.512 2.017,2.88l-3.888,42.912c11.232,3.528 18.36,9.648 20.52,14.472c0.072,21.959 -17.424,51.552 -25.488,55.872c-28.512,15.264 -95.616,8.783 -127.08,-8.352l-14.976,-46.224c1.44,-24.624 7.632,-46.872 14.976,-66.096c1.728,-4.608 5.184,-8.064 11.736,-9.288Z",style:{fill:"#cb5f2b"}}),l("path",{d:"M245.2,143.166l-2.592,29.088c8.496,1.944 12.312,3.024 16.992,4.536c11.232,3.528 18.36,9.648 20.52,14.472c0.072,21.959 -17.424,51.552 -25.488,55.872c-28.512,15.264 -95.616,8.783 -127.08,-8.352l-14.976,-46.224c1.44,-24.624 7.632,-46.872 14.976,-66.096c1.728,-4.608 5.184,-8.064 11.736,-9.288c21.096,-4.032 60.408,-1.512 93.456,5.688c5.904,1.296 13.392,10.439 12.456,20.304Z",style:{fill:"#ed7b46"}}),l("path",{d:"M184.216,116.022l0.288,0l0.936,0.071l0.432,0l0.36,0.073l0.216,0l1.224,0.072l0.216,0l0.216,0.072l0.36,0c0.432,0.072 0.864,0.072 1.224,0.072l0.216,0.072l0.648,0l0.072,0.072c0.432,0 0.864,0.072 1.368,0.072l0.144,0.072l0.648,0l1.008,0.144l0.432,0l0.216,0.071l0.432,0l1.008,0.145l0.432,0l0.432,0.072c-10.656,11.16 -13.681,37.728 -13.464,51.336c0.216,14.328 14.616,21.384 28.224,21.816c7.555,0.222 14.814,-0.868 22.183,-1.958c14.12,-2.089 28.644,-4.178 46.433,2.966c0.072,21.959 -17.424,51.552 -25.488,55.872c-28.512,15.264 -95.616,8.783 -127.08,-8.352l-14.976,-46.224c0.288,-5.256 0.863,-10.512 1.512,-15.552c11.663,3.888 27.144,7.344 36.216,7.92c10.655,0.648 19.296,-7.992 19.728,-17.424c0.792,-18.865 4.536,-43.776 13.608,-51.552l0.576,0.072Z",style:{fill:"#f0dfc3"}}),l("path",{d:"M184.216,116.022l0.288,0l0.936,0.071l0.432,0l0.36,0.073l0.216,0l1.224,0.072l0.216,0l0.216,0.072l0.36,0c0.432,0.072 0.864,0.072 1.224,0.072l0.216,0.072l0.648,0l0.072,0.072c0.432,0 0.864,0.072 1.368,0.072l0.144,0.072l0.648,0l1.008,0.144l0.432,0l0.216,0.071l0.432,0l1.008,0.145l0.432,0l0.432,0.072c-10.656,11.16 -13.681,37.728 -13.464,51.336c0.216,14.328 14.616,21.384 28.224,21.816c7.555,0.222 14.814,-0.868 22.183,-1.958c14.12,-2.089 28.644,-4.178 46.433,2.966c-20.016,34.416 -108.432,40.248 -158.4,20.016l-9.144,-18.72c0.288,-5.256 0.863,-10.512 1.512,-15.552c11.663,3.888 27.144,7.344 36.216,7.92c10.655,0.648 19.296,-7.992 19.728,-17.424c0.792,-18.865 4.536,-43.776 13.608,-51.552l0.576,0.072Z",style:{fill:"#fff"}}),l("path",{d:"M221.152,154.398l-1.224,13.392c-1.368,15.192 -27.504,13.104 -26.136,-2.16l1.224,-13.32c1.368,-15.264 27.504,-13.104 26.136,2.088Z",style:{fill:"#fff"}}),l("path",{d:"M220.864,157.782l-1.08,11.52c-1.152,13.176 -20.592,11.448 -19.44,-1.728l0.504,-5.76l9.648,-2.88l-9.072,-2.952c1.152,-13.104 20.592,-11.376 19.44,1.8Z",style:{fill:"#1a1c22"}}),l("path",{d:"M203.584,179.382l19.584,-2.304c-2.664,-6.84 -16.272,-5.472 -19.584,2.304Z",style:{fill:"#ffd696"}}),l("path",{d:"M203.584,179.382c3.6,3.312 15.84,3.816 19.584,-2.304c-8.424,-2.808 -15.12,-0.649 -19.584,2.304Z",style:{fill:"#e37d4e"}}),l("path",{d:"M167.944,149.646l-1.224,13.32c-1.368,15.264 -26.208,12.96 -24.84,-2.232l1.224,-13.32c1.368,-15.264 26.208,-13.032 24.84,2.232Z",style:{fill:"#fff"}}),l("path",{d:"M167.584,152.958l-1.008,11.592c-1.152,13.104 -20.664,11.376 -19.44,-1.8l0.504,-5.688l9.648,-2.88l-9.144,-2.952c1.224,-13.177 20.664,-11.448 19.44,1.728Z",style:{fill:"#1a1c22"}}),l("path",{d:"M196.528,243.966c8.856,-1.44 15.912,1.151 20.448,2.951c3.6,1.368 6.768,1.657 9.432,1.009l10.44,-18.792c-0.072,-0.36 -0.072,-0.792 -0.072,-1.152c-0.432,-4.68 -3.24,-7.777 -5.976,-13.105c-1.368,-2.663 -2.448,-5.255 -3.744,-10.151l-30.528,39.24Z",style:{fill:"#4c2b10"}}),l("path",{d:"M236.848,229.134c-7.488,1.151 -13.68,9.648 -10.44,18.792c7.128,-1.513 10.872,-9.217 10.44,-18.792Z",style:{fill:"#ad6151"}}),l("path",{d:"M237.856,245.478c9.504,0.72 9.792,-8.065 4.392,-14.977c0.288,6.985 -0.288,11.16 -4.392,14.977Z",style:{fill:"#d6b887"}}),l("path",{d:"M87.303,155.909l73.081,6.624c3.816,0.361 13.032,5.041 13.896,8.425l-13.896,12.312l3.96,19.367l36.144,27.433l27.288,-27.288c4.896,18.144 -17.856,51.335 -26.208,55.945c-18.144,9.934 -47.88,10.511 -68.328,5.831c-19.728,-4.536 -38.665,-14.544 -50.473,-32.112c-4.032,-6.048 -6.552,-15.193 -7.847,-22.104c-3.025,-15.696 -2.953,-33.913 2.663,-48.456c1.512,-3.96 5.4,-6.336 9.72,-5.977Z",style:{fill:"#a19076"}}),l("path",{d:"M87.447,163.11l84.025,7.56c-2.592,30.096 23.4,35.352 56.304,32.112c-0.144,21.095 -21.312,45.503 -29.664,50.04c-22.032,12.168 -84.096,13.248 -109.153,-24.121c-6.552,-9.863 -12.888,-41.327 -4.247,-63.863c0.431,-1.152 1.511,-1.8 2.735,-1.728Z",style:{fill:"#f0dfc3"}}),l("path",{d:"M87.447,163.11l84.025,7.56l2.808,0.288c-2.52,30.024 20.592,35.064 53.496,31.824c0,3.672 -0.648,7.488 -1.8,11.231c-4.68,16.705 -14.76,23.833 -24.264,29.089c-21.312,11.736 -49.248,2.952 -80.568,-15.481c-9.792,-5.759 -30.817,-10.223 -32.185,1.08c-6.552,-9.863 -12.888,-41.327 -4.247,-63.863c0.431,-1.152 1.511,-1.8 2.735,-1.728Z",style:{fill:"#fff"}}),l("path",{d:"M78.951,153.318l44.929,4.032c5.472,0.504 8.28,3.455 7.992,9.287c-2.449,52.417 -77.617,48.528 -56.737,-11.159c0.504,-1.44 2.016,-2.304 3.816,-2.16Z",style:{fill:"#17113b"}}),l("path",{d:"M78.951,153.318l17.64,1.584c-3.888,9 -6.408,19.728 -6.552,24.984c-0.288,6.984 0.288,15.12 2.376,22.824c-15.408,-3.024 -27.216,-18.792 -17.28,-47.232c0.504,-1.44 2.016,-2.304 3.816,-2.16Z",style:{fill:"#2b2b57"}}),l("path",{d:"M81.759,157.782l30.961,2.808c1.512,0.072 2.736,0.864 3.384,2.16c0.648,1.224 0.504,2.52 -0.432,3.528c-8.856,10.08 -38.881,7.128 -38.017,-5.4c0.144,-1.944 1.944,-3.312 4.104,-3.096Z",style:{fill:"#697196"}}),l("path",{d:"M167.944,120.198c4.032,-0.145 7.128,1.296 6.984,3.24c-0.216,1.872 -3.6,3.6 -7.56,3.816c-4.032,0.144 -7.128,-1.296 -6.984,-3.241c0.216,-1.871 3.6,-3.599 7.56,-3.815Z",style:{fill:"#ffd696"}}),l("path",{d:"M210.136,123.726c-3.888,-0.864 -7.2,-0.072 -7.344,1.872c-0.216,1.944 2.808,4.247 6.768,5.112c3.888,0.936 7.2,0.072 7.344,-1.872c0.216,-1.944 -2.808,-4.248 -6.768,-5.112Z",style:{fill:"#ffd696"}}),l("g",{id:"Hand-Magnifier","serif:id":"Hand/Magnifier"},[l("g",{id:"Hand-Under","serif:id":"Hand Under"},[l("path",{d:"M305.65,246.193c1.96,-4.058 5.444,-7.029 10.263,-7.111c5.046,-0.104 9.934,1.454 13.537,5.083c3.068,3.062 4.746,7.36 4.487,11.732c-0.291,4.512 -2.366,8.101 -5.527,10.629c2.359,2.605 3.792,6.034 3.575,9.898c-0.185,3.725 -1.844,7.113 -4.693,9.564c-3.312,2.864 -7.707,4.002 -12.002,4.055c-2.148,0.027 -4.238,-0.523 -6.028,-1.743c-4.146,-2.866 -6.027,-8.539 -5.598,-13.981c-1.245,0.602 -2.653,0.947 -4.191,0.891c-6.325,-0.114 -11.892,-3.23 -14.372,-9.188c-1.103,-2.614 -1.477,-5.506 -1.203,-8.322c0.983,-8.196 7.288,-14.143 15.745,-13.985c1.241,0.062 2.451,0.264 3.51,0.801c0.935,0.435 1.767,0.994 2.497,1.677Z",style:{fill:"#cb5f2b"}}),l("path",{d:"M304.905,304.807c14.359,1.801 27.438,-10.207 29.259,-26.925c1.804,-16.648 -8.357,-31.668 -22.646,-33.452c-14.344,-1.869 -27.439,10.208 -29.243,26.856c-1.821,16.718 8.27,31.723 22.63,33.521Z",style:{fill:"#cb5f2b"}}),l("path",{d:"M305.439,300.204c12.135,1.512 23.243,-8.655 24.784,-22.852c1.524,-14.127 -7.104,-26.805 -19.223,-28.387c-12.135,-1.515 -23.259,8.723 -24.784,22.851c-1.525,14.127 7.017,26.858 19.223,28.388Z",style:{fill:"#cb5f2b"}}),l("path",{d:"M315.834,298.661c7.493,-3.386 13.302,-11.366 14.389,-21.309c1.524,-14.127 -7.104,-26.805 -19.223,-28.387c-1.943,-0.222 -3.81,-0.132 -5.655,0.187c-6.188,18.38 -0.605,39.224 10.489,49.509Z",style:{fill:"#ed7b46"}}),l("path",{d:"M302.398,292.493c8.685,1.096 16.622,-6.176 17.757,-16.331c1.119,-10.083 -5.077,-19.177 -13.763,-20.273c-8.67,-1.165 -16.622,6.177 -17.758,16.331c-1.048,10.099 5.078,19.177 13.764,20.273Z",style:{fill:"#f0ad76"}})]),l("g",{id:"Magnifying-Glass","serif:id":"Magnifying Glass"},[l("path",{d:"M302.069,220.783l7.388,-0.012l0.019,44.906c0.02,3.474 -7.439,3.472 -7.458,-0.003l0.051,-44.891Z",style:{fill:"#5a6d75"}}),l("path",{d:"M300.342,236.119l10.863,-0.031c1.992,0.01 3.615,1.637 3.588,3.699l-0.029,49.324c0.016,6.725 -18.071,5.404 -18.095,0.008l0.029,-49.325c0.027,-2.063 1.653,-3.685 3.644,-3.675Z",style:{fill:"#17113b"}}),l("path",{d:"M305.739,236.096l5.466,-0.008c1.992,0.01 3.615,1.637 3.588,3.699l-0.029,49.324c0.051,3.336 -4.479,4.74 -9.007,4.519l-0.018,-57.534Z",style:{fill:"#2b2b57"}}),l("clipPath",{id:"_clip1"},[l("path",{d:"M299.078,214.891c-0.373,-0.085 -0.742,-0.175 -1.11,-0.271c0.06,-0.091 0.118,-0.181 0.178,-0.27c4.537,-6.94 7.453,-12.922 9.61,-20.11c2.116,-8.305 -6.783,-21.413 -14.013,-27.272l2.591,-8.001c5.196,-3.208 11.322,-5.055 17.89,-5.05c2.629,-0.007 5.189,0.286 7.648,0.847c6.524,1.489 12.332,4.864 16.792,9.529c-4.27,-9.669 -12.969,-16.988 -23.523,-19.396c-2.444,-0.558 -4.99,-0.853 -7.601,-0.851c-2.252,0.001 -4.45,0.22 -6.582,0.639l1.284,-3.962c1.739,-0.243 3.518,-0.367 5.327,-0.363c2.886,0.004 5.698,0.33 8.4,0.947c16.783,3.829 29.33,18.831 29.356,36.839c-0.024,20.82 -16.949,37.711 -37.769,37.687c-2.915,0.005 -5.751,-0.32 -8.478,-0.942Z"})]),l("g",{"clip-path":"url(#_clip1)"},[l("path",{d:"M300.408,137.756l55.947,12.765l-16.795,73.607l-55.946,-12.765l16.794,-73.607Z",style:{fill:"#fff","fill-rule":"nonzero"}})]),l("circle",{cx:"307.426",cy:"177.309",r:"41.416",style:{fill:"#fff","fill-opacity":"0.45"}}),l("path",{d:"M307.569,140.36c-20.891,-0.04 -37.746,16.867 -37.786,37.757c-0.024,20.821 16.937,37.761 37.773,37.716c20.82,0.024 37.745,-16.867 37.769,-37.687c-0.03,-20.906 -16.936,-37.762 -37.756,-37.786Zm0.017,-12.698c27.841,0.001 50.385,22.574 50.383,50.415c-0.017,27.91 -22.589,50.455 -50.43,50.453c-27.842,0 -50.456,-22.589 -50.454,-50.43c0.001,-27.842 22.589,-50.455 50.501,-50.438Z",style:{fill:"#7da9b9"}}),l("path",{d:"M307.522,138.947c21.64,-0.011 39.207,17.511 39.217,39.152c-0.06,21.625 -17.582,39.191 -39.207,39.131c-21.64,0.011 -39.136,-17.496 -39.147,-39.137c-0.01,-21.64 17.567,-39.12 39.137,-39.146Zm0.04,-9.888c27.107,-0.018 49.045,21.973 48.994,49.065c0.034,27.037 -21.973,49.045 -48.994,49.009c-27.107,0.019 -49.045,-21.973 -49.064,-49.08c0.036,-27.021 21.957,-48.975 49.064,-48.994Z",style:{fill:"#7da9b9"}}),l("path",{d:"M307.539,130.458c-25.03,-0.025 -45.538,19.297 -47.458,43.895c-0.377,4.566 6.656,5.137 7.05,0.5c1.664,-20.889 19.141,-37.284 40.414,-37.304c21.344,-0.004 38.784,16.455 40.438,37.363c0.357,4.586 7.42,4.056 7.079,-0.6c-1.939,-24.518 -22.494,-43.83 -47.523,-43.854Z",style:{fill:"#d2e9f1"}}),l("g",{id:"Moon"},[l("path",{d:"M283.073,201.754c-0.573,-0.597 -1.124,-1.214 -1.654,-1.85c0.261,-0.089 0.52,-0.178 0.779,-0.27c0.267,0.718 0.559,1.425 0.875,2.12Z",style:{fill:"#fbf7ed","fill-opacity":"0.76","fill-rule":"nonzero"}}),l("path",{d:"M296.334,158.967l4.624,-14.282c2.132,-0.419 4.33,-0.638 6.582,-0.639c2.611,-0.002 5.157,0.293 7.601,0.851c10.554,2.408 19.253,9.727 23.523,19.396c-4.46,-4.665 -10.268,-8.04 -16.792,-9.529c-2.459,-0.561 -5.019,-0.854 -7.648,-0.847c-6.568,-0.005 -12.694,1.842 -17.89,5.05Z",style:{fill:"#fff","fill-opacity":"0.76","fill-rule":"nonzero"}}),l("path",{d:"M284.701,170.955c-0.505,-0.317 -1.021,-0.631 -1.549,-0.939l6.87,-21.106c3.32,-2 7.011,-3.451 10.936,-4.225l-4.624,14.282c-4.802,2.964 -8.81,7.09 -11.633,11.988Z",style:{fill:"#fff","fill-opacity":"0.76","fill-rule":"nonzero"}}),l("path",{d:"M284.701,170.955c-0.505,-0.317 -1.021,-0.631 -1.549,-0.939c-2.397,-1.427 -4.553,-2.655 -7.402,-4.142c2.745,-7.11 7.816,-13.076 14.272,-16.964l-6.87,21.106c0.528,0.308 1.044,0.622 1.549,0.939Z",style:{fill:"#fff","fill-opacity":"0.76","fill-rule":"nonzero"}}),l("path",{d:"M281.214,179.539c-1.754,-0.54 -3.498,-1.001 -5.231,-1.396c-0.834,-0.19 -1.666,-0.366 -2.495,-0.527c0.054,-4.133 0.851,-8.088 2.262,-11.742c2.849,1.487 5.005,2.715 7.402,4.142c0.528,0.308 1.044,0.622 1.549,0.939c-1.53,2.655 -2.713,5.537 -3.487,8.584Z",style:{fill:"#fff","fill-opacity":"0.76","fill-rule":"nonzero"}}),l("path",{d:"M281.419,199.904c-4.927,-5.917 -7.904,-13.486 -7.934,-21.828c0,-0.154 0.001,-0.308 0.003,-0.46c0.829,0.161 1.661,0.337 2.495,0.527c1.733,0.395 3.477,0.856 5.231,1.396c-0.68,2.688 -1.043,5.504 -1.045,8.407c-0.017,4.126 0.68,8.056 2.029,11.688c-0.259,0.092 -0.518,0.181 -0.779,0.27Z",style:{fill:"#fff","fill-opacity":"0.76","fill-rule":"nonzero"}})])]),l("g",{id:"Hand-Above","serif:id":"Hand Above"},[l("path",{d:"M316.022,243.463c-9.568,0.181 -10.568,19.45 -2.384,22.425c-7.971,2.243 -7.571,19.909 1.614,19.79c15.8,-0.308 15.84,-16.991 3.75,-19.674c15.72,-2.543 13.257,-22.823 -2.98,-22.541Zm-16.497,4.655c8.753,0.151 8.945,22.941 -0.02,22.743c-15.797,-0.355 -14.38,-23.073 0.02,-22.743Z",style:{fill:"#f0ad76"}}),l("path",{d:"M320.671,266.458c-5.843,2.951 -6.115,15.148 -0.683,18.529c10.365,-3.026 9.817,-15.189 0.683,-18.529Zm-24.038,4.043c-11.442,-2.611 -10.834,-18.867 -0.836,-21.903c6.476,2.363 6.884,18.703 0.836,21.903Zm24.819,-26.241c-6.695,3.125 -7.058,17.666 -0.73,21.325c11.968,-3.252 11.354,-17.719 0.73,-21.325Z",style:{fill:"#fbd395"}})])])],-1),u=[m];function _(e,i){return c(),t("svg",b,u)}const g=f(r,[["render",_]]),w={components:{SvgDannieLabAnimateOne:o,SvgDannieLabAnimateTwo:g},props:{mascot:{type:String,required:!0}},data(){return{number:"one",interval:null}},mounted(){this.interval=setInterval(()=>{this.number==="one"?this.number="two":this.number="one"},500)}},v={class:"aioseo-animated-dannie"};function x(e,i,a,z,d,H){return c(),t("div",v,[(c(),s(p(`svg-dannie-${a.mascot}-animate-${d.number}`)))])}const A=f(w,[["render",x]]);export{A as C}; all-in-one-seo-pack/dist/Lite/assets/js/AnimatedNumber.BZqhDXvl.js000064400000001452151222736000020647 0ustar00import{n as e}from"./numbers.ursUutt1.js";import{o as a,c as u,t as o}from"./vue.esm-bundler.DzelZkHk.js";import{_ as m}from"./_plugin-vue_export-helper.BN1snXvA.js";const s={props:{number:Number,fromNumber:{type:Number,default(){return 0}},formatNumber:{type:Boolean,default(){return!0}}},data(){return{animatedNumber:0}},watch:{number(){this.animateNumber()}},computed:{formattedNumber(){return this.formatNumber?e.numberFormat(this.animatedNumber):this.animatedNumber}},methods:{animateNumber(){const t=e.animateNumbers(this.fromNumber,this.number,r=>this.animatedNumber=r);window.addEventListener("blur",()=>{t.cancel(),this.animatedNumber=this.number})}},mounted(){this.animateNumber()}};function i(t,r,c,l,p,n){return a(),u("span",null,o(n.formattedNumber),1)}const d=m(s,[["render",i]]);export{d as U}; all-in-one-seo-pack/dist/Lite/assets/js/App.CoNAsNOl.js000064400000522547151222736000016423 0ustar00/* empty css */import{v as lt,b as P,f as O,a as dt,u as Z,a4 as rt,a5 as De,r as mt,w as le,a6 as Ne,O as pt,e as Y,n as Ve,a7 as Ue,R as Ke,d as Ge,m as de,E as ot,G as ce,t as Fe,j as qe}from"./links.CKSg78-h.js";import{a as W}from"./allowed.B_mIy271.js";import{g as nt,r as Lt}from"./params.B3T1WKlC.js";import{C as K,a as _t,S as It,f as ft,c as Bt,e as ze,b as he,d as kt,h as We}from"./Caret.Cuasz9Up.js";import{J as ue}from"./JsonValues.D25FTfEu.js";import{C as V}from"./SettingsRow.B0N4hwjp.js";import{B as je}from"./Checkbox.CfGJSeWE.js";import{G as Ye,a as Ze}from"./Row.ou4tdPuA.js";import{y as a,o as n,c as f,D as d,m as l,E as w,t as m,a as h,l as _,d as g,I as E,H,M as pe,N as ge,Y as Je,h as Xe,J as Rt,F as j,L as et,q,T as at,x as B,u as z,g as Qe}from"./vue.esm-bundler.DzelZkHk.js";import{_ as y}from"./_plugin-vue_export-helper.BN1snXvA.js";import{C as ts,a as es,S as ss}from"./ScrollAndHighlight.DCpqKtXJ.js";import{C as st}from"./Tabs.Cl9YKSoz.js";import{C as J}from"./Index.6gbvf_mk.js";import{_ as D}from"./default-i18n.BtxsUzQk.js";import{u as me,T as _e}from"./TruSeoScore.-L7x872T.js";import{a as os,b as is,S as fe}from"./Settings.CvT2HtRn.js";import{M as Ot}from"./MaxCounts.DHV7qSQX.js";import{S as Se,a as rs}from"./Ellipse.HvxcRElJ.js";import{T as Dt}from"./Tags.BcJqtOJO.js";import{e as X}from"./regex.C2CBDGQi.js";import{r as ns,k as as,n as ls,l as wt,t as Ct}from"./postSlug.D1i5fFFO.js";import{d as $t}from"./debounce.vOAperWf.js";import{R as ds,n as cs}from"./isArrayLikeObject.CkjpbQo7.js";import{t as jt}from"./toFinite.CtNJVvVF.js";import{C as G}from"./Tooltip.DcUmvaHX.js";import{S as St,a as Nt,f as hs,g as us,h as ps,c as gs,i as ms,j as _s,k as fs,m as Ss,n as ys,d as bs,o as vs,p as ks,q as ws,r as Cs,s as $s,t as Ps,u as Es,v as Ts,w as xs,x as As,y as Ls,z as Ms,A as Hs,C as Is}from"./index.DX4OhBfI.js";import{S as Vt}from"./Plus.CShy191p.js";import{S as Ut}from"./Eye.DFiNxd3l.js";import{B as ye}from"./RadioToggle.XiBFFWmC.js";import{C as Bs}from"./GoogleSearchPreview.C5aCQaFX.js";import{C as Kt}from"./HtmlTagsEditor.DRjNQQYX.js";import{T as Rs}from"./Slide.BfXXFx9A.js";import{C as Os}from"./ProBadge.Dgq0taM8.js";import{p as Yt}from"./popup.Dv7cb5WI.js";import{l as gt}from"./license.8zyTf6Rb.js";import{a as be}from"./addons.Bhqo_sme.js";import{C as Gt}from"./Blur.B433XVqJ.js";import{C as ve}from"./Index.Ck0NNxBQ.js";import{W as Ds}from"./WpTable.EicK-ih4.js";import{C as Ns}from"./Table.B2KnjpXq.js";import{P as Vs}from"./PostTypes.Cef6XkQ_.js";import{a as ke,S as Us,b as Ks,c as Gs}from"./InternalOutbound.CfM4VZLz.js";import{R as Fs}from"./RequiredPlans.BWoa4M_T.js";import{I as we,a as Ce}from"./Image.BF1-Ygnr.js";import{t as $e}from"./tags.BOsOOXAU.js";import{C as qs}from"./FacebookPreview.BiNQJi-p.js";import{C as Pe}from"./ImageUploader.DrSIpvuy.js";import{C as zs}from"./TwitterPreview.DHa9D5iN.js";import{a as Ee,S as Ws}from"./Build.CQX7DDZt.js";import{R as js}from"./Redirects.Bud-ttI3.js";import{U as Ys,S as Zs}from"./Upsell.DRezA3oa.js";var Js=Math.floor,Xs=Math.random;function Qs(t,e){return t+Js(Xs()*(e-t+1))}var to=parseFloat,eo=Math.min,so=Math.random;function oo(t,e,i){if(i&&typeof i!="boolean"&&ds(t,e,i)&&(e=i=void 0),i===void 0&&(typeof e=="boolean"?(i=e,e=void 0):typeof t=="boolean"&&(i=t,t=void 0)),t===void 0&&e===void 0?(t=0,e=1):(t=jt(t),e===void 0?(e=t,t=0):e=jt(e)),t>e){var s=t;t=e,e=s}if(i||t%1||e%1){var o=so();return eo(t+o*(e-t+to("1e-"+((o+"").length-1))),e)}return Qs(t,e)}const io={data(){return{updatingSeoRevisions:!1}},methods:{updateSeoRevisions(){if(window.wp.data.select("core/editor").isSavingPost()&&!window.wp.data.select("core/editor").isAutosavingPost()){this.updatingSeoRevisions=!0;const t=this,e=lt();setTimeout(()=>{e.fetch().finally(()=>{t.updatingSeoRevisions=!1})},2500)}},async watchObjectRevisionsOnSavePost(){await this.$nextTick(),window.wp.data.subscribe(()=>{this.updatingSeoRevisions||this.updateSeoRevisions()})}}},ro={setup(){return{postEditorStore:P()}},components:{BaseCheckbox:je,GridColumn:Ye,GridRow:Ze},data(){return{strings:{useDefaultSettings:this.$t.__("Use Default Settings",this.$td),robotsMeta:this.$t.__("Robots meta:",this.$td),maxSnippet:this.$t.__("Max Snippet",this.$td),maxVideoPreview:this.$t.__("Max Video Preview",this.$td),maxImagePreview:this.$t.__("Max Image Preview",this.$td),standard:this.$t.__("Standard",this.$td),none:this.$t.__("None",this.$td),large:this.$t.__("Large",this.$td),noindex:this.$t.__("No Index",this.$td),nofollow:this.$t.__("No Follow",this.$td),noarchive:this.$t.__("No Archive",this.$td),notranslate:this.$t.__("No Translate",this.$td),noimageindex:this.$t.__("No Image Index",this.$td),nosnippet:this.$t.__("No Snippet",this.$td),noodp:this.$t.__("No ODP",this.$td)}}},computed:{imagePreviewOptions(){return[{label:this.strings.none,value:"none"},{label:this.strings.standard,value:"standard"},{label:this.strings.large,value:"large"}]}},methods:{getImagePreview(t){return this.imagePreviewOptions.find(e=>e.value===t)},saveImagePreview(t){this.postEditorStore.currentPost.maxImagePreview=t,this.postEditorStore.isDirty=!0}}},no={class:"aioseo-robots-meta"},ao={key:0,class:"global-robots-settings aioseo-description"},lo={class:"robots-meta-title"},co={class:"global-robots-settings-options"},ho={key:0,class:"aioseo-description max-snippet"},uo={class:"aioseo-description max-video-preview"},po={key:1,class:"aioseo-description max-image-preview"};function go(t,e,i,s,o,r){const u=a("base-toggle"),c=a("base-checkbox"),p=a("grid-column"),S=a("grid-row"),C=a("base-input"),$=a("base-select");return n(),f("div",no,[d(u,{modelValue:s.postEditorStore.currentPost.default,"onUpdate:modelValue":[e[0]||(e[0]=v=>s.postEditorStore.currentPost.default=v),e[1]||(e[1]=v=>s.postEditorStore.isDirty=!0)]},{default:l(()=>[w(m(o.strings.useDefaultSettings),1)]),_:1},8,["modelValue"]),s.postEditorStore.currentPost.default?g("",!0):(n(),f("div",ao,[h("span",lo,m(o.strings.robotsMeta),1),d(S,{class:"settings"},{default:l(()=>[s.postEditorStore.currentPost.isHomePage?g("",!0):(n(),_(p,{key:0,xl:"3",md:"4",sm:"6"},{default:l(()=>[d(c,{size:"medium",modelValue:s.postEditorStore.currentPost.noindex,"onUpdate:modelValue":[e[2]||(e[2]=v=>s.postEditorStore.currentPost.noindex=v),e[3]||(e[3]=v=>s.postEditorStore.isDirty=!0)]},{default:l(()=>[w(m(o.strings.noindex),1)]),_:1},8,["modelValue"])]),_:1})),d(p,{xl:"3",md:"4",sm:"6"},{default:l(()=>[d(c,{size:"medium",modelValue:s.postEditorStore.currentPost.nofollow,"onUpdate:modelValue":[e[4]||(e[4]=v=>s.postEditorStore.currentPost.nofollow=v),e[5]||(e[5]=v=>s.postEditorStore.isDirty=!0)]},{default:l(()=>[w(m(o.strings.nofollow),1)]),_:1},8,["modelValue"])]),_:1}),d(p,{xl:"3",md:"4",sm:"6"},{default:l(()=>[d(c,{size:"medium",modelValue:s.postEditorStore.currentPost.noarchive,"onUpdate:modelValue":[e[6]||(e[6]=v=>s.postEditorStore.currentPost.noarchive=v),e[7]||(e[7]=v=>s.postEditorStore.isDirty=!0)]},{default:l(()=>[w(m(o.strings.noarchive),1)]),_:1},8,["modelValue"])]),_:1}),d(p,{xl:"3",md:"4",sm:"6"},{default:l(()=>[d(c,{size:"medium",modelValue:s.postEditorStore.currentPost.notranslate,"onUpdate:modelValue":[e[8]||(e[8]=v=>s.postEditorStore.currentPost.notranslate=v),e[9]||(e[9]=v=>s.postEditorStore.isDirty=!0)]},{default:l(()=>[w(m(o.strings.notranslate),1)]),_:1},8,["modelValue"])]),_:1}),d(p,{xl:"3",md:"4",sm:"6"},{default:l(()=>[d(c,{size:"medium",modelValue:s.postEditorStore.currentPost.noimageindex,"onUpdate:modelValue":[e[10]||(e[10]=v=>s.postEditorStore.currentPost.noimageindex=v),e[11]||(e[11]=v=>s.postEditorStore.isDirty=!0)]},{default:l(()=>[w(m(o.strings.noimageindex),1)]),_:1},8,["modelValue"])]),_:1}),d(p,{xl:"3",md:"4",sm:"6"},{default:l(()=>[d(c,{size:"medium",modelValue:s.postEditorStore.currentPost.nosnippet,"onUpdate:modelValue":[e[12]||(e[12]=v=>s.postEditorStore.currentPost.nosnippet=v),e[13]||(e[13]=v=>s.postEditorStore.isDirty=!0)]},{default:l(()=>[w(m(o.strings.nosnippet),1)]),_:1},8,["modelValue"])]),_:1}),d(p,{xl:"3",md:"4",sm:"6"},{default:l(()=>[d(c,{size:"medium",modelValue:s.postEditorStore.currentPost.noodp,"onUpdate:modelValue":[e[14]||(e[14]=v=>s.postEditorStore.currentPost.noodp=v),e[15]||(e[15]=v=>s.postEditorStore.isDirty=!0)]},{default:l(()=>[w(m(o.strings.noodp),1)]),_:1},8,["modelValue"])]),_:1})]),_:1}),h("div",co,[s.postEditorStore.currentPost.nosnippet?g("",!0):(n(),f("div",ho,[h("span",null,m(o.strings.maxSnippet),1),d(C,{type:"number",size:"medium",modelValue:s.postEditorStore.currentPost.maxSnippet,"onUpdate:modelValue":[e[16]||(e[16]=v=>s.postEditorStore.currentPost.maxSnippet=v),e[17]||(e[17]=v=>s.postEditorStore.isDirty=!0)]},null,8,["modelValue"])])),h("div",uo,[h("span",null,m(o.strings.maxVideoPreview),1),d(C,{type:"number",size:"medium",modelValue:s.postEditorStore.currentPost.maxVideoPreview,"onUpdate:modelValue":[e[18]||(e[18]=v=>s.postEditorStore.currentPost.maxVideoPreview=v),e[19]||(e[19]=v=>s.postEditorStore.isDirty=!0)]},null,8,["modelValue"])]),s.postEditorStore.currentPost.noimageindex?g("",!0):(n(),f("div",po,[h("span",null,m(o.strings.maxImagePreview),1),d($,{size:"medium",options:r.imagePreviewOptions,modelValue:r.getImagePreview(s.postEditorStore.currentPost.maxImagePreview),"onUpdate:modelValue":e[20]||(e[20]=v=>r.saveImagePreview(v.value))},null,8,["options","modelValue"])]))])]))])}const mo=y(ro,[["render",go]]),_o={setup(){return{licenseStore:O(),optionsStore:dt(),postEditorStore:P()}},components:{CoreAlert:K,CoreSettingsRow:V,CoreSingleRobotsMeta:mo},mixins:[ue],props:{disabled:{type:Boolean,default(){return!1}},type:{type:String,required:!1},object:{type:Object,required:!1}},data(){return{strings:{pageName:this.$t.__("Advanced",this.$td),robotsSetting:this.$t.__("Robots Setting",this.$td),robotsToggle:this.$t.__("Use Default Settings",this.$td),canonicalUrl:this.$t.__("Canonical URL",this.$td),placeholder:this.$t.__("Enter a URL to change the default Canonical URL",this.$td),priorityScore:this.$t.__("Priority Score",this.$td),priority:this.$t.__("Priority",this.$td),frequency:this.$t.__("Frequency",this.$td),priorityFrequencyUpsell:this.$t.sprintf(this.$t.__("Priority Score is a %1$s feature. %2$s",this.$td),"PRO",this.$links.getUpsellLink("post-advanced",this.$constants.GLOBAL_STRINGS.learnMore,"priority-frequency",!0)),keywords:this.$t.__("Keywords",this.$td),tagPlaceholder:this.$t.__("Press enter to create a keyword",this.$td)}}},computed:{getPriorityOptions(){return[{label:this.$t.__("default",this.$td),value:"default"}].concat(this.$constants.PRIORITY_OPTIONS)},getFrequencyOptions(){return[{label:this.$t.__("default",this.$td),value:"default"}].concat(this.$constants.FREQUENCY_OPTIONS)}},methods:{getPriority(t){return t=t!=="default"?parseFloat(t):t,this.getPriorityOptions.find(e=>e.value===t)},savePriority(t){this.postEditorStore.currentPost.priority=t,this.postEditorStore.isDirty=!0},getFrequency(t){return this.getFrequencyOptions.find(e=>e.value===t)},saveFrequency(t){this.postEditorStore.currentPost.frequency=t,this.postEditorStore.isDirty=!0}}},fo={class:"aioseo-tab-content aioseo-post-advanced"},So={class:"selectbox-row"},yo={class:"select"},bo=h("div",{class:"separator"},[h("span"),w(" - ")],-1),vo={class:"select"},ko=["innerHTML"];function wo(t,e,i,s,o,r){const u=a("core-single-robots-meta"),c=a("core-settings-row"),p=a("base-input"),S=a("base-select"),C=a("core-alert");return n(),f("div",fo,[d(c,{id:"aioseo-post-robots-setting",name:o.strings.robotsSetting,align:""},{content:l(()=>[d(u)]),_:1},8,["name"]),d(c,{id:"aioseo-post-canonical-url",name:o.strings.canonicalUrl,align:""},{content:l(()=>[d(p,{type:"text",size:"medium",placeholder:o.strings.placeholder,modelValue:s.postEditorStore.currentPost.canonicalUrl,"onUpdate:modelValue":[e[0]||(e[0]=$=>s.postEditorStore.currentPost.canonicalUrl=$),e[1]||(e[1]=$=>s.postEditorStore.isDirty=!0)]},null,8,["placeholder","modelValue"])]),_:1},8,["name"]),d(c,{name:o.strings.priorityScore,align:""},{content:l(()=>[h("div",So,[h("div",yo,[h("span",null,m(o.strings.priority),1),d(S,{disabled:s.licenseStore.isUnlicensed,size:"medium",options:r.getPriorityOptions,modelValue:s.licenseStore.isUnlicensed?r.getPriority("default"):r.getPriority(s.postEditorStore.currentPost.priority),"onUpdate:modelValue":e[2]||(e[2]=$=>s.licenseStore.isUnlicensed?null:r.savePriority($.value))},null,8,["disabled","options","modelValue"])]),bo,h("div",vo,[h("span",null,m(o.strings.frequency),1),d(S,{disabled:s.licenseStore.isUnlicensed,size:"medium",options:r.getFrequencyOptions,modelValue:s.licenseStore.isUnlicensed?r.getFrequency("default"):r.getFrequency(s.postEditorStore.currentPost.frequency),"onUpdate:modelValue":e[3]||(e[3]=$=>s.licenseStore.isUnlicensed?null:r.saveFrequency($.value))},null,8,["disabled","options","modelValue"])])]),s.licenseStore.isUnlicensed?(n(),_(C,{key:0,class:"inline-upsell",type:"blue"},{default:l(()=>[h("div",{innerHTML:o.strings.priorityFrequencyUpsell},null,8,ko)]),_:1})):g("",!0)]),_:1},8,["name"]),s.optionsStore.options.searchAppearance.advanced.useKeywords?(n(),_(c,{key:0,name:o.strings.keywords,align:""},{content:l(()=>[d(S,{multiple:"",taggable:"",options:t.getJsonValue(s.postEditorStore.currentPost.keywords)||[],modelValue:t.getJsonValue(s.postEditorStore.currentPost.keywords)||[],"onUpdate:modelValue":e[4]||(e[4]=$=>s.postEditorStore.currentPost.keywords=t.setJsonValue($)),"tag-placeholder":o.strings.tagPlaceholder},null,8,["options","modelValue","tag-placeholder"])]),_:1},8,["name"])):g("",!0)])}const Co=y(_o,[["render",wo]]),$o={setup(){return{licenseStore:O(),rootStore:Z()}},components:{CoreApiBar:ts,CoreLicenseKeyBar:es}};function Po(t,e,i,s,o,r){const u=a("core-api-bar"),c=a("core-license-key-bar");return n(),f("div",null,[s.rootStore.pong?g("",!0):(n(),_(u,{key:0})),t.$isPro&&s.licenseStore.isUnlicensed&&s.rootStore.pong?(n(),_(c,{key:1})):g("",!0)])}const Te=y($o,[["render",Po]]);var Eo={grad:.9,turn:360,rad:360/(2*Math.PI)},F=function(t){return typeof t=="string"?t.length>0:typeof t=="number"},A=function(t,e,i){return e===void 0&&(e=0),i===void 0&&(i=Math.pow(10,e)),Math.round(i*t)/i+0},R=function(t,e,i){return e===void 0&&(e=0),i===void 0&&(i=1),t>i?i:t>e?t:e},xe=function(t){return(t=isFinite(t)?t%360:0)>0?t:t+360},Zt=function(t){return{r:R(t.r,0,255),g:R(t.g,0,255),b:R(t.b,0,255),a:R(t.a)}},Pt=function(t){return{r:A(t.r),g:A(t.g),b:A(t.b),a:A(t.a,3)}},To=/^#([0-9a-f]{3,8})$/i,ut=function(t){var e=t.toString(16);return e.length<2?"0"+e:e},Ae=function(t){var e=t.r,i=t.g,s=t.b,o=t.a,r=Math.max(e,i,s),u=r-Math.min(e,i,s),c=u?r===e?(i-s)/u:r===i?2+(s-e)/u:4+(e-i)/u:0;return{h:60*(c<0?c+6:c),s:r?u/r*100:0,v:r/255*100,a:o}},Le=function(t){var e=t.h,i=t.s,s=t.v,o=t.a;e=e/360*6,i/=100,s/=100;var r=Math.floor(e),u=s*(1-i),c=s*(1-(e-r)*i),p=s*(1-(1-e+r)*i),S=r%6;return{r:255*[s,c,u,u,p,s][S],g:255*[p,s,s,c,u,u][S],b:255*[u,u,p,s,s,c][S],a:o}},Jt=function(t){return{h:xe(t.h),s:R(t.s,0,100),l:R(t.l,0,100),a:R(t.a)}},Xt=function(t){return{h:A(t.h),s:A(t.s),l:A(t.l),a:A(t.a,3)}},Qt=function(t){return Le((i=(e=t).s,{h:e.h,s:(i*=((s=e.l)<50?s:100-s)/100)>0?2*i/(s+i)*100:0,v:s+i,a:e.a}));var e,i,s},it=function(t){return{h:(e=Ae(t)).h,s:(o=(200-(i=e.s))*(s=e.v)/100)>0&&o<200?i*s/100/(o<=100?o:200-o)*100:0,l:o/2,a:e.a};var e,i,s,o},xo=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Ao=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Lo=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Mo=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Mt={string:[[function(t){var e=To.exec(t);return e?(t=e[1]).length<=4?{r:parseInt(t[0]+t[0],16),g:parseInt(t[1]+t[1],16),b:parseInt(t[2]+t[2],16),a:t.length===4?A(parseInt(t[3]+t[3],16)/255,2):1}:t.length===6||t.length===8?{r:parseInt(t.substr(0,2),16),g:parseInt(t.substr(2,2),16),b:parseInt(t.substr(4,2),16),a:t.length===8?A(parseInt(t.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(t){var e=Lo.exec(t)||Mo.exec(t);return e?e[2]!==e[4]||e[4]!==e[6]?null:Zt({r:Number(e[1])/(e[2]?100/255:1),g:Number(e[3])/(e[4]?100/255:1),b:Number(e[5])/(e[6]?100/255:1),a:e[7]===void 0?1:Number(e[7])/(e[8]?100:1)}):null},"rgb"],[function(t){var e=xo.exec(t)||Ao.exec(t);if(!e)return null;var i,s,o=Jt({h:(i=e[1],s=e[2],s===void 0&&(s="deg"),Number(i)*(Eo[s]||1)),s:Number(e[3]),l:Number(e[4]),a:e[5]===void 0?1:Number(e[5])/(e[6]?100:1)});return Qt(o)},"hsl"]],object:[[function(t){var e=t.r,i=t.g,s=t.b,o=t.a,r=o===void 0?1:o;return F(e)&&F(i)&&F(s)?Zt({r:Number(e),g:Number(i),b:Number(s),a:Number(r)}):null},"rgb"],[function(t){var e=t.h,i=t.s,s=t.l,o=t.a,r=o===void 0?1:o;if(!F(e)||!F(i)||!F(s))return null;var u=Jt({h:Number(e),s:Number(i),l:Number(s),a:Number(r)});return Qt(u)},"hsl"],[function(t){var e=t.h,i=t.s,s=t.v,o=t.a,r=o===void 0?1:o;if(!F(e)||!F(i)||!F(s))return null;var u=function(c){return{h:xe(c.h),s:R(c.s,0,100),v:R(c.v,0,100),a:R(c.a)}}({h:Number(e),s:Number(i),v:Number(s),a:Number(r)});return Le(u)},"hsv"]]},te=function(t,e){for(var i=0;i=.5},t.prototype.toHex=function(){return e=Pt(this.rgba),i=e.r,s=e.g,o=e.b,u=(r=e.a)<1?ut(A(255*r)):"","#"+ut(i)+ut(s)+ut(o)+u;var e,i,s,o,r,u},t.prototype.toRgb=function(){return Pt(this.rgba)},t.prototype.toRgbString=function(){return e=Pt(this.rgba),i=e.r,s=e.g,o=e.b,(r=e.a)<1?"rgba("+i+", "+s+", "+o+", "+r+")":"rgb("+i+", "+s+", "+o+")";var e,i,s,o,r},t.prototype.toHsl=function(){return Xt(it(this.rgba))},t.prototype.toHslString=function(){return e=Xt(it(this.rgba)),i=e.h,s=e.s,o=e.l,(r=e.a)<1?"hsla("+i+", "+s+"%, "+o+"%, "+r+")":"hsl("+i+", "+s+"%, "+o+"%)";var e,i,s,o,r},t.prototype.toHsv=function(){return e=Ae(this.rgba),{h:A(e.h),s:A(e.s),v:A(e.v),a:A(e.a,3)};var e},t.prototype.invert=function(){return U({r:255-(e=this.rgba).r,g:255-e.g,b:255-e.b,a:e.a});var e},t.prototype.saturate=function(e){return e===void 0&&(e=.1),U(Et(this.rgba,e))},t.prototype.desaturate=function(e){return e===void 0&&(e=.1),U(Et(this.rgba,-e))},t.prototype.grayscale=function(){return U(Et(this.rgba,-1))},t.prototype.lighten=function(e){return e===void 0&&(e=.1),U(ee(this.rgba,e))},t.prototype.darken=function(e){return e===void 0&&(e=.1),U(ee(this.rgba,-e))},t.prototype.rotate=function(e){return e===void 0&&(e=15),this.hue(this.hue()+e)},t.prototype.alpha=function(e){return typeof e=="number"?U({r:(i=this.rgba).r,g:i.g,b:i.b,a:e}):A(this.rgba.a,3);var i},t.prototype.hue=function(e){var i=it(this.rgba);return typeof e=="number"?U({h:e,s:i.s,l:i.l,a:i.a}):A(i.h)},t.prototype.isEqual=function(e){return this.toHex()===U(e).toHex()},t}(),U=function(t){return t instanceof Ht?t:new Ht(t)},se=[],Io=function(t){t.forEach(function(e){se.indexOf(e)<0&&(e(Ht,Mt),se.push(e))})};function Bo(t,e){var i={white:"#ffffff",bisque:"#ffe4c4",blue:"#0000ff",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",antiquewhite:"#faebd7",aqua:"#00ffff",azure:"#f0ffff",whitesmoke:"#f5f5f5",papayawhip:"#ffefd5",plum:"#dda0dd",blanchedalmond:"#ffebcd",black:"#000000",gold:"#ffd700",goldenrod:"#daa520",gainsboro:"#dcdcdc",cornsilk:"#fff8dc",cornflowerblue:"#6495ed",burlywood:"#deb887",aquamarine:"#7fffd4",beige:"#f5f5dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkkhaki:"#bdb76b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",peachpuff:"#ffdab9",darkmagenta:"#8b008b",darkred:"#8b0000",darkorchid:"#9932cc",darkorange:"#ff8c00",darkslateblue:"#483d8b",gray:"#808080",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",deeppink:"#ff1493",deepskyblue:"#00bfff",wheat:"#f5deb3",firebrick:"#b22222",floralwhite:"#fffaf0",ghostwhite:"#f8f8ff",darkviolet:"#9400d3",magenta:"#ff00ff",green:"#008000",dodgerblue:"#1e90ff",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",blueviolet:"#8a2be2",forestgreen:"#228b22",lawngreen:"#7cfc00",indianred:"#cd5c5c",indigo:"#4b0082",fuchsia:"#ff00ff",brown:"#a52a2a",maroon:"#800000",mediumblue:"#0000cd",lightcoral:"#f08080",darkturquoise:"#00ced1",lightcyan:"#e0ffff",ivory:"#fffff0",lightyellow:"#ffffe0",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",linen:"#faf0e6",mediumaquamarine:"#66cdaa",lemonchiffon:"#fffacd",lime:"#00ff00",khaki:"#f0e68c",mediumseagreen:"#3cb371",limegreen:"#32cd32",mediumspringgreen:"#00fa9a",lightskyblue:"#87cefa",lightblue:"#add8e6",midnightblue:"#191970",lightpink:"#ffb6c1",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",mintcream:"#f5fffa",lightslategray:"#778899",lightslategrey:"#778899",navajowhite:"#ffdead",navy:"#000080",mediumvioletred:"#c71585",powderblue:"#b0e0e6",palegoldenrod:"#eee8aa",oldlace:"#fdf5e6",paleturquoise:"#afeeee",mediumturquoise:"#48d1cc",mediumorchid:"#ba55d3",rebeccapurple:"#663399",lightsteelblue:"#b0c4de",mediumslateblue:"#7b68ee",thistle:"#d8bfd8",tan:"#d2b48c",orchid:"#da70d6",mediumpurple:"#9370db",purple:"#800080",pink:"#ffc0cb",skyblue:"#87ceeb",springgreen:"#00ff7f",palegreen:"#98fb98",red:"#ff0000",yellow:"#ffff00",slateblue:"#6a5acd",lavenderblush:"#fff0f5",peru:"#cd853f",palevioletred:"#db7093",violet:"#ee82ee",teal:"#008080",slategray:"#708090",slategrey:"#708090",aliceblue:"#f0f8ff",darkseagreen:"#8fbc8f",darkolivegreen:"#556b2f",greenyellow:"#adff2f",seagreen:"#2e8b57",seashell:"#fff5ee",tomato:"#ff6347",silver:"#c0c0c0",sienna:"#a0522d",lavender:"#e6e6fa",lightgreen:"#90ee90",orange:"#ffa500",orangered:"#ff4500",steelblue:"#4682b4",royalblue:"#4169e1",turquoise:"#40e0d0",yellowgreen:"#9acd32",salmon:"#fa8072",saddlebrown:"#8b4513",sandybrown:"#f4a460",rosybrown:"#bc8f8f",darksalmon:"#e9967a",lightgoldenrodyellow:"#fafad2",snow:"#fffafa",lightgrey:"#d3d3d3",lightgray:"#d3d3d3",dimgray:"#696969",dimgrey:"#696969",olivedrab:"#6b8e23",olive:"#808000"},s={};for(var o in i)s[i[o]]=o;var r={};t.prototype.toName=function(u){if(!(this.rgba.a||this.rgba.r||this.rgba.g||this.rgba.b))return"transparent";var c,p,S=s[this.toHex()];if(S)return S;if(u!=null&&u.closest){var C=this.toRgb(),$=1/0,v="black";if(!r.length)for(var b in i)r[b]=new t(i[b]).toRgb();for(var k in i){var M=(c=C,p=r[k],Math.pow(c.r-p.r,2)+Math.pow(c.g-p.g,2)+Math.pow(c.b-p.b,2));M<$&&($=M,v=k)}return v}},e.string.push([function(u){var c=u.toLowerCase(),p=c==="transparent"?"#0000":i[c];return p?new t(p).toRgb():null},"name"])}var xt=function(t){var e=t/255;return e<.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)},At=function(t){return .2126*xt(t.r)+.7152*xt(t.g)+.0722*xt(t.b)};function Ro(t){t.prototype.luminance=function(){return e=At(this.rgba),(i=2)===void 0&&(i=0),s===void 0&&(s=Math.pow(10,i)),Math.round(s*e)/s+0;var e,i,s},t.prototype.contrast=function(e){e===void 0&&(e="#FFF");var i,s,o,r,u,c,p,S=e instanceof t?e:new t(e);return r=this.rgba,u=S.toRgb(),c=At(r),p=At(u),i=c>p?(c+.05)/(p+.05):(p+.05)/(c+.05),(s=2)===void 0&&(s=0),o===void 0&&(o=Math.pow(10,s)),Math.floor(o*i)/o+0},t.prototype.isReadable=function(e,i){return e===void 0&&(e="#FFF"),i===void 0&&(i={}),this.contrast(e)>=(c=(u=(s=i).size)===void 0?"normal":u,(r=(o=s.level)===void 0?"AA":o)==="AAA"&&c==="normal"?7:r==="AA"&&c==="large"?3:4.5);var s,o,r,u,c}}Io([Bo,Ro]);function oe(t,e){const i=U(e),s=({color:r})=>i.contrast(r),o=Math.max(...t.map(s));return t.find(r=>s(r)===o).color}const Oo={setup(){return{truSeoHighlighterStore:rt()}},emits:["next","previous"],components:{SvgEllipse:Se,SvgCaret:_t,SvgClose:It},data(){return{error:this.truSeoHighlighterStore.highlightAnalyzerHasError,order:this.truSeoHighlighterStore.highlightMarks.findIndex(t=>t.active)+1,total:this.truSeoHighlighterStore.highlightMarks.length}},methods:{close(){this.truSeoHighlighterStore.toggleHighlightAnalyzer(null)}}},Do=t=>(pe("data-v-966cf3f9"),t=t(),ge(),t),No={class:"tru-seo-highlight-popover","data-arrow-placement":"right"},Vo={class:"tru-seo-highlight-popover__count"},Uo=Do(()=>h("div",{class:"tru-seo-highlight-popover__pipe"},null,-1)),Ko={class:"tru-seo-highlight-popover__nav"},Go=["disabled"],Fo=["disabled"],qo={class:"tru-seo-highlight-popover__close"};function zo(t,e,i,s,o,r){const u=a("svg-ellipse"),c=a("svg-caret"),p=a("svg-close");return n(),f("div",No,[h("div",{class:E(["tru-seo-highlight-popover__bullet",{"tru-seo-highlight-popover__bullet--error":o.error}])},[d(u,{width:"8"})],2),h("div",Vo,[h("span",null,m(o.order)+"/"+m(o.total),1)]),Uo,h("div",Ko,[h("button",{type:"button",class:"caret-wrapper caret-wrapper--previous",tabindex:"0",disabled:o.order===1,onClick:e[0]||(e[0]=H(S=>t.$emit("previous"),["stop","exact"]))},[d(c,{width:"20"})],8,Go),h("button",{type:"button",class:"caret-wrapper",tabindex:"0",disabled:o.order===o.total,onClick:e[1]||(e[1]=H(S=>t.$emit("next"),["stop","exact"]))},[d(c,{width:"20"})],8,Fo)]),h("div",qo,[h("button",{type:"button",class:"close-wrapper",tabindex:"0",onClickOnce:e[2]||(e[2]=H((...S)=>r.close&&r.close(...S),["stop","exact"]))},[d(p,{width:"10"})],32)])])}const Wo=y(Oo,[["render",zo],["__scopeId","data-v-966cf3f9"]]),jo={setup(){return{truSeoHighlighterStore:rt()}},computed:{...De(rt),markBgColor(){var s,o;const t="#cce0ff";if(typeof oe!="function")return t;const e=((s=this.getEditorNode("first-block"))==null?void 0:s.parentElement)||{},i=Object.values(e).length?(o=document.defaultView.getComputedStyle(e))==null?void 0:o.backgroundColor:"";return i&&!i.match(/(fffff|255,\s?255,\s?255|rgba)/gi)?oe([{color:"#e6f0ff"},{color:t},{color:"#b3d1ff"}],i):t}},data(){var t,e,i,s;return{editorObserver:null,editorWrapperRect:{},isBlockEditor:mt(),isClassicEditor:le(),tinymceEditor:null,selectBlockEditor:(e=(t=window==null?void 0:window.wp)==null?void 0:t.data)==null?void 0:e.select("core/block-editor"),selectEditPost:(s=(i=window==null?void 0:window.wp)==null?void 0:i.data)==null?void 0:s.select("core/edit-post"),strings:{highlightSections:this.$t.__("Highlight sections in the Editor",this.$td)}}},methods:{annotateBlock(t){var i,s,o,r,u,c;let e="content";(s=(i=t.block)==null?void 0:i.attributes)!=null&&s.caption?e="caption":(r=(o=t.block)==null?void 0:o.attributes)!=null&&r.value?e="value":(c=(u=t.block)==null?void 0:u.attributes)!=null&&c.citation&&(e="citation"),this.truSeoHighlighterStore.dispatchAnnotations.__experimentalAddAnnotation({id:t.id,range:t.range,source:this.truSeoHighlighterStore.source,blockClientId:t.block.clientId,richTextIdentifier:e})},annotateTinyMce(t,e){if(!e)return!1;!e.hasFocus()&&this.isBlockEditor&&e.focus();let i=e.selection.win.getSelection();i.selectAllChildren(t.parent);const s=i.toString().length;if(t.range.end{e.annotator.annotate(this.truSeoHighlighterStore.source,{uid:t.id})}),i.empty()},appendHighlightPopover(){if(this.truSeoHighlighterStore.clearHighlightPopover(),this.truSeoHighlighterStore.sanitizeHighlightMarks(),!this.truSeoHighlighterStore.activeMark)return!1;const t=this,e=Je({name:"TruSeoHighlightPopover",render(){return Xe(Wo,{onNext(){t.incrementActiveMark(1)},onPrevious(){t.incrementActiveMark(-1)}})}}),i=as(),s=new ResizeObserver($t(this.repositionHighlightPopover,750)),o=this.getEditorNode("wrapper");if(!o)return!1;o.parentElement.appendChild(i),e.mount(i),s.observe(this.getEditorNode("wrapper"),{box:"border-box"}),this.truSeoHighlighterStore.highlightPopover.app=e,this.truSeoHighlighterStore.highlightPopover.node=i,this.truSeoHighlighterStore.highlightPopover.observer=s,this.repositionHighlightPopover()},disallowHighlighting(){this.truSeoHighlighterStore.toggleHighlightAnalyzer(null),this.truSeoHighlighterStore.allowHighlighting=!1},formatBlockContent({block:t,node:e}){var s,o,r,u;let i="";return e?i=e.outerText.replace(/\n\n/g,` `):t&&(i=((s=t==null?void 0:t.attributes)==null?void 0:s.content)||((o=t==null?void 0:t.attributes)==null?void 0:o.caption)||((r=t==null?void 0:t.attributes)==null?void 0:r.value)||((u=t==null?void 0:t.attributes)==null?void 0:u.citation)||"",i=i.replace(/]*>/gi,` `),i=Ne(i)),ls(i)},getEditorNode(t){var e;if(t==="closest-relative")return wt({element:this.getEditorNode("wrapper").parentElement,property:"position",value:"relative"});if(t==="navigable")return wt({element:this.getEditorNode("wrapper").parentElement,property:"overflow-y",value:"auto"});if(this.isClassicEditor){if(t==="wrapper")return document.getElementById("content_ifr");if(t==="first-block")return((e=this.tinymceEditor.getBody())==null?void 0:e.firstElementChild)||{}}if(this.isBlockEditor){if(t==="wrapper")return document.querySelector(".editor-styles-wrapper");if(t==="first-block"){const i=this.selectBlockEditor.getBlocks()[0];return document.getElementById(`block-${i==null?void 0:i.clientId}`)||{}}}},highlightBlockEditor(){var t;for(const e of this.selectBlockEditor.getBlocks()||[]){if(e.name==="core/freeform"){const i=window.tinymce.get(`editor-${e.clientId}`),s=((t=i.getBody())==null?void 0:t.children)||[];if(!s.length)continue;this.registerTinyMceAnnotator(i);for(const o of s)this.setHighlightMarks({block:e,node:o});continue}this.setHighlightMarks({block:e,node:null})}for(const[e,i]of Object.entries(this.truSeoHighlighterStore.highlightMarks))this.observeMarkParent(i.parent,parseInt(e)===this.truSeoHighlighterStore.highlightMarks.length-1),i.block.name==="core/freeform"?this.annotateTinyMce(i,window.tinymce.get(`editor-${i.block.clientId}`)):this.annotateBlock(i)},highlightClassicEditor(){var e;const t=((e=this.tinymceEditor.getBody())==null?void 0:e.children)||[];if(!t.length)return!1;this.registerTinyMceAnnotator(this.tinymceEditor);for(const i of t)this.setHighlightMarks({block:null,node:i});for(const[i,s]of Object.entries(this.truSeoHighlighterStore.highlightMarks))this.observeMarkParent(s.parent,parseInt(i)===this.truSeoHighlighterStore.highlightMarks.length-1),this.annotateTinyMce(s,this.tinymceEditor)},incrementActiveMark(t){const e=this.truSeoHighlighterStore.highlightMarks.findIndex(i=>i.active);if(!this.truSeoHighlighterStore.highlightMarks[e+t])return!1;this.truSeoHighlighterStore.allowScrolling=!0,this.truSeoHighlighterStore.highlightMarks[e].active=!1,this.truSeoHighlighterStore.highlightMarks[e+t].active=!0,this.appendHighlightPopover()},listenWindowCopy(t){var r,u;const e=()=>{t.preventDefault(),t.clipboardData.setData("text/html",window.getSelection().toString())},i=window.getSelection()||{};if(!(i!=null&&i.rangeCount))return!1;const s=((r=t.clipboardData)==null?void 0:r.getData("text/html"))||"";if(s&&s.indexOf(this.truSeoHighlighterStore.source)!==-1)return e(),!1;const o=i.getRangeAt(0)||{};for(const c of Object.values(((u=o==null?void 0:o.cloneContents())==null?void 0:u.children)||[]))if(Object.values((c==null?void 0:c.classList)||[]).some(p=>p.endsWith(this.truSeoHighlighterStore.source)))return e(),!1},listenWindowKeyup(t){var r,u;const e=(c,p)=>{c.collapse(p.firstChild,p.firstChild.length),c.deleteFromDocument()};if(["Delete","Backspace"].indexOf(t.key)===-1)return!1;const i=window.getSelection()||null;if(!(i!=null&&i.toString()))return!1;const s=((r=i==null?void 0:i.anchorNode)==null?void 0:r.parentElement)||null,o=((u=i==null?void 0:i.anchorNode)==null?void 0:u.nextElementSibling)||null;Object.values((s==null?void 0:s.classList)||[]).some(c=>c.endsWith(this.truSeoHighlighterStore.source))?e(i,s):Object.values((o==null?void 0:o.classList)||[]).some(c=>c.endsWith(this.truSeoHighlighterStore.source))&&e(i,o)},observeEditor(){var e;this.editorObserver=new MutationObserver(i=>{let s=!1;for(const o of i)for(const r of(o==null?void 0:o.removedNodes)||[])(this.truSeoHighlighterStore.highlightMarks.some(u=>r.isEqualNode(u.parent))||Object.values((r==null?void 0:r.classList)||[]).some(u=>u.endsWith(this.truSeoHighlighterStore.source)))&&(s=!0);s&&this.reset()});const t=(e=this.getEditorNode("first-block"))==null?void 0:e.parentElement;if(typeof t!="object")return!1;this.editorObserver.observe(t,{attributes:!1,childList:!0,subtree:!0})},observeMarkParent(t,e=!1){const i=(o,r)=>{var u;r.disconnect();for(const c of o){if(Object.values(((u=c==null?void 0:c.target)==null?void 0:u.classList)||[]).some(p=>p.endsWith(this.truSeoHighlighterStore.source))){this.setHighlightMarkNode(c.target);continue}for(const p of(c==null?void 0:c.addedNodes)||[])if(Object.values((p==null?void 0:p.classList)||[]).some(S=>S.endsWith(this.truSeoHighlighterStore.source))){this.setHighlightMarkNode(p);break}}e&&this.$nextTick().then(()=>$t(this.appendHighlightPopover,250)())};if(typeof(t==null?void 0:t.parentElement)!="object")return!1;new MutationObserver(i).observe(t,{attributes:!0,childList:!0,subtree:!0})},observeWpBodyContent(){const t=e=>{var i,s,o;for(const r of e){if((r==null?void 0:r.type)!=="attributes")continue;if(!wt({element:(i=this.getEditorNode("wrapper"))==null?void 0:i.parentElement,property:"display",value:"none"}).isEqualNode(document.documentElement))return this.disallowHighlighting(),!1;if(this.isBlockEditor&&(this.selectEditPost.getEditorMode()!=="visual"||this.selectBlockEditor.getBlockMode((s=this.selectBlockEditor.getSelectedBlock())==null?void 0:s.clientId)==="html"))return this.disallowHighlighting(),!1;if(this.isClassicEditor&&(this.setTinymceEditor(),((o=document.getElementById("content"))==null?void 0:o.nodeName)==="TEXTAREA"&&document.getElementById("content").style.display!=="none"))return this.disallowHighlighting(),!1;this.truSeoHighlighterStore.allowHighlighting=!0}};this.wpBodyContentObserver=new MutationObserver($t(t,250)),this.wpBodyContentObserver.observe(document.getElementById("wpbody-content"),{attributes:!0,childList:!1,subtree:!0})},registerTinyMceAnnotator(t){t.annotator.register(this.truSeoHighlighterStore.source,{persistent:!1,decorate:()=>({classes:["annotation-text",`annotation-text-${this.truSeoHighlighterStore.source}`]})})},repositionHighlightPopover(t=[]){var S;if(!this.truSeoHighlighterStore.activeMark||!this.truSeoHighlighterStore.highlightPopover.node)return!1;for(const C of t)if(JSON.stringify(C.contentRect)===JSON.stringify(this.editorWrapperRect))return!1;t.length&&(this.editorWrapperRect=((S=t[0])==null?void 0:S.contentRect)||this.editorWrapperRect,this.truSeoHighlighterStore.allowScrolling=!1);const e=this.truSeoHighlighterStore.activeMark.node.getBoundingClientRect(),i=this.getEditorNode("wrapper").getBoundingClientRect(),s=this.getEditorNode("closest-relative").getBoundingClientRect(),o=this.getEditorNode("first-block").getBoundingClientRect(),[r,u]=[140,32];let c=e.top,p=o.left-s.left;r{if(!this.truSeoHighlighterStore.highlightSentences)return this.truSeoHighlighterStore.toggleHighlightAnalyzer(null),!1;this.isBlockEditor&&this.highlightBlockEditor(),this.isClassicEditor&&this.highlightClassicEditor(),this.observeEditor(),window.addEventListener("copy",this.listenWindowCopy),window.addEventListener("keyup",this.listenWindowKeyup)})},scrollToHighlightMark(){this.$nextTick().then(()=>{var i,s,o,r;if(!this.truSeoHighlighterStore.allowScrolling)return!1;this.truSeoHighlighterStore.activeMark.node.scrollIntoView();let t=this.getEditorNode("navigable"),e=t.scrollTop-60;this.isClassicEditor&&(e-=((s=(i=document.querySelector("#wp-content-editor-tools"))==null?void 0:i.getBoundingClientRect())==null?void 0:s.height)||0,e-=((r=(o=document.querySelector("#wp-content-editor-container .mce-toolbar-grp"))==null?void 0:o.getBoundingClientRect())==null?void 0:r.height)||0),t.isEqualNode(document.documentElement)&&(t=window),t.scrollTo({top:e}),this.truSeoHighlighterStore.allowScrolling=!1})},setHighlightMarkNode(t){const e=this.truSeoHighlighterStore.highlightMarks.findIndex(i=>t.hasAttribute("data-mce-annotation-uid")?t.dataset.mceAnnotationUid.indexOf(i.id)!==-1:t.id.indexOf(i.id)!==-1);e!==-1&&(this.truSeoHighlighterStore.highlightMarks[e].node=t,t.style.backgroundColor=this.markBgColor)},setHighlightMarks({block:t,node:e}){const i=this.formatBlockContent({block:t,node:e});if(i)for(const[s,o]of Object.entries(this.truSeoHighlighterStore.highlightSentences||{})){const r=new RegExp(X(o),"g");let u;for(;(u=r.exec(i))!==null&&!this.truSeoHighlighterStore.highlightMarks.find(S=>S.sentenceIndex===s);){const c={start:u.index,end:u.index+u[0].length||1};this.truSeoHighlighterStore.highlightMarks.find(S=>e?(S.range.start===c.start||S.range.end===c.end)&&S.parent.isEqualNode(e):(S.range.start===c.start||S.range.end===c.end)&&S.block.clientId===t.clientId)||this.truSeoHighlighterStore.highlightMarks.push({id:oo(1,999999999),range:c,block:t,parent:e||document.getElementById(`block-${t.clientId}`),node:null,active:this.truSeoHighlighterStore.highlightMarks.length===0,sentenceIndex:s})}}if(t)for(const s of(t==null?void 0:t.innerBlocks)||[])this.setHighlightMarks({block:s,node:null})},setTinymceEditor(){if(this.tinymceEditor)return!1;const t=window.setInterval(()=>{var e;if(this.tinymceEditor=((e=window==null?void 0:window.tinymce)==null?void 0:e.get("content"))||null,!this.tinymceEditor)return!1;window.clearInterval(t),this.tinymceEditor.dom.addStyle(` span.annotation-text.annotation-text-${this.truSeoHighlighterStore.source} { background-color: #CCE0FF; border-radius: 4px; color: inherit; display: inline; font-size: inherit; font-weight: inherit; letter-spacing: inherit; line-height: inherit; position: static; } `.trim())},500)},watchHighlightSentences(t,e){const i=JSON.stringify(t),s=JSON.stringify(e);i!==s&&this.reset()}},beforeMount(){if((pt()||!this.isBlockEditor&&!this.isClassicEditor)&&(this.truSeoHighlighterStore.enabled=!1),this.isBlockEditor&&(!this.truSeoHighlighterStore.dispatchAnnotations||!this.selectBlockEditor||!this.selectEditPost)&&(this.truSeoHighlighterStore.enabled=!1),!this.truSeoHighlighterStore.enabled)return!1},mounted(){var e;this.wpBodyContentObserver&&((e=this.wpBodyContentObserver)==null||e.disconnect());const t=window.setInterval(()=>{typeof this.getEditorNode("wrapper")=="object"&&(window.clearInterval(t),this.observeWpBodyContent())},1e3)}},Yo={emits:["selectedKeyphrase","deleted","saved"],components:{CoreTooltip:G,SvgPencil:ft,SvgTrash:St},props:{index:{type:Number},keyphrase:{type:String},score:{type:Number}},data(){return{edit:!1,strings:{delete:this.$t.__("Delete",this.$td)}}},computed:{scoreClass(){return 80r.toggleKeyphrasesPanel(i.index))},m(i.keyphrase),1),h("span",{class:"keyphrase-edit",onClick:e[1]||(e[1]=S=>r.editKeyphraseEv(i.index))},[d(u)]),h("span",{class:E(["keyphrase-score",r.scoreClass]),onClick:e[2]||(e[2]=S=>r.toggleKeyphrasesPanel(i.index))},m(i.score)+"/100",3)],2),o.edit?(n(),f("span",Jo,[h("input",{value:i.keyphrase,onBlur:e[3]||(e[3]=(...S)=>r.closeEdit&&r.closeEdit(...S)),onKeydown:e[4]||(e[4]=Rt((...S)=>r.pressEnter&&r.pressEnter(...S),["enter"]))},null,40,Xo),h("span",{class:"keyphrase-delete",onClick:e[5]||(e[5]=S=>r.deleteKeyphraseEv(i.index))},[d(p,{type:"action"},{tooltip:l(()=>[w(m(o.strings.delete),1)]),default:l(()=>[d(c)]),_:1})])])):g("",!0)])}const Me=y(Yo,[["render",Qo]]),ti={},ei={width:"16",height:"11",viewBox:"0 0 16 11",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"aioseo-eye-filled"},si=h("path",{d:"M8.0018 8.57162C8.78938 8.57162 9.45817 8.29596 10.0082 7.74465C10.5582 7.19335 10.8332 6.5239 10.8332 5.73632C10.8332 4.94874 10.5575 4.27995 10.0062 3.72995C9.4549 3.17995 8.78546 2.90495 7.99787 2.90495C7.21029 2.90495 6.5415 3.1806 5.9915 3.73191C5.4415 4.28322 5.1665 4.95266 5.1665 5.74025C5.1665 6.52783 5.44216 7.19661 5.99347 7.74661C6.54477 8.29662 7.21422 8.57162 8.0018 8.57162ZM7.99592 7.60495C7.47631 7.60495 7.03595 7.42309 6.67484 7.05937C6.31373 6.69563 6.13317 6.25396 6.13317 5.73436C6.13317 5.21475 6.31503 4.77439 6.67875 4.41328C7.04249 4.05217 7.48415 3.87161 8.00375 3.87161C8.52337 3.87161 8.96373 4.05348 9.32484 4.4172C9.68595 4.78093 9.8665 5.2226 9.8665 5.7422C9.8665 6.26181 9.68464 6.70217 9.32092 7.06328C8.95719 7.42439 8.51552 7.60495 7.99592 7.60495ZM7.99984 10.7383C6.37762 10.7383 4.91095 10.2772 3.59984 9.35495C2.28873 8.43273 1.31095 7.22717 0.666504 5.73828C1.31095 4.24939 2.28873 3.04384 3.59984 2.12161C4.91095 1.19939 6.37762 0.738281 7.99984 0.738281C9.62206 0.738281 11.0887 1.19939 12.3998 2.12161C13.7109 3.04384 14.6887 4.24939 15.3332 5.73828C14.6887 7.22717 13.7109 8.43273 12.3998 9.35495C11.0887 10.2772 9.62206 10.7383 7.99984 10.7383Z",fill:"currentColor"},null,-1),oi=[si];function ii(t,e){return n(),f("svg",ei,oi)}const ri=y(ti,[["render",ii]]),ni={setup(){return{truSeoHighlighterStore:rt()}},components:{CoreTooltip:G,SvgEye:Ut,SvgEyeFilled:ri},props:{analyzer:String},data(){return{strings:{highlightSections:this.$t.__("Highlight sections in the Editor",this.$td),highlightingIsDisabled:this.$t.__("Highlighting is disabled for current view",this.$td)}}},methods:{onClickBtnToggleHighlighter(){this.truSeoHighlighterStore.toggleHighlightAnalyzer(this.analyzer)}}},ai=["disabled"];function li(t,e,i,s,o,r){const u=a("svg-eye"),c=a("core-tooltip"),p=a("svg-eye-filled");return s.truSeoHighlighterStore.enabled?(n(),f("button",{key:0,type:"button",class:"tru-seo-toggle-highlighter",disabled:!s.truSeoHighlighterStore.allowHighlighting,onClick:e[0]||(e[0]=H(S=>r.onClickBtnToggleHighlighter(),["stop","exact"]))},[s.truSeoHighlighterStore.highlightAnalyzer!==i.analyzer?(n(),_(c,{key:0,offset:t.$root._data.screenContext==="sidebar"?"-200px,0":"",type:"action"},{tooltip:l(()=>[w(m(s.truSeoHighlighterStore.allowHighlighting?o.strings.highlightSections:o.strings.highlightingIsDisabled),1)]),default:l(()=>[d(u,{width:"16",height:"16"})]),_:1},8,["offset"])):(n(),_(p,{key:1,width:"16",height:"16"}))],8,ai)):g("",!0)}const di=y(ni,[["render",li]]),ci={components:{SvgCaret:_t,SvgCircleCheck:Bt,SvgCircleClose:ze,TruSeoToggleHighlighter:di},props:{analysisItems:{type:Object}},methods:{toggleDescriptionEv(t){t.target.parentElement.classList.toggle("toggled")}}},hi={class:"aioseo-analysis-detail"},ui={key:0},pi={class:"title__text"},gi={class:"description"};function mi(t,e,i,s,o,r){const u=a("svg-circle-check"),c=a("svg-circle-close"),p=a("tru-seo-toggle-highlighter"),S=a("svg-caret");return n(),f("ul",hi,[(n(!0),f(j,null,et(i.analysisItems,(C,$)=>{var v;return n(),f(j,{key:$},[C.title?(n(),f("li",ui,[h("p",{class:E(["title",C.error===0?"toggled":""])},[C.error===0?(n(),_(u,{key:0,width:"16"})):g("",!0),C.error===1?(n(),_(c,{key:1,width:"16"})):g("",!0),h("span",pi,m(C.title),1),(v=C==null?void 0:C.highlightSentences)!=null&&v.length?(n(),_(p,{key:2,analyzer:$},null,8,["analyzer"])):g("",!0),d(S,{width:"16",role:"button",onClick:H(r.toggleDescriptionEv,["stop"])},null,8,["onClick"])],2),h("p",gi,m(C.description),1)])):g("",!0)],64)}),128))])}const yt=y(ci,[["render",mi]]),_i={setup(){return{licenseStore:O(),postEditorStore:P()}},components:{CoreAlert:K,CoreKeyphrase:Me,CoreLoader:he,SvgCirclePlus:Vt,metaboxAnalysisDetail:yt},data(){return{selectedKeyphrase:0,strings:{additional:this.$t.__("Additional Keyphrases",this.$td),addKeyphrase:this.$t.__("Add Additional Keyphrases",this.$td),keyphraseDocumentation:this.$t.__("Improve your SEO rankings with additional keyphrases.",this.$td),upsell:this.$t.sprintf(this.$t.__("Additional Keyphrases are a %1$s feature. %2$s",this.$td),"PRO",this.$links.getUpsellLink("post-settings",this.$constants.GLOBAL_STRINGS.learnMore,"additional-keywords",!0))}}},watch:{"postEditorStore.currentPost.keyphrases.additional"(){this.postEditorStore.currentPost.keyphrases.additional&&!this.postEditorStore.currentPost.keyphrases.additional[this.selectedKeyphrase]&&(this.selectedKeyphrase=0)}},methods:{onSelectedKeyphrase(t){this.selectedKeyphrase=t},onSaved(t){const{index:e,value:i}=t;this.postEditorStore.currentPost.keyphrases.additional[e].keyphrase=i,this.postEditorStore.currentPost.keyphrases.additional[e].score=0,this.postEditorStore.currentPost.loading.additional[e]=!0,this.postEditorStore.isDirty=!0,this.$truSeo.runAnalysis({postId:this.postEditorStore.currentPost.id,postData:this.postEditorStore.currentPost}),this.selectedKeyphrase=e},onDeleted(t){const e=[...this.postEditorStore.currentPost.keyphrases.additional];e.splice(t,1),this.postEditorStore.currentPost.keyphrases.additional=null,setTimeout(()=>{this.postEditorStore.currentPost.keyphrases.additional=e,this.postEditorStore.isDirty=!0,this.$truSeo.runAnalysis({postId:this.postEditorStore.currentPost.id,postData:this.postEditorStore.currentPost})},300)},addKeyphraseEv(){var i;const e=document.getElementsByClassName(`add-keyphrase-${this.$root._data.screenContext}-input`)[0].querySelector(".medium");if(e.value){const s={keyphrase:e.value,score:0},o=this.postEditorStore.currentPost.keyphrases.additional.push(s),r=document.getElementsByClassName("keyphrase-name");this.postEditorStore.currentPost.loading.additional[0]=!0,e.value="",e.blur(),this.postEditorStore.isDirty=!0,(i=r[o])==null||i.click(),this.$truSeo.runAnalysis({postId:this.postEditorStore.currentPost.id,postData:this.postEditorStore.currentPost})}},pressEnter(t){const e=document.getElementById("add-additional-keyphrase");t.preventDefault(),e.click()},created(){this.postEditorStore.currentPost.keyphrases.forEach((t,e)=>{this.postEditorStore.currentPost.loading.additional[e]=!1})}}},fi={class:"additional-keyphrases-panel"},Si={key:0},yi={class:"analysis-wrapper"},bi={class:"aioseo-description additional-keyphrases-description"},vi=["innerHTML"];function ki(t,e,i,s,o,r){const u=a("core-keyphrase"),c=a("core-loader"),p=a("metaboxAnalysisDetail"),S=a("base-input"),C=a("svg-circle-plus"),$=a("base-button"),v=a("core-alert");return n(),f("div",fi,[s.postEditorStore.currentPost.keyphrases.additional&&s.postEditorStore.currentPost.keyphrases.additional.length&&t.$isPro&&s.licenseStore.license.isActive?(n(),f("div",Si,[(n(!0),f(j,null,et(s.postEditorStore.currentPost.keyphrases.additional,(b,k)=>(n(),_(u,{key:k,index:k,keyphrase:b.keyphrase,score:b.score,onSaved:r.onSaved,onDeleted:r.onDeleted,onSelectedKeyphrase:r.onSelectedKeyphrase,class:E(["aioseo-keyphrase-tag additional-keyphrase",o.selectedKeyphrase===k?"selected":null])},null,8,["index","keyphrase","score","onSaved","onDeleted","onSelectedKeyphrase","class"]))),128)),h("div",yi,[s.postEditorStore.currentPost.loading.additional[this.selectedKeyphrase]&&s.postEditorStore.currentPost.keyphrases.additional[this.selectedKeyphrase]&&s.postEditorStore.currentPost.keyphrases.additional[this.selectedKeyphrase].keyphrase?(n(),_(c,{key:0,class:"analysis-loading",dark:""})):g("",!0),!s.postEditorStore.currentPost.loading.additional[this.selectedKeyphrase]&&s.postEditorStore.currentPost.keyphrases.additional[this.selectedKeyphrase]&&s.postEditorStore.currentPost.keyphrases.additional[this.selectedKeyphrase].keyphrase?(n(),_(p,{key:1,analysisItems:s.postEditorStore.currentPost.keyphrases.additional[this.selectedKeyphrase].analysis},null,8,["analysisItems"])):g("",!0)])])):g("",!0),t.$isPro&&s.licenseStore.license.isActive?(n(),_(S,{key:1,size:"medium",class:E(`add-keyphrase-${this.$root._data.screenContext}-input`),onKeydown:Rt(r.pressEnter,["enter"])},null,8,["class","onKeydown"])):g("",!0),t.$isPro&&s.licenseStore.license.isActive?(n(),_($,{key:2,id:"add-additional-keyphrase",class:"add-keyphrase gray medium",onClick:r.addKeyphraseEv},{default:l(()=>[d(C,{width:"14",height:"14"}),w(" "+m(o.strings.addKeyphrase),1)]),_:1},8,["onClick"])):g("",!0),!t.$isPro||!s.licenseStore.license.isActive?(n(),f(j,{key:3},[h("div",bi,m(o.strings.keyphraseDocumentation),1),d(v,{class:"inline-upsell",type:"blue"},{default:l(()=>[h("div",{innerHTML:o.strings.upsell},null,8,vi)]),_:1})],64)):g("",!0)])}const wi=y(_i,[["render",ki],["__scopeId","data-v-73d0fe06"]]),Ci=""+window.__aioseoDynamicImportPreload__("images/open-ai.Du2ac8yQ.png"),$i={setup(){return{getAssetUrl:cs,settingsStore:Y()}},components:{CoreModal:J},props:{type:{type:String,required:!0}},data(){return{OpenAiImage:Ci,strings:{upgradeToPro:this.$t.__("Upgrade to Pro Today",this.$td),learnMoreLink:this.$t.sprintf('%2$s %3$s',this.$links.getUpsellUrl("post-settings","general","open-ai"),this.$t.__("Learn more about all the features",this.$td),this.$links.getUpsellLink("post-settings","","general",!0))}}},computed:{headerTitle(){return this.type==="title"?this.$t.sprintf(this.$t.__("Generate New SEO %1$s",this.$td),this.$t.__("Title",this.$td)):this.$t.sprintf(this.$t.__("Generate New SEO %1$s",this.$td),this.$t.__("Description",this.$td))},ctaHeaderTitle(){return this.type==="title"?this.$t.sprintf(this.$t.__("Generating SEO %1$s is a Pro Feature",this.$td),this.$t.__("Titles",this.$td)):this.$t.sprintf(this.$t.__("Generating SEO %1$s is a Pro Feature",this.$td),this.$t.__("Descriptions",this.$td))},ctaDescription(){return this.type==="title"?this.$t.sprintf(this.$t.__("With our Pro version, you now have access to the powerful feature that generates SEO optimized %1$s with just a click of a button. Say goodbye to manual %2$s creation and hello to increased online visibility.",this.$td),this.$t.__("titles",this.$td),this.$t.__("title",this.$td)):this.$t.sprintf(this.$t.__("With our Pro version, you now have access to the powerful feature that generates SEO optimized %1$s with just a click of a button. Say goodbye to manual %2$s creation and hello to increased online visibility.",this.$td),this.$t.__("meta descriptions",this.$td),this.$t.__("description",this.$td))}}},Pi={class:"cta"},Ei=["src"],Ti={class:"bottom"},xi={class:"title"},Ai=["innerHTML"];function Li(t,e,i,s,o,r){const u=a("base-button"),c=a("core-modal");return n(),_(c,{classes:["aioseo-ai-generator-modal"],onClose:e[0]||(e[0]=p=>s.settingsStore.setModalState({modalName:"aiGenerator",value:!1}))},{headerTitle:l(()=>[w(m(r.headerTitle),1)]),body:l(()=>[h("div",Pi,[h("img",{src:s.getAssetUrl(o.OpenAiImage),alt:"open-ai-upsell"},null,8,Ei),h("div",Ti,[h("div",null,[h("p",xi,m(r.ctaHeaderTitle),1),h("p",null,m(r.ctaDescription),1)]),h("div",null,[d(u,{type:"green",size:"medium",tag:"a",href:t.$links.getPricingUrl("post-settings","general","open-ai")},{default:l(()=>[w(m(o.strings.upgradeToPro),1)]),_:1},8,["href"]),h("span",{innerHTML:o.strings.learnMoreLink},null,8,Ai)])])])]),_:1})}const Mi=y($i,[["render",Li]]),Hi={},Ii={class:"aioseo-ai-robot",viewBox:"0 0 16 14",xmlns:"http://www.w3.org/2000/svg"},Bi=h("path",{d:"M2.23351 8.73334C1.73351 8.73334 1.31129 8.55996 0.966845 8.2132C0.622412 7.86644 0.450195 7.44537 0.450195 6.95C0.450195 6.45464 0.623579 6.03357 0.970345 5.6868C1.31709 5.34005 1.73815 5.16667 2.23351 5.16667V2.89999C2.23351 2.63332 2.33351 2.39999 2.53351 2.19999C2.73351 1.99999 2.96685 1.89999 3.23351 1.89999H6.21686C6.21686 1.39999 6.39024 0.977765 6.737 0.63332C7.08376 0.288876 7.50483 0.116653 8.0002 0.116653C8.49556 0.116653 8.91663 0.290037 9.2634 0.636803C9.61015 0.983559 9.78353 1.40462 9.78353 1.89999H12.7669C13.0335 1.89999 13.2669 1.99999 13.4669 2.19999C13.6669 2.39999 13.7669 2.63332 13.7669 2.89999V5.16667C14.2669 5.16667 14.6891 5.34005 15.0335 5.6868C15.378 6.03357 15.5502 6.45464 15.5502 6.95C15.5502 7.44537 15.3768 7.86644 15.0301 8.2132C14.6833 8.55996 14.2622 8.73334 13.7669 8.73334V12.2167C13.7669 12.4834 13.6669 12.7167 13.4669 12.9167C13.2669 13.1167 13.0335 13.2167 12.7669 13.2167H3.23351C2.96685 13.2167 2.73351 13.1167 2.53351 12.9167C2.33351 12.7167 2.23351 12.4834 2.23351 12.2167V8.73334ZM5.77731 7.01015C5.97615 7.01015 6.14416 6.94024 6.28136 6.80042C6.41856 6.66061 6.48716 6.48971 6.48716 6.28774C6.48716 6.08577 6.41726 5.91619 6.27745 5.77899C6.13762 5.64179 5.9683 5.57319 5.76946 5.57319C5.57063 5.57319 5.40104 5.64283 5.2607 5.78212C5.12036 5.92141 5.0502 6.09414 5.0502 6.3003C5.0502 6.49914 5.12167 6.66715 5.26463 6.80435C5.40758 6.94155 5.57848 7.01015 5.77731 7.01015ZM10.2309 7.01015C10.4298 7.01015 10.5994 6.94024 10.7397 6.80042C10.88 6.66061 10.9502 6.48971 10.9502 6.28774C10.9502 6.08577 10.8787 5.91619 10.7358 5.77899C10.5928 5.64179 10.4219 5.57319 10.2231 5.57319C10.0242 5.57319 9.85623 5.64283 9.71903 5.78212C9.58183 5.92141 9.51323 6.09414 9.51323 6.3003C9.51323 6.49914 9.58313 6.66715 9.72295 6.80435C9.86277 6.94155 10.0321 7.01015 10.2309 7.01015ZM5.30383 10.25H10.6966V9.14637H5.30383V10.25ZM3.55383 11.8964H12.4466V3.2203H3.55383V11.8964Z",fill:"currentColor"},null,-1),Ri=[Bi];function Oi(t,e){return n(),f("svg",Ii,Ri)}const Di=y(Hi,[["render",Oi]]),Ni={setup(){return{settingsStore:Y()}},components:{AiModal:Mi,CoreTooltip:G,SvgAiRobot:Di},props:{type:{type:String,required:!0}},data(){return{strings:{useAiGenerator:this.$t.__("Use AI Generator",this.$td)}}}},Vi={class:"aioseo-ai-generator"};function Ui(t,e,i,s,o,r){const u=a("svg-ai-robot"),c=a("core-tooltip"),p=a("ai-modal");return n(),f("div",Vi,[d(c,{type:"action",offset:"-30px,0"},{tooltip:l(()=>[w(m(o.strings.useAiGenerator),1)]),default:l(()=>[h("button",{type:"button",onClick:e[1]||(e[1]=S=>s.settingsStore.setModalState({modalName:"aiGenerator",value:i.type}))},[d(u,{onClick:e[0]||(e[0]=S=>s.settingsStore.setModalState({modalName:"aiGenerator",value:i.type}))})])]),_:1}),d(p,{show:s.settingsStore.modals.aiGenerator===i.type,type:i.type},null,8,["show","type"])])}const Ki=y(Ni,[["render",Ui]]),Gi={setup(){const{strings:t}=me();return{settingsStore:Y(),strings:t}},components:{CoreTooltip:G,SvgCaret:_t,SvgCircleCheck:Bt,SvgCircleQuestionMark:Nt,SvgEllipse:Se,TransitionSlide:Rs},mixins:[_e],props:{slug:{type:String,required:!0},headerText:String,focusScore:Number,trueSeoScore:Number,toggles:{type:Boolean,default(){return!0}},hideHeader:Boolean,noSlide:Boolean,saveToggleStatus:{type:Boolean,default(){return!0}}},watch:{"settingsStore.metaBoxTabs.mainSidebar":{deep:!0,handler(t){this.$root._data.screenContext==="sidebar"&&this.openCard(t.card)}}},methods:{openCard(t){for(const e in this.settingsStore.settings.toggledCards)this.settingsStore.settings.toggledCards[e]&&this.settingsStore.toggleCard({slug:e});this.settingsStore.toggleCard({slug:t})}},created(){this.openCard(this.settingsStore.metaBoxTabs.mainSidebar.card)}},Fi={class:"aioseo-card aioseo-sidebar-card"},qi={class:"text"},zi={key:0,class:"content"},Wi={key:1,class:"content"};function ji(t,e,i,s,o,r){const u=a("svg-ellipse"),c=a("svg-circle-check"),p=a("svg-circle-question-mark"),S=a("core-tooltip"),C=a("svg-caret"),$=a("transition-slide");return n(),f("div",Fi,[i.hideHeader?g("",!0):(n(),f("div",{key:0,class:"header",onClick:e[0]||(e[0]=v=>s.settingsStore.toggleCard({slug:i.slug,shouldSave:i.saveToggleStatus}))},[h("div",qi,[q(t.$slots,"header",{},()=>[w(m(i.headerText),1)]),i.focusScore>=0?q(t.$slots,"alt",{key:0},()=>[i.focusScore!==null?(n(),f("span",{key:0,class:E(["card-score",t.getScoreClass(i.focusScore)])},m(i.focusScore)+"/100 ",3)):g("",!0)]):g("",!0),i.trueSeoScore>=0?q(t.$slots,"alt",{key:1},()=>[h("span",{class:E(["card-score",t.getErrorClass(i.trueSeoScore)])},[0[q(t.$slots,"tooltip")]),default:l(()=>[d(p)]),_:3})):g("",!0)]),i.toggles&&s.settingsStore.settings.toggledCards?(n(),_(C,{key:0,class:E({rotated:!s.settingsStore.settings.toggledCards[i.slug]})},null,8,["class"])):g("",!0)])),s.settingsStore.settings.toggledCards||i.noSlide?(n(),_($,{key:1,active:s.settingsStore.settings.toggledCards[i.slug]&&i.toggles||i.noSlide},{default:l(()=>[t.$slots["before-tabs"]?(n(),f("div",zi,[q(t.$slots,"before-tabs")])):g("",!0),q(t.$slots,"tabs"),t.$slots.default?(n(),f("div",Wi,[q(t.$slots,"default")])):g("",!0)]),_:3},8,["active"])):g("",!0)])}const Yi=y(Gi,[["render",ji]]),Zi={props:{width:Number,height:Number,fillColor:String,strokeColor:String,strokeWidth:Number,data:Array},computed:{getViewBox(){return"0 0 "+this.width+" "+this.height},polylinePoints(){const t=Math.max(...this.data.map(o=>o.x)),e=Math.max(...this.data.map(o=>o.y)),i=this.height-this.strokeWidth,s=this.data.map(o=>{const r=o.x===0?0:o.x/t,u=o.y===0?0:o.y/e,c=r*this.width,p=i-u*i+this.strokeWidth;return`${c},${p}`}).join(" ");return`0,${i+this.strokeWidth} `+s+` ${this.width},${i+this.strokeWidth}`}}},Ji=["width","height","viewBox"],Xi=["fill","points"],Qi=["stroke","strokeWidth","points"];function tr(t,e,i,s,o,r){return n(),f("svg",{width:i.width,height:i.height,viewBox:r.getViewBox,role:"img","aria-hidden":"true",focusable:"false"},[h("polygon",{fill:i.fillColor,points:r.polylinePoints},null,8,Xi),h("polyline",{fill:"none",stroke:i.strokeColor,strokeWidth:i.strokeWidth,strokeLinejoin:"round",strokeLinecap:"round",points:r.polylinePoints},null,8,Qi)],8,Ji)}const er=y(Zi,[["render",tr]]),sr={},or={viewBox:"0 0 158 21",class:"aioseo-logo-semrush"},ir=h("path",{d:"M108.808 8.212c0-2.579-1.586-4.456-4.628-4.456h-9.826v13.37h3.227v-4.563h3.822l3.742 4.562h3.637v-.29l-3.637-4.351c2.288-.463 3.663-2.13 3.663-4.272zm-4.985 1.653h-6.229V6.533h6.229c1.15 0 1.891.608 1.891 1.666 0 1.084-.714 1.666-1.891 1.666zM157.593 3.756h-3.029v5.078h-8.133V3.756h-3.266v13.383h3.266v-5.277h8.133v5.277h3.029V3.756zM85.72 3.756l-3.598 11.253h-.198l-3.61-11.253H72.56v13.383h3.081V6.149h.185l3.597 10.99h4.96l3.61-10.99h.185v10.99h3.174V3.756h-5.634zM50.57 9.23c-1.138-.118-3.267-.317-4.404-.436-1.124-.119-1.772-.45-1.772-1.19 0-.714.687-1.31 3.464-1.31 2.46 0 4.721.53 6.692 1.482V4.787c-1.97-.939-4.153-1.402-6.864-1.402-3.808 0-6.44 1.587-6.44 4.285 0 2.275 1.547 3.518 4.642 3.861 1.124.12 3.028.291 4.364.397 1.454.12 1.878.569 1.878 1.23 0 .913-1.019 1.468-3.597 1.468-2.619 0-5.277-.86-7.168-2.063v3.081c1.521 1.019 4.14 1.878 7.062 1.878 4.152 0 6.824-1.6 6.824-4.47.026-2.168-1.402-3.478-4.682-3.821zM57.393 3.756v13.383h12.47V14.4h-9.389v-2.71h9.23V8.978h-9.23V6.493h9.39V3.756H57.392zM136.487 9.23c-1.138-.118-3.267-.317-4.404-.436-1.124-.119-1.772-.45-1.772-1.19 0-.714.688-1.31 3.465-1.31 2.459 0 4.721.53 6.691 1.482V4.787c-1.97-.939-4.152-1.402-6.863-1.402-3.809 0-6.44 1.587-6.44 4.285 0 2.275 1.547 3.518 4.641 3.861 1.124.12 3.029.291 4.364.397 1.455.12 1.878.569 1.878 1.23 0 .913-1.018 1.468-3.597 1.468-2.618 0-5.276-.86-7.167-2.063v3.081c1.52 1.019 4.139 1.878 7.061 1.878 4.153 0 6.824-1.6 6.824-4.47.027-2.168-1.402-3.478-4.681-3.821zM121.742 3.756v6.85c0 2.592-1.574 4.02-3.941 4.02-2.38 0-3.941-1.402-3.941-4.06v-6.81h-3.213v6.506c0 4.853 3.028 7.26 7.207 7.26 4.007 0 7.115-2.301 7.115-7.101V3.756h-3.227z",fill:"#020202"},null,-1),rr=h("path",{d:"M30.19 10.368c0 .648-.33.753-1.15.753-.872 0-1.031-.145-1.124-.806-.172-1.68-1.309-3.108-3.213-3.267-.608-.052-.754-.277-.754-1.031 0-.7.106-1.031.648-1.031 3.306.013 5.594 2.67 5.594 5.382zm4.814 0C35.004 5.329 31.593 0 23.711 0H8.054c-.318 0-.516.159-.516.45 0 .158.119.304.225.383.568.45 1.415.952 2.525 1.508 1.085.542 1.931.899 2.777 1.243.357.145.49.304.49.502 0 .278-.199.45-.582.45H.543c-.371 0-.543.238-.543.476 0 .198.066.37.238.542 1.005 1.058 2.618 2.328 4.96 3.796a71.557 71.557 0 006.611 3.636c.344.159.45.344.45.542-.013.225-.185.41-.582.41h-5.7c-.317 0-.502.172-.502.437 0 .145.119.33.278.476 1.295 1.177 3.372 2.46 6.136 3.636C15.579 20.061 19.32 21 23.526 21c7.974 0 11.478-5.964 11.478-10.632zm-10.407 7.445c-4.073 0-7.485-3.32-7.485-7.458 0-4.074 3.399-7.353 7.485-7.353 4.179 0 7.458 3.266 7.458 7.353-.013 4.139-3.28 7.458-7.458 7.458z",fill:"#FF642D"},null,-1),nr=[ir,rr];function ar(t,e){return n(),f("svg",or,nr)}const lr=y(sr,[["render",ar]]),dr={setup(){return{connectStore:Ve(),licenseStore:O(),optionsStore:dt(),postEditorStore:P(),rootStore:Z(),semrushStore:Ue()}},components:{CoreAlert:K,CoreKeyphrase:Me,CoreLoader:he,CoreModal:J,CoreTooltip:G,SvgAreaChart:er,SvgCircleCheck:Bt,SvgCirclePlus:Vt,SvgLogoSemrush:lr,SvgTrash:St,metaboxAnalysisDetail:yt},data(){return{showSemrushTooltip:!1,loadingResults:!1,semrushShowModal:!1,addingAdditionalKeyphrase:!1,removingAdditionalKeyphrase:!1,semrushCountry:{value:"US",label:"United States of America - US"},strings:{modalTitle:this.$t.sprintf(this.$t.__("Additional Keyphrases by %1$s",this.$td),"Semrush"),addKeyphrase:this.$t.__("Add Focus Keyphrase",this.$td),getAdditionalKeyphrases:this.$t.__("Get Additional Keyphrases",this.$td),showResultsFor:this.$t.__("Show Results For:",this.$td),keyphrase:this.$t.__("Keyphrase",this.$td),volume:this.$t.__("Volume",this.$td),trend:this.$t.__("Trend",this.$td),addAdditionalKeyphrase:this.$t.__("Add Keyphrase",this.$td),removeAdditionalKeyphrase:this.$t.__("Remove Keyphrase",this.$td),noResults:this.$t.__("No results",this.$td),upsell:this.$t.sprintf(this.$t.__("Analyzing your content with %1$s keywords is only available to licensed %2$s users. %3$s",this.$td),"Semrush","AIOSEO Pro",this.$links.getUpsellLink("semrush-keywords",this.$constants.GLOBAL_STRINGS.learnMore,null,!0)),semrushGetAdditionalKeyphrases:this.$t.sprintf(this.$t.__("%1$s integrates directly with %2$s to provide you with actionable keyphrases to help you write better content.",this.$td),"AIOSEO","Semrush"),pleaseAddFocusKeyphrase:this.$t.__("To use this feature, first add a focus keyphrase.",this.$td),focusKeyphrase:this.$t.__("Focus Keyphrase",this.$td),delete:this.$t.__("Delete",this.$td),semrushTooltip:this.$t.sprintf(this.$t.__("Get Additional Keyphrases with %1$s!",this.$td),"Semrush"),semrushTooltipLicenseKey:this.$t.sprintf(this.$t.__("%1$sA valid license key is required%2$s in order to connect with %3$s.",this.$td),'',"","Semrush"),youHaveExceededSemrush:this.$t.sprintf(this.$t.__("You have exceeded the number of requests allowed by your %1$s plan.",this.$td),"Semrush"),inOrderToUpgradeSemrush:this.$t.sprintf(this.$t.__("In order to continue searching for additional keyphrases, you'll need to upgrade. %1$s",this.$td),this.$links.getUpsellLink("semrush-pricing",this.$constants.GLOBAL_STRINGS.learnMore,"semrushPricing",!0))}}},watch:{semrushCountry:{deep:!0,handler(){this.getKeyphrases()}}},computed:{semrushError(){return this.semrushStore.error.includes("TOTAL LIMIT EXCEEDED")?this.$t.__("You have exceeded the limit for requests. Please try again later.",this.$td):this.$t.__("An error occurred while fetching keyphrases. Please try again later.",this.$td)},semrushDatabase(){return this.$constants.COUNTRY_LIST.map(t=>(t.value==="GB"&&(t.value="UK",t.label="United Kingdom"),t.value==="KR"&&(t.label="South Korea"),t)).filter(t=>this.$constants.SEMRUSH_DATABASE.includes(t.value.toLowerCase())).map(t=>(t.label=t.label+" - "+t.value.toUpperCase(),t))}},methods:{getAdditionalKeyphrases(){if(this.showSemrushTooltip=!1,!this.connectStore.isConnected){this.openConnectPopup(this.rootStore.aioseo.urls.connect+"&semrush=true");return}if(!this.semrushStore.hasValidTokens){this.openPopup("https://oauth.semrush.com/auth/login?client_id=aioseo&redirect_uri=https%3A%2F%2Foauth.semrush.com%2Foauth2%2Faioseo%2Fsuccess&ref=2190331110&response_type=code&scope=user.id");return}this.openModal()},transformTrendDataToChartPoints(t){return t.split(",").map((i,s)=>({x:s,y:parseFloat(i)}))},openConnectPopup(t){Yt(t,this.connectWithAioseo,600,630,!0,["token"],this.completedConnectCallback,this.closedConnectCallback)},openPopup(t){Yt(t,"Semrush Oauth",450,570,!0,["code"],this.completedCallback,this.closedCallback,this.postMessageCallback)},async completedCallback(t){return this.semrushStore.authenticate(t.code)},completedConnectCallback(t){return this.connectStore.saveConnectToken(t.token)},openModal(){this.semrushShowModal=!0,!this.semrushStore.error&&this.getKeyphrases()},getKeyphrases(){this.loadingResults=!0,this.semrushStore.getKeyphrases(this.semrushCountry.value).then(()=>{this.loadingResults=!1}).catch(t=>{this.semrushShowModal=!1,this.loadingResults=!1,console.error(t.message)})},closedCallback(t){t&&this.openModal()},closedConnectCallback(t){if(t){if(this.semrushStore.hasValidTokens){this.$nextTick(this.getAdditionalKeyphrases);return}this.showSemrushTooltip=!0}},async postMessageCallback(t,e,i){const{data:s,source:o,origin:r}=t;if(!(r!=="https://oauth.semrush.com"||e!==o)){if(s.type==="semrush:oauth:success"){window.removeEventListener("message",i,!1);let u={};try{const c=new URL(s.url);u=nt(c.search)}catch{}this.completedCallback(u).then(()=>{e.close(),e=null,this.closedCallback(!0)})}s.type==="semrush:oauth:denied"&&(e.close(),window.removeEventListener("message",i,!1),e=null,this.closedCallback())}},onSaved(t){const{value:e}=t;this.postEditorStore.currentPost.keyphrases.focus.keyphrase=e,this.postEditorStore.currentPost.loading.focus=!0,this.postEditorStore.isDirty=!0,this.$truSeo.runAnalysis({postId:this.postEditorStore.currentPost.id,postData:this.postEditorStore.currentPost})},onDeleted(){this.postEditorStore.currentPost.keyphrases.focus.keyphrase=null,this.postEditorStore.isDirty=!0,this.$truSeo.runAnalysis({postId:this.postEditorStore.currentPost.id,postData:this.postEditorStore.currentPost})},addKeyphraseEv(){const e=document.getElementsByClassName(`add-focus-keyphrase-${this.$root._data.screenContext}-input`)[0].querySelector(".medium");if(e.value){const i={keyphrase:e.value,score:0,analysis:{}};this.postEditorStore.currentPost.keyphrases.focus=i,this.postEditorStore.currentPost.loading.focus=!0,e.value="",e.blur(),this.postEditorStore.isDirty=!0,this.$truSeo.runAnalysis({postId:this.postEditorStore.currentPost.id,postData:this.postEditorStore.currentPost})}},hasAdditionalKeyphrase(t){const{additional:e}=this.postEditorStore.currentPost.keyphrases;return e.filter(i=>i.keyphrase.toLowerCase()===t).length},getAdditionalKeyphrase(t){const{additional:e}=this.postEditorStore.currentPost.keyphrases;return e.find(i=>i.keyphrase.toLowerCase()===t)},scoreClass(t){return 80s.keyphrase.toLowerCase()===t);if(i!==-1){const s=document.getElementsByClassName("keyphrase-name");s[i+1]&&s[i+1].click(),this.semrushShowModal=!1}},removeAdditionalKeyphrase(t,e){this.removingAdditionalKeyphrase=e;const{additional:i}=this.postEditorStore.currentPost.keyphrases,s=i.findIndex(o=>o.keyphrase.toLowerCase()===t);if(s!==-1){i.splice(s,1),this.postEditorStore.currentPost.keyphrases.additional=i;const o=document.getElementsByClassName("keyphrase-name");o[0]&&o[0].click()}this.$nextTick(()=>{this.removingAdditionalKeyphrase=!1})},toggleDescriptionEv(t){t.target.parentElement.classList.toggle("toggled")},pressEnter(t){const e=document.getElementById("add-focus-keyphrase");t.preventDefault(),e.click()}},mounted(){const t=[];this.optionsStore.internalOptions.integrations.semrush.accessToken&&this.semrushStore.expired&&t.push(this.semrushStore.refresh())}},cr={class:"aioseo-focus-keyphrase-panel"},hr={class:"disabled-button gray medium"},ur={class:"disabled-button gray"},pr=["innerHTML"],gr={class:"aioseo-modal-content has-padding"},mr={class:"aioseo-settings-row"},_r={class:"settings-name"},fr={class:"name"},Sr={class:"results"},yr={"aria-label":"Additional Keyphrases",class:"additional-keyphrases-table",cellpadding:"0",cellspacing:"0"},br={class:"keyphrases-header"},vr={class:"keyphrase"},kr={class:"keyphrase-volume"},wr={class:"keyphrase-trend"},Cr={key:0,class:"keyphrase-actions"},$r={class:"keyphrases-rows"},Pr={class:"keyphrase"},Er={class:"keyphrase-volume"},Tr={class:"keyphrase-trend"},xr={key:0,class:"keyphrase-actions"},Ar={key:0,class:"focus-keyphrase"},Lr={key:1},Mr={key:1,class:"remove-keyphrase"},Hr=["onClick"],Ir={key:1,class:"keyphrase-row"},Br=["colspan"],Rr={key:1},Or={class:"semrush-logo"},Dr={class:"semrush-upsell"},Nr=["innerHTML"],Vr=["innerHTML"];function Ur(t,e,i,s,o,r){const u=a("base-input"),c=a("svg-circle-plus"),p=a("base-button"),S=a("core-tooltip"),C=a("core-keyphrase"),$=a("core-loader"),v=a("metaboxAnalysisDetail"),b=a("core-alert"),k=a("base-select"),M=a("svg-area-chart"),L=a("svg-circle-check"),Q=a("svg-trash"),bt=a("svg-logo-semrush"),ct=a("core-modal");return n(),f("div",cr,[!s.postEditorStore.currentPost.keyphrases.focus||!s.postEditorStore.currentPost.keyphrases.focus.keyphrase?(n(),_(u,{key:0,size:"medium",class:E(`add-focus-keyphrase-${this.$root._data.screenContext}-input`),onKeydown:Rt(r.pressEnter,["enter"])},null,8,["class","onKeydown"])):g("",!0),h("div",{class:E(`add-focus-keyphrase-${this.$root._data.screenContext}-button`)},[!s.postEditorStore.currentPost.keyphrases.focus||!s.postEditorStore.currentPost.keyphrases.focus.keyphrase?(n(),_(p,{key:0,id:"add-focus-keyphrase",class:"add-keyphrase gray medium",onClick:r.addKeyphraseEv},{default:l(()=>[d(c,{width:"14",height:"14"}),w(" "+m(o.strings.addKeyphrase),1)]),_:1},8,["onClick"])):g("",!0),!s.postEditorStore.currentPost.keyphrases.focus||!s.postEditorStore.currentPost.keyphrases.focus.keyphrase?(n(),_(S,{key:1},{tooltip:l(()=>[h("span",null,m(o.strings.semrushGetAdditionalKeyphrases)+" "+m(o.strings.pleaseAddFocusKeyphrase),1)]),default:l(()=>[h("div",hr,[d(c,{width:"14",height:"14"}),w(" "+m(o.strings.getAdditionalKeyphrases),1)])]),_:1})):g("",!0)],2),s.postEditorStore.currentPost.keyphrases.focus&&s.postEditorStore.currentPost.keyphrases.focus.keyphrase?(n(),_(C,{key:1,index:0,keyphrase:s.postEditorStore.currentPost.keyphrases.focus.keyphrase,score:s.postEditorStore.currentPost.keyphrases.focus.score,onSaved:r.onSaved,onDeleted:r.onDeleted,class:"aioseo-keyphrase-tag"},null,8,["keyphrase","score","onSaved","onDeleted"])):g("",!0),s.postEditorStore.currentPost.loading.focus&&s.postEditorStore.currentPost.keyphrases.focus?(n(),_($,{key:2,class:"analysis-loading",dark:""})):g("",!0),!s.postEditorStore.currentPost.loading.focus&&s.postEditorStore.currentPost.keyphrases.focus&&s.postEditorStore.currentPost.keyphrases.focus.keyphrase?(n(),_(v,{key:3,analysisItems:s.postEditorStore.currentPost.keyphrases.focus.analysis},null,8,["analysisItems"])):g("",!0),!s.postEditorStore.currentPost.loading.focus&&s.postEditorStore.currentPost.keyphrases.focus&&s.postEditorStore.currentPost.keyphrases.focus.keyphrase&&t.$isPro&&s.licenseStore.isUnlicensed?(n(),_(S,{key:4},{tooltip:l(()=>[h("span",{innerHTML:o.strings.semrushTooltipLicenseKey},null,8,pr)]),default:l(()=>[h("div",ur,[d(c,{width:"14",height:"14"}),w(" "+m(o.strings.getAdditionalKeyphrases),1)])]),_:1})):g("",!0),!s.postEditorStore.currentPost.loading.focus&&s.postEditorStore.currentPost.keyphrases.focus&&s.postEditorStore.currentPost.keyphrases.focus.keyphrase&&(!t.$isPro||!s.licenseStore.isUnlicensed)?(n(),_(S,{key:5,disabled:!o.showSemrushTooltip||t.$isPro,"force-show":o.showSemrushTooltip&&!t.$isPro},{tooltip:l(()=>[h("span",null,m(o.strings.semrushTooltip),1)]),default:l(()=>[d(p,{class:"add-keyphrase gray medium",onClick:r.getAdditionalKeyphrases},{default:l(()=>[d(c,{width:"14",height:"14"}),w(" "+m(o.strings.getAdditionalKeyphrases),1)]),_:1},8,["onClick"])]),_:1},8,["disabled","force-show"])):g("",!0),d(ct,{show:o.semrushShowModal,onClose:e[1]||(e[1]=T=>o.semrushShowModal=!1),classes:["aioseo-focus-keyphrase-panel-modal"]},{headerTitle:l(()=>[w(m(o.strings.modalTitle),1)]),body:l(()=>[h("div",gr,[s.licenseStore.isUnlicensed?(n(),_(b,{key:0,type:"blue",innerHTML:o.strings.upsell},null,8,["innerHTML"])):g("",!0),h("div",mr,[h("div",_r,[h("div",fr,m(o.strings.showResultsFor),1)]),d(k,{class:"semrush-country-selector",size:"medium",options:r.semrushDatabase,placeholder:o.strings.selectPriceIndicator,modelValue:o.semrushCountry,"onUpdate:modelValue":e[0]||(e[0]=T=>o.semrushCountry=T)},null,8,["options","placeholder","modelValue"])]),h("div",Sr,[h("table",yr,[h("thead",null,[h("tr",br,[h("th",vr,m(o.strings.keyphrase),1),h("th",kr,m(o.strings.volume),1),h("th",wr,m(o.strings.trend),1),s.licenseStore.isUnlicensed?g("",!0):(n(),f("th",Cr))])]),h("tbody",$r,[s.semrushStore.results.length&&!o.loadingResults?(n(!0),f(j,{key:0},et(s.semrushStore.results,(T,I)=>(n(),f("tr",{class:E(["keyphrase-row",{even:I%2===0}]),key:I},[h("td",Pr,m(T[0]),1),h("td",Er,m(T[1]),1),h("td",Tr,[d(M,{width:66,height:24,data:r.transformTrendDataToChartPoints(T[2]),strokeWidth:1.8,strokeColor:"#498afc",fillColor:"#ade3fc"},null,8,["data"])]),s.licenseStore.isUnlicensed?g("",!0):(n(),f("td",xr,[T[0]===s.postEditorStore.currentPost.keyphrases.focus.keyphrase.toLowerCase()?(n(),f("div",Ar,[d(L),w(" "+m(o.strings.focusKeyphrase),1)])):g("",!0),T[0]!==s.postEditorStore.currentPost.keyphrases.focus.keyphrase.toLowerCase()?(n(),f("div",Lr,[I!==o.removingAdditionalKeyphrase&&(I===o.addingAdditionalKeyphrase||!r.hasAdditionalKeyphrase(T[0]))?(n(),_(p,{key:0,type:"gray",size:"medium",onClick:ht=>r.addAdditionalKeyphrase(T[0],I),loading:I===o.addingAdditionalKeyphrase},{default:l(()=>[w(m(o.strings.addAdditionalKeyphrase),1)]),_:2},1032,["onClick","loading"])):g("",!0),r.getAdditionalKeyphrase(T[0])&&I!==o.addingAdditionalKeyphrase&&(I===o.removingAdditionalKeyphrase||r.hasAdditionalKeyphrase(T[0]))?(n(),f("div",Mr,[h("span",{class:E(["keyphrase-score",r.scoreClass(r.getAdditionalKeyphrase(T[0]).score)]),onClick:ht=>r.goToAdditionalKeyphrase(T[0])},m(r.getAdditionalKeyphrase(T[0]).score)+"/100",11,Hr),d(S,{type:"action"},{tooltip:l(()=>[w(m(o.strings.delete),1)]),default:l(()=>[d(Q,{onClick:ht=>r.removeAdditionalKeyphrase(T[0],I)},null,8,["onClick"])]),_:2},1024)])):g("",!0)])):g("",!0)]))],2))),128)):g("",!0),!s.semrushStore.results.length||o.loadingResults?(n(),f("tr",Ir,[h("td",{colspan:s.licenseStore.isUnlicensed?3:4,class:"no-results"},[h("div",null,[o.loadingResults?(n(),_($,{key:0,dark:""})):g("",!0),!o.loadingResults&&!s.semrushStore.error?(n(),f("span",Rr,m(o.strings.noResults),1)):g("",!0),s.semrushStore.error&&!s.semrushStore.error.includes("TOTAL LIMIT EXCEEDED")?(n(),_(b,{key:2,type:"red"},{default:l(()=>[w(m(r.semrushError),1)]),_:1})):g("",!0),s.semrushStore.error&&s.semrushStore.error.includes("TOTAL LIMIT EXCEEDED")?(n(),f(j,{key:3},[h("div",Or,[d(bt)]),h("div",Dr,[h("span",null,[h("strong",{innerHTML:o.strings.youHaveExceededSemrush},null,8,Nr)]),w(" "+m(" ")+" "),h("span",{innerHTML:o.strings.inOrderToUpgradeSemrush},null,8,Vr)])],64)):g("",!0)])],8,Br)])):g("",!0)])])])])]),_:1},8,["show"])])}const Kr=y(dr,[["render",Ur]]),Gr={setup(){return{postEditorStore:P(),rootStore:Z()}},components:{CoreAlert:K,CoreMainTabs:st,metaboxAnalysisDetail:yt},data(){return{initTab:"basic",tabs:[{slug:"basic",name:this.$t.__("Basic SEO",this.$td)},{slug:"title",name:this.$t.__("Title",this.$td)},{slug:"readability",name:this.$t.__("Readability",this.$td)}]}},computed:{parseTabs(){return this.tabs.map(t=>(t.errorCount=this.postEditorStore.currentPost.page_analysis.analysis[t.slug].errors,t))},pageBuilderAlert(){if(!mt()||!["elementor","divi"].includes(this.rootStore.aioseo.integration))return!1;const t=this.rootStore.aioseo.integration.charAt(0).toUpperCase()+this.rootStore.aioseo.integration.slice(1);return this.$t.sprintf(this.$t.__("We have detected that you are currently using the %1$s Page Builder. Please click %2$shere%3$s to use the %1$s editor for a most accurate result.",this.$td),t,'',"")}},methods:{processChangeTab(t){this.initTab=t}}},Fr={class:"page-analysis-panel"},qr=["innerHTML"];function zr(t,e,i,s,o,r){const u=a("core-alert"),c=a("core-main-tabs"),p=a("metaboxAnalysisDetail");return n(),f("div",Fr,[r.pageBuilderAlert?(n(),_(u,{key:0,type:"yellow"},{default:l(()=>[h("span",{innerHTML:r.pageBuilderAlert},null,8,qr)]),_:1})):g("",!0),d(c,{tabs:r.parseTabs,showSaveButton:!1,active:this.initTab,internal:"",onChanged:e[0]||(e[0]=S=>r.processChangeTab(S))},null,8,["tabs","active"]),d(at,{mode:"out-in"},{default:l(()=>[s.postEditorStore.currentPost.page_analysis?(n(),_(p,{key:0,analysisItems:s.postEditorStore.currentPost.page_analysis.analysis[this.initTab]},null,8,["analysisItems"])):g("",!0)]),_:1})])}const Wr=y(Gr,[["render",zr]]),jr={setup(){return{licenseStore:O(),postEditorStore:P(),hasRequiredFeature:gt.hasCoreFeature("general","cornerstone-content")}},components:{CoreAlert:K},emits:["changeTab"],data(){return{license:gt,strings:{description:this.$t.__("Cornerstone content refers to the most important and informative articles or pages on your website that serve as the foundation for your content strategy. AIOSEO uses cornerstone content for",this.$td),linkingRecommendations:this.$t.__("internal linking recommendations in Link Assistant.",this.$td),upsell:this.$t.sprintf(this.$t.__("Cornerstone Content is a %1$s feature. %2$s",this.$td),"PRO",this.$links.getUpsellLink("post-settings-general",this.$constants.GLOBAL_STRINGS.learnMore,"cornerstone-content",!0)),markAsCornerstone:this.$t.__("Mark as Cornerstone",this.$td)}}}},Yr={class:"cornerstone-content-panel"},Zr={class:"cornerstone-content-text"},Jr=["innerHTML"],Xr=["innerHTML"];function Qr(t,e,i,s,o,r){const u=a("base-toggle"),c=a("core-alert");return n(),f("div",Yr,[h("p",Zr,[h("span",null,m(o.strings.description),1),h("a",{href:"#",onClick:e[0]||(e[0]=H(p=>t.$emit("changeTab",{main:"linkAssistant",sub:"link-suggestions"}),["stop","prevent"]))},m(o.strings.linkingRecommendations),1),h("span",{innerHTML:this.$links.getDocLink(this.$constants.GLOBAL_STRINGS.learnMore,"cornerstoneContent",!0)},null,8,Jr)]),d(u,{modelValue:s.postEditorStore.currentPost.pillar_content,"onUpdate:modelValue":[e[1]||(e[1]=p=>s.postEditorStore.currentPost.pillar_content=p),e[2]||(e[2]=p=>s.postEditorStore.isDirty=!0)],disabled:!s.hasRequiredFeature},{default:l(()=>[w(m(o.strings.markAsCornerstone),1)]),_:1},8,["modelValue","disabled"]),s.licenseStore.isUnlicensed||!s.hasRequiredFeature?(n(),_(c,{key:0,class:"inline-upsell",type:"blue"},{default:l(()=>[h("div",{innerHTML:o.strings.upsell},null,8,Xr)]),_:1})):g("",!0)])}const tn=y(jr,[["render",Qr]]),en={setup(){const{strings:t}=me();return{licenseStore:O(),optionsStore:dt(),postEditorStore:P(),rootStore:Z(),seoPreviewStore:Ke(),settingsStore:Y(),tagsStore:Ge(),truSeoHighlighterStore:rt(),composableStrings:t}},emits:["changeTab"],mixins:[Ot,rs,Dt,_e,jo],components:{AdditionalKeyphrases:wi,AiGenerator:Ki,BaseRadioToggle:ye,CoreAlert:K,CoreGoogleSearchPreview:Bs,CoreHtmlTagsEditor:Kt,CoreSettingsRow:V,CoreSidebarCard:Yi,CoreTooltip:G,CoreProBadge:Os,FocusKeyphrase:Kr,MetaboxAnalysisDetail:yt,PageAnalysis:Wr,CornerstoneContent:tn,SvgCircleQuestionMark:Nt,SvgDesktop:os,SvgMobile:is,SvgPencil:ft},props:{disabled:{type:Boolean,default(){return!1}},parentComponentContext:String},data(){return{license:gt,allowed:W,separator:void 0,isPageBuilderEditor:pt,titleCount:0,descriptionCount:0,keywords:null,keyphrases:null,selectedKeyphrase:0,editSnippet:!1,truSeo:null,titleKey:"title0",descriptionKey:"description0",strings:de(this.composableStrings,{pageName:this.$t.__("General",this.$td),serpPreview:this.$t.__("SERP Preview",this.$td),serpPreviewDocumentation:this.$t.__("SERP: Search Engine Results Page preview. Your site's potential appearance in Google search results. Final display may vary, but this preview closely resembles it.",this.$td),editSnippet:this.$t.__("Edit Snippet",this.$td),clickToAddTitle:this.$t.__("Click on the tags below to insert variables into your title.",this.$td),metaDescription:this.$t.__("Meta Description",this.$td),clickToAddDescription:this.$t.__("Click on the tags below to insert variables into your meta description.",this.$td),cornerstoneContent:this.$t.__("Cornerstone Content",this.$td),focusKeyphrase:this.$t.__("Focus Keyphrase",this.$td),additionalKeyphrases:this.$t.__("Additional Keyphrases",this.$td),pageAnalysis:this.$t.__("Page Analysis",this.$td),basicSeo:this.$t.__("Basic SEO",this.$td),title:this.$t.__("Title",this.$td),readability:this.$t.__("Readability",this.$td),lookingForMetaKeywords:this.$t.__("Looking for meta keywords?",this.$td),goToAdvancedTab:this.$t.__("Go to the Advanced tab to add/edit meta keywords",this.$td),autogenerateDescriptionsAlert:this.$t.sprintf(this.$t.__("Warning: You have disabled Autogenerate Descriptions and are using the default description format. %1$s will not output a description unless you enter a custom one. You can enable Autogenerate Descriptions under %2$s.",this.$td),"AIOSEO",this.$links.getPlainLink(this.$t.__("Search Appearance > Advanced",this.$td),this.rootStore.aioseo.urls.aio.searchAppearance+"#/advanced")),keyphraseDocumentation:this.$t.sprintf(this.$t.__("Not sure what keyphrases are used for? Check out our documentation for more information. %1$s",this.$td),this.$links.getDocLink(this.$constants.GLOBAL_STRINGS.learnMore,"useKeyphrasesTooltip",!0))})}},watch:{"postEditorStore.currentPost.title"(){kt(()=>this.runAnalysis({postId:this.postEditorStore.currentPost.id}),750)},"postEditorStore.currentPost.description"(){kt(()=>this.runAnalysis({postId:this.postEditorStore.currentPost.id}),750)},"truSeoHighlighterStore.highlightSentences"(t,e){kt(()=>this.watchHighlightSentences(t,e))}},computed:{title(){return this.$t.sprintf(this.$t.__("%1$s Title",this.$td),this.postEditorStore.currentPost.type)},toggled:function(){return this.postEditorStore.currentPost.pillar_content===1},displayTruSeoMetaboxCard(){return Ct()&&this.$root._data.screenContext==="metabox"&&this.postEditorStore.currentPost.context==="post"&&this.postEditorStore.currentPost.postType!=="attachment"&&this.parentComponentContext!=="modal"&&W("aioseo_page_analysis")&&!this.postEditorStore.currentPost.isSpecialPage&&!this.isForum},displayTruSeoSidebarKeyphraseCard(){return Ct()&&this.$root._data.screenContext==="sidebar"&&this.parentComponentContext!=="modal"&&W("aioseo_page_analysis")&&!this.postEditorStore.currentPost.isSpecialPage&&!this.isForum},displayTruSeoSidebarAnalysisCard(){return Ct()&&this.$root._data.screenContext==="sidebar"&&this.postEditorStore.currentPost.page_analysis&&this.parentComponentContext!=="modal"&&W("aioseo_page_analysis")&&!this.postEditorStore.currentPost.isSpecialPage&&!this.isForum},isForum(){return this.rootStore.aioseo.data.isBBPressActive&&(this.postEditorStore.currentPost.postType==="forum"||this.postEditorStore.currentPost.postType==="topic"||this.postEditorStore.currentPost.postType==="reply")},focusKeyphraseScore(){return this.postEditorStore.currentPost.keyphrases.focus.keyphrase?this.postEditorStore.currentPost.keyphrases.focus.score:null},showAutogenerateDescriptionsAlert(){return this.optionsStore.internalOptions.internal.deprecatedOptions.includes("autogenerateDescriptions")?(this.postEditorStore.currentPost.context==="post"?this.optionsStore.dynamicOptions.searchAppearance.postTypes[this.postEditorStore.currentPost.postType].metaDescription:this.optionsStore.dynamicOptions.searchAppearance.taxonomies[this.postEditorStore.currentPost.termType].metaDescription)===this.postEditorStore.currentPost.description&&!this.optionsStore.options.deprecated.searchAppearance.advanced.autogenerateDescriptions:!1}},methods:{hideKeywordsLooking(){this.optionsStore.options.searchAppearance.advanced.keywordsLooking=!1,this.optionsStore.saveChanges()},isMobilePreviewEv(t){this.postEditorStore.changeGeneralPreview(t)},editSnippetEv(){this.editSnippet=!this.editSnippet,this.settingsStore.changeTabSettings({setting:"modal",value:"general"}),this.postEditorStore.currentPost.modalOpen=!0},getDefaultTags(t){switch(t){case"title":return this.postEditorStore.currentPost.context==="post"?["post_title","separator_sa","site_title"]:["taxonomy_title","separator_sa","site_title"];case"description":return this.postEditorStore.currentPost.context==="post"?this.postEditorStore.currentPost.postType==="attachment"?["attachment_caption","separator_sa","site_title"]:this.postEditorStore.currentPost.postType==="product"?["post_excerpt","post_content"]:["post_excerpt","post_content","separator_sa"]:["taxonomy_title","separator_sa","taxonomy_description"]}}},mounted(){this.keyphrases=this.postEditorStore.currentPost.keyphrases,this.postEditorStore.currentPost.context==="post"&&!this.postEditorStore.currentPost.keyphrases.length&&(this.selectedKeyphrase=-1),window.aioseoBus.$on("updateTitleKey",()=>{this.titleKey="title"+Math.random(0,999)}),window.aioseoBus.$on("updateDescriptionKey",()=>{this.descriptionKey="description"+Math.random(0,999)})}},sn={class:"aioseo-tab-content aioseo-post-general"},on=["innerHTML"],rn=["innerHTML"],nn=["innerHTML"],an={key:4},ln=["innerHTML"],dn=["innerHTML"];function cn(t,e,i,s,o,r){const u=a("svg-circle-question-mark"),c=a("core-tooltip"),p=a("svg-desktop"),S=a("svg-mobile"),C=a("base-radio-toggle"),$=a("core-google-search-preview"),v=a("svg-pencil"),b=a("base-button"),k=a("core-settings-row"),M=a("ai-generator"),L=a("core-html-tags-editor"),Q=a("core-alert"),bt=a("core-pro-badge"),ct=a("cornerstone-content"),T=a("focus-keyphrase"),I=a("additional-keyphrases"),ht=a("page-analysis"),tt=a("core-sidebar-card"),vt=a("metabox-analysis-detail");return n(),f("div",sn,[o.allowed("aioseo_page_general_settings")?(n(),_(k,{key:0,class:"snippet-preview-row","no-right-max-width":""},{name:l(()=>[h("div",null,[h("span",null,m(o.strings.serpPreview),1),d(c,{offset:t.$root._data.screenContext==="sidebar"&&i.parentComponentContext==="metabox"?"10px,0":"50px,0",placement:"bottom"},{tooltip:l(()=>[w(m(o.strings.serpPreviewDocumentation),1)]),default:l(()=>[d(u)]),_:1},8,["offset"])]),t.$root._data.screenContext==="metabox"||i.parentComponentContext==="modal"?(n(),_(C,{key:0,modelValue:s.postEditorStore.currentPost.generalMobilePrev,"onUpdate:modelValue":r.isMobilePreviewEv,name:"previewGeneralIsMobile",class:"circle",options:[{label:"desktop",value:!1,activeClass:"dark",slot:"desktop"},{label:"mobile",value:!0,slot:"mobile"}]},{desktop:l(()=>[d(p)]),mobile:l(()=>[d(S)]),_:1},8,["modelValue","onUpdate:modelValue"])):g("",!0)]),content:l(()=>{var x,zt,Wt;return[d($,{"focus-keyphrase":((Wt=(zt=(x=s.postEditorStore.currentPost)==null?void 0:x.keyphrases)==null?void 0:zt.focus)==null?void 0:Wt.keyphrase)??"",device:t.$root._data.screenContext==="sidebar"&&i.parentComponentContext==="metabox"||s.postEditorStore.currentPost.generalMobilePrev?"mobile":"desktop",url:s.tagsStore.liveTags.permalink,title:t.parseTags(s.postEditorStore.currentPost.title||s.postEditorStore.currentPost.tags.title||"#post_title #separator_sa #site_title"),description:t.parseTags(s.postEditorStore.currentPost.description||s.postEditorStore.currentPost.tags.description||"#post_content"),"rich-results":s.seoPreviewStore.richResults},null,8,["focus-keyphrase","device","url","title","description","rich-results"]),t.$root._data.screenContext==="sidebar"&&i.parentComponentContext!=="modal"?(n(),_(b,{key:0,class:"edit-snippet gray small",onClick:r.editSnippetEv},{default:l(()=>[d(v),w(" "+m(o.strings.editSnippet),1)]),_:1},8,["onClick"])):g("",!0)]}),_:1})):g("",!0),(t.$root._data.screenContext==="metabox"||i.parentComponentContext==="modal")&&o.allowed("aioseo_page_general_settings")?(n(),_(k,{id:"aioseo-post-settings-post-title-row",class:"snippet-title-row",name:r.title,key:o.titleKey},{content:l(()=>[d(L,{modelValue:s.postEditorStore.currentPost.title,"onUpdate:modelValue":[e[0]||(e[0]=x=>s.postEditorStore.currentPost.title=x),e[2]||(e[2]=x=>s.postEditorStore.isDirty=!0)],"line-numbers":!1,single:"",onCounter:e[1]||(e[1]=x=>t.updateCount(x,"titleCount")),"tags-context":`${s.postEditorStore.currentPost.postType||s.postEditorStore.currentPost.termType}Title`,defaultMenuOrientation:i.parentComponentContext==="modal"?"top":"bottom","default-tags":r.getDefaultTags("title")},{"tags-description":l(()=>[w(m(o.strings.clickToAddTitle),1)]),"append-button":l(()=>[s.postEditorStore.currentPost.postType&&!o.isPageBuilderEditor()?(n(),_(M,{key:0,type:"title"})):g("",!0)]),_:1},8,["modelValue","tags-context","defaultMenuOrientation","default-tags"]),h("div",{class:"max-recommended-count",innerHTML:t.maxRecommendedCount(o.titleCount,60)},null,8,on)]),_:1},8,["name"])):g("",!0),(t.$root._data.screenContext==="metabox"||i.parentComponentContext==="modal")&&o.allowed("aioseo_page_general_settings")?(n(),_(k,{id:"aioseo-post-settings-meta-description-row",class:"snippet-description-row",name:o.strings.metaDescription,key:o.descriptionKey},{content:l(()=>[r.showAutogenerateDescriptionsAlert?(n(),_(Q,{key:0,type:"yellow"},{default:l(()=>[h("span",{innerHTML:o.strings.autogenerateDescriptionsAlert},null,8,rn)]),_:1})):g("",!0),d(L,{modelValue:s.postEditorStore.currentPost.description,"onUpdate:modelValue":[e[3]||(e[3]=x=>s.postEditorStore.currentPost.description=x),e[5]||(e[5]=x=>s.postEditorStore.isDirty=!0)],"line-numbers":!1,description:"",onCounter:e[4]||(e[4]=x=>t.updateCount(x,"descriptionCount")),"tags-context":`${s.postEditorStore.currentPost.postType||s.postEditorStore.currentPost.termType}Description`,defaultMenuOrientation:i.parentComponentContext==="modal"?"top":"bottom","default-tags":r.getDefaultTags("description")},{"tags-description":l(()=>[w(m(o.strings.clickToAddDescription),1)]),"append-button":l(()=>[s.postEditorStore.currentPost.postType&&!o.isPageBuilderEditor()?(n(),_(M,{key:0,type:"description"})):g("",!0)]),_:1},8,["modelValue","tags-context","defaultMenuOrientation","default-tags"]),h("div",{class:"max-recommended-count",innerHTML:t.maxRecommendedCount(o.descriptionCount,160)},null,8,nn)]),_:1},8,["name"])):g("",!0),t.$root._data.screenContext==="metabox"&&s.postEditorStore.currentPost.context==="post"&&s.postEditorStore.currentPost.postType!=="attachment"&&!o.isPageBuilderEditor()?(n(),_(k,{key:3,id:"aioseo-post-settings-cornerstone-content-row",class:"cornerstone-content-row"},{name:l(()=>[w(m(o.strings.cornerstoneContent)+" ",1),s.licenseStore.isUnlicensed?(n(),_(bt,{key:0})):g("",!0)]),content:l(()=>[d(ct,{onChangeTab:e[6]||(e[6]=x=>t.$emit("changeTab",x))})]),_:1})):g("",!0),r.displayTruSeoMetaboxCard&&s.optionsStore.options.searchAppearance.advanced.useKeywords&&s.optionsStore.options.searchAppearance.advanced.keywordsLooking?(n(),f("div",an,[d(Q,{class:"meta-keywords-alert",type:"blue","show-close":"",onCloseAlert:r.hideKeywordsLooking},{default:l(()=>[w(m(o.strings.lookingForMetaKeywords)+" ",1),h("a",{href:"#",onClick:e[7]||(e[7]=H(x=>t.$emit("changeTab","advanced"),["prevent"]))},m(o.strings.goToAdvancedTab),1),h("a",{class:"no-underline",href:"#",onClick:e[8]||(e[8]=H(x=>t.$emit("changeTab","advanced"),["prevent"]))}," → ")]),_:1},8,["onCloseAlert"])])):g("",!0),r.displayTruSeoMetaboxCard?(n(),_(k,{key:5,id:"aioseo-post-settings-snippet-focus-keyphrase-row",class:"snippet-focus-keyphrase-row",align:""},{name:l(()=>[h("span",null,m(o.strings.focusKeyphrase),1),d(c,{offset:"25px,0"},{tooltip:l(()=>[h("div",{innerHTML:o.strings.keyphraseDocumentation},null,8,ln)]),default:l(()=>[d(u)]),_:1})]),content:l(()=>[d(T)]),_:1})):g("",!0),r.displayTruSeoMetaboxCard?(n(),_(k,{key:6,name:o.strings.additionalKeyphrases,class:"snippet-additional-keyphrases-row"},{content:l(()=>[d(I)]),_:1},8,["name"])):g("",!0),r.displayTruSeoMetaboxCard&&s.postEditorStore.currentPost.page_analysis?(n(),_(k,{key:7,name:o.strings.pageAnalysis,class:"snippet-page-analysis-row",align:""},{content:l(()=>[d(ht)]),_:1},8,["name"])):g("",!0),t.$root._data.screenContext==="sidebar"&&!o.isPageBuilderEditor()&&this.parentComponentContext!=="modal"?(n(),_(tt,{key:8,class:"card-cornerstone-content",slug:"cornerstoneContent","header-text":o.strings.cornerstoneContent},{default:l(()=>[d(ct,{onChangeTab:e[9]||(e[9]=x=>t.$emit("changeTab",x))})]),_:1},8,["header-text"])):g("",!0),r.displayTruSeoSidebarKeyphraseCard?(n(),_(tt,{key:9,slug:"focus",focusScore:r.focusKeyphraseScore,class:"card-focus-keyphrase"},{header:l(()=>[h("span",null,m(o.strings.focusKeyphrase),1),d(c,{offset:o.isPageBuilderEditor()?"35px,0":"0,0"},{tooltip:l(()=>[h("div",{innerHTML:o.strings.keyphraseDocumentation},null,8,dn)]),default:l(()=>[d(u)]),_:1},8,["offset"])]),default:l(()=>[d(T)]),_:1},8,["focusScore"])):g("",!0),r.displayTruSeoSidebarKeyphraseCard?(n(),_(tt,{key:10,slug:"additional","header-text":o.strings.additionalKeyphrases,class:"card-additional-keyphrase"},{default:l(()=>[d(I)]),_:1},8,["header-text"])):g("",!0),r.displayTruSeoSidebarAnalysisCard?(n(),_(tt,{key:11,slug:"basicseo","header-text":o.strings.basicSeo,trueSeoScore:s.postEditorStore.currentPost.page_analysis.analysis.basic.errors,class:"card-basic-seo"},{default:l(()=>[d(vt,{analysisItems:s.postEditorStore.currentPost.page_analysis.analysis.basic},null,8,["analysisItems"])]),_:1},8,["header-text","trueSeoScore"])):g("",!0),r.displayTruSeoSidebarAnalysisCard?(n(),_(tt,{key:12,slug:"title","header-text":o.strings.title,trueSeoScore:s.postEditorStore.currentPost.page_analysis.analysis.title.errors,class:"card-title-seo"},{default:l(()=>[d(vt,{analysisItems:s.postEditorStore.currentPost.page_analysis.analysis.title},null,8,["analysisItems"])]),_:1},8,["header-text","trueSeoScore"])):g("",!0),r.displayTruSeoSidebarAnalysisCard?(n(),_(tt,{key:13,slug:"readability","header-text":o.strings.readability,trueSeoScore:s.postEditorStore.currentPost.page_analysis.analysis.readability.errors,class:"card-readability-seo"},{default:l(()=>[d(vt,{analysisItems:s.postEditorStore.currentPost.page_analysis.analysis.readability},null,8,["analysisItems"])]),_:1},8,["header-text","trueSeoScore"])):g("",!0)])}const He=y(en,[["render",cn]]),hn={},un={viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"aioseo-right-arrow-short"},pn=h("path",{d:"M8 0L6.59 1.41L12.17 7H0V9H12.17L6.59 14.59L8 16L16 8L8 0Z",fill:"currentColor"},null,-1),gn=[pn];function mn(t,e){return n(),f("svg",un,gn)}const Ft=y(hn,[["render",mn]]),_n={setup(){return{postEditorStore:P()}},components:{CoreSettingsRow:V,SvgRightArrowShort:Ft},data(){return{strings:{title:this.$t.__("Link Assistant",this.$td),description:this.$t.__("Here you can view an overview of your existing links as well as find suggestions for new internal links. Click on the button below to view the Link Assistant panel.",this.$td),button:this.$t.__("Open Link Assistant",this.$td)}}}},fn={class:"aioseo-link-assistant-sidebar"},Sn={class:"aioseo-sidebar-content-title"};function yn(t,e,i,s,o,r){const u=a("svg-right-arrow-short"),c=a("base-button"),p=a("core-settings-row");return n(),f("div",fn,[t.$root._data.screenContext==="sidebar"?(n(),_(p,{key:0,class:"snippet-description-row open-link-assistant-copy"},{content:l(()=>[h("div",Sn,m(o.strings.title),1),h("p",null,m(o.strings.description),1),d(c,{class:"open-link-assistant-modal gray small",onClick:e[0]||(e[0]=S=>s.postEditorStore.currentPost.linkAssistant.modalOpen=!0)},{default:l(()=>[d(u),w(" "+m(o.strings.button),1)]),_:1})]),_:1})):g("",!0)])}const bn=y(_n,[["render",yn]]),N="all-in-one-seo-pack",vn=()=>{const t={frontPage:D("Front Page",N),deleteLink:D("Delete Link",N)},e={areYouSureSingle:D("Are you sure you want to delete this link?",N),areYouSureMultiple:D("Are you sure you want to delete these links?",N),areYouSureAll:D("Are you sure you want to delete all links?",N),actionCannotBeUndone:D("This action cannot be undone.",N),yesSingle:D("Yes, I want to delete this link",N),yesMultiple:D("Yes, I want to delete these links",N),yesAll:D("Yes, I want to delete all links",N),noChangedMind:D("No, I changed my mind",N)};return{bulkOptions:[{label:D("Delete",N),value:"delete"}],modalStrings:e,strings:t}},kn={methods:{findTargetBlock(t,e){const i=X(e);let s=null;return t.forEach(o=>{if(s||!o.attributes)return;if(o.attributes.content&&o.attributes.content.search(i)!==-1){s=o.clientId;return}if(!o.innerBlocks)return;const r=this.findTargetBlock(o.innerBlocks,e);r&&(s=r)}),s}}},wn={emits:["updatingLinks","linksUpdated"],mixins:[kn],props:{post:{type:Object,required:!0},postIndex:{type:Number,required:!1},postId:{type:Number,required:!1},linksReport:{type:Boolean,default(){return!1}},postReport:{type:Boolean,default(){return!1}},metabox:{type:Boolean,default(){return!1}}},beforeMount(){window.aioseoBus.$on("updatingLinks",e=>{this.wpTableLoading=e});const t=ot();this.pageNumber=this.linkType?t.postReport[this.linkType].totals.page:1},data(){return{changeItemsPerPageSlug:"linkAssistantPostsReport",action:"",showModal:!1,selectedRows:[]}},computed:{rows(){if(!this.metabox)return this.post.links[this.linkType].rows;const t=this.pageNumber===1?0:(this.pageNumber-1)*10;return this.post.links[this.linkType].rows.slice(t,t+10)}},methods:{fetchData(t){const e=P();window.aioseoBus.$emit("updatingLinks",!0);const i={...t,additionalFilters:{postId:this.post.ID||e.currentPost.id,postIndex:this.postIndex,type:this.linkType}},s=ot(),o=this.postReport?"fetchPostReport":"fetchLinksReportInner";return s[o](i).finally(()=>{window.aioseoBus.$emit("updatingLinks",!1)})},openPostReport(t){window.location.href=`#/post-report?postId=${this.postId}&postIndex=${this.postIndex}&initialTab=${t}`},maybeDoBulkAction({action:t,selectedRows:e}){!e.length||!t||(this.action=t,this.selectedRows=e,this.showModal=!0)},doBulkAction(){if(this.showModal=!1,this.selectedRows===!1||typeof this.selectedRows>"u"||!this.selectedRows.length)return;if(typeof this.selectedRows=="number"){this.doDeleteLink(this.selectedRows);return}if(this.metabox&&this.linkType!=="inboundInternal"){this.idsToIndexes(this.selectedRows).forEach(s=>{this.editorRemoveLink(s)});return}window.aioseoBus.$emit("updatingLinks",!0);const t=ot(),e=P();t.linksBulk({postIndex:this.postIndex,postId:this.post.ID||e.currentPost.id,action:this.action,linkType:this.linkType,linkIds:this.selectedRows,linksReport:this.linksReport,postReport:this.postReport}).finally(()=>{window.aioseoBus.$emit("updatingLinks",!1),this.$emit("linksUpdated"),this.refreshTable()})},doDeleteLink(t){const e=this.post.links[this.linkType].rows[t].id;if(!e)return;if(this.metabox&&this.linkType!=="inboundInternal"){this.editorRemoveLink(t);return}window.aioseoBus.$emit("updatingLinks",!0);const i=ot(),s=P();i.linkDelete({postIndex:this.postIndex,postId:this.post.ID||s.currentPost.id,linkId:e,linksReport:this.linksReport,postReport:this.postReport}).finally(()=>{window.aioseoBus.$emit("updatingLinks",!1),this.$emit("linksUpdated"),this.refreshTable()})},editorRemoveLink(t){mt()&&(window.aioseoBus.$emit("updatingLinks",!1),this.blockEditorRemoveLink(t),window.aioseoBus.$emit("updatingLinks",!1)),le()&&this.classicEditorRemoveLink(t)},blockEditorRemoveLink(t){const i=P().currentPost.linkAssistant.links[this.linkType].rows[t];if(!i)return;window.aioseoBus.$emit("updatingLinks",!0);const s=X(i.anchor.trim()),o=i.phrase_html.trim(),r=X(o),u=window.wp.data.select("core/block-editor").getBlocks(),c=this.findTargetBlock(u,o);if(!c){window.aioseoBus.$emit("updatingLinks",!1);return}const p=window.wp.data.select("core/block-editor").getBlock(c);if(!p){window.aioseoBus.$emit("updatingLinks",!1);return}let S=new RegExp(`(]*>)(.*)?(${s})(.*)?(]*>)`,"i");const C=o.replace(S,"$2$3$4");S=new RegExp(`${r}`,"i"),window.wp.data.dispatch("core/block-editor").updateBlockAttributes(c,{content:p.attributes.content.replace(S,C)}).then(()=>{this.post.links[this.linkType].rows.splice(t,1)}).catch($=>{console.error(`Couldn delete link with type "${this.linkType}" and index ${t}:`,$)}).finally(()=>{window.aioseoBus.$emit("updatingLinks",!1),this.$emit("linksUpdated")})},classicEditorRemoveLink(t){var v;const i=P().currentPost.linkAssistant.links[this.linkType].rows[t];if(!i||!window.tinyMCE)return;window.aioseoBus.$emit("updatingLinks",!0);let s="",o=null,r=null;if(document.querySelector("#wp-content-wrap.tmce-active")?(o=window.tinyMCE.get("content"),s=o.getContent({format:"raw"})):(r=document.querySelector("textarea#content"),s=r?r.value:""),!s){window.aioseoBus.$emit("updatingLinks",!1);return}let u=i.phrase_html.trim();o||(u=u.replace(/(\sdata-mce-href=".*")/gi,""));const c=X(i.anchor.trim());let p=new RegExp(`(]*>)(.*)?(${c})(.*)?(]*>)`,"i");const S=u.replace(p,"$2$3$4"),C=X(u);p=new RegExp(`${C}`,"i"),s=s.replace(p,S),o?o.setContent(s):r.value=s,this.post.links[this.linkType].rows.splice(t,1),(v=ot().postSettingsUpdate({postContent:s}))==null||v.finally(()=>{window.aioseoBus.$emit("updatingLinks",!1),this.$emit("linksUpdated")})},idsToIndexes(t){let e,i=[];return Array.isArray(t)&&(e=t.map(Number)),e&&this.post.links[this.linkType].rows.forEach((s,o)=>{e.includes(s.id)&&i.push(o)}),t==="all"&&(i=this.post.links[this.linkType].rows.map((s,o)=>o)),i.sort(function(s,o){return o-s})}}},Cn={emits:["closeModal","doBulkAction"],components:{CoreModal:J,SvgClose:It},props:{selectedRows:{required:!0},strings:{type:Object,required:!0},show:Boolean},computed:{areYouSure(){return this.selectedRows==="all"?this.strings.areYouSureAll:Array.isArray(this.selectedRows)&&1t.$emit("closeModal",!0))},{body:l(()=>[h("div",$n,[h("button",{class:"close",onClick:e[1]||(e[1]=H(S=>t.$emit("closeModal",!0),["stop"]))},[d(u,{onClick:e[0]||(e[0]=S=>t.$emit("closeModal",!0))})]),h("h3",null,m(r.areYouSure),1),h("div",{class:"reset-description",innerHTML:i.strings.actionCannotBeUndone},null,8,Pn),d(c,{type:"blue",size:"medium",onClick:e[2]||(e[2]=S=>t.$emit("doBulkAction",S))},{default:l(()=>[w(m(r.confirmation),1)]),_:1}),d(c,{type:"gray",size:"medium",onClick:e[3]||(e[3]=S=>t.$emit("closeModal",!0))},{default:l(()=>[w(m(i.strings.noChangedMind),1)]),_:1})])]),_:1},8,["show"])}const Tn=y(Cn,[["render",En]]),xn={components:{CoreTooltip:G},props:{phrase:{type:String,required:!0},phraseHtml:{type:String,required:!0},anchor:{type:String,required:!0},url:{type:String,required:!0},tooltip:{type:Boolean,required:!1,default:!0},clickableAnchor:{type:Boolean,default(){return!1}}},computed:{partPattern(){const t=this.decodeHtmlEntities(this.anchor),e=X(t);return new RegExp(`(.*)(]*>.*${e}.*)(.*)`,"i")},firstPart(){return this.decodeHtmlEntities(this.stripTags(this.getPart(1)).trimStart())},linkAnchor(){return this.decodeHtmlEntities(this.stripTags(this.getPart(2)))},lastPart(){return this.decodeHtmlEntities(this.stripTags(this.getPart(3)).trimEnd())}},methods:{getPart(t){const i=this.decodeHtmlEntities(this.stripTags(this.phraseHtml,!0)).match(this.partPattern);return i?i[t]:""},stripTags(t,e=!1){return t=t.replace(//gi," "),e?t.replace(/<(?!a\s)(?!\/a)[^>]*>/gi,""):t.replace(/<[^>]*>/gi,"")},maybeOpenLink(){this.clickableAnchor&&window.open(this.url,"_blank").focus()},decodeHtmlEntities(t){const e=document.createElement("textarea");return e.innerHTML=t,e.value}}},An={class:"phrase"},Ln={key:0,class:"first"},Mn=["href"],Hn={key:2},In={class:"anchor"},Bn={key:3,class:"last"};function Rn(t,e,i,s,o,r){const u=a("core-tooltip");return n(),f("div",{class:"aioseo-link-assistant-phrase",onMouseover:e[1]||(e[1]=c=>t.$emit("mouseOver")),onMouseleave:e[2]||(e[2]=c=>t.$emit("mouseLeave"))},[h("span",An,[r.firstPart?(n(),f("span",Ln,m(r.firstPart),1)):g("",!0),i.tooltip?(n(),_(u,{key:1,type:"action"},{tooltip:l(()=>[h("a",{class:"tooltip-url",href:i.url,target:"_blank"},m(i.url),9,Mn)]),default:l(()=>[h("span",{class:"anchor",onClick:e[0]||(e[0]=(...c)=>r.maybeOpenLink&&r.maybeOpenLink(...c))},m(r.linkAnchor),1)]),_:1})):g("",!0),i.tooltip?g("",!0):(n(),f("div",Hn,[h("span",In,m(r.linkAnchor),1)])),r.lastPart?(n(),f("span",Bn,m(r.lastPart),1)):g("",!0)]),q(t.$slots,"icons")],32)}const On=y(xn,[["render",Rn]]),Dn={},Nn={viewBox:"0 0 17 10",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"aioseo-link-suggestion"},Vn=h("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M7.66699 7.43742H4.33366C2.95866 7.43742 1.83366 6.31242 1.83366 4.93742C1.83366 3.56242 2.95866 2.43742 4.33366 2.43742H7.66699V0.770752H4.33366C2.03366 0.770752 0.166992 2.63742 0.166992 4.93742C0.166992 7.23742 2.03366 9.10408 4.33366 9.10408H7.66699V7.43742ZM12.667 0.770752H9.33366V2.43742H12.667C14.042 2.43742 15.167 3.56242 15.167 4.93742C15.167 6.31242 14.042 7.43742 12.667 7.43742H9.33366V9.10408H12.667C14.967 9.10408 16.8337 7.23742 16.8337 4.93742C16.8337 2.63742 14.967 0.770752 12.667 0.770752ZM11.8337 4.10409H5.16699V5.77075H11.8337V4.10409Z",fill:"currentColor"},null,-1),Un=[Vn];function Kn(t,e){return n(),f("svg",Nn,Un)}const qt=y(Dn,[["render",Kn]]),Gn={setup(){const{strings:t,modalStrings:e,bulkOptions:i}=vn();return{rootStore:Z(),settingsStore:Y(),composableStrings:t,bulkOptions:i,modalStrings:e}},emits:["openSuggestions"],components:{CoreTooltip:G,CoreWpTable:Ns,LinkAssistantConfirmationModal:Tn,LinkAssistantPhrase:On,SvgLinkExternal:ke,SvgLinkSuggestion:qt,SvgTrash:St},mixins:[wn,Vs,Ds],data(){return{tableId:"aioseo-post-report-inbound-internal",linkType:"inboundInternal",strings:de(this.composableStrings,{deleteAllLinks:this.$t.sprintf(this.$t.__("Delete All %1$s Links",this.$td),this.$t.__("Inbound Internal",this.$td)),outboundSuggestions:this.$t.sprintf(this.$t.__("%1$s Link Suggestions",this.$td),this.$t.__("Inbound",this.$td))})}},computed:{columns(){return[{slug:"post_title",label:this.$t.__("Post Title",this.$td)},{slug:"phrase",label:this.$t.__("Phrase",this.$td)},{slug:"delete",width:"50px"}]},seeAllLinks(){return this.$t.sprintf(this.$t.__("See All %1$s %2$s Links",this.$td),this.post.links.inboundInternal.totals.total,this.$t.__("Inbound Internal",this.$td))}},methods:{processPagination(t){this.pageNumber=t,!this.metabox&&(this.wpTableLoading=!0,this.processFetchTableData().then(()=>this.wpTableLoading=!1))}}},Fn={key:0},qn={key:0,class:"row-actions"},zn={class:"view"},Wn=["href"],jn={class:"edit"},Yn=["href"],Zn={key:0,class:"links-bottom"},Jn={class:"links-bottom-left"},Xn={key:1},Qn={class:"links-bottom-right"};function ta(t,e,i,s,o,r){const u=a("link-assistant-phrase"),c=a("svg-trash"),p=a("core-tooltip"),S=a("core-wp-table"),C=a("svg-link-suggestion"),$=a("base-button"),v=a("svg-link-external"),b=a("link-assistant-confirmation-modal");return n(),f("div",null,[(n(),_(S,{id:o.tableId,key:t.wpTableKey,class:E({"link-assistant-inner-table":!t.postReport}),columns:r.columns,loading:t.wpTableLoading,rows:t.rows,totals:t.post.links.inboundInternal.totals,"bulk-options":s.bulkOptions,"initial-items-per-page":s.settingsStore.settings.tablePagination.linkAssistantPostsReport,"initial-page-number":t.pageNumber,"show-pagination":!t.linksReport,"show-search":!1,"show-table-footer":t.postReport,"show-items-per-page":"",onPaginate:r.processPagination,onProcessBulkAction:t.maybeDoBulkAction,onProcessChangeItemsPerPage:t.processChangeItemsPerPage},{post_title:l(({row:k})=>{var M,L;return[h("span",null,[w(m(k.context.postTitle)+" ",1),((L=(M=k.context)==null?void 0:M.permalink)==null?void 0:L.replace(/\/$/,""))===s.rootStore.aioseo.urls.home?(n(),f("span",Fn,"("+m(o.strings.frontPage)+")",1)):g("",!0)]),k.context?(n(),f("div",qn,[h("span",zn,[h("a",{href:k.context.permalink,target:"_blank"},m(t.viewPost(k.context.postType.singular)),9,Wn),w(" | ")]),h("span",jn,[h("a",{href:k.context.editLink,target:"_blank"},m(t.editPost(k.context.postType.singular)),9,Yn)])])):g("",!0)]}),phrase:l(({row:k})=>[d(u,{phrase:k.phrase,phraseHtml:k.phrase_html||"",anchor:k.anchor,url:k.url,clickableAnchor:!0},null,8,["phrase","phraseHtml","anchor","url"])]),delete:l(({index:k})=>[d(p,{type:"action"},{tooltip:l(()=>[w(m(o.strings.deleteLink),1)]),default:l(()=>[d(c,{onClick:M=>t.maybeDoBulkAction({action:"delete",selectedRows:k})},null,8,["onClick"])]),_:2},1024)]),_:1},8,["id","class","columns","loading","rows","totals","bulk-options","initial-items-per-page","initial-page-number","show-pagination","show-table-footer","onPaginate","onProcessBulkAction","onProcessChangeItemsPerPage"])),t.postReport?g("",!0):(n(),f("div",Zn,[h("div",Jn,[t.post.links.inboundInternal.rows.length?(n(),_($,{key:0,type:"blue",tag:"button",onClick:e[0]||(e[0]=k=>t.$emit("openSuggestions"))},{default:l(()=>[d(C),w(" "+m(o.strings.outboundSuggestions),1)]),_:1})):g("",!0),t.post.links.inboundInternal.totals.total>5&&t.linksReport?(n(),f("div",Xn,[d(v),h("a",{class:"link-view",href:"#",onClick:e[1]||(e[1]=H(k=>t.openPostReport("inbound-internal"),["prevent"]))},m(r.seeAllLinks),1)])):g("",!0)]),h("div",Qn,[t.post.links.inboundInternal.rows.length?(n(),f("a",{key:0,class:"link-delete",onClick:e[2]||(e[2]=H(k=>t.maybeDoBulkAction({action:"delete",selectedRows:"all"}),["prevent"]))},m(o.strings.deleteAllLinks),1)):g("",!0)])])),d(b,{show:t.showModal,selectedRows:t.selectedRows,strings:s.modalStrings,onDoBulkAction:t.doBulkAction,onCloseModal:e[3]||(e[3]=k=>t.showModal=!1)},null,8,["show","selectedRows","strings","onDoBulkAction"])])}const ea=y(Gn,[["render",ta]]),sa={setup(){return{licenseStore:O(),postEditorStore:P()}},components:{CoreAlert:K,CoreBlur:Gt,CoreMainTabs:st,CoreModal:J,Cta:ve,LinkAssistantInboundInternal:ea,LinksSideBar:bn,SvgLinkAffiliate:Us,SvgLinkExternal:ke,SvgLinkInternalInbound:Ks,SvgLinkInternalOutbound:Gs,SvgLinkSuggestion:qt,RequiredPlans:Fs},props:{parentComponentContext:String},data(){return{activeTab:"inbound-internal",activeSuggestionTab:"suggestions-inbound",mockedPostData:{links:{inboundInternal:{rows:[{phrase:"Are you looking for an easy way to do an SEO analysis for your website?",anchor:"SEO analysis",url:"#",context:{postTitle:"How to Perform an SEO Analysis on Your WordPress Website",permalink:"#",editLink:"#",postType:{singular:"Post"}}},{phrase:"AIOSEO also allows you to create video sitemaps and comes with tons of different SEO tools.",anchor:"video sitemaps",url:"#",context:{postTitle:"How to Create WordPress Image Sitemap",permalink:"#",editLink:"#",postType:{singular:"Post"}}},{phrase:"You may also want to check out how to name your image files for SEO in WordPress and write alt text for images.",anchor:"how to name your image files for SEO in WordPress",url:"#",context:{postTitle:"What’s the Best Image Format for Your Website?",permalink:"#",editLink:"#",postType:{singular:"Post"}}},{phrase:"Are you looking for an easy way to do an SEO analysis for your website?",anchor:"SEO analysis",url:"#",context:{postTitle:"How to Perform an SEO Analysis on Your WordPress Website",permalink:"#",editLink:"#",postType:{singular:"Post"}}},{phrase:"To learn more, please check out our post on image SEO: how to best optimize your images in WordPress. ",anchor:"image SEO",url:"#",context:{postTitle:"How to Write Alt Text for Images for SEO",permalink:"#",editLink:"#",postType:{singular:"Post"}}},{phrase:"So let’s now move on to showing you exactly how easy it is to import and export redirects using the best redirect plugin for WordPress.",anchor:"best redirect plugin for WordPress",url:"#",context:{postTitle:"How to Easily Import and Export Redirects in WordPress",permalink:"#",editLink:"#",postType:{singular:"Post"}}}],totals:{total:6}},outboundInternal:{totals:{total:12}},affiliate:{totals:{total:8}},external:{totals:{total:24}},suggestionsInbound:{totals:{total:9}},suggestionsOutbound:{totals:{total:9}}}},strings:{ctaButtonText:this.$t.__("Unlock Link Assistant",this.$td),ctaHeader:this.$t.sprintf(this.$t.__("Link Assistant is a %1$s Feature",this.$td),"PRO"),linkAssistantDescription:this.$t.__("Get relevant suggestions for adding internal links to all your content as well as finding any orphaned posts that have no internal links.",this.$td),thisFeatureRequires:this.$t.__("This feature requires one of the following plans:",this.$td),linkOpportunities:this.$t.__("Actionable Link Suggestions",this.$td),orphanedPosts:this.$t.__("See Orphaned Posts",this.$td),affiliateLinks:this.$t.__("See Affiliate Links",this.$td),domainReports:this.$t.__("Top Domain Reports",this.$td)}}},computed:{initialTab(){return"inbound-internal"},tabs(){return[{slug:"inbound-internal",icon:"svg-link-internal-inbound",name:this.$t.sprintf("%1$s %2$s",this.mockedPostData.links.inboundInternal.totals.total,this.$t.__("Inbound Internal",this.$td))},{slug:"outbound-internal",icon:"svg-link-internal-outbound",name:this.$t.sprintf("%1$s %2$s",this.mockedPostData.links.outboundInternal.totals.total,this.$t.__("Outbound Internal",this.$td))},{slug:"affiliate",icon:"svg-link-affiliate",name:this.$t.sprintf("%1$s %2$s",this.mockedPostData.links.affiliate.totals.total,this.$t.__("Affiliate",this.$td))},{slug:"external",icon:"svg-link-external",name:this.$t.sprintf("%1$s %2$s",this.mockedPostData.links.external.totals.total,this.$t.__("External",this.$td))},{slug:"link-suggestions",icon:"svg-link-suggestion",name:this.$t.sprintf("%1$s %2$s",this.mockedPostData.links.suggestionsOutbound.totals.total+this.mockedPostData.links.suggestionsInbound.totals.total,this.$t.__("Link Suggestions",this.$td))}]},modalHeader(){return this.$t.sprintf(this.$t.__('Links & Suggestions for "%1$s"',this.$td),window.wp.data.select("core/editor").getEditedPostAttribute("title"))}}},oa={class:"aioseo-tab-content aioseo-link-assistant"},ia={key:0};function ra(t,e,i,s,o,r){const u=a("core-main-tabs"),c=a("link-assistant-inbound-internal"),p=a("core-blur"),S=a("required-plans"),C=a("cta"),$=a("core-modal"),v=a("links-side-bar");return n(),f("div",oa,[t.$root._data.screenContext==="metabox"?(n(),f("div",ia,[d(p,null,{default:l(()=>[d(u,{class:"link-tabs",internal:"",tabs:r.tabs,active:r.initialTab,showSaveButton:!1},{"var-tab-icon":l(({tab:b})=>[(n(),_(B(b.icon),{class:E([{warning:b.warning}])},null,8,["class"]))]),_:1},8,["tabs","active"]),o.activeTab==="inbound-internal"?(n(),_(c,{key:0,post:o.mockedPostData,metabox:""},null,8,["post"])):g("",!0)]),_:1}),d(C,{"cta-link":t.$links.getPricingUrl("link-assistant","link-assistant-upsell","metabox"),"button-text":o.strings.ctaButtonText,"learn-more-link":t.$links.getUpsellUrl("link-assistant","metabox",t.$isPro?"pricing":"liteUpgrade"),"feature-list":[o.strings.linkOpportunities,o.strings.domainReports,o.strings.orphanedPosts,o.strings.affiliateLinks],"hide-bonus":!s.licenseStore.isUnlicensed},{"header-text":l(()=>[w(m(o.strings.ctaHeader),1)]),description:l(()=>[d(S,{addon:"aioseo-link-assistant"}),w(" "+m(o.strings.linkAssistantDescription),1)]),_:1},8,["cta-link","button-text","learn-more-link","feature-list","hide-bonus"])])):g("",!0),d($,{show:s.postEditorStore.currentPost.linkAssistant.modalOpen&&t.$root._data.screenContext==="sidebar",classes:["aioseo-link-assistant-modal"],onClose:e[0]||(e[0]=b=>s.postEditorStore.currentPost.linkAssistant.modalOpen=!1)},{headerTitle:l(()=>[w(m(r.modalHeader),1)]),body:l(()=>[d(p,null,{default:l(()=>[d(u,{class:"link-tabs",internal:"",tabs:r.tabs,active:r.initialTab,showSaveButton:!1},{"var-tab-icon":l(({tab:b})=>[(n(),_(B(b.icon),{class:E([{warning:b.warning}])},null,8,["class"]))]),_:1},8,["tabs","active"]),o.activeTab==="inbound-internal"?(n(),_(c,{key:0,post:o.mockedPostData,metabox:""},null,8,["post"])):g("",!0)]),_:1}),d(C,{"cta-link":t.$links.getPricingUrl("link-assistant","link-assistant-upsell","metabox"),"button-text":o.strings.ctaButtonText,"learn-more-link":t.$links.getUpsellUrl("link-assistant","metabox",t.$isPro?"pricing":"liteUpgrade"),"feature-list":[o.strings.linkOpportunities,o.strings.domainReports,o.strings.orphanedPosts,o.strings.affiliateLinks],"hide-bonus":!s.licenseStore.isUnlicensed},{"header-text":l(()=>[w(m(o.strings.ctaHeader),1)]),description:l(()=>[d(S,{addon:"aioseo-link-assistant"}),w(" "+m(o.strings.linkAssistantDescription),1)]),_:1},8,["cta-link","button-text","learn-more-link","feature-list","hide-bonus"])]),_:1},8,["show"]),this.parentComponentContext!=="modal"?(n(),_(v,{key:1})):g("",!0)])}const ie=y(sa,[["render",ra]]),na={};function aa(t,e){return n(),f("div")}const la=y(na,[["render",aa]]),da={setup(){return{addons:be,licenseStore:O()}},components:{Links:ie,LinksActivate:la,LinksLite:ie},props:{parentComponentContext:String}},ca={class:"aioseo-tab-content aioseo-link-assistant"};function ha(t,e,i,s,o,r){const u=a("Links",!0),c=a("LinksLite"),p=a("LinksActivate");return n(),f("div",ca,[!s.licenseStore.isUnlicensed&&s.addons.isActive("aioseo-link-assistant")&&!s.addons.requiresUpgrade("aioseo-link-assistant")?(n(),_(u,{key:0,parentComponentContext:i.parentComponentContext},null,8,["parentComponentContext"])):g("",!0),s.licenseStore.isUnlicensed||s.addons.requiresUpgrade("aioseo-link-assistant")?(n(),_(c,{key:1,parentComponentContext:i.parentComponentContext},null,8,["parentComponentContext"])):g("",!0),!s.licenseStore.isUnlicensed&&!s.addons.isActive("aioseo-link-assistant")&&s.addons.canActivate("aioseo-link-assistant")&&!s.addons.requiresUpgrade("aioseo-link-assistant")?(n(),_(p,{key:2,parentComponentContext:i.parentComponentContext},null,8,["parentComponentContext"])):g("",!0)])}const ua=y(da,[["render",ha]]),pa={computed:{objectTypeOptions(){return[{groupLabel:this.$t.__("Default",this.$td),options:[{label:this.$t.__("Default Object Type (Set in Social Networks)",this.$td),value:"default"}]}].concat(this.$constants.OG_TYPE_OPTIONS)}},methods:{getObjectTypeLabelByOption(t){let e="";return this.objectTypeOptions.forEach(i=>{const s=i.options.find(o=>o.value===t);s&&(e=(s==null?void 0:s.label)||"")}),e}}},ga={computed:{twitterCardOptions(){return[{label:this.$t.__("Default (Set under Social Networks)",this.$td),value:"default"},{label:this.$t.__("Summary",this.$td),value:"summary"},{label:this.$t.__("Summary with Large Image",this.$td),value:"summary_large_image"}]}},methods:{getTwitterCardLabelByOption(t){var e;return((e=this.twitterCardOptions.find(i=>i.value===t))==null?void 0:e.label)||""}}},ma={setup(){return{optionsStore:dt(),postEditorStore:P(),rootStore:Z()}},components:{CoreAlert:K,CoreFacebookPreview:qs,CoreHtmlTagsEditor:Kt,CoreImageUploader:Pe,CoreSettingsRow:V},mixins:[we,Ce,ue,Ot,Dt,pa],props:{isMobilePreview:{type:Boolean,default(){return!1}}},data(){return{tags:$e,separator:void 0,titleCount:0,descriptionCount:0,strings:{tabName:this.$t.__("Facebook Preview",this.$td),imageSource:this.$t.__("Image Source",this.$td),customFieldsName:this.$t.__("Custom Field Name",this.$td),video:this.$t.__("Video URL",this.$td),width:this.$t.__("Width",this.$td),height:this.$t.__("Height",this.$td),facebookObjectType:this.$t.__("Object Type",this.$td),facebookImage:this.$t.__("Facebook Image",this.$td),facebookTitle:this.$t.__("Facebook Title",this.$td),facebookDescription:this.$t.__("Facebook Description",this.$td),minimumSize:this.$t.__("Minimum size: 200px x 200px, ideal ratio 1.91:1, 5MB max. (eg: 1640px x 856px or 3280px x 1712px for Retina screens). JPG, PNG, WEBP and GIF formats only.",this.$td),clickToAddSiteName:this.$t.__("Click on the tags below to insert variables into your site name.",this.$td),clickToAddHomePageDescription:this.$t.__("Click on the tags below to insert variables into your meta description.",this.$td),articleSection:this.$t.__("Article Section",this.$td),articleTags:this.$t.__("Article Tags",this.$td),tagPlaceholder:this.$t.__("Press enter to create an article tag",this.$td),facebookDisabled:this.$t.sprintf(this.$t.__("No %1$s markup will be output for your post because it is currently disabled. You can enable %1$s markup in the Social Networks settings. %2$s",this.$td),this.$t.__("Open Graph",this.$td),this.$t.sprintf('%2$s →',this.rootStore.aioseo.urls.aio.socialNetworks+"#facebook",this.$t.__("Go to Social Networks",this.$td)))}}},computed:{previewTitle(){return this.parseTags(this.postEditorStore.currentPost.og_title||this.postEditorStore.currentPost.title||this.postEditorStore.currentPost.tags.title||"#post_title #separator_sa #site_title")},previewDescription(){return this.parseTags(this.postEditorStore.currentPost.og_description||this.postEditorStore.currentPost.description||this.postEditorStore.currentPost.tags.description||"#post_content")},shouldShowArticleSection(){const t=this.postEditorStore.currentPost.context==="term"?"taxonomies":"postTypes";return this.postEditorStore.currentPost.og_object_type==="article"||this.postEditorStore.currentPost.og_object_type==="default"&&this.optionsStore.dynamicOptions.social.facebook.general[t][this.postEditorStore.currentPost.postType||this.postEditorStore.currentPost.termType].objectType==="article"}},methods:{scrollToElement(){const t=document.getElementsByClassName("component-wrapper")[0];setTimeout(()=>{t&&(t.firstChild.scrollTop=0)},10)},saveImageType(t){this.postEditorStore.currentPost.og_image_type=t,this.postEditorStore.isDirty=!0},getObjectTypeOptions(t){let e=null;return this.objectTypeOptions.forEach(i=>{const s=i.options.find(o=>o.value===t);s&&(e=s)}),e},setObjectType(t){this.postEditorStore.currentPost.og_object_type=t,this.postEditorStore.isDirty=!0},updateImage(t){this.postEditorStore.currentPost.og_image_custom_url=t,this.postEditorStore.savePostState()},handleImageUpdate(){this.setImageUrl("facebook")}},watch:{"postEditorStore.currentPost.og_image_type"(){this.handleImageUpdate()},"postEditorStore.currentPost.og_image_custom_url"(){this.handleImageUpdate()}},mounted(){this.scrollToElement(),this.setImageUrl("facebook"),window.aioseoBus.$on("updateFeaturedImage",this.handleImageUpdate)},beforeUnmount(){window.aioseoBus.$off("updateFeaturedImage",this.handleImageUpdate)}},_a={class:"tab-facebook"},fa={id:"aioseo-post-settings-facebook"},Sa=["innerHTML"],ya=["innerHTML"];function ba(t,e,i,s,o,r){const u=a("core-alert"),c=a("core-facebook-preview"),p=a("core-settings-row"),S=a("core-html-tags-editor"),C=a("base-select"),$=a("base-input"),v=a("core-image-uploader");return n(),f("div",_a,[d(p,{class:"snippet-preview-row"},{name:l(()=>[h("span",null,m(o.strings.tabName),1)]),content:l(()=>[s.optionsStore.options.social.facebook.general.enable?g("",!0):(n(),_(u,{key:0,class:"facebook-disabled-warning",innerHTML:o.strings.facebookDisabled,type:"red"},null,8,["innerHTML"])),d(c,{description:r.previewDescription,image:t.imageUrl,loading:t.loading,title:r.previewTitle},null,8,["description","image","loading","title"])]),_:1}),h("div",fa,[d(p,{name:o.strings.facebookTitle,class:"facebook-title-settings",align:""},{content:l(()=>[d(S,{class:"facebook-meta-input",modelValue:s.postEditorStore.currentPost.og_title,"onUpdate:modelValue":[e[0]||(e[0]=b=>s.postEditorStore.currentPost.og_title=b),e[2]||(e[2]=b=>s.postEditorStore.isDirty=!0)],"line-numbers":!1,single:"",onCounter:e[1]||(e[1]=b=>t.updateCount(b,"titleCount")),"tags-context":`${s.postEditorStore.currentPost.postType||s.postEditorStore.currentPost.termType}Title`,"default-tags":o.tags.getDefaultTags(s.postEditorStore.currentPost.context==="term"?"taxonomies":null,null,"title")},{"tags-description":l(()=>[w(m(o.strings.clickToAddSiteName),1)]),_:1},8,["modelValue","tags-context","default-tags"]),h("div",{class:"max-recommended-count",innerHTML:t.maxRecommendedCount(o.titleCount,95)},null,8,Sa)]),_:1},8,["name"]),d(p,{name:o.strings.facebookDescription,class:"facebook-description-settings",align:""},{content:l(()=>[d(S,{class:"facebook-meta-input",modelValue:s.postEditorStore.currentPost.og_description,"onUpdate:modelValue":[e[3]||(e[3]=b=>s.postEditorStore.currentPost.og_description=b),e[5]||(e[5]=b=>s.postEditorStore.isDirty=!0)],"line-numbers":!1,description:"",onCounter:e[4]||(e[4]=b=>t.updateCount(b,"descriptionCount")),"tags-context":`${s.postEditorStore.currentPost.postType||s.postEditorStore.currentPost.termType}Description`,"default-tags":o.tags.getDefaultTags(s.postEditorStore.currentPost.context==="term"?"taxonomies":null,null,"description")},{"tags-description":l(()=>[w(m(o.strings.clickToAddHomePageDescription),1)]),_:1},8,["modelValue","tags-context","default-tags"]),h("div",{class:"max-recommended-count",innerHTML:t.maxRecommendedCount(o.descriptionCount,200)},null,8,ya)]),_:1},8,["name"]),d(p,{class:"facebook-image-source",name:o.strings.imageSource,align:""},{content:l(()=>[d(C,{size:"medium",options:t.imageSourceOptionsFiltered,modelValue:t.getImageSourceOptionFiltered(s.postEditorStore.currentPost.og_image_type),"onUpdate:modelValue":e[6]||(e[6]=b=>r.saveImageType(b.value))},null,8,["options","modelValue"])]),_:1},8,["name"]),s.postEditorStore.currentPost.og_image_type==="custom"?(n(),_(p,{key:0,name:o.strings.customFieldsName,align:""},{content:l(()=>[d($,{type:"text",size:"medium",placeholder:o.strings.placeholder,modelValue:s.postEditorStore.currentPost.og_image_custom_fields,"onUpdate:modelValue":[e[7]||(e[7]=b=>s.postEditorStore.currentPost.og_image_custom_fields=b),e[8]||(e[8]=b=>s.postEditorStore.isDirty=!0)]},null,8,["placeholder","modelValue"])]),_:1},8,["name"])):g("",!0),s.postEditorStore.currentPost.og_image_type==="custom_image"?(n(),_(p,{key:1,class:"facebook-image",name:o.strings.facebookImage},{content:l(()=>[d(v,{description:o.strings.minimumSize,modelValue:s.postEditorStore.currentPost.og_image_custom_url,"onUpdate:modelValue":e[9]||(e[9]=b=>s.postEditorStore.currentPost.og_image_custom_url=b)},null,8,["description","modelValue"])]),_:1},8,["name"])):g("",!0),d(p,{class:"facebook-video",name:o.strings.video,align:""},{content:l(()=>[d($,{type:"text",size:"medium",modelValue:s.postEditorStore.currentPost.og_video,"onUpdate:modelValue":e[10]||(e[10]=b=>s.postEditorStore.currentPost.og_video=b)},null,8,["modelValue"])]),_:1},8,["name"]),d(p,{class:"facebook-object-type",name:o.strings.facebookObjectType,align:""},{content:l(()=>[d(C,{size:"medium","open-direction":"top",options:t.objectTypeOptions,"group-label":"groupLabel","group-values":"options",modelValue:r.getObjectTypeOptions(s.postEditorStore.currentPost.og_object_type),"onUpdate:modelValue":e[11]||(e[11]=b=>r.setObjectType(b.value))},null,8,["options","modelValue"])]),_:1},8,["name"]),r.shouldShowArticleSection?(n(),_(p,{key:2,name:o.strings.articleSection,align:""},{content:l(()=>[d($,{type:"text",size:"medium",modelValue:s.postEditorStore.currentPost.og_article_section,"onUpdate:modelValue":e[12]||(e[12]=b=>s.postEditorStore.currentPost.og_article_section=b)},null,8,["modelValue"])]),_:1},8,["name"])):g("",!0),r.shouldShowArticleSection?(n(),_(p,{key:3,name:o.strings.articleTags,align:""},{content:l(()=>[d(C,{multiple:"",taggable:"",options:t.getJsonValue(s.postEditorStore.currentPost.og_article_tags)||[],modelValue:t.getJsonValue(s.postEditorStore.currentPost.og_article_tags)||[],"onUpdate:modelValue":e[13]||(e[13]=b=>s.postEditorStore.currentPost.og_article_tags=t.setJsonValue(b)),"tag-placeholder":o.strings.tagPlaceholder},null,8,["options","modelValue","tag-placeholder"])]),_:1},8,["name"])):g("",!0)])])}const va=y(ma,[["render",ba]]),ka={setup(){return{optionsStore:dt(),postEditorStore:P(),rootStore:Z()}},components:{CoreAlert:K,CoreHtmlTagsEditor:Kt,CoreImageUploader:Pe,CoreSettingsRow:V,CoreTwitterPreview:zs},mixins:[we,Ce,Ot,Dt,ga],props:{isMobilePreview:{type:Boolean,default(){return!1}}},data(){return{tags:$e,separator:void 0,titleCount:0,descriptionCount:0,facebookImageUrl:"",strings:{twitterPreview:this.$t.__("X (Twitter) Preview",this.$td),twitterPreviewDescription:this.$t.__("X cards by default will use the data defined below. If no data is set, X will instead pick up the data set on the Facebook tab.",this.$td),useFB:this.$t.__("Use Data from Facebook Tab",this.$td),imageSource:this.$t.__("Image Source",this.$td),customFieldsName:this.$t.__("Custom Field Name",this.$td),twitterImage:this.$t.__("X Image",this.$td),twitterTitle:this.$t.__("X Title",this.$td),twitterDescription:this.$t.__("X Description",this.$td),twitterCardType:this.$t.__("X Card Type",this.$td),minimumSizeSummary:this.$t.__("Minimum size: 144px x 144px, ideal ratio 1:1, 5MB max. JPG, PNG, WEBP and GIF formats only.",this.$td),minimumSizeSummaryWithLarge:this.$t.__("Minimum size: 300px x 157px, ideal ratio 2:1, 5MB max. JPG, PNG, WEBP and GIF formats only.",this.$td),twitterDisabled:this.$t.sprintf(this.$t.__("No %1$s markup will be output for your post because it is currently disabled. You can enable %1$s markup in the Social Networks settings. %2$s",this.$td),this.$t.__("X (Twitter)",this.$td),this.$t.sprintf('%2$s →',this.rootStore.aioseo.urls.aio.socialNetworks+"#twitter",this.$t.__("Go to Social Networks",this.$td)))}}},computed:{previewTitle(){const t=this.postEditorStore.currentPost.twitter_use_og||!this.postEditorStore.currentPost.twitter_title?this.postEditorStore.currentPost.og_title:this.postEditorStore.currentPost.twitter_title;return this.parseTags(t||this.postEditorStore.currentPost.title||this.postEditorStore.currentPost.tags.title||"#post_title #separator_sa #site_title")},previewDescription(){const t=this.postEditorStore.currentPost.twitter_use_og||!this.postEditorStore.currentPost.twitter_description?this.postEditorStore.currentPost.og_description:this.postEditorStore.currentPost.twitter_description;return this.parseTags(t||this.postEditorStore.currentPost.description||this.postEditorStore.currentPost.tags.description||"#post_content")},previewImage(){return this.postEditorStore.currentPost.twitter_use_og||!this.imageUrl?this.facebookImageUrl:this.imageUrl},twitterImageUploaderDescription(){return this.postEditorStore.currentPost.twitter_card==="summary"||this.postEditorStore.currentPost.twitter_card==="default"&&this.optionsStore.options.social.twitter.general.defaultCardType==="summary"?this.strings.minimumSizeSummary:this.postEditorStore.currentPost.twitter_card==="summary_large_image"||this.postEditorStore.currentPost.twitter_card==="default"&&this.optionsStore.options.social.twitter.general.defaultCardType==="summary_large_image"?this.strings.minimumSizeSummaryWithLarge:""}},methods:{getCardOptions(t){return this.twitterCardOptions.find(e=>e.value===t)},cardSelect(t){this.postEditorStore.currentPost.twitter_card=t,this.postEditorStore.isDirty=!0},scrollToElement(){const t=document.getElementsByClassName("component-wrapper")[0];setTimeout(()=>{t&&(t.firstChild.scrollTop=0)},10)},saveTwitterImageType(t){this.postEditorStore.currentPost.twitter_image_type=t,this.postEditorStore.isDirty=!0},updateImage(t){this.postEditorStore.currentPost.twitter_image_custom_url=t,this.postEditorStore.savePostState()},handleImageUpdate(){this.setImageUrl("twitter")}},watch:{"postEditorStore.currentPost.twitter_use_og"(){this.handleImageUpdate()},"postEditorStore.currentPost.twitter_image_type"(){this.handleImageUpdate()},"postEditorStore.currentPost.twitter_image_custom_url"(){this.handleImageUpdate()}},mounted(){window.aioseoBus.$on("updateSocialImagePreview",t=>{t.social==="facebook"&&(this.facebookImageUrl=t.image)}),this.scrollToElement(),this.setImageUrl("facebook"),this.setImageUrl("twitter"),window.aioseoBus.$on("updateFeaturedImage",this.handleImageUpdate)},beforeUnmount(){window.aioseoBus.$off("updateFeaturedImage",this.handleImageUpdate)}},wa={class:"tab-twitter"},Ca={id:"aioseo-post-settings-twitter"},$a=["innerHTML"],Pa=["innerHTML"];function Ea(t,e,i,s,o,r){const u=a("core-alert"),c=a("core-twitter-preview"),p=a("core-settings-row"),S=a("base-toggle"),C=a("core-html-tags-editor"),$=a("base-select"),v=a("base-input"),b=a("core-image-uploader");return n(),f("div",wa,[d(p,{class:"snippet-preview-row"},{name:l(()=>[h("span",null,m(o.strings.twitterPreview),1)]),description:l(()=>[h("i",null,m(o.strings.twitterPreviewDescription),1)]),content:l(()=>[s.optionsStore.options.social.twitter.general.enable?g("",!0):(n(),_(u,{key:0,class:"twitter-disabled-warning",innerHTML:o.strings.twitterDisabled,type:"red"},null,8,["innerHTML"])),d(c,{card:s.postEditorStore.currentPost.twitter_card,description:r.previewDescription,image:r.previewImage,loading:t.loading,title:r.previewTitle},null,8,["card","description","image","loading","title"])]),_:1}),h("div",Ca,[d(p,{name:o.strings.useFB,class:"use-facebook"},{content:l(()=>[d(S,{modelValue:s.postEditorStore.currentPost.twitter_use_og,"onUpdate:modelValue":[e[0]||(e[0]=k=>s.postEditorStore.currentPost.twitter_use_og=k),e[1]||(e[1]=k=>s.postEditorStore.isDirty=!0)]},null,8,["modelValue"])]),_:1},8,["name"]),s.postEditorStore.currentPost.twitter_use_og?g("",!0):(n(),_(p,{key:0,name:o.strings.twitterTitle,class:"twitter-title-settings",align:""},{content:l(()=>[d(C,{class:"twitter-meta-input",modelValue:s.postEditorStore.currentPost.twitter_title,"onUpdate:modelValue":[e[2]||(e[2]=k=>s.postEditorStore.currentPost.twitter_title=k),e[4]||(e[4]=k=>s.postEditorStore.isDirty=!0)],"line-numbers":!1,single:"",onCounter:e[3]||(e[3]=k=>t.updateCount(k,"titleCount")),"tags-context":`${s.postEditorStore.currentPost.postType||s.postEditorStore.currentPost.termType}Title`,"default-tags":o.tags.getDefaultTags(s.postEditorStore.currentPost.context==="term"?"taxonomies":null,null,"title")},null,8,["modelValue","tags-context","default-tags"]),h("div",{class:"max-recommended-count",innerHTML:t.maxRecommendedCount(o.titleCount,70)},null,8,$a)]),_:1},8,["name"])),s.postEditorStore.currentPost.twitter_use_og?g("",!0):(n(),_(p,{key:1,name:o.strings.twitterDescription,class:"twitter-description-settings",align:""},{content:l(()=>[d(C,{class:"twitter-meta-input",modelValue:s.postEditorStore.currentPost.twitter_description,"onUpdate:modelValue":[e[5]||(e[5]=k=>s.postEditorStore.currentPost.twitter_description=k),e[7]||(e[7]=k=>s.postEditorStore.isDirty=!0)],"line-numbers":!1,description:"",onCounter:e[6]||(e[6]=k=>t.updateCount(k,"descriptionCount")),"tags-context":`${s.postEditorStore.currentPost.postType||s.postEditorStore.currentPost.termType}Description`,"default-tags":o.tags.getDefaultTags(s.postEditorStore.currentPost.context==="term"?"taxonomies":null,null,"description")},{"tags-description":l(()=>[w(m(o.strings.clickToAddHomePageDescription),1)]),_:1},8,["modelValue","tags-context","default-tags"]),h("div",{class:"max-recommended-count",innerHTML:t.maxRecommendedCount(o.descriptionCount,200)},null,8,Pa)]),_:1},8,["name"])),s.postEditorStore.currentPost.twitter_use_og?g("",!0):(n(),_(p,{key:2,class:"twitter-image-source",name:o.strings.imageSource,align:""},{content:l(()=>[d($,{size:"medium",options:t.imageSourceOptionsFiltered,modelValue:t.getImageSourceOptionFiltered(s.postEditorStore.currentPost.twitter_image_type),"onUpdate:modelValue":e[8]||(e[8]=k=>r.saveTwitterImageType(k.value))},null,8,["options","modelValue"])]),_:1},8,["name"])),!s.postEditorStore.currentPost.twitter_use_og&&s.postEditorStore.currentPost.twitter_image_type==="custom"?(n(),_(p,{key:3,class:"twitter-custom-field",name:o.strings.customFieldsName,align:""},{content:l(()=>[d(v,{type:"text",size:"medium",placeholder:o.strings.placeholder,modelValue:s.postEditorStore.currentPost.twitter_image_custom_fields,"onUpdate:modelValue":[e[9]||(e[9]=k=>s.postEditorStore.currentPost.twitter_image_custom_fields=k),e[10]||(e[10]=k=>s.postEditorStore.isDirty=!0)]},null,8,["placeholder","modelValue"])]),_:1},8,["name"])):g("",!0),!s.postEditorStore.currentPost.twitter_use_og&&s.postEditorStore.currentPost.twitter_image_type==="custom_image"?(n(),_(p,{key:4,class:"twitter-image",name:o.strings.twitterImage},{content:l(()=>[d(b,{description:r.twitterImageUploaderDescription,modelValue:s.postEditorStore.currentPost.twitter_image_custom_url,"onUpdate:modelValue":e[11]||(e[11]=k=>s.postEditorStore.currentPost.twitter_image_custom_url=k)},null,8,["description","modelValue"])]),_:1},8,["name"])):g("",!0),d(p,{class:"twitter-card-type",name:o.strings.twitterCardType,align:""},{content:l(()=>[d($,{size:"medium","open-direction":"top",options:t.twitterCardOptions,modelValue:r.getCardOptions(s.postEditorStore.currentPost.twitter_card),"onUpdate:modelValue":e[12]||(e[12]=k=>r.cardSelect(k.value))},null,8,["options","modelValue"])]),_:1},8,["name"])])])}const Ta=y(ka,[["render",Ea]]),xa={setup(){return{postEditorStore:P(),settingsStore:Y()}},components:{CoreSettingsRow:V,SvgPencil:ft},data(){return{strings:{title:this.$t.__("Social Media",this.$td),sidebarCopy:this.$t.__("Here you can view and edit the thumbnail, title and description that will be displayed when your site is shared on social media. Click on the button below to view and edit the preview.",this.$td),editSnippet:this.$t.__("Preview & Edit",this.$td)}}},methods:{openModalEv(){this.settingsStore.changeTabSettings({setting:"modal",value:"social"}),this.postEditorStore.currentPost.modalOpen=!0}}},Aa={class:"aioseo-sidebar-content-title"};function La(t,e,i,s,o,r){const u=a("svg-pencil"),c=a("base-button"),p=a("core-settings-row");return t.$root._data.screenContext==="sidebar"?(n(),_(p,{key:0,name:o.strings.metaDescription,class:"snippet-description-row open-social-copy"},{content:l(()=>[h("div",Aa,m(o.strings.title),1),h("p",null,m(o.strings.sidebarCopy),1),d(c,{class:"open-social-modal gray small",onClick:r.openModalEv},{default:l(()=>[d(u),w(" "+m(o.strings.editSnippet),1)]),_:1},8,["onClick"])]),_:1},8,["name"])):g("",!0)}const Ma=y(xa,[["render",La]]),Ha={setup(){return{postEditorStore:P(),settingsStore:Y()}},components:{BaseRadioToggle:ye,CoreMainTabs:st,CoreSettingsRow:V,Facebook:va,Twitter:Ta,SocialSideBar:Ma},props:{parentComponentContext:String},data(){return{strings:{pageName:this.$t.__("Social",this.$td)},tabs:[{slug:"facebook",name:this.$t.__("Facebook",this.$td)},{slug:"twitter",name:this.$t.__("X (Twitter)",this.$td)}]}},computed:{initTab:function(){let t=this.settingsStore.metaBoxTabs.social;return this.parentComponentContext==="modal"&&(t=this.settingsStore.metaBoxTabs.socialModal),t}},mounted(){nt()["social-tab"]&&(this.processChangeTab(nt()["social-tab"]),setTimeout(()=>{Lt("social-tab")},500))},methods:{processChangeTab(t){this.parentComponentContext==="modal"?this.settingsStore.changeTabSettings({setting:"socialModal",value:t}):this.settingsStore.changeTabSettings({setting:"social",value:t})}}},Ia={class:"aioseo-tab-content aioseo-post-social"};function Ba(t,e,i,s,o,r){const u=a("core-main-tabs"),c=a("core-settings-row"),p=a("social-side-bar");return n(),f("div",Ia,[t.$root._data.screenContext==="metabox"||i.parentComponentContext==="modal"?(n(),_(c,{key:0,"no-border":""},{content:l(()=>[d(u,{tabs:o.tabs,showSaveButton:!1,active:r.initTab,internal:"",onChanged:e[0]||(e[0]=S=>r.processChangeTab(S)),disableMobile:""},null,8,["tabs","active"])]),_:1})):g("",!0),t.$root._data.screenContext==="metabox"||i.parentComponentContext==="modal"?(n(),_(at,{key:1,name:"route-fade",mode:"out-in"},{default:l(()=>[(n(),_(B(r.initTab)))]),_:1})):g("",!0),this.parentComponentContext!=="modal"?(n(),_(p,{key:2})):g("",!0)])}const Ie=y(Ha,[["render",Ba]]),Ra={setup(){return{settingsStore:Y()}},components:{CoreMainTabs:st,CoreSettingsRow:V,General:He,Social:Ie,SvgSettings:fe,SvgShare:Ee},data(){return{strings:{pageName:this.$t.__("Modal Content",this.$td)},tabs:[{slug:"general",icon:"svg-settings",name:this.$t.__("General",this.$td)},{slug:"social",icon:"svg-share",name:this.$t.__("Social",this.$td)}]}},computed:{getTabs(){return this.tabs.filter(t=>W(`aioseo_page_${t.slug}_settings`))}},methods:{processChangeTab(t){this.settingsStore.changeTabSettings({setting:"modal",value:t})}}},Oa={class:"aioseo-modal-content"},Da={class:"mobile-radio-buttons"},Na={class:"component-wrapper"};function Va(t,e,i,s,o,r){const u=a("core-main-tabs");return n(),f("div",Oa,[h("div",Da,[d(u,{tabs:r.getTabs,showSaveButton:!1,active:s.settingsStore.metaBoxTabs.modal||"general",internal:"",onChanged:e[0]||(e[0]=c=>r.processChangeTab(c))},null,8,["tabs","active"])]),h("div",Na,[d(at,{name:"route-fade",mode:"out-in"},{default:l(()=>[(n(),_(B(s.settingsStore.metaBoxTabs.modal||"general"),{parentComponentContext:"modal"}))]),_:1})])])}const Ua=y(Ra,[["render",Va]]),Ka={setup(){return{postEditorStore:P()}},components:{CoreSettingsRow:V,SvgRightArrowShort:Ft},data(){return{strings:{title:this.$t.__("Redirects",this.$td),description:this.$t.__("Here you can add a redirect or view your existing redirects from this page. Click on the button below to view the Redirects panel.",this.$td),button:this.$t.__("Open Redirects",this.$td)}}}},Ga={class:"aioseo-redirects-sidebar"},Fa={class:"aioseo-sidebar-content-title"};function qa(t,e,i,s,o,r){const u=a("svg-right-arrow-short"),c=a("base-button"),p=a("core-settings-row");return n(),f("div",Ga,[t.$root._data.screenContext==="sidebar"?(n(),_(p,{key:0,class:"snippet-description-row open-redirects-copy"},{content:l(()=>[h("div",Fa,m(o.strings.title),1),h("p",null,m(o.strings.description),1),d(c,{class:"open-redirects-modal gray small",onClick:e[0]||(e[0]=S=>s.postEditorStore.currentPost.redirects.modalOpen=!0)},{default:l(()=>[d(u),w(" "+m(o.strings.button),1)]),_:1})]),_:1})):g("",!0)])}const za=y(Ka,[["render",qa],["__scopeId","data-v-9484ed37"]]),Wa={setup(){return{postEditorStore:P()}},components:{CoreModal:J,RedirectsSideBar:za,RedirectsLite:js},props:{parentComponentContext:String},data(){return{strings:{modalHeader:this.$t.__("Redirects",this.$td)}}}},ja={class:"bd"};function Ya(t,e,i,s,o,r){const u=a("redirects-lite"),c=a("core-modal"),p=a("redirects-side-bar");return n(),f("div",null,[t.$root._data.screenContext==="metabox"?(n(),_(u,{key:0,noCoreCard:!0,parentComponentContext:i.parentComponentContext},null,8,["parentComponentContext"])):g("",!0),d(c,{show:s.postEditorStore.currentPost.redirects.modalOpen&&t.$root._data.screenContext==="sidebar",classes:["aioseo-redirects"],onClose:e[0]||(e[0]=S=>s.postEditorStore.currentPost.redirects.modalOpen=!1)},{headerTitle:l(()=>[w(m(o.strings.modalHeader),1)]),body:l(()=>[h("div",ja,[d(u,{noCoreCard:!0,parentComponentContext:i.parentComponentContext},null,8,["parentComponentContext"])])]),_:1},8,["show"]),this.parentComponentContext!=="modal"?(n(),_(p,{key:1})):g("",!0)])}const re=y(Wa,[["render",Ya]]),Za={};function Ja(t,e){return n(),f("div")}const Xa=y(Za,[["render",Ja]]),Qa={setup(){return{addons:be,licenseStore:O()}},components:{Redirects:re,RedirectsActivate:Xa,RedirectsLite:re},props:{parentComponentContext:String}},tl={class:"aioseo-tab-content"};function el(t,e,i,s,o,r){const u=a("Redirects",!0),c=a("RedirectsLite"),p=a("RedirectsActivate");return n(),f("div",tl,[!s.licenseStore.isUnlicensed&&s.addons.isActive("aioseo-redirects")&&!s.addons.requiresUpgrade("aioseo-redirects")?(n(),_(u,{key:0,parentComponentContext:i.parentComponentContext},null,8,["parentComponentContext"])):g("",!0),s.licenseStore.isUnlicensed||s.addons.requiresUpgrade("aioseo-redirects")?(n(),_(c,{key:1,parentComponentContext:i.parentComponentContext},null,8,["parentComponentContext"])):g("",!0),!s.licenseStore.isUnlicensed&&!s.addons.isActive("aioseo-redirects")&&s.addons.canActivate("aioseo-redirects")&&!s.addons.requiresUpgrade("aioseo-redirects")?(n(),_(p,{key:2,parentComponentContext:i.parentComponentContext},null,8,["parentComponentContext"])):g("",!0)])}const sl=y(Qa,[["render",el]]),ol={};function il(t,e){return n(),f("div")}const rl=y(ol,[["render",il]]),nl={};function al(t,e){return n(),f("div")}const ll=y(nl,[["render",al]]),dl={};function cl(t,e){return n(),f("div")}const hl=y(dl,[["render",cl]]),ul={};function pl(t,e){return n(),f("div")}const gl=y(ul,[["render",pl]]),ml={};function _l(t,e){return n(),f("div")}const fl=y(ml,[["render",_l]]),Sl={};function yl(t,e){return n(),f("div")}const bl=y(Sl,[["render",yl]]),vl={};function kl(t,e){return n(),f("div")}const wl=y(vl,[["render",kl]]),Cl={};function $l(t,e){return n(),f("div")}const Pl=y(Cl,[["render",$l]]),El={};function Tl(t,e){return n(),f("div")}const xl=y(El,[["render",Tl]]),Al={};function Ll(t,e){return n(),f("div")}const Ml=y(Al,[["render",Ll]]),Hl={};function Il(t,e){return n(),f("div")}const Bl=y(Hl,[["render",Il]]),Rl={};function Ol(t,e){return n(),f("div")}const Dl=y(Rl,[["render",Ol]]),Nl={};function Vl(t,e){return n(),f("div")}const Ul=y(Nl,[["render",Vl]]),Kl={};function Gl(t,e){return n(),f("div")}const Fl=y(Kl,[["render",Gl]]),ql={};function zl(t,e){return n(),f("div")}const Wl=y(ql,[["render",zl]]),jl={};function Yl(t,e){return n(),f("div")}const Zl=y(jl,[["render",Yl]]),Jl={};function Xl(t,e){return n(),f("div")}const Ql=y(Jl,[["render",Xl]]),td={};function ed(t,e){return n(),f("div")}const sd=y(td,[["render",ed]]),od={},id={viewBox:"0 0 11 12",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",class:"aioseo-trash"},rd=h("path",{d:"M8.0013 4V10.6667H2.66797V4H8.0013ZM7.0013 0H3.66797L3.0013 0.666667H0.667969V2H10.0013V0.666667H7.66797L7.0013 0ZM9.33463 2.66667H1.33464V10.6667C1.33464 11.4 1.93464 12 2.66797 12H8.0013C8.73464 12 9.33463 11.4 9.33463 10.6667V2.66667Z",fill:"currentColor"},null,-1),nd=[rd];function ad(t,e){return n(),f("svg",id,nd)}const ld=y(od,[["render",ad]]),Be={components:{Article:rl,Book:ll,Course:hl,Dataset:gl,Event:fl,FAQPage:bl,FactCheck:wl,HowTo:Pl,JobPosting:xl,Movie:Ml,Music:Bl,Person:Dl,Product:Ul,Recipe:Fl,Service:Wl,SoftwareApplication:Zl,Video:Ql,WebPage:sd,SvgArticle:hs,SvgBook:us,SvgCircleQuestionMark:Nt,SvgCustomSchema:ps,SvgCopy:gs,SvgCourse:ms,SvgDataset:_s,SvgEvent:fs,SvgFaqPage:Ss,SvgFactCheck:ys,SvgFile:bs,SvgFileEdit:vs,SvgGoogleSmall:ks,SvgHowTo:ws,SvgJobPosting:Cs,SvgMovie:$s,SvgMusic:Ps,SvgPencil:ft,SvgPerson:Es,SvgProduct:Ts,SvgRecipe:xs,SvgService:As,SvgSoftwareApplication:Ls,SvgTerminal:Ms,SvgTrash:ld,SvgVideo:Hs,SvgWebPage:Is},data(){return{graphs:[{slug:"article",graphName:"Article",label:this.$t.__("Article",this.$td)},{slug:"book",graphName:"Book",label:this.$t.__("Book",this.$td)},{slug:"course",graphName:"Course",label:this.$t.__("Course",this.$td)},{slug:"dataset",graphName:"Dataset",label:this.$t.__("Dataset",this.$td)},{slug:"event",graphName:"Event",label:this.$t.__("Event",this.$td)},{slug:"faq-page",graphName:"FAQPage",label:this.$t.__("FAQ",this.$td)},{slug:"fact-check",graphName:"FactCheck",label:this.$t.__("Fact Check",this.$td)},{slug:"how-to",graphName:"HowTo",label:this.$t.__("How To",this.$td)},{slug:"job-posting",graphName:"JobPosting",label:this.$t.__("Job Posting",this.$td)},{slug:"movie",graphName:"Movie",label:this.$t.__("Movie",this.$td)},{slug:"music",graphName:"Music",label:this.$t.__("Music",this.$td)},{slug:"person",graphName:"Person",label:this.$t.__("Person",this.$td)},{slug:"product",graphName:"Product",label:this.$t.__("Product",this.$td)},{slug:"recipe",graphName:"Recipe",label:this.$t.__("Recipe",this.$td)},{slug:"service",graphName:"Service",label:this.$t.__("Service",this.$td)},{slug:"software-application",graphName:"SoftwareApplication",label:this.$t.__("Software",this.$td)},{slug:"video",graphName:"Video",label:this.$t.__("Video",this.$td)},{slug:"web-page",graphName:"WebPage",label:this.$t.__("Web Page",this.$td)}],childGraphs:{Article:[{childGraphName:"BlogPosting",label:this.$t.__("Blog Post",this.$td)},{childGraphName:"NewsArticle",label:this.$t.__("News Article",this.$td)}],Music:[{childGraphName:"MusicAlbum",label:this.$t.__("Music Album",this.$td)},{childGraphName:"MusicGroup",label:this.$t.__("Music Group",this.$td)}],WebPage:[{childGraphName:"WebPage",label:this.$t.__("Web Page",this.$td)},{childGraphName:"AboutPage",label:this.$t.__("About Page",this.$td)},{childGraphName:"CheckoutPage",label:this.$t.__("Checkout Page",this.$td)},{childGraphName:"CollectionPage",label:this.$t.__("Collection Page",this.$td)},{childGraphName:"ContactPage",label:this.$t.__("Contact Page",this.$td)},{childGraphName:"ItemPage",label:this.$t.__("Item Page",this.$td)},{childGraphName:"MedicalPage",label:this.$t.__("Medical Page",this.$td)},{childGraphName:"ProfilePage",label:this.$t.__("Profile Page",this.$td)},{childGraphName:"RealEstateListing",label:this.$t.__("Real Estate Listing",this.$td)},{childGraphName:"SearchResultsPage",label:this.$t.__("Search Results Page",this.$td)}]}}},methods:{getParentGraphName(t){let e="";return Object.entries(this.childGraphs).forEach(i=>{const s=i[0];i[1].forEach(o=>{e||t===o.childGraphName&&(e=s)})}),e||t}}},dd={mixins:[Be],props:{graph:Object,customGraph:Boolean,defaultGraph:String},computed:{graphLabel(){if(this.customGraph)return this.$t.__("Custom Schema",this.$td)+" - "+this.graph.graphName;if(this.defaultGraph)return this.formatDefaultGraphName(this.defaultGraph);if(this.graph.label)return this.graph.label;const t=this.graph.slug.toLowerCase();return this.graphs.find(e=>e.slug===t).label},graphIcon(){if(this.customGraph)return"svg-custom-schema";if(this.defaultGraph){const t=this.getParentGraphSlug(this.defaultGraph);return t?"svg-"+t:"svg-custom-schema"}return"svg-"+this.graph.slug}},methods:{getParentGraphSlug(t){Object.entries(this.childGraphs).forEach(i=>{const s=i[0];i[1].forEach(o=>{t===o.childGraphName&&(t=s)})});let e="";return this.graphs.forEach(i=>{i.graphName===t&&(e=i.slug)}),e},formatDefaultGraphName(t){let e="",i=t;return Object.entries(this.childGraphs).forEach(s=>{const o=s[0];s[1].forEach(r=>{e||t===r.childGraphName&&(e=o,i=r.label,this.graphs.forEach(u=>{u.graphName===o&&(e=u.label)}))})}),e?e+" - "+i+" "+this.$t.__("(Default)",this.$td):t+" "+this.$t.__("(Default)",this.$td)}}},cd={class:"graph-container"},hd={class:"graph"},ud={class:"left"},pd=["title"],gd={class:"right action-buttons"};function md(t,e,i,s,o,r){return n(),f("div",cd,[h("div",hd,[h("div",ud,[(n(),_(B(r.graphIcon))),h("span",{title:r.graphLabel},m(r.graphLabel),9,pd)]),h("div",gd,[q(t.$slots,"buttons")])])])}const Re=y(dd,[["render",md]]),_d={emits:["close"],mixins:[Be],components:{CoreBlur:Gt,CoreMainTabs:st,CoreModal:J,CoreTooltip:G,Cta:ve,GraphCard:Re,SvgCirclePlus:Vt},data(){return{strings:{schemaGenerator:this.$t.__("Schema Generator",this.$td),headerTooltip:this.$t.sprintf(this.$t.__("Use our powerful Schema Generator to configure Schema Markup for your content. Search Engines use structured data to better understand what your site is about as well as to display rich snippets in search results. %1$s",this.$td),this.$links.getDocLink(this.$constants.GLOBAL_STRINGS.learnMore,"schema",!0)),searchSchema:this.$t.__("Search Schema",this.$td),ctaDescription:this.$t.__("Easily generate unlimited schema markup for your content to help you rank higher in search results. Our schema validator ensures your schema works out of the box.",this.$td),ctaButtonText:this.$t.__("Unlock Schema Generator",this.$td),ctaHeader:this.$t.sprintf(this.$t.__("Schema Generator is a %1$s Feature",this.$td),"PRO")},features:[this.$t.__("Unlimited Schema",this.$td),this.$t.__("Validate with Google",this.$td),this.$t.__("Increase Rankings",this.$td),this.$t.__("Additional Schema Types",this.$td)],tabs:[{slug:"schema-templates",icon:"svg-file",name:this.$t.__("Schema Templates",this.$td),component:"templates"},{slug:"custom-schema",icon:"svg-file-edit",name:this.$t.__("Custom Schema",this.$td),component:"custom"},{slug:"schema-validation",icon:"svg-terminal",name:this.$t.__("Schema Validation",this.$td),component:"validation"}],templatesTabs:[{slug:"schema-catalog",name:this.$t.__("Schema Catalog",this.$td)},{slug:"your-templates",name:this.$t.__("Your Templates",this.$td)}]}}},fd={class:"title"},Sd=["innerHTML"],yd={class:"schema-templates"},bd={class:"main"},vd={class:"schema-catalog"},kd={class:"graphs"};function wd(t,e,i,s,o,r){const u=a("svg-circle-question-mark"),c=a("core-tooltip"),p=a("core-main-tabs"),S=a("base-input"),C=a("svg-circle-plus"),$=a("base-button"),v=a("graph-card"),b=a("core-blur"),k=a("cta"),M=a("core-modal");return n(),_(M,{classes:["aioseo-post-schema-modal-cta"],onClose:e[0]||(e[0]=L=>t.$emit("close"))},{headerTitle:l(()=>[h("div",fd,m(o.strings.schemaGenerator),1),d(c,null,{tooltip:l(()=>[h("span",{innerHTML:o.strings.headerTooltip},null,8,Sd)]),default:l(()=>[d(u)]),_:1})]),body:l(()=>[d(b,null,{default:l(()=>[d(p,{tabs:o.tabs,active:"schema-templates",showSaveButton:!1},{"var-tab-icon":l(({tab:L})=>[(n(),_(B(L.icon)))]),_:1},8,["tabs"]),h("div",yd,[d(p,{tabs:o.templatesTabs,active:"schema-catalog",showSaveButton:!1},{"var-tab-icon":l(({tab:L})=>[(n(),_(B(L.icon)))]),_:1},8,["tabs"]),h("div",bd,[d(S,{class:"search",size:"medium",prependIcon:"search",placeholder:o.strings.searchSchema},null,8,["placeholder"]),h("div",vd,[h("div",kd,[(n(!0),f(j,null,et(t.graphs,(L,Q)=>(n(),_(v,{key:L.graphName+Q,graph:L},{buttons:l(()=>[d($,{class:"small",type:"gray"},{default:l(()=>[d(C)]),_:1})]),_:2},1032,["graph"]))),128))])])])])]),_:1}),d(k,{"cta-link":t.$links.getPricingUrl("schema-generator","schema-generator-upsell"),"button-text":o.strings.ctaButtonText,"learn-more-link":t.$links.getUpsellUrl("schema-generator",null,t.$isPro?"pricing":"liteUpgrade"),"feature-list":o.features},{"header-text":l(()=>[w(m(o.strings.ctaHeader),1)]),description:l(()=>[w(m(o.strings.ctaDescription),1)]),_:1},8,["cta-link","button-text","learn-more-link","feature-list"])]),_:1})}const Cd=y(_d,[["render",wd]]),$d={setup(){return{postEditorStore:P()}},components:{CoreAlert:K,CoreSettingsRow:V,CoreTooltip:G,CtaModal:Cd,GraphCard:Re,SvgEye:Ut},props:{parentComponentContext:String},data(){return{modalOpenMetabox:!1,modalOpenSidebar:!1,strings:{sidebarDescription:this.$t.__("Configure Schema Markup for your content. Search engines use structured data to display rich results in SERPs.",this.$td),noGraphs:this.$t.__("You have not added any schema yet. You can add any schema graphs you like via the Schema Generator below.",this.$td),schemaInUse:this.$t.__("Schema In Use",this.$td),generateSchema:this.$t.__("Generate Schema",this.$td),validateSchema:this.$t.__("Validate Schema",this.$td),defaultGraphTooltip:this.$t.__("This is the default graph for this post type. All data for this graph will be automatically generated.",this.$td)}}},computed:{isSidebar(){return this.$root._data.screenContext==="sidebar"}}},Pd={class:"graphs"},Ed={key:0,class:"sidebar-description"},Td={class:"description"},xd=["innerHTML"],Ad=["innerHTML"],Ld={class:"buttons"};function Md(t,e,i,s,o,r){const u=a("svg-eye"),c=a("base-button"),p=a("core-tooltip"),S=a("graph-card"),C=a("core-alert"),$=a("cta-modal"),v=a("core-settings-row");return n(),f("div",{class:E(["aioseo-tab-content aioseo-post-schema",[{sidebar:r.isSidebar}]])},[d(v,{name:o.strings.schemaInUse},{content:l(()=>[h("div",Pd,[r.isSidebar?(n(),f("div",Ed,[h("p",Td,m(o.strings.sidebarDescription),1),h("p",{class:"description",innerHTML:t.$links.getDocLink(t.$constants.GLOBAL_STRINGS.learnMore,"schema",!0)},null,8,xd)])):g("",!0),s.postEditorStore.currentPost.schema.default.graphName&&s.postEditorStore.currentPost.schema.default.isEnabled?(n(),_(S,{key:1,defaultGraph:s.postEditorStore.currentPost.schema.default.graphName},{buttons:l(()=>[d(p,{offset:r.isSidebar?"-70px,0":"0,0"},{tooltip:l(()=>[h("span",{innerHTML:o.strings.defaultGraphTooltip},null,8,Ad)]),default:l(()=>[d(c,{class:"small no-hover",type:"gray"},{default:l(()=>[d(u)]),_:1})]),_:1},8,["offset"])]),_:1},8,["defaultGraph"])):g("",!0)]),h("div",Ld,[!s.postEditorStore.currentPost.schema.default.graphName||!s.postEditorStore.currentPost.schema.default.isEnabled?(n(),_(C,{key:0,class:"no-graphs",type:"yellow"},{default:l(()=>[w(m(o.strings.noGraphs),1)]),_:1})):g("",!0),d(c,{class:"medium",type:"blue",onClick:e[0]||(e[0]=b=>{o.modalOpenMetabox=!0,o.modalOpenSidebar=!0})},{default:l(()=>[w(m(o.strings.generateSchema),1)]),_:1}),d(c,{class:"medium",type:"gray",onClick:e[1]||(e[1]=b=>{o.modalOpenMetabox=!0,o.modalOpenSidebar=!0})},{default:l(()=>[w(m(o.strings.validateSchema),1)]),_:1})]),d($,{show:!r.isSidebar&&o.modalOpenMetabox,onClose:e[2]||(e[2]=b=>o.modalOpenMetabox=!1)},null,8,["show"]),d($,{show:r.isSidebar&&o.modalOpenSidebar,onClose:e[3]||(e[3]=b=>o.modalOpenSidebar=!1)},null,8,["show"])]),_:1},8,["name"])],2)}const ne=y($d,[["render",Md]]),Hd={setup(){return{licenseStore:O()}},components:{Schema:ne,SchemaLite:ne},props:{parentComponentContext:String}},Id={class:"aioseo-post-schema-view"};function Bd(t,e,i,s,o,r){const u=a("schema",!0),c=a("schema-lite");return n(),f("div",Id,[s.licenseStore.isUnlicensed?g("",!0):(n(),_(u,{key:0,parentComponentContext:i.parentComponentContext},null,8,["parentComponentContext"])),s.licenseStore.isUnlicensed?(n(),_(c,{key:1,parentComponentContext:i.parentComponentContext},null,8,["parentComponentContext"])):g("",!0)])}const Rd=y(Hd,[["render",Bd]]),Oe=t=>(pe("data-v-20175fdb"),t=t(),ge(),t),Od={class:"aioseo-seo-revision-list-item"},Dd={class:"aioseo-seo-revision-list-item__author"},Nd={class:"aioseo-seo-revision-list-item__author__avatar"},Vd={class:"aioseo-seo-revision-list-item__author__name"},Ud=Oe(()=>h("div",{class:"aioseo-seo-revision-list-item__date"}," 1 week ago (2 Dec, 2022 @ 18:28:57) ",-1)),Kd={class:"aioseo-seo-revision-list-item__action"},Gd=Oe(()=>h("span",{class:"aioseo-seo-revision-list-item__action__compare"}," Compare ",-1)),Fd={class:"aioseo-seo-revision-list-item__action__view"},qd={class:"aioseo-seo-revision-list-item__action__delete"},zd={__name:"ListItem",setup(t){const{currentUser:e}=ce(lt());return(i,s)=>(n(),f("div",Od,[h("div",Dd,[h("span",Nd,[d(z(Ys),{src:z(e).avatar.url,size:z(e).avatar.size},null,8,["src","size"])]),h("span",Vd,m(z(Fe)(z(e).display_name,30)),1)]),Ud,h("div",Kd,[Gd,h("span",Fd,[d(z(Ut),{width:"18"})]),h("span",qd,[d(z(St),{width:"18"})])])]))}},Wd=y(zd,[["__scopeId","data-v-20175fdb"]]),jd={components:{SeoRevisionListItem:Wd}},Yd={class:"aioseo-seo-revisions-list"};function Zd(t,e,i,s,o,r){const u=a("seo-revision-list-item");return n(),f("div",Yd,[(n(),f(j,null,et(13,c=>d(u,{key:"seo-revision-list-item-"+c})),64))])}const Jd=y(jd,[["render",Zd],["__scopeId","data-v-7b502c37"]]),Xd={setup(){return{seoRevisionsStore:lt()}},components:{CoreBlur:Gt,CoreModal:J,CoreSettingsRow:V,SeoRevisionsList:Jd,SeoRevisionsUpsell:Zs,SvgRightArrowShort:Ft},data(){return{strings:{button:this.$t.__("Open SEO Revisions",this.$td),description:this.$t.__("With our powerful revisions feature for all your SEO data, never lose the exact SEO title or description (and more!) that helped you rank higher in search results and restore it back in a single click.",this.$td),seoRevisions:this.$t.__("SEO Revisions",this.$td)}}}},Qd={key:0,class:"aioseo-seo-revisions-metabox"},tc={key:1,class:"aioseo-seo-revisions-sidebar"},ec={class:"aioseo-seo-revisions-sidebar__modal-body"},sc={class:"description"};function oc(t,e,i,s,o,r){const u=a("seo-revisions-list"),c=a("core-blur"),p=a("seo-revisions-upsell"),S=a("core-modal"),C=a("svg-right-arrow-short"),$=a("base-button"),v=a("core-settings-row");return t.$root._data.screenContext==="metabox"?(n(),f("div",Qd,[d(c,null,{default:l(()=>[d(u)]),_:1}),d(p,{"parent-component-context":"metabox"})])):t.$root._data.screenContext==="sidebar"?(n(),f("div",tc,[d(S,{show:s.seoRevisionsStore.modalOpenSidebar,classes:[],onClose:e[0]||(e[0]=b=>s.seoRevisionsStore.modalOpenSidebar=!1)},{headerTitle:l(()=>[w(m(o.strings.seoRevisions),1)]),body:l(()=>[h("div",ec,[d(c,null,{default:l(()=>[d(u)]),_:1}),d(p,{"parent-component-context":"modal"})])]),_:1},8,["show"]),d(v,{align:""},{name:l(()=>[w(m(o.strings.seoRevisions),1)]),description:l(()=>[h("p",sc,m(o.strings.description),1)]),content:l(()=>[d($,{class:"gray small",onClick:e[1]||(e[1]=H(b=>s.seoRevisionsStore.modalOpenSidebar=!0,["stop","exact"]))},{default:l(()=>[d(C,{width:"10"}),w("   "+m(o.strings.button),1)]),_:1})]),_:1})])):g("",!0)}const ae=y(Xd,[["render",oc],["__scopeId","data-v-5273d1c7"]]),ic={setup(){return{licenseStore:O()}},data(){return{license:gt}},components:{SeoRevisions:ae,SeoRevisionsLite:ae},props:{parentComponentContext:String}},rc={class:"aioseo-seo-revisions aioseo-tab-content"};function nc(t,e,i,s,o,r){const u=a("seo-revisions",!0),c=a("seo-revisions-lite");return n(),f("div",rc,[!s.licenseStore.isUnlicensed&&o.license.hasCoreFeature("seo-revisions")?(n(),_(u,{key:0,parentComponentContext:i.parentComponentContext},null,8,["parentComponentContext"])):(n(),_(c,{key:1,parentComponentContext:i.parentComponentContext},null,8,["parentComponentContext"]))])}const ac=y(ic,[["render",nc],["__scopeId","data-v-5e3c402f"]]),lc={__name:"CountBadge",setup(t){const{itemsTotalCount:e}=ce(lt()),i=Qe(()=>99z(e)?(n(),f("span",{key:0,class:E(["aioseo-seo-revisions-count-badge",{"aioseo-seo-revisions-count-badge--ml":s.$root._data.screenContext==="sidebar","aioseo-seo-revisions-count-badge--mr":s.$root._data.screenContext==="metabox","aioseo-seo-revisions-count-badge--sm":99!!i.enabled).length,permission:"aioseo_page_redirects_manage"},{slug:"seoRevisions",icon:"svg-backup",name:this.$t.__("SEO Revisions",this.$td),badge:"seo-revisions-count-badge"},{slug:"advanced",icon:"svg-build",name:this.$t.__("Advanced",this.$td)}];return!this.rootStore.aioseo.integration&&!pt()&&this.postEditorStore.currentPost.context==="post"&&!((e=this.postEditorStore.currentPost.linkAssistant)!=null&&e.isExcludedPost)&&t.splice(3,0,{slug:"linkAssistant",icon:"svg-link-suggestion",name:this.$t.__("Link Assistant",this.$td)}),t},initTab(){return this.getTabs[0].slug},getTabs(){return this.postEditorStore.currentPost.context==="term"||this.postEditorStore.currentPost.isWooCommercePageWithoutSchema?this.tabs.filter(t=>t.slug!=="schema"&&W(this.getTabPermission(t.slug))):this.tabs.filter(t=>W(this.getTabPermission(t.slug))?!0:t.slug==="general"&&(W("aioseo_page_analysis")||W(this.getTabPermission(t.slug))))}},methods:{async processChangeTab(t){if(t!==null&&typeof t=="object"){this.processChangeTab(t.main),this.$nextTick(()=>{this.settingsStore.changeTabSettings({setting:t.main,value:t.sub})});return}switch(this.$root._data.screenContext){case"sidebar":document.querySelectorAll(".components-panel__header").forEach(e=>{const i=t===null?"sticky":"static";e.style.position=i});break;default:this.activeTab=t,this.settingsStore.changeTabSettings({setting:"main",value:t});break}if(this.$root._data.screenContext==="sidebar"&&this.activeTab!==t)switch(this.activeTab=t,await this.$nextTick(),t){case"social":this.postEditorStore.currentPost.modalOpen||(this.settingsStore.changeTabSettings({setting:"modal",value:"social"}),this.postEditorStore.currentPost.modalOpen=!0);break;case"linkAssistant":this.postEditorStore.currentPost.linkAssistant&&!this.postEditorStore.currentPost.linkAssistant.modalOpen&&(this.postEditorStore.currentPost.linkAssistant.modalOpen=!0);break;case"redirects":this.postEditorStore.currentPost.redirects&&!this.postEditorStore.currentPost.redirects.modalOpen&&(this.postEditorStore.currentPost.redirects.modalOpen=!0);break;case"seoRevisions":await this.$nextTick(),!this.seoRevisionsStore.modalOpenSidebar&&(this.licenseStore.isUnlicensed||this.seoRevisionsStore.itemsLimit===0)&&(this.seoRevisionsStore.modalOpenSidebar=!0);break}},maybeResetActiveTab(t){t||this.$root._data.screenContext==="sidebar"&&this.$nextTick(()=>{this.processChangeTab(null)})},closeModal(){this.postEditorStore.currentPost.modalOpen=!1},getTabPermission(t){const e=this.tabs.find(i=>i.slug===t);return typeof e.permission<"u"?e.permission:`aioseo_page_${e.slug}_settings`},getTabName(t){const e=this.tabs.find(i=>i.slug===t);return e==null?void 0:e.name}},mixins:[io],created(){switch(this.modal=nt()["aioseo-modaltab"]||this.modal,this.modal&&(this.settingsStore.changeTabSettings({setting:"modal",value:this.modal}),this.postEditorStore.currentPost.modalOpen=!0,setTimeout(()=>{Lt("aioseo-modaltab")},500)),this.$nextTick(()=>{this.settingsStore.metaBoxTabs.mainSidebar.tab&&this.processChangeTab(this.settingsStore.metaBoxTabs.mainSidebar.tab)}),window.aioseoBus.$on("standalone-update-post",t=>{Object.keys(t).forEach(e=>{this.postEditorStore.currentPost[e]=t[e]})}),this.$root._data.screenContext){case"sidebar":this.activeTab=null;break;default:this.activeTab=nt()["aioseo-tab"]||this.initTab,this.settingsStore.changeTabSettings({setting:"main",value:this.activeTab}),setTimeout(()=>{Lt("aioseo-tab")},500);break}},beforeMount(){const t=document.querySelector(".interface-complementary-area__pin-unpin-item");t&&t!==null&&(t.style.display="block")},mounted(){mt()&&!this.licenseStore.isUnlicensed&&this.watchObjectRevisionsOnSavePost()}},Ic={class:"aioseo-app aioseo-post-settings"},Bc={key:0,class:"aioseo-sidepanel"},Rc=["onClick"],Oc={class:"name"},Dc={key:0,class:"aioseo-tab-title"};function Nc(t,e,i,s,o,r){const u=a("core-main-tabs"),c=a("svg-circle-information-solid"),p=a("svg-caret"),S=a("svg-close"),C=a("alert"),$=a("modal-content"),v=a("core-modal");return n(),f("div",Ic,[t.$root._data.screenContext!=="sidebar"?(n(),_(u,{key:0,tabs:r.getTabs,showSaveButton:!1,active:o.activeTab,internal:"",disableMobile:"",onChanged:e[0]||(e[0]=b=>r.processChangeTab(b))},{"var-tab-icon":l(({tab:b})=>[(n(),_(B(b.icon),{class:E([{warning:b.warning}])},null,8,["class"])),(n(),_(B(b.badge)))]),_:1},8,["tabs","active"])):g("",!0),d(at,{name:"route-fade",mode:"out-in"},{default:l(()=>[t.$root._data.screenContext==="sidebar"&&o.activeTab===null?(n(),f("div",Bc,[(n(!0),f(j,null,et(r.getTabs,(b,k)=>(n(),f("a",{key:k,class:"aioseo-sidepanel-button",href:"#",onClick:H(M=>r.processChangeTab(b.slug),["prevent"])},[(n(),_(B(b.icon),{class:"icon"})),h("div",Oc,m(b.name),1),(n(),_(B(b.badge))),b.warning?(n(),_(c,{key:0,width:"15",height:"15"})):g("",!0),d(p)],8,Rc))),128))])):g("",!0)]),_:1}),d(at,{name:"route-fade",mode:"out-in"},{default:l(()=>[o.activeTab?(n(),f("div",{key:o.activeTab,class:E(["aioseo-tab",{"is-page-builder":!!s.rootStore.aioseo.integration}])},[t.$root._data.screenContext==="sidebar"?(n(),f("div",Dc,[h("span",null,m(r.getTabName(o.activeTab)),1),d(S,{onClick:e[1]||(e[1]=b=>r.processChangeTab(null))})])):g("",!0),this.$root._data.screenContext==="sidebar"?(n(),_(C,{key:1})):g("",!0),(n(),_(B(o.activeTab),{parentComponentContext:"metabox",onChangeTab:e[2]||(e[2]=b=>r.processChangeTab(b))},null,32))],2)):g("",!0)]),_:1}),d(v,{show:s.postEditorStore.currentPost.modalOpen&&t.$root._data.screenContext==="sidebar",onClose:r.closeModal,classes:["aioseo-post-settings-modal"],"modal-name":"preview-snippet-editor"},{headerTitle:l(()=>[w(m(o.strings.modalTitle),1)]),body:l(()=>[d($)]),_:1},8,["show","onClose"])])}const Vc=y(Hc,[["render",Nc]]),Uc={setup(){return{postEditorStore:P()}},components:{Alert:Te,MainView:Vc},mixins:[ss],data(){return{scrollContainer:".interface-interface-skeleton__content",scrollTimeout:1e3,ScrollAndHighlightTimeout:2e3}}};function Kc(t,e,i,s,o,r){const u=a("alert"),c=a("main-view");return n(),f("div",{onClick:e[0]||(e[0]=H(()=>{},["stop"]))},[this.$root._data.screenContext!=="sidebar"?(n(),_(u,{key:0})):g("",!0),s.postEditorStore.currentPost.id?(n(),_(c,{key:1})):g("",!0)])}const Uh=y(Uc,[["render",Kc]]);export{Uh as A}; all-in-one-seo-pack/dist/Lite/assets/js/Archives.DquamlTd.js000064400000007274151222736000017601 0ustar00import{a as f,u as b,e as A}from"./links.CKSg78-h.js";import{A as v,T as y}from"./TitleDescription.IMeljFtb.js";import{C as S}from"./Card.C6Yzm1Gr.js";import{C}from"./Tabs.Cl9YKSoz.js";import{P as T}from"./PostTypes.Cef6XkQ_.js";import{y as i,c,F as D,L as x,o,l as p,m as s,a as m,I as $,t as k,D as l,x as P,T as B}from"./vue.esm-bundler.DzelZkHk.js";import{_ as w}from"./_plugin-vue_export-helper.BN1snXvA.js";import"./default-i18n.BtxsUzQk.js";import"./isArrayLikeObject.CkjpbQo7.js";import"./JsonValues.D25FTfEu.js";import"./MaxCounts.DHV7qSQX.js";import"./RadioToggle.XiBFFWmC.js";import"./Caret.Cuasz9Up.js";import"./ProBadge.Dgq0taM8.js";import"./RobotsMeta.DjWj_HSz.js";import"./Checkbox.CfGJSeWE.js";import"./Checkmark.Du5wcsnR.js";import"./Row.ou4tdPuA.js";import"./SettingsRow.B0N4hwjp.js";import"./tags.BOsOOXAU.js";import"./Tags.BcJqtOJO.js";import"./postSlug.D1i5fFFO.js";import"./metabox.BW1QyeRU.js";import"./cleanForSlug.C_GG_Tvc.js";import"./toString.EVG10Qqs.js";import"./_baseTrim.BYZhh0MR.js";import"./_stringToArray.DnK4tKcY.js";import"./get.CmvQfcJ_.js";import"./GoogleSearchPreview.C5aCQaFX.js";import"./strings.gPxlDykU.js";import"./isString.Dmb68Xbt.js";import"./constants.DARe-ccJ.js";import"./HtmlTagsEditor.DRjNQQYX.js";import"./Editor.lV8823Bb.js";import"./index.DX4OhBfI.js";import"./UnfilteredHtml.D-19NKqQ.js";import"./Tooltip.DcUmvaHX.js";import"./Slide.BfXXFx9A.js";import"./TruSeoScore.-L7x872T.js";import"./Ellipse.HvxcRElJ.js";import"./Information.Dx9dnFtu.js";const L={setup(){return{optionsStore:f(),rootStore:b(),settingsStore:A()}},components:{Advanced:v,CoreCard:S,CoreMainTabs:C,TitleDescription:y},mixins:[T],data(){return{internalDebounce:null,tabs:[{slug:"title-description",name:this.$t.__("Title & Description",this.$td),access:"aioseo_search_appearance_settings",pro:!1},{slug:"advanced",name:this.$t.__("Advanced",this.$td),access:"aioseo_search_appearance_settings",pro:!1}],archives:[{label:"Author Archives",name:"author",singular:"Author",icon:"dashicons-admin-users"},{label:"Date Archives",name:"date",singular:"Date",icon:"dashicons-calendar-alt"},{label:"Search Page",name:"search",singular:"Search Page",icon:"dashicons-search"}]}},computed:{getArchives(){return this.archives.concat(this.rootStore.aioseo.postData.archives.map(e=>({label:`${e.label} Archives`,name:`${e.name}Archive`,icon:"dashicons-category",singular:e.singular,dynamic:!0})))}},methods:{processChangeTab(e,n){this.internalDebounce||(this.internalDebounce=!0,this.settingsStore.changeTab({slug:`${e}Archives`,value:n}),setTimeout(()=>{this.internalDebounce=!1},50))},getOptions(e){return e.dynamic?this.optionsStore.dynamicOptions.searchAppearance.archives[e.name.replace("Archive","")]:this.optionsStore.options.searchAppearance.archives[e.name]}}},O={class:"aioseo-search-appearance-archives"};function j(e,n,F,r,u,a){const h=i("core-main-tabs"),d=i("core-card");return o(),c("div",O,[(o(!0),c(D,null,x(a.getArchives,(t,_)=>(o(),p(d,{key:_,slug:`${t.name}Archives`},{header:s(()=>[m("div",{class:$(["icon dashicons",e.getPostIconClass(t.icon)])},null,2),m("div",null,k(t.label),1)]),tabs:s(()=>[l(h,{tabs:u.tabs,showSaveButton:!1,active:r.settingsStore.settings.internalTabs[`${t.name}Archives`],internal:"",onChanged:g=>a.processChangeTab(t.name,g)},null,8,["tabs","active","onChanged"])]),default:s(()=>[l(B,{name:"route-fade",mode:"out-in"},{default:s(()=>[(o(),p(P(r.settingsStore.settings.internalTabs[`${t.name}Archives`]),{object:t,separator:r.optionsStore.options.searchAppearance.global.separator,options:a.getOptions(t),type:"archives","show-bulk":!1,"no-meta-box":"","include-keywords":""},null,8,["object","separator","options"]))]),_:2},1024)]),_:2},1032,["slug"]))),128))])}const Ce=w(L,[["render",j]]);export{Ce as default}; all-in-one-seo-pack/dist/Lite/assets/js/_arrayEach.Fgt6pfHj.js000064400000000145151222736000017764 0ustar00function u(n,o){for(var t=-1,e=n==null?0:n.length;++t(n(),o("div",p,[t(r(i))]))}};export{G as default}; all-in-one-seo-pack/dist/Lite/assets/js/BadBotBlocker.6KphGPZc.js000064400000010037151222736000020302 0ustar00import{a as b,u as _}from"./links.CKSg78-h.js";import{B}from"./Textarea.BirUpna9.js";import{C as g}from"./Caret.Cuasz9Up.js";import{C as f}from"./Card.C6Yzm1Gr.js";import{C as S}from"./SettingsRow.B0N4hwjp.js";import{y as i,c as h,D as r,m as l,o as c,l as d,d as p}from"./vue.esm-bundler.DzelZkHk.js";import{_ as V}from"./_plugin-vue_export-helper.BN1snXvA.js";import"./default-i18n.BtxsUzQk.js";import"./isArrayLikeObject.CkjpbQo7.js";import"./Tooltip.DcUmvaHX.js";import"./index.DX4OhBfI.js";import"./Slide.BfXXFx9A.js";import"./Row.ou4tdPuA.js";const x={setup(){return{optionsStore:b(),rootStore:_()}},components:{BaseTextarea:B,CoreAlert:g,CoreCard:f,CoreSettingsRow:S},data(){return{strings:{badBotBlocker:this.$t.__("Bad Bot Blocker",this.$td),blockBadBotsHttp:this.$t.__("Block Bad Bots using HTTP",this.$td),blockReferralSpamHttp:this.$t.__("Block Referral Spam using HTTP",this.$td),trackBlockedBots:this.$t.__("Track Blocked Bots",this.$td),useCustomBlocklists:this.$t.__("Use Custom Blocklists",this.$td),userAgentBlocklist:this.$t.__("User Agent Blocklist",this.$td),refererBlockList:this.$t.__("Referer Blocklist",this.$td),blockedBotsLog:this.$t.__("Blocked Bots Log",this.$td),logLocation:this.$t.sprintf(this.$t.__("The log for the blocked bots is located here: %1$s",this.$td),'
    '+this.rootStore.aioseo.urls.blockedBotsLogUrl+"")}}}},y={class:"aioseo-tools-bad-bot-blocker"};function C(H,t,L,o,s,R){const a=i("base-toggle"),n=i("core-settings-row"),m=i("base-textarea"),k=i("core-alert"),u=i("core-card");return c(),h("div",y,[r(u,{slug:"badBotBlocker","header-text":s.strings.badBotBlocker},{default:l(()=>[r(n,{name:s.strings.blockBadBotsHttp},{content:l(()=>[r(a,{modelValue:o.optionsStore.options.deprecated.tools.blocker.blockBots,"onUpdate:modelValue":t[0]||(t[0]=e=>o.optionsStore.options.deprecated.tools.blocker.blockBots=e)},null,8,["modelValue"])]),_:1},8,["name"]),r(n,{name:s.strings.blockReferralSpamHttp},{content:l(()=>[r(a,{modelValue:o.optionsStore.options.deprecated.tools.blocker.blockReferer,"onUpdate:modelValue":t[1]||(t[1]=e=>o.optionsStore.options.deprecated.tools.blocker.blockReferer=e)},null,8,["modelValue"])]),_:1},8,["name"]),o.optionsStore.options.deprecated.tools.blocker.blockBots||o.optionsStore.options.deprecated.tools.blocker.blockReferer?(c(),d(n,{key:0,name:s.strings.useCustomBlocklists},{content:l(()=>[r(a,{modelValue:o.optionsStore.options.deprecated.tools.blocker.custom.enable,"onUpdate:modelValue":t[2]||(t[2]=e=>o.optionsStore.options.deprecated.tools.blocker.custom.enable=e)},null,8,["modelValue"])]),_:1},8,["name"])):p("",!0),o.optionsStore.options.deprecated.tools.blocker.blockBots&&o.optionsStore.options.deprecated.tools.blocker.custom.enable?(c(),d(n,{key:1,name:s.strings.userAgentBlocklist},{content:l(()=>[r(m,{minHeight:200,maxHeight:200,modelValue:o.optionsStore.options.deprecated.tools.blocker.custom.bots,"onUpdate:modelValue":t[3]||(t[3]=e=>o.optionsStore.options.deprecated.tools.blocker.custom.bots=e)},null,8,["modelValue"])]),_:1},8,["name"])):p("",!0),o.optionsStore.options.deprecated.tools.blocker.blockReferer&&o.optionsStore.options.deprecated.tools.blocker.custom.enable?(c(),d(n,{key:2,name:s.strings.refererBlockList},{content:l(()=>[r(m,{minHeight:200,maxHeight:200,modelValue:o.optionsStore.options.deprecated.tools.blocker.custom.referer,"onUpdate:modelValue":t[4]||(t[4]=e=>o.optionsStore.options.deprecated.tools.blocker.custom.referer=e)},null,8,["modelValue"])]),_:1},8,["name"])):p("",!0),o.optionsStore.options.deprecated.tools.blocker.blockBots||o.optionsStore.options.deprecated.tools.blocker.blockReferer?(c(),d(n,{key:3,name:s.strings.trackBlockedBots},{content:l(()=>[r(a,{modelValue:o.optionsStore.options.deprecated.tools.blocker.track,"onUpdate:modelValue":t[5]||(t[5]=e=>o.optionsStore.options.deprecated.tools.blocker.track=e)},null,8,["modelValue"]),r(k,{type:"blue",innerHTML:s.strings.logLocation},null,8,["innerHTML"])]),_:1},8,["name"])):p("",!0)]),_:1},8,["header-text"])])}const z=V(x,[["render",C]]);export{z as default}; all-in-one-seo-pack/dist/Lite/assets/js/_baseSet.DMEJKZFs.js000064400000000633151222736000017314 0ustar00import{i as l,k as _,l as p}from"./isArrayLikeObject.CkjpbQo7.js";import{c as d,t as m}from"./get.CmvQfcJ_.js";function v(r,s,c,a){if(!l(r))return r;s=d(s,r);for(var o=-1,e=s.length,f=e-1,t=r;t!=null&&++o!!t).map(t=>v.decodeHTMLEntities(G(t)).replace(/#breadcrumb_separator/g,''+this.optionsStore.options.breadcrumbs.separator+"").replace(/#breadcrumb_link/g,"Permalink"));return this.useDefaultTemplate&&!this.optionsStore.options.breadcrumbs.showCurrentItem&&(e=e.slice(0,e.length-1)),e},decodeHTMLEntities:Q}},ae={class:"aioseo-preview-box"},ne={key:0,class:"label"},le={key:0,class:"aioseo-breadcrumb-separator"},ce=["innerHTML"],me=["innerHTML"];function ue(e,t,d,o,r,n){return c(),h("div",ae,[d.label?(c(),h("span",ne,u(d.label)+": ",1)):g("",!0),(c(!0),h(L,null,P(this.getPreviewData(),(p,m)=>(c(),h(L,{key:m},[10&&mt.name===e.name&&t.hierarchical).length},postTypeHasArchive(e){return 0t.name===e.name&&t.hasArchive).length},getPostTypeTemplate(e,t=!0){let d=this.rootStore.aioseo.breadcrumbs.defaultTemplate;return t?d=d.replace(new RegExp("#breadcrumb_label","g"),e.singular):d=d.replace(new RegExp("#breadcrumb_label","g"),"#breadcrumb_post_title_"+e.name),d},getPostTaxonomyOptions(e){return this.rootStore.aioseo.postData.taxonomies.filter(t=>e.taxonomies.includes(t.name)).map(t=>({value:t.name,label:t.label}))},getPostTypeTaxonomy(e){const t=this.rootStore.aioseo.postData.taxonomies.filter(d=>e.taxonomies.includes(d.name));return 0(c(),f(y,{class:"aioseo-breadcrumbs-post-type",name:T.label,key:T.name},{content:a(()=>[b("div",null,[s(p,{"preview-data":n.getPreview(T)},null,8,["preview-data"]),s(S,null,{default:a(()=>[s(w,null,{default:a(()=>[s(m,{class:"current-item"}),_(" "+u(r.strings.useDefaultTemplate),1)]),_:1})]),_:1})])]),_:2},1032,["name"]))),128))])}const he=$(de,[["render",be]]),_e={components:{ContentTypesLite:he,CoreBlur:X,CoreCard:F,CoreMainTabs:Z,CoreProBadge:ee,Cta:te},data(){return{strings:{breadcrumbTemplates:this.$t.__("Breadcrumb Templates",this.$td),breadcrumbTemplatesTooltip:this.$t.__("Override the default template for breadcrumbs on your site using our easy-to-use template editor.",this.$td),ctaButtonText:this.$t.__("Unlock Breadcrumb Templates",this.$td),ctaHeader1:this.$t.sprintf(this.$t.__("Breadcrumb Templates is a %1$s Feature",this.$td),"PRO"),ctaDescription:this.$t.__("Our template editor will allow you to easily customize how breadcrumbs are displayed on your site based on each post type or taxonomy.",this.$td)},features:[this.$t.__("Custom HTML templates",this.$td),this.$t.__("Content Types",this.$td),this.$t.__("Taxonomies",this.$td),this.$t.__("Archives",this.$td)],tab:"ContentTypesLite",tabs:[{slug:"ContentTypesLite",name:this.$t.__("Content Types",this.$td),access:"aioseo_general_settings",pro:!0},{slug:"Taxonomies",name:this.$t.__("Taxonomies",this.$td),access:"aioseo_general_settings",pro:!0},{slug:"Archives",name:this.$t.__("Archives",this.$td),access:"aioseo_general_settings",pro:!0},{slug:"Advanced",name:this.$t.__("Advanced",this.$td),access:"aioseo_general_settings",pro:!0}]}},methods:{}},ge=e=>(W("data-v-5307df34"),e=e(),Y(),e),fe={class:"aioseo-breadcrumbs"},Se={class:"content"},ve=ge(()=>b("br",null,null,-1));function we(e,t,d,o,r,n){const p=l("core-pro-badge"),m=l("core-main-tabs"),w=l("core-blur"),S=l("cta"),y=l("core-card");return c(),h("div",fe,[s(y,{slug:"breadcrumbTemplates"},{header:a(()=>[b("span",null,u(r.strings.breadcrumbTemplates),1),s(p)]),tooltip:a(()=>[_(u(r.strings.breadcrumbTemplatesTooltip),1)]),tabs:a(()=>[b("div",Se,[s(w,null,{default:a(()=>[s(m,{tabs:r.tabs,showSaveButton:!1,active:r.tab,internal:""},null,8,["tabs","active"]),s(N,{name:"route-fade",mode:"out-in"},{default:a(()=>[(c(),f(z(r.tab),{active:r.tab},null,8,["active"]))]),_:1})]),_:1}),s(S,{"cta-link":e.$links.getPricingUrl("breadcrumb-templates","breadcrumb-templates-upsell"),"button-text":r.strings.ctaButtonText,"learn-more-link":e.$links.getUpsellUrl("breadcrumb-templates",null,e.$isPro?"pricing":"liteUpgrade"),"feature-list":r.features},{"header-text":a(()=>[_(u(r.strings.ctaHeader1),1),ve,_(" "+u(r.strings.ctaHeader2),1)]),description:a(()=>[_(u(r.strings.ctaDescription),1)]),_:1},8,["cta-link","button-text","learn-more-link","feature-list"])])]),_:1})])}const D=$(_e,[["render",we],["__scopeId","data-v-5307df34"]]),ye={setup(){const{strings:e}=K({name:"breadcrumbs"});return{licenseStore:E(),optionsStore:B(),rootStore:I(),composableStrings:e}},components:{BaseRadioToggle:j,Breadcrumbs:D,BreadcrumbsLite:D,CoreCard:F,CoreHtmlTagsEditor:re,CoreSettingsRow:A,CoreSettingsSeparator:oe,CoreUiElementSlider:se,Preview:R},data(){return{displayInfo:{block:{copy:"",desc:this.$t.sprintf(this.$t.__('To add this block, edit a page or post and search for the "%1$s - Breadcrumbs" block. %2$s',this.$td),"AIOSEO",this.$links.getDocLink(this.$constants.GLOBAL_STRINGS.learnMore,"breadcrumbsDisplay",!0))},shortcode:{copy:"[aioseo_breadcrumbs]",desc:this.$t.sprintf(this.$t.__("Use the following shortcode to display the current breadcrumbs. %1$s",this.$td),this.$links.getDocLink(this.$constants.GLOBAL_STRINGS.learnMore,"breadcrumbsShortcode",!0))},widget:{copy:"",desc:`${this.composableStrings.visitWidgetsPage} ${this.$links.getDocLink(this.$constants.GLOBAL_STRINGS.learnMore,"breadcrumbsDisplay",!0)}`},php:{copy:"",desc:this.$t.sprintf(this.$t.__("Use the following PHP code anywhere in your theme (in the loop) to display the breadcrumbs. %1$s",this.$td),this.$links.getDocLink(this.$constants.GLOBAL_STRINGS.learnMore,"breadcrumbsFunction",!0))}},strings:{description:this.$t.sprintf(this.$t.__("Breadcrumbs are an essential part of SEO. By default %1$s will automatically add breadcrumbs to the schema markup that we add to your site and you don't need to make any changes for that to work. Breadcrumbs can also be used as a secondary navigation system that tells users where they are on a website relative to the homepage.",this.$td),"AIOSEO"),descriptionTooltip:this.$t.__("The purpose of breadcrumb navigation is to help users navigate around your website. It also helps search engines understand the structure and hierarchy of links on a web page.",this.$td),breadcrumbs:this.$t.__("Breadcrumbs",this.$td),enableBreadcrumbs:this.$t.__("Enable Breadcrumbs",this.$td),showBreadcrumbsOnYourWebsite:this.$t.__("Show Breadcrumbs on Your Website",this.$td),breadcrumbSettings:this.$t.__("Breadcrumb Settings",this.$td),breadcrumbTooltip:this.$t.sprintf(this.$t.__("These settings will affect all the breadcrumbs displayed by %1$s throughout your site.",this.$td),"AIOSEO"),separator:this.$t.__("Separator",this.$td),homepageLink:this.$t.__("Homepage Link",this.$td),homepageLabel:this.$t.__("Homepage label",this.$td),homepageDescription:this.$t.__("Label used for homepage link (first item) in breadcrumbs.",this.$td),breadcrumbPrefix:this.$t.__("Breadcrumb Prefix",this.$td),breadcrumbPrefixDescription:this.$t.__("Prefix for breadcrumb path.",this.$td),archiveFormat:this.$t.__("Archive Format",this.$td),archiveFormatDescription:this.$t.__("Format the label used for archives page.",this.$td),searchResultFormat:this.$t.__("Search Result Format",this.$td),searchResultFormatDescription:this.$t.__("Format the label used for the search results page.",this.$td),errorFormat404:this.$t.__("404 Error Format",this.$td),errorFormat404Description:this.$t.__("Format the label used for the 404 error page.",this.$td),currentItem:this.$t.__("Current Item",this.$td),showCurrentItem:this.$t.__("Show current item",this.$td),linkCurrentItem:this.$t.__("Link current item",this.$td),home:this.$t.__("Home",this.$td),category:this.$t.__("Category",this.$td),subcategory:this.$t.__("Subcategory",this.$td),articleTitle:this.$t.__("Article Title",this.$td),searchKeyword:this.$t.__("search key word goes here",this.$td),categoryName:this.$t.__("Category Name",this.$td),breadcrumbTemplates:this.$t.__("Breadcrumb Templates",this.$td),categoryHierarchy:this.$t.__("Category Hierarchy",this.$td),categoryHierarchyDescription:this.$t.__("Display complete category hierarchy even if not selected on each individual post.",this.$td),blog:this.$t.__("Blog",this.$td),blogCrumb:this.$t.__("Blog Page Title",this.$td),showBlogHome:this.$t.__("Show Blog Home",this.$td)}}},methods:{getRootPreview(){const e=this.optionsStore.options.breadcrumbs.homepageLabel?this.optionsStore.options.breadcrumbs.homepageLabel:"Home";return[this.optionsStore.options.breadcrumbs.breadcrumbPrefix?this.optionsStore.options.breadcrumbs.breadcrumbPrefix:"",this.optionsStore.options.breadcrumbs.homepageLink?e:""].filter(t=>!!t).map(t=>v.decodeHTMLEntities(t))},getPostPreview(){return[...this.getRootPreview(),this.optionsStore.options.breadcrumbs.showBlogHome?"Blog Home":"",this.strings.category,this.strings.subcategory,this.strings.articleTitle].filter(e=>!!e).map(e=>v.decodeHTMLEntities(e))},getArchivePreview(){return[...this.getRootPreview(),this.getArchivesOfText].filter(e=>!!e).map(e=>v.decodeHTMLEntities(e))},getSearchPreview(){return[...this.getRootPreview(),this.getSearchForText].filter(e=>!!e).map(e=>v.decodeHTMLEntities(e))},get404Preview(){return[...this.getRootPreview(),this.optionsStore.options.breadcrumbs.errorFormat404].filter(e=>!!e).map(e=>v.decodeHTMLEntities(e))},sanitizeString:M},computed:{getSearchForText(){return this.optionsStore.options.breadcrumbs.searchResultFormat.replace(new RegExp("#breadcrumb_search_string","g"),`${this.strings.searchKeyword}`)},getArchivesOfText(){return this.optionsStore.options.breadcrumbs.archiveFormat.replace(new RegExp("#breadcrumb_archive_post_type_name","g"),`${this.strings.categoryName}`)},getPagedText(){return this.optionsStore.options.breadcrumbs.pagedFormat.replace(new RegExp("#breadcrumb_format_page_number","g"),"2")},previews(){return[{label:"Post",preview:this.getPostPreview()},{label:"Archive",preview:this.getArchivePreview()},{label:"Search",preview:this.getSearchPreview()},{label:"404",preview:this.get404Preview()}]}}},Te={class:"aioseo-breadcrumbs"},Le={class:"aioseo-settings-row aioseo-section-description"},$e=["innerHTML"],ke={class:"previews-box main-preview"},Be={class:"homepage-link"},Pe={class:"homepage-link-label"},Ce={class:"aioseo-description"},xe={class:"aioseo-description"},He={class:"aioseo-description"},De={class:"aioseo-description"},Ie={class:"aioseo-description"},Ae={class:"aioseo-description first"},Fe={key:0,class:"aioseo-description"};function Re(e,t,d,o,r,n){const p=l("base-toggle"),m=l("core-settings-row"),w=l("core-ui-element-slider"),S=l("core-card"),y=l("preview"),T=l("core-settings-separator"),C=l("base-radio-toggle"),x=l("base-input"),k=l("core-html-tags-editor"),V=l("breadcrumbs-lite"),O=l("breadcrumbs",!0);return c(),h("div",Te,[s(S,{slug:"enableBreadcrumbs","header-text":r.strings.breadcrumbs},{tooltip:a(()=>[_(u(r.strings.descriptionTooltip),1)]),default:a(()=>[b("div",Le,[_(u(r.strings.description)+" ",1),b("span",{innerHTML:e.$links.getDocLink(e.$constants.GLOBAL_STRINGS.learnMore,"breadcrumbsDisplay",!0)},null,8,$e)]),s(m,{name:r.strings.enableBreadcrumbs},{content:a(()=>[s(p,{modelValue:o.optionsStore.options.breadcrumbs.enable,"onUpdate:modelValue":t[0]||(t[0]=i=>o.optionsStore.options.breadcrumbs.enable=i)},null,8,["modelValue"])]),_:1},8,["name"]),o.optionsStore.options.breadcrumbs.enable?(c(),f(w,{key:0,label:r.strings.showBreadcrumbsOnYourWebsite,options:r.displayInfo},null,8,["label","options"])):g("",!0)]),_:1},8,["header-text"]),o.optionsStore.options.breadcrumbs.enable?(c(),f(S,{key:0,slug:"breadcrumbSettings","header-text":r.strings.breadcrumbSettings},{tooltip:a(()=>[_(u(r.strings.breadcrumbTooltip),1)]),default:a(()=>[s(m,{name:e.$constants.GLOBAL_STRINGS.preview},{content:a(()=>[b("div",ke,[(c(!0),h(L,null,P(n.previews,(i,U)=>(c(),f(y,{key:U,"preview-data":i.preview,label:i.label},null,8,["preview-data","label"]))),128))])]),_:1},8,["name"]),s(m,{name:r.strings.separator},{content:a(()=>[s(T,{"options-separator":o.optionsStore.options.breadcrumbs.separator,"onUpdate:separator":t[1]||(t[1]=i=>o.optionsStore.options.breadcrumbs.separator=i),"show-more-slug":"breadcrumbsShowMoreSeparators"},null,8,["options-separator"])]),_:1},8,["name"]),s(m,{name:r.strings.homepageLink},{content:a(()=>[b("div",Be,[s(C,{modelValue:o.optionsStore.options.breadcrumbs.homepageLink,"onUpdate:modelValue":t[2]||(t[2]=i=>o.optionsStore.options.breadcrumbs.homepageLink=i),name:"homepageLink",options:[{label:e.$constants.GLOBAL_STRINGS.off,value:!1,activeClass:"dark"},{label:e.$constants.GLOBAL_STRINGS.on,value:!0}]},null,8,["modelValue","options"]),b("div",Pe,[_(u(r.strings.homepageLabel)+" ",1),s(x,{size:"medium",modelValue:n.sanitizeString(o.optionsStore.options.breadcrumbs.homepageLabel),"onUpdate:modelValue":[t[3]||(t[3]=i=>o.optionsStore.options.breadcrumbs.homepageLabel=n.sanitizeString(i)),t[4]||(t[4]=i=>o.optionsStore.options.breadcrumbs.homepageLabel=i)]},null,8,["modelValue"])])]),b("div",Ce,u(r.strings.homepageDescription),1)]),_:1},8,["name"]),s(m,{name:r.strings.breadcrumbPrefix},{content:a(()=>[s(x,{modelValue:n.sanitizeString(o.optionsStore.options.breadcrumbs.breadcrumbPrefix),"onUpdate:modelValue":t[5]||(t[5]=i=>o.optionsStore.options.breadcrumbs.breadcrumbPrefix=n.sanitizeString(i)),size:"medium"},null,8,["modelValue"]),b("div",xe,u(r.strings.breadcrumbPrefixDescription),1)]),_:1},8,["name"]),0[s(C,{modelValue:o.optionsStore.options.breadcrumbs.showBlogHome,"onUpdate:modelValue":t[6]||(t[6]=i=>o.optionsStore.options.breadcrumbs.showBlogHome=i),name:"showBlogHome",options:[{label:e.$constants.GLOBAL_STRINGS.off,value:!1,activeClass:"dark"},{label:e.$constants.GLOBAL_STRINGS.on,value:!0}]},null,8,["modelValue","options"])]),_:1},8,["name"])):g("",!0),s(m,{name:r.strings.archiveFormat},{content:a(()=>[s(k,{modelValue:n.sanitizeString(o.optionsStore.options.breadcrumbs.archiveFormat),"onUpdate:modelValue":t[7]||(t[7]=i=>o.optionsStore.options.breadcrumbs.archiveFormat=n.sanitizeString(i)),"line-numbers":!1,single:"",checkUnfilteredHtml:"","tags-context":"breadcrumbs-format-archive","minimum-line-numbers":3,showAllTagsLink:!1,"default-tags":["breadcrumb_archive_post_type_name"],tagsDescription:""},null,8,["modelValue"]),b("div",He,u(r.strings.archiveFormatDescription),1)]),_:1},8,["name"]),s(m,{name:r.strings.searchResultFormat},{content:a(()=>[s(k,{modelValue:n.sanitizeString(o.optionsStore.options.breadcrumbs.searchResultFormat),"onUpdate:modelValue":t[8]||(t[8]=i=>o.optionsStore.options.breadcrumbs.searchResultFormat=n.sanitizeString(i)),"line-numbers":!1,single:"",checkUnfilteredHtml:"","tags-context":"breadcrumbs-format-search","minimum-line-numbers":3,showAllTagsLink:!1,"default-tags":["breadcrumb_search_string"],tagsDescription:""},null,8,["modelValue"]),b("div",De,u(r.strings.searchResultFormatDescription),1)]),_:1},8,["name"]),s(m,{name:r.strings.errorFormat404},{content:a(()=>[s(k,{modelValue:n.sanitizeString(o.optionsStore.options.breadcrumbs.errorFormat404),"onUpdate:modelValue":t[9]||(t[9]=i=>o.optionsStore.options.breadcrumbs.errorFormat404=n.sanitizeString(i)),"line-numbers":!1,allowTags:!1,disableEmoji:!1,single:"",checkUnfilteredHtml:"","minimum-line-numbers":3,showAllTagsLink:!1,tagsDescription:""},null,8,["modelValue"]),b("div",Ie,u(r.strings.errorFormat404Description),1)]),_:1},8,["name"]),s(m,{name:r.strings.currentItem},{content:a(()=>[b("div",Ae,[s(p,{modelValue:o.optionsStore.options.breadcrumbs.showCurrentItem,"onUpdate:modelValue":t[10]||(t[10]=i=>o.optionsStore.options.breadcrumbs.showCurrentItem=i),class:"current-item"},null,8,["modelValue"]),_(" "+u(r.strings.showCurrentItem),1)]),o.optionsStore.options.breadcrumbs.showCurrentItem?(c(),h("div",Fe,[s(p,{modelValue:o.optionsStore.options.breadcrumbs.linkCurrentItem,"onUpdate:modelValue":t[11]||(t[11]=i=>o.optionsStore.options.breadcrumbs.linkCurrentItem=i),class:"current-item"},null,8,["modelValue"]),_(" "+u(r.strings.linkCurrentItem),1)])):g("",!0)]),_:1},8,["name"])]),_:1},8,["header-text"])):g("",!0),o.licenseStore.isUnlicensed?(c(),f(V,{key:1})):g("",!0),o.optionsStore.options.breadcrumbs.enable&&!o.licenseStore.isUnlicensed?(c(),f(O,{key:2})):g("",!0)])}const bt=$(ye,[["render",Re]]);export{bt as default}; all-in-one-seo-pack/dist/Lite/assets/js/Build.CQX7DDZt.js000064400000005207151222736000016623 0ustar00import{o as n,c as o,a as t}from"./vue.esm-bundler.DzelZkHk.js";import{_ as s}from"./_plugin-vue_export-helper.BN1snXvA.js";const c={},a={viewBox:"0 0 12 15",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"aioseo-share"},C=t("path",{d:"M8.69333 10.7601C9.04 10.4468 9.49333 10.2468 10 10.2468C11.0733 10.2468 11.9467 11.1201 11.9467 12.1934C11.9467 13.2668 11.0733 14.1401 10 14.1401C8.92667 14.1401 8.05333 13.2668 8.05333 12.1934C8.05333 12.0468 8.07333 11.9001 8.10667 11.7601L3.36 8.98677C3 9.32011 2.52667 9.52677 2 9.52677C0.893333 9.52677 0 8.63344 0 7.52677C0 6.42011 0.893333 5.52677 2 5.52677C2.52667 5.52677 3 5.73344 3.36 6.06677L8.06 3.32677C8.02667 3.17344 8 3.02011 8 2.86011C8 1.75344 8.89333 0.860107 10 0.860107C11.1067 0.860107 12 1.75344 12 2.86011C12 3.96677 11.1067 4.86011 10 4.86011C9.47333 4.86011 9 4.65344 8.64 4.32011L3.94 7.06011C3.97333 7.21344 4 7.36677 4 7.52677C4 7.68677 3.97333 7.84011 3.94 7.99344L8.69333 10.7601ZM10.6667 2.86011C10.6667 2.49344 10.3667 2.19344 10 2.19344C9.63333 2.19344 9.33333 2.49344 9.33333 2.86011C9.33333 3.22677 9.63333 3.52677 10 3.52677C10.3667 3.52677 10.6667 3.22677 10.6667 2.86011ZM2 8.19344C1.63333 8.19344 1.33333 7.89344 1.33333 7.52677C1.33333 7.16011 1.63333 6.86011 2 6.86011C2.36667 6.86011 2.66667 7.16011 2.66667 7.52677C2.66667 7.89344 2.36667 8.19344 2 8.19344ZM9.33333 12.2068C9.33333 12.5734 9.63333 12.8734 10 12.8734C10.3667 12.8734 10.6667 12.5734 10.6667 12.2068C10.6667 11.8401 10.3667 11.5401 10 11.5401C9.63333 11.5401 9.33333 11.8401 9.33333 12.2068Z",fill:"currentColor"},null,-1),l=[C];function _(e,r){return n(),o("svg",a,l)}const m=s(c,[["render",_]]),i={},u={viewBox:"0 0 16 15",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"aioseo-build"},p=t("path",{d:"M9.05061 6.10632L15.1039 12.1597C15.3706 12.4263 15.3706 12.8463 15.1039 13.0997L13.5706 14.633C13.3106 14.893 12.8906 14.893 12.6306 14.633L6.55728 8.55966C5.01061 9.13966 3.20395 8.81299 1.96395 7.57299C0.430614 6.04632 0.290614 3.65299 1.53061 1.95966L4.08395 4.51299L5.03061 3.57299L2.47061 1.00632C4.17061 -0.233678 6.55728 -0.093678 8.09061 1.43966C9.35061 2.70632 9.67061 4.54632 9.05061 6.10632ZM6.79739 6.91968L13.1041 13.2263L13.6907 12.633L7.39072 6.33301C7.69739 5.93968 7.89739 5.49968 7.97739 5.02634C8.14405 4.09968 7.87072 3.10634 7.15072 2.38634C6.51739 1.75968 5.68405 1.46634 4.85739 1.51301L6.91739 3.57301L4.09072 6.39968L2.03072 4.33968C1.98406 5.16634 2.27739 6.00634 2.91072 6.63301C3.60406 7.32634 4.55739 7.59968 5.46406 7.46634C5.93739 7.39968 6.39072 7.21968 6.79739 6.91968Z",fill:"currentColor"},null,-1),f=[p];function L(e,r){return n(),o("svg",u,f)}const g=s(i,[["render",L]]);export{g as S,m as a}; all-in-one-seo-pack/dist/Lite/assets/js/Card.C6Yzm1Gr.js000064400000005254151222736000016511 0ustar00import{e as y}from"./links.CKSg78-h.js";import{C as k}from"./Tooltip.DcUmvaHX.js";import{a as b,S as p}from"./Caret.Cuasz9Up.js";import{a as B}from"./index.DX4OhBfI.js";import{T}from"./Slide.BfXXFx9A.js";import{y as l,o,c as r,I as g,a as i,q as a,H as q,t as w,l as c,m as u,D as A,d as n}from"./vue.esm-bundler.DzelZkHk.js";import{_ as H}from"./_plugin-vue_export-helper.BN1snXvA.js";const N={setup(){return{settingsStore:y()}},emits:["close-card","toggle-card"],components:{CoreTooltip:k,SvgCaret:b,SvgCircleQuestionMark:B,SvgClose:p,TransitionSlide:T},props:{slug:{type:String,required:!0},headerText:String,toggles:{type:Boolean,default(){return!0}},hideHeader:Boolean,noSlide:Boolean,closes:Boolean,saveToggleStatus:{type:Boolean,default(){return!0}},disabled:Boolean,cardClass:{type:Object,default(){return{}}}},watch:{toggles(t){const s=this.slug;t&&!this.settingsStore.settings.toggledCards[s]&&this.settingsStore.toggleCard({slug:s,shouldSave:!0})}},methods:{toggleCard(){this.settingsStore.toggleCard({slug:this.slug,shouldSave:this.saveToggleStatus}),this.$emit("toggle-card")}}},V={class:"text"},D={class:"header-icon"},L={class:"header-extra"},M={key:1,class:"content"},j={key:0,class:"content"},z={key:1,class:"content"};function E(t,s,e,d,I,m){const f=l("svg-circle-question-mark"),C=l("core-tooltip"),S=l("svg-caret"),v=l("svg-close"),h=l("transition-slide");return o(),r("div",{class:g(["aioseo-card",{disabled:e.disabled,...e.cardClass}])},[e.hideHeader?n("",!0):(o(),r("div",{key:0,class:g(["header",[{toggles:e.toggles}]]),onClick:s[2]||(s[2]=(..._)=>m.toggleCard&&m.toggleCard(..._))},[i("div",V,[i("div",D,[a(t.$slots,"header-icon")]),i("div",{class:"header-title",onClick:s[0]||(s[0]=q(()=>{},["stop"]))},[a(t.$slots,"header",{},()=>[i("span",null,w(e.headerText),1)])]),t.$slots.tooltip?(o(),c(C,{key:0},{tooltip:u(()=>[a(t.$slots,"tooltip")]),default:u(()=>[A(f)]),_:3})):n("",!0),i("div",L,[a(t.$slots,"header-extra")])]),!e.closes&&e.toggles&&d.settingsStore.settings.toggledCards&&!e.noSlide&&!e.disabled?(o(),c(S,{key:0,class:g({rotated:!d.settingsStore.settings.toggledCards[e.slug]})},null,8,["class"])):n("",!0),e.closes?(o(),c(v,{key:1,onClick:s[1]||(s[1]=_=>t.$emit("close-card",!0))})):n("",!0)],2)),t.$slots.disabled&&e.disabled?(o(),r("div",M,[a(t.$slots,"disabled")])):n("",!0),(d.settingsStore.settings.toggledCards||e.noSlide)&&!e.disabled?(o(),c(h,{key:2,active:d.settingsStore.settings.toggledCards[e.slug]&&e.toggles||e.noSlide},{default:u(()=>[t.$slots["before-tabs"]?(o(),r("div",j,[a(t.$slots,"before-tabs")])):n("",!0),a(t.$slots,"tabs"),t.$slots.default?(o(),r("div",z,[a(t.$slots,"default")])):n("",!0)]),_:3},8,["active"])):n("",!0)],2)}const J=H(N,[["render",E]]);export{J as C}; all-in-one-seo-pack/dist/Lite/assets/js/Caret.Cuasz9Up.js000064400000013421151222736000017032 0ustar00import{o,c as s,I as _,a as c,y as L,l as C,m as v,q as u,d as h,x as p,D as w}from"./vue.esm-bundler.DzelZkHk.js";import{_ as l}from"./_plugin-vue_export-helper.BN1snXvA.js";const y={props:{dark:Boolean}},b=c("div",{class:"double-bounce1"},null,-1),$=c("div",{class:"double-bounce2"},null,-1),B=[b,$];function x(t,n,e,r,f,g){return o(),s("div",{class:_(["aioseo-loading-spinner",{dark:e.dark}])},B,2)}const k=l(y,[["render",x]]),S={name:"base-button",components:{CoreLoader:k},props:{color:String,tag:{type:String,default:"button",description:"Button html tag"},block:Boolean,loading:Boolean,wide:Boolean,disabled:Boolean,type:{type:String,default:"default",description:"Button type (blue|black|green|red|gray|wp-blue)"},nativeType:{type:String,default:"button",description:"Button native type (e.g button, input etc)"},size:{type:String,default:"",description:"Button size (small-table|small|medium|large)"},link:{type:Boolean,description:"Whether button is a link (no borders or background)"},to:{type:[Object,String],description:"The router link object or string"}}};function M(t,n,e,r,f,g){const a=L("core-loader");return o(),C(p(e.tag),{type:e.tag==="button"?e.nativeType:"",disabled:e.disabled||e.loading,to:e.tag==="router-link"?e.to:"",onMouseenter:n[0]||(n[0]=i=>t.$emit("mouseenter",i)),onMouseleave:n[1]||(n[1]=i=>t.$emit("mouseleave",i)),class:_(["aioseo-button",[{[e.type]:e.type},{[e.size]:e.size},{"btn-link":e.link},{disabled:e.disabled&&e.tag!=="button"},{color:e.color},{loading:e.loading}]])},{default:v(()=>[u(t.$slots,"loading",{},()=>[e.loading?(o(),C(a,{key:0,dark:e.type==="gray"},null,8,["dark"])):h("",!0)]),u(t.$slots,"default")]),_:3},40,["type","disabled","to","class"])}const ue=l(S,[["render",M]]),Z={},z={viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"aioseo-close"},T=c("path",{d:"M11.8211 1.3415L10.6451 0.166504L5.98305 4.82484L1.32097 0.166504L0.14502 1.3415L4.80711 5.99984L0.14502 10.6582L1.32097 11.8332L5.98305 7.17484L10.6451 11.8332L11.8211 10.6582L7.159 5.99984L11.8211 1.3415Z",fill:"currentColor"},null,-1),V=[T];function A(t,n){return o(),s("svg",z,V)}const N=l(Z,[["render",A]]),j={emits:["close-alert"],components:{SvgClose:N},props:{type:{type:String,default(){return"blue"}},size:{type:String,default(){return"medium"}},showClose:Boolean}};function D(t,n,e,r,f,g){const a=L("svg-close");return o(),s("div",{class:_(["aioseo-alert",{[e.type]:e.type,[e.size]:e.size}])},[u(t.$slots,"default"),e.showClose?(o(),s("span",{key:0,onClick:n[0]||(n[0]=i=>t.$emit("close-alert")),class:"aioseo-alert-close"},[w(a)])):h("",!0)],2)}const _e=l(j,[["render",D]]),H={},P={viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"aioseo-circle-check"},q=c("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M12 2C6.48 2 2 6.48 2 12C2 17.52 6.48 22 12 22C17.52 22 22 17.52 22 12C22 6.48 17.52 2 12 2ZM12 20C7.59 20 4 16.41 4 12C4 7.59 7.59 4 12 4C16.41 4 20 7.59 20 12C20 16.41 16.41 20 12 20ZM10 14.17L16.59 7.58L18 9L10 17L6 13L7.41 11.59L10 14.17Z",fill:"currentColor"},null,-1),E=[q];function I(t,n){return o(),s("svg",P,E)}const fe=l(H,[["render",I]]),O={},R={viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"aioseo-circle-close"},U=c("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M12 2.00006C6.47 2.00006 2 6.47006 2 12.0001C2 17.5301 6.47 22.0001 12 22.0001C17.53 22.0001 22 17.5301 22 12.0001C22 6.47006 17.53 2.00006 12 2.00006ZM14.59 8.00006L12 10.5901L9.41 8.00006L8 9.41006L10.59 12.0001L8 14.5901L9.41 16.0001L12 13.4101L14.59 16.0001L16 14.5901L13.41 12.0001L16 9.41006L14.59 8.00006ZM4 12.0001C4 16.4101 7.59 20.0001 12 20.0001C16.41 20.0001 20 16.4101 20 12.0001C20 7.59006 16.41 4.00006 12 4.00006C7.59 4.00006 4 7.59006 4 12.0001Z",fill:"currentColor"},null,-1),W=[U];function F(t,n){return o(),s("svg",R,W)}const ge=l(O,[["render",F]]),G={},J={viewBox:"0 0 15 16",xmlns:"http://www.w3.org/2000/svg",class:"aioseo-search"},K=c("path",{d:"M14.8828 14.6152L11.3379 11.0703C11.25 11.0117 11.1621 10.9531 11.0742 10.9531H10.6934C11.6016 9.89844 12.1875 8.49219 12.1875 6.96875C12.1875 3.62891 9.43359 0.875 6.09375 0.875C2.72461 0.875 0 3.62891 0 6.96875C0 10.3379 2.72461 13.0625 6.09375 13.0625C7.61719 13.0625 8.99414 12.5059 10.0781 11.5977V11.9785C10.0781 12.0664 10.1074 12.1543 10.166 12.2422L13.7109 15.7871C13.8574 15.9336 14.0918 15.9336 14.209 15.7871L14.8828 15.1133C15.0293 14.9961 15.0293 14.7617 14.8828 14.6152ZM6.09375 11.6562C3.48633 11.6562 1.40625 9.57617 1.40625 6.96875C1.40625 4.39062 3.48633 2.28125 6.09375 2.28125C8.67188 2.28125 10.7812 4.39062 10.7812 6.96875C10.7812 9.57617 8.67188 11.6562 6.09375 11.6562Z",fill:"currentColor"},null,-1),Q=[K];function X(t,n){return o(),s("svg",J,Q)}const Ce=l(G,[["render",X]]),Y={},ee={viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"aioseo-pencil"},te=c("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M9.71515 0.919167L11.0802 2.28417C11.3077 2.51167 11.3077 2.87917 11.0802 3.10667L10.0126 4.17417L7.82515 1.98667L8.89265 0.919167C9.00348 0.808333 9.14932 0.75 9.30098 0.75C9.45265 0.75 9.59848 0.8025 9.71515 0.919167ZM0.749268 11.25V9.06252L7.20093 2.61086L9.38843 4.79836L2.93677 11.25H0.749268Z",fill:"currentColor"},null,-1),ne=[te];function oe(t,n){return o(),s("svg",ee,ne)}const me=l(Y,[["render",oe]]);let m,d;const Le=(t,n)=>((...e)=>{const r=()=>t(...e);clearTimeout(m),m=setTimeout(r,n)}).call(),he=function(t,n){d&&clearTimeout(d),d=setTimeout(t,n)},se={},le={viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"aioseo-caret"},ce=c("path",{d:"M16.59 8.29492L12 12.8749L7.41 8.29492L6 9.70492L12 15.7049L18 9.70492L16.59 8.29492Z",fill:"currentColor"},null,-1),re=[ce];function ie(t,n){return o(),s("svg",le,re)}const ve=l(se,[["render",ie]]);export{ue as B,_e as C,N as S,ve as a,k as b,fe as c,he as d,ge as e,me as f,Ce as g,Le as h}; all-in-one-seo-pack/dist/Lite/assets/js/Category.B3NA4rVT.js000064400000026155151222736000017301 0ustar00import{a as B,u as L,g as T,m as A}from"./links.CKSg78-h.js";import"./default-i18n.BtxsUzQk.js";import{o as n,c as p,a as s,y as a,D as r,m as c,E as h,t as d,F as D,L as P,l as g,x as y,d as f}from"./vue.esm-bundler.DzelZkHk.js";import{_ as m}from"./_plugin-vue_export-helper.BN1snXvA.js";import{u as U,W as O}from"./Wizard.Cs56tV0n.js";import{B as N}from"./HighlightToggle.BLZDQLdT.js";import{C as E}from"./HtmlTagsEditor.DRjNQQYX.js";import{G as F,a as G}from"./Row.ou4tdPuA.js";import{a as I,S as R}from"./ImageSeo.rrEIblJk.js";import{f as Y}from"./Caret.Cuasz9Up.js";import{W as q,a as j,b as J}from"./Header.DlbHtOYW.js";import{W as K}from"./CloseAndExit.D_-Wd9tr.js";import{_ as Q}from"./Steps.ig9y9PNj.js";import"./isArrayLikeObject.CkjpbQo7.js";import"./addons.Bhqo_sme.js";import"./upperFirst.Cx8cdEgZ.js";import"./_stringToArray.DnK4tKcY.js";import"./toString.EVG10Qqs.js";import"./Checkbox.CfGJSeWE.js";import"./Checkmark.Du5wcsnR.js";import"./tags.BOsOOXAU.js";import"./Editor.lV8823Bb.js";import"./index.DX4OhBfI.js";import"./UnfilteredHtml.D-19NKqQ.js";import"./Logo.CuK32Muc.js";import"./Index.6gbvf_mk.js";const X={},ee={viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"aioseo-blog"},te=s("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M11.6667 1.66667H5.00001C4.08334 1.66667 3.33334 2.41667 3.33334 3.33333V16.6667C3.33334 17.5833 4.07501 18.3333 4.99168 18.3333H15C15.9167 18.3333 16.6667 17.5833 16.6667 16.6667V6.66667L11.6667 1.66667ZM13.3333 10H6.66668V11.6667H13.3333V10ZM13.3333 13.3333H6.66668V15H13.3333V13.3333ZM5.00001 16.6667H15V7.5H10.8333V3.33333H5.00001V16.6667Z",fill:"currentColor"},null,-1),oe=[te];function se(t,e){return n(),p("svg",ee,oe)}const ie=m(X,[["render",se]]),re={},ae={viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"aioseo-corporation"},ne=s("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M9.99999 5.83333H18.3333V17.5H1.66666V2.5H9.99999V5.83333ZM3.33332 15.8333H4.99999V14.1667H3.33332V15.8333ZM4.99999 12.5H3.33332V10.8333H4.99999V12.5ZM3.33332 9.16667H4.99999V7.5H3.33332V9.16667ZM4.99999 5.83333H3.33332V4.16667H4.99999V5.83333ZM6.66666 15.8333H8.33332V14.1667H6.66666V15.8333ZM8.33332 12.5H6.66666V10.8333H8.33332V12.5ZM6.66666 9.16667H8.33332V7.5H6.66666V9.16667ZM8.33332 5.83333H6.66666V4.16667H8.33332V5.83333ZM9.99999 15.8333H16.6667V7.5H9.99999V9.16667H11.6667V10.8333H9.99999V12.5H11.6667V14.1667H9.99999V15.8333ZM15 9.16667H13.3333V10.8333H15V9.16667ZM13.3333 12.5H15V14.1667H13.3333V12.5Z",fill:"currentColor"},null,-1),le=[ne];function ce(t,e){return n(),p("svg",ae,le)}const de=m(re,[["render",ce]]),ue={},pe={viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"aioseo-news-channel"},_e=s("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M15.8333 3.33333H15V1.66667H13.3333V3.33333H6.66667V1.66667H5V3.33333H4.16667C3.25 3.33333 2.5 4.08333 2.5 5V16.6667C2.5 17.5833 3.25 18.3333 4.16667 18.3333H15.8333C16.75 18.3333 17.5 17.5833 17.5 16.6667V5C17.5 4.08333 16.75 3.33333 15.8333 3.33333ZM15.8333 16.6667H4.16667V8.33333H15.8333V16.6667ZM4.16667 5V6.66667H15.8333V5H4.16667ZM5.83333 10H14.1667V11.6667H5.83333V10ZM11.6667 13.3333H5.83333V15H11.6667V13.3333Z",fill:"currentColor"},null,-1),he=[_e];function me(t,e){return n(),p("svg",pe,he)}const ge=m(ue,[["render",me]]),fe={},ve={viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"aioseo-online-store"},Ve=s("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M15.2469 9.975C14.9636 10.4917 14.4136 10.8333 13.7886 10.8333H7.58027L6.6636 12.5H16.6636V14.1667H6.6636C5.39694 14.1667 4.59694 12.8083 5.20527 11.6917L6.33027 9.65833L3.33027 3.33333H1.6636V1.66666H4.3886L5.17194 3.33333H17.5053C18.1386 3.33333 18.5386 4.01666 18.2303 4.56666L15.2469 9.975ZM16.0886 5H5.96358L7.93858 9.16666H13.7886L16.0886 5ZM6.66364 15C5.74698 15 5.00531 15.75 5.00531 16.6667C5.00531 17.5833 5.74698 18.3333 6.66364 18.3333C7.58031 18.3333 8.33031 17.5833 8.33031 16.6667C8.33031 15.75 7.58031 15 6.66364 15ZM13.3386 16.6667C13.3386 15.75 14.0803 15 14.997 15C15.9136 15 16.6636 15.75 16.6636 16.6667C16.6636 17.5833 15.9136 18.3333 14.997 18.3333C14.0803 18.3333 13.3386 17.5833 13.3386 16.6667Z",fill:"currentColor"},null,-1),He=[Ve];function ye(t,e){return n(),p("svg",ve,He)}const we=m(fe,[["render",ye]]),Ce={setup(){const{strings:t}=U();return{optionsStore:B(),rootStore:L(),setupWizardStore:T(),composableStrings:t}},components:{BaseHighlightToggle:N,CoreHtmlTagsEditor:E,GridColumn:F,GridRow:G,SvgBlog:ie,SvgCorporation:de,SvgLocalBusiness:I,SvgImageSeo:R,SvgNewsChannel:ge,SvgOnlineStore:we,SvgPencil:Y,WizardBody:q,WizardCloseAndExit:K,WizardContainer:j,WizardHeader:J,WizardSteps:Q},mixins:[O],data(){return{loaded:!1,titleCount:0,descriptionCount:0,loading:!1,stage:"category",strings:A(this.composableStrings,{category:this.$t.__("Which category best describes your website?",this.$td),selectCategory:this.$t.__("Select a category to help us narrow down the SEO options that work best for you and your site.",this.$td),enterYourAnswer:this.$t.__("Enter your answer",this.$td),siteTitle:this.$t.__("Home Page Title",this.$td),metaDescription:this.$t.__("Home Page Meta Description",this.$td)}),categories:[{value:"blog",name:this.$t.__("Blog",this.$td),icon:"svg-blog"},{value:"news-channel",name:this.$t.__("News Channel",this.$td),icon:"svg-news-channel"},{value:"online-store",name:this.$t.__("Online Store",this.$td),icon:"svg-online-store"},{value:"small-offline-business",name:this.$t.__("Small Offline Business",this.$td),icon:"svg-local-business"},{value:"corporation",name:this.$t.__("Corporation",this.$td),icon:"svg-corporation"},{value:"portfolio",name:this.$t.__("Portfolio",this.$td),icon:"svg-image-seo"}],otherCategory:{value:"other",name:this.$t.__("Other:",this.$td),icon:"svg-pencil",valueInput:null},selected:[]}},watch:{selected(t){this.setupWizardStore.category.category=t[0].value,this.triggerFeaturesUpdate(t[0].value)}},methods:{triggerFeaturesUpdate(t){const e=["aioseo-eeat","aioseo-image-seo","aioseo-redirects","analytics","broken-link-checker","conversion-tools","optimized-search-appearance","sitemaps"];switch(t){case"blog":case"portfolio":case"other":e.push("aioseo-index-now"),e.push("aioseo-link-assistant");break;case"news-channel":e.push("aioseo-index-now"),e.push("aioseo-link-assistant"),e.push("aioseo-news-sitemap"),e.push("aioseo-rest-api"),e.push("aioseo-video-sitemap");break;case"online-store":e.push("aioseo-index-now"),e.push("aioseo-link-assistant"),e.push("aioseo-rest-api"),e.push("aioseo-video-sitemap");break;case"small-offline-business":e.push("aioseo-local-business"),e.push("aioseo-rest-api"),e.push("aioseo-video-sitemap");break;case"corporation":e.push("aioseo-index-now"),e.push("aioseo-link-assistant"),e.push("aioseo-local-business"),e.push("aioseo-news-sitemap"),e.push("aioseo-rest-api"),e.push("aioseo-video-sitemap");break}this.setupWizardStore.features=e},updateValue(t,e){this.selected=[],t&&(this.selected.push(e),e.value==="other"&&this.$nextTick(()=>{this.$refs["other-category"].$el.querySelector("input").focus()}))},getValue(t){return this.selected.includes(t)},isActive(t){return this.selected.findIndex(_=>_.value===t.value)!==-1},saveAndContinue(){this.loading=!0,this.setupWizardStore.saveWizard("category").then(()=>{this.$router.push(this.setupWizardStore.getNextLink)})}},mounted(){this.$nextTick(()=>{const t=this.categories.find(l=>l.value===this.setupWizardStore.category.category)||this.categories[0];this.selected.push(t),this.triggerFeaturesUpdate(t);const e=this.rootStore.aioseo.data.staticHomePage?this.rootStore.aioseo.data.staticHomePageTitle:this.optionsStore.options.searchAppearance.global.siteTitle;e&&this.setupWizardStore.category.siteTitle!==e&&(this.setupWizardStore.category.siteTitle=e);const _=this.rootStore.aioseo.data.staticHomePage?this.rootStore.aioseo.data.staticHomePageDescription:this.optionsStore.options.searchAppearance.global.metaDescription;_&&this.setupWizardStore.category.metaDescription!==_&&(this.setupWizardStore.category.metaDescription=_),this.loaded=!0})}},Se={class:"aioseo-wizard-category"},be={class:"header"},ze={class:"description"},xe={class:"categories"},ke={key:0,class:"site-info"},We={class:"site-title aioseo-settings-row no-border"},Me={class:"settings-name"},Ze={class:"name small-margin"},$e={class:"site-description aioseo-settings-row no-border no-margin small-padding"},Be={class:"settings-name"},Le={class:"name small-margin"},Te={class:"go-back"},Ae=s("div",{class:"spacer"},null,-1);function De(t,e,_,l,o,u){const w=a("wizard-header"),C=a("wizard-steps"),v=a("base-highlight-toggle"),S=a("grid-column"),b=a("grid-row"),z=a("base-input"),V=a("core-html-tags-editor"),H=a("router-link"),x=a("base-button"),k=a("wizard-body"),W=a("wizard-close-and-exit"),M=a("wizard-container");return n(),p("div",Se,[r(w),r(M,null,{default:c(()=>[r(k,null,{footer:c(()=>[s("div",Te,[r(H,{to:l.setupWizardStore.getPrevLink,class:"no-underline"},{default:c(()=>[h("←")]),_:1},8,["to"]),h("   "),r(H,{to:l.setupWizardStore.getPrevLink},{default:c(()=>[h(d(o.strings.goBack),1)]),_:1},8,["to"])]),Ae,r(x,{type:"blue",loading:o.loading,onClick:u.saveAndContinue},{default:c(()=>[h(d(o.strings.saveAndContinue)+" →",1)]),_:1},8,["loading","onClick"])]),default:c(()=>[r(C),s("div",be,d(o.strings.category),1),s("div",ze,d(o.strings.selectCategory),1),s("div",xe,[r(b,null,{default:c(()=>[(n(!0),p(D,null,P(o.categories,(i,Z)=>(n(),g(S,{key:Z,md:"6"},{default:c(()=>[r(v,{type:"radio",size:"medium",active:u.isActive(i),name:"category",modelValue:u.getValue(i),"onUpdate:modelValue":$=>u.updateValue($,i)},{default:c(()=>[i.icon?(n(),g(y(i.icon),{key:0,class:"icon"})):f("",!0),h(" "+d(i.name),1)]),_:2},1032,["active","modelValue","onUpdate:modelValue"])]),_:2},1024))),128))]),_:1}),r(v,{class:"other-category",type:"radio",size:"medium",active:u.isActive(o.otherCategory),name:"category",modelValue:u.getValue(o.otherCategory),"onUpdate:modelValue":e[1]||(e[1]=i=>u.updateValue(i,o.otherCategory))},{default:c(()=>[o.otherCategory.icon?(n(),g(y(o.otherCategory.icon),{key:0,class:"icon"})):f("",!0),h(" "+d(o.otherCategory.name)+" ",1),o.selected.length?(n(),g(z,{key:1,disabled:o.selected[0].value!=="other",size:"medium",modelValue:l.setupWizardStore.category.categoryOther,"onUpdate:modelValue":e[0]||(e[0]=i=>l.setupWizardStore.category.categoryOther=i),placeholder:o.strings.enterYourAnswer,ref:"other-category"},null,8,["disabled","modelValue","placeholder"])):f("",!0)]),_:1},8,["active","modelValue"])]),o.loaded?(n(),p("div",ke,[s("div",We,[s("div",Me,[s("div",Ze,d(o.strings.siteTitle),1)]),r(V,{modelValue:l.setupWizardStore.category.siteTitle,"onUpdate:modelValue":e[2]||(e[2]=i=>l.setupWizardStore.category.siteTitle=i),"line-numbers":!1,single:"","tags-context":"homePage","default-tags":["site_title","separator_sa","tagline"]},null,8,["modelValue"])]),s("div",$e,[s("div",Be,[s("div",Le,d(o.strings.metaDescription),1)]),r(V,{modelValue:l.setupWizardStore.category.metaDescription,"onUpdate:modelValue":e[3]||(e[3]=i=>l.setupWizardStore.category.metaDescription=i),"line-numbers":!1,description:"","tags-context":"homePage","default-tags":["site_title","separator_sa","tagline"]},null,8,["modelValue"])])])):f("",!0)]),_:1}),r(W)]),_:1})])}const dt=m(Ce,[["render",De]]);export{dt as default}; all-in-one-seo-pack/dist/Lite/assets/js/check-_5Up9njX.dWy8Omiv.js000064400000000634151222736000020435 0ustar00import{o as n,c as o,a as t}from"./vue.esm-bundler.DzelZkHk.js";const r={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",fill:"none",viewBox:"0 0 24 24"},e=t("path",{stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"m4.5 12.75 6 6 9-13.5"},null,-1),s=[e];function a(c,l){return n(),o("svg",r,[...s])}const i={render:a};export{i as default,a as render}; all-in-one-seo-pack/dist/Lite/assets/js/Checkbox.CfGJSeWE.js000064400000002510151222736000017331 0ustar00import{S as u}from"./Checkmark.Du5wcsnR.js";import{y as d,o as m,c as f,q as r,a as s,I as l,D as g,J as c,H as p}from"./vue.esm-bundler.DzelZkHk.js";import{_ as b}from"./_plugin-vue_export-helper.BN1snXvA.js";const _={components:{SvgCheckmark:u},props:{modelValue:Boolean,name:String,labelClass:{type:String,default(){return""}},inputClass:{type:String,default(){return""}},id:String,size:String,disabled:Boolean,round:Boolean,type:{type:String,default(){return"blue"}}},methods:{labelToggle(){this.$refs.input.click()}}},k={class:"form-checkbox-wrapper"},y={class:"form-checkbox"},h=["checked","name","id","disabled"];function x(o,n,e,C,S,t){const i=d("svg-checkmark");return m(),f("label",{class:l(["aioseo-checkbox",[e.labelClass,{[e.size]:e.size},{disabled:e.disabled},{round:e.round}]]),onKeydown:[n[1]||(n[1]=c((...a)=>t.labelToggle&&t.labelToggle(...a),["enter"])),n[2]||(n[2]=c((...a)=>t.labelToggle&&t.labelToggle(...a),["space"]))],onClick:p(()=>{},["stop"])},[r(o.$slots,"header"),s("span",k,[s("span",y,[s("input",{type:"checkbox",onInput:n[0]||(n[0]=a=>o.$emit("update:modelValue",a.target.checked)),checked:e.modelValue,name:e.name,id:e.id,class:l(e.inputClass),disabled:e.disabled,ref:"input"},null,42,h),s("span",{class:l(["fancy-checkbox",e.type])},[g(i)],2)])]),r(o.$slots,"default")],34)}const v=b(_,[["render",x]]);export{v as B}; all-in-one-seo-pack/dist/Lite/assets/js/Checkmark.Du5wcsnR.js000064400000001411151222736000017647 0ustar00import{o as n,c as o,a as e}from"./vue.esm-bundler.DzelZkHk.js";import{_ as t}from"./_plugin-vue_export-helper.BN1snXvA.js";const r={},s={viewBox:"0 0 14 11",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"aioseo-checkmark"},c=e("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M10.8542 1.37147C11.44 0.785682 12.3897 0.785682 12.9755 1.37147C13.5613 1.95726 13.5613 2.907 12.9755 3.49279L6.04448 10.4238C5.74864 10.7196 5.35996 10.8661 4.97222 10.8631C4.58548 10.8653 4.19805 10.7189 3.90298 10.4238L1.0243 7.5451C0.438514 6.95931 0.438514 6.00956 1.0243 5.42378C1.61009 4.83799 2.55983 4.83799 3.14562 5.42378L4.97374 7.2519L10.8542 1.37147Z",fill:"currentColor"},null,-1),a=[c];function l(u,i){return n(),o("svg",s,a)}const f=t(r,[["render",l]]);export{f as S}; all-in-one-seo-pack/dist/Lite/assets/js/CheckSolid.C5-uPd5a.js000064400000001223151222736000017541 0ustar00import{o as n,c as o,a as e}from"./vue.esm-bundler.DzelZkHk.js";import{_ as t}from"./_plugin-vue_export-helper.BN1snXvA.js";const r={},c={viewBox:"0 0 21 21",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"aioseo-circle-check-solid"},s=e("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M1.75 10.5C1.75 5.67 5.67 1.75 10.5 1.75C15.33 1.75 19.25 5.67 19.25 10.5C19.25 15.33 15.33 19.25 10.5 19.25C5.67 19.25 1.75 15.33 1.75 10.5ZM8.75 12.3988L14.5163 6.63251L15.75 7.87501L8.75 14.875L5.25 11.375L6.48375 10.1413L8.75 12.3988Z",fill:"currentColor"},null,-1),l=[s];function a(i,u){return n(),o("svg",c,l)}const f=t(r,[["render",a]]);export{f as S}; all-in-one-seo-pack/dist/Lite/assets/js/chevron-down-bC0s_0yH.DysZb_nq.js000064400000000641151222736000021760 0ustar00import{o as n,c as o,a as t}from"./vue.esm-bundler.DzelZkHk.js";const r={xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",fill:"none",viewBox:"0 0 24 24"},e=t("path",{stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"m19.5 8.25-7.5 7.5-7.5-7.5"},null,-1),s=[e];function a(c,l){return n(),o("svg",r,[...s])}const i={render:a};export{i as default,a as render}; all-in-one-seo-pack/dist/Lite/assets/js/cleanForSlug.C_GG_Tvc.js000064400000004660151222736000020255 0ustar00import{t as c,b as d}from"./toString.EVG10Qqs.js";import{b as i}from"./_baseTrim.BYZhh0MR.js";import{s as a,c as s}from"./_stringToArray.DnK4tKcY.js";function l(u,e,n,r){for(var x=u.length,t=n+(r?1:-1);r?t--:++t-1;);return n}function v(u,e){for(var n=-1,r=u.length;++n-1;);return n}function R(u,e,n){if(u=c(u),u&&(n||e===void 0))return i(u);if(!u||!(e=d(e)))return u;var r=a(u),x=a(e),t=v(r,x),f=y(r,x)+1;return s(r,t,f).join("")}function k(u){return u?R(S(u).replace(/[\s./]+/g,"-").replace(/[^\w-]+/g,"").replace(/-+/g,"-").toLowerCase(),"-"):""}export{l as a,o as b,k as c,S as d}; all-in-one-seo-pack/dist/Lite/assets/js/CloseAndExit.D_-Wd9tr.js000064400000004273151222736000020171 0ustar00import{a as S,u as k,g as y}from"./links.CKSg78-h.js";import"./default-i18n.BtxsUzQk.js";import{y as l,o as d,c,q as v,t,H as u,D as r,m as n,E as p,a}from"./vue.esm-bundler.DzelZkHk.js";import{_ as z}from"./_plugin-vue_export-helper.BN1snXvA.js";import{S as C}from"./Caret.Cuasz9Up.js";import{u as W}from"./Wizard.Cs56tV0n.js";import{C as b}from"./Index.6gbvf_mk.js";const w={setup(){const{strings:e}=W();return{optionsStore:S(),rootStore:k(),setupWizardStore:y(),strings:e}},components:{CoreModal:b,SvgClose:C},data(){return{loading:!1}},methods:{processOptIn(){this.setupWizardStore.smartRecommendations.usageTracking=!0,this.loading=!0,this.setupWizardStore.saveWizard("smartRecommendations").then(()=>{window.location.href=this.rootStore.aioseo.urls.aio.dashboard})}}},T={class:"aioseo-wizard-close-and-exit"},x=["href"],M={class:"aioseo-modal-body"},A=["innerHTML"],U={class:"actions"};function E(e,s,B,o,g,_){const f=l("svg-close"),m=l("base-button"),h=l("core-modal");return d(),c("div",T,[v(e.$slots,"links",{},()=>[e.$isPro||o.optionsStore.options.advanced.usageTracking?(d(),c("a",{key:0,href:o.rootStore.aioseo.urls.aio.dashboard},t(o.strings.closeAndExit),9,x)):(d(),c("a",{key:1,href:"#",onClick:s[0]||(s[0]=u(i=>o.setupWizardStore.showUsageTrackingModal=!0,["prevent"]))},t(o.strings.closeAndExit),1))]),r(h,{show:o.setupWizardStore.showUsageTrackingModal&&!e.$isPro,onClose:s[3]||(s[3]=i=>o.setupWizardStore.showUsageTrackingModal=!1),classes:["aioseo-close-and-exit-modal"]},{header:n(()=>[p(t(o.strings.buildABetterAioseo)+" ",1),a("button",{class:"close",onClick:s[2]||(s[2]=u(i=>o.setupWizardStore.showUsageTrackingModal=!1,["stop"]))},[r(f,{onClick:s[1]||(s[1]=i=>o.setupWizardStore.showUsageTrackingModal=!1)})])]),body:n(()=>[a("div",M,[a("div",{class:"reset-description",innerHTML:o.strings.getImprovedFeatures},null,8,A),a("div",U,[r(m,{tag:"a",href:o.rootStore.aioseo.urls.aio.dashboard,type:"gray",size:"medium"},{default:n(()=>[p(t(o.strings.noThanks),1)]),_:1},8,["href"]),r(m,{type:"blue",size:"medium",loading:g.loading,onClick:u(_.processOptIn,["stop"])},{default:n(()=>[p(t(o.strings.yesCountMeIn),1)]),_:1},8,["loading","onClick"])])])]),_:1},8,["show"])])}const V=z(w,[["render",E]]);export{V as W}; all-in-one-seo-pack/dist/Lite/assets/js/CommonSitemap.MfCKFeRY.js000064400000000211151222736000020363 0ustar00const r=()=>({validateLinksPerIndex:n=>{1>n.target.value&&(n.target.value=1),5e4[u("div",G,[n(C,null,{default:o(()=>[n(p,null,{default:o(()=>{var k,$;return[n(r,{class:"description",type:"blue","show-close":""},{default:o(()=>[m(l(t.strings.alert),1)]),_:1}),u("div",N,[u("h2",null,l(t.strings.title),1)]),n(i,{posts:(($=(k=c.searchStatisticsStore.data)==null?void 0:k.contentRankings)==null?void 0:$.paginated)||t.defaultPages,columns:["postTitle","indexStatus","lastUpdated","loss","drop","performance"],"show-items-per-page":"","show-table-footer":""},null,8,["posts"])]}),_:1})]),_:1})])]),_:1})}const E=d(D,[["render",V]]),F={setup(){return{licenseStore:x()}},components:{Blur:E,Cta:L,RequiredPlans:q},data(){return{strings:{ctaButtonText:this.$t.__("Unlock Search Statistics",this.$td),ctaHeader:this.$t.sprintf(this.$t.__("Search Statistics is a %1$s Feature",this.$td),"PRO"),ctaDescription:this.$t.__("Connect your site to Google Search Console to receive insights on how content is being discovered. Identify areas for improvement and drive traffic to your website.",this.$td),thisFeatureRequires:this.$t.__("This feature requires one of the following plans:",this.$td),feature1:this.$t.__("Search traffic insights",this.$td),feature2:this.$t.__("Track page rankings",this.$td),feature3:this.$t.__("Track keyword rankings",this.$td),feature4:this.$t.__("Speed tests for individual pages/posts",this.$td)}}}},H={class:"aioseo-search-statistics-content-rankings"};function z(s,h,g,c,t,f){const r=e("blur"),i=e("required-plans"),p=e("cta");return a(),b("div",H,[n(r),n(p,{"cta-link":s.$links.getPricingUrl("search-statistics","search-statistics-upsell","content-rankings"),"button-text":t.strings.ctaButtonText,"learn-more-link":s.$links.getUpsellUrl("search-statistics","content-rankings",s.$isPro?"pricing":"liteUpgrade"),"feature-list":[t.strings.feature1,t.strings.feature2,t.strings.feature3,t.strings.feature4],"align-top":"","hide-bonus":!c.licenseStore.isUnlicensed},{"header-text":o(()=>[m(l(t.strings.ctaHeader),1)]),description:o(()=>[n(i,{"core-feature":["search-statistics","content-rankings"]}),m(" "+l(t.strings.ctaDescription),1)]),_:1},8,["cta-link","button-text","learn-more-link","feature-list","hide-bonus"])])}const S=d(F,[["render",z]]),I={mixins:[A],components:{ContentRankings:S,Lite:S}},M={class:"aioseo-search-statistics-content-rankings"};function O(s,h,g,c,t,f){const r=e("content-rankings",!0),i=e("lite");return a(),b("div",M,[s.shouldShowMain("search-statistics","content-rankings")?(a(),_(r,{key:0})):y("",!0),s.shouldShowUpgrade("search-statistics","content-rankings")||s.shouldShowLite?(a(),_(i,{key:1})):y("",!0)])}const St=d(I,[["render",O]]);export{St as default}; all-in-one-seo-pack/dist/Lite/assets/js/ContentTypes.3LvUnB5B.js000064400000011471151222736000020213 0ustar00import{f as A,a as T,u as j,e as w}from"./links.CKSg78-h.js";import{A as D,T as B}from"./TitleDescription.IMeljFtb.js";import{C as $}from"./Card.C6Yzm1Gr.js";import{C as F}from"./Tabs.Cl9YKSoz.js";import{C as L}from"./Tooltip.DcUmvaHX.js";import{C as b,S as q}from"./Schema.HQyzDZRq.js";import{y as i,o as n,c as g,l as _,d as S,F as P,L as I,m as a,a as c,I as M,E as f,t as l,D as u,x as N,T as O}from"./vue.esm-bundler.DzelZkHk.js";import{_ as C}from"./_plugin-vue_export-helper.BN1snXvA.js";import{P as V}from"./PostTypes.Cef6XkQ_.js";import{a as U}from"./index.DX4OhBfI.js";import"./default-i18n.BtxsUzQk.js";import"./isArrayLikeObject.CkjpbQo7.js";import"./JsonValues.D25FTfEu.js";import"./MaxCounts.DHV7qSQX.js";import"./RadioToggle.XiBFFWmC.js";import"./Caret.Cuasz9Up.js";import"./ProBadge.Dgq0taM8.js";import"./RobotsMeta.DjWj_HSz.js";import"./Checkbox.CfGJSeWE.js";import"./Checkmark.Du5wcsnR.js";import"./Row.ou4tdPuA.js";import"./SettingsRow.B0N4hwjp.js";import"./tags.BOsOOXAU.js";import"./Tags.BcJqtOJO.js";import"./postSlug.D1i5fFFO.js";import"./metabox.BW1QyeRU.js";import"./cleanForSlug.C_GG_Tvc.js";import"./toString.EVG10Qqs.js";import"./_baseTrim.BYZhh0MR.js";import"./_stringToArray.DnK4tKcY.js";import"./get.CmvQfcJ_.js";import"./GoogleSearchPreview.C5aCQaFX.js";import"./strings.gPxlDykU.js";import"./isString.Dmb68Xbt.js";import"./constants.DARe-ccJ.js";import"./HtmlTagsEditor.DRjNQQYX.js";import"./Editor.lV8823Bb.js";import"./UnfilteredHtml.D-19NKqQ.js";import"./Slide.BfXXFx9A.js";import"./TruSeoScore.-L7x872T.js";import"./Ellipse.HvxcRElJ.js";import"./Information.Dx9dnFtu.js";import"./Textarea.BirUpna9.js";import"./Blur.B433XVqJ.js";import"./Index.Ck0NNxBQ.js";const z={setup(){return{licenseStore:A()}},components:{CustomFields:b,CustomFieldsLite:b},props:{type:{type:String,required:!0},object:{type:Object,required:!0},options:{type:Object,required:!0},showBulk:Boolean}},E={class:"aioseo-sa-ct-custom-fields-view"};function R(t,r,o,s,m,p){const d=i("custom-fields",!0),h=i("custom-fields-lite");return n(),g("div",E,[s.licenseStore.isUnlicensed?S("",!0):(n(),_(d,{key:0,type:o.type,object:o.object,options:o.options,"show-bulk":o.showBulk},null,8,["type","object","options","show-bulk"])),s.licenseStore.isUnlicensed?(n(),_(h,{key:1,type:o.type,object:o.object,options:o.options,"show-bulk":o.showBulk},null,8,["type","object","options","show-bulk"])):S("",!0)])}const Q=C(z,[["render",R]]),W={setup(){return{optionsStore:T(),rootStore:j(),settingsStore:w()}},components:{Advanced:D,CoreCard:$,CoreMainTabs:F,CoreTooltip:L,CustomFields:Q,Schema:q,SvgCircleQuestionMark:U,TitleDescription:B},mixins:[V],data(){return{internalDebounce:null,strings:{label:this.$t.__("Label:",this.$td),name:this.$t.__("Slug:",this.$td)},tabs:[{slug:"title-description",name:this.$t.__("Title & Description",this.$td),access:"aioseo_search_appearance_settings",pro:!1},{slug:"schema",name:this.$t.__("Schema Markup",this.$td),access:"aioseo_search_appearance_settings",pro:!0},{slug:"custom-fields",name:this.$t.__("Custom Fields",this.$td),access:"aioseo_search_appearance_settings",pro:!0},{slug:"advanced",name:this.$t.__("Advanced",this.$td),access:"aioseo_search_appearance_settings",pro:!1}]}},computed:{postTypes(){return this.rootStore.aioseo.postData.postTypes.filter(t=>t.name!=="attachment")}},methods:{processChangeTab(t,r){this.internalDebounce||(this.internalDebounce=!0,this.settingsStore.changeTab({slug:`${t}SA`,value:r}),setTimeout(()=>{this.internalDebounce=!1},50))},getPostIconClass(t){const r="dashicons-admin-post";return t!=null&&t.startsWith("dashicons-awb-")?r:t||r}}},G={class:"aioseo-search-appearance-content-types"},H={class:"aioseo-description"},J=c("br",null,null,-1),K=c("br",null,null,-1);function X(t,r,o,s,m,p){const d=i("svg-circle-question-mark"),h=i("core-tooltip"),y=i("core-main-tabs"),k=i("core-card");return n(),g("div",G,[(n(!0),g(P,null,I(p.postTypes,(e,v)=>(n(),_(k,{key:v,slug:`${e.name}SA`},{header:a(()=>[c("div",{class:M(["icon dashicons",p.getPostIconClass(e.icon)])},null,2),f(" "+l(e.label)+" ",1),u(h,{"z-index":"99999"},{tooltip:a(()=>[c("div",H,[f(l(m.strings.label)+" ",1),c("strong",null,l(e.label),1),J,f(" "+l(m.strings.name)+" ",1),c("strong",null,l(e.name),1),K])]),default:a(()=>[u(d)]),_:2},1024)]),tabs:a(()=>[u(y,{tabs:m.tabs,showSaveButton:!1,active:s.settingsStore.settings.internalTabs[`${e.name}SA`],internal:"",onChanged:x=>p.processChangeTab(e.name,x)},null,8,["tabs","active","onChanged"])]),default:a(()=>[u(O,{name:"route-fade",mode:"out-in"},{default:a(()=>[(n(),_(N(s.settingsStore.settings.internalTabs[`${e.name}SA`]),{object:e,separator:s.optionsStore.options.searchAppearance.global.separator,options:s.optionsStore.dynamicOptions.searchAppearance.postTypes[e.name],type:"postTypes"},null,8,["object","separator","options"]))]),_:2},1024)]),_:2},1032,["slug"]))),128))])}const Et=C(W,[["render",X]]);export{Et as default}; all-in-one-seo-pack/dist/Lite/assets/js/Cta.DyOwTi75.js000064400000000320151222736000016345 0ustar00import{o as n,c as o}from"./vue.esm-bundler.DzelZkHk.js";import{_ as t}from"./_plugin-vue_export-helper.BN1snXvA.js";const r={};function c(e,s){return n(),o("div")}const i=t(r,[["render",c]]);export{i as C}; all-in-one-seo-pack/dist/Lite/assets/js/Dashboard.C4r3OD2M.js000064400000030234151222736000017336 0ustar00import{B as L,f as O}from"./links.CKSg78-h.js";import{y as e,o as a,c as d,D as t,m as o,a as c,d as w,I as b,t as h,F as C,L as U,l as y,E as v}from"./vue.esm-bundler.DzelZkHk.js";import{_ as g}from"./_plugin-vue_export-helper.BN1snXvA.js";import{C as D}from"./Blur.B433XVqJ.js";import{C as E}from"./Card.C6Yzm1Gr.js";import{C as z}from"./Tabs.Cl9YKSoz.js";import{C as F}from"./Overview.BnN5s2e9.js";import{G,a as W}from"./Row.ou4tdPuA.js";import{K as N}from"./KeywordsGraph.Bt9ueMhV.js";import{S as A}from"./SeoStatisticsOverview.KbbpDN60.js";import{S as I}from"./List.Dw8hZraa.js";import{S as j}from"./Statistics.CP5lE97B.js";import{d as T}from"./isArrayLikeObject.CkjpbQo7.js";import{b as Q}from"./Caret.Cuasz9Up.js";import{C as Y}from"./Tooltip.DcUmvaHX.js";import{S as J,L as X}from"./LicenseConditions.YKPkrz3j.js";import{P as tt}from"./PostsTable.BrGduOYW.js";import{C as st}from"./Index.Ck0NNxBQ.js";import{R as et}from"./RequiredPlans.BWoa4M_T.js";import"./default-i18n.BtxsUzQk.js";import"./index.DX4OhBfI.js";import"./Slide.BfXXFx9A.js";import"./TruSeoScore.-L7x872T.js";import"./Ellipse.HvxcRElJ.js";import"./Information.Dx9dnFtu.js";import"./DonutChartWithLegend.BDrgOxPz.js";import"./AnimatedNumber.BZqhDXvl.js";import"./numbers.ursUutt1.js";import"./_arrayEach.Fgt6pfHj.js";import"./_getTag.0B4_HiWU.js";import"./vue.esm-bundler.v8OKKE5o.js";import"./license.8zyTf6Rb.js";import"./upperFirst.Cx8cdEgZ.js";import"./_stringToArray.DnK4tKcY.js";import"./toString.EVG10Qqs.js";import"./WpTable.EicK-ih4.js";import"./ScoreButton.Di04Mqf2.js";import"./Table.B2KnjpXq.js";import"./IndexStatus.DWPPjohw.js";import"./PostTypes.Cef6XkQ_.js";import"./constants.DARe-ccJ.js";import"./addons.Bhqo_sme.js";const ot={data(){return{strings:{openReport:this.$t.sprintf(this.$t.__("Open Report %1$s",this.$td),"")}}},props:{buttonTarget:String,query:Object}},rt={key:0,class:"aioseo-card-footer"},it=["innerHTML"];function nt(r,l,f,_,s,i){const p=e("router-link");return f.buttonTarget?(a(),d("div",rt,[t(p,{to:{name:f.buttonTarget,query:f.query}},{default:o(()=>[c("span",{innerHTML:s.strings.openReport},null,8,it)]),_:1},8,["to"])])):w("",!0)}const at=g(ot,[["render",nt]]),ct={},dt={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 21 14",class:"aioseo-query"},lt=c("path",{d:"M5.25 3.07812H0.25V1.07812H5.25V3.07812ZM5.25 6.07812H0.25V8.07812H5.25V6.07812ZM18.84 13.0781L15.01 9.24813C14.21 9.76813 13.27 10.0781 12.25 10.0781C9.49 10.0781 7.25 7.83813 7.25 5.07812C7.25 2.31813 9.49 0.078125 12.25 0.078125C15.01 0.078125 17.25 2.31813 17.25 5.07812C17.25 6.09812 16.94 7.03813 16.42 7.82812L20.25 11.6681L18.84 13.0781ZM15.25 5.07812C15.25 3.42812 13.9 2.07812 12.25 2.07812C10.6 2.07812 9.25 3.42812 9.25 5.07812C9.25 6.72813 10.6 8.07812 12.25 8.07812C13.9 8.07812 15.25 6.72813 15.25 5.07812ZM0.25 13.0781H10.25V11.0781H0.25V13.0781Z",fill:"currentColor"},null,-1),_t=[lt];function pt(r,l){return a(),d("svg",dt,_t)}const ut=g(ct,[["render",pt]]),ht={},mt={viewBox:"0 0 25 25",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"aioseo-speed"},gt=c("path",{d:"M20.6292 8.64922L19.3992 10.4992C19.9924 11.6823 20.2828 12.9941 20.2444 14.3169C20.206 15.6398 19.84 16.9325 19.1792 18.0792H5.3192C4.46036 16.5893 4.10449 14.8623 4.30434 13.1543C4.50418 11.4462 5.24911 9.84805 6.42867 8.59665C7.60824 7.34525 9.15966 6.50727 10.8529 6.20692C12.5462 5.90657 14.2912 6.15986 15.8292 6.92922L17.6792 5.69922C15.7957 4.49144 13.5615 3.95023 11.3341 4.16216C9.10665 4.37409 7.01464 5.32692 5.39269 6.86823C3.77074 8.40955 2.71256 10.4503 2.38741 12.664C2.06227 14.8778 2.48895 17.1366 3.5992 19.0792C3.77371 19.3815 4.02428 19.6328 4.32603 19.8083C4.62777 19.9837 4.97017 20.0771 5.3192 20.0792H19.1692C19.5216 20.0806 19.8681 19.9889 20.1737 19.8133C20.4793 19.6377 20.733 19.3844 20.9092 19.0792C21.8306 17.4831 22.293 15.6635 22.2453 13.8212C22.1977 11.9789 21.6418 10.1855 20.6392 8.63922L20.6292 8.64922Z",fill:"currentColor"},null,-1),ft=c("path",{d:"M10.8405 15.49C11.0262 15.676 11.2468 15.8235 11.4896 15.9241C11.7324 16.0248 11.9926 16.0766 12.2555 16.0766C12.5183 16.0766 12.7786 16.0248 13.0214 15.9241C13.2642 15.8235 13.4847 15.676 13.6705 15.49L19.3305 7L10.8405 12.66C10.6545 12.8457 10.507 13.0663 10.4064 13.3091C10.3057 13.5519 10.2539 13.8122 10.2539 14.075C10.2539 14.3378 10.3057 14.5981 10.4064 14.8409C10.507 15.0837 10.6545 15.3043 10.8405 15.49Z",fill:"currentColor"},null,-1),wt=[gt,ft];function yt(r,l){return a(),d("svg",mt,wt)}const kt=g(ht,[["render",yt]]),Ct={},vt={viewBox:"0 0 21 17",xmlns:"http://www.w3.org/2000/svg",class:"aioseo-web"},$t=c("path",{d:"M18.25 0.773438H2.25C1.15 0.773438 0.26 1.67344 0.26 2.77344L0.25 14.7734C0.25 15.8734 1.15 16.7734 2.25 16.7734H18.25C19.35 16.7734 20.25 15.8734 20.25 14.7734V2.77344C20.25 1.67344 19.35 0.773438 18.25 0.773438ZM2.25 5.77344H12.75V9.27344H2.25V5.77344ZM2.25 11.2734H12.75V14.7734H2.25V11.2734ZM18.25 14.7734H14.75V5.77344H18.25V14.7734Z",fill:"currentColor"},null,-1),St=[$t];function bt(r,l){return a(),d("svg",vt,St)}const Tt=g(Ct,[["render",bt]]),xt={setup(){return{searchStatisticsStore:L()}},components:{CoreLoader:Q,CoreTooltip:Y,Statistic:J},data(){return{strings:{keyword:this.$t.__("Keyword",this.$td),clicks:this.$t.__("Clicks",this.$td),noKeywords:this.$t.__("You don't have any keywords yet.",this.$td)}}},computed:{keywords(){var r,l;return(l=(r=this.searchStatisticsStore.data)==null?void 0:r.keywords)!=null&&l.topKeywords?this.searchStatisticsStore.data.keywords.topKeywords.slice(0,10):[]}},methods:{decodeHTMLEntities:T,shouldLimitText(r){return 60c("div",{key:n,class:"top-keywords-row"},[c("div",Mt,[i.keywords[n-1]?(a(),d(C,{key:0},[c("div",Vt,h(n)+". ",1),i.shouldLimitText(i.keywords[n-1].keyword)?(a(),y(p,{key:0},{tooltip:o(()=>[v(h(i.decodeHTMLEntities(i.keywords[n-1].keyword)),1)]),default:o(()=>[c("span",Rt,h(i.decodeHTMLEntities(i.keywords[n-1].keyword)),1)]),_:2},1024)):(a(),d("span",Bt,h(i.decodeHTMLEntities(i.keywords[n-1].keyword)),1)),t(m,{type:"clicks",total:i.keywords[n-1].clicks,difference:i.keywords[n-1].difference.clicks,showDifference:!1,showZeroValues:!0},null,8,["total","difference"])],64)):w("",!0)])])),64))],2)],64)):w("",!0),_.searchStatisticsStore.loading.keywords?(a(),y(u,{key:2,dark:""})):w("",!0)])}const Zt=g(xt,[["render",Kt]]),qt={setup(){return{searchStatisticsStore:L()}},components:{PostsTable:tt},data(){return{defaultPages:{rows:[]}}}};function Ot(r,l,f,_,s,i){var m,u,n;const p=e("posts-table");return a(),y(p,{posts:((n=(u=(m=_.searchStatisticsStore.data)==null?void 0:m.seoStatistics)==null?void 0:u.pages)==null?void 0:n.topPages)||s.defaultPages,columns:["row","postTitle","indexStatus","seoScore","clicks","impressions","position","diffPosition"],isLoading:_.searchStatisticsStore.loading.seoStatistics,"show-header":!1},null,8,["posts","isLoading"])}const Ut=g(qt,[["render",Ot]]),Dt={components:{CardFooter:at,CoreBlur:D,CoreCard:E,CoreMainTabs:z,CoreOverview:F,GridColumn:G,GridRow:W,KeywordsGraph:N,SeoStatisticsOverview:A,SvgList:I,SvgQuery:ut,SvgSpeed:kt,SvgStatistics:j,SvgWeb:Tt,TopKeywords:Zt,TopPages:Ut},data(){return{strings:{overallOptimizationCard:this.$t.__("Post Optimizations",this.$td),keywordsCard:this.$t.__("Keyword Rankings",this.$td),keywordPositionsCard:this.$t.__("Keyword Positions",this.$td),statisticsCard:this.$t.__("SEO Statistics",this.$td),postRankingCard:this.$t.__("Content Rankings",this.$td)},keywordsTabs:[{slug:"TopKeywords",name:this.$t.__("Top Keywords",this.$td)},{slug:"WinningLosingKeywords",name:this.$t.__("Winning / Losing",this.$td)}],postRankingTabs:[{slug:"TopPages",name:this.$t.__("Top Pages",this.$td)},{slug:"TopLosingPages",name:this.$t.__("Top Losing",this.$td)},{slug:"TopWinningPages",name:this.$t.__("Top Winning",this.$td)}]}}},Et={class:"aioseo-search-statistics-dashboard"};function zt(r,l,f,_,s,i){const p=e("svg-statistics"),m=e("seo-statistics-overview"),u=e("card-footer"),n=e("core-card"),H=e("svg-query"),$=e("core-main-tabs"),P=e("top-keywords"),k=e("grid-column"),M=e("svg-list"),V=e("keywords-graph"),R=e("svg-speed"),B=e("core-overview"),S=e("grid-row"),K=e("svg-web"),Z=e("top-pages"),q=e("core-blur");return a(),y(q,null,{default:o(()=>[c("div",Et,[t(S,null,{default:o(()=>[t(k,{md:"6"},{default:o(()=>[t(n,{class:"aioseo-seo-statistics-card",slug:"seoStatistics","header-text":s.strings.statisticsCard,toggles:!1,"no-slide":""},{"header-icon":o(()=>[t(p)]),default:o(()=>[t(m,{statistics:["impressions","clicks","ctr","position"]}),t(u)]),_:1},8,["header-text"]),t(n,{slug:"keywords","header-text":s.strings.keywordsCard,toggles:!1,"no-slide":""},{"header-icon":o(()=>[t(H)]),tabs:o(()=>[t($,{tabs:s.keywordsTabs,showSaveButton:!1,active:"TopKeywords",internal:""},null,8,["tabs"])]),default:o(()=>[t(P),t(u)]),_:1},8,["header-text"])]),_:1}),t(k,{md:"6"},{default:o(()=>[t(n,{slug:"keywordPositions","header-text":s.strings.keywordPositionsCard,toggles:!1,"no-slide":"",class:"aioseo-keyword-positions-card"},{"header-icon":o(()=>[t(M)]),default:o(()=>[t(V,{"legend-style":"simple"}),t(u)]),_:1},8,["header-text"]),t(n,{slug:"overallOptimization","header-text":s.strings.overallOptimizationCard,toggles:!1,"no-slide":""},{"header-icon":o(()=>[t(R)]),default:o(()=>[t(B),t(u)]),_:1},8,["header-text"])]),_:1})]),_:1}),t(S,null,{default:o(()=>[t(k,null,{default:o(()=>[t(n,{slug:"seoPostRanking","header-text":s.strings.postRankingCard,toggles:!1,"no-slide":""},{"header-icon":o(()=>[t(K)]),tabs:o(()=>[t($,{tabs:s.postRankingTabs,showSaveButton:!1,active:"TopPages",internal:""},null,8,["tabs"])]),default:o(()=>[t(Z)]),_:1},8,["header-text"])]),_:1})]),_:1})])]),_:1})}const Ft=g(Dt,[["render",zt]]),Gt={setup(){return{licenseStore:O()}},components:{Blur:Ft,Cta:st,RequiredPlans:et},data(){return{strings:{ctaButtonText:this.$t.__("Unlock Search Statistics",this.$td),ctaHeader:this.$t.sprintf(this.$t.__("Search Statistics is a %1$s Feature",this.$td),"PRO"),ctaDescription:this.$t.__("Connect your site to Google Search Console to receive insights on how content is being discovered. Identify areas for improvement and drive traffic to your website.",this.$td),thisFeatureRequires:this.$t.__("This feature requires one of the following plans:",this.$td),feature1:this.$t.__("Search traffic insights",this.$td),feature2:this.$t.__("Track page rankings",this.$td),feature3:this.$t.__("Track keyword rankings",this.$td),feature4:this.$t.__("Speed tests for individual pages/posts",this.$td)}}}},Wt={class:"aioseo-search-statistics-dashboard"};function Nt(r,l,f,_,s,i){const p=e("blur"),m=e("required-plans"),u=e("cta");return a(),d("div",Wt,[t(p),t(u,{"cta-link":r.$links.getPricingUrl("search-statistics","search-statistics-upsell","dashboard"),"button-text":s.strings.ctaButtonText,"learn-more-link":r.$links.getUpsellUrl("search-statistics","dashboard",r.$isPro?"pricing":"liteUpgrade"),"feature-list":[s.strings.feature1,s.strings.feature2,s.strings.feature3,s.strings.feature4],"align-top":"","hide-bonus":!_.licenseStore.isUnlicensed},{"header-text":o(()=>[v(h(s.strings.ctaHeader),1)]),description:o(()=>[t(m,{"core-feature":["search-statistics"]}),v(" "+h(s.strings.ctaDescription),1)]),_:1},8,["cta-link","button-text","learn-more-link","feature-list","hide-bonus"])])}const x=g(Gt,[["render",Nt]]),At={mixins:[X],components:{Dashboard:x,Lite:x}},It={class:"aioseo-search-statistics-dashboard"};function jt(r,l,f,_,s,i){const p=e("dashboard",!0),m=e("lite");return a(),d("div",It,[r.shouldShowMain("search-statistics")?(a(),y(p,{key:0})):w("",!0),r.shouldShowUpgrade("search-statistics")||r.shouldShowLite?(a(),y(m,{key:1})):w("",!0)])}const Os=g(At,[["render",jt]]);export{Os as default}; all-in-one-seo-pack/dist/Lite/assets/js/DatabaseTools.BIGP5SPB.js000064400000032347151222736000020221 0ustar00import{u as v,p as $,a as V,f as M}from"./links.CKSg78-h.js";import{l as D}from"./license.8zyTf6Rb.js";import{N as R}from"./Network.DMswTGP1.js";import{C as x}from"./Card.C6Yzm1Gr.js";import{T as O}from"./ToolsSettings.Cjw3TBMG.js";import{B as I}from"./Checkbox.CfGJSeWE.js";import{C as E,S as H}from"./Caret.Cuasz9Up.js";import{C as F}from"./Index.6gbvf_mk.js";import{C as z}from"./SettingsRow.B0N4hwjp.js";import{G as j,a as P}from"./Row.ou4tdPuA.js";import{y as a,o as n,c as m,D as r,m as o,l as p,E as d,t as l,d as g,a as u,F as Y,L as G,H as q,I as C}from"./vue.esm-bundler.DzelZkHk.js";import{_ as y}from"./_plugin-vue_export-helper.BN1snXvA.js";import{S as J}from"./Checkmark.Du5wcsnR.js";import{C as K}from"./Blur.B433XVqJ.js";import{C as Q}from"./Index.Ck0NNxBQ.js";import"./default-i18n.BtxsUzQk.js";import"./isArrayLikeObject.CkjpbQo7.js";import"./upperFirst.Cx8cdEgZ.js";import"./_stringToArray.DnK4tKcY.js";import"./toString.EVG10Qqs.js";import"./Tooltip.DcUmvaHX.js";import"./index.DX4OhBfI.js";import"./Slide.BfXXFx9A.js";import"./addons.Bhqo_sme.js";import"./allowed.B_mIy271.js";import"./constants.DARe-ccJ.js";const W={setup(){return{rootStore:v(),toolsStore:$()}},components:{BaseCheckbox:I,CoreAlert:E,CoreModal:F,CoreSettingsRow:z,GridColumn:j,GridRow:P,SvgClose:H},mixins:[O],props:{site:Object},data(){return{showSuccess:!1,showModal:!1,loading:!1,options:{},strings:{selectSettings:this.$t.__("Select Settings",this.$td),selectSettingsToReset:this.$t.__("Select settings that you would like to reset:",this.$td),resetSelectedSettings:this.$t.__("Reset Selected Settings to Default",this.$td),resetSuccess:this.$t.__("Your settings have been reset successfully!",this.$td),areYouSureReset:this.$t.__("Are you sure you want to reset the selected settings to default?",this.$td),actionCannotBeUndone:this.$t.sprintf(this.$t.__("This action cannot be undone. Before taking this action, we recommend that you make a %1$sfull website backup first%2$s.",this.$td),"",""),yesIHaveBackup:this.$t.__("Yes, I have a backup and want to reset the settings",this.$td),noBackup:this.$t.__("No, I need to make a backup",this.$td),allSettings:this.$t.sprintf(this.$t.__("All %1$s Settings",this.$td),"AIOSEO")}}},computed:{canReset(){if(this.rootStore.aioseo.data.isNetworkAdmin&&!this.site)return!1;const s=[];return Object.keys(this.options).forEach(t=>{s.push(this.options[t])}),!s.some(t=>t)}},methods:{noMakeBackup(){this.rootStore.navigate.scroll="aioseo-backup-settings",this.rootStore.navigate.highlight="aioseo-backup-settings",this.$router.push({name:"import-export"})},processResetSettings(){const s=[];this.options.all?this.toolsSettings.filter(t=>t.value!=="all").forEach(t=>{s.push(t.value)}):Object.keys(this.options).forEach(t=>{this.options[t]&&s.push(t)}),this.loading=!0,this.toolsStore.resetSettings({payload:s,siteId:this.site?this.site.blog_id:null}).then(()=>{this.showModal=!1,this.loading=!1,this.showSuccess=!0,this.options={},setTimeout(()=>{this.showSuccess=!1},5e3)})}}},X={class:"aioseo-core-reset-settings"},Z={class:"reset-settings"},ee=u("br",null,null,-1),te=u("br",null,null,-1),se={class:"aioseo-modal-body"},oe=["innerHTML"];function ie(s,t,w,c,e,i){const S=a("core-alert"),_=a("base-checkbox"),f=a("grid-column"),L=a("grid-row"),b=a("base-button"),k=a("core-settings-row"),B=a("svg-close"),U=a("core-modal");return n(),m("div",X,[r(k,{name:e.strings.selectSettings,class:"no-border"},{content:o(()=>[e.showSuccess?(n(),p(S,{key:0,class:"reset-success",type:"green"},{default:o(()=>[d(l(e.strings.resetSuccess),1)]),_:1})):g("",!0),u("div",Z,[d(l(e.strings.selectSettingsToReset)+" ",1),ee,te,r(L,{class:"settings"},{default:o(()=>[r(f,null,{default:o(()=>[r(_,{size:"medium",modelValue:e.options.all,"onUpdate:modelValue":t[0]||(t[0]=h=>e.options.all=h),disabled:c.rootStore.aioseo.data.isNetworkAdmin&&!w.site},{default:o(()=>[d(l(e.strings.allSettings),1)]),_:1},8,["modelValue","disabled"])]),_:1}),(n(!0),m(Y,null,G(s.toolsSettings,(h,A)=>(n(),p(f,{key:A,xl:"3",md:"4",sm:"6"},{default:o(()=>[e.options.all?g("",!0):(n(),p(_,{key:0,size:"medium",modelValue:e.options[h.value],"onUpdate:modelValue":N=>e.options[h.value]=N,disabled:c.rootStore.aioseo.data.isNetworkAdmin&&!w.site},{default:o(()=>[d(l(h.label),1)]),_:2},1032,["modelValue","onUpdate:modelValue","disabled"])),h.value!=="all"&&e.options.all?(n(),p(_,{key:1,size:"medium",modelValue:!0,disabled:""},{default:o(()=>[d(l(h.label),1)]),_:2},1024)):g("",!0)]),_:2},1024))),128))]),_:1}),r(b,{type:"gray",size:"medium",onClick:t[1]||(t[1]=h=>e.showModal=!0),disabled:i.canReset},{default:o(()=>[d(l(e.strings.resetSelectedSettings),1)]),_:1},8,["disabled"])])]),_:1},8,["name"]),r(U,{show:e.showModal,"no-header":"",onClose:t[4]||(t[4]=h=>e.showModal=!1),classes:["aioseo-core-reset-settings-modal"]},{body:o(()=>[u("div",se,[u("button",{class:"close",onClick:t[3]||(t[3]=q(h=>e.showModal=!1,["stop"]))},[r(B,{onClick:t[2]||(t[2]=h=>e.showModal=!1)})]),u("h3",null,l(e.strings.areYouSureReset),1),u("div",{class:"reset-description",innerHTML:e.strings.actionCannotBeUndone},null,8,oe),r(b,{type:"blue",size:"medium",onClick:i.processResetSettings,loading:e.loading},{default:o(()=>[d(l(e.strings.yesIHaveBackup),1)]),_:1},8,["onClick","loading"]),r(b,{type:"gray",size:"medium",onClick:i.noMakeBackup},{default:o(()=>[d(l(e.strings.noBackup),1)]),_:1},8,["onClick"])])]),_:1},8,["show"])])}const T=y(W,[["render",ie]]),re={setup(){return{optionsStore:V(),rootStore:v(),toolsStore:$()}},mixins:[R],components:{CoreCard:x,CoreResetSettings:T,CoreSettingsRow:z,SvgCheckmark:J},data(){return{site:null,selectedSite:null,clearedLogs:{badBotBlockerLogs:!1,redirectLogs:!1,logs404:!1},loadingLog:null,strings:{selectSite:this.$t.__("Select Site",this.$td),resetRestoreSettings:this.$t.__("Reset / Restore Settings",this.$td),logs:this.$t.__("Logs",this.$td),badBotBlockerLogs:this.$t.__("Bad Bot Blocker Logs",this.$td),cleared:this.$t.__("Cleared",this.$td),clearBadBotBlockerLogs:this.$t.__("Clear Bad Bot Blocker Logs",this.$td),logs404:this.$t.__("404 Logs",this.$td),clear404Logs:this.$t.__("Clear 404 Logs",this.$td),redirectLogs:this.$t.__("Redirect Logs",this.$td),clearRedirectLogs:this.$t.__("Clear Redirect Logs",this.$td),logsTooltip:this.$t.__(`Log sizes may fluctuate and not always be 100% accurate since the results can be cached. Also after clearing a log, it may not show as "0" since database tables also include additional information such as indexes that we don't clear.`,this.$td)}}},watch:{site(s){this.selectedSite=this.rootStore.aioseo.data.network.sites.sites.find(t=>this.getUniqueSiteId(t)===s.value)}},computed:{canReset(){const s=[];return Object.keys(this.options).forEach(t=>{s.push(this.options[t])}),!s.some(t=>t)},showLogs(){return!this.rootStore.aioseo.data.isNetworkAdmin&&(this.showBadBotBlockerLogs||this.rootStore.aioseo.data.logSizes.redirectLogs||this.rootStore.aioseo.data.logSizes.logs404)},showBadBotBlockerLogs(){return this.optionsStore.internalOptions.internal.deprecatedOptions.includes("badBotBlocker")},sites(){return this.getSites.filter(s=>!s.parentDomain).map(s=>({value:this.getUniqueSiteId(s),label:`${s.domain}${s.path}`}))}},methods:{getSizeClass(s){let t="green";return 262144e3{this.loadingLog=null,this.clearedLogs[s]=!0})},disabledLog(s){return!this.rootStore.aioseo.data.logSizes[s].original||this.clearedLogs[s]}}},ne={class:"aioseo-tools-database-tools"},ae={key:0},le={key:1},ce={class:"log-size"},de={key:0},ge={key:1},ue={class:"log-size"},_e={key:0},he={key:1},me={class:"log-size"};function pe(s,t,w,c,e,i){const S=a("base-select"),_=a("core-settings-row"),f=a("core-reset-settings"),L=a("core-card"),b=a("svg-checkmark"),k=a("base-button");return n(),m("div",ne,[r(L,{slug:"databaseTools","header-text":e.strings.resetRestoreSettings},{default:o(()=>[c.rootStore.aioseo.data.isNetworkAdmin?(n(),p(_,{key:0,name:e.strings.selectSite},{content:o(()=>[r(S,{size:"medium",modelValue:e.site,"onUpdate:modelValue":t[0]||(t[0]=B=>e.site=B),options:i.sites},null,8,["modelValue","options"])]),_:1},8,["name"])):g("",!0),r(f,{site:e.selectedSite},null,8,["site"])]),_:1},8,["header-text"]),i.showLogs?(n(),p(L,{key:0,slug:"databaseToolsLogs","header-text":e.strings.logs},{tooltip:o(()=>[d(l(e.strings.logsTooltip),1)]),default:o(()=>[c.rootStore.aioseo.data.logSizes.logs404?(n(),p(_,{key:0,name:e.strings.logs404,align:""},{content:o(()=>[r(k,{class:"clear-log",type:"gray",size:"medium",loading:e.loadingLog==="logs404",disabled:i.disabledLog("logs404"),onClick:t[1]||(t[1]=B=>i.processClearLog("logs404"))},{default:o(()=>[i.disabledLog("logs404")?(n(),m("span",ae,[r(b),d(" "+l(e.strings.cleared),1)])):g("",!0),i.disabledLog("logs404")?g("",!0):(n(),m("span",le,l(e.strings.clear404Logs),1))]),_:1},8,["loading","disabled"]),u("div",ce,[u("span",{class:C(["size-dot",i.getSizeClass(c.rootStore.aioseo.data.logSizes.logs404.original)])},null,2),d(" "+l(c.rootStore.aioseo.data.logSizes.logs404.readable),1)])]),_:1},8,["name"])):g("",!0),c.rootStore.aioseo.data.logSizes.redirectLogs?(n(),p(_,{key:1,name:e.strings.redirectLogs,align:""},{content:o(()=>[r(k,{class:"clear-log",type:"gray",size:"medium",loading:e.loadingLog==="redirectLogs",disabled:i.disabledLog("redirectLogs"),onClick:t[2]||(t[2]=B=>i.processClearLog("redirectLogs"))},{default:o(()=>[i.disabledLog("redirectLogs")?(n(),m("span",de,[r(b),d(" "+l(e.strings.cleared),1)])):g("",!0),i.disabledLog("redirectLogs")?g("",!0):(n(),m("span",ge,l(e.strings.clearRedirectLogs),1))]),_:1},8,["loading","disabled"]),u("div",ue,[u("span",{class:C(["size-dot",i.getSizeClass(c.rootStore.aioseo.data.logSizes.redirectLogs.original)])},null,2),d(" "+l(c.rootStore.aioseo.data.logSizes.redirectLogs.readable),1)])]),_:1},8,["name"])):g("",!0),i.showBadBotBlockerLogs?(n(),p(_,{key:2,name:e.strings.badBotBlockerLogs,align:""},{content:o(()=>[r(k,{class:"clear-log",type:"gray",size:"medium",loading:e.loadingLog==="badBotBlockerLog",disabled:i.disabledLog("badBotBlockerLog"),onClick:t[3]||(t[3]=B=>i.processClearLog("badBotBlockerLog"))},{default:o(()=>[i.disabledLog("badBotBlockerLog")?(n(),m("span",_e,[r(b),d(" "+l(e.strings.cleared),1)])):g("",!0),i.disabledLog("badBotBlockerLog")?g("",!0):(n(),m("span",he,l(e.strings.clearBadBotBlockerLogs),1))]),_:1},8,["loading","disabled"]),u("div",me,[u("span",{class:C(["size-dot",i.getSizeClass(c.rootStore.aioseo.data.logSizes.badBotBlockerLog.original)])},null,2),d(" "+l(c.rootStore.aioseo.data.logSizes.badBotBlockerLog.readable),1)])]),_:1},8,["name"])):g("",!0)]),_:1},8,["header-text"])):g("",!0)])}const be=y(re,[["render",pe]]),Se={mixins:[R],components:{CoreBlur:K,CoreCard:x,CoreResetSettings:T,CoreSettingsRow:z,Cta:Q},data(){return{strings:{selectSite:this.$t.__("Select Site",this.$td),resetRestoreSettings:this.$t.__("Reset / Restore Settings",this.$td),logs:this.$t.__("Logs",this.$td),badBotBlockerLogs:this.$t.__("Bad Bot Blocker Logs",this.$td),cleared:this.$t.__("Cleared",this.$td),clearBadBotBlockerLogs:this.$t.__("Clear Bad Bot Blocker Logs",this.$td),logs404:this.$t.__("404 Logs",this.$td),clear404Logs:this.$t.__("Clear 404 Logs",this.$td),redirectLogs:this.$t.__("Redirect Logs",this.$td),clearRedirectLogs:this.$t.__("Clear Redirect Logs",this.$td),logsTooltip:this.$t.__(`Log sizes may fluctuate and not always be 100% accurate since the results can be cached. Also after clearing a log, it may not show as "0" since database tables also include additional information such as indexes that we don't clear.`,this.$td),ctaHeader:this.$t.sprintf(this.$t.__("Network Tools is a %1$s Feature",this.$td),"PRO"),ctaButtonText:this.$t.__("Unlock Network Tools",this.$td),networkDatabaseToolsDescription:this.$t.__("Unlock network-level tools to manage all your sites from one easy-to-use location. Migrate data or create backups without the need to visit each dashboard.",this.$td)}}}},ke={class:"aioseo-tools-database-tools"};function fe(s,t,w,c,e,i){const S=a("base-select"),_=a("core-settings-row"),f=a("core-reset-settings"),L=a("core-blur"),b=a("cta"),k=a("core-card");return n(),m("div",ke,[r(k,{slug:"databaseTools","header-text":e.strings.resetRestoreSettings},{default:o(()=>[r(L,null,{default:o(()=>[r(_,{name:e.strings.selectSite},{content:o(()=>[r(S,{size:"medium",modelValue:{value:"",label:""},options:[]})]),_:1},8,["name"]),r(f)]),_:1}),r(b,{"cta-link":s.$links.getPricingUrl("network-tools","database-tools"),"button-text":e.strings.ctaButtonText,"learn-more-link":s.$links.getUpsellUrl("network-tools","database-tools",s.$isPro?"pricing":"liteUpgrade")},{"header-text":o(()=>[d(l(e.strings.ctaHeader),1)]),description:o(()=>[d(l(e.strings.networkDatabaseToolsDescription),1)]),_:1},8,["cta-link","button-text","learn-more-link"])]),_:1},8,["header-text"])])}const Le=y(Se,[["render",fe]]),Be={setup(){return{licenseStore:M(),rootStore:v()}},components:{DatabaseTools:be,LiteDatabaseTools:Le},data(){return{license:D}}};function we(s,t,w,c,e,i){const S=a("database-tools",!0),_=a("lite-database-tools");return n(),m("div",null,[!c.rootStore.aioseo.data.isNetworkAdmin||!c.licenseStore.isUnlicensed&&e.license.hasCoreFeature("tools","network-tools-database")?(n(),p(S,{key:0})):g("",!0),c.rootStore.aioseo.data.isNetworkAdmin&&(c.licenseStore.isUnlicensed||!e.license.hasCoreFeature("tools","network-tools-database"))?(n(),p(_,{key:1})):g("",!0)])}const Qe=y(Be,[["render",we]]);export{Qe as default}; all-in-one-seo-pack/dist/Lite/assets/js/Date.Bc79vv_Y.js000064400000001775151222736000016547 0ustar00import{D as n}from"./links.CKSg78-h.js";import{_ as a}from"./default-i18n.BtxsUzQk.js";import{t as e}from"./constants.DARe-ccJ.js";function r(o,t="yyyy-MM-dd HH:mm:ss"){return n.fromSQL(o,{zone:"utc"}).setZone(n.local().zoneName).toFormat(t)}function s(o){return n.fromSQL(o,{zone:"utc"}).setZone(n.local().zoneName).toRelative().replace("a few seconds ago",a("a few seconds ago",e)).replace("a minute ago",a("a minute ago",e)).replace("minutes ago",a("minutes ago",e)).replace("a day ago",a("a day ago",e)).replace("days ago",a("days ago",e)).replace("a month ago",a("a month ago",e)).replace("months ago",a("months ago",e)).replace("a year ago",a("a year ago",e)).replace("years ago",a("years ago",e))}function l(o,t="yyyy-MM-dd HH:mm:ss"){return o?n.fromJSDate(o).setZone(n.local().zoneName).toFormat(t):null}function c(o){return o?n.fromJSDate(new Date(o)).setZone(n.local().zoneName).toJSDate():null}const p={methods:{dateSqlToLocal:r,dateSqlToLocalRelative:s,dateJsToLocal:l,dateStringToLocalJs:c}};export{p as D}; all-in-one-seo-pack/dist/Lite/assets/js/DatePicker.9jCaxc1v.js000064400000550723151222736000017727 0ustar00import{u as Ro,H as Ln}from"./links.CKSg78-h.js";import{o as D,c as K,a as q,u as r,ae as Io,af as Fo,W as ft,A as st,n as Ee,w as fe,j,f as re,ah as No,g as T,i as Ce,a2 as Lo,s as an,a0 as xt,U as Vo,p as dt,q as $e,C as bt,ac as Ve,a5 as Bo,R as En,S as $n,O as ze,P as _t,d as ne,F as _e,I as A,l as de,m as le,x as tt,D as ee,H as et,t as he,k as Ht,T as ia,r as ua,ai as Ho,aj as zo,ak as Mr,al as Yo,K as jo,am as Wo,a3 as Ko,L as We,E as mt,J as Gt,y as Vn}from"./vue.esm-bundler.DzelZkHk.js";import{_ as Tr}from"./_plugin-vue_export-helper.BN1snXvA.js";import{e as Uo}from"./Caret.Cuasz9Up.js";import{m as Mt,l as Tt}from"./default-i18n.BtxsUzQk.js";import{g as qo}from"./get.CmvQfcJ_.js";import{b as Go,i as Zo,f as Jo}from"./isUndefined.2CoGFx8R.js";import{d as Xo}from"./debounce.vOAperWf.js";function Mn(e){for(var t=-1,n=e==null?0:e.length,a={};++t"u")return!1;var t=Qe(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function Rt(e){return((zt(e)?e.ownerDocument:e.document)||window.document).documentElement}var Lt=Math.max,Tn=Math.min,Jt=Math.round;function Gn(){var e=navigator.userAgentData;return e!=null&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(t){return t.brand+"/"+t.version}).join(" "):navigator.userAgent}function Pr(){return!/^((?!chrome|android).)*safari/i.test(Gn())}function Xt(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);var a=e.getBoundingClientRect(),o=1,s=1;t&&at(e)&&(o=e.offsetWidth>0&&Jt(a.width)/e.offsetWidth||1,s=e.offsetHeight>0&&Jt(a.height)/e.offsetHeight||1);var l=zt(e)?Qe(e):window,u=l.visualViewport,i=!Pr()&&n,f=(a.left+(i&&u?u.offsetLeft:0))/o,m=(a.top+(i&&u?u.offsetTop:0))/s,d=a.width/o,g=a.height/s;return{width:d,height:g,top:m,right:f+d,bottom:m+g,left:f,x:f,y:m}}function pa(e){var t=Qe(e),n=t.pageXOffset,a=t.pageYOffset;return{scrollLeft:n,scrollTop:a}}function va(e){return Xt(Rt(e)).left+pa(e).scrollLeft}function ws(e,t){var n=Qe(e),a=Rt(e),o=n.visualViewport,s=a.clientWidth,l=a.clientHeight,u=0,i=0;if(o){s=o.width,l=o.height;var f=Pr();(f||!f&&t==="fixed")&&(u=o.offsetLeft,i=o.offsetTop)}return{width:s,height:l,x:u+va(e),y:i}}function Ct(e){return Qe(e).getComputedStyle(e)}function ks(e){var t,n=Rt(e),a=pa(e),o=(t=e.ownerDocument)==null?void 0:t.body,s=Lt(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),l=Lt(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),u=-a.scrollLeft+va(e),i=-a.scrollTop;return Ct(o||n).direction==="rtl"&&(u+=Lt(n.clientWidth,o?o.clientWidth:0)-s),{width:s,height:l,x:u,y:i}}function wt(e){return e?(e.nodeName||"").toLowerCase():null}function Rn(e){return wt(e)==="html"?e:e.assignedSlot||e.parentNode||(fa(e)?e.host:null)||Rt(e)}function ha(e){var t=Ct(e),n=t.overflow,a=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+a)}function Or(e){return["html","body","#document"].indexOf(wt(e))>=0?e.ownerDocument.body:at(e)&&ha(e)?e:Or(Rn(e))}function rn(e,t){var n;t===void 0&&(t=[]);var a=Or(e),o=a===((n=e.ownerDocument)==null?void 0:n.body),s=Qe(a),l=o?[s].concat(s.visualViewport||[],ha(a)?a:[]):a,u=t.concat(l);return o?u:u.concat(rn(Rn(l)))}function Ss(e){return["table","td","th"].indexOf(wt(e))>=0}function Ra(e){return!at(e)||Ct(e).position==="fixed"?null:e.offsetParent}function _s(e){var t=/firefox/i.test(Gn()),n=/Trident/i.test(Gn());if(n&&at(e)){var a=Ct(e);if(a.position==="fixed")return null}var o=Rn(e);for(fa(o)&&(o=o.host);at(o)&&["html","body"].indexOf(wt(o))<0;){var s=Ct(o);if(s.transform!=="none"||s.perspective!=="none"||s.contain==="paint"||["transform","perspective"].indexOf(s.willChange)!==-1||t&&s.willChange==="filter"||t&&s.filter&&s.filter!=="none")return o;o=o.parentNode}return null}function vn(e){for(var t=Qe(e),n=Ra(e);n&&Ss(n)&&Ct(n).position==="static";)n=Ra(n);return n&&(wt(n)==="html"||wt(n)==="body"&&Ct(n).position==="static")?t:n||_s(e)||t}function Er(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&fa(n)){var a=t;do{if(a&&e.isSameNode(a))return!0;a=a.parentNode||a.host}while(a)}return!1}function Zn(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function Cs(e,t){var n=Xt(e,!1,t==="fixed");return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}function Ia(e,t,n){return t===Dr?Zn(ws(e,n)):zt(t)?Cs(t,n):Zn(ks(Rt(e)))}function xs(e){var t=rn(Rn(e)),n=["absolute","fixed"].indexOf(Ct(e).position)>=0,a=n&&at(e)?vn(e):e;return zt(a)?t.filter(function(o){return zt(o)&&Er(o,a)&&wt(o)!=="body"}):[]}function Ms(e,t,n,a){var o=t==="clippingParents"?xs(e):[].concat(t),s=[].concat(o,[n]),l=s[0],u=s.reduce(function(i,f){var m=Ia(e,f,a);return i.top=Lt(m.top,i.top),i.right=Tn(m.right,i.right),i.bottom=Tn(m.bottom,i.bottom),i.left=Lt(m.left,i.left),i},Ia(e,l,a));return u.width=u.right-u.left,u.height=u.bottom-u.top,u.x=u.left,u.y=u.top,u}function Qt(e){return e.split("-")[1]}function ma(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function $r(e){var t=e.reference,n=e.element,a=e.placement,o=a?yt(a):null,s=a?Qt(a):null,l=t.x+t.width/2-n.width/2,u=t.y+t.height/2-n.height/2,i;switch(o){case Ke:i={x:l,y:t.y-n.height};break;case rt:i={x:l,y:t.y+t.height};break;case ot:i={x:t.x+t.width,y:u};break;case Ue:i={x:t.x-n.width,y:u};break;default:i={x:t.x,y:t.y}}var f=o?ma(o):null;if(f!=null){var m=f==="y"?"height":"width";switch(s){case Zt:i[f]=i[f]-(t[m]/2-n[m]/2);break;case sn:i[f]=i[f]+(t[m]/2-n[m]/2);break}}return i}function Ar(){return{top:0,right:0,bottom:0,left:0}}function Rr(e){return Object.assign({},Ar(),e)}function Ir(e,t){return t.reduce(function(n,a){return n[a]=e,n},{})}function ln(e,t){t===void 0&&(t={});var n=t,a=n.placement,o=a===void 0?e.placement:a,s=n.strategy,l=s===void 0?e.strategy:s,u=n.boundary,i=u===void 0?ls:u,f=n.rootBoundary,m=f===void 0?Dr:f,d=n.elementContext,g=d===void 0?nn:d,h=n.altBoundary,v=h===void 0?!1:h,c=n.padding,k=c===void 0?0:c,y=Rr(typeof k!="number"?k:Ir(k,pn)),w=g===nn?is:nn,N=e.rects.popper,x=e.elements[v?w:g],R=Ms(zt(x)?x:x.contextElement||Rt(e.elements.popper),i,m,l),P=Xt(e.elements.reference),_=$r({reference:P,element:N,strategy:"absolute",placement:o}),O=Zn(Object.assign({},N,_)),H=g===nn?O:P,V={top:R.top-H.top+y.top,bottom:H.bottom-R.bottom+y.bottom,left:R.left-H.left+y.left,right:H.right-R.right+y.right},B=e.modifiersData.offset;if(g===nn&&B){var J=B[o];Object.keys(V).forEach(function(U){var z=[ot,rt].indexOf(U)>=0?1:-1,L=[Ke,rt].indexOf(U)>=0?"y":"x";V[U]+=J[L]*z})}return V}function Ts(e,t){t===void 0&&(t={});var n=t,a=n.placement,o=n.boundary,s=n.rootBoundary,l=n.padding,u=n.flipVariations,i=n.allowedAutoPlacements,f=i===void 0?da:i,m=Qt(a),d=m?u?$a:$a.filter(function(v){return Qt(v)===m}):pn,g=d.filter(function(v){return f.indexOf(v)>=0});g.length===0&&(g=d);var h=g.reduce(function(v,c){return v[c]=ln(e,{placement:c,boundary:o,rootBoundary:s,padding:l})[yt(c)],v},{});return Object.keys(h).sort(function(v,c){return h[v]-h[c]})}function Ds(e){if(yt(e)===ca)return[];var t=_n(e);return[Aa(e),t,Aa(t)]}function Ps(e){var t=e.state,n=e.options,a=e.name;if(!t.modifiersData[a]._skip){for(var o=n.mainAxis,s=o===void 0?!0:o,l=n.altAxis,u=l===void 0?!0:l,i=n.fallbackPlacements,f=n.padding,m=n.boundary,d=n.rootBoundary,g=n.altBoundary,h=n.flipVariations,v=h===void 0?!0:h,c=n.allowedAutoPlacements,k=t.options.placement,y=yt(k),w=y===k,N=i||(w||!v?[_n(k)]:Ds(k)),x=[k].concat(N).reduce(function(te,oe){return te.concat(yt(oe)===ca?Ts(t,{placement:oe,boundary:m,rootBoundary:d,padding:f,flipVariations:v,allowedAutoPlacements:c}):oe)},[]),R=t.rects.reference,P=t.rects.popper,_=new Map,O=!0,H=x[0],V=0;V=0,L=z?"width":"height",F=ln(t,{placement:B,boundary:m,rootBoundary:d,altBoundary:g,padding:f}),C=z?U?ot:Ue:U?rt:Ke;R[L]>P[L]&&(C=_n(C));var M=_n(C),p=[];if(s&&p.push(F[J]<=0),u&&p.push(F[C]<=0,F[M]<=0),p.every(function(te){return te})){H=B,O=!1;break}_.set(B,p)}if(O)for(var S=v?3:1,E=function(oe){var pe=x.find(function(ve){var me=_.get(ve);if(me)return me.slice(0,oe).every(function(xe){return xe})});if(pe)return H=pe,"break"},I=S;I>0;I--){var G=E(I);if(G==="break")break}t.placement!==H&&(t.modifiersData[a]._skip=!0,t.placement=H,t.reset=!0)}}const Os={name:"flip",enabled:!0,phase:"main",fn:Ps,requiresIfExists:["offset"],data:{_skip:!1}};function Es(e,t,n){var a=yt(e),o=[Ue,Ke].indexOf(a)>=0?-1:1,s=typeof n=="function"?n(Object.assign({},t,{placement:e})):n,l=s[0],u=s[1];return l=l||0,u=(u||0)*o,[Ue,ot].indexOf(a)>=0?{x:u,y:l}:{x:l,y:u}}function $s(e){var t=e.state,n=e.options,a=e.name,o=n.offset,s=o===void 0?[0,0]:o,l=da.reduce(function(m,d){return m[d]=Es(d,t.rects,s),m},{}),u=l[t.placement],i=u.x,f=u.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=i,t.modifiersData.popperOffsets.y+=f),t.modifiersData[a]=l}const As={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:$s};var Rs={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Is(e,t){var n=e.x,a=e.y,o=t.devicePixelRatio||1;return{x:Jt(n*o)/o||0,y:Jt(a*o)/o||0}}function Fa(e){var t,n=e.popper,a=e.popperRect,o=e.placement,s=e.variation,l=e.offsets,u=e.position,i=e.gpuAcceleration,f=e.adaptive,m=e.roundOffsets,d=e.isFixed,g=l.x,h=g===void 0?0:g,v=l.y,c=v===void 0?0:v,k=typeof m=="function"?m({x:h,y:c}):{x:h,y:c};h=k.x,c=k.y;var y=l.hasOwnProperty("x"),w=l.hasOwnProperty("y"),N=Ue,x=Ke,R=window;if(f){var P=vn(n),_="clientHeight",O="clientWidth";if(P===Qe(n)&&(P=Rt(n),Ct(P).position!=="static"&&u==="absolute"&&(_="scrollHeight",O="scrollWidth")),P=P,o===Ke||(o===Ue||o===ot)&&s===sn){x=rt;var H=d&&P===R&&R.visualViewport?R.visualViewport.height:P[_];c-=H-a.height,c*=i?1:-1}if(o===Ue||(o===Ke||o===rt)&&s===sn){N=ot;var V=d&&P===R&&R.visualViewport?R.visualViewport.width:P[O];h-=V-a.width,h*=i?1:-1}}var B=Object.assign({position:u},f&&Rs),J=m===!0?Is({x:h,y:c},Qe(n)):{x:h,y:c};if(h=J.x,c=J.y,i){var U;return Object.assign({},B,(U={},U[x]=w?"0":"",U[N]=y?"0":"",U.transform=(R.devicePixelRatio||1)<=1?"translate("+h+"px, "+c+"px)":"translate3d("+h+"px, "+c+"px, 0)",U))}return Object.assign({},B,(t={},t[x]=w?c+"px":"",t[N]=y?h+"px":"",t.transform="",t))}function Fs(e){var t=e.state,n=e.options,a=n.gpuAcceleration,o=a===void 0?!0:a,s=n.adaptive,l=s===void 0?!0:s,u=n.roundOffsets,i=u===void 0?!0:u,f={placement:yt(t.placement),variation:Qt(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:o,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,Fa(Object.assign({},f,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:l,roundOffsets:i})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,Fa(Object.assign({},f,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:i})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}const Ns={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:Fs,data:{}};function Ls(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function Vs(e){return e===Qe(e)||!at(e)?pa(e):Ls(e)}function Bs(e){var t=e.getBoundingClientRect(),n=Jt(t.width)/e.offsetWidth||1,a=Jt(t.height)/e.offsetHeight||1;return n!==1||a!==1}function Hs(e,t,n){n===void 0&&(n=!1);var a=at(t),o=at(t)&&Bs(t),s=Rt(t),l=Xt(e,o,n),u={scrollLeft:0,scrollTop:0},i={x:0,y:0};return(a||!a&&!n)&&((wt(t)!=="body"||ha(s))&&(u=Vs(t)),at(t)?(i=Xt(t,!0),i.x+=t.clientLeft,i.y+=t.clientTop):s&&(i.x=va(s))),{x:l.left+u.scrollLeft-i.x,y:l.top+u.scrollTop-i.y,width:l.width,height:l.height}}function ga(e){var t=Xt(e),n=e.offsetWidth,a=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-a)<=1&&(a=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:a}}function zs(e){var t=new Map,n=new Set,a=[];e.forEach(function(s){t.set(s.name,s)});function o(s){n.add(s.name);var l=[].concat(s.requires||[],s.requiresIfExists||[]);l.forEach(function(u){if(!n.has(u)){var i=t.get(u);i&&o(i)}}),a.push(s)}return e.forEach(function(s){n.has(s.name)||o(s)}),a}function Ys(e){var t=zs(e);return bs.reduce(function(n,a){return n.concat(t.filter(function(o){return o.phase===a}))},[])}function js(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function Ws(e){var t=e.reduce(function(n,a){var o=n[a.name];return n[a.name]=o?Object.assign({},o,a,{options:Object.assign({},o.options,a.options),data:Object.assign({},o.data,a.data)}):a,n},{});return Object.keys(t).map(function(n){return t[n]})}var Na={placement:"bottom",modifiers:[],strategy:"absolute"};function La(){for(var e=arguments.length,t=new Array(e),n=0;no=>{const s=e==null?void 0:e(o);if(n===!1||!s)return t==null?void 0:t(o)};var Va;const qe=typeof window<"u",el=e=>typeof e=="string",Fr=()=>{},tl=qe&&((Va=window==null?void 0:window.navigator)==null?void 0:Va.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function Nr(e){return typeof e=="function"?e():r(e)}function nl(e){return e}function ba(e){return Io()?(Fo(e),!0):!1}function al(e,t=!0){ft()?st(e):t?e():Ee(e)}function $t(e){var t;const n=Nr(e);return(t=n==null?void 0:n.$el)!=null?t:n}const ya=qe?window:void 0;function Vt(...e){let t,n,a,o;if(el(e[0])||Array.isArray(e[0])?([n,a,o]=e,t=ya):[t,n,a,o]=e,!t)return Fr;Array.isArray(n)||(n=[n]),Array.isArray(a)||(a=[a]);const s=[],l=()=>{s.forEach(m=>m()),s.length=0},u=(m,d,g,h)=>(m.addEventListener(d,g,h),()=>m.removeEventListener(d,g,h)),i=fe(()=>[$t(t),Nr(o)],([m,d])=>{l(),m&&s.push(...n.flatMap(g=>a.map(h=>u(m,g,h,d))))},{immediate:!0,flush:"post"}),f=()=>{i(),l()};return ba(f),f}let Ba=!1;function Lr(e,t,n={}){const{window:a=ya,ignore:o=[],capture:s=!0,detectIframe:l=!1}=n;if(!a)return;tl&&!Ba&&(Ba=!0,Array.from(a.document.body.children).forEach(g=>g.addEventListener("click",Fr)));let u=!0;const i=g=>o.some(h=>{if(typeof h=="string")return Array.from(a.document.querySelectorAll(h)).some(v=>v===g.target||g.composedPath().includes(v));{const v=$t(h);return v&&(g.target===v||g.composedPath().includes(v))}}),m=[Vt(a,"click",g=>{const h=$t(e);if(!(!h||h===g.target||g.composedPath().includes(h))){if(g.detail===0&&(u=!i(g)),!u){u=!0;return}t(g)}},{passive:!0,capture:s}),Vt(a,"pointerdown",g=>{const h=$t(e);h&&(u=!g.composedPath().includes(h)&&!i(g))},{passive:!0}),l&&Vt(a,"blur",g=>{var h;const v=$t(e);((h=a.document.activeElement)==null?void 0:h.tagName)==="IFRAME"&&!(v!=null&&v.contains(a.document.activeElement))&&t(g)})].filter(Boolean);return()=>m.forEach(g=>g())}function rl(e,t=!1){const n=j(),a=()=>n.value=!!e();return a(),al(a,t),n}const Ha=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},za="__vueuse_ssr_handlers__";Ha[za]=Ha[za]||{};var Ya=Object.getOwnPropertySymbols,ol=Object.prototype.hasOwnProperty,sl=Object.prototype.propertyIsEnumerable,ll=(e,t)=>{var n={};for(var a in e)ol.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(e!=null&&Ya)for(var a of Ya(e))t.indexOf(a)<0&&sl.call(e,a)&&(n[a]=e[a]);return n};function Vr(e,t,n={}){const a=n,{window:o=ya}=a,s=ll(a,["window"]);let l;const u=rl(()=>o&&"ResizeObserver"in o),i=()=>{l&&(l.disconnect(),l=void 0)},f=fe(()=>$t(e),d=>{i(),u.value&&o&&d&&(l=new ResizeObserver(t),l.observe(d,s))},{immediate:!0,flush:"post"}),m=()=>{i(),f()};return ba(m),{isSupported:u,stop:m}}var ja;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(ja||(ja={}));var il=Object.defineProperty,Wa=Object.getOwnPropertySymbols,ul=Object.prototype.hasOwnProperty,cl=Object.prototype.propertyIsEnumerable,Ka=(e,t,n)=>t in e?il(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,dl=(e,t)=>{for(var n in t||(t={}))ul.call(t,n)&&Ka(e,n,t[n]);if(Wa)for(var n of Wa(t))cl.call(t,n)&&Ka(e,n,t[n]);return e};const fl={easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]};dl({linear:nl},fl);const pl=()=>qe&&/firefox/i.test(window.navigator.userAgent);/** * @vue/shared v3.4.18 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT **/const un=()=>{},vl=Object.prototype.hasOwnProperty,Ua=(e,t)=>vl.call(e,t),Fe=Array.isArray,qa=e=>ml(e)==="[object Date]",gt=e=>typeof e=="function",qt=e=>typeof e=="string",Yt=e=>e!==null&&typeof e=="object",hl=Object.prototype.toString,ml=e=>hl.call(e),gl=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},bl=/-(\w)/g,yl=gl(e=>e.replace(bl,(t,n)=>n?n.toUpperCase():"")),Br=e=>e===void 0,Hr=e=>typeof e=="boolean",nt=e=>typeof e=="number",zr=e=>!e&&e!==0||Fe(e)&&e.length===0||Yt(e)&&!Object.keys(e).length,cn=e=>typeof Element>"u"?!1:e instanceof Element,wl=e=>qt(e)?!Number.isNaN(Number(e)):!1;class kl extends Error{constructor(t){super(t),this.name="ElementPlusError"}}function Sl(e,t){throw new kl(`[${e}] ${t}`)}const Yr=(e,t)=>{if(!e||!t)return!1;if(t.includes(" "))throw new Error("className should not contain space.");return e.classList.contains(t)},_l=(e,t)=>{var n;if(!qe||!e||!t)return"";let a=yl(t);a==="float"&&(a="cssFloat");try{const o=e.style[a];if(o)return o;const s=(n=document.defaultView)==null?void 0:n.getComputedStyle(e,"");return s?s[a]:""}catch{return e.style[a]}};function Jn(e,t="px"){if(!e)return"";if(nt(e)||wl(e))return`${e}${t}`;if(qt(e))return e}/*! Element Plus Icons Vue v2.3.1 */var Cl=re({name:"ArrowDown",__name:"arrow-down",setup(e){return(t,n)=>(D(),K("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[q("path",{fill:"currentColor",d:"M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z"})]))}}),xl=Cl,Ml=re({name:"ArrowLeft",__name:"arrow-left",setup(e){return(t,n)=>(D(),K("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[q("path",{fill:"currentColor",d:"M609.408 149.376 277.76 489.6a32 32 0 0 0 0 44.672l331.648 340.352a29.12 29.12 0 0 0 41.728 0 30.592 30.592 0 0 0 0-42.752L339.264 511.936l311.872-319.872a30.592 30.592 0 0 0 0-42.688 29.12 29.12 0 0 0-41.728 0z"})]))}}),Xn=Ml,Tl=re({name:"ArrowRight",__name:"arrow-right",setup(e){return(t,n)=>(D(),K("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[q("path",{fill:"currentColor",d:"M340.864 149.312a30.592 30.592 0 0 0 0 42.752L652.736 512 340.864 831.872a30.592 30.592 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z"})]))}}),Cn=Tl,Dl=re({name:"ArrowUp",__name:"arrow-up",setup(e){return(t,n)=>(D(),K("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[q("path",{fill:"currentColor",d:"m488.832 344.32-339.84 356.672a32 32 0 0 0 0 44.16l.384.384a29.44 29.44 0 0 0 42.688 0l320-335.872 319.872 335.872a29.44 29.44 0 0 0 42.688 0l.384-.384a32 32 0 0 0 0-44.16L535.168 344.32a32 32 0 0 0-46.336 0"})]))}}),Pl=Dl,Ol=re({name:"Calendar",__name:"calendar",setup(e){return(t,n)=>(D(),K("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[q("path",{fill:"currentColor",d:"M128 384v512h768V192H768v32a32 32 0 1 1-64 0v-32H320v32a32 32 0 0 1-64 0v-32H128v128h768v64zm192-256h384V96a32 32 0 1 1 64 0v32h160a32 32 0 0 1 32 32v768a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h160V96a32 32 0 0 1 64 0zm-32 384h64a32 32 0 0 1 0 64h-64a32 32 0 0 1 0-64m0 192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64m192-192h64a32 32 0 0 1 0 64h-64a32 32 0 0 1 0-64m0 192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64m192-192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64m0 192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64"})]))}}),El=Ol,$l=re({name:"CircleCheck",__name:"circle-check",setup(e){return(t,n)=>(D(),K("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[q("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"}),q("path",{fill:"currentColor",d:"M745.344 361.344a32 32 0 0 1 45.312 45.312l-288 288a32 32 0 0 1-45.312 0l-160-160a32 32 0 1 1 45.312-45.312L480 626.752l265.344-265.408z"})]))}}),Al=$l,Rl=re({name:"CircleClose",__name:"circle-close",setup(e){return(t,n)=>(D(),K("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[q("path",{fill:"currentColor",d:"m466.752 512-90.496-90.496a32 32 0 0 1 45.248-45.248L512 466.752l90.496-90.496a32 32 0 1 1 45.248 45.248L557.248 512l90.496 90.496a32 32 0 1 1-45.248 45.248L512 557.248l-90.496 90.496a32 32 0 0 1-45.248-45.248z"}),q("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"})]))}}),wa=Rl,Il=re({name:"Clock",__name:"clock",setup(e){return(t,n)=>(D(),K("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[q("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"}),q("path",{fill:"currentColor",d:"M480 256a32 32 0 0 1 32 32v256a32 32 0 0 1-64 0V288a32 32 0 0 1 32-32"}),q("path",{fill:"currentColor",d:"M480 512h256q32 0 32 32t-32 32H480q-32 0-32-32t32-32"})]))}}),Fl=Il,Nl=re({name:"DArrowLeft",__name:"d-arrow-left",setup(e){return(t,n)=>(D(),K("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[q("path",{fill:"currentColor",d:"M529.408 149.376a29.12 29.12 0 0 1 41.728 0 30.592 30.592 0 0 1 0 42.688L259.264 511.936l311.872 319.936a30.592 30.592 0 0 1-.512 43.264 29.12 29.12 0 0 1-41.216-.512L197.76 534.272a32 32 0 0 1 0-44.672l331.648-340.224zm256 0a29.12 29.12 0 0 1 41.728 0 30.592 30.592 0 0 1 0 42.688L515.264 511.936l311.872 319.936a30.592 30.592 0 0 1-.512 43.264 29.12 29.12 0 0 1-41.216-.512L453.76 534.272a32 32 0 0 1 0-44.672l331.648-340.224z"})]))}}),dn=Nl,Ll=re({name:"DArrowRight",__name:"d-arrow-right",setup(e){return(t,n)=>(D(),K("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[q("path",{fill:"currentColor",d:"M452.864 149.312a29.12 29.12 0 0 1 41.728.064L826.24 489.664a32 32 0 0 1 0 44.672L494.592 874.624a29.12 29.12 0 0 1-41.728 0 30.592 30.592 0 0 1 0-42.752L764.736 512 452.864 192a30.592 30.592 0 0 1 0-42.688m-256 0a29.12 29.12 0 0 1 41.728.064L570.24 489.664a32 32 0 0 1 0 44.672L238.592 874.624a29.12 29.12 0 0 1-41.728 0 30.592 30.592 0 0 1 0-42.752L508.736 512 196.864 192a30.592 30.592 0 0 1 0-42.688z"})]))}}),fn=Ll,Vl=re({name:"Hide",__name:"hide",setup(e){return(t,n)=>(D(),K("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[q("path",{fill:"currentColor",d:"M876.8 156.8c0-9.6-3.2-16-9.6-22.4-6.4-6.4-12.8-9.6-22.4-9.6-9.6 0-16 3.2-22.4 9.6L736 220.8c-64-32-137.6-51.2-224-60.8-160 16-288 73.6-377.6 176C44.8 438.4 0 496 0 512s48 73.6 134.4 176c22.4 25.6 44.8 48 73.6 67.2l-86.4 89.6c-6.4 6.4-9.6 12.8-9.6 22.4 0 9.6 3.2 16 9.6 22.4 6.4 6.4 12.8 9.6 22.4 9.6 9.6 0 16-3.2 22.4-9.6l704-710.4c3.2-6.4 6.4-12.8 6.4-22.4Zm-646.4 528c-76.8-70.4-128-128-153.6-172.8 28.8-48 80-105.6 153.6-172.8C304 272 400 230.4 512 224c64 3.2 124.8 19.2 176 44.8l-54.4 54.4C598.4 300.8 560 288 512 288c-64 0-115.2 22.4-160 64s-64 96-64 160c0 48 12.8 89.6 35.2 124.8L256 707.2c-9.6-6.4-19.2-16-25.6-22.4Zm140.8-96c-12.8-22.4-19.2-48-19.2-76.8 0-44.8 16-83.2 48-112 32-28.8 67.2-48 112-48 28.8 0 54.4 6.4 73.6 19.2zM889.599 336c-12.8-16-28.8-28.8-41.6-41.6l-48 48c73.6 67.2 124.8 124.8 150.4 169.6-28.8 48-80 105.6-153.6 172.8-73.6 67.2-172.8 108.8-284.8 115.2-51.2-3.2-99.2-12.8-140.8-28.8l-48 48c57.6 22.4 118.4 38.4 188.8 44.8 160-16 288-73.6 377.6-176C979.199 585.6 1024 528 1024 512s-48.001-73.6-134.401-176Z"}),q("path",{fill:"currentColor",d:"M511.998 672c-12.8 0-25.6-3.2-38.4-6.4l-51.2 51.2c28.8 12.8 57.6 19.2 89.6 19.2 64 0 115.2-22.4 160-64 41.6-41.6 64-96 64-160 0-32-6.4-64-19.2-89.6l-51.2 51.2c3.2 12.8 6.4 25.6 6.4 38.4 0 44.8-16 83.2-48 112-32 28.8-67.2 48-112 48Z"})]))}}),Bl=Vl,Hl=re({name:"Loading",__name:"loading",setup(e){return(t,n)=>(D(),K("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[q("path",{fill:"currentColor",d:"M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32m0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32m448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32m-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32M195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248zm452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248zM828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0m-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0z"})]))}}),jr=Hl,zl=re({name:"View",__name:"view",setup(e){return(t,n)=>(D(),K("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[q("path",{fill:"currentColor",d:"M512 160c320 0 512 352 512 352S832 864 512 864 0 512 0 512s192-352 512-352m0 64c-225.28 0-384.128 208.064-436.8 288 52.608 79.872 211.456 288 436.8 288 225.28 0 384.128-208.064 436.8-288-52.608-79.872-211.456-288-436.8-288zm0 64a224 224 0 1 1 0 448 224 224 0 0 1 0-448m0 64a160.192 160.192 0 0 0-160 160c0 88.192 71.744 160 160 160s160-71.808 160-160-71.744-160-160-160"})]))}}),Yl=zl;const Wr="__epPropKey",ae=e=>e,jl=e=>Yt(e)&&!!e[Wr],In=(e,t)=>{if(!Yt(e)||jl(e))return e;const{values:n,required:a,default:o,type:s,validator:l}=e,i={type:s,required:!!a,validator:n||l?f=>{let m=!1,d=[];if(n&&(d=Array.from(n),Ua(e,"default")&&d.push(o),m||(m=d.includes(f))),l&&(m||(m=l(f))),!m&&d.length>0){const g=[...new Set(d)].map(h=>JSON.stringify(h)).join(", ");No(`Invalid prop: validation failed${t?` for prop "${t}"`:""}. Expected one of [${g}], got value ${JSON.stringify(f)}.`)}return m}:void 0,[Wr]:!0};return Ua(e,"default")&&(i.default=o),i},ye=e=>Mn(Object.entries(e).map(([t,n])=>[t,In(n,t)])),Dn=ae([String,Object,Function]),Wl={validating:jr,success:Al,error:wa},en=(e,t)=>{if(e.install=n=>{for(const a of[e,...Object.values(t??{})])n.component(a.name,a)},t)for(const[n,a]of Object.entries(t))e[n]=a;return e},Kl=e=>(e.install=un,e),Oe={tab:"Tab",enter:"Enter",space:"Space",left:"ArrowLeft",up:"ArrowUp",right:"ArrowRight",down:"ArrowDown",esc:"Escape",delete:"Delete",backspace:"Backspace",numpadEnter:"NumpadEnter",pageUp:"PageUp",pageDown:"PageDown",home:"Home",end:"End"},Ul=["year","month","date","dates","week","datetime","datetimerange","daterange","monthrange"],Qn="update:modelValue",ql=["","default","small","large"],Bt=e=>!e&&e!==0?[]:Array.isArray(e)?e:[e],Gl=e=>/([\uAC00-\uD7AF\u3130-\u318F])+/gi.test(e),Zl=e=>e,Jl=["class","style"],Xl=/^on[A-Z]/,Ql=(e={})=>{const{excludeListeners:t=!1,excludeKeys:n}=e,a=T(()=>((n==null?void 0:n.value)||[]).concat(Jl)),o=ft();return o?T(()=>{var s;return Mn(Object.entries((s=o.proxy)==null?void 0:s.$attrs).filter(([l])=>!a.value.includes(l)&&!(t&&Xl.test(l))))}):T(()=>({}))},ei=({from:e,replacement:t,scope:n,version:a,ref:o,type:s="API"},l)=>{fe(()=>r(l),u=>{},{immediate:!0})};var ti={name:"en",el:{colorpicker:{confirm:"OK",clear:"Clear",defaultLabel:"color picker",description:"current color is {color}. press enter to select a new color."},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",dateTablePrompt:"Use the arrow keys and enter to select the day of the month",monthTablePrompt:"Use the arrow keys and enter to select the month",yearTablePrompt:"Use the arrow keys and enter to select the year",selectedDate:"Selected date",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",week:"week",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},weeksFull:{sun:"Sunday",mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},inputNumber:{decrease:"decrease number",increase:"increase number"},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},dropdown:{toggleDropdown:"Toggle Dropdown"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:"",page:"Page",prev:"Go to previous page",next:"Go to next page",currentPage:"page {pager}",prevPages:"Previous {pager} pages",nextPages:"Next {pager} pages",deprecationWarning:"Deprecated usages detected, please refer to the el-pagination documentation for more details"},dialog:{close:"Close this dialog"},drawer:{close:"Close this dialog"},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input",close:"Close this dialog"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},slider:{defaultLabel:"slider between {min} and {max}",defaultRangeStartLabel:"pick start value",defaultRangeEndLabel:"pick end value"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum"},tour:{next:"Next",previous:"Previous",finish:"Finish"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"}}};const ni=e=>(t,n)=>ai(t,n,r(e)),ai=(e,t,n)=>qo(n,e,e).replace(/\{(\w+)\}/g,(a,o)=>{var s;return`${(s=t==null?void 0:t[o])!=null?s:`{${o}}`}`}),ri=e=>{const t=T(()=>r(e).name),n=Lo(e)?e:j(e);return{lang:t,locale:n,t:ni(e)}},oi=Symbol("localeContextKey"),pt=e=>{const t=e||Ce(oi,j());return ri(T(()=>t.value||ti))},Bn="el",si="is-",It=(e,t,n,a,o)=>{let s=`${e}-${t}`;return n&&(s+=`-${n}`),a&&(s+=`__${a}`),o&&(s+=`--${o}`),s},li=Symbol("namespaceContextKey"),ka=e=>{const t=e||(ft()?Ce(li,j(Bn)):j(Bn));return T(()=>r(t)||Bn)},Te=(e,t)=>{const n=ka(t);return{namespace:n,b:(c="")=>It(n.value,e,c,"",""),e:c=>c?It(n.value,e,"",c,""):"",m:c=>c?It(n.value,e,"","",c):"",be:(c,k)=>c&&k?It(n.value,e,c,k,""):"",em:(c,k)=>c&&k?It(n.value,e,"",c,k):"",bm:(c,k)=>c&&k?It(n.value,e,c,"",k):"",bem:(c,k,y)=>c&&k&&y?It(n.value,e,c,k,y):"",is:(c,...k)=>{const y=k.length>=1?k[0]:!0;return c&&y?`${si}${c}`:""},cssVar:c=>{const k={};for(const y in c)c[y]&&(k[`--${n.value}-${y}`]=c[y]);return k},cssVarName:c=>`--${n.value}-${c}`,cssVarBlock:c=>{const k={};for(const y in c)c[y]&&(k[`--${n.value}-${e}-${y}`]=c[y]);return k},cssVarBlockName:c=>`--${n.value}-${e}-${c}`}},ii=In({type:ae(Boolean),default:null}),ui=In({type:ae(Function)}),Kr=e=>{const t=`update:${e}`,n=`onUpdate:${e}`,a=[t],o={[e]:ii,[n]:ui};return{useModelToggle:({indicator:l,toggleReason:u,shouldHideWhenRouteChanges:i,shouldProceed:f,onShow:m,onHide:d})=>{const g=ft(),{emit:h}=g,v=g.props,c=T(()=>gt(v[n])),k=T(()=>v[e]===null),y=_=>{l.value!==!0&&(l.value=!0,u&&(u.value=_),gt(m)&&m(_))},w=_=>{l.value!==!1&&(l.value=!1,u&&(u.value=_),gt(d)&&d(_))},N=_=>{if(v.disabled===!0||gt(f)&&!f())return;const O=c.value&&qe;O&&h(t,!0),(k.value||!O)&&y(_)},x=_=>{if(v.disabled===!0||!qe)return;const O=c.value&&qe;O&&h(t,!1),(k.value||!O)&&w(_)},R=_=>{Hr(_)&&(v.disabled&&_?c.value&&h(t,!1):l.value!==_&&(_?y():w()))},P=()=>{l.value?x():N()};return fe(()=>v[e],R),i&&g.appContext.config.globalProperties.$route!==void 0&&fe(()=>({...g.proxy.$route}),()=>{i.value&&l.value&&x()}),st(()=>{R(v[e])}),{hide:x,show:N,toggle:P,hasUpdateHandler:c}},useModelToggleProps:o,useModelToggleEmits:a}};Kr("modelValue");const Ur=e=>{const t=ft();return T(()=>{var n,a;return(a=(n=t==null?void 0:t.proxy)==null?void 0:n.$props)==null?void 0:a[e]})};function on(e,t,n){return Lt(e,Tn(t,n))}function ci(e,t,n){var a=on(e,t,n);return a>n?n:a}var di=function(t,n){return t=typeof t=="function"?t(Object.assign({},n.rects,{placement:n.placement})):t,Rr(typeof t!="number"?t:Ir(t,pn))};function fi(e){var t,n=e.state,a=e.name,o=e.options,s=n.elements.arrow,l=n.modifiersData.popperOffsets,u=yt(n.placement),i=ma(u),f=[Ue,ot].indexOf(u)>=0,m=f?"height":"width";if(!(!s||!l)){var d=di(o.padding,n),g=ga(s),h=i==="y"?Ke:Ue,v=i==="y"?rt:ot,c=n.rects.reference[m]+n.rects.reference[i]-l[i]-n.rects.popper[m],k=l[i]-n.rects.reference[i],y=vn(s),w=y?i==="y"?y.clientHeight||0:y.clientWidth||0:0,N=c/2-k/2,x=d[h],R=w-g[m]-d[v],P=w/2-g[m]/2+N,_=on(x,P,R),O=i;n.modifiersData[a]=(t={},t[O]=_,t.centerOffset=_-P,t)}}function pi(e){var t=e.state,n=e.options,a=n.element,o=a===void 0?"[data-popper-arrow]":a;o!=null&&(typeof o=="string"&&(o=t.elements.popper.querySelector(o),!o)||Er(t.elements.popper,o)&&(t.elements.arrow=o))}const vi={name:"arrow",enabled:!0,phase:"main",fn:fi,effect:pi,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Ga(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function Za(e){return[Ke,ot,rt,Ue].some(function(t){return e[t]>=0})}function hi(e){var t=e.state,n=e.name,a=t.rects.reference,o=t.rects.popper,s=t.modifiersData.preventOverflow,l=ln(t,{elementContext:"reference"}),u=ln(t,{altBoundary:!0}),i=Ga(l,a),f=Ga(u,o,s),m=Za(i),d=Za(f);t.modifiersData[n]={referenceClippingOffsets:i,popperEscapeOffsets:f,isReferenceHidden:m,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":m,"data-popper-escaped":d})}const mi={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:hi};function gi(e){return e==="x"?"y":"x"}function bi(e){var t=e.state,n=e.options,a=e.name,o=n.mainAxis,s=o===void 0?!0:o,l=n.altAxis,u=l===void 0?!1:l,i=n.boundary,f=n.rootBoundary,m=n.altBoundary,d=n.padding,g=n.tether,h=g===void 0?!0:g,v=n.tetherOffset,c=v===void 0?0:v,k=ln(t,{boundary:i,rootBoundary:f,padding:d,altBoundary:m}),y=yt(t.placement),w=Qt(t.placement),N=!w,x=ma(y),R=gi(x),P=t.modifiersData.popperOffsets,_=t.rects.reference,O=t.rects.popper,H=typeof c=="function"?c(Object.assign({},t.rects,{placement:t.placement})):c,V=typeof H=="number"?{mainAxis:H,altAxis:H}:Object.assign({mainAxis:0,altAxis:0},H),B=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,J={x:0,y:0};if(P){if(s){var U,z=x==="y"?Ke:Ue,L=x==="y"?rt:ot,F=x==="y"?"height":"width",C=P[x],M=C+k[z],p=C-k[L],S=h?-O[F]/2:0,E=w===Zt?_[F]:O[F],I=w===Zt?-O[F]:-_[F],G=t.elements.arrow,te=h&&G?ga(G):{width:0,height:0},oe=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:Ar(),pe=oe[z],ve=oe[L],me=on(0,_[F],te[F]),xe=N?_[F]/2-S-me-pe-V.mainAxis:E-me-pe-V.mainAxis,Se=N?-_[F]/2+S+me+ve+V.mainAxis:I+me+ve+V.mainAxis,be=t.elements.arrow&&vn(t.elements.arrow),ge=be?x==="y"?be.clientTop||0:be.clientLeft||0:0,De=(U=B==null?void 0:B[x])!=null?U:0,Ie=C+xe-De-ge,Ne=C+Se-De,Re=on(h?Tn(M,Ie):M,C,h?Lt(p,Ne):p);P[x]=Re,J[x]=Re-C}if(u){var Ge,lt=x==="x"?Ke:Ue,Le=x==="x"?rt:ot,ie=P[R],Ye=R==="y"?"height":"width",je=ie+k[lt],Ze=ie-k[Le],He=[Ke,Ue].indexOf(y)!==-1,W=(Ge=B==null?void 0:B[R])!=null?Ge:0,ue=He?je:ie-_[Ye]-O[Ye]-W+V.altAxis,we=He?ie+_[Ye]+O[Ye]-W-V.altAxis:Ze,Je=h&&He?ci(ue,ie,we):on(h?ue:je,ie,h?we:Ze);P[R]=Je,J[R]=Je-ie}t.modifiersData[a]=J}}const yi={name:"preventOverflow",enabled:!0,phase:"main",fn:bi,requiresIfExists:["offset"]};var wi=[qs,Zs,Ns,Qs,As,Os,yi,vi,mi],ki=Ks({defaultModifiers:wi});const Si=(e,t,n={})=>{const a={name:"updateState",enabled:!0,phase:"write",fn:({state:i})=>{const f=_i(i);Object.assign(l.value,f)},requires:["computeStyles"]},o=T(()=>{const{onFirstUpdate:i,placement:f,strategy:m,modifiers:d}=r(n);return{onFirstUpdate:i,placement:f||"bottom",strategy:m||"absolute",modifiers:[...d||[],a,{name:"applyStyles",enabled:!1}]}}),s=an(),l=j({styles:{popper:{position:r(o).strategy,left:"0",top:"0"},arrow:{position:"absolute"}},attributes:{}}),u=()=>{s.value&&(s.value.destroy(),s.value=void 0)};return fe(o,i=>{const f=r(s);f&&f.setOptions(i)},{deep:!0}),fe([e,t],([i,f])=>{u(),!(!i||!f)&&(s.value=ki(i,f,r(o)))}),xt(()=>{u()}),{state:T(()=>{var i;return{...((i=r(s))==null?void 0:i.state)||{}}}),styles:T(()=>r(l).styles),attributes:T(()=>r(l).attributes),update:()=>{var i;return(i=r(s))==null?void 0:i.update()},forceUpdate:()=>{var i;return(i=r(s))==null?void 0:i.forceUpdate()},instanceRef:T(()=>r(s))}};function _i(e){const t=Object.keys(e.elements),n=Mn(t.map(o=>[o,e.styles[o]||{}])),a=Mn(t.map(o=>[o,e.attributes[o]]));return{styles:n,attributes:a}}function Ja(){let e;const t=(a,o)=>{n(),e=window.setTimeout(a,o)},n=()=>window.clearTimeout(e);return ba(()=>n()),{registerTimeout:t,cancelTimeout:n}}const Xa={prefix:Math.floor(Math.random()*1e4),current:0},Ci=Symbol("elIdInjection"),qr=()=>ft()?Ce(Ci,Xa):Xa,Gr=e=>{const t=qr(),n=ka();return T(()=>r(e)||`${n.value}-id-${t.prefix}-${t.current++}`)};let Wt=[];const Qa=e=>{const t=e;t.key===Oe.esc&&Wt.forEach(n=>n(t))},xi=e=>{st(()=>{Wt.length===0&&document.addEventListener("keydown",Qa),qe&&Wt.push(e)}),xt(()=>{Wt=Wt.filter(t=>t!==e),Wt.length===0&&qe&&document.removeEventListener("keydown",Qa)})};let er;const Zr=()=>{const e=ka(),t=qr(),n=T(()=>`${e.value}-popper-container-${t.prefix}`),a=T(()=>`#${n.value}`);return{id:n,selector:a}},Mi=e=>{const t=document.createElement("div");return t.id=e,document.body.appendChild(t),t},Ti=()=>{const{id:e,selector:t}=Zr();return Vo(()=>{qe&&!er&&!document.body.querySelector(t.value)&&(er=Mi(e.value))}),{id:e,selector:t}},Di=ye({showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0}}),Pi=({showAfter:e,hideAfter:t,autoClose:n,open:a,close:o})=>{const{registerTimeout:s}=Ja(),{registerTimeout:l,cancelTimeout:u}=Ja();return{onOpen:m=>{s(()=>{a(m);const d=r(n);nt(d)&&d>0&&l(()=>{o(m)},d)},r(e))},onClose:m=>{u(),s(()=>{o(m)},r(t))}}},Jr=Symbol("elForwardRef"),Oi=e=>{dt(Jr,{setForwardRef:n=>{e.value=n}})},Ei=e=>({mounted(t){e(t)},updated(t){e(t)},unmounted(){e(null)}}),tr=j(0),$i=2e3,Ai=Symbol("zIndexContextKey"),Ri=e=>{const t=e||(ft()?Ce(Ai,void 0):void 0),n=T(()=>{const s=r(t);return nt(s)?s:$i}),a=T(()=>n.value+tr.value);return{initialZIndex:n,currentZIndex:a,nextZIndex:()=>(tr.value++,a.value)}};function Ii(e){const t=j();function n(){if(e.value==null)return;const{selectionStart:o,selectionEnd:s,value:l}=e.value;if(o==null||s==null)return;const u=l.slice(0,Math.max(0,o)),i=l.slice(Math.max(0,s));t.value={selectionStart:o,selectionEnd:s,value:l,beforeTxt:u,afterTxt:i}}function a(){if(e.value==null||t.value==null)return;const{value:o}=e.value,{beforeTxt:s,afterTxt:l,selectionStart:u}=t.value;if(s==null||l==null||u==null)return;let i=o.length;if(o.endsWith(l))i=o.length-l.length;else if(o.startsWith(s))i=s.length;else{const f=s[u-1],m=o.indexOf(f,u-1);m!==-1&&(i=m+1)}e.value.setSelectionRange(i,i)}return[n,a]}const Sa=In({type:String,values:ql,required:!1}),Fi=Symbol("size"),Ni=()=>{const e=Ce(Fi,{});return T(()=>r(e.size)||"")};function Li(e,{afterFocus:t,beforeBlur:n,afterBlur:a}={}){const o=ft(),{emit:s}=o,l=an(),u=j(!1),i=d=>{u.value||(u.value=!0,s("focus",d),t==null||t())},f=d=>{var g;gt(n)&&n(d)||d.relatedTarget&&((g=l.value)!=null&&g.contains(d.relatedTarget))||(u.value=!1,s("blur",d),a==null||a())},m=()=>{var d;(d=e.value)==null||d.focus()};return fe(l,d=>{d&&d.setAttribute("tabindex","-1")}),Vt(l,"click",m),{wrapperRef:l,isFocused:u,handleFocus:i,handleBlur:f}}const Vi=Symbol(),nr=j();function Bi(e,t=void 0){const n=ft()?Ce(Vi,nr):nr;return e?T(()=>{var a,o;return(o=(a=n.value)==null?void 0:a[e])!=null?o:t}):n}var Ae=(e,t)=>{const n=e.__vccOpts||e;for(const[a,o]of t)n[a]=o;return n};const Hi=ye({size:{type:ae([Number,String])},color:{type:String}}),zi=re({name:"ElIcon",inheritAttrs:!1}),Yi=re({...zi,props:Hi,setup(e){const t=e,n=Te("icon"),a=T(()=>{const{size:o,color:s}=t;return!o&&!s?{}:{fontSize:Br(o)?void 0:Jn(o),"--color":s}});return(o,s)=>(D(),K("i",bt({class:r(n).b(),style:r(a)},o.$attrs),[$e(o.$slots,"default")],16))}});var ji=Ae(Yi,[["__file","icon.vue"]]);const ke=en(ji),_a=Symbol("formContextKey"),Pn=Symbol("formItemContextKey"),Ca=(e,t={})=>{const n=j(void 0),a=t.prop?n:Ur("size"),o=t.global?n:Ni(),s=t.form?{size:void 0}:Ce(_a,void 0),l=t.formItem?{size:void 0}:Ce(Pn,void 0);return T(()=>a.value||r(e)||(l==null?void 0:l.size)||(s==null?void 0:s.size)||o.value||"")},xa=e=>{const t=Ur("disabled"),n=Ce(_a,void 0);return T(()=>t.value||r(e)||(n==null?void 0:n.disabled)||!1)},Ma=()=>{const e=Ce(_a,void 0),t=Ce(Pn,void 0);return{form:e,formItem:t}},Wi=(e,{formItemContext:t,disableIdGeneration:n,disableIdManagement:a})=>{n||(n=j(!1)),a||(a=j(!1));const o=j();let s;const l=T(()=>{var u;return!!(!e.label&&t&&t.inputIds&&((u=t.inputIds)==null?void 0:u.length)<=1)});return st(()=>{s=fe([Ve(e,"id"),n],([u,i])=>{const f=u??(i?void 0:Gr().value);f!==o.value&&(t!=null&&t.removeInputId&&(o.value&&t.removeInputId(o.value),!(a!=null&&a.value)&&!i&&f&&t.addInputId(f)),o.value=f)},{immediate:!0})}),Bo(()=>{s&&s(),t!=null&&t.removeInputId&&o.value&&t.removeInputId(o.value)}),{isLabeledByFormItem:l,inputId:o}};let ut;const Ki=` height:0 !important; visibility:hidden !important; ${pl()?"":"overflow:hidden !important;"} position:absolute !important; z-index:-1000 !important; top:0 !important; right:0 !important; `,Ui=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing"];function qi(e){const t=window.getComputedStyle(e),n=t.getPropertyValue("box-sizing"),a=Number.parseFloat(t.getPropertyValue("padding-bottom"))+Number.parseFloat(t.getPropertyValue("padding-top")),o=Number.parseFloat(t.getPropertyValue("border-bottom-width"))+Number.parseFloat(t.getPropertyValue("border-top-width"));return{contextStyle:Ui.map(l=>`${l}:${t.getPropertyValue(l)}`).join(";"),paddingSize:a,borderSize:o,boxSizing:n}}function ar(e,t=1,n){var a;ut||(ut=document.createElement("textarea"),document.body.appendChild(ut));const{paddingSize:o,borderSize:s,boxSizing:l,contextStyle:u}=qi(e);ut.setAttribute("style",`${u};${Ki}`),ut.value=e.value||e.placeholder||"";let i=ut.scrollHeight;const f={};l==="border-box"?i=i+s:l==="content-box"&&(i=i-o),ut.value="";const m=ut.scrollHeight-o;if(nt(t)){let d=m*t;l==="border-box"&&(d=d+o+s),i=Math.max(d,i),f.minHeight=`${d}px`}if(nt(n)){let d=m*n;l==="border-box"&&(d=d+o+s),i=Math.min(d,i)}return f.height=`${i}px`,(a=ut.parentNode)==null||a.removeChild(ut),ut=void 0,f}const Gi=ye({id:{type:String,default:void 0},size:Sa,disabled:Boolean,modelValue:{type:ae([String,Number,Object]),default:""},maxlength:{type:[String,Number]},minlength:{type:[String,Number]},type:{type:String,default:"text"},resize:{type:String,values:["none","both","horizontal","vertical"]},autosize:{type:ae([Boolean,Object]),default:!1},autocomplete:{type:String,default:"off"},formatter:{type:Function},parser:{type:Function},placeholder:{type:String},form:{type:String},readonly:{type:Boolean,default:!1},clearable:{type:Boolean,default:!1},showPassword:{type:Boolean,default:!1},showWordLimit:{type:Boolean,default:!1},suffixIcon:{type:Dn},prefixIcon:{type:Dn},containerRole:{type:String,default:void 0},label:{type:String,default:void 0},tabindex:{type:[String,Number],default:0},validateEvent:{type:Boolean,default:!0},inputStyle:{type:ae([Object,Array,String]),default:()=>Zl({})},autofocus:{type:Boolean,default:!1}}),Zi={[Qn]:e=>qt(e),input:e=>qt(e),change:e=>qt(e),focus:e=>e instanceof FocusEvent,blur:e=>e instanceof FocusEvent,clear:()=>!0,mouseleave:e=>e instanceof MouseEvent,mouseenter:e=>e instanceof MouseEvent,keydown:e=>e instanceof Event,compositionstart:e=>e instanceof CompositionEvent,compositionupdate:e=>e instanceof CompositionEvent,compositionend:e=>e instanceof CompositionEvent},Ji=["role"],Xi=["id","minlength","maxlength","type","disabled","readonly","autocomplete","tabindex","aria-label","placeholder","form","autofocus"],Qi=["id","minlength","maxlength","tabindex","disabled","readonly","autocomplete","aria-label","placeholder","form","autofocus"],eu=re({name:"ElInput",inheritAttrs:!1}),tu=re({...eu,props:Gi,emits:Zi,setup(e,{expose:t,emit:n}){const a=e,o=En(),s=$n(),l=T(()=>{const W={};return a.containerRole==="combobox"&&(W["aria-haspopup"]=o["aria-haspopup"],W["aria-owns"]=o["aria-owns"],W["aria-expanded"]=o["aria-expanded"]),W}),u=T(()=>[a.type==="textarea"?k.b():c.b(),c.m(h.value),c.is("disabled",v.value),c.is("exceed",te.value),{[c.b("group")]:s.prepend||s.append,[c.bm("group","append")]:s.append,[c.bm("group","prepend")]:s.prepend,[c.m("prefix")]:s.prefix||a.prefixIcon,[c.m("suffix")]:s.suffix||a.suffixIcon||a.clearable||a.showPassword,[c.bm("suffix","password-clear")]:S.value&&E.value},o.class]),i=T(()=>[c.e("wrapper"),c.is("focus",V.value)]),f=Ql({excludeKeys:T(()=>Object.keys(l.value))}),{form:m,formItem:d}=Ma(),{inputId:g}=Wi(a,{formItemContext:d}),h=Ca(),v=xa(),c=Te("input"),k=Te("textarea"),y=an(),w=an(),N=j(!1),x=j(!1),R=j(!1),P=j(),_=an(a.inputStyle),O=T(()=>y.value||w.value),{wrapperRef:H,isFocused:V,handleFocus:B,handleBlur:J}=Li(O,{afterBlur(){var W;a.validateEvent&&((W=d==null?void 0:d.validate)==null||W.call(d,"blur").catch(ue=>void 0))}}),U=T(()=>{var W;return(W=m==null?void 0:m.statusIcon)!=null?W:!1}),z=T(()=>(d==null?void 0:d.validateState)||""),L=T(()=>z.value&&Wl[z.value]),F=T(()=>R.value?Yl:Bl),C=T(()=>[o.style]),M=T(()=>[a.inputStyle,_.value,{resize:a.resize}]),p=T(()=>An(a.modelValue)?"":String(a.modelValue)),S=T(()=>a.clearable&&!v.value&&!a.readonly&&!!p.value&&(V.value||N.value)),E=T(()=>a.showPassword&&!v.value&&!a.readonly&&!!p.value&&(!!p.value||V.value)),I=T(()=>a.showWordLimit&&!!a.maxlength&&(a.type==="text"||a.type==="textarea")&&!v.value&&!a.readonly&&!a.showPassword),G=T(()=>p.value.length),te=T(()=>!!I.value&&G.value>Number(a.maxlength)),oe=T(()=>!!s.suffix||!!a.suffixIcon||S.value||a.showPassword||I.value||!!z.value&&U.value),[pe,ve]=Ii(y);Vr(w,W=>{if(Se(),!I.value||a.resize!=="both")return;const ue=W[0],{width:we}=ue.contentRect;P.value={right:`calc(100% - ${we+15+6}px)`}});const me=()=>{const{type:W,autosize:ue}=a;if(!(!qe||W!=="textarea"||!w.value))if(ue){const we=Yt(ue)?ue.minRows:void 0,Je=Yt(ue)?ue.maxRows:void 0,vt=ar(w.value,we,Je);_.value={overflowY:"hidden",...vt},Ee(()=>{w.value.offsetHeight,_.value=vt})}else _.value={minHeight:ar(w.value).minHeight}},Se=(W=>{let ue=!1;return()=>{var we;if(ue||!a.autosize)return;((we=w.value)==null?void 0:we.offsetParent)===null||(W(),ue=!0)}})(me),be=()=>{const W=O.value,ue=a.formatter?a.formatter(p.value):p.value;!W||W.value===ue||(W.value=ue)},ge=async W=>{pe();let{value:ue}=W.target;if(a.formatter&&(ue=a.parser?a.parser(ue):ue),!x.value){if(ue===p.value){be();return}n(Qn,ue),n("input",ue),await Ee(),be(),ve()}},De=W=>{n("change",W.target.value)},Ie=W=>{n("compositionstart",W),x.value=!0},Ne=W=>{var ue;n("compositionupdate",W);const we=(ue=W.target)==null?void 0:ue.value,Je=we[we.length-1]||"";x.value=!Gl(Je)},Re=W=>{n("compositionend",W),x.value&&(x.value=!1,ge(W))},Ge=()=>{R.value=!R.value,lt()},lt=async()=>{var W;await Ee(),(W=O.value)==null||W.focus()},Le=()=>{var W;return(W=O.value)==null?void 0:W.blur()},ie=W=>{N.value=!1,n("mouseleave",W)},Ye=W=>{N.value=!0,n("mouseenter",W)},je=W=>{n("keydown",W)},Ze=()=>{var W;(W=O.value)==null||W.select()},He=()=>{n(Qn,""),n("change",""),n("clear"),n("input","")};return fe(()=>a.modelValue,()=>{var W;Ee(()=>me()),a.validateEvent&&((W=d==null?void 0:d.validate)==null||W.call(d,"change").catch(ue=>void 0))}),fe(p,()=>be()),fe(()=>a.type,async()=>{await Ee(),be(),me()}),st(()=>{!a.formatter&&a.parser,be(),Ee(me)}),t({input:y,textarea:w,ref:O,textareaStyle:M,autosize:Ve(a,"autosize"),focus:lt,blur:Le,select:Ze,clear:He,resizeTextarea:me}),(W,ue)=>ze((D(),K("div",bt(r(l),{class:r(u),style:r(C),role:W.containerRole,onMouseenter:Ye,onMouseleave:ie}),[ne(" input "),W.type!=="textarea"?(D(),K(_e,{key:0},[ne(" prepend slot "),W.$slots.prepend?(D(),K("div",{key:0,class:A(r(c).be("group","prepend"))},[$e(W.$slots,"prepend")],2)):ne("v-if",!0),q("div",{ref_key:"wrapperRef",ref:H,class:A(r(i))},[ne(" prefix slot "),W.$slots.prefix||W.prefixIcon?(D(),K("span",{key:0,class:A(r(c).e("prefix"))},[q("span",{class:A(r(c).e("prefix-inner"))},[$e(W.$slots,"prefix"),W.prefixIcon?(D(),de(r(ke),{key:0,class:A(r(c).e("icon"))},{default:le(()=>[(D(),de(tt(W.prefixIcon)))]),_:1},8,["class"])):ne("v-if",!0)],2)],2)):ne("v-if",!0),q("input",bt({id:r(g),ref_key:"input",ref:y,class:r(c).e("inner")},r(f),{minlength:W.minlength,maxlength:W.maxlength,type:W.showPassword?R.value?"text":"password":W.type,disabled:r(v),readonly:W.readonly,autocomplete:W.autocomplete,tabindex:W.tabindex,"aria-label":W.label,placeholder:W.placeholder,style:W.inputStyle,form:W.form,autofocus:W.autofocus,onCompositionstart:Ie,onCompositionupdate:Ne,onCompositionend:Re,onInput:ge,onFocus:ue[0]||(ue[0]=(...we)=>r(B)&&r(B)(...we)),onBlur:ue[1]||(ue[1]=(...we)=>r(J)&&r(J)(...we)),onChange:De,onKeydown:je}),null,16,Xi),ne(" suffix slot "),r(oe)?(D(),K("span",{key:1,class:A(r(c).e("suffix"))},[q("span",{class:A(r(c).e("suffix-inner"))},[!r(S)||!r(E)||!r(I)?(D(),K(_e,{key:0},[$e(W.$slots,"suffix"),W.suffixIcon?(D(),de(r(ke),{key:0,class:A(r(c).e("icon"))},{default:le(()=>[(D(),de(tt(W.suffixIcon)))]),_:1},8,["class"])):ne("v-if",!0)],64)):ne("v-if",!0),r(S)?(D(),de(r(ke),{key:1,class:A([r(c).e("icon"),r(c).e("clear")]),onMousedown:et(r(un),["prevent"]),onClick:He},{default:le(()=>[ee(r(wa))]),_:1},8,["class","onMousedown"])):ne("v-if",!0),r(E)?(D(),de(r(ke),{key:2,class:A([r(c).e("icon"),r(c).e("password")]),onClick:Ge},{default:le(()=>[(D(),de(tt(r(F))))]),_:1},8,["class"])):ne("v-if",!0),r(I)?(D(),K("span",{key:3,class:A(r(c).e("count"))},[q("span",{class:A(r(c).e("count-inner"))},he(r(G))+" / "+he(W.maxlength),3)],2)):ne("v-if",!0),r(z)&&r(L)&&r(U)?(D(),de(r(ke),{key:4,class:A([r(c).e("icon"),r(c).e("validateIcon"),r(c).is("loading",r(z)==="validating")])},{default:le(()=>[(D(),de(tt(r(L))))]),_:1},8,["class"])):ne("v-if",!0)],2)],2)):ne("v-if",!0)],2),ne(" append slot "),W.$slots.append?(D(),K("div",{key:1,class:A(r(c).be("group","append"))},[$e(W.$slots,"append")],2)):ne("v-if",!0)],64)):(D(),K(_e,{key:1},[ne(" textarea "),q("textarea",bt({id:r(g),ref_key:"textarea",ref:w,class:r(k).e("inner")},r(f),{minlength:W.minlength,maxlength:W.maxlength,tabindex:W.tabindex,disabled:r(v),readonly:W.readonly,autocomplete:W.autocomplete,style:r(M),"aria-label":W.label,placeholder:W.placeholder,form:W.form,autofocus:W.autofocus,onCompositionstart:Ie,onCompositionupdate:Ne,onCompositionend:Re,onInput:ge,onFocus:ue[2]||(ue[2]=(...we)=>r(B)&&r(B)(...we)),onBlur:ue[3]||(ue[3]=(...we)=>r(J)&&r(J)(...we)),onChange:De,onKeydown:je}),null,16,Qi),r(I)?(D(),K("span",{key:0,style:Ht(P.value),class:A(r(c).e("count"))},he(r(G))+" / "+he(W.maxlength),7)):ne("v-if",!0)],64))],16,Ji)),[[_t,W.type!=="hidden"]])}});var nu=Ae(tu,[["__file","input.vue"]]);const Ft=en(nu),Ut=4,au={vertical:{offset:"offsetHeight",scroll:"scrollTop",scrollSize:"scrollHeight",size:"height",key:"vertical",axis:"Y",client:"clientY",direction:"top"},horizontal:{offset:"offsetWidth",scroll:"scrollLeft",scrollSize:"scrollWidth",size:"width",key:"horizontal",axis:"X",client:"clientX",direction:"left"}},ru=({move:e,size:t,bar:n})=>({[n.size]:t,transform:`translate${n.axis}(${e}%)`}),Xr=Symbol("scrollbarContextKey"),ou=ye({vertical:Boolean,size:String,move:Number,ratio:{type:Number,required:!0},always:Boolean}),su="Thumb",lu=re({__name:"thumb",props:ou,setup(e){const t=e,n=Ce(Xr),a=Te("scrollbar");n||Sl(su,"can not inject scrollbar context");const o=j(),s=j(),l=j({}),u=j(!1);let i=!1,f=!1,m=qe?document.onselectstart:null;const d=T(()=>au[t.vertical?"vertical":"horizontal"]),g=T(()=>ru({size:t.size,move:t.move,bar:d.value})),h=T(()=>o.value[d.value.offset]**2/n.wrapElement[d.value.scrollSize]/t.ratio/s.value[d.value.offset]),v=P=>{var _;if(P.stopPropagation(),P.ctrlKey||[1,2].includes(P.button))return;(_=window.getSelection())==null||_.removeAllRanges(),k(P);const O=P.currentTarget;O&&(l.value[d.value.axis]=O[d.value.offset]-(P[d.value.client]-O.getBoundingClientRect()[d.value.direction]))},c=P=>{if(!s.value||!o.value||!n.wrapElement)return;const _=Math.abs(P.target.getBoundingClientRect()[d.value.direction]-P[d.value.client]),O=s.value[d.value.offset]/2,H=(_-O)*100*h.value/o.value[d.value.offset];n.wrapElement[d.value.scroll]=H*n.wrapElement[d.value.scrollSize]/100},k=P=>{P.stopImmediatePropagation(),i=!0,document.addEventListener("mousemove",y),document.addEventListener("mouseup",w),m=document.onselectstart,document.onselectstart=()=>!1},y=P=>{if(!o.value||!s.value||i===!1)return;const _=l.value[d.value.axis];if(!_)return;const O=(o.value.getBoundingClientRect()[d.value.direction]-P[d.value.client])*-1,H=s.value[d.value.offset]-_,V=(O-H)*100*h.value/o.value[d.value.offset];n.wrapElement[d.value.scroll]=V*n.wrapElement[d.value.scrollSize]/100},w=()=>{i=!1,l.value[d.value.axis]=0,document.removeEventListener("mousemove",y),document.removeEventListener("mouseup",w),R(),f&&(u.value=!1)},N=()=>{f=!1,u.value=!!t.size},x=()=>{f=!0,u.value=i};xt(()=>{R(),document.removeEventListener("mouseup",w)});const R=()=>{document.onselectstart!==m&&(document.onselectstart=m)};return Vt(Ve(n,"scrollbarElement"),"mousemove",N),Vt(Ve(n,"scrollbarElement"),"mouseleave",x),(P,_)=>(D(),de(ia,{name:r(a).b("fade"),persisted:""},{default:le(()=>[ze(q("div",{ref_key:"instance",ref:o,class:A([r(a).e("bar"),r(a).is(r(d).key)]),onMousedown:c},[q("div",{ref_key:"thumb",ref:s,class:A(r(a).e("thumb")),style:Ht(r(g)),onMousedown:v},null,38)],34),[[_t,P.always||u.value]])]),_:1},8,["name"]))}});var rr=Ae(lu,[["__file","thumb.vue"]]);const iu=ye({always:{type:Boolean,default:!0},width:String,height:String,ratioX:{type:Number,default:1},ratioY:{type:Number,default:1}}),uu=re({__name:"bar",props:iu,setup(e,{expose:t}){const n=e,a=j(0),o=j(0);return t({handleScroll:l=>{if(l){const u=l.offsetHeight-Ut,i=l.offsetWidth-Ut;o.value=l.scrollTop*100/u*n.ratioY,a.value=l.scrollLeft*100/i*n.ratioX}}}),(l,u)=>(D(),K(_e,null,[ee(rr,{move:a.value,ratio:l.ratioX,size:l.width,always:l.always},null,8,["move","ratio","size","always"]),ee(rr,{move:o.value,ratio:l.ratioY,size:l.height,vertical:"",always:l.always},null,8,["move","ratio","size","always"])],64))}});var cu=Ae(uu,[["__file","bar.vue"]]);const du=ye({height:{type:[String,Number],default:""},maxHeight:{type:[String,Number],default:""},native:{type:Boolean,default:!1},wrapStyle:{type:ae([String,Object,Array]),default:""},wrapClass:{type:[String,Array],default:""},viewClass:{type:[String,Array],default:""},viewStyle:{type:[String,Array,Object],default:""},noresize:Boolean,tag:{type:String,default:"div"},always:Boolean,minSize:{type:Number,default:20},id:String,role:String,ariaLabel:String,ariaOrientation:{type:String,values:["horizontal","vertical"]}}),fu={scroll:({scrollTop:e,scrollLeft:t})=>[e,t].every(nt)},pu="ElScrollbar",vu=re({name:pu}),hu=re({...vu,props:du,emits:fu,setup(e,{expose:t,emit:n}){const a=e,o=Te("scrollbar");let s,l;const u=j(),i=j(),f=j(),m=j("0"),d=j("0"),g=j(),h=j(1),v=j(1),c=T(()=>{const _={};return a.height&&(_.height=Jn(a.height)),a.maxHeight&&(_.maxHeight=Jn(a.maxHeight)),[a.wrapStyle,_]}),k=T(()=>[a.wrapClass,o.e("wrap"),{[o.em("wrap","hidden-default")]:!a.native}]),y=T(()=>[o.e("view"),a.viewClass]),w=()=>{var _;i.value&&((_=g.value)==null||_.handleScroll(i.value),n("scroll",{scrollTop:i.value.scrollTop,scrollLeft:i.value.scrollLeft}))};function N(_,O){Yt(_)?i.value.scrollTo(_):nt(_)&&nt(O)&&i.value.scrollTo(_,O)}const x=_=>{nt(_)&&(i.value.scrollTop=_)},R=_=>{nt(_)&&(i.value.scrollLeft=_)},P=()=>{if(!i.value)return;const _=i.value.offsetHeight-Ut,O=i.value.offsetWidth-Ut,H=_**2/i.value.scrollHeight,V=O**2/i.value.scrollWidth,B=Math.max(H,a.minSize),J=Math.max(V,a.minSize);h.value=H/(_-H)/(B/(_-B)),v.value=V/(O-V)/(J/(O-J)),d.value=B+Ut<_?`${B}px`:"",m.value=J+Uta.noresize,_=>{_?(s==null||s(),l==null||l()):({stop:s}=Vr(f,P),l=Vt("resize",P))},{immediate:!0}),fe(()=>[a.maxHeight,a.height],()=>{a.native||Ee(()=>{var _;P(),i.value&&((_=g.value)==null||_.handleScroll(i.value))})}),dt(Xr,ua({scrollbarElement:u,wrapElement:i})),st(()=>{a.native||Ee(()=>{P()})}),Ho(()=>P()),t({wrapRef:i,update:P,scrollTo:N,setScrollTop:x,setScrollLeft:R,handleScroll:w}),(_,O)=>(D(),K("div",{ref_key:"scrollbarRef",ref:u,class:A(r(o).b())},[q("div",{ref_key:"wrapRef",ref:i,class:A(r(k)),style:Ht(r(c)),onScroll:w},[(D(),de(tt(_.tag),{id:_.id,ref_key:"resizeRef",ref:f,class:A(r(y)),style:Ht(_.viewStyle),role:_.role,"aria-label":_.ariaLabel,"aria-orientation":_.ariaOrientation},{default:le(()=>[$e(_.$slots,"default")]),_:3},8,["id","class","style","role","aria-label","aria-orientation"]))],38),_.native?ne("v-if",!0):(D(),de(cu,{key:0,ref_key:"barRef",ref:g,height:d.value,width:m.value,always:_.always,"ratio-x":v.value,"ratio-y":h.value},null,8,["height","width","always","ratio-x","ratio-y"]))],2))}});var mu=Ae(hu,[["__file","scrollbar.vue"]]);const gu=en(mu),Ta=Symbol("popper"),Qr=Symbol("popperContent"),bu=["dialog","grid","group","listbox","menu","navigation","tooltip","tree"],eo=ye({role:{type:String,values:bu,default:"tooltip"}}),yu=re({name:"ElPopper",inheritAttrs:!1}),wu=re({...yu,props:eo,setup(e,{expose:t}){const n=e,a=j(),o=j(),s=j(),l=j(),u=T(()=>n.role),i={triggerRef:a,popperInstanceRef:o,contentRef:s,referenceRef:l,role:u};return t(i),dt(Ta,i),(f,m)=>$e(f.$slots,"default")}});var ku=Ae(wu,[["__file","popper.vue"]]);const to=ye({arrowOffset:{type:Number,default:5}}),Su=re({name:"ElPopperArrow",inheritAttrs:!1}),_u=re({...Su,props:to,setup(e,{expose:t}){const n=e,a=Te("popper"),{arrowOffset:o,arrowRef:s,arrowStyle:l}=Ce(Qr,void 0);return fe(()=>n.arrowOffset,u=>{o.value=u}),xt(()=>{s.value=void 0}),t({arrowRef:s}),(u,i)=>(D(),K("span",{ref_key:"arrowRef",ref:s,class:A(r(a).e("arrow")),style:Ht(r(l)),"data-popper-arrow":""},null,6))}});var Cu=Ae(_u,[["__file","arrow.vue"]]);const xu="ElOnlyChild",Mu=re({name:xu,setup(e,{slots:t,attrs:n}){var a;const o=Ce(Jr),s=Ei((a=o==null?void 0:o.setForwardRef)!=null?a:un);return()=>{var l;const u=(l=t.default)==null?void 0:l.call(t,n);if(!u||u.length>1)return null;const i=no(u);return i?ze(zo(i,n),[[s]]):null}}});function no(e){if(!e)return null;const t=e;for(const n of t){if(Yt(n))switch(n.type){case Yo:continue;case Mr:case"svg":return or(n);case _e:return no(n.children);default:return n}return or(n)}return null}function or(e){const t=Te("only-child");return ee("span",{class:t.e("content")},[e])}const ao=ye({virtualRef:{type:ae(Object)},virtualTriggering:Boolean,onMouseenter:{type:ae(Function)},onMouseleave:{type:ae(Function)},onClick:{type:ae(Function)},onKeydown:{type:ae(Function)},onFocus:{type:ae(Function)},onBlur:{type:ae(Function)},onContextmenu:{type:ae(Function)},id:String,open:Boolean}),Tu=re({name:"ElPopperTrigger",inheritAttrs:!1}),Du=re({...Tu,props:ao,setup(e,{expose:t}){const n=e,{role:a,triggerRef:o}=Ce(Ta,void 0);Oi(o);const s=T(()=>u.value?n.id:void 0),l=T(()=>{if(a&&a.value==="tooltip")return n.open&&n.id?n.id:void 0}),u=T(()=>{if(a&&a.value!=="tooltip")return a.value}),i=T(()=>u.value?`${n.open}`:void 0);let f;return st(()=>{fe(()=>n.virtualRef,m=>{m&&(o.value=$t(m))},{immediate:!0}),fe(o,(m,d)=>{f==null||f(),f=void 0,cn(m)&&(["onMouseenter","onMouseleave","onClick","onKeydown","onFocus","onBlur","onContextmenu"].forEach(g=>{var h;const v=n[g];v&&(m.addEventListener(g.slice(2).toLowerCase(),v),(h=d==null?void 0:d.removeEventListener)==null||h.call(d,g.slice(2).toLowerCase(),v))}),f=fe([s,l,u,i],g=>{["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach((h,v)=>{An(g[v])?m.removeAttribute(h):m.setAttribute(h,g[v])})},{immediate:!0})),cn(d)&&["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach(g=>d.removeAttribute(g))},{immediate:!0})}),xt(()=>{f==null||f(),f=void 0}),t({triggerRef:o}),(m,d)=>m.virtualTriggering?ne("v-if",!0):(D(),de(r(Mu),bt({key:0},m.$attrs,{"aria-controls":r(s),"aria-describedby":r(l),"aria-expanded":r(i),"aria-haspopup":r(u)}),{default:le(()=>[$e(m.$slots,"default")]),_:3},16,["aria-controls","aria-describedby","aria-expanded","aria-haspopup"]))}});var Pu=Ae(Du,[["__file","trigger.vue"]]);const Hn="focus-trap.focus-after-trapped",zn="focus-trap.focus-after-released",Ou="focus-trap.focusout-prevented",sr={cancelable:!0,bubbles:!1},Eu={cancelable:!0,bubbles:!1},lr="focusAfterTrapped",ir="focusAfterReleased",$u=Symbol("elFocusTrap"),Da=j(),Fn=j(0),Pa=j(0);let mn=0;const ro=e=>{const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:a=>{const o=a.tagName==="INPUT"&&a.type==="hidden";return a.disabled||a.hidden||o?NodeFilter.FILTER_SKIP:a.tabIndex>=0||a===document.activeElement?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t},ur=(e,t)=>{for(const n of e)if(!Au(n,t))return n},Au=(e,t)=>{if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1},Ru=e=>{const t=ro(e),n=ur(t,e),a=ur(t.reverse(),e);return[n,a]},Iu=e=>e instanceof HTMLInputElement&&"select"in e,Ot=(e,t)=>{if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),Pa.value=window.performance.now(),e!==n&&Iu(e)&&t&&e.select()}};function cr(e,t){const n=[...e],a=e.indexOf(t);return a!==-1&&n.splice(a,1),n}const Fu=()=>{let e=[];return{push:a=>{const o=e[0];o&&a!==o&&o.pause(),e=cr(e,a),e.unshift(a)},remove:a=>{var o,s;e=cr(e,a),(s=(o=e[0])==null?void 0:o.resume)==null||s.call(o)}}},Nu=(e,t=!1)=>{const n=document.activeElement;for(const a of e)if(Ot(a,t),document.activeElement!==n)return},dr=Fu(),Lu=()=>Fn.value>Pa.value,gn=()=>{Da.value="pointer",Fn.value=window.performance.now()},fr=()=>{Da.value="keyboard",Fn.value=window.performance.now()},Vu=()=>(st(()=>{mn===0&&(document.addEventListener("mousedown",gn),document.addEventListener("touchstart",gn),document.addEventListener("keydown",fr)),mn++}),xt(()=>{mn--,mn<=0&&(document.removeEventListener("mousedown",gn),document.removeEventListener("touchstart",gn),document.removeEventListener("keydown",fr))}),{focusReason:Da,lastUserFocusTimestamp:Fn,lastAutomatedFocusTimestamp:Pa}),bn=e=>new CustomEvent(Ou,{...Eu,detail:e}),Bu=re({name:"ElFocusTrap",inheritAttrs:!1,props:{loop:Boolean,trapped:Boolean,focusTrapEl:Object,focusStartEl:{type:[Object,String],default:"first"}},emits:[lr,ir,"focusin","focusout","focusout-prevented","release-requested"],setup(e,{emit:t}){const n=j();let a,o;const{focusReason:s}=Vu();xi(v=>{e.trapped&&!l.paused&&t("release-requested",v)});const l={paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}},u=v=>{if(!e.loop&&!e.trapped||l.paused)return;const{key:c,altKey:k,ctrlKey:y,metaKey:w,currentTarget:N,shiftKey:x}=v,{loop:R}=e,P=c===Oe.tab&&!k&&!y&&!w,_=document.activeElement;if(P&&_){const O=N,[H,V]=Ru(O);if(H&&V){if(!x&&_===V){const J=bn({focusReason:s.value});t("focusout-prevented",J),J.defaultPrevented||(v.preventDefault(),R&&Ot(H,!0))}else if(x&&[H,O].includes(_)){const J=bn({focusReason:s.value});t("focusout-prevented",J),J.defaultPrevented||(v.preventDefault(),R&&Ot(V,!0))}}else if(_===O){const J=bn({focusReason:s.value});t("focusout-prevented",J),J.defaultPrevented||v.preventDefault()}}};dt($u,{focusTrapRef:n,onKeydown:u}),fe(()=>e.focusTrapEl,v=>{v&&(n.value=v)},{immediate:!0}),fe([n],([v],[c])=>{v&&(v.addEventListener("keydown",u),v.addEventListener("focusin",m),v.addEventListener("focusout",d)),c&&(c.removeEventListener("keydown",u),c.removeEventListener("focusin",m),c.removeEventListener("focusout",d))});const i=v=>{t(lr,v)},f=v=>t(ir,v),m=v=>{const c=r(n);if(!c)return;const k=v.target,y=v.relatedTarget,w=k&&c.contains(k);e.trapped||y&&c.contains(y)||(a=y),w&&t("focusin",v),!l.paused&&e.trapped&&(w?o=k:Ot(o,!0))},d=v=>{const c=r(n);if(!(l.paused||!c))if(e.trapped){const k=v.relatedTarget;!An(k)&&!c.contains(k)&&setTimeout(()=>{if(!l.paused&&e.trapped){const y=bn({focusReason:s.value});t("focusout-prevented",y),y.defaultPrevented||Ot(o,!0)}},0)}else{const k=v.target;k&&c.contains(k)||t("focusout",v)}};async function g(){await Ee();const v=r(n);if(v){dr.push(l);const c=v.contains(document.activeElement)?a:document.activeElement;if(a=c,!v.contains(c)){const y=new Event(Hn,sr);v.addEventListener(Hn,i),v.dispatchEvent(y),y.defaultPrevented||Ee(()=>{let w=e.focusStartEl;qt(w)||(Ot(w),document.activeElement!==w&&(w="first")),w==="first"&&Nu(ro(v),!0),(document.activeElement===c||w==="container")&&Ot(v)})}}}function h(){const v=r(n);if(v){v.removeEventListener(Hn,i);const c=new CustomEvent(zn,{...sr,detail:{focusReason:s.value}});v.addEventListener(zn,f),v.dispatchEvent(c),!c.defaultPrevented&&(s.value=="keyboard"||!Lu()||v.contains(document.activeElement))&&Ot(a??document.body),v.removeEventListener(zn,f),dr.remove(l)}}return st(()=>{e.trapped&&g(),fe(()=>e.trapped,v=>{v?g():h()})}),xt(()=>{e.trapped&&h()}),{onKeydown:u}}});function Hu(e,t,n,a,o,s){return $e(e.$slots,"default",{handleKeydown:e.onKeydown})}var zu=Ae(Bu,[["render",Hu],["__file","focus-trap.vue"]]);const Yu=["fixed","absolute"],ju=ye({boundariesPadding:{type:Number,default:0},fallbackPlacements:{type:ae(Array),default:void 0},gpuAcceleration:{type:Boolean,default:!0},offset:{type:Number,default:12},placement:{type:String,values:da,default:"bottom"},popperOptions:{type:ae(Object),default:()=>({})},strategy:{type:String,values:Yu,default:"absolute"}}),oo=ye({...ju,id:String,style:{type:ae([String,Array,Object])},className:{type:ae([String,Array,Object])},effect:{type:String,default:"dark"},visible:Boolean,enterable:{type:Boolean,default:!0},pure:Boolean,focusOnShow:{type:Boolean,default:!1},trapping:{type:Boolean,default:!1},popperClass:{type:ae([String,Array,Object])},popperStyle:{type:ae([String,Array,Object])},referenceEl:{type:ae(Object)},triggerTargetEl:{type:ae(Object)},stopPopperMouseEvent:{type:Boolean,default:!0},ariaLabel:{type:String,default:void 0},virtualTriggering:Boolean,zIndex:Number}),Wu={mouseenter:e=>e instanceof MouseEvent,mouseleave:e=>e instanceof MouseEvent,focus:()=>!0,blur:()=>!0,close:()=>!0},Ku=(e,t=[])=>{const{placement:n,strategy:a,popperOptions:o}=e,s={placement:n,strategy:a,...o,modifiers:[...qu(e),...t]};return Gu(s,o==null?void 0:o.modifiers),s},Uu=e=>{if(qe)return $t(e)};function qu(e){const{offset:t,gpuAcceleration:n,fallbackPlacements:a}=e;return[{name:"offset",options:{offset:[0,t??12]}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5,fallbackPlacements:a}},{name:"computeStyles",options:{gpuAcceleration:n}}]}function Gu(e,t){t&&(e.modifiers=[...e.modifiers,...t??[]])}const Zu=0,Ju=e=>{const{popperInstanceRef:t,contentRef:n,triggerRef:a,role:o}=Ce(Ta,void 0),s=j(),l=j(),u=T(()=>({name:"eventListeners",enabled:!!e.visible})),i=T(()=>{var y;const w=r(s),N=(y=r(l))!=null?y:Zu;return{name:"arrow",enabled:!Zo(w),options:{element:w,padding:N}}}),f=T(()=>({onFirstUpdate:()=>{v()},...Ku(e,[r(i),r(u)])})),m=T(()=>Uu(e.referenceEl)||r(a)),{attributes:d,state:g,styles:h,update:v,forceUpdate:c,instanceRef:k}=Si(m,n,f);return fe(k,y=>t.value=y),st(()=>{fe(()=>{var y;return(y=r(m))==null?void 0:y.getBoundingClientRect()},()=>{v()})}),{attributes:d,arrowRef:s,contentRef:n,instanceRef:k,state:g,styles:h,role:o,forceUpdate:c,update:v}},Xu=(e,{attributes:t,styles:n,role:a})=>{const{nextZIndex:o}=Ri(),s=Te("popper"),l=T(()=>r(t).popper),u=j(nt(e.zIndex)?e.zIndex:o()),i=T(()=>[s.b(),s.is("pure",e.pure),s.is(e.effect),e.popperClass]),f=T(()=>[{zIndex:r(u)},r(n).popper,e.popperStyle||{}]),m=T(()=>a.value==="dialog"?"false":void 0),d=T(()=>r(n).arrow||{});return{ariaModal:m,arrowStyle:d,contentAttrs:l,contentClass:i,contentStyle:f,contentZIndex:u,updateZIndex:()=>{u.value=nt(e.zIndex)?e.zIndex:o()}}},Qu=(e,t)=>{const n=j(!1),a=j();return{focusStartRef:a,trapped:n,onFocusAfterReleased:f=>{var m;((m=f.detail)==null?void 0:m.focusReason)!=="pointer"&&(a.value="first",t("blur"))},onFocusAfterTrapped:()=>{t("focus")},onFocusInTrap:f=>{e.visible&&!n.value&&(f.target&&(a.value=f.target),n.value=!0)},onFocusoutPrevented:f=>{e.trapping||(f.detail.focusReason==="pointer"&&f.preventDefault(),n.value=!1)},onReleaseRequested:()=>{n.value=!1,t("close")}}},ec=re({name:"ElPopperContent"}),tc=re({...ec,props:oo,emits:Wu,setup(e,{expose:t,emit:n}){const a=e,{focusStartRef:o,trapped:s,onFocusAfterReleased:l,onFocusAfterTrapped:u,onFocusInTrap:i,onFocusoutPrevented:f,onReleaseRequested:m}=Qu(a,n),{attributes:d,arrowRef:g,contentRef:h,styles:v,instanceRef:c,role:k,update:y}=Ju(a),{ariaModal:w,arrowStyle:N,contentAttrs:x,contentClass:R,contentStyle:P,updateZIndex:_}=Xu(a,{styles:v,attributes:d,role:k}),O=Ce(Pn,void 0),H=j();dt(Qr,{arrowStyle:N,arrowRef:g,arrowOffset:H}),O&&(O.addInputId||O.removeInputId)&&dt(Pn,{...O,addInputId:un,removeInputId:un});let V;const B=(U=!0)=>{y(),U&&_()},J=()=>{B(!1),a.visible&&a.focusOnShow?s.value=!0:a.visible===!1&&(s.value=!1)};return st(()=>{fe(()=>a.triggerTargetEl,(U,z)=>{V==null||V(),V=void 0;const L=r(U||h.value),F=r(z||h.value);cn(L)&&(V=fe([k,()=>a.ariaLabel,w,()=>a.id],C=>{["role","aria-label","aria-modal","id"].forEach((M,p)=>{An(C[p])?L.removeAttribute(M):L.setAttribute(M,C[p])})},{immediate:!0})),F!==L&&cn(F)&&["role","aria-label","aria-modal","id"].forEach(C=>{F.removeAttribute(C)})},{immediate:!0}),fe(()=>a.visible,J,{immediate:!0})}),xt(()=>{V==null||V(),V=void 0}),t({popperContentRef:h,popperInstanceRef:c,updatePopper:B,contentStyle:P}),(U,z)=>(D(),K("div",bt({ref_key:"contentRef",ref:h},r(x),{style:r(P),class:r(R),tabindex:"-1",onMouseenter:z[0]||(z[0]=L=>U.$emit("mouseenter",L)),onMouseleave:z[1]||(z[1]=L=>U.$emit("mouseleave",L))}),[ee(r(zu),{trapped:r(s),"trap-on-focus-in":!0,"focus-trap-el":r(h),"focus-start-el":r(o),onFocusAfterTrapped:r(u),onFocusAfterReleased:r(l),onFocusin:r(i),onFocusoutPrevented:r(f),onReleaseRequested:r(m)},{default:le(()=>[$e(U.$slots,"default")]),_:3},8,["trapped","focus-trap-el","focus-start-el","onFocusAfterTrapped","onFocusAfterReleased","onFocusin","onFocusoutPrevented","onReleaseRequested"])],16))}});var nc=Ae(tc,[["__file","content.vue"]]);const ac=en(ku),Nn=Symbol("elTooltip"),so=ye({...Di,...oo,appendTo:{type:ae([String,Object])},content:{type:String,default:""},rawContent:{type:Boolean,default:!1},persistent:Boolean,ariaLabel:String,visible:{type:ae(Boolean),default:null},transition:String,teleported:{type:Boolean,default:!0},disabled:Boolean}),lo=ye({...ao,disabled:Boolean,trigger:{type:ae([String,Array]),default:"hover"},triggerKeys:{type:ae(Array),default:()=>[Oe.enter,Oe.space]}}),{useModelToggleProps:rc,useModelToggleEmits:oc,useModelToggle:sc}=Kr("visible"),lc=ye({...eo,...rc,...so,...lo,...to,showArrow:{type:Boolean,default:!0}}),ic=[...oc,"before-show","before-hide","show","hide","open","close"],uc=(e,t)=>Fe(e)?e.includes(t):e===t,jt=(e,t,n)=>a=>{uc(r(e),t)&&n(a)},cc=re({name:"ElTooltipTrigger"}),dc=re({...cc,props:lo,setup(e,{expose:t}){const n=e,a=Te("tooltip"),{controlled:o,id:s,open:l,onOpen:u,onClose:i,onToggle:f}=Ce(Nn,void 0),m=j(null),d=()=>{if(r(o)||n.disabled)return!0},g=Ve(n,"trigger"),h=St(d,jt(g,"hover",u)),v=St(d,jt(g,"hover",i)),c=St(d,jt(g,"click",x=>{x.button===0&&f(x)})),k=St(d,jt(g,"focus",u)),y=St(d,jt(g,"focus",i)),w=St(d,jt(g,"contextmenu",x=>{x.preventDefault(),f(x)})),N=St(d,x=>{const{code:R}=x;n.triggerKeys.includes(R)&&(x.preventDefault(),f(x))});return t({triggerRef:m}),(x,R)=>(D(),de(r(Pu),{id:r(s),"virtual-ref":x.virtualRef,open:r(l),"virtual-triggering":x.virtualTriggering,class:A(r(a).e("trigger")),onBlur:r(y),onClick:r(c),onContextmenu:r(w),onFocus:r(k),onMouseenter:r(h),onMouseleave:r(v),onKeydown:r(N)},{default:le(()=>[$e(x.$slots,"default")]),_:3},8,["id","virtual-ref","open","virtual-triggering","class","onBlur","onClick","onContextmenu","onFocus","onMouseenter","onMouseleave","onKeydown"]))}});var fc=Ae(dc,[["__file","trigger.vue"]]);const pc=re({name:"ElTooltipContent",inheritAttrs:!1}),vc=re({...pc,props:so,setup(e,{expose:t}){const n=e,{selector:a}=Zr(),o=Te("tooltip"),s=j(null),l=j(!1),{controlled:u,id:i,open:f,trigger:m,onClose:d,onOpen:g,onShow:h,onHide:v,onBeforeShow:c,onBeforeHide:k}=Ce(Nn,void 0),y=T(()=>n.transition||`${o.namespace.value}-fade-in-linear`),w=T(()=>n.persistent);xt(()=>{l.value=!0});const N=T(()=>r(w)?!0:r(f)),x=T(()=>n.disabled?!1:r(f)),R=T(()=>n.appendTo||a.value),P=T(()=>{var C;return(C=n.style)!=null?C:{}}),_=T(()=>!r(f)),O=()=>{v()},H=()=>{if(r(u))return!0},V=St(H,()=>{n.enterable&&r(m)==="hover"&&g()}),B=St(H,()=>{r(m)==="hover"&&d()}),J=()=>{var C,M;(M=(C=s.value)==null?void 0:C.updatePopper)==null||M.call(C),c==null||c()},U=()=>{k==null||k()},z=()=>{h(),F=Lr(T(()=>{var C;return(C=s.value)==null?void 0:C.popperContentRef}),()=>{if(r(u))return;r(m)!=="hover"&&d()})},L=()=>{n.virtualTriggering||d()};let F;return fe(()=>r(f),C=>{C||F==null||F()},{flush:"post"}),fe(()=>n.content,()=>{var C,M;(M=(C=s.value)==null?void 0:C.updatePopper)==null||M.call(C)}),t({contentRef:s}),(C,M)=>(D(),de(jo,{disabled:!C.teleported,to:r(R)},[ee(ia,{name:r(y),onAfterLeave:O,onBeforeEnter:J,onAfterEnter:z,onBeforeLeave:U},{default:le(()=>[r(N)?ze((D(),de(r(nc),bt({key:0,id:r(i),ref_key:"contentRef",ref:s},C.$attrs,{"aria-label":C.ariaLabel,"aria-hidden":r(_),"boundaries-padding":C.boundariesPadding,"fallback-placements":C.fallbackPlacements,"gpu-acceleration":C.gpuAcceleration,offset:C.offset,placement:C.placement,"popper-options":C.popperOptions,strategy:C.strategy,effect:C.effect,enterable:C.enterable,pure:C.pure,"popper-class":C.popperClass,"popper-style":[C.popperStyle,r(P)],"reference-el":C.referenceEl,"trigger-target-el":C.triggerTargetEl,visible:r(x),"z-index":C.zIndex,onMouseenter:r(V),onMouseleave:r(B),onBlur:L,onClose:r(d)}),{default:le(()=>[l.value?ne("v-if",!0):$e(C.$slots,"default",{key:0})]),_:3},16,["id","aria-label","aria-hidden","boundaries-padding","fallback-placements","gpu-acceleration","offset","placement","popper-options","strategy","effect","enterable","pure","popper-class","popper-style","reference-el","trigger-target-el","visible","z-index","onMouseenter","onMouseleave","onClose"])),[[_t,r(x)]]):ne("v-if",!0)]),_:3},8,["name"])],8,["disabled","to"]))}});var hc=Ae(vc,[["__file","content.vue"]]);const mc=["innerHTML"],gc={key:1},bc=re({name:"ElTooltip"}),yc=re({...bc,props:lc,emits:ic,setup(e,{expose:t,emit:n}){const a=e;Ti();const o=Gr(),s=j(),l=j(),u=()=>{var y;const w=r(s);w&&((y=w.popperInstanceRef)==null||y.update())},i=j(!1),f=j(),{show:m,hide:d,hasUpdateHandler:g}=sc({indicator:i,toggleReason:f}),{onOpen:h,onClose:v}=Pi({showAfter:Ve(a,"showAfter"),hideAfter:Ve(a,"hideAfter"),autoClose:Ve(a,"autoClose"),open:m,close:d}),c=T(()=>Hr(a.visible)&&!g.value);dt(Nn,{controlled:c,id:o,open:Wo(i),trigger:Ve(a,"trigger"),onOpen:y=>{h(y)},onClose:y=>{v(y)},onToggle:y=>{r(i)?v(y):h(y)},onShow:()=>{n("show",f.value)},onHide:()=>{n("hide",f.value)},onBeforeShow:()=>{n("before-show",f.value)},onBeforeHide:()=>{n("before-hide",f.value)},updatePopper:u}),fe(()=>a.disabled,y=>{y&&i.value&&(i.value=!1)});const k=y=>{var w,N;const x=(N=(w=l.value)==null?void 0:w.contentRef)==null?void 0:N.popperContentRef,R=(y==null?void 0:y.relatedTarget)||document.activeElement;return x&&x.contains(R)};return Ko(()=>i.value&&d()),t({popperRef:s,contentRef:l,isFocusInsideContent:k,updatePopper:u,onOpen:h,onClose:v,hide:d}),(y,w)=>(D(),de(r(ac),{ref_key:"popperRef",ref:s,role:y.role},{default:le(()=>[ee(fc,{disabled:y.disabled,trigger:y.trigger,"trigger-keys":y.triggerKeys,"virtual-ref":y.virtualRef,"virtual-triggering":y.virtualTriggering},{default:le(()=>[y.$slots.default?$e(y.$slots,"default",{key:0}):ne("v-if",!0)]),_:3},8,["disabled","trigger","trigger-keys","virtual-ref","virtual-triggering"]),ee(hc,{ref_key:"contentRef",ref:l,"aria-label":y.ariaLabel,"boundaries-padding":y.boundariesPadding,content:y.content,disabled:y.disabled,effect:y.effect,enterable:y.enterable,"fallback-placements":y.fallbackPlacements,"hide-after":y.hideAfter,"gpu-acceleration":y.gpuAcceleration,offset:y.offset,persistent:y.persistent,"popper-class":y.popperClass,"popper-style":y.popperStyle,placement:y.placement,"popper-options":y.popperOptions,pure:y.pure,"raw-content":y.rawContent,"reference-el":y.referenceEl,"trigger-target-el":y.triggerTargetEl,"show-after":y.showAfter,strategy:y.strategy,teleported:y.teleported,transition:y.transition,"virtual-triggering":y.virtualTriggering,"z-index":y.zIndex,"append-to":y.appendTo},{default:le(()=>[$e(y.$slots,"content",{},()=>[y.rawContent?(D(),K("span",{key:0,innerHTML:y.content},null,8,mc)):(D(),K("span",gc,he(y.content),1))]),y.showArrow?(D(),de(r(Cu),{key:0,"arrow-offset":y.arrowOffset},null,8,["arrow-offset"])):ne("v-if",!0)]),_:3},8,["aria-label","boundaries-padding","content","disabled","effect","enterable","fallback-placements","hide-after","gpu-acceleration","offset","persistent","popper-class","popper-style","placement","popper-options","pure","raw-content","reference-el","trigger-target-el","show-after","strategy","teleported","transition","virtual-triggering","z-index","append-to"])]),_:3},8,["role"]))}});var wc=Ae(yc,[["__file","tooltip.vue"]]);const kc=en(wc),io=Symbol("buttonGroupContextKey"),Sc=(e,t)=>{ei({from:"type.text",replacement:"link",version:"3.0.0",scope:"props",ref:"https://element-plus.org/en-US/component/button.html#button-attributes"},T(()=>e.type==="text"));const n=Ce(io,void 0),a=Bi("button"),{form:o}=Ma(),s=Ca(T(()=>n==null?void 0:n.size)),l=xa(),u=j(),i=$n(),f=T(()=>e.type||(n==null?void 0:n.type)||""),m=T(()=>{var v,c,k;return(k=(c=e.autoInsertSpace)!=null?c:(v=a.value)==null?void 0:v.autoInsertSpace)!=null?k:!1}),d=T(()=>e.tag==="button"?{ariaDisabled:l.value||e.loading,disabled:l.value||e.loading,autofocus:e.autofocus,type:e.nativeType}:{}),g=T(()=>{var v;const c=(v=i.default)==null?void 0:v.call(i);if(m.value&&(c==null?void 0:c.length)===1){const k=c[0];if((k==null?void 0:k.type)===Mr){const y=k.children;return new RegExp("^\\p{Unified_Ideograph}{2}$","u").test(y.trim())}}return!1});return{_disabled:l,_size:s,_type:f,_ref:u,_props:d,shouldAddSpace:g,handleClick:v=>{e.nativeType==="reset"&&(o==null||o.resetFields()),t("click",v)}}},_c=["default","primary","success","warning","info","danger","text",""],Cc=["button","submit","reset"],ea=ye({size:Sa,disabled:Boolean,type:{type:String,values:_c,default:""},icon:{type:Dn},nativeType:{type:String,values:Cc,default:"button"},loading:Boolean,loadingIcon:{type:Dn,default:()=>jr},plain:Boolean,text:Boolean,link:Boolean,bg:Boolean,autofocus:Boolean,round:Boolean,circle:Boolean,color:String,dark:Boolean,autoInsertSpace:{type:Boolean,default:void 0},tag:{type:ae([String,Object]),default:"button"}}),xc={click:e=>e instanceof MouseEvent};function Be(e,t){Mc(e)&&(e="100%");var n=Tc(e);return e=t===360?e:Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:(t===360?e=(e<0?e%t+t:e%t)/parseFloat(String(t)):e=e%t/parseFloat(String(t)),e)}function yn(e){return Math.min(1,Math.max(0,e))}function Mc(e){return typeof e=="string"&&e.indexOf(".")!==-1&&parseFloat(e)===1}function Tc(e){return typeof e=="string"&&e.indexOf("%")!==-1}function uo(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function wn(e){return e<=1?"".concat(Number(e)*100,"%"):e}function Nt(e){return e.length===1?"0"+e:String(e)}function Dc(e,t,n){return{r:Be(e,255)*255,g:Be(t,255)*255,b:Be(n,255)*255}}function pr(e,t,n){e=Be(e,255),t=Be(t,255),n=Be(n,255);var a=Math.max(e,t,n),o=Math.min(e,t,n),s=0,l=0,u=(a+o)/2;if(a===o)l=0,s=0;else{var i=a-o;switch(l=u>.5?i/(2-a-o):i/(a+o),a){case e:s=(t-n)/i+(t1&&(n-=1),n<1/6?e+(t-e)*(6*n):n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function Pc(e,t,n){var a,o,s;if(e=Be(e,360),t=Be(t,100),n=Be(n,100),t===0)o=n,s=n,a=n;else{var l=n<.5?n*(1+t):n+t-n*t,u=2*n-l;a=Yn(u,l,e+1/3),o=Yn(u,l,e),s=Yn(u,l,e-1/3)}return{r:a*255,g:o*255,b:s*255}}function vr(e,t,n){e=Be(e,255),t=Be(t,255),n=Be(n,255);var a=Math.max(e,t,n),o=Math.min(e,t,n),s=0,l=a,u=a-o,i=a===0?0:u/a;if(a===o)s=0;else{switch(a){case e:s=(t-n)/u+(t>16,g:(e&65280)>>8,b:e&255}}var ta={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",goldenrod:"#daa520",gold:"#ffd700",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavenderblush:"#fff0f5",lavender:"#e6e6fa",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function Rc(e){var t={r:0,g:0,b:0},n=1,a=null,o=null,s=null,l=!1,u=!1;return typeof e=="string"&&(e=Nc(e)),typeof e=="object"&&(kt(e.r)&&kt(e.g)&&kt(e.b)?(t=Dc(e.r,e.g,e.b),l=!0,u=String(e.r).substr(-1)==="%"?"prgb":"rgb"):kt(e.h)&&kt(e.s)&&kt(e.v)?(a=wn(e.s),o=wn(e.v),t=Oc(e.h,a,o),l=!0,u="hsv"):kt(e.h)&&kt(e.s)&&kt(e.l)&&(a=wn(e.s),s=wn(e.l),t=Pc(e.h,a,s),l=!0,u="hsl"),Object.prototype.hasOwnProperty.call(e,"a")&&(n=e.a)),n=uo(n),{ok:l,format:e.format||u,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:n}}var Ic="[-\\+]?\\d+%?",Fc="[-\\+]?\\d*\\.\\d+%?",At="(?:".concat(Fc,")|(?:").concat(Ic,")"),jn="[\\s|\\(]+(".concat(At,")[,|\\s]+(").concat(At,")[,|\\s]+(").concat(At,")\\s*\\)?"),Wn="[\\s|\\(]+(".concat(At,")[,|\\s]+(").concat(At,")[,|\\s]+(").concat(At,")[,|\\s]+(").concat(At,")\\s*\\)?"),ct={CSS_UNIT:new RegExp(At),rgb:new RegExp("rgb"+jn),rgba:new RegExp("rgba"+Wn),hsl:new RegExp("hsl"+jn),hsla:new RegExp("hsla"+Wn),hsv:new RegExp("hsv"+jn),hsva:new RegExp("hsva"+Wn),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function Nc(e){if(e=e.trim().toLowerCase(),e.length===0)return!1;var t=!1;if(ta[e])e=ta[e],t=!0;else if(e==="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var n=ct.rgb.exec(e);return n?{r:n[1],g:n[2],b:n[3]}:(n=ct.rgba.exec(e),n?{r:n[1],g:n[2],b:n[3],a:n[4]}:(n=ct.hsl.exec(e),n?{h:n[1],s:n[2],l:n[3]}:(n=ct.hsla.exec(e),n?{h:n[1],s:n[2],l:n[3],a:n[4]}:(n=ct.hsv.exec(e),n?{h:n[1],s:n[2],v:n[3]}:(n=ct.hsva.exec(e),n?{h:n[1],s:n[2],v:n[3],a:n[4]}:(n=ct.hex8.exec(e),n?{r:Xe(n[1]),g:Xe(n[2]),b:Xe(n[3]),a:mr(n[4]),format:t?"name":"hex8"}:(n=ct.hex6.exec(e),n?{r:Xe(n[1]),g:Xe(n[2]),b:Xe(n[3]),format:t?"name":"hex"}:(n=ct.hex4.exec(e),n?{r:Xe(n[1]+n[1]),g:Xe(n[2]+n[2]),b:Xe(n[3]+n[3]),a:mr(n[4]+n[4]),format:t?"name":"hex8"}:(n=ct.hex3.exec(e),n?{r:Xe(n[1]+n[1]),g:Xe(n[2]+n[2]),b:Xe(n[3]+n[3]),format:t?"name":"hex"}:!1)))))))))}function kt(e){return!!ct.CSS_UNIT.exec(String(e))}var Lc=function(){function e(t,n){t===void 0&&(t=""),n===void 0&&(n={});var a;if(t instanceof e)return t;typeof t=="number"&&(t=Ac(t)),this.originalInput=t;var o=Rc(t);this.originalInput=t,this.r=o.r,this.g=o.g,this.b=o.b,this.a=o.a,this.roundA=Math.round(100*this.a)/100,this.format=(a=n.format)!==null&&a!==void 0?a:o.format,this.gradientType=n.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=o.ok}return e.prototype.isDark=function(){return this.getBrightness()<128},e.prototype.isLight=function(){return!this.isDark()},e.prototype.getBrightness=function(){var t=this.toRgb();return(t.r*299+t.g*587+t.b*114)/1e3},e.prototype.getLuminance=function(){var t=this.toRgb(),n,a,o,s=t.r/255,l=t.g/255,u=t.b/255;return s<=.03928?n=s/12.92:n=Math.pow((s+.055)/1.055,2.4),l<=.03928?a=l/12.92:a=Math.pow((l+.055)/1.055,2.4),u<=.03928?o=u/12.92:o=Math.pow((u+.055)/1.055,2.4),.2126*n+.7152*a+.0722*o},e.prototype.getAlpha=function(){return this.a},e.prototype.setAlpha=function(t){return this.a=uo(t),this.roundA=Math.round(100*this.a)/100,this},e.prototype.isMonochrome=function(){var t=this.toHsl().s;return t===0},e.prototype.toHsv=function(){var t=vr(this.r,this.g,this.b);return{h:t.h*360,s:t.s,v:t.v,a:this.a}},e.prototype.toHsvString=function(){var t=vr(this.r,this.g,this.b),n=Math.round(t.h*360),a=Math.round(t.s*100),o=Math.round(t.v*100);return this.a===1?"hsv(".concat(n,", ").concat(a,"%, ").concat(o,"%)"):"hsva(".concat(n,", ").concat(a,"%, ").concat(o,"%, ").concat(this.roundA,")")},e.prototype.toHsl=function(){var t=pr(this.r,this.g,this.b);return{h:t.h*360,s:t.s,l:t.l,a:this.a}},e.prototype.toHslString=function(){var t=pr(this.r,this.g,this.b),n=Math.round(t.h*360),a=Math.round(t.s*100),o=Math.round(t.l*100);return this.a===1?"hsl(".concat(n,", ").concat(a,"%, ").concat(o,"%)"):"hsla(".concat(n,", ").concat(a,"%, ").concat(o,"%, ").concat(this.roundA,")")},e.prototype.toHex=function(t){return t===void 0&&(t=!1),hr(this.r,this.g,this.b,t)},e.prototype.toHexString=function(t){return t===void 0&&(t=!1),"#"+this.toHex(t)},e.prototype.toHex8=function(t){return t===void 0&&(t=!1),Ec(this.r,this.g,this.b,this.a,t)},e.prototype.toHex8String=function(t){return t===void 0&&(t=!1),"#"+this.toHex8(t)},e.prototype.toHexShortString=function(t){return t===void 0&&(t=!1),this.a===1?this.toHexString(t):this.toHex8String(t)},e.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},e.prototype.toRgbString=function(){var t=Math.round(this.r),n=Math.round(this.g),a=Math.round(this.b);return this.a===1?"rgb(".concat(t,", ").concat(n,", ").concat(a,")"):"rgba(".concat(t,", ").concat(n,", ").concat(a,", ").concat(this.roundA,")")},e.prototype.toPercentageRgb=function(){var t=function(n){return"".concat(Math.round(Be(n,255)*100),"%")};return{r:t(this.r),g:t(this.g),b:t(this.b),a:this.a}},e.prototype.toPercentageRgbString=function(){var t=function(n){return Math.round(Be(n,255)*100)};return this.a===1?"rgb(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%)"):"rgba(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%, ").concat(this.roundA,")")},e.prototype.toName=function(){if(this.a===0)return"transparent";if(this.a<1)return!1;for(var t="#"+hr(this.r,this.g,this.b,!1),n=0,a=Object.entries(ta);n=0,s=!n&&o&&(t.startsWith("hex")||t==="name");return s?t==="name"&&this.a===0?this.toName():this.toRgbString():(t==="rgb"&&(a=this.toRgbString()),t==="prgb"&&(a=this.toPercentageRgbString()),(t==="hex"||t==="hex6")&&(a=this.toHexString()),t==="hex3"&&(a=this.toHexString(!0)),t==="hex4"&&(a=this.toHex8String(!0)),t==="hex8"&&(a=this.toHex8String()),t==="name"&&(a=this.toName()),t==="hsl"&&(a=this.toHslString()),t==="hsv"&&(a=this.toHsvString()),a||this.toHexString())},e.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},e.prototype.clone=function(){return new e(this.toString())},e.prototype.lighten=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.l+=t/100,n.l=yn(n.l),new e(n)},e.prototype.brighten=function(t){t===void 0&&(t=10);var n=this.toRgb();return n.r=Math.max(0,Math.min(255,n.r-Math.round(255*-(t/100)))),n.g=Math.max(0,Math.min(255,n.g-Math.round(255*-(t/100)))),n.b=Math.max(0,Math.min(255,n.b-Math.round(255*-(t/100)))),new e(n)},e.prototype.darken=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.l-=t/100,n.l=yn(n.l),new e(n)},e.prototype.tint=function(t){return t===void 0&&(t=10),this.mix("white",t)},e.prototype.shade=function(t){return t===void 0&&(t=10),this.mix("black",t)},e.prototype.desaturate=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.s-=t/100,n.s=yn(n.s),new e(n)},e.prototype.saturate=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.s+=t/100,n.s=yn(n.s),new e(n)},e.prototype.greyscale=function(){return this.desaturate(100)},e.prototype.spin=function(t){var n=this.toHsl(),a=(n.h+t)%360;return n.h=a<0?360+a:a,new e(n)},e.prototype.mix=function(t,n){n===void 0&&(n=50);var a=this.toRgb(),o=new e(t).toRgb(),s=n/100,l={r:(o.r-a.r)*s+a.r,g:(o.g-a.g)*s+a.g,b:(o.b-a.b)*s+a.b,a:(o.a-a.a)*s+a.a};return new e(l)},e.prototype.analogous=function(t,n){t===void 0&&(t=6),n===void 0&&(n=30);var a=this.toHsl(),o=360/n,s=[this];for(a.h=(a.h-(o*t>>1)+720)%360;--t;)a.h=(a.h+o)%360,s.push(new e(a));return s},e.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new e(t)},e.prototype.monochromatic=function(t){t===void 0&&(t=6);for(var n=this.toHsv(),a=n.h,o=n.s,s=n.v,l=[],u=1/t;t--;)l.push(new e({h:a,s:o,v:s})),s=(s+u)%1;return l},e.prototype.splitcomplement=function(){var t=this.toHsl(),n=t.h;return[this,new e({h:(n+72)%360,s:t.s,l:t.l}),new e({h:(n+216)%360,s:t.s,l:t.l})]},e.prototype.onBackground=function(t){var n=this.toRgb(),a=new e(t).toRgb(),o=n.a+a.a*(1-n.a);return new e({r:(n.r*n.a+a.r*a.a*(1-n.a))/o,g:(n.g*n.a+a.g*a.a*(1-n.a))/o,b:(n.b*n.a+a.b*a.a*(1-n.a))/o,a:o})},e.prototype.triad=function(){return this.polyad(3)},e.prototype.tetrad=function(){return this.polyad(4)},e.prototype.polyad=function(t){for(var n=this.toHsl(),a=n.h,o=[this],s=360/t,l=1;l{let a={};const o=e.color;if(o){const s=new Lc(o),l=e.dark?s.tint(20).toString():Pt(s,20);if(e.plain)a=n.cssVarBlock({"bg-color":e.dark?Pt(s,90):s.tint(90).toString(),"text-color":o,"border-color":e.dark?Pt(s,50):s.tint(50).toString(),"hover-text-color":`var(${n.cssVarName("color-white")})`,"hover-bg-color":o,"hover-border-color":o,"active-bg-color":l,"active-text-color":`var(${n.cssVarName("color-white")})`,"active-border-color":l}),t.value&&(a[n.cssVarBlockName("disabled-bg-color")]=e.dark?Pt(s,90):s.tint(90).toString(),a[n.cssVarBlockName("disabled-text-color")]=e.dark?Pt(s,50):s.tint(50).toString(),a[n.cssVarBlockName("disabled-border-color")]=e.dark?Pt(s,80):s.tint(80).toString());else{const u=e.dark?Pt(s,30):s.tint(30).toString(),i=s.isDark()?`var(${n.cssVarName("color-white")})`:`var(${n.cssVarName("color-black")})`;if(a=n.cssVarBlock({"bg-color":o,"text-color":i,"border-color":o,"hover-bg-color":u,"hover-text-color":i,"hover-border-color":u,"active-bg-color":l,"active-border-color":l}),t.value){const f=e.dark?Pt(s,50):s.tint(50).toString();a[n.cssVarBlockName("disabled-bg-color")]=f,a[n.cssVarBlockName("disabled-text-color")]=e.dark?"rgba(255, 255, 255, 0.5)":`var(${n.cssVarName("color-white")})`,a[n.cssVarBlockName("disabled-border-color")]=f}}}return a})}const Bc=re({name:"ElButton"}),Hc=re({...Bc,props:ea,emits:xc,setup(e,{expose:t,emit:n}){const a=e,o=Vc(a),s=Te("button"),{_ref:l,_size:u,_type:i,_disabled:f,_props:m,shouldAddSpace:d,handleClick:g}=Sc(a,n);return t({ref:l,size:u,type:i,disabled:f,shouldAddSpace:d}),(h,v)=>(D(),de(tt(h.tag),bt({ref_key:"_ref",ref:l},r(m),{class:[r(s).b(),r(s).m(r(i)),r(s).m(r(u)),r(s).is("disabled",r(f)),r(s).is("loading",h.loading),r(s).is("plain",h.plain),r(s).is("round",h.round),r(s).is("circle",h.circle),r(s).is("text",h.text),r(s).is("link",h.link),r(s).is("has-bg",h.bg)],style:r(o),onClick:r(g)}),{default:le(()=>[h.loading?(D(),K(_e,{key:0},[h.$slots.loading?$e(h.$slots,"loading",{key:0}):(D(),de(r(ke),{key:1,class:A(r(s).is("loading"))},{default:le(()=>[(D(),de(tt(h.loadingIcon)))]),_:1},8,["class"]))],64)):h.icon||h.$slots.icon?(D(),de(r(ke),{key:1},{default:le(()=>[h.icon?(D(),de(tt(h.icon),{key:0})):$e(h.$slots,"icon",{key:1})]),_:3})):ne("v-if",!0),h.$slots.default?(D(),K("span",{key:2,class:A({[r(s).em("text","expand")]:r(d)})},[$e(h.$slots,"default")],2)):ne("v-if",!0)]),_:3},16,["class","style","onClick"]))}});var zc=Ae(Hc,[["__file","button.vue"]]);const Yc={size:ea.size,type:ea.type},jc=re({name:"ElButtonGroup"}),Wc=re({...jc,props:Yc,setup(e){const t=e;dt(io,ua({size:Ve(t,"size"),type:Ve(t,"type")}));const n=Te("button");return(a,o)=>(D(),K("div",{class:A(`${r(n).b("group")}`)},[$e(a.$slots,"default")],2))}});var co=Ae(Wc,[["__file","button-group.vue"]]);const On=en(zc,{ButtonGroup:co});Kl(co);var fo={exports:{}};(function(e,t){(function(n,a){e.exports=a()})(Mt,function(){var n=1e3,a=6e4,o=36e5,s="millisecond",l="second",u="minute",i="hour",f="day",m="week",d="month",g="quarter",h="year",v="date",c="Invalid Date",k=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,w={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(z){var L=["th","st","nd","rd"],F=z%100;return"["+z+(L[(F-20)%10]||L[F]||L[0])+"]"}},N=function(z,L,F){var C=String(z);return!C||C.length>=L?z:""+Array(L+1-C.length).join(F)+z},x={s:N,z:function(z){var L=-z.utcOffset(),F=Math.abs(L),C=Math.floor(F/60),M=F%60;return(L<=0?"+":"-")+N(C,2,"0")+":"+N(M,2,"0")},m:function z(L,F){if(L.date()1)return z(S[0])}else{var E=L.name;P[E]=L,M=E}return!C&&M&&(R=M),M||!C&&R},V=function(z,L){if(O(z))return z.clone();var F=typeof L=="object"?L:{};return F.date=z,F.args=arguments,new J(F)},B=x;B.l=H,B.i=O,B.w=function(z,L){return V(z,{locale:L.$L,utc:L.$u,x:L.$x,$offset:L.$offset})};var J=function(){function z(F){this.$L=H(F.locale,null,!0),this.parse(F),this.$x=this.$x||F.x||{},this[_]=!0}var L=z.prototype;return L.parse=function(F){this.$d=function(C){var M=C.date,p=C.utc;if(M===null)return new Date(NaN);if(B.u(M))return new Date;if(M instanceof Date)return new Date(M);if(typeof M=="string"&&!/Z$/i.test(M)){var S=M.match(k);if(S){var E=S[2]-1||0,I=(S[7]||"0").substring(0,3);return p?new Date(Date.UTC(S[1],E,S[3]||1,S[4]||0,S[5]||0,S[6]||0,I)):new Date(S[1],E,S[3]||1,S[4]||0,S[5]||0,S[6]||0,I)}}return new Date(M)}(F),this.init()},L.init=function(){var F=this.$d;this.$y=F.getFullYear(),this.$M=F.getMonth(),this.$D=F.getDate(),this.$W=F.getDay(),this.$H=F.getHours(),this.$m=F.getMinutes(),this.$s=F.getSeconds(),this.$ms=F.getMilliseconds()},L.$utils=function(){return B},L.isValid=function(){return this.$d.toString()!==c},L.isSame=function(F,C){var M=V(F);return this.startOf(C)<=M&&M<=this.endOf(C)},L.isAfter=function(F,C){return V(F)68?1900:2e3)},f=function(c){return function(k){this[c]=+k}},m=[/[+-]\d\d:?(\d\d)?|Z/,function(c){(this.zone||(this.zone={})).offset=function(k){if(!k||k==="Z")return 0;var y=k.match(/([+-]|\d\d)/g),w=60*y[1]+(+y[2]||0);return w===0?0:y[0]==="+"?-w:w}(c)}],d=function(c){var k=u[c];return k&&(k.indexOf?k:k.s.concat(k.f))},g=function(c,k){var y,w=u.meridiem;if(w){for(var N=1;N<=24;N+=1)if(c.indexOf(w(N,0,k))>-1){y=N>12;break}}else y=c===(k?"pm":"PM");return y},h={A:[l,function(c){this.afternoon=g(c,!1)}],a:[l,function(c){this.afternoon=g(c,!0)}],S:[/\d/,function(c){this.milliseconds=100*+c}],SS:[o,function(c){this.milliseconds=10*+c}],SSS:[/\d{3}/,function(c){this.milliseconds=+c}],s:[s,f("seconds")],ss:[s,f("seconds")],m:[s,f("minutes")],mm:[s,f("minutes")],H:[s,f("hours")],h:[s,f("hours")],HH:[s,f("hours")],hh:[s,f("hours")],D:[s,f("day")],DD:[o,f("day")],Do:[l,function(c){var k=u.ordinal,y=c.match(/\d+/);if(this.day=y[0],k)for(var w=1;w<=31;w+=1)k(w).replace(/\[|\]/g,"")===c&&(this.day=w)}],M:[s,f("month")],MM:[o,f("month")],MMM:[l,function(c){var k=d("months"),y=(d("monthsShort")||k.map(function(w){return w.slice(0,3)})).indexOf(c)+1;if(y<1)throw new Error;this.month=y%12||y}],MMMM:[l,function(c){var k=d("months").indexOf(c)+1;if(k<1)throw new Error;this.month=k%12||k}],Y:[/[+-]?\d+/,f("year")],YY:[o,function(c){this.year=i(c)}],YYYY:[/\d{4}/,f("year")],Z:m,ZZ:m};function v(c){var k,y;k=c,y=u&&u.formats;for(var w=(c=k.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(H,V,B){var J=B&&B.toUpperCase();return V||y[B]||n[B]||y[J].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(U,z,L){return z||L.slice(1)})})).match(a),N=w.length,x=0;x-1)return new Date((C==="X"?1e3:1)*F);var p=v(C)(F),S=p.year,E=p.month,I=p.day,G=p.hours,te=p.minutes,oe=p.seconds,pe=p.milliseconds,ve=p.zone,me=new Date,xe=I||(S||E?1:me.getDate()),Se=S||me.getFullYear(),be=0;S&&!E||(be=E>0?E-1:me.getMonth());var ge=G||0,De=te||0,Ie=oe||0,Ne=pe||0;return ve?new Date(Date.UTC(Se,be,xe,ge,De,Ie,Ne+60*ve.offset*1e3)):M?new Date(Date.UTC(Se,be,xe,ge,De,Ie,Ne)):new Date(Se,be,xe,ge,De,Ie,Ne)}catch{return new Date("")}}(R,O,P),this.init(),J&&J!==!0&&(this.$L=this.locale(J).$L),B&&R!=this.format(O)&&(this.$d=new Date("")),u={}}else if(O instanceof Array)for(var U=O.length,z=1;z<=U;z+=1){_[1]=O[z-1];var L=y.apply(this,_);if(L.isValid()){this.$d=L.$d,this.$L=L.$L,this.init();break}z===U&&(this.$d=new Date(""))}else N.call(this,x)}}})})(po);var Uc=po.exports;const qc=Tt(Uc),gr=["hours","minutes","seconds"],br="HH:mm:ss",Kt="YYYY-MM-DD",Gc={date:Kt,dates:Kt,week:"gggg[w]ww",year:"YYYY",month:"YYYY-MM",datetime:`${Kt} ${br}`,monthrange:"YYYY-MM",daterange:Kt,datetimerange:`${Kt} ${br}`},Kn=(e,t)=>[e>0?e-1:void 0,e,eArray.from(Array.from({length:e}).keys()),ho=e=>e.replace(/\W?m{1,2}|\W?ZZ/g,"").replace(/\W?h{1,2}|\W?s{1,3}|\W?a/gi,"").trim(),mo=e=>e.replace(/\W?D{1,2}|\W?Do|\W?d{1,4}|\W?M{1,4}|\W?Y{2,4}/g,"").trim(),yr=function(e,t){const n=qa(e),a=qa(t);return n&&a?e.getTime()===t.getTime():!n&&!a?e===t:!1},wr=function(e,t){const n=Fe(e),a=Fe(t);return n&&a?e.length!==t.length?!1:e.every((o,s)=>yr(o,t[s])):!n&&!a?yr(e,t):!1},kr=function(e,t,n){const a=zr(t)||t==="x"?se(e).locale(n):se(e,t).locale(n);return a.isValid()?a:void 0},Sr=function(e,t,n){return zr(t)?e:t==="x"?+e:se(e).locale(n).format(t)},Un=(e,t)=>{var n;const a=[],o=t==null?void 0:t();for(let s=0;s({})},modelValue:{type:ae([Date,Array,String,Number]),default:""},rangeSeparator:{type:String,default:"-"},startPlaceholder:String,endPlaceholder:String,defaultValue:{type:ae([Date,Array])},defaultTime:{type:ae([Date,Array])},isRange:Boolean,...go,disabledDate:{type:Function},cellClassName:{type:Function},shortcuts:{type:Array,default:()=>[]},arrowControl:Boolean,label:{type:String,default:void 0},tabindex:{type:ae([String,Number]),default:0},validateEvent:{type:Boolean,default:!0},unlinkPanels:Boolean}),Jc=["id","name","placeholder","value","disabled","readonly"],Xc=["id","name","placeholder","value","disabled","readonly"],Qc=re({name:"Picker"}),ed=re({...Qc,props:bo,emits:["update:modelValue","change","focus","blur","calendar-change","panel-change","visible-change","keydown"],setup(e,{expose:t,emit:n}){const a=e,o=En(),{lang:s}=pt(),l=Te("date"),u=Te("input"),i=Te("range"),{form:f,formItem:m}=Ma(),d=Ce("ElPopperOptions",{}),g=j(),h=j(),v=j(!1),c=j(!1),k=j(null);let y=!1,w=!1;const N=T(()=>[l.b("editor"),l.bm("editor",a.type),u.e("wrapper"),l.is("disabled",I.value),l.is("active",v.value),i.b("editor"),Ge?i.bm("editor",Ge.value):"",o.class]),x=T(()=>[u.e("icon"),i.e("close-icon"),xe.value?"":i.e("close-icon--hidden")]);fe(v,b=>{b?Ee(()=>{b&&(k.value=a.modelValue)}):(ie.value=null,Ee(()=>{R(a.modelValue)}))});const R=(b,Z)=>{(Z||!wr(b,k.value))&&(n("change",b),a.validateEvent&&(m==null||m.validate("change").catch(ce=>void 0)))},P=b=>{if(!wr(a.modelValue,b)){let Z;Fe(b)?Z=b.map(ce=>Sr(ce,a.valueFormat,s.value)):b&&(Z=Sr(b,a.valueFormat,s.value)),n("update:modelValue",b&&Z,s.value)}},_=b=>{n("keydown",b)},O=T(()=>{if(h.value){const b=Re.value?h.value:h.value.$el;return Array.from(b.querySelectorAll("input"))}return[]}),H=(b,Z,ce)=>{const Pe=O.value;Pe.length&&(!ce||ce==="min"?(Pe[0].setSelectionRange(b,Z),Pe[0].focus()):ce==="max"&&(Pe[1].setSelectionRange(b,Z),Pe[1].focus()))},V=()=>{M(!0,!0),Ee(()=>{w=!1})},B=(b="",Z=!1)=>{Z||(w=!0),v.value=Z;let ce;Fe(b)?ce=b.map(Pe=>Pe.toDate()):ce=b&&b.toDate(),ie.value=null,P(ce)},J=()=>{c.value=!0},U=()=>{n("visible-change",!0)},z=b=>{(b==null?void 0:b.key)===Oe.esc&&M(!0,!0)},L=()=>{c.value=!1,v.value=!1,w=!1,n("visible-change",!1)},F=()=>{v.value=!0},C=()=>{v.value=!1},M=(b=!0,Z=!1)=>{w=Z;const[ce,Pe]=r(O);let it=ce;!b&&Re.value&&(it=Pe),it&&it.focus()},p=b=>{a.readonly||I.value||v.value||w||(v.value=!0,n("focus",b))};let S;const E=b=>{const Z=async()=>{setTimeout(()=>{var ce;S===Z&&(!((ce=g.value)!=null&&ce.isFocusInsideContent()&&!y)&&O.value.filter(Pe=>Pe.contains(document.activeElement)).length===0&&(Ye(),v.value=!1,n("blur",b),a.validateEvent&&(m==null||m.validate("blur").catch(Pe=>void 0))),y=!1)},0)};S=Z,Z()},I=T(()=>a.disabled||(f==null?void 0:f.disabled)),G=T(()=>{let b;if(be.value?$.value.getDefaultValue&&(b=$.value.getDefaultValue()):Fe(a.modelValue)?b=a.modelValue.map(Z=>kr(Z,a.valueFormat,s.value)):b=kr(a.modelValue,a.valueFormat,s.value),$.value.getRangeAvailableTime){const Z=$.value.getRangeAvailableTime(b);Qo(Z,b)||(b=Z,P(Fe(b)?b.map(ce=>ce.toDate()):b.toDate()))}return Fe(b)&&b.some(Z=>!Z)&&(b=[]),b}),te=T(()=>{if(!$.value.panelReady)return"";const b=Ze(G.value);return Fe(ie.value)?[ie.value[0]||b&&b[0]||"",ie.value[1]||b&&b[1]||""]:ie.value!==null?ie.value:!pe.value&&be.value||!v.value&&be.value?"":b?ve.value?b.join(", "):b:""}),oe=T(()=>a.type.includes("time")),pe=T(()=>a.type.startsWith("time")),ve=T(()=>a.type==="dates"),me=T(()=>a.prefixIcon||(oe.value?Fl:El)),xe=j(!1),Se=b=>{a.readonly||I.value||xe.value&&(b.stopPropagation(),V(),P(null),R(null,!0),xe.value=!1,v.value=!1,$.value.handleClear&&$.value.handleClear())},be=T(()=>{const{modelValue:b}=a;return!b||Fe(b)&&!b.filter(Boolean).length}),ge=async b=>{var Z;a.readonly||I.value||(((Z=b.target)==null?void 0:Z.tagName)!=="INPUT"||O.value.includes(document.activeElement))&&(v.value=!0)},De=()=>{a.readonly||I.value||!be.value&&a.clearable&&(xe.value=!0)},Ie=()=>{xe.value=!1},Ne=b=>{var Z;a.readonly||I.value||(((Z=b.touches[0].target)==null?void 0:Z.tagName)!=="INPUT"||O.value.includes(document.activeElement))&&(v.value=!0)},Re=T(()=>a.type.includes("range")),Ge=Ca(),lt=T(()=>{var b,Z;return(Z=(b=r(g))==null?void 0:b.popperRef)==null?void 0:Z.contentRef}),Le=T(()=>{var b;return r(Re)?r(h):(b=r(h))==null?void 0:b.$el});Lr(Le,b=>{const Z=r(lt),ce=r(Le);Z&&(b.target===Z||b.composedPath().includes(Z))||b.target===ce||b.composedPath().includes(ce)||(v.value=!1)});const ie=j(null),Ye=()=>{if(ie.value){const b=je(te.value);b&&He(b)&&(P(Fe(b)?b.map(Z=>Z.toDate()):b.toDate()),ie.value=null)}ie.value===""&&(P(null),R(null),ie.value=null)},je=b=>b?$.value.parseUserInput(b):null,Ze=b=>b?$.value.formatToString(b):null,He=b=>$.value.isValidValue(b),W=async b=>{if(a.readonly||I.value)return;const{code:Z}=b;if(_(b),Z===Oe.esc){v.value===!0&&(v.value=!1,b.preventDefault(),b.stopPropagation());return}if(Z===Oe.down&&($.value.handleFocusPicker&&(b.preventDefault(),b.stopPropagation()),v.value===!1&&(v.value=!0,await Ee()),$.value.handleFocusPicker)){$.value.handleFocusPicker();return}if(Z===Oe.tab){y=!0;return}if(Z===Oe.enter||Z===Oe.numpadEnter){(ie.value===null||ie.value===""||He(je(te.value)))&&(Ye(),v.value=!1),b.stopPropagation();return}if(ie.value){b.stopPropagation();return}$.value.handleKeydownInput&&$.value.handleKeydownInput(b)},ue=b=>{ie.value=b,v.value||(v.value=!0)},we=b=>{const Z=b.target;ie.value?ie.value=[Z.value,ie.value[1]]:ie.value=[Z.value,null]},Je=b=>{const Z=b.target;ie.value?ie.value=[ie.value[0],Z.value]:ie.value=[null,Z.value]},vt=()=>{var b;const Z=ie.value,ce=je(Z&&Z[0]),Pe=r(G);if(ce&&ce.isValid()){ie.value=[Ze(ce),((b=te.value)==null?void 0:b[1])||null];const it=[ce,Pe&&(Pe[1]||null)];He(it)&&(P(it),ie.value=null)}},Dt=()=>{var b;const Z=r(ie),ce=je(Z&&Z[1]),Pe=r(G);if(ce&&ce.isValid()){ie.value=[((b=r(te))==null?void 0:b[0])||null,Ze(ce)];const it=[Pe&&Pe[0],ce];He(it)&&(P(it),ie.value=null)}},$=j({}),X=b=>{$.value[b[0]]=b[1],$.value.panelReady=!0},Y=b=>{n("calendar-change",b)},Q=(b,Z,ce)=>{n("panel-change",b,Z,ce)};return dt("EP_PICKER_BASE",{props:a}),t({focus:M,handleFocusInput:p,handleBlurInput:E,handleOpen:F,handleClose:C,onPick:B}),(b,Z)=>(D(),de(r(kc),bt({ref_key:"refPopper",ref:g,visible:v.value,effect:"light",pure:"",trigger:"click"},b.$attrs,{role:"dialog",teleported:"",transition:`${r(l).namespace.value}-zoom-in-top`,"popper-class":[`${r(l).namespace.value}-picker__popper`,b.popperClass],"popper-options":r(d),"fallback-placements":["bottom","top","right","left"],"gpu-acceleration":!1,"stop-popper-mouse-event":!1,"hide-after":0,persistent:"",onBeforeShow:J,onShow:U,onHide:L}),{default:le(()=>[r(Re)?(D(),K("div",{key:1,ref_key:"inputRef",ref:h,class:A(r(N)),style:Ht(b.$attrs.style),onClick:p,onMouseenter:De,onMouseleave:Ie,onTouchstart:Ne,onKeydown:W},[r(me)?(D(),de(r(ke),{key:0,class:A([r(u).e("icon"),r(i).e("icon")]),onMousedown:et(ge,["prevent"]),onTouchstart:Ne},{default:le(()=>[(D(),de(tt(r(me))))]),_:1},8,["class","onMousedown"])):ne("v-if",!0),q("input",{id:b.id&&b.id[0],autocomplete:"off",name:b.name&&b.name[0],placeholder:b.startPlaceholder,value:r(te)&&r(te)[0],disabled:r(I),readonly:!b.editable||b.readonly,class:A(r(i).b("input")),onMousedown:ge,onInput:we,onChange:vt,onFocus:p,onBlur:E},null,42,Jc),$e(b.$slots,"range-separator",{},()=>[q("span",{class:A(r(i).b("separator"))},he(b.rangeSeparator),3)]),q("input",{id:b.id&&b.id[1],autocomplete:"off",name:b.name&&b.name[1],placeholder:b.endPlaceholder,value:r(te)&&r(te)[1],disabled:r(I),readonly:!b.editable||b.readonly,class:A(r(i).b("input")),onMousedown:ge,onFocus:p,onBlur:E,onInput:Je,onChange:Dt},null,42,Xc),b.clearIcon?(D(),de(r(ke),{key:1,class:A(r(x)),onClick:Se},{default:le(()=>[(D(),de(tt(b.clearIcon)))]),_:1},8,["class"])):ne("v-if",!0)],38)):(D(),de(r(Ft),{key:0,id:b.id,ref_key:"inputRef",ref:h,"container-role":"combobox","model-value":r(te),name:b.name,size:r(Ge),disabled:r(I),placeholder:b.placeholder,class:A([r(l).b("editor"),r(l).bm("editor",b.type),b.$attrs.class]),style:Ht(b.$attrs.style),readonly:!b.editable||b.readonly||r(ve)||b.type==="week",label:b.label,tabindex:b.tabindex,"validate-event":!1,onInput:ue,onFocus:p,onBlur:E,onKeydown:W,onChange:Ye,onMousedown:ge,onMouseenter:De,onMouseleave:Ie,onTouchstart:Ne,onClick:Z[0]||(Z[0]=et(()=>{},["stop"]))},{prefix:le(()=>[r(me)?(D(),de(r(ke),{key:0,class:A(r(u).e("icon")),onMousedown:et(ge,["prevent"]),onTouchstart:Ne},{default:le(()=>[(D(),de(tt(r(me))))]),_:1},8,["class","onMousedown"])):ne("v-if",!0)]),suffix:le(()=>[xe.value&&b.clearIcon?(D(),de(r(ke),{key:0,class:A(`${r(u).e("icon")} clear-icon`),onClick:et(Se,["stop"])},{default:le(()=>[(D(),de(tt(b.clearIcon)))]),_:1},8,["class","onClick"])):ne("v-if",!0)]),_:1},8,["id","model-value","name","size","disabled","placeholder","class","style","readonly","label","tabindex","onKeydown"]))]),content:le(()=>[$e(b.$slots,"default",{visible:v.value,actualVisible:c.value,parsedValue:r(G),format:b.format,dateFormat:b.dateFormat,timeFormat:b.timeFormat,unlinkPanels:b.unlinkPanels,type:b.type,defaultValue:b.defaultValue,onPick:B,onSelectRange:H,onSetPickerOption:X,onCalendarChange:Y,onPanelChange:Q,onKeydown:z,onMousedown:Z[1]||(Z[1]=et(()=>{},["stop"]))})]),_:3},16,["visible","transition","popper-class","popper-options"]))}});var td=Ae(ed,[["__file","picker.vue"]]);const nd=ye({...Zc,datetimeRole:String,parsedValue:{type:ae(Object)}}),ad=({getAvailableHours:e,getAvailableMinutes:t,getAvailableSeconds:n})=>{const a=(l,u,i,f)=>{const m={hour:e,minute:t,second:n};let d=l;return["hour","minute","second"].forEach(g=>{if(m[g]){let h;const v=m[g];switch(g){case"minute":{h=v(d.hour(),u,f);break}case"second":{h=v(d.hour(),d.minute(),u,f);break}default:{h=v(u,f);break}}if(h!=null&&h.length&&!h.includes(d[g]())){const c=i?0:h.length-1;d=d[g](h[c])}}}),d},o={};return{timePickerOptions:o,getAvailableTime:a,onSetOption:([l,u])=>{o[l]=u}}},qn=e=>{const t=(a,o)=>a||o,n=a=>a!==!0;return e.map(t).filter(n)},yo=(e,t,n)=>({getHoursList:(l,u)=>Un(24,e&&(()=>e==null?void 0:e(l,u))),getMinutesList:(l,u,i)=>Un(60,t&&(()=>t==null?void 0:t(l,u,i))),getSecondsList:(l,u,i,f)=>Un(60,n&&(()=>n==null?void 0:n(l,u,i,f)))}),rd=(e,t,n)=>{const{getHoursList:a,getMinutesList:o,getSecondsList:s}=yo(e,t,n);return{getAvailableHours:(f,m)=>qn(a(f,m)),getAvailableMinutes:(f,m,d)=>qn(o(f,m,d)),getAvailableSeconds:(f,m,d,g)=>qn(s(f,m,d,g))}},od=e=>{const t=j(e.parsedValue);return fe(()=>e.visible,n=>{n||(t.value=e.parsedValue)}),t},Et=new Map;let _r;qe&&(document.addEventListener("mousedown",e=>_r=e),document.addEventListener("mouseup",e=>{for(const t of Et.values())for(const{documentHandler:n}of t)n(e,_r)}));function Cr(e,t){let n=[];return Array.isArray(t.arg)?n=t.arg:cn(t.arg)&&n.push(t.arg),function(a,o){const s=t.instance.popperRef,l=a.target,u=o==null?void 0:o.target,i=!t||!t.instance,f=!l||!u,m=e.contains(l)||e.contains(u),d=e===l,g=n.length&&n.some(v=>v==null?void 0:v.contains(l))||n.length&&n.includes(u),h=s&&(s.contains(l)||s.contains(u));i||f||m||d||g||h||t.value(a,o)}}const na={beforeMount(e,t){Et.has(e)||Et.set(e,[]),Et.get(e).push({documentHandler:Cr(e,t),bindingFn:t.value})},updated(e,t){Et.has(e)||Et.set(e,[]);const n=Et.get(e),a=n.findIndex(s=>s.bindingFn===t.oldValue),o={documentHandler:Cr(e,t),bindingFn:t.value};a>=0?n.splice(a,1,o):n.push(o)},unmounted(e){Et.delete(e)}},sd=100,ld=600,xr={beforeMount(e,t){const n=t.value,{interval:a=sd,delay:o=ld}=gt(n)?{}:n;let s,l;const u=()=>gt(n)?n():n.handler(),i=()=>{l&&(clearTimeout(l),l=void 0),s&&(clearInterval(s),s=void 0)};e.addEventListener("mousedown",f=>{f.button===0&&(i(),u(),document.addEventListener("mouseup",()=>i(),{once:!0}),l=setTimeout(()=>{s=setInterval(()=>{u()},a)},o))})}},id=ye({role:{type:String,required:!0},spinnerDate:{type:ae(Object),required:!0},showSeconds:{type:Boolean,default:!0},arrowControl:Boolean,amPmMode:{type:ae(String),default:""},...go}),ud=["onClick"],cd=["onMouseenter"],dd=re({__name:"basic-time-spinner",props:id,emits:["change","select-range","set-option"],setup(e,{emit:t}){const n=e,a=Te("time"),{getHoursList:o,getMinutesList:s,getSecondsList:l}=yo(n.disabledHours,n.disabledMinutes,n.disabledSeconds);let u=!1;const i=j(),f=j(),m=j(),d=j(),g={hours:f,minutes:m,seconds:d},h=T(()=>n.showSeconds?gr:gr.slice(0,2)),v=T(()=>{const{spinnerDate:p}=n,S=p.hour(),E=p.minute(),I=p.second();return{hours:S,minutes:E,seconds:I}}),c=T(()=>{const{hours:p,minutes:S}=r(v);return{hours:o(n.role),minutes:s(p,n.role),seconds:l(p,S,n.role)}}),k=T(()=>{const{hours:p,minutes:S,seconds:E}=r(v);return{hours:Kn(p,23),minutes:Kn(S,59),seconds:Kn(E,59)}}),y=Xo(p=>{u=!1,x(p)},200),w=p=>{if(!!!n.amPmMode)return"";const E=n.amPmMode==="A";let I=p<12?" am":" pm";return E&&(I=I.toUpperCase()),I},N=p=>{let S;switch(p){case"hours":S=[0,2];break;case"minutes":S=[3,5];break;case"seconds":S=[6,8];break}const[E,I]=S;t("select-range",E,I),i.value=p},x=p=>{_(p,r(v)[p])},R=()=>{x("hours"),x("minutes"),x("seconds")},P=p=>p.querySelector(`.${a.namespace.value}-scrollbar__wrap`),_=(p,S)=>{if(n.arrowControl)return;const E=r(g[p]);E&&E.$el&&(P(E.$el).scrollTop=Math.max(0,S*O(p)))},O=p=>{const S=r(g[p]),E=S==null?void 0:S.$el.querySelector("li");return E&&Number.parseFloat(_l(E,"height"))||0},H=()=>{B(1)},V=()=>{B(-1)},B=p=>{i.value||N("hours");const S=i.value,E=r(v)[S],I=i.value==="hours"?24:60,G=J(S,E,p,I);U(S,G),_(S,G),Ee(()=>N(S))},J=(p,S,E,I)=>{let G=(S+E+I)%I;const te=r(c)[p];for(;te[G]&&G!==S;)G=(G+E+I)%I;return G},U=(p,S)=>{if(r(c)[p][S])return;const{hours:G,minutes:te,seconds:oe}=r(v);let pe;switch(p){case"hours":pe=n.spinnerDate.hour(S).minute(te).second(oe);break;case"minutes":pe=n.spinnerDate.hour(G).minute(S).second(oe);break;case"seconds":pe=n.spinnerDate.hour(G).minute(te).second(S);break}t("change",pe)},z=(p,{value:S,disabled:E})=>{E||(U(p,S),N(p),_(p,S))},L=p=>{u=!0,y(p);const S=Math.min(Math.round((P(r(g[p]).$el).scrollTop-(F(p)*.5-10)/O(p)+3)/O(p)),p==="hours"?23:59);U(p,S)},F=p=>r(g[p]).$el.offsetHeight,C=()=>{const p=S=>{const E=r(g[S]);E&&E.$el&&(P(E.$el).onscroll=()=>{L(S)})};p("hours"),p("minutes"),p("seconds")};st(()=>{Ee(()=>{!n.arrowControl&&C(),R(),n.role==="start"&&N("hours")})});const M=(p,S)=>{g[S].value=p};return t("set-option",[`${n.role}_scrollDown`,B]),t("set-option",[`${n.role}_emitSelectRange`,N]),fe(()=>n.spinnerDate,()=>{u||R()}),(p,S)=>(D(),K("div",{class:A([r(a).b("spinner"),{"has-seconds":p.showSeconds}])},[p.arrowControl?ne("v-if",!0):(D(!0),K(_e,{key:0},We(r(h),E=>(D(),de(r(gu),{key:E,ref_for:!0,ref:I=>M(I,E),class:A(r(a).be("spinner","wrapper")),"wrap-style":"max-height: inherit;","view-class":r(a).be("spinner","list"),noresize:"",tag:"ul",onMouseenter:I=>N(E),onMousemove:I=>x(E)},{default:le(()=>[(D(!0),K(_e,null,We(r(c)[E],(I,G)=>(D(),K("li",{key:G,class:A([r(a).be("spinner","item"),r(a).is("active",G===r(v)[E]),r(a).is("disabled",I)]),onClick:te=>z(E,{value:G,disabled:I})},[E==="hours"?(D(),K(_e,{key:0},[mt(he(("0"+(p.amPmMode?G%12||12:G)).slice(-2))+he(w(G)),1)],64)):(D(),K(_e,{key:1},[mt(he(("0"+G).slice(-2)),1)],64))],10,ud))),128))]),_:2},1032,["class","view-class","onMouseenter","onMousemove"]))),128)),p.arrowControl?(D(!0),K(_e,{key:1},We(r(h),E=>(D(),K("div",{key:E,class:A([r(a).be("spinner","wrapper"),r(a).is("arrow")]),onMouseenter:I=>N(E)},[ze((D(),de(r(ke),{class:A(["arrow-up",r(a).be("spinner","arrow")])},{default:le(()=>[ee(r(Pl))]),_:1},8,["class"])),[[r(xr),V]]),ze((D(),de(r(ke),{class:A(["arrow-down",r(a).be("spinner","arrow")])},{default:le(()=>[ee(r(xl))]),_:1},8,["class"])),[[r(xr),H]]),q("ul",{class:A(r(a).be("spinner","list"))},[(D(!0),K(_e,null,We(r(k)[E],(I,G)=>(D(),K("li",{key:G,class:A([r(a).be("spinner","item"),r(a).is("active",I===r(v)[E]),r(a).is("disabled",r(c)[E][I])])},[typeof I=="number"?(D(),K(_e,{key:0},[E==="hours"?(D(),K(_e,{key:0},[mt(he(("0"+(p.amPmMode?I%12||12:I)).slice(-2))+he(w(I)),1)],64)):(D(),K(_e,{key:1},[mt(he(("0"+I).slice(-2)),1)],64))],64)):ne("v-if",!0)],2))),128))],2)],42,cd))),128)):ne("v-if",!0)],2))}});var fd=Ae(dd,[["__file","basic-time-spinner.vue"]]);const pd=re({__name:"panel-time-pick",props:nd,emits:["pick","select-range","set-picker-option"],setup(e,{emit:t}){const n=e,a=Ce("EP_PICKER_BASE"),{arrowControl:o,disabledHours:s,disabledMinutes:l,disabledSeconds:u,defaultValue:i}=a.props,{getAvailableHours:f,getAvailableMinutes:m,getAvailableSeconds:d}=rd(s,l,u),g=Te("time"),{t:h,lang:v}=pt(),c=j([0,2]),k=od(n),y=T(()=>Br(n.actualVisible)?`${g.namespace.value}-zoom-in-top`:""),w=T(()=>n.format.includes("ss")),N=T(()=>n.format.includes("A")?"A":n.format.includes("a")?"a":""),x=M=>{const p=se(M).locale(v.value),S=z(p);return p.isSame(S)},R=()=>{t("pick",k.value,!1)},P=(M=!1,p=!1)=>{p||t("pick",n.parsedValue,M)},_=M=>{if(!n.visible)return;const p=z(M).millisecond(0);t("pick",p,!0)},O=(M,p)=>{t("select-range",M,p),c.value=[M,p]},H=M=>{const p=[0,3].concat(w.value?[6]:[]),S=["hours","minutes"].concat(w.value?["seconds"]:[]),I=(p.indexOf(c.value[0])+M+p.length)%p.length;B.start_emitSelectRange(S[I])},V=M=>{const p=M.code,{left:S,right:E,up:I,down:G}=Oe;if([S,E].includes(p)){H(p===S?-1:1),M.preventDefault();return}if([I,G].includes(p)){const te=p===I?-1:1;B.start_scrollDown(te),M.preventDefault();return}},{timePickerOptions:B,onSetOption:J,getAvailableTime:U}=ad({getAvailableHours:f,getAvailableMinutes:m,getAvailableSeconds:d}),z=M=>U(M,n.datetimeRole||"",!0),L=M=>M?se(M,n.format).locale(v.value):null,F=M=>M?M.format(n.format):null,C=()=>se(i).locale(v.value);return t("set-picker-option",["isValidValue",x]),t("set-picker-option",["formatToString",F]),t("set-picker-option",["parseUserInput",L]),t("set-picker-option",["handleKeydownInput",V]),t("set-picker-option",["getRangeAvailableTime",z]),t("set-picker-option",["getDefaultValue",C]),(M,p)=>(D(),de(ia,{name:r(y)},{default:le(()=>[M.actualVisible||M.visible?(D(),K("div",{key:0,class:A(r(g).b("panel"))},[q("div",{class:A([r(g).be("panel","content"),{"has-seconds":r(w)}])},[ee(fd,{ref:"spinner",role:M.datetimeRole||"start","arrow-control":r(o),"show-seconds":r(w),"am-pm-mode":r(N),"spinner-date":M.parsedValue,"disabled-hours":r(s),"disabled-minutes":r(l),"disabled-seconds":r(u),onChange:_,onSetOption:r(J),onSelectRange:O},null,8,["role","arrow-control","show-seconds","am-pm-mode","spinner-date","disabled-hours","disabled-minutes","disabled-seconds","onSetOption"])],2),q("div",{class:A(r(g).be("panel","footer"))},[q("button",{type:"button",class:A([r(g).be("panel","btn"),"cancel"]),onClick:R},he(r(h)("el.datepicker.cancel")),3),q("button",{type:"button",class:A([r(g).be("panel","btn"),"confirm"]),onClick:p[0]||(p[0]=S=>P())},he(r(h)("el.datepicker.confirm")),3)],2)],2)):ne("v-if",!0)]),_:1},8,["name"]))}});var aa=Ae(pd,[["__file","panel-time-pick.vue"]]),wo={exports:{}};(function(e,t){(function(n,a){e.exports=a()})(Mt,function(){return function(n,a,o){var s=a.prototype,l=function(d){return d&&(d.indexOf?d:d.s)},u=function(d,g,h,v,c){var k=d.name?d:d.$locale(),y=l(k[g]),w=l(k[h]),N=y||w.map(function(R){return R.slice(0,v)});if(!c)return N;var x=k.weekStart;return N.map(function(R,P){return N[(P+(x||0))%7]})},i=function(){return o.Ls[o.locale()]},f=function(d,g){return d.formats[g]||function(h){return h.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(v,c,k){return c||k.slice(1)})}(d.formats[g.toUpperCase()])},m=function(){var d=this;return{months:function(g){return g?g.format("MMMM"):u(d,"months")},monthsShort:function(g){return g?g.format("MMM"):u(d,"monthsShort","months",3)},firstDayOfWeek:function(){return d.$locale().weekStart||0},weekdays:function(g){return g?g.format("dddd"):u(d,"weekdays")},weekdaysMin:function(g){return g?g.format("dd"):u(d,"weekdaysMin","weekdays",2)},weekdaysShort:function(g){return g?g.format("ddd"):u(d,"weekdaysShort","weekdays",3)},longDateFormat:function(g){return f(d.$locale(),g)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};s.localeData=function(){return m.bind(this)()},o.localeData=function(){var d=i();return{firstDayOfWeek:function(){return d.weekStart||0},weekdays:function(){return o.weekdays()},weekdaysShort:function(){return o.weekdaysShort()},weekdaysMin:function(){return o.weekdaysMin()},months:function(){return o.months()},monthsShort:function(){return o.monthsShort()},longDateFormat:function(g){return f(d,g)},meridiem:d.meridiem,ordinal:d.ordinal}},o.months=function(){return u(i(),"months")},o.monthsShort=function(){return u(i(),"monthsShort","months",3)},o.weekdays=function(d){return u(i(),"weekdays",null,null,d)},o.weekdaysShort=function(d){return u(i(),"weekdaysShort","weekdays",3,d)},o.weekdaysMin=function(d){return u(i(),"weekdaysMin","weekdays",2,d)}}})})(wo);var vd=wo.exports;const hd=Tt(vd);var ko={exports:{}};(function(e,t){(function(n,a){e.exports=a()})(Mt,function(){return function(n,a){var o=a.prototype,s=o.format;o.format=function(l){var u=this,i=this.$locale();if(!this.isValid())return s.bind(this)(l);var f=this.$utils(),m=(l||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,function(d){switch(d){case"Q":return Math.ceil((u.$M+1)/3);case"Do":return i.ordinal(u.$D);case"gggg":return u.weekYear();case"GGGG":return u.isoWeekYear();case"wo":return i.ordinal(u.week(),"W");case"w":case"ww":return f.s(u.week(),d==="w"?1:2,"0");case"W":case"WW":return f.s(u.isoWeek(),d==="W"?1:2,"0");case"k":case"kk":return f.s(String(u.$H===0?24:u.$H),d==="k"?1:2,"0");case"X":return Math.floor(u.$d.getTime()/1e3);case"x":return u.$d.getTime();case"z":return"["+u.offsetName()+"]";case"zzz":return"["+u.offsetName("long")+"]";default:return d}});return s.bind(this)(m)}}})})(ko);var md=ko.exports;const gd=Tt(md);var So={exports:{}};(function(e,t){(function(n,a){e.exports=a()})(Mt,function(){var n="week",a="year";return function(o,s,l){var u=s.prototype;u.week=function(i){if(i===void 0&&(i=null),i!==null)return this.add(7*(i-this.week()),"day");var f=this.$locale().yearStart||1;if(this.month()===11&&this.date()>25){var m=l(this).startOf(a).add(1,a).date(f),d=l(this).endOf(n);if(m.isBefore(d))return 1}var g=l(this).startOf(a).date(f).startOf(n).subtract(1,"millisecond"),h=this.diff(g,n,!0);return h<0?l(this).startOf("week").week():Math.ceil(h)},u.weeks=function(i){return i===void 0&&(i=null),this.week(i)}}})})(So);var bd=So.exports;const yd=Tt(bd);var _o={exports:{}};(function(e,t){(function(n,a){e.exports=a()})(Mt,function(){return function(n,a){a.prototype.weekYear=function(){var o=this.month(),s=this.week(),l=this.year();return s===1&&o===11?l+1:o===0&&s>=52?l-1:l}}})})(_o);var wd=_o.exports;const kd=Tt(wd);var Co={exports:{}};(function(e,t){(function(n,a){e.exports=a()})(Mt,function(){return function(n,a,o){a.prototype.dayOfYear=function(s){var l=Math.round((o(this).startOf("day")-o(this).startOf("year"))/864e5)+1;return s==null?l:this.add(s-l,"day")}}})})(Co);var Sd=Co.exports;const _d=Tt(Sd);var xo={exports:{}};(function(e,t){(function(n,a){e.exports=a()})(Mt,function(){return function(n,a){a.prototype.isSameOrAfter=function(o,s){return this.isSame(o,s)||this.isAfter(o,s)}}})})(xo);var Cd=xo.exports;const xd=Tt(Cd);var Mo={exports:{}};(function(e,t){(function(n,a){e.exports=a()})(Mt,function(){return function(n,a){a.prototype.isSameOrBefore=function(o,s){return this.isSame(o,s)||this.isBefore(o,s)}}})})(Mo);var Md=Mo.exports;const Td=Tt(Md),Oa=Symbol(),Dd=ye({...bo,type:{type:ae(String),default:"date"}}),Pd=["date","dates","year","month","week","range"],Ea=ye({disabledDate:{type:ae(Function)},date:{type:ae(Object),required:!0},minDate:{type:ae(Object)},maxDate:{type:ae(Object)},parsedValue:{type:ae([Object,Array])},rangeState:{type:ae(Object),default:()=>({endDate:null,selecting:!1})}}),To=ye({type:{type:ae(String),required:!0,values:Ul},dateFormat:String,timeFormat:String}),Do=ye({unlinkPanels:Boolean,parsedValue:{type:ae(Array)}}),Po=e=>({type:String,values:Pd,default:e}),Od=ye({...To,parsedValue:{type:ae([Object,Array])},visible:{type:Boolean},format:{type:String,default:""}}),Ed=ye({...Ea,cellClassName:{type:ae(Function)},showWeekNumber:Boolean,selectionMode:Po("date")}),$d=["changerange","pick","select"],ra=e=>{if(!Fe(e))return!1;const[t,n]=e;return se.isDayjs(t)&&se.isDayjs(n)&&t.isSameOrBefore(n)},Oo=(e,{lang:t,unit:n,unlinkPanels:a})=>{let o;if(Fe(e)){let[s,l]=e.map(u=>se(u).locale(t));return a||(l=s.add(1,n)),[s,l]}else e?o=se(e):o=se();return o=o.locale(t),[o,o.add(1,n)]},Ad=(e,t,{columnIndexOffset:n,startDate:a,nextEndDate:o,now:s,unit:l,relativeDateGetter:u,setCellMetadata:i,setRowMetadata:f})=>{for(let m=0;m["normal","today"].includes(e),Rd=(e,t)=>{const{lang:n}=pt(),a=j(),o=j(),s=j(),l=j(),u=j([[],[],[],[],[],[]]);let i=!1;const f=e.date.$locale().weekStart||7,m=e.date.locale("en").localeData().weekdaysShort().map(p=>p.toLowerCase()),d=T(()=>f>3?7-f:-f),g=T(()=>{const p=e.date.startOf("month");return p.subtract(p.day()||7,"day")}),h=T(()=>m.concat(m).slice(f,f+7)),v=T(()=>Jo(r(x)).some(p=>p.isCurrent)),c=T(()=>{const p=e.date.startOf("month"),S=p.day()||7,E=p.daysInMonth(),I=p.subtract(1,"month").daysInMonth();return{startOfMonthDay:S,dateCountOfMonth:E,dateCountOfLastMonth:I}}),k=T(()=>e.selectionMode==="dates"?Bt(e.parsedValue):[]),y=(p,{count:S,rowIndex:E,columnIndex:I})=>{const{startOfMonthDay:G,dateCountOfMonth:te,dateCountOfLastMonth:oe}=r(c),pe=r(d);if(E>=0&&E<=1){const ve=G+pe<0?7+G+pe:G+pe;if(I+E*7>=ve)return p.text=S,!0;p.text=oe-(ve-I%7)+1+E*7,p.type="prev-month"}else return S<=te?p.text=S:(p.text=S-te,p.type="next-month"),!0;return!1},w=(p,{columnIndex:S,rowIndex:E},I)=>{const{disabledDate:G,cellClassName:te}=e,oe=r(k),pe=y(p,{count:I,rowIndex:E,columnIndex:S}),ve=p.dayjs.toDate();return p.selected=oe.find(me=>me.valueOf()===p.dayjs.valueOf()),p.isSelected=!!p.selected,p.isCurrent=P(p),p.disabled=G==null?void 0:G(ve),p.customClass=te==null?void 0:te(ve),pe},N=p=>{if(e.selectionMode==="week"){const[S,E]=e.showWeekNumber?[1,7]:[0,6],I=M(p[S+1]);p[S].inRange=I,p[S].start=I,p[E].inRange=I,p[E].end=I}},x=T(()=>{const{minDate:p,maxDate:S,rangeState:E,showWeekNumber:I}=e,G=r(d),te=r(u),oe="day";let pe=1;if(I)for(let ve=0;ve<6;ve++)te[ve][0]||(te[ve][0]={type:"week",text:r(g).add(ve*7+1,oe).week()});return Ad({row:6,column:7},te,{startDate:p,columnIndexOffset:I?1:0,nextEndDate:E.endDate||S||E.selecting&&p||null,now:se().locale(r(n)).startOf(oe),unit:oe,relativeDateGetter:ve=>r(g).add(ve-G,oe),setCellMetadata:(...ve)=>{w(...ve,pe)&&(pe+=1)},setRowMetadata:N}),te});fe(()=>e.date,async()=>{var p;(p=r(a))!=null&&p.contains(document.activeElement)&&(await Ee(),await R())});const R=async()=>{var p;return(p=r(o))==null?void 0:p.focus()},P=p=>e.selectionMode==="date"&&oa(p.type)&&_(p,e.parsedValue),_=(p,S)=>S?se(S).locale(r(n)).isSame(e.date.date(Number(p.text)),"day"):!1,O=(p,S)=>{const E=p*7+(S-(e.showWeekNumber?1:0))-r(d);return r(g).add(E,"day")},H=p=>{var S;if(!e.rangeState.selecting)return;let E=p.target;if(E.tagName==="SPAN"&&(E=(S=E.parentNode)==null?void 0:S.parentNode),E.tagName==="DIV"&&(E=E.parentNode),E.tagName!=="TD")return;const I=E.parentNode.rowIndex-1,G=E.cellIndex;r(x)[I][G].disabled||(I!==r(s)||G!==r(l))&&(s.value=I,l.value=G,t("changerange",{selecting:!0,endDate:O(I,G)}))},V=p=>!r(v)&&(p==null?void 0:p.text)===1&&p.type==="normal"||p.isCurrent,B=p=>{i||r(v)||e.selectionMode!=="date"||C(p,!0)},J=p=>{p.target.closest("td")&&(i=!0)},U=p=>{p.target.closest("td")&&(i=!1)},z=p=>{!e.rangeState.selecting||!e.minDate?(t("pick",{minDate:p,maxDate:null}),t("select",!0)):(p>=e.minDate?t("pick",{minDate:e.minDate,maxDate:p}):t("pick",{minDate:p,maxDate:e.minDate}),t("select",!1))},L=p=>{const S=p.week(),E=`${p.year()}w${S}`;t("pick",{year:p.year(),week:S,value:E,date:p.startOf("week")})},F=(p,S)=>{const E=S?Bt(e.parsedValue).filter(I=>(I==null?void 0:I.valueOf())!==p.valueOf()):Bt(e.parsedValue).concat([p]);t("pick",E)},C=(p,S=!1)=>{const E=p.target.closest("td");if(!E)return;const I=E.parentNode.rowIndex-1,G=E.cellIndex,te=r(x)[I][G];if(te.disabled||te.type==="week")return;const oe=O(I,G);switch(e.selectionMode){case"range":{z(oe);break}case"date":{t("pick",oe,S);break}case"week":{L(oe);break}case"dates":{F(oe,!!te.selected);break}}},M=p=>{if(e.selectionMode!=="week")return!1;let S=e.date.startOf("day");if(p.type==="prev-month"&&(S=S.subtract(1,"month")),p.type==="next-month"&&(S=S.add(1,"month")),S=S.date(Number.parseInt(p.text,10)),e.parsedValue&&!Array.isArray(e.parsedValue)){const E=(e.parsedValue.day()-f+7)%7-1;return e.parsedValue.subtract(E,"day").isSame(S,"day")}return!1};return{WEEKS:h,rows:x,tbodyRef:a,currentCellRef:o,focus:R,isCurrent:P,isWeekActive:M,isSelectedCell:V,handlePickDate:C,handleMouseUp:U,handleMouseDown:J,handleMouseMove:H,handleFocus:B}},Id=(e,{isCurrent:t,isWeekActive:n})=>{const a=Te("date-table"),{t:o}=pt(),s=T(()=>[a.b(),{"is-week-mode":e.selectionMode==="week"}]),l=T(()=>o("el.datepicker.dateTablePrompt")),u=T(()=>o("el.datepicker.week"));return{tableKls:s,tableLabel:l,weekLabel:u,getCellClasses:m=>{const d=[];return oa(m.type)&&!m.disabled?(d.push("available"),m.type==="today"&&d.push("today")):d.push(m.type),t(m)&&d.push("current"),m.inRange&&(oa(m.type)||e.selectionMode==="week")&&(d.push("in-range"),m.start&&d.push("start-date"),m.end&&d.push("end-date")),m.disabled&&d.push("disabled"),m.selected&&d.push("selected"),m.customClass&&d.push(m.customClass),d.join(" ")},getRowKls:m=>[a.e("row"),{current:n(m)}],t:o}},Fd=ye({cell:{type:ae(Object)}});var Nd=re({name:"ElDatePickerCell",props:Fd,setup(e){const t=Te("date-table-cell"),{slots:n}=Ce(Oa);return()=>{const{cell:a}=e;return $e(n,"default",{...a},()=>[ee("div",{class:t.b()},[ee("span",{class:t.e("text")},[a==null?void 0:a.text])])])}}});const Ld=["aria-label"],Vd={key:0,scope:"col"},Bd=["aria-label"],Hd=["aria-current","aria-selected","tabindex"],zd=re({__name:"basic-date-table",props:Ed,emits:$d,setup(e,{expose:t,emit:n}){const a=e,{WEEKS:o,rows:s,tbodyRef:l,currentCellRef:u,focus:i,isCurrent:f,isWeekActive:m,isSelectedCell:d,handlePickDate:g,handleMouseUp:h,handleMouseDown:v,handleMouseMove:c,handleFocus:k}=Rd(a,n),{tableLabel:y,tableKls:w,weekLabel:N,getCellClasses:x,getRowKls:R,t:P}=Id(a,{isCurrent:f,isWeekActive:m});return t({focus:i}),(_,O)=>(D(),K("table",{"aria-label":r(y),class:A(r(w)),cellspacing:"0",cellpadding:"0",role:"grid",onClick:O[1]||(O[1]=(...H)=>r(g)&&r(g)(...H)),onMousemove:O[2]||(O[2]=(...H)=>r(c)&&r(c)(...H)),onMousedown:O[3]||(O[3]=et((...H)=>r(v)&&r(v)(...H),["prevent"])),onMouseup:O[4]||(O[4]=(...H)=>r(h)&&r(h)(...H))},[q("tbody",{ref_key:"tbodyRef",ref:l},[q("tr",null,[_.showWeekNumber?(D(),K("th",Vd,he(r(N)),1)):ne("v-if",!0),(D(!0),K(_e,null,We(r(o),(H,V)=>(D(),K("th",{key:V,"aria-label":r(P)("el.datepicker.weeksFull."+H),scope:"col"},he(r(P)("el.datepicker.weeks."+H)),9,Bd))),128))]),(D(!0),K(_e,null,We(r(s),(H,V)=>(D(),K("tr",{key:V,class:A(r(R)(H[1]))},[(D(!0),K(_e,null,We(H,(B,J)=>(D(),K("td",{key:`${V}.${J}`,ref_for:!0,ref:U=>r(d)(B)&&(u.value=U),class:A(r(x)(B)),"aria-current":B.isCurrent?"date":void 0,"aria-selected":B.isCurrent,tabindex:r(d)(B)?0:-1,onFocus:O[0]||(O[0]=(...U)=>r(k)&&r(k)(...U))},[ee(r(Nd),{cell:B},null,8,["cell"])],42,Hd))),128))],2))),128))],512)],42,Ld))}});var sa=Ae(zd,[["__file","basic-date-table.vue"]]);const Yd=ye({...Ea,selectionMode:Po("month")}),jd=["aria-label"],Wd=["aria-selected","aria-label","tabindex","onKeydown"],Kd={class:"cell"},Ud=re({__name:"basic-month-table",props:Yd,emits:["changerange","pick","select"],setup(e,{expose:t,emit:n}){const a=e,o=(x,R,P)=>{const _=se().locale(P).startOf("month").month(R).year(x),O=_.daysInMonth();return vo(O).map(H=>_.add(H,"day").toDate())},s=Te("month-table"),{t:l,lang:u}=pt(),i=j(),f=j(),m=j(a.date.locale("en").localeData().monthsShort().map(x=>x.toLowerCase())),d=j([[],[],[]]),g=j(),h=j(),v=T(()=>{var x,R;const P=d.value,_=se().locale(u.value).startOf("month");for(let O=0;O<3;O++){const H=P[O];for(let V=0;V<4;V++){const B=H[V]||(H[V]={row:O,column:V,type:"normal",inRange:!1,start:!1,end:!1,text:-1,disabled:!1});B.type="normal";const J=O*4+V,U=a.date.startOf("year").month(J),z=a.rangeState.endDate||a.maxDate||a.rangeState.selecting&&a.minDate||null;B.inRange=!!(a.minDate&&U.isSameOrAfter(a.minDate,"month")&&z&&U.isSameOrBefore(z,"month"))||!!(a.minDate&&U.isSameOrBefore(a.minDate,"month")&&z&&U.isSameOrAfter(z,"month")),(x=a.minDate)!=null&&x.isSameOrAfter(z)?(B.start=!!(z&&U.isSame(z,"month")),B.end=a.minDate&&U.isSame(a.minDate,"month")):(B.start=!!(a.minDate&&U.isSame(a.minDate,"month")),B.end=!!(z&&U.isSame(z,"month"))),_.isSame(U)&&(B.type="today"),B.text=J,B.disabled=((R=a.disabledDate)==null?void 0:R.call(a,U.toDate()))||!1}}return P}),c=()=>{var x;(x=f.value)==null||x.focus()},k=x=>{const R={},P=a.date.year(),_=new Date,O=x.text;return R.disabled=a.disabledDate?o(P,O,u.value).every(a.disabledDate):!1,R.current=Bt(a.parsedValue).findIndex(H=>se.isDayjs(H)&&H.year()===P&&H.month()===O)>=0,R.today=_.getFullYear()===P&&_.getMonth()===O,x.inRange&&(R["in-range"]=!0,x.start&&(R["start-date"]=!0),x.end&&(R["end-date"]=!0)),R},y=x=>{const R=a.date.year(),P=x.text;return Bt(a.date).findIndex(_=>_.year()===R&&_.month()===P)>=0},w=x=>{var R;if(!a.rangeState.selecting)return;let P=x.target;if(P.tagName==="SPAN"&&(P=(R=P.parentNode)==null?void 0:R.parentNode),P.tagName==="DIV"&&(P=P.parentNode),P.tagName!=="TD")return;const _=P.parentNode.rowIndex,O=P.cellIndex;v.value[_][O].disabled||(_!==g.value||O!==h.value)&&(g.value=_,h.value=O,n("changerange",{selecting:!0,endDate:a.date.startOf("year").month(_*4+O)}))},N=x=>{var R;const P=(R=x.target)==null?void 0:R.closest("td");if((P==null?void 0:P.tagName)!=="TD"||Yr(P,"disabled"))return;const _=P.cellIndex,H=P.parentNode.rowIndex*4+_,V=a.date.startOf("year").month(H);a.selectionMode==="range"?a.rangeState.selecting?(a.minDate&&V>=a.minDate?n("pick",{minDate:a.minDate,maxDate:V}):n("pick",{minDate:V,maxDate:a.minDate}),n("select",!1)):(n("pick",{minDate:V,maxDate:null}),n("select",!0)):n("pick",H)};return fe(()=>a.date,async()=>{var x,R;(x=i.value)!=null&&x.contains(document.activeElement)&&(await Ee(),(R=f.value)==null||R.focus())}),t({focus:c}),(x,R)=>(D(),K("table",{role:"grid","aria-label":r(l)("el.datepicker.monthTablePrompt"),class:A(r(s).b()),onClick:N,onMousemove:w},[q("tbody",{ref_key:"tbodyRef",ref:i},[(D(!0),K(_e,null,We(r(v),(P,_)=>(D(),K("tr",{key:_},[(D(!0),K(_e,null,We(P,(O,H)=>(D(),K("td",{key:H,ref_for:!0,ref:V=>y(O)&&(f.value=V),class:A(k(O)),"aria-selected":`${y(O)}`,"aria-label":r(l)(`el.datepicker.month${+O.text+1}`),tabindex:y(O)?0:-1,onKeydown:[Gt(et(N,["prevent","stop"]),["space"]),Gt(et(N,["prevent","stop"]),["enter"])]},[q("div",null,[q("span",Kd,he(r(l)("el.datepicker.months."+m.value[O.text])),1)])],42,Wd))),128))]))),128))],512)],42,jd))}});var la=Ae(Ud,[["__file","basic-month-table.vue"]]);const{date:qd,disabledDate:Gd,parsedValue:Zd}=Ea,Jd=ye({date:qd,disabledDate:Gd,parsedValue:Zd}),Xd=["aria-label"],Qd=["aria-selected","tabindex","onKeydown"],ef={class:"cell"},tf={key:1},nf=re({__name:"basic-year-table",props:Jd,emits:["pick"],setup(e,{expose:t,emit:n}){const a=e,o=(c,k)=>{const y=se(String(c)).locale(k).startOf("year"),N=y.endOf("year").dayOfYear();return vo(N).map(x=>y.add(x,"day").toDate())},s=Te("year-table"),{t:l,lang:u}=pt(),i=j(),f=j(),m=T(()=>Math.floor(a.date.year()/10)*10),d=()=>{var c;(c=f.value)==null||c.focus()},g=c=>{const k={},y=se().locale(u.value);return k.disabled=a.disabledDate?o(c,u.value).every(a.disabledDate):!1,k.current=Bt(a.parsedValue).findIndex(w=>w.year()===c)>=0,k.today=y.year()===c,k},h=c=>c===m.value&&a.date.year()m.value+9||Bt(a.date).findIndex(k=>k.year()===c)>=0,v=c=>{const y=c.target.closest("td");if(y&&y.textContent){if(Yr(y,"disabled"))return;const w=y.textContent||y.innerText;n("pick",Number(w))}};return fe(()=>a.date,async()=>{var c,k;(c=i.value)!=null&&c.contains(document.activeElement)&&(await Ee(),(k=f.value)==null||k.focus())}),t({focus:d}),(c,k)=>(D(),K("table",{role:"grid","aria-label":r(l)("el.datepicker.yearTablePrompt"),class:A(r(s).b()),onClick:v},[q("tbody",{ref_key:"tbodyRef",ref:i},[(D(),K(_e,null,We(3,(y,w)=>q("tr",{key:w},[(D(),K(_e,null,We(4,(N,x)=>(D(),K(_e,{key:w+"_"+x},[w*4+x<10?(D(),K("td",{key:0,ref_for:!0,ref:R=>h(r(m)+w*4+x)&&(f.value=R),class:A(["available",g(r(m)+w*4+x)]),"aria-selected":`${h(r(m)+w*4+x)}`,tabindex:h(r(m)+w*4+x)?0:-1,onKeydown:[Gt(et(v,["prevent","stop"]),["space"]),Gt(et(v,["prevent","stop"]),["enter"])]},[q("span",ef,he(r(m)+w*4+x),1)],42,Qd)):(D(),K("td",tf))],64))),64))])),64))],512)],10,Xd))}});var af=Ae(nf,[["__file","basic-year-table.vue"]]);const rf=["onClick"],of=["aria-label"],sf=["aria-label"],lf=["aria-label"],uf=["aria-label"],cf=re({__name:"panel-date-pick",props:Od,emits:["pick","set-picker-option","panel-change"],setup(e,{emit:t}){const n=e,a=($,X,Y)=>!0,o=Te("picker-panel"),s=Te("date-picker"),l=En(),u=$n(),{t:i,lang:f}=pt(),m=Ce("EP_PICKER_BASE"),d=Ce(Nn),{shortcuts:g,disabledDate:h,cellClassName:v,defaultTime:c}=m.props,k=Ve(m.props,"defaultValue"),y=j(),w=j(se().locale(f.value)),N=j(!1);let x=!1;const R=T(()=>se(c).locale(f.value)),P=T(()=>w.value.month()),_=T(()=>w.value.year()),O=j([]),H=j(null),V=j(null),B=$=>O.value.length>0?a($,O.value,n.format||"HH:mm:ss"):!0,J=$=>c&&!Ie.value&&!N.value&&!x?R.value.year($.year()).month($.month()).date($.date()):pe.value?$.millisecond(0):$.startOf("day"),U=($,...X)=>{if(!$)t("pick",$,...X);else if(Fe($)){const Y=$.map(J);t("pick",Y,...X)}else t("pick",J($),...X);H.value=null,V.value=null,N.value=!1,x=!1},z=async($,X)=>{if(S.value==="date"){$=$;let Y=n.parsedValue?n.parsedValue.year($.year()).month($.month()).date($.date()):$;B(Y)||(Y=O.value[0][0].year($.year()).month($.month()).date($.date())),w.value=Y,U(Y,pe.value||X),n.type==="datetime"&&(await Ee(),we())}else S.value==="week"?U($.date):S.value==="dates"&&U($,!0)},L=$=>{const X=$?"add":"subtract";w.value=w.value[X](1,"month"),Dt("month")},F=$=>{const X=w.value,Y=$?"add":"subtract";w.value=C.value==="year"?X[Y](10,"year"):X[Y](1,"year"),Dt("year")},C=j("date"),M=T(()=>{const $=i("el.datepicker.year");if(C.value==="year"){const X=Math.floor(_.value/10)*10;return $?`${X} ${$} - ${X+9} ${$}`:`${X} - ${X+9}`}return`${_.value} ${$}`}),p=$=>{const X=gt($.value)?$.value():$.value;if(X){x=!0,U(se(X).locale(f.value));return}$.onClick&&$.onClick({attrs:l,slots:u,emit:t})},S=T(()=>{const{type:$}=n;return["week","month","year","dates"].includes($)?$:"date"}),E=T(()=>S.value==="date"?C.value:S.value),I=T(()=>!!g.length),G=async $=>{w.value=w.value.startOf("month").month($),S.value==="month"?U(w.value,!1):(C.value="date",["month","year","date","week"].includes(S.value)&&(U(w.value,!0),await Ee(),we())),Dt("month")},te=async $=>{S.value==="year"?(w.value=w.value.startOf("year").year($),U(w.value,!1)):(w.value=w.value.year($),C.value="month",["month","year","date","week"].includes(S.value)&&(U(w.value,!0),await Ee(),we())),Dt("year")},oe=async $=>{C.value=$,await Ee(),we()},pe=T(()=>n.type==="datetime"||n.type==="datetimerange"),ve=T(()=>pe.value||S.value==="dates"),me=T(()=>h?n.parsedValue?Fe(n.parsedValue)?h(n.parsedValue[0].toDate()):h(n.parsedValue.toDate()):!0:!1),xe=()=>{if(S.value==="dates")U(n.parsedValue);else{let $=n.parsedValue;if(!$){const X=se(c).locale(f.value),Y=ue();$=X.year(Y.year()).month(Y.month()).date(Y.date())}w.value=$,U($)}},Se=T(()=>h?h(se().locale(f.value).toDate()):!1),be=()=>{const X=se().locale(f.value).toDate();N.value=!0,(!h||!h(X))&&B(X)&&(w.value=se().locale(f.value),U(w.value))},ge=T(()=>n.timeFormat||mo(n.format)),De=T(()=>n.dateFormat||ho(n.format)),Ie=T(()=>{if(V.value)return V.value;if(!(!n.parsedValue&&!k.value))return(n.parsedValue||w.value).format(ge.value)}),Ne=T(()=>{if(H.value)return H.value;if(!(!n.parsedValue&&!k.value))return(n.parsedValue||w.value).format(De.value)}),Re=j(!1),Ge=()=>{Re.value=!0},lt=()=>{Re.value=!1},Le=$=>({hour:$.hour(),minute:$.minute(),second:$.second(),year:$.year(),month:$.month(),date:$.date()}),ie=($,X,Y)=>{const{hour:Q,minute:b,second:Z}=Le($),ce=n.parsedValue?n.parsedValue.hour(Q).minute(b).second(Z):$;w.value=ce,U(w.value,!0),Y||(Re.value=X)},Ye=$=>{const X=se($,ge.value).locale(f.value);if(X.isValid()&&B(X)){const{year:Y,month:Q,date:b}=Le(w.value);w.value=X.year(Y).month(Q).date(b),V.value=null,Re.value=!1,U(w.value,!0)}},je=$=>{const X=se($,De.value).locale(f.value);if(X.isValid()){if(h&&h(X.toDate()))return;const{hour:Y,minute:Q,second:b}=Le(w.value);w.value=X.hour(Y).minute(Q).second(b),H.value=null,U(w.value,!0)}},Ze=$=>se.isDayjs($)&&$.isValid()&&(h?!h($.toDate()):!0),He=$=>S.value==="dates"?$.map(X=>X.format(n.format)):$.format(n.format),W=$=>se($,n.format).locale(f.value),ue=()=>{const $=se(k.value).locale(f.value);if(!k.value){const X=R.value;return se().hour(X.hour()).minute(X.minute()).second(X.second()).locale(f.value)}return $},we=async()=>{var $;["week","month","year","date"].includes(S.value)&&(($=y.value)==null||$.focus(),S.value==="week"&&vt(Oe.down))},Je=$=>{const{code:X}=$;[Oe.up,Oe.down,Oe.left,Oe.right,Oe.home,Oe.end,Oe.pageUp,Oe.pageDown].includes(X)&&(vt(X),$.stopPropagation(),$.preventDefault()),[Oe.enter,Oe.space,Oe.numpadEnter].includes(X)&&H.value===null&&V.value===null&&($.preventDefault(),U(w.value,!1))},vt=$=>{var X;const{up:Y,down:Q,left:b,right:Z,home:ce,end:Pe,pageUp:it,pageDown:$o}=Oe,Ao={year:{[Y]:-4,[Q]:4,[b]:-1,[Z]:1,offset:(Me,ht)=>Me.setFullYear(Me.getFullYear()+ht)},month:{[Y]:-4,[Q]:4,[b]:-1,[Z]:1,offset:(Me,ht)=>Me.setMonth(Me.getMonth()+ht)},week:{[Y]:-1,[Q]:1,[b]:-1,[Z]:1,offset:(Me,ht)=>Me.setDate(Me.getDate()+ht*7)},date:{[Y]:-7,[Q]:7,[b]:-1,[Z]:1,[ce]:Me=>-Me.getDay(),[Pe]:Me=>-Me.getDay()+6,[it]:Me=>-new Date(Me.getFullYear(),Me.getMonth(),0).getDate(),[$o]:Me=>new Date(Me.getFullYear(),Me.getMonth()+1,0).getDate(),offset:(Me,ht)=>Me.setDate(Me.getDate()+ht)}},tn=w.value.toDate();for(;Math.abs(w.value.diff(tn,"year",!0))<1;){const Me=Ao[E.value];if(!Me)return;if(Me.offset(tn,gt(Me[$])?Me[$](tn):(X=Me[$])!=null?X:0),h&&h(tn))break;const ht=se(tn).locale(f.value);w.value=ht,t("pick",ht,!0);break}},Dt=$=>{t("panel-change",w.value.toDate(),$,C.value)};return fe(()=>S.value,$=>{if(["month","year"].includes($)){C.value=$;return}C.value="date"},{immediate:!0}),fe(()=>C.value,()=>{d==null||d.updatePopper()}),fe(()=>k.value,$=>{$&&(w.value=ue())},{immediate:!0}),fe(()=>n.parsedValue,$=>{if($){if(S.value==="dates"||Array.isArray($))return;w.value=$}else w.value=ue()},{immediate:!0}),t("set-picker-option",["isValidValue",Ze]),t("set-picker-option",["formatToString",He]),t("set-picker-option",["parseUserInput",W]),t("set-picker-option",["handleFocusPicker",we]),($,X)=>(D(),K("div",{class:A([r(o).b(),r(s).b(),{"has-sidebar":$.$slots.sidebar||r(I),"has-time":r(pe)}])},[q("div",{class:A(r(o).e("body-wrapper"))},[$e($.$slots,"sidebar",{class:A(r(o).e("sidebar"))}),r(I)?(D(),K("div",{key:0,class:A(r(o).e("sidebar"))},[(D(!0),K(_e,null,We(r(g),(Y,Q)=>(D(),K("button",{key:Q,type:"button",class:A(r(o).e("shortcut")),onClick:b=>p(Y)},he(Y.text),11,rf))),128))],2)):ne("v-if",!0),q("div",{class:A(r(o).e("body"))},[r(pe)?(D(),K("div",{key:0,class:A(r(s).e("time-header"))},[q("span",{class:A(r(s).e("editor-wrap"))},[ee(r(Ft),{placeholder:r(i)("el.datepicker.selectDate"),"model-value":r(Ne),size:"small","validate-event":!1,onInput:X[0]||(X[0]=Y=>H.value=Y),onChange:je},null,8,["placeholder","model-value"])],2),ze((D(),K("span",{class:A(r(s).e("editor-wrap"))},[ee(r(Ft),{placeholder:r(i)("el.datepicker.selectTime"),"model-value":r(Ie),size:"small","validate-event":!1,onFocus:Ge,onInput:X[1]||(X[1]=Y=>V.value=Y),onChange:Ye},null,8,["placeholder","model-value"]),ee(r(aa),{visible:Re.value,format:r(ge),"parsed-value":w.value,onPick:ie},null,8,["visible","format","parsed-value"])],2)),[[r(na),lt]])],2)):ne("v-if",!0),ze(q("div",{class:A([r(s).e("header"),(C.value==="year"||C.value==="month")&&r(s).e("header--bordered")])},[q("span",{class:A(r(s).e("prev-btn"))},[q("button",{type:"button","aria-label":r(i)("el.datepicker.prevYear"),class:A(["d-arrow-left",r(o).e("icon-btn")]),onClick:X[2]||(X[2]=Y=>F(!1))},[ee(r(ke),null,{default:le(()=>[ee(r(dn))]),_:1})],10,of),ze(q("button",{type:"button","aria-label":r(i)("el.datepicker.prevMonth"),class:A([r(o).e("icon-btn"),"arrow-left"]),onClick:X[3]||(X[3]=Y=>L(!1))},[ee(r(ke),null,{default:le(()=>[ee(r(Xn))]),_:1})],10,sf),[[_t,C.value==="date"]])],2),q("span",{role:"button",class:A(r(s).e("header-label")),"aria-live":"polite",tabindex:"0",onKeydown:X[4]||(X[4]=Gt(Y=>oe("year"),["enter"])),onClick:X[5]||(X[5]=Y=>oe("year"))},he(r(M)),35),ze(q("span",{role:"button","aria-live":"polite",tabindex:"0",class:A([r(s).e("header-label"),{active:C.value==="month"}]),onKeydown:X[6]||(X[6]=Gt(Y=>oe("month"),["enter"])),onClick:X[7]||(X[7]=Y=>oe("month"))},he(r(i)(`el.datepicker.month${r(P)+1}`)),35),[[_t,C.value==="date"]]),q("span",{class:A(r(s).e("next-btn"))},[ze(q("button",{type:"button","aria-label":r(i)("el.datepicker.nextMonth"),class:A([r(o).e("icon-btn"),"arrow-right"]),onClick:X[8]||(X[8]=Y=>L(!0))},[ee(r(ke),null,{default:le(()=>[ee(r(Cn))]),_:1})],10,lf),[[_t,C.value==="date"]]),q("button",{type:"button","aria-label":r(i)("el.datepicker.nextYear"),class:A([r(o).e("icon-btn"),"d-arrow-right"]),onClick:X[9]||(X[9]=Y=>F(!0))},[ee(r(ke),null,{default:le(()=>[ee(r(fn))]),_:1})],10,uf)],2)],2),[[_t,C.value!=="time"]]),q("div",{class:A(r(o).e("content")),onKeydown:Je},[C.value==="date"?(D(),de(sa,{key:0,ref_key:"currentViewRef",ref:y,"selection-mode":r(S),date:w.value,"parsed-value":$.parsedValue,"disabled-date":r(h),"cell-class-name":r(v),onPick:z},null,8,["selection-mode","date","parsed-value","disabled-date","cell-class-name"])):ne("v-if",!0),C.value==="year"?(D(),de(af,{key:1,ref_key:"currentViewRef",ref:y,date:w.value,"disabled-date":r(h),"parsed-value":$.parsedValue,onPick:te},null,8,["date","disabled-date","parsed-value"])):ne("v-if",!0),C.value==="month"?(D(),de(la,{key:2,ref_key:"currentViewRef",ref:y,date:w.value,"parsed-value":$.parsedValue,"disabled-date":r(h),onPick:G},null,8,["date","parsed-value","disabled-date"])):ne("v-if",!0)],34)],2)],2),ze(q("div",{class:A(r(o).e("footer"))},[ze(ee(r(On),{text:"",size:"small",class:A(r(o).e("link-btn")),disabled:r(Se),onClick:be},{default:le(()=>[mt(he(r(i)("el.datepicker.now")),1)]),_:1},8,["class","disabled"]),[[_t,r(S)!=="dates"]]),ee(r(On),{plain:"",size:"small",class:A(r(o).e("link-btn")),disabled:r(me),onClick:xe},{default:le(()=>[mt(he(r(i)("el.datepicker.confirm")),1)]),_:1},8,["class","disabled"])],2),[[_t,r(ve)&&C.value==="date"]])],2))}});var df=Ae(cf,[["__file","panel-date-pick.vue"]]);const ff=ye({...To,...Do}),pf=e=>{const{emit:t}=ft(),n=En(),a=$n();return s=>{const l=gt(s.value)?s.value():s.value;if(l){t("pick",[se(l[0]).locale(e.value),se(l[1]).locale(e.value)]);return}s.onClick&&s.onClick({attrs:n,slots:a,emit:t})}},Eo=(e,{defaultValue:t,leftDate:n,rightDate:a,unit:o,onParsedValueChanged:s})=>{const{emit:l}=ft(),{pickerNs:u}=Ce(Oa),i=Te("date-range-picker"),{t:f,lang:m}=pt(),d=pf(m),g=j(),h=j(),v=j({endDate:null,selecting:!1}),c=N=>{v.value=N},k=(N=!1)=>{const x=r(g),R=r(h);ra([x,R])&&l("pick",[x,R],N)},y=N=>{v.value.selecting=N,N||(v.value.endDate=null)},w=()=>{const[N,x]=Oo(r(t),{lang:r(m),unit:o,unlinkPanels:e.unlinkPanels});g.value=void 0,h.value=void 0,n.value=N,a.value=x};return fe(t,N=>{N&&w()},{immediate:!0}),fe(()=>e.parsedValue,N=>{if(Fe(N)&&N.length===2){const[x,R]=N;g.value=x,n.value=x,h.value=R,s(r(g),r(h))}else w()},{immediate:!0}),{minDate:g,maxDate:h,rangeState:v,lang:m,ppNs:u,drpNs:i,handleChangeRange:c,handleRangeConfirm:k,handleShortcutClick:d,onSelect:y,t:f}},vf=["onClick"],hf=["aria-label"],mf=["aria-label"],gf=["disabled","aria-label"],bf=["disabled","aria-label"],yf=["disabled","aria-label"],wf=["disabled","aria-label"],kf=["aria-label"],Sf=["aria-label"],kn="month",_f=re({__name:"panel-date-range",props:ff,emits:["pick","set-picker-option","calendar-change","panel-change"],setup(e,{emit:t}){const n=e,a=Ce("EP_PICKER_BASE"),{disabledDate:o,cellClassName:s,format:l,defaultTime:u,clearable:i}=a.props,f=Ve(a.props,"shortcuts"),m=Ve(a.props,"defaultValue"),{lang:d}=pt(),g=j(se().locale(d.value)),h=j(se().locale(d.value).add(1,kn)),{minDate:v,maxDate:c,rangeState:k,ppNs:y,drpNs:w,handleChangeRange:N,handleRangeConfirm:x,handleShortcutClick:R,onSelect:P,t:_}=Eo(n,{defaultValue:m,leftDate:g,rightDate:h,unit:kn,onParsedValueChanged:X}),O=j({min:null,max:null}),H=j({min:null,max:null}),V=T(()=>`${g.value.year()} ${_("el.datepicker.year")} ${_(`el.datepicker.month${g.value.month()+1}`)}`),B=T(()=>`${h.value.year()} ${_("el.datepicker.year")} ${_(`el.datepicker.month${h.value.month()+1}`)}`),J=T(()=>g.value.year()),U=T(()=>g.value.month()),z=T(()=>h.value.year()),L=T(()=>h.value.month()),F=T(()=>!!f.value.length),C=T(()=>O.value.min!==null?O.value.min:v.value?v.value.format(I.value):""),M=T(()=>O.value.max!==null?O.value.max:c.value||v.value?(c.value||v.value).format(I.value):""),p=T(()=>H.value.min!==null?H.value.min:v.value?v.value.format(E.value):""),S=T(()=>H.value.max!==null?H.value.max:c.value||v.value?(c.value||v.value).format(E.value):""),E=T(()=>n.timeFormat||mo(l)),I=T(()=>n.dateFormat||ho(l)),G=Y=>ra(Y)&&(o?!o(Y[0].toDate())&&!o(Y[1].toDate()):!0),te=()=>{g.value=g.value.subtract(1,"year"),n.unlinkPanels||(h.value=g.value.add(1,"month")),ge("year")},oe=()=>{g.value=g.value.subtract(1,"month"),n.unlinkPanels||(h.value=g.value.add(1,"month")),ge("month")},pe=()=>{n.unlinkPanels?h.value=h.value.add(1,"year"):(g.value=g.value.add(1,"year"),h.value=g.value.add(1,"month")),ge("year")},ve=()=>{n.unlinkPanels?h.value=h.value.add(1,"month"):(g.value=g.value.add(1,"month"),h.value=g.value.add(1,"month")),ge("month")},me=()=>{g.value=g.value.add(1,"year"),ge("year")},xe=()=>{g.value=g.value.add(1,"month"),ge("month")},Se=()=>{h.value=h.value.subtract(1,"year"),ge("year")},be=()=>{h.value=h.value.subtract(1,"month"),ge("month")},ge=Y=>{t("panel-change",[g.value.toDate(),h.value.toDate()],Y)},De=T(()=>{const Y=(U.value+1)%12,Q=U.value+1>=12?1:0;return n.unlinkPanels&&new Date(J.value+Q,Y)n.unlinkPanels&&z.value*12+L.value-(J.value*12+U.value+1)>=12),Ne=T(()=>!(v.value&&c.value&&!k.value.selecting&&ra([v.value,c.value]))),Re=T(()=>n.type==="datetime"||n.type==="datetimerange"),Ge=(Y,Q)=>{if(Y)return u?se(u[Q]||u).locale(d.value).year(Y.year()).month(Y.month()).date(Y.date()):Y},lt=(Y,Q=!0)=>{const b=Y.minDate,Z=Y.maxDate,ce=Ge(b,0),Pe=Ge(Z,1);c.value===Pe&&v.value===ce||(t("calendar-change",[b.toDate(),Z&&Z.toDate()]),c.value=Pe,v.value=ce,!(!Q||Re.value)&&x())},Le=j(!1),ie=j(!1),Ye=()=>{Le.value=!1},je=()=>{ie.value=!1},Ze=(Y,Q)=>{O.value[Q]=Y;const b=se(Y,I.value).locale(d.value);if(b.isValid()){if(o&&o(b.toDate()))return;Q==="min"?(g.value=b,v.value=(v.value||g.value).year(b.year()).month(b.month()).date(b.date()),!n.unlinkPanels&&(!c.value||c.value.isBefore(v.value))&&(h.value=b.add(1,"month"),c.value=v.value.add(1,"month"))):(h.value=b,c.value=(c.value||h.value).year(b.year()).month(b.month()).date(b.date()),!n.unlinkPanels&&(!v.value||v.value.isAfter(c.value))&&(g.value=b.subtract(1,"month"),v.value=c.value.subtract(1,"month")))}},He=(Y,Q)=>{O.value[Q]=null},W=(Y,Q)=>{H.value[Q]=Y;const b=se(Y,E.value).locale(d.value);b.isValid()&&(Q==="min"?(Le.value=!0,v.value=(v.value||g.value).hour(b.hour()).minute(b.minute()).second(b.second()),(!c.value||c.value.isBefore(v.value))&&(c.value=v.value)):(ie.value=!0,c.value=(c.value||h.value).hour(b.hour()).minute(b.minute()).second(b.second()),h.value=c.value,c.value&&c.value.isBefore(v.value)&&(v.value=c.value)))},ue=(Y,Q)=>{H.value[Q]=null,Q==="min"?(g.value=v.value,Le.value=!1):(h.value=c.value,ie.value=!1)},we=(Y,Q,b)=>{H.value.min||(Y&&(g.value=Y,v.value=(v.value||g.value).hour(Y.hour()).minute(Y.minute()).second(Y.second())),b||(Le.value=Q),(!c.value||c.value.isBefore(v.value))&&(c.value=v.value,h.value=Y))},Je=(Y,Q,b)=>{H.value.max||(Y&&(h.value=Y,c.value=(c.value||h.value).hour(Y.hour()).minute(Y.minute()).second(Y.second())),b||(ie.value=Q),c.value&&c.value.isBefore(v.value)&&(v.value=c.value))},vt=()=>{g.value=Oo(r(m),{lang:r(d),unit:"month",unlinkPanels:n.unlinkPanels})[0],h.value=g.value.add(1,"month"),t("pick",null)},Dt=Y=>Fe(Y)?Y.map(Q=>Q.format(l)):Y.format(l),$=Y=>Fe(Y)?Y.map(Q=>se(Q,l).locale(d.value)):se(Y,l).locale(d.value);function X(Y,Q){if(n.unlinkPanels&&Q){const b=(Y==null?void 0:Y.year())||0,Z=(Y==null?void 0:Y.month())||0,ce=Q.year(),Pe=Q.month();h.value=b===ce&&Z===Pe?Q.add(1,kn):Q}else h.value=g.value.add(1,kn),Q&&(h.value=h.value.hour(Q.hour()).minute(Q.minute()).second(Q.second()))}return t("set-picker-option",["isValidValue",G]),t("set-picker-option",["parseUserInput",$]),t("set-picker-option",["formatToString",Dt]),t("set-picker-option",["handleClear",vt]),(Y,Q)=>(D(),K("div",{class:A([r(y).b(),r(w).b(),{"has-sidebar":Y.$slots.sidebar||r(F),"has-time":r(Re)}])},[q("div",{class:A(r(y).e("body-wrapper"))},[$e(Y.$slots,"sidebar",{class:A(r(y).e("sidebar"))}),r(F)?(D(),K("div",{key:0,class:A(r(y).e("sidebar"))},[(D(!0),K(_e,null,We(r(f),(b,Z)=>(D(),K("button",{key:Z,type:"button",class:A(r(y).e("shortcut")),onClick:ce=>r(R)(b)},he(b.text),11,vf))),128))],2)):ne("v-if",!0),q("div",{class:A(r(y).e("body"))},[r(Re)?(D(),K("div",{key:0,class:A(r(w).e("time-header"))},[q("span",{class:A(r(w).e("editors-wrap"))},[q("span",{class:A(r(w).e("time-picker-wrap"))},[ee(r(Ft),{size:"small",disabled:r(k).selecting,placeholder:r(_)("el.datepicker.startDate"),class:A(r(w).e("editor")),"model-value":r(C),"validate-event":!1,onInput:Q[0]||(Q[0]=b=>Ze(b,"min")),onChange:Q[1]||(Q[1]=b=>He(b,"min"))},null,8,["disabled","placeholder","class","model-value"])],2),ze((D(),K("span",{class:A(r(w).e("time-picker-wrap"))},[ee(r(Ft),{size:"small",class:A(r(w).e("editor")),disabled:r(k).selecting,placeholder:r(_)("el.datepicker.startTime"),"model-value":r(p),"validate-event":!1,onFocus:Q[2]||(Q[2]=b=>Le.value=!0),onInput:Q[3]||(Q[3]=b=>W(b,"min")),onChange:Q[4]||(Q[4]=b=>ue(b,"min"))},null,8,["class","disabled","placeholder","model-value"]),ee(r(aa),{visible:Le.value,format:r(E),"datetime-role":"start","parsed-value":g.value,onPick:we},null,8,["visible","format","parsed-value"])],2)),[[r(na),Ye]])],2),q("span",null,[ee(r(ke),null,{default:le(()=>[ee(r(Cn))]),_:1})]),q("span",{class:A([r(w).e("editors-wrap"),"is-right"])},[q("span",{class:A(r(w).e("time-picker-wrap"))},[ee(r(Ft),{size:"small",class:A(r(w).e("editor")),disabled:r(k).selecting,placeholder:r(_)("el.datepicker.endDate"),"model-value":r(M),readonly:!r(v),"validate-event":!1,onInput:Q[5]||(Q[5]=b=>Ze(b,"max")),onChange:Q[6]||(Q[6]=b=>He(b,"max"))},null,8,["class","disabled","placeholder","model-value","readonly"])],2),ze((D(),K("span",{class:A(r(w).e("time-picker-wrap"))},[ee(r(Ft),{size:"small",class:A(r(w).e("editor")),disabled:r(k).selecting,placeholder:r(_)("el.datepicker.endTime"),"model-value":r(S),readonly:!r(v),"validate-event":!1,onFocus:Q[7]||(Q[7]=b=>r(v)&&(ie.value=!0)),onInput:Q[8]||(Q[8]=b=>W(b,"max")),onChange:Q[9]||(Q[9]=b=>ue(b,"max"))},null,8,["class","disabled","placeholder","model-value","readonly"]),ee(r(aa),{"datetime-role":"end",visible:ie.value,format:r(E),"parsed-value":h.value,onPick:Je},null,8,["visible","format","parsed-value"])],2)),[[r(na),je]])],2)],2)):ne("v-if",!0),q("div",{class:A([[r(y).e("content"),r(w).e("content")],"is-left"])},[q("div",{class:A(r(w).e("header"))},[q("button",{type:"button",class:A([r(y).e("icon-btn"),"d-arrow-left"]),"aria-label":r(_)("el.datepicker.prevYear"),onClick:te},[ee(r(ke),null,{default:le(()=>[ee(r(dn))]),_:1})],10,hf),q("button",{type:"button",class:A([r(y).e("icon-btn"),"arrow-left"]),"aria-label":r(_)("el.datepicker.prevMonth"),onClick:oe},[ee(r(ke),null,{default:le(()=>[ee(r(Xn))]),_:1})],10,mf),Y.unlinkPanels?(D(),K("button",{key:0,type:"button",disabled:!r(Ie),class:A([[r(y).e("icon-btn"),{"is-disabled":!r(Ie)}],"d-arrow-right"]),"aria-label":r(_)("el.datepicker.nextYear"),onClick:me},[ee(r(ke),null,{default:le(()=>[ee(r(fn))]),_:1})],10,gf)):ne("v-if",!0),Y.unlinkPanels?(D(),K("button",{key:1,type:"button",disabled:!r(De),class:A([[r(y).e("icon-btn"),{"is-disabled":!r(De)}],"arrow-right"]),"aria-label":r(_)("el.datepicker.nextMonth"),onClick:xe},[ee(r(ke),null,{default:le(()=>[ee(r(Cn))]),_:1})],10,bf)):ne("v-if",!0),q("div",null,he(r(V)),1)],2),ee(sa,{"selection-mode":"range",date:g.value,"min-date":r(v),"max-date":r(c),"range-state":r(k),"disabled-date":r(o),"cell-class-name":r(s),onChangerange:r(N),onPick:lt,onSelect:r(P)},null,8,["date","min-date","max-date","range-state","disabled-date","cell-class-name","onChangerange","onSelect"])],2),q("div",{class:A([[r(y).e("content"),r(w).e("content")],"is-right"])},[q("div",{class:A(r(w).e("header"))},[Y.unlinkPanels?(D(),K("button",{key:0,type:"button",disabled:!r(Ie),class:A([[r(y).e("icon-btn"),{"is-disabled":!r(Ie)}],"d-arrow-left"]),"aria-label":r(_)("el.datepicker.prevYear"),onClick:Se},[ee(r(ke),null,{default:le(()=>[ee(r(dn))]),_:1})],10,yf)):ne("v-if",!0),Y.unlinkPanels?(D(),K("button",{key:1,type:"button",disabled:!r(De),class:A([[r(y).e("icon-btn"),{"is-disabled":!r(De)}],"arrow-left"]),"aria-label":r(_)("el.datepicker.prevMonth"),onClick:be},[ee(r(ke),null,{default:le(()=>[ee(r(Xn))]),_:1})],10,wf)):ne("v-if",!0),q("button",{type:"button","aria-label":r(_)("el.datepicker.nextYear"),class:A([r(y).e("icon-btn"),"d-arrow-right"]),onClick:pe},[ee(r(ke),null,{default:le(()=>[ee(r(fn))]),_:1})],10,kf),q("button",{type:"button",class:A([r(y).e("icon-btn"),"arrow-right"]),"aria-label":r(_)("el.datepicker.nextMonth"),onClick:ve},[ee(r(ke),null,{default:le(()=>[ee(r(Cn))]),_:1})],10,Sf),q("div",null,he(r(B)),1)],2),ee(sa,{"selection-mode":"range",date:h.value,"min-date":r(v),"max-date":r(c),"range-state":r(k),"disabled-date":r(o),"cell-class-name":r(s),onChangerange:r(N),onPick:lt,onSelect:r(P)},null,8,["date","min-date","max-date","range-state","disabled-date","cell-class-name","onChangerange","onSelect"])],2)],2)],2),r(Re)?(D(),K("div",{key:0,class:A(r(y).e("footer"))},[r(i)?(D(),de(r(On),{key:0,text:"",size:"small",class:A(r(y).e("link-btn")),onClick:vt},{default:le(()=>[mt(he(r(_)("el.datepicker.clear")),1)]),_:1},8,["class"])):ne("v-if",!0),ee(r(On),{plain:"",size:"small",class:A(r(y).e("link-btn")),disabled:r(Ne),onClick:Q[10]||(Q[10]=b=>r(x)(!1))},{default:le(()=>[mt(he(r(_)("el.datepicker.confirm")),1)]),_:1},8,["class","disabled"])],2)):ne("v-if",!0)],2))}});var Cf=Ae(_f,[["__file","panel-date-range.vue"]]);const xf=ye({...Do}),Mf=["pick","set-picker-option","calendar-change"],Tf=({unlinkPanels:e,leftDate:t,rightDate:n})=>{const{t:a}=pt(),o=()=>{t.value=t.value.subtract(1,"year"),e.value||(n.value=n.value.subtract(1,"year"))},s=()=>{e.value||(t.value=t.value.add(1,"year")),n.value=n.value.add(1,"year")},l=()=>{t.value=t.value.add(1,"year")},u=()=>{n.value=n.value.subtract(1,"year")},i=T(()=>`${t.value.year()} ${a("el.datepicker.year")}`),f=T(()=>`${n.value.year()} ${a("el.datepicker.year")}`),m=T(()=>t.value.year()),d=T(()=>n.value.year()===t.value.year()?t.value.year()+1:n.value.year());return{leftPrevYear:o,rightNextYear:s,leftNextYear:l,rightPrevYear:u,leftLabel:i,rightLabel:f,leftYear:m,rightYear:d}},Df=["onClick"],Pf=["disabled"],Of=["disabled"],Sn="year",Ef=re({name:"DatePickerMonthRange"}),$f=re({...Ef,props:xf,emits:Mf,setup(e,{emit:t}){const n=e,{lang:a}=pt(),o=Ce("EP_PICKER_BASE"),{shortcuts:s,disabledDate:l,format:u}=o.props,i=Ve(o.props,"defaultValue"),f=j(se().locale(a.value)),m=j(se().locale(a.value).add(1,Sn)),{minDate:d,maxDate:g,rangeState:h,ppNs:v,drpNs:c,handleChangeRange:k,handleRangeConfirm:y,handleShortcutClick:w,onSelect:N}=Eo(n,{defaultValue:i,leftDate:f,rightDate:m,unit:Sn,onParsedValueChanged:F}),x=T(()=>!!s.length),{leftPrevYear:R,rightNextYear:P,leftNextYear:_,rightPrevYear:O,leftLabel:H,rightLabel:V,leftYear:B,rightYear:J}=Tf({unlinkPanels:Ve(n,"unlinkPanels"),leftDate:f,rightDate:m}),U=T(()=>n.unlinkPanels&&J.value>B.value+1),z=(C,M=!0)=>{const p=C.minDate,S=C.maxDate;g.value===S&&d.value===p||(t("calendar-change",[p.toDate(),S&&S.toDate()]),g.value=S,d.value=p,M&&y())},L=C=>C.map(M=>M.format(u));function F(C,M){if(n.unlinkPanels&&M){const p=(C==null?void 0:C.year())||0,S=M.year();m.value=p===S?M.add(1,Sn):M}else m.value=f.value.add(1,Sn)}return t("set-picker-option",["formatToString",L]),(C,M)=>(D(),K("div",{class:A([r(v).b(),r(c).b(),{"has-sidebar":!!C.$slots.sidebar||r(x)}])},[q("div",{class:A(r(v).e("body-wrapper"))},[$e(C.$slots,"sidebar",{class:A(r(v).e("sidebar"))}),r(x)?(D(),K("div",{key:0,class:A(r(v).e("sidebar"))},[(D(!0),K(_e,null,We(r(s),(p,S)=>(D(),K("button",{key:S,type:"button",class:A(r(v).e("shortcut")),onClick:E=>r(w)(p)},he(p.text),11,Df))),128))],2)):ne("v-if",!0),q("div",{class:A(r(v).e("body"))},[q("div",{class:A([[r(v).e("content"),r(c).e("content")],"is-left"])},[q("div",{class:A(r(c).e("header"))},[q("button",{type:"button",class:A([r(v).e("icon-btn"),"d-arrow-left"]),onClick:M[0]||(M[0]=(...p)=>r(R)&&r(R)(...p))},[ee(r(ke),null,{default:le(()=>[ee(r(dn))]),_:1})],2),C.unlinkPanels?(D(),K("button",{key:0,type:"button",disabled:!r(U),class:A([[r(v).e("icon-btn"),{[r(v).is("disabled")]:!r(U)}],"d-arrow-right"]),onClick:M[1]||(M[1]=(...p)=>r(_)&&r(_)(...p))},[ee(r(ke),null,{default:le(()=>[ee(r(fn))]),_:1})],10,Pf)):ne("v-if",!0),q("div",null,he(r(H)),1)],2),ee(la,{"selection-mode":"range",date:f.value,"min-date":r(d),"max-date":r(g),"range-state":r(h),"disabled-date":r(l),onChangerange:r(k),onPick:z,onSelect:r(N)},null,8,["date","min-date","max-date","range-state","disabled-date","onChangerange","onSelect"])],2),q("div",{class:A([[r(v).e("content"),r(c).e("content")],"is-right"])},[q("div",{class:A(r(c).e("header"))},[C.unlinkPanels?(D(),K("button",{key:0,type:"button",disabled:!r(U),class:A([[r(v).e("icon-btn"),{"is-disabled":!r(U)}],"d-arrow-left"]),onClick:M[2]||(M[2]=(...p)=>r(O)&&r(O)(...p))},[ee(r(ke),null,{default:le(()=>[ee(r(dn))]),_:1})],10,Of)):ne("v-if",!0),q("button",{type:"button",class:A([r(v).e("icon-btn"),"d-arrow-right"]),onClick:M[3]||(M[3]=(...p)=>r(P)&&r(P)(...p))},[ee(r(ke),null,{default:le(()=>[ee(r(fn))]),_:1})],2),q("div",null,he(r(V)),1)],2),ee(la,{"selection-mode":"range",date:m.value,"min-date":r(d),"max-date":r(g),"range-state":r(h),"disabled-date":r(l),onChangerange:r(k),onPick:z,onSelect:r(N)},null,8,["date","min-date","max-date","range-state","disabled-date","onChangerange","onSelect"])],2)],2)],2)],2))}});var Af=Ae($f,[["__file","panel-month-range.vue"]]);const Rf=function(e){switch(e){case"daterange":case"datetimerange":return Cf;case"monthrange":return Af;default:return df}};se.extend(hd);se.extend(gd);se.extend(qc);se.extend(yd);se.extend(kd);se.extend(_d);se.extend(xd);se.extend(Td);var If=re({name:"ElDatePicker",install:null,props:Dd,emits:["update:modelValue"],setup(e,{expose:t,emit:n,slots:a}){const o=Te("picker-panel");dt("ElPopperOptions",ua(Ve(e,"popperOptions"))),dt(Oa,{slots:a,pickerNs:o});const s=j();t({focus:(i=!0)=>{var f;(f=s.value)==null||f.focus(i)},handleOpen:()=>{var i;(i=s.value)==null||i.handleOpen()},handleClose:()=>{var i;(i=s.value)==null||i.handleClose()}});const u=i=>{n("update:modelValue",i)};return()=>{var i;const f=(i=e.format)!=null?i:Gc[e.type]||Kt,m=Rf(e.type);return ee(td,bt(e,{format:f,type:e.type,ref:s,"onUpdate:modelValue":u}),{default:d=>ee(m,d,null),"range-separator":a["range-separator"]})}}});const xn=If;xn.install=e=>{e.component(xn.name,xn)};const Ff=xn;/*! Element Plus v2.5.5 */var Nf={name:"en",el:{colorpicker:{confirm:"OK",clear:"Clear",defaultLabel:"color picker",description:"current color is {color}. press enter to select a new color."},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",dateTablePrompt:"Use the arrow keys and enter to select the day of the month",monthTablePrompt:"Use the arrow keys and enter to select the month",yearTablePrompt:"Use the arrow keys and enter to select the year",selectedDate:"Selected date",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",week:"week",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},weeksFull:{sun:"Sunday",mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},inputNumber:{decrease:"decrease number",increase:"increase number"},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},dropdown:{toggleDropdown:"Toggle Dropdown"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:"",page:"Page",prev:"Go to previous page",next:"Go to next page",currentPage:"page {pager}",prevPages:"Previous {pager} pages",nextPages:"Next {pager} pages",deprecationWarning:"Deprecated usages detected, please refer to the el-pagination documentation for more details"},dialog:{close:"Close this dialog"},drawer:{close:"Close this dialog"},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input",close:"Close this dialog"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},slider:{defaultLabel:"slider between {min} and {max}",defaultRangeStartLabel:"pick start value",defaultRangeEndLabel:"pick end value"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum"},tour:{next:"Next",previous:"Previous",finish:"Finish"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"}}};const Lf={setup(){return{rootStore:Ro(),locale:Nf}},emits:["change","updated"],components:{ElDatePicker:Ff,SvgCalendar:os,SvgCircleClose:Uo},props:{size:{type:String,default(){return"default"}},type:{type:String,default(){return"daterange"}},separator:{type:String,default(){return"-"}},clearable:{type:Boolean,default(){return!0}},isDisabledDate:{type:Function,default(){return!1}},shortcuts:{type:Array,default(){return[]}},defaultRolling:{type:String,default(){return null}},placeholder:{type:String,default(){return null}},dateFormat:String,defaultValue:[Array,Object]},data(){return{rolling:null,value:null,strings:{startDate:this.$t.__("Start Date",this.$td),endDate:this.$t.__("End Date",this.$td)}}},computed:{format(){return this.dateFormat||this.rootStore.aioseo.data.dateFormat},label(){if(!this.value)return" ";if(!this.isDateRange)return Ln(this.value,this.format);const e=Ln(this.value[0],this.format),t=Ln(this.value[1],this.format);return[e,t]},isDateRange(){return Array.isArray(this.value)}},methods:{openPicker(){this.$refs.picker.focus()},clear(){this.value=null,this.$emit("change",this.value,this.rolling)}},mounted(){this.$nextTick(()=>{!this.value&&this.defaultValue&&(this.value=this.defaultValue)}),this.rolling=this.defaultRolling,window.aioseoBus.$on("rolling",e=>{this.rolling=e}),this.$emit("updated",this.rolling)},updated(){this.$emit("updated",this.rolling),this.$nextTick(()=>{this.rolling=""})}},Vf={class:"aioseo-datepicker"},Bf={class:"label"},Hf={key:0},zf={key:1,class:"placeholder"};function Yf(e,t,n,a,o,s){const l=Vn("el-date-picker"),u=Vn("svg-calendar"),i=Vn("svg-circle-close");return D(),K("div",Vf,[ee(l,{modelValue:o.value,"onUpdate:modelValue":t[0]||(t[0]=f=>o.value=f),ref:"picker",type:n.type,size:n.size,"range-separator":n.separator,onChange:t[1]||(t[1]=f=>e.$emit("change",f,o.rolling)),clearable:!1,shortcuts:n.shortcuts,"disabled-date":n.isDisabledDate,"start-placeholder":o.strings.startDate,"end-placeholder":o.strings.endDate},null,8,["modelValue","type","size","range-separator","shortcuts","disabled-date","start-placeholder","end-placeholder"]),q("div",{class:A(["aioseo-datepicker-picker",[`aioseo-datepicker-picker--${n.size}`]]),onClick:t[3]||(t[3]=(...f)=>s.openPicker&&s.openPicker(...f))},[ee(u),q("div",Bf,[s.isDateRange?(D(),K(_e,{key:0},[mt(he(s.label[0])+" ",1),q("span",null,he(n.separator),1),mt(" "+he(s.label[1]),1)],64)):ne("",!0),s.isDateRange?ne("",!0):(D(),K(_e,{key:1},[s.label.trim()?(D(),K("span",Hf,he(s.label),1)):ne("",!0),!s.label.trim()&&n.placeholder?(D(),K("span",zf,he(n.placeholder),1)):ne("",!0)],64))]),n.clearable&&o.value?(D(),K("div",{key:0,class:"clear",onClick:t[2]||(t[2]=et((...f)=>s.clear&&s.clear(...f),["stop"]))},[ee(i)])):ne("",!0)],2)])}const Xf=Tr(Lf,[["render",Yf]]);export{Xf as B,Qo as i}; all-in-one-seo-pack/dist/Lite/assets/js/debounce.vOAperWf.js000064400000002064151222736000017567 0ustar00import{r as b,i as C}from"./isArrayLikeObject.CkjpbQo7.js";import{t as k}from"./toNumber.DHWd7Z3r.js";var _=function(){return b.Date.now()},M="Expected a function",R=Math.max,S=Math.min;function O(x,t,u){var a,c,m,o,e,r,l=0,T=!1,s=!1,g=!0;if(typeof x!="function")throw new TypeError(M);t=k(t)||0,C(u)&&(T=!!u.leading,s="maxWait"in u,m=s?R(k(u.maxWait)||0,t):m,g="trailing"in u?!!u.trailing:g);function p(n){var i=a,f=c;return a=c=void 0,l=n,o=x.apply(f,i),o}function I(n){return l=n,e=setTimeout(d,t),T?p(n):o}function L(n){var i=n-r,f=n-l,E=t-i;return s?S(E,m-f):E}function y(n){var i=n-r,f=n-l;return r===void 0||i>=t||i<0||s&&f>=m}function d(){var n=_();if(y(n))return h(n);e=setTimeout(d,L(n))}function h(n){return e=void 0,g&&a?p(n):(a=c=void 0,o)}function A(){e!==void 0&&clearTimeout(e),l=0,a=r=c=e=void 0}function W(){return e===void 0?o:h(_())}function v(){var n=_(),i=y(n);if(a=arguments,c=this,r=n,i){if(e===void 0)return I(r);if(s)return clearTimeout(e),e=setTimeout(d,t),p(r)}return e===void 0&&(e=setTimeout(d,t)),o}return v.cancel=A,v.flush=W,v}export{O as d}; all-in-one-seo-pack/dist/Lite/assets/js/default-i18n.BtxsUzQk.js000064400000030120151222736000020240 0ustar00function G(t,e){var r=0,n,i;e=e||{};function c(){var o=n,l=arguments.length,d,u;t:for(;o;){if(o.args.length!==arguments.length){o=o.next;continue}for(u=0;u=0),f.type){case"b":s=parseInt(s,10).toString(2);break;case"c":s=String.fromCharCode(parseInt(s,10));break;case"d":case"i":s=parseInt(s,10);break;case"j":s=JSON.stringify(s,null,f.width?parseInt(f.width):0);break;case"e":s=f.precision?parseFloat(s).toExponential(f.precision):parseFloat(s).toExponential();break;case"f":s=f.precision?parseFloat(s).toFixed(f.precision):parseFloat(s);break;case"g":s=f.precision?String(Number(s.toPrecision(f.precision))):parseFloat(s);break;case"o":s=(parseInt(s,10)>>>0).toString(8);break;case"s":s=String(s),s=f.precision?s.substring(0,f.precision):s;break;case"t":s=String(!!s),s=f.precision?s.substring(0,f.precision):s;break;case"T":s=Object.prototype.toString.call(s).slice(8,-1).toLowerCase(),s=f.precision?s.substring(0,f.precision):s;break;case"u":s=parseInt(s,10)>>>0;break;case"v":s=s.valueOf(),s=f.precision?s.substring(0,f.precision):s;break;case"x":s=(parseInt(s,10)>>>0).toString(16);break;case"X":s=(parseInt(s,10)>>>0).toString(16).toUpperCase();break}e.json.test(f.type)?w+=s:(e.number.test(f.type)&&(!S||f.sign)?(a=S?"+":"-",s=s.toString().replace(e.sign,"")):a="",m=f.pad_char?f.pad_char==="0"?"0":f.pad_char.charAt(1):" ",E=f.width-(a+s).length,A=f.width&&E>0?m.repeat(E):"",w+=f.align?a+s+A:m==="0"?a+A+s:A+a+s)}return w}var c=Object.create(null);function o(l){if(c[l])return c[l];for(var d=l,u,_=[],s=0;d;){if((u=e.text.exec(d))!==null)_.push(u[0]);else if((u=e.modulo.exec(d))!==null)_.push("%");else if((u=e.placeholder.exec(d))!==null){if(u[2]){s|=1;var w=[],y=u[2],x=[];if((x=e.key.exec(y))!==null)for(w.push(x[1]);(y=y.substring(x[0].length))!=="";)if((x=e.key_access.exec(y))!==null)w.push(x[1]);else if((x=e.index_access.exec(y))!==null)w.push(x[1]);else throw new SyntaxError("[sprintf] failed to parse named argument key");else throw new SyntaxError("[sprintf] failed to parse named argument key");u[2]=w}else s|=2;if(s===3)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");_.push({placeholder:u[0],param_no:u[1],keys:u[2],sign:u[3],pad_char:u[4],align:u[5],width:u[6],precision:u[7],type:u[8]})}else throw new SyntaxError("[sprintf] unexpected placeholder");d=d.substring(u[0].length)}return c[l]=_}t.sprintf=r,t.vsprintf=n,typeof window<"u"&&(window.sprintf=r,window.vsprintf=n)})()})(K);const q=J(K),B=G(console.error);function ut(t,...e){try{return q.sprintf(t,...e)}catch(r){return r instanceof Error&&B(`sprintf error: `+r.toString()),t}}var k,U,T,X;k={"(":9,"!":8,"*":7,"/":7,"%":7,"+":6,"-":6,"<":5,"<=":5,">":5,">=":5,"==":4,"!=":4,"&&":3,"||":2,"?":1,"?:":1};U=["(","?"];T={")":["("],":":["?","?:"]};X=/<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/;function Q(t){for(var e=[],r=[],n,i,c,o;n=t.match(X);){for(i=n[0],c=t.substr(0,n.index).trim(),c&&e.push(c);o=r.pop();){if(T[i]){if(T[i][0]===o){i=T[i][1]||i;break}}else if(U.indexOf(o)>=0||k[o]":function(t,e){return t>e},">=":function(t,e){return t>=e},"==":function(t,e){return t===e},"!=":function(t,e){return t!==e},"&&":function(t,e){return t&&e},"||":function(t,e){return t||e},"?:":function(t,e,r){if(t)throw e;return r}};function W(t,e){var r=[],n,i,c,o,l,d;for(n=0;n{const n=new j({}),i=new Set,c=()=>{i.forEach(a=>a())},o=a=>(i.add(a),()=>i.delete(a)),l=(a="default")=>n.data[a],d=(a,p="default")=>{var h;n.data[p]={...n.data[p],...a},n.data[p][""]={...H[""],...(h=n.data[p])==null?void 0:h[""]},delete n.pluralForms[p]},u=(a,p)=>{d(a,p),c()},_=(a,p="default")=>{var h;n.data[p]={...n.data[p],...a,"":{...H[""],...(h=n.data[p])==null?void 0:h[""],...a==null?void 0:a[""]}},delete n.pluralForms[p],c()},s=(a,p)=>{n.data={},n.pluralForms={},u(a,p)},w=(a="default",p,h,b,v)=>(n.data[a]||d(void 0,a),n.dcnpgettext(a,p,h,b,v)),y=(a="default")=>a,x=(a,p)=>{let h=w(p,void 0,a);return r?(h=r.applyFilters("i18n.gettext",h,a,p),r.applyFilters("i18n.gettext_"+y(p),h,a,p)):h},f=(a,p,h)=>{let b=w(h,p,a);return r?(b=r.applyFilters("i18n.gettext_with_context",b,a,p,h),r.applyFilters("i18n.gettext_with_context_"+y(h),b,a,p,h)):b},A=(a,p,h,b)=>{let v=w(b,void 0,a,p,h);return r?(v=r.applyFilters("i18n.ngettext",v,a,p,h,b),r.applyFilters("i18n.ngettext_"+y(b),v,a,p,h,b)):v},m=(a,p,h,b,v)=>{let F=w(v,b,a,p,h);return r?(F=r.applyFilters("i18n.ngettext_with_context",F,a,p,h,b,v),r.applyFilters("i18n.ngettext_with_context_"+y(v),F,a,p,h,b,v)):F},E=()=>f("ltr","text direction")==="rtl",S=(a,p,h)=>{var F,R;const b=p?p+""+a:a;let v=!!((R=(F=n.data)==null?void 0:F[h??"default"])!=null&&R[b]);return r&&(v=r.applyFilters("i18n.has_translation",v,a,p,h),v=r.applyFilters("i18n.has_translation_"+y(h),v,a,p,h)),v};if(t&&u(t,e),r){const a=p=>{et.test(p)&&c()};r.addAction("hookAdded","core/i18n",a),r.addAction("hookRemoved","core/i18n",a)}return{getLocaleData:l,setLocaleData:u,addLocaleData:_,resetLocaleData:s,subscribe:o,__:x,_x:f,_n:A,_nx:m,isRTL:E,hasTranslation:S}};function Z(t){return typeof t!="string"||t===""?(console.error("The namespace must be a non-empty string."),!1):/^[a-zA-Z][a-zA-Z0-9_.\-\/]*$/.test(t)?!0:(console.error("The namespace can only contain numbers, letters, dashes, periods, underscores and slashes."),!1)}function L(t){return typeof t!="string"||t===""?(console.error("The hook name must be a non-empty string."),!1):/^__/.test(t)?(console.error("The hook name cannot begin with `__`."),!1):/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(t)?!0:(console.error("The hook name can only contain numbers, letters, dashes, periods and underscores."),!1)}function P(t,e){return function(n,i,c,o=10){const l=t[e];if(!L(n)||!Z(i))return;if(typeof c!="function"){console.error("The hook callback must be a function.");return}if(typeof o!="number"){console.error("If specified, the hook priority must be a number.");return}const d={callback:c,priority:o,namespace:i};if(l[n]){const u=l[n].handlers;let _;for(_=u.length;_>0&&!(o>=u[_-1].priority);_--);_===u.length?u[_]=d:u.splice(_,0,d),l.__current.forEach(s=>{s.name===n&&s.currentIndex>=_&&s.currentIndex++})}else l[n]={handlers:[d],runs:0};n!=="hookAdded"&&t.doAction("hookAdded",n,i,c,o)}}function O(t,e,r=!1){return function(i,c){const o=t[e];if(!L(i)||!r&&!Z(c))return;if(!o[i])return 0;let l=0;if(r)l=o[i].handlers.length,o[i]={runs:o[i].runs,handlers:[]};else{const d=o[i].handlers;for(let u=d.length-1;u>=0;u--)d[u].namespace===c&&(d.splice(u,1),l++,o.__current.forEach(_=>{_.name===i&&_.currentIndex>=u&&_.currentIndex--}))}return i!=="hookRemoved"&&t.doAction("hookRemoved",i,c),l}}function I(t,e){return function(n,i){const c=t[e];return typeof i<"u"?n in c&&c[n].handlers.some(o=>o.namespace===i):n in c}}function z(t,e,r=!1){return function(i,...c){const o=t[e];o[i]||(o[i]={handlers:[],runs:0}),o[i].runs++;const l=o[i].handlers;if(!l||!l.length)return r?c[0]:void 0;const d={name:i,currentIndex:0};for(o.__current.push(d);d.currentIndex"u"?typeof i.__current[0]<"u":i.__current[0]?n===i.__current[0].name:!1}}function $(t,e){return function(n){const i=t[e];if(L(n))return i[n]&&i[n].runs?i[n].runs:0}}class rt{constructor(){this.actions=Object.create(null),this.actions.__current=[],this.filters=Object.create(null),this.filters.__current=[],this.addAction=P(this,"actions"),this.addFilter=P(this,"filters"),this.removeAction=O(this,"actions"),this.removeFilter=O(this,"filters"),this.hasAction=I(this,"actions"),this.hasFilter=I(this,"filters"),this.removeAllActions=O(this,"actions",!0),this.removeAllFilters=O(this,"filters",!0),this.doAction=z(this,"actions"),this.applyFilters=z(this,"filters",!0),this.currentAction=C(this,"actions"),this.currentFilter=C(this,"filters"),this.doingAction=M(this,"actions"),this.doingFilter=M(this,"filters"),this.didAction=$(this,"actions"),this.didFilter=$(this,"filters")}}function st(){return new rt}const it=st(),g=nt(void 0,void 0,it),ct=g.getLocaleData.bind(g),lt=g.setLocaleData.bind(g),ft=g.resetLocaleData.bind(g),pt=g.subscribe.bind(g),dt=g.__.bind(g),ht=g._x.bind(g),_t=g._n.bind(g),gt=g._nx.bind(g),yt=g.isRTL.bind(g),bt=g.hasTranslation.bind(g);export{dt as _,_t as a,gt as b,ht as c,nt as d,ct as e,yt as f,at as g,bt as h,g as i,lt as j,pt as k,J as l,ot as m,ft as r,ut as s}; all-in-one-seo-pack/dist/Lite/assets/js/DonutChartWithLegend.BDrgOxPz.js000064400000011450151222736000021776 0ustar00import{U as b}from"./AnimatedNumber.BZqhDXvl.js";import{o as n,c as r,q as x,y as c,d as i,F as _,L as k,a as o,D as v,m as g,l as h,t as w,k as N,E as $,I as L,x as M}from"./vue.esm-bundler.DzelZkHk.js";import{_ as f}from"./_plugin-vue_export-helper.BN1snXvA.js";const z={emits:["resize"],props:{targetLineCount:{default:1,type:Number},unit:{default:"px",type:String},min:{default:12,type:Number},max:{default:36,type:Number},constrainToElement:{type:[Boolean,Element],default(){return!1}},elementPadding:{type:Number,default(){return 0}}},data(){return{observer:null}},methods:{calculate(){const t=this.$el,a=this.unit==="px"?1:.05;let e=this.max;if(t.style.display="inline-block",t.style.lineHeight="1px",t.style.fontSize=e+this.unit,this.constrainToElement)for(;t.offsetWidth>this.constrainToElement.offsetWidth-this.elementPadding&&e>this.min;)e-=a,t.style.fontSize=e+this.unit;else for(;t.offsetHeight>this.targetLineCount&&e>this.min;)e-=a,t.style.fontSize=e+this.unit;this.$emit("resize",{size:e,unit:this.unit}),t.style.display=null,t.style.lineHeight=null}},mounted(){this.calculate(),"MutationObserver"in window&&this.observer===null&&(this.observer=new MutationObserver(this.calculate),this.observer.observe(this.$el,{subtree:!0,characterData:!0})),window.addEventListener("resize",this.calculate)},beforeUnmount:function(){this.observer.disconnect(),window.removeEventListener("resize",this.calculate)}};function C(t,a,e,y,p,u){return n(),r("span",null,[x(t.$slots,"default")])}const S=f(z,[["render",C]]),T={components:{UtilAnimatedNumber:b,UtilFitText:S},props:{parts:{type:Array,required:!0},label:{type:String,required:!0},total:{type:Number,required:!0},animatedNumber:{type:Boolean,default(){return!0}}}},F={class:"aioseo-donut-chart"},B={key:0,viewBox:"0 0 33.83098862 33.83098862",xmlns:"http://www.w3.org/2000/svg"},E=o("circle",{class:"aioseo-donut-chart-score__circle",stroke:"#e8e8eb","stroke-dasharray":"100","stroke-linecap":"round","stroke-width":2,fill:"none",cx:"16.91549431",cy:"16.91549431",r:"15.91549431"},null,-1),H=[E],q={key:1,viewBox:"0 0 33.83098862 33.83098862",xmlns:"http://www.w3.org/2000/svg"},A=["stroke-dasharray"],D=["stroke","stroke-dasharray"],P={class:"total-amount-wrapper"},I={class:"total-amount"},U={class:"total"},V=["innerHTML"],W={class:"label"};function O(t,a,e,y,p,u){const d=c("util-animated-number"),m=c("util-fit-text");return n(),r("div",F,[e.total===0?(n(),r("svg",B,H)):i("",!0),0(n(),r(_,{key:l},[Math.round(s.ratio)&&l!==0?(n(),r("circle",{key:0,class:"aioseo-donut-chart-score__circle",stroke:"#FFFFFF","stroke-dasharray":`${Math.round(s.ratio)} ${parseFloat(99-Math.round(s.ratio))}`,"stroke-linecap":"round","stroke-width":2.5,fill:"none",cx:"16.91549431",cy:"16.91549431",r:"15.91549431"},null,8,A)):i("",!0),Math.round(s.ratio)?(n(),r("circle",{key:1,class:"aioseo-donut-chart-score__circle",stroke:s.color,"stroke-dasharray":`${Math.round(s.ratio)===100?100:Math.round(s.ratio)-1} 100`,"stroke-linecap":"round","stroke-width":2,fill:"none",cx:"16.91549431",cy:"16.91549431",r:"15.91549431"},null,8,D)):i("",!0)],64))),128))])):i("",!0),o("div",P,[o("div",I,[o("div",U,[v(m,{max:32,"constrain-to-element":t.$el},{default:g(()=>[e.animatedNumber?(n(),h(d,{key:0,number:parseInt(e.total)},null,8,["number"])):(n(),r("div",{key:1,innerHTML:parseInt(e.total)},null,8,V))]),_:1},8,["constrain-to-element"])]),o("div",W,w(e.label),1)])])])}const R=f(T,[["render",O]]),j={components:{CoreDonutChart:R,UtilAnimatedNumber:b},props:{parts:{type:Array,required:!0},total:{type:Number,required:!0},label:{type:String,required:!0},link:{type:String,required:!1},animatedNumber:{type:Boolean,default(){return!0}}},computed:{sortedParts(){const t=this.parts.map(a=>a);return t.forEach(function(a,e){a.last&&(t.push(t[e]),t.splice(e,1))}),t}}},G={class:"aioseo-donut-chart-with-legend"},J={class:"chart-left"},K={class:"chart-right"},Q={class:"legend-amount"},X=["innerHTML"],Y={key:0,class:"chart-more"},Z=["innerHTML"];function ee(t,a,e,y,p,u){const d=c("core-donut-chart"),m=c("util-animated-number");return n(),r("div",G,[o("div",J,[v(d,{parts:e.parts,total:e.total,label:e.label,animatedNumber:e.animatedNumber},null,8,["parts","total","label","animatedNumber"])]),o("div",K,[(n(!0),r(_,null,k(u.sortedParts,(s,l)=>(n(),r("div",{class:"legend",key:l},[o("div",{class:"legend-bullet",style:N(`background-color: ${s.color}`)},null,4),o("span",Q,[e.animatedNumber?(n(),h(m,{key:0,number:parseInt(s.count)},null,8,["number"])):(n(),r("div",{key:1,innerHTML:parseInt(s.count)},null,8,X))]),(n(),h(M(s.link?"a":"span"),{href:s.link||null,class:L(["legend-label",{"is-link":s.link}])},{default:g(()=>[$(w(s.name),1)]),_:2},1032,["href","class"]))]))),128)),e.link&&e.total>0?(n(),r("div",Y,[o("span",{innerHTML:e.link},null,8,Z)])):i("",!0)])])}const re=f(j,[["render",ee]]);export{re as C}; all-in-one-seo-pack/dist/Lite/assets/js/Download.dKopWSkO.js000064400000001175151222736000017524 0ustar00import{o as n,c as o,a as t}from"./vue.esm-bundler.DzelZkHk.js";import{_ as e}from"./_plugin-vue_export-helper.BN1snXvA.js";const r={},s={viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"aioseo-download"},c=t("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M11.0833 5.54199H8.74999V2.04199H5.24999V5.54199H2.91666L6.99999 9.62533L11.0833 5.54199ZM6.41662 6.70866V3.20866H7.58329V6.70866H8.26579L6.99996 7.97449L5.73412 6.70866H6.41662ZM11.0833 11.9587V10.792H2.91666V11.9587H11.0833Z",fill:"currentColor"},null,-1),l=[c];function a(u,i){return n(),o("svg",s,l)}const f=e(r,[["render",a]]);export{f as S}; all-in-one-seo-pack/dist/Lite/assets/js/Drag.BbCGib1s.js000064400000275640151222736000016517 0ustar00import{g as Br,m as Kr,l as Hr}from"./default-i18n.BtxsUzQk.js";import{r as Wr}from"./vue.esm-bundler.v8OKKE5o.js";import{o as Xr,c as Yr,a as Pr}from"./vue.esm-bundler.DzelZkHk.js";import{_ as Vr}from"./_plugin-vue_export-helper.BN1snXvA.js";var Dr={exports:{}};/**! * Sortable 1.14.0 * @author RubaXa * @author owenm * @license MIT */function pr(s,r){var n=Object.keys(s);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(s);r&&(i=i.filter(function(e){return Object.getOwnPropertyDescriptor(s,e).enumerable})),n.push.apply(n,i)}return n}function Kt(s){for(var r=1;r=0)&&(n[e]=s[e]);return n}function Qr(s,r){if(s==null)return{};var n=Jr(s,r),i,e;if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(s);for(e=0;e=0)&&Object.prototype.propertyIsEnumerable.call(s,i)&&(n[i]=s[i])}return n}function Zr(s){return kr(s)||qr(s)||_r(s)||tn()}function kr(s){if(Array.isArray(s))return ir(s)}function qr(s){if(typeof Symbol<"u"&&s[Symbol.iterator]!=null||s["@@iterator"]!=null)return Array.from(s)}function _r(s,r){if(s){if(typeof s=="string")return ir(s,r);var n=Object.prototype.toString.call(s).slice(8,-1);if(n==="Object"&&s.constructor&&(n=s.constructor.name),n==="Map"||n==="Set")return Array.from(s);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ir(s,r)}}function ir(s,r){(r==null||r>s.length)&&(r=s.length);for(var n=0,i=new Array(r);n"&&(r=r.substring(1)),s)try{if(s.matches)return s.matches(r);if(s.msMatchesSelector)return s.msMatchesSelector(r);if(s.webkitMatchesSelector)return s.webkitMatchesSelector(r)}catch{return!1}return!1}}function nn(s){return s.host&&s!==document&&s.host.nodeType?s.host:s.parentNode}function Ut(s,r,n,i){if(s){n=n||document;do{if(r!=null&&(r[0]===">"?s.parentNode===n&&He(s,r):He(s,r))||i&&s===n)return s;if(s===n)break}while(s=nn(s))}return null}var mr=/\s+/g;function st(s,r,n){if(s&&r)if(s.classList)s.classList[n?"add":"remove"](r);else{var i=(" "+s.className+" ").replace(mr," ").replace(" "+r+" "," ");s.className=(i+(n?" "+r:"")).replace(mr," ")}}function L(s,r,n){var i=s&&s.style;if(i){if(n===void 0)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(s,""):s.currentStyle&&(n=s.currentStyle),r===void 0?n:n[r];!(r in i)&&r.indexOf("webkit")===-1&&(r="-webkit-"+r),i[r]=n+(typeof n=="string"?"":"px")}}function ee(s,r){var n="";if(typeof s=="string")n=s;else do{var i=L(s,"transform");i&&i!=="none"&&(n=i+" "+n)}while(!r&&(s=s.parentNode));var e=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return e&&new e(n)}function Rr(s,r,n){if(s){var i=s.getElementsByTagName(r),e=0,f=i.length;if(n)for(;e=f:t=e<=f,!t)return i;if(i===Bt())break;i=Qt(i,!1)}return!1}function le(s,r,n,i){for(var e=0,f=0,t=s.children;f2&&arguments[2]!==void 0?arguments[2]:{},e=i.evt,f=Qr(i,cn);Ae.pluginEvent.bind(K)(r,n,Kt({dragEl:C,parentEl:ut,ghostEl:z,rootEl:ot,nextEl:te,lastDownEl:Ge,cloneEl:ct,cloneHidden:Jt,dragStarted:Se,putSortable:Et,activeSortable:K.active,originalEvent:e,oldIndex:se,oldDraggableIndex:Te,newIndex:Mt,newDraggableIndex:zt,hideGhostForTarget:Lr,unhideGhostForTarget:Ur,cloneNowHidden:function(){Jt=!0},cloneNowShown:function(){Jt=!1},dispatchSortableEvent:function(o){It({sortable:n,name:o,originalEvent:e})}},f))};function It(s){ye(Kt({putSortable:Et,cloneEl:ct,targetEl:C,rootEl:ot,oldIndex:se,oldDraggableIndex:Te,newIndex:Mt,newDraggableIndex:zt},s))}var C,ut,z,ot,te,Ge,ct,Jt,se,Mt,Te,zt,Me,Et,ie=!1,We=!1,Xe=[],qt,wt,_e,tr,Er,xr,Se,oe,Ie,Pe=!1,Ne=!1,$e,xt,er=[],sr=!1,Ye=[],ze=typeof document<"u",je=Ar,Or=De||Xt?"cssFloat":"float",dn=ze&&!rn&&!Ar&&"draggable"in document.createElement("div"),jr=function(){if(ze){if(Xt)return!1;var s=document.createElement("x");return s.style.cssText="pointer-events:auto",s.style.pointerEvents==="auto"}}(),Fr=function(r,n){var i=L(r),e=parseInt(i.width)-parseInt(i.paddingLeft)-parseInt(i.paddingRight)-parseInt(i.borderLeftWidth)-parseInt(i.borderRightWidth),f=le(r,0,n),t=le(r,1,n),o=f&&L(f),a=t&&L(t),l=o&&parseInt(o.marginLeft)+parseInt(o.marginRight)+at(f).width,c=a&&parseInt(a.marginLeft)+parseInt(a.marginRight)+at(t).width;if(i.display==="flex")return i.flexDirection==="column"||i.flexDirection==="column-reverse"?"vertical":"horizontal";if(i.display==="grid")return i.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(f&&o.float&&o.float!=="none"){var u=o.float==="left"?"left":"right";return t&&(a.clear==="both"||a.clear===u)?"vertical":"horizontal"}return f&&(o.display==="block"||o.display==="flex"||o.display==="table"||o.display==="grid"||l>=e&&i[Or]==="none"||t&&i[Or]==="none"&&l+c>e)?"vertical":"horizontal"},vn=function(r,n,i){var e=i?r.left:r.top,f=i?r.right:r.bottom,t=i?r.width:r.height,o=i?n.left:n.top,a=i?n.right:n.bottom,l=i?n.width:n.height;return e===o||f===a||e+t/2===o+l/2},hn=function(r,n){var i;return Xe.some(function(e){var f=e[Ot].options.emptyInsertThreshold;if(!(!f||cr(e))){var t=at(e),o=r>=t.left-f&&r<=t.right+f,a=n>=t.top-f&&n<=t.bottom+f;if(o&&a)return i=e}}),i},wr=function(r){function n(f,t){return function(o,a,l,c){var u=o.options.group.name&&a.options.group.name&&o.options.group.name===a.options.group.name;if(f==null&&(t||u))return!0;if(f==null||f===!1)return!1;if(t&&f==="clone")return f;if(typeof f=="function")return n(f(o,a,l,c),t)(o,a,l,c);var d=(t?o:a).options.group.name;return f===!0||typeof f=="string"&&f===d||f.join&&f.indexOf(d)>-1}}var i={},e=r.group;(!e||Ue(e)!="object")&&(e={name:e}),i.name=e.name,i.checkPull=n(e.pull,!0),i.checkPut=n(e.put),i.revertClone=e.revertClone,r.group=i},Lr=function(){!jr&&z&&L(z,"display","none")},Ur=function(){!jr&&z&&L(z,"display","")};ze&&document.addEventListener("click",function(s){if(We)return s.preventDefault(),s.stopPropagation&&s.stopPropagation(),s.stopImmediatePropagation&&s.stopImmediatePropagation(),We=!1,!1},!0);var _t=function(r){if(C){r=r.touches?r.touches[0]:r;var n=hn(r.clientX,r.clientY);if(n){var i={};for(var e in r)r.hasOwnProperty(e)&&(i[e]=r[e]);i.target=i.rootEl=n,i.preventDefault=void 0,i.stopPropagation=void 0,n[Ot]._onDragOver(i)}}},pn=function(r){C&&C.parentNode[Ot]._isOutsideThisEl(r.target)};function K(s,r){if(!(s&&s.nodeType&&s.nodeType===1))throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(s));this.el=s,this.options=r=jt({},r),s[Ot]=this;var n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(s.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return Fr(s,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(t,o){t.setData("Text",o.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:K.supportPointer!==!1&&"PointerEvent"in window&&!xe,emptyInsertThreshold:5};Ae.initializePlugins(this,s,n);for(var i in n)!(i in r)&&(r[i]=n[i]);wr(r);for(var e in this)e.charAt(0)==="_"&&typeof this[e]=="function"&&(this[e]=this[e].bind(this));this.nativeDraggable=r.forceFallback?!1:dn,this.nativeDraggable&&(this.options.touchStartThreshold=1),r.supportPointer?Z(s,"pointerdown",this._onTapStart):(Z(s,"mousedown",this._onTapStart),Z(s,"touchstart",this._onTapStart)),this.nativeDraggable&&(Z(s,"dragover",this),Z(s,"dragenter",this)),Xe.push(this.el),r.store&&r.store.get&&this.sort(r.store.get(this)||[]),jt(this,ln())}K.prototype={constructor:K,_isOutsideThisEl:function(r){!this.el.contains(r)&&r!==this.el&&(oe=null)},_getDirection:function(r,n){return typeof this.options.direction=="function"?this.options.direction.call(this,r,n,C):this.options.direction},_onTapStart:function(r){if(r.cancelable){var n=this,i=this.el,e=this.options,f=e.preventOnFilter,t=r.type,o=r.touches&&r.touches[0]||r.pointerType&&r.pointerType==="touch"&&r,a=(o||r).target,l=r.target.shadowRoot&&(r.path&&r.path[0]||r.composedPath&&r.composedPath()[0])||a,c=e.filter;if(On(i),!C&&!(/mousedown|pointerdown/.test(t)&&r.button!==0||e.disabled)&&!l.isContentEditable&&!(!this.nativeDraggable&&xe&&a&&a.tagName.toUpperCase()==="SELECT")&&(a=Ut(a,e.draggable,i,!1),!(a&&a.animated)&&Ge!==a)){if(se=dt(a),Te=dt(a,e.draggable),typeof c=="function"){if(c.call(this,r,a,this)){It({sortable:n,rootEl:l,name:"filter",targetEl:a,toEl:i,fromEl:i}),Dt("filter",n,{evt:r}),f&&r.cancelable&&r.preventDefault();return}}else if(c&&(c=c.split(",").some(function(u){if(u=Ut(l,u.trim(),i,!1),u)return It({sortable:n,rootEl:u,name:"filter",targetEl:a,fromEl:i,toEl:i}),Dt("filter",n,{evt:r}),!0}),c)){f&&r.cancelable&&r.preventDefault();return}e.handle&&!Ut(l,e.handle,i,!1)||this._prepareDragStart(r,o,a)}}},_prepareDragStart:function(r,n,i){var e=this,f=e.el,t=e.options,o=f.ownerDocument,a;if(i&&!C&&i.parentNode===f){var l=at(i);if(ot=f,C=i,ut=C.parentNode,te=C.nextSibling,Ge=i,Me=t.group,K.dragged=C,qt={target:C,clientX:(n||r).clientX,clientY:(n||r).clientY},Er=qt.clientX-l.left,xr=qt.clientY-l.top,this._lastX=(n||r).clientX,this._lastY=(n||r).clientY,C.style["will-change"]="all",a=function(){if(Dt("delayEnded",e,{evt:r}),K.eventCanceled){e._onDrop();return}e._disableDelayedDragEvents(),!gr&&e.nativeDraggable&&(C.draggable=!0),e._triggerDragStart(r,n),It({sortable:e,name:"choose",originalEvent:r}),st(C,t.chosenClass,!0)},t.ignore.split(",").forEach(function(c){Rr(C,c.trim(),rr)}),Z(o,"dragover",_t),Z(o,"mousemove",_t),Z(o,"touchmove",_t),Z(o,"mouseup",e._onDrop),Z(o,"touchend",e._onDrop),Z(o,"touchcancel",e._onDrop),gr&&this.nativeDraggable&&(this.options.touchStartThreshold=4,C.draggable=!0),Dt("delayStart",this,{evt:r}),t.delay&&(!t.delayOnTouchOnly||n)&&(!this.nativeDraggable||!(De||Xt))){if(K.eventCanceled){this._onDrop();return}Z(o,"mouseup",e._disableDelayedDrag),Z(o,"touchend",e._disableDelayedDrag),Z(o,"touchcancel",e._disableDelayedDrag),Z(o,"mousemove",e._delayedDragTouchMoveHandler),Z(o,"touchmove",e._delayedDragTouchMoveHandler),t.supportPointer&&Z(o,"pointermove",e._delayedDragTouchMoveHandler),e._dragStartTimer=setTimeout(a,t.delay)}else a()}},_delayedDragTouchMoveHandler:function(r){var n=r.touches?r.touches[0]:r;Math.max(Math.abs(n.clientX-this._lastX),Math.abs(n.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){C&&rr(C),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var r=this.el.ownerDocument;Q(r,"mouseup",this._disableDelayedDrag),Q(r,"touchend",this._disableDelayedDrag),Q(r,"touchcancel",this._disableDelayedDrag),Q(r,"mousemove",this._delayedDragTouchMoveHandler),Q(r,"touchmove",this._delayedDragTouchMoveHandler),Q(r,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(r,n){n=n||r.pointerType=="touch"&&r,!this.nativeDraggable||n?this.options.supportPointer?Z(document,"pointermove",this._onTouchMove):n?Z(document,"touchmove",this._onTouchMove):Z(document,"mousemove",this._onTouchMove):(Z(C,"dragend",this),Z(ot,"dragstart",this._onDragStart));try{document.selection?Be(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch{}},_dragStarted:function(r,n){if(ie=!1,ot&&C){Dt("dragStarted",this,{evt:n}),this.nativeDraggable&&Z(document,"dragover",pn);var i=this.options;!r&&st(C,i.dragClass,!1),st(C,i.ghostClass,!0),K.active=this,r&&this._appendGhost(),It({sortable:this,name:"start",originalEvent:n})}else this._nulling()},_emulateDragOver:function(){if(wt){this._lastX=wt.clientX,this._lastY=wt.clientY,Lr();for(var r=document.elementFromPoint(wt.clientX,wt.clientY),n=r;r&&r.shadowRoot&&(r=r.shadowRoot.elementFromPoint(wt.clientX,wt.clientY),r!==n);)n=r;if(C.parentNode[Ot]._isOutsideThisEl(r),n)do{if(n[Ot]){var i=void 0;if(i=n[Ot]._onDragOver({clientX:wt.clientX,clientY:wt.clientY,target:r,rootEl:n}),i&&!this.options.dragoverBubble)break}r=n}while(n=n.parentNode);Ur()}},_onTouchMove:function(r){if(qt){var n=this.options,i=n.fallbackTolerance,e=n.fallbackOffset,f=r.touches?r.touches[0]:r,t=z&&ee(z,!0),o=z&&t&&t.a,a=z&&t&&t.d,l=je&&xt&&Sr(xt),c=(f.clientX-qt.clientX+e.x)/(o||1)+(l?l[0]-er[0]:0)/(o||1),u=(f.clientY-qt.clientY+e.y)/(a||1)+(l?l[1]-er[1]:0)/(a||1);if(!K.active&&!ie){if(i&&Math.max(Math.abs(f.clientX-this._lastX),Math.abs(f.clientY-this._lastY))=0&&(It({rootEl:ut,name:"add",toEl:ut,fromEl:ot,originalEvent:r}),It({sortable:this,name:"remove",toEl:ut,originalEvent:r}),It({rootEl:ut,name:"sort",toEl:ut,fromEl:ot,originalEvent:r}),It({sortable:this,name:"sort",toEl:ut,originalEvent:r})),Et&&Et.save()):Mt!==se&&Mt>=0&&(It({sortable:this,name:"update",toEl:ut,originalEvent:r}),It({sortable:this,name:"sort",toEl:ut,originalEvent:r})),K.active&&((Mt==null||Mt===-1)&&(Mt=se,zt=Te),It({sortable:this,name:"end",toEl:ut,originalEvent:r}),this.save()))),this._nulling()},_nulling:function(){Dt("nulling",this),ot=C=ut=z=te=ct=Ge=Jt=qt=wt=Se=Mt=zt=se=Te=oe=Ie=Et=Me=K.dragged=K.ghost=K.clone=K.active=null,Ye.forEach(function(r){r.checked=!0}),Ye.length=_e=tr=0},handleEvent:function(r){switch(r.type){case"drop":case"dragend":this._onDrop(r);break;case"dragenter":case"dragover":C&&(this._onDragOver(r),gn(r));break;case"selectstart":r.preventDefault();break}},toArray:function(){for(var r=[],n,i=this.el.children,e=0,f=i.length,t=this.options;ei.right+e||s.clientX<=i.right&&s.clientY>i.bottom&&s.clientX>=i.left:s.clientX>i.right&&s.clientY>i.top||s.clientX<=i.right&&s.clientY>i.bottom+e}function bn(s,r,n,i,e,f,t,o){var a=i?s.clientY:s.clientX,l=i?n.height:n.width,c=i?n.top:n.left,u=i?n.bottom:n.right,d=!1;if(!t){if(o&&$ec+l*f/2:au-$e)return-Ie}else if(a>c+l*(1-e)/2&&au-l*f/2)?a>c+l/2?1:-1:0}function En(s){return dt(C)1&&(V.forEach(function(o){f.addAnimationState({target:o,rect:At?at(o):t}),ke(o),o.fromRect=t,i.removeAnimationState(o)}),At=!1,An(!this.options.removeCloneOnHide,e))},dragOverCompleted:function(n){var i=n.sortable,e=n.isOwner,f=n.insertion,t=n.activeSortable,o=n.parentEl,a=n.putSortable,l=this.options;if(f){if(e&&t._hideClone(),ge=!1,l.animation&&V.length>1&&(At||!e&&!t.options.sort&&!a)){var c=at(et,!1,!0,!0);V.forEach(function(d){d!==et&&(br(d,c),o.appendChild(d))}),At=!0}if(!e)if(At||Le(),V.length>1){var u=we;t._showClone(i),t.options.animation&&!we&&u&&Rt.forEach(function(d){t.addAnimationState({target:d,rect:me}),d.fromRect=me,d.thisAnimationDuration=null})}else t._showClone(i)}},dragOverAnimationCapture:function(n){var i=n.dragRect,e=n.isOwner,f=n.activeSortable;if(V.forEach(function(o){o.thisAnimationDuration=null}),f.options.animation&&!e&&f.multiDrag.isMultiDrag){me=jt({},i);var t=ee(et,!0);me.top-=t.f,me.left-=t.e}},dragOverAnimationComplete:function(){At&&(At=!1,Le())},drop:function(n){var i=n.originalEvent,e=n.rootEl,f=n.parentEl,t=n.sortable,o=n.dispatchSortableEvent,a=n.oldIndex,l=n.putSortable,c=l||this.sortable;if(i){var u=this.options,d=f.children;if(!ae)if(u.multiDragKey&&!this.multiDragKeyDown&&this._deselectMultiDrag(),st(et,u.selectedClass,!~V.indexOf(et)),~V.indexOf(et))V.splice(V.indexOf(et),1),pe=null,ye({sortable:t,rootEl:e,name:"deselect",targetEl:et,originalEvt:i});else{if(V.push(et),ye({sortable:t,rootEl:e,name:"select",targetEl:et,originalEvt:i}),i.shiftKey&&pe&&t.el.contains(pe)){var v=dt(pe),h=dt(et);if(~v&&~h&&v!==h){var p,g;for(h>v?(g=v,p=h):(g=h,p=v+1);g1){var S=at(et),b=dt(et,":not(."+this.options.selectedClass+")");if(!ge&&u.animation&&(et.thisAnimationDuration=null),c.captureAnimationState(),!ge&&(u.animation&&(et.fromRect=S,V.forEach(function(x){if(x.thisAnimationDuration=null,x!==et){var P=At?at(x):S;x.fromRect=P,c.addAnimationState({target:x,rect:P})}})),Le(),V.forEach(function(x){d[b]?f.insertBefore(x,d[b]):f.appendChild(x),b++}),a===dt(et))){var I=!1;V.forEach(function(x){if(x.sortableIndex!==dt(x)){I=!0;return}}),I&&o("update")}V.forEach(function(x){ke(x)}),c.animateAll()}Lt=c}(e===f||l&&l.lastPutMode!=="clone")&&Rt.forEach(function(x){x.parentNode&&x.parentNode.removeChild(x)})}},nullingGlobal:function(){this.isMultiDrag=ae=!1,Rt.length=0},destroyGlobal:function(){this._deselectMultiDrag(),Q(document,"pointerup",this._deselectMultiDrag),Q(document,"mouseup",this._deselectMultiDrag),Q(document,"touchend",this._deselectMultiDrag),Q(document,"keydown",this._checkKeyDown),Q(document,"keyup",this._checkKeyUp)},_deselectMultiDrag:function(n){if(!(typeof ae<"u"&&ae)&&Lt===this.sortable&&!(n&&Ut(n.target,this.options.draggable,this.sortable.el,!1))&&!(n&&n.button!==0))for(;V.length;){var i=V[0];st(i,this.options.selectedClass,!1),V.shift(),ye({sortable:this.sortable,rootEl:this.sortable.el,name:"deselect",targetEl:i,originalEvt:n})}},_checkKeyDown:function(n){n.key===this.options.multiDragKey&&(this.multiDragKeyDown=!0)},_checkKeyUp:function(n){n.key===this.options.multiDragKey&&(this.multiDragKeyDown=!1)}},jt(s,{pluginName:"multiDrag",utils:{select:function(n){var i=n.parentNode[Ot];!i||!i.options.multiDrag||~V.indexOf(n)||(Lt&&Lt!==i&&(Lt.multiDrag._deselectMultiDrag(),Lt=i),st(n,i.options.selectedClass,!0),V.push(n))},deselect:function(n){var i=n.parentNode[Ot],e=V.indexOf(n);!i||!i.options.multiDrag||!~e||(st(n,i.options.selectedClass,!1),V.splice(e,1))}},eventProperties:function(){var n=this,i=[],e=[];return V.forEach(function(f){i.push({multiDragElement:f,index:f.sortableIndex});var t;At&&f!==et?t=-1:At?t=dt(f,":not(."+n.options.selectedClass+")"):t=dt(f),e.push({multiDragElement:f,index:t})}),{items:Zr(V),clones:[].concat(Rt),oldIndicies:i,newIndicies:e}},optionListeners:{multiDragKey:function(n){return n=n.toLowerCase(),n==="ctrl"?n="Control":n.length>1&&(n=n.charAt(0).toUpperCase()+n.substr(1)),n}}})}function An(s,r){V.forEach(function(n,i){var e=r.children[n.sortableIndex+(s?Number(i):0)];e?r.insertBefore(n,e):r.appendChild(n)})}function Ir(s,r){Rt.forEach(function(n,i){var e=r.children[n.sortableIndex+(s?Number(i):0)];e?r.insertBefore(n,e):r.appendChild(n)})}function Le(){V.forEach(function(s){s!==et&&s.parentNode&&s.parentNode.removeChild(s)})}K.mount(new Tn);K.mount(hr,vr);const Cn=Object.freeze(Object.defineProperty({__proto__:null,MultiDrag:Dn,Sortable:K,Swap:In,default:K},Symbol.toStringTag,{value:"Module"})),Rn=Br(Cn);(function(s,r){(function(i,e){s.exports=e(Wr,Rn)})(typeof self<"u"?self:Kr,function(n,i){return function(e){var f={};function t(o){if(f[o])return f[o].exports;var a=f[o]={i:o,l:!1,exports:{}};return e[o].call(a.exports,a,a.exports,t),a.l=!0,a.exports}return t.m=e,t.c=f,t.d=function(o,a,l){t.o(o,a)||Object.defineProperty(o,a,{enumerable:!0,get:l})},t.r=function(o){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(o,"__esModule",{value:!0})},t.t=function(o,a){if(a&1&&(o=t(o)),a&8||a&4&&typeof o=="object"&&o&&o.__esModule)return o;var l=Object.create(null);if(t.r(l),Object.defineProperty(l,"default",{enumerable:!0,value:o}),a&2&&typeof o!="string")for(var c in o)t.d(l,c,(function(u){return o[u]}).bind(null,c));return l},t.n=function(o){var a=o&&o.__esModule?function(){return o.default}:function(){return o};return t.d(a,"a",a),a},t.o=function(o,a){return Object.prototype.hasOwnProperty.call(o,a)},t.p="",t(t.s="fb15")}({"00ee":function(e,f,t){var o=t("b622"),a=o("toStringTag"),l={};l[a]="z",e.exports=String(l)==="[object z]"},"0366":function(e,f,t){var o=t("1c0b");e.exports=function(a,l,c){if(o(a),l===void 0)return a;switch(c){case 0:return function(){return a.call(l)};case 1:return function(u){return a.call(l,u)};case 2:return function(u,d){return a.call(l,u,d)};case 3:return function(u,d,v){return a.call(l,u,d,v)}}return function(){return a.apply(l,arguments)}}},"057f":function(e,f,t){var o=t("fc6a"),a=t("241c").f,l={}.toString,c=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],u=function(d){try{return a(d)}catch{return c.slice()}};e.exports.f=function(v){return c&&l.call(v)=="[object Window]"?u(v):a(o(v))}},"06cf":function(e,f,t){var o=t("83ab"),a=t("d1e7"),l=t("5c6c"),c=t("fc6a"),u=t("c04e"),d=t("5135"),v=t("0cfb"),h=Object.getOwnPropertyDescriptor;f.f=o?h:function(g,S){if(g=c(g),S=u(S,!0),v)try{return h(g,S)}catch{}if(d(g,S))return l(!a.f.call(g,S),g[S])}},"0cfb":function(e,f,t){var o=t("83ab"),a=t("d039"),l=t("cc12");e.exports=!o&&!a(function(){return Object.defineProperty(l("div"),"a",{get:function(){return 7}}).a!=7})},"13d5":function(e,f,t){var o=t("23e7"),a=t("d58f").left,l=t("a640"),c=t("ae40"),u=l("reduce"),d=c("reduce",{1:0});o({target:"Array",proto:!0,forced:!u||!d},{reduce:function(h){return a(this,h,arguments.length,arguments.length>1?arguments[1]:void 0)}})},"14c3":function(e,f,t){var o=t("c6b6"),a=t("9263");e.exports=function(l,c){var u=l.exec;if(typeof u=="function"){var d=u.call(l,c);if(typeof d!="object")throw TypeError("RegExp exec method returned something other than an Object or null");return d}if(o(l)!=="RegExp")throw TypeError("RegExp#exec called on incompatible receiver");return a.call(l,c)}},"159b":function(e,f,t){var o=t("da84"),a=t("fdbc"),l=t("17c2"),c=t("9112");for(var u in a){var d=o[u],v=d&&d.prototype;if(v&&v.forEach!==l)try{c(v,"forEach",l)}catch{v.forEach=l}}},"17c2":function(e,f,t){var o=t("b727").forEach,a=t("a640"),l=t("ae40"),c=a("forEach"),u=l("forEach");e.exports=!c||!u?function(v){return o(this,v,arguments.length>1?arguments[1]:void 0)}:[].forEach},"1be4":function(e,f,t){var o=t("d066");e.exports=o("document","documentElement")},"1c0b":function(e,f){e.exports=function(t){if(typeof t!="function")throw TypeError(String(t)+" is not a function");return t}},"1c7e":function(e,f,t){var o=t("b622"),a=o("iterator"),l=!1;try{var c=0,u={next:function(){return{done:!!c++}},return:function(){l=!0}};u[a]=function(){return this},Array.from(u,function(){throw 2})}catch{}e.exports=function(d,v){if(!v&&!l)return!1;var h=!1;try{var p={};p[a]=function(){return{next:function(){return{done:h=!0}}}},d(p)}catch{}return h}},"1d80":function(e,f){e.exports=function(t){if(t==null)throw TypeError("Can't call method on "+t);return t}},"1dde":function(e,f,t){var o=t("d039"),a=t("b622"),l=t("2d00"),c=a("species");e.exports=function(u){return l>=51||!o(function(){var d=[],v=d.constructor={};return v[c]=function(){return{foo:1}},d[u](Boolean).foo!==1})}},"23cb":function(e,f,t){var o=t("a691"),a=Math.max,l=Math.min;e.exports=function(c,u){var d=o(c);return d<0?a(d+u,0):l(d,u)}},"23e7":function(e,f,t){var o=t("da84"),a=t("06cf").f,l=t("9112"),c=t("6eeb"),u=t("ce4e"),d=t("e893"),v=t("94ca");e.exports=function(h,p){var g=h.target,S=h.global,b=h.stat,I,x,P,O,w,U;if(S?x=o:b?x=o[g]||u(g,{}):x=(o[g]||{}).prototype,x)for(P in p){if(w=p[P],h.noTargetGet?(U=a(x,P),O=U&&U.value):O=x[P],I=v(S?P:g+(b?".":"#")+P,h.forced),!I&&O!==void 0){if(typeof w==typeof O)continue;d(w,O)}(h.sham||O&&O.sham)&&l(w,"sham",!0),c(x,P,w,h)}}},"241c":function(e,f,t){var o=t("ca84"),a=t("7839"),l=a.concat("length","prototype");f.f=Object.getOwnPropertyNames||function(u){return o(u,l)}},"25f0":function(e,f,t){var o=t("6eeb"),a=t("825a"),l=t("d039"),c=t("ad6d"),u="toString",d=RegExp.prototype,v=d[u],h=l(function(){return v.call({source:"a",flags:"b"})!="/a/b"}),p=v.name!=u;(h||p)&&o(RegExp.prototype,u,function(){var S=a(this),b=String(S.source),I=S.flags,x=String(I===void 0&&S instanceof RegExp&&!("flags"in d)?c.call(S):I);return"/"+b+"/"+x},{unsafe:!0})},"2ca0":function(e,f,t){var o=t("23e7"),a=t("06cf").f,l=t("50c4"),c=t("5a34"),u=t("1d80"),d=t("ab13"),v=t("c430"),h="".startsWith,p=Math.min,g=d("startsWith"),S=!v&&!g&&!!function(){var b=a(String.prototype,"startsWith");return b&&!b.writable}();o({target:"String",proto:!0,forced:!S&&!g},{startsWith:function(I){var x=String(u(this));c(I);var P=l(p(arguments.length>1?arguments[1]:void 0,x.length)),O=String(I);return h?h.call(x,O,P):x.slice(P,P+O.length)===O}})},"2d00":function(e,f,t){var o=t("da84"),a=t("342f"),l=o.process,c=l&&l.versions,u=c&&c.v8,d,v;u?(d=u.split("."),v=d[0]+d[1]):a&&(d=a.match(/Edge\/(\d+)/),(!d||d[1]>=74)&&(d=a.match(/Chrome\/(\d+)/),d&&(v=d[1]))),e.exports=v&&+v},"342f":function(e,f,t){var o=t("d066");e.exports=o("navigator","userAgent")||""},"35a1":function(e,f,t){var o=t("f5df"),a=t("3f8c"),l=t("b622"),c=l("iterator");e.exports=function(u){if(u!=null)return u[c]||u["@@iterator"]||a[o(u)]}},"37e8":function(e,f,t){var o=t("83ab"),a=t("9bf2"),l=t("825a"),c=t("df75");e.exports=o?Object.defineProperties:function(d,v){l(d);for(var h=c(v),p=h.length,g=0,S;p>g;)a.f(d,S=h[g++],v[S]);return d}},"3bbe":function(e,f,t){var o=t("861d");e.exports=function(a){if(!o(a)&&a!==null)throw TypeError("Can't set "+String(a)+" as a prototype");return a}},"3ca3":function(e,f,t){var o=t("6547").charAt,a=t("69f3"),l=t("7dd0"),c="String Iterator",u=a.set,d=a.getterFor(c);l(String,"String",function(v){u(this,{type:c,string:String(v),index:0})},function(){var h=d(this),p=h.string,g=h.index,S;return g>=p.length?{value:void 0,done:!0}:(S=o(p,g),h.index+=S.length,{value:S,done:!1})})},"3f8c":function(e,f){e.exports={}},4160:function(e,f,t){var o=t("23e7"),a=t("17c2");o({target:"Array",proto:!0,forced:[].forEach!=a},{forEach:a})},"428f":function(e,f,t){var o=t("da84");e.exports=o},"44ad":function(e,f,t){var o=t("d039"),a=t("c6b6"),l="".split;e.exports=o(function(){return!Object("z").propertyIsEnumerable(0)})?function(c){return a(c)=="String"?l.call(c,""):Object(c)}:Object},"44d2":function(e,f,t){var o=t("b622"),a=t("7c73"),l=t("9bf2"),c=o("unscopables"),u=Array.prototype;u[c]==null&&l.f(u,c,{configurable:!0,value:a(null)}),e.exports=function(d){u[c][d]=!0}},"44e7":function(e,f,t){var o=t("861d"),a=t("c6b6"),l=t("b622"),c=l("match");e.exports=function(u){var d;return o(u)&&((d=u[c])!==void 0?!!d:a(u)=="RegExp")}},4930:function(e,f,t){var o=t("d039");e.exports=!!Object.getOwnPropertySymbols&&!o(function(){return!String(Symbol())})},"4d64":function(e,f,t){var o=t("fc6a"),a=t("50c4"),l=t("23cb"),c=function(u){return function(d,v,h){var p=o(d),g=a(p.length),S=l(h,g),b;if(u&&v!=v){for(;g>S;)if(b=p[S++],b!=b)return!0}else for(;g>S;S++)if((u||S in p)&&p[S]===v)return u||S||0;return!u&&-1}};e.exports={includes:c(!0),indexOf:c(!1)}},"4de4":function(e,f,t){var o=t("23e7"),a=t("b727").filter,l=t("1dde"),c=t("ae40"),u=l("filter"),d=c("filter");o({target:"Array",proto:!0,forced:!u||!d},{filter:function(h){return a(this,h,arguments.length>1?arguments[1]:void 0)}})},"4df4":function(e,f,t){var o=t("0366"),a=t("7b0b"),l=t("9bdd"),c=t("e95a"),u=t("50c4"),d=t("8418"),v=t("35a1");e.exports=function(p){var g=a(p),S=typeof this=="function"?this:Array,b=arguments.length,I=b>1?arguments[1]:void 0,x=I!==void 0,P=v(g),O=0,w,U,T,M,j,Y;if(x&&(I=o(I,b>2?arguments[2]:void 0,2)),P!=null&&!(S==Array&&c(P)))for(M=P.call(g),j=M.next,U=new S;!(T=j.call(M)).done;O++)Y=x?l(M,I,[T.value,O],!0):T.value,d(U,O,Y);else for(w=u(g.length),U=new S(w);w>O;O++)Y=x?I(g[O],O):g[O],d(U,O,Y);return U.length=O,U}},"4fad":function(e,f,t){var o=t("23e7"),a=t("6f53").entries;o({target:"Object",stat:!0},{entries:function(c){return a(c)}})},"50c4":function(e,f,t){var o=t("a691"),a=Math.min;e.exports=function(l){return l>0?a(o(l),9007199254740991):0}},5135:function(e,f){var t={}.hasOwnProperty;e.exports=function(o,a){return t.call(o,a)}},5319:function(e,f,t){var o=t("d784"),a=t("825a"),l=t("7b0b"),c=t("50c4"),u=t("a691"),d=t("1d80"),v=t("8aa5"),h=t("14c3"),p=Math.max,g=Math.min,S=Math.floor,b=/\$([$&'`]|\d\d?|<[^>]*>)/g,I=/\$([$&'`]|\d\d?)/g,x=function(P){return P===void 0?P:String(P)};o("replace",2,function(P,O,w,U){var T=U.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,M=U.REPLACE_KEEPS_$0,j=T?"$":"$0";return[function(R,X){var N=d(this),$=R==null?void 0:R[P];return $!==void 0?$.call(R,N,X):O.call(String(N),R,X)},function(A,R){if(!T&&M||typeof R=="string"&&R.indexOf(j)===-1){var X=w(O,A,this,R);if(X.done)return X.value}var N=a(A),$=String(this),_=typeof R=="function";_||(R=String(R));var rt=N.global;if(rt){var yt=N.unicode;N.lastIndex=0}for(var lt=[];;){var ft=h(N,$);if(ft===null||(lt.push(ft),!rt))break;var gt=String(ft[0]);gt===""&&(N.lastIndex=v($,c(N.lastIndex),yt))}for(var mt="",ht=0,nt=0;nt=ht&&(mt+=$.slice(ht,Ct)+St,ht=Ct+it.length)}return mt+$.slice(ht)}];function Y(A,R,X,N,$,_){var rt=X+A.length,yt=N.length,lt=I;return $!==void 0&&($=l($),lt=b),O.call(_,lt,function(ft,gt){var mt;switch(gt.charAt(0)){case"$":return"$";case"&":return A;case"`":return R.slice(0,X);case"'":return R.slice(rt);case"<":mt=$[gt.slice(1,-1)];break;default:var ht=+gt;if(ht===0)return ft;if(ht>yt){var nt=S(ht/10);return nt===0?ft:nt<=yt?N[nt-1]===void 0?gt.charAt(1):N[nt-1]+gt.charAt(1):ft}mt=N[ht-1]}return mt===void 0?"":mt})}})},5692:function(e,f,t){var o=t("c430"),a=t("c6cd");(e.exports=function(l,c){return a[l]||(a[l]=c!==void 0?c:{})})("versions",[]).push({version:"3.6.5",mode:o?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},"56ef":function(e,f,t){var o=t("d066"),a=t("241c"),l=t("7418"),c=t("825a");e.exports=o("Reflect","ownKeys")||function(d){var v=a.f(c(d)),h=l.f;return h?v.concat(h(d)):v}},"5a34":function(e,f,t){var o=t("44e7");e.exports=function(a){if(o(a))throw TypeError("The method doesn't accept regular expressions");return a}},"5c6c":function(e,f){e.exports=function(t,o){return{enumerable:!(t&1),configurable:!(t&2),writable:!(t&4),value:o}}},"5db7":function(e,f,t){var o=t("23e7"),a=t("a2bf"),l=t("7b0b"),c=t("50c4"),u=t("1c0b"),d=t("65f0");o({target:"Array",proto:!0},{flatMap:function(h){var p=l(this),g=c(p.length),S;return u(h),S=d(p,0),S.length=a(S,p,p,g,0,1,h,arguments.length>1?arguments[1]:void 0),S}})},6547:function(e,f,t){var o=t("a691"),a=t("1d80"),l=function(c){return function(u,d){var v=String(a(u)),h=o(d),p=v.length,g,S;return h<0||h>=p?c?"":void 0:(g=v.charCodeAt(h),g<55296||g>56319||h+1===p||(S=v.charCodeAt(h+1))<56320||S>57343?c?v.charAt(h):g:c?v.slice(h,h+2):(g-55296<<10)+(S-56320)+65536)}};e.exports={codeAt:l(!1),charAt:l(!0)}},"65f0":function(e,f,t){var o=t("861d"),a=t("e8b5"),l=t("b622"),c=l("species");e.exports=function(u,d){var v;return a(u)&&(v=u.constructor,typeof v=="function"&&(v===Array||a(v.prototype))?v=void 0:o(v)&&(v=v[c],v===null&&(v=void 0))),new(v===void 0?Array:v)(d===0?0:d)}},"69f3":function(e,f,t){var o=t("7f9a"),a=t("da84"),l=t("861d"),c=t("9112"),u=t("5135"),d=t("f772"),v=t("d012"),h=a.WeakMap,p,g,S,b=function(T){return S(T)?g(T):p(T,{})},I=function(T){return function(M){var j;if(!l(M)||(j=g(M)).type!==T)throw TypeError("Incompatible receiver, "+T+" required");return j}};if(o){var x=new h,P=x.get,O=x.has,w=x.set;p=function(T,M){return w.call(x,T,M),M},g=function(T){return P.call(x,T)||{}},S=function(T){return O.call(x,T)}}else{var U=d("state");v[U]=!0,p=function(T,M){return c(T,U,M),M},g=function(T){return u(T,U)?T[U]:{}},S=function(T){return u(T,U)}}e.exports={set:p,get:g,has:S,enforce:b,getterFor:I}},"6eeb":function(e,f,t){var o=t("da84"),a=t("9112"),l=t("5135"),c=t("ce4e"),u=t("8925"),d=t("69f3"),v=d.get,h=d.enforce,p=String(String).split("String");(e.exports=function(g,S,b,I){var x=I?!!I.unsafe:!1,P=I?!!I.enumerable:!1,O=I?!!I.noTargetGet:!1;if(typeof b=="function"&&(typeof S=="string"&&!l(b,"name")&&a(b,"name",S),h(b).source=p.join(typeof S=="string"?S:"")),g===o){P?g[S]=b:c(S,b);return}else x?!O&&g[S]&&(P=!0):delete g[S];P?g[S]=b:a(g,S,b)})(Function.prototype,"toString",function(){return typeof this=="function"&&v(this).source||u(this)})},"6f53":function(e,f,t){var o=t("83ab"),a=t("df75"),l=t("fc6a"),c=t("d1e7").f,u=function(d){return function(v){for(var h=l(v),p=a(h),g=p.length,S=0,b=[],I;g>S;)I=p[S++],(!o||c.call(h,I))&&b.push(d?[I,h[I]]:h[I]);return b}};e.exports={entries:u(!0),values:u(!1)}},"73d9":function(e,f,t){var o=t("44d2");o("flatMap")},7418:function(e,f){f.f=Object.getOwnPropertySymbols},"746f":function(e,f,t){var o=t("428f"),a=t("5135"),l=t("e538"),c=t("9bf2").f;e.exports=function(u){var d=o.Symbol||(o.Symbol={});a(d,u)||c(d,u,{value:l.f(u)})}},7839:function(e,f){e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},"7b0b":function(e,f,t){var o=t("1d80");e.exports=function(a){return Object(o(a))}},"7c73":function(e,f,t){var o=t("825a"),a=t("37e8"),l=t("7839"),c=t("d012"),u=t("1be4"),d=t("cc12"),v=t("f772"),h=">",p="<",g="prototype",S="script",b=v("IE_PROTO"),I=function(){},x=function(T){return p+S+h+T+p+"/"+S+h},P=function(T){T.write(x("")),T.close();var M=T.parentWindow.Object;return T=null,M},O=function(){var T=d("iframe"),M="java"+S+":",j;return T.style.display="none",u.appendChild(T),T.src=String(M),j=T.contentWindow.document,j.open(),j.write(x("document.F=Object")),j.close(),j.F},w,U=function(){try{w=document.domain&&new ActiveXObject("htmlfile")}catch{}U=w?P(w):O();for(var T=l.length;T--;)delete U[g][l[T]];return U()};c[b]=!0,e.exports=Object.create||function(M,j){var Y;return M!==null?(I[g]=o(M),Y=new I,I[g]=null,Y[b]=M):Y=U(),j===void 0?Y:a(Y,j)}},"7dd0":function(e,f,t){var o=t("23e7"),a=t("9ed3"),l=t("e163"),c=t("d2bb"),u=t("d44e"),d=t("9112"),v=t("6eeb"),h=t("b622"),p=t("c430"),g=t("3f8c"),S=t("ae93"),b=S.IteratorPrototype,I=S.BUGGY_SAFARI_ITERATORS,x=h("iterator"),P="keys",O="values",w="entries",U=function(){return this};e.exports=function(T,M,j,Y,A,R,X){a(j,M,Y);var N=function(nt){if(nt===A&<)return lt;if(!I&&nt in rt)return rt[nt];switch(nt){case P:return function(){return new j(this,nt)};case O:return function(){return new j(this,nt)};case w:return function(){return new j(this,nt)}}return function(){return new j(this)}},$=M+" Iterator",_=!1,rt=T.prototype,yt=rt[x]||rt["@@iterator"]||A&&rt[A],lt=!I&&yt||N(A),ft=M=="Array"&&rt.entries||yt,gt,mt,ht;if(ft&&(gt=l(ft.call(new T)),b!==Object.prototype&>.next&&(!p&&l(gt)!==b&&(c?c(gt,b):typeof gt[x]!="function"&&d(gt,x,U)),u(gt,$,!0,!0),p&&(g[$]=U))),A==O&&yt&&yt.name!==O&&(_=!0,lt=function(){return yt.call(this)}),(!p||X)&&rt[x]!==lt&&d(rt,x,lt),g[M]=lt,A)if(mt={values:N(O),keys:R?lt:N(P),entries:N(w)},X)for(ht in mt)(I||_||!(ht in rt))&&v(rt,ht,mt[ht]);else o({target:M,proto:!0,forced:I||_},mt);return mt}},"7f9a":function(e,f,t){var o=t("da84"),a=t("8925"),l=o.WeakMap;e.exports=typeof l=="function"&&/native code/.test(a(l))},"825a":function(e,f,t){var o=t("861d");e.exports=function(a){if(!o(a))throw TypeError(String(a)+" is not an object");return a}},"83ab":function(e,f,t){var o=t("d039");e.exports=!o(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})},8418:function(e,f,t){var o=t("c04e"),a=t("9bf2"),l=t("5c6c");e.exports=function(c,u,d){var v=o(u);v in c?a.f(c,v,l(0,d)):c[v]=d}},"861d":function(e,f){e.exports=function(t){return typeof t=="object"?t!==null:typeof t=="function"}},8875:function(e,f,t){var o,a,l;(function(c,u){a=[],o=u,l=typeof o=="function"?o.apply(f,a):o,l!==void 0&&(e.exports=l)})(typeof self<"u"?self:this,function(){function c(){var u=Object.getOwnPropertyDescriptor(document,"currentScript");if(!u&&"currentScript"in document&&document.currentScript||u&&u.get!==c&&document.currentScript)return document.currentScript;try{throw new Error}catch(w){var d=/.*at [^(]*\((.*):(.+):(.+)\)$/ig,v=/@([^@]*):(\d+):(\d+)\s*$/ig,h=d.exec(w.stack)||v.exec(w.stack),p=h&&h[1]||!1,g=h&&h[2]||!1,S=document.location.href.replace(document.location.hash,""),b,I,x,P=document.getElementsByTagName("script");p===S&&(b=document.documentElement.outerHTML,I=new RegExp("(?:[^\\n]+?\\n){0,"+(g-2)+"}[^<]* true ) ); $shortcode = new Ecwid_Shortcode_Categories( $params ); return $shortcode->render(); } public function get_params() { $params = parent::get_params(); $params['has_categories'] = true; if ( ecwid_is_demo_store() ) { $params['has_categories'] = false; } else { $api = new Ecwid_Api_V3(); $params['has_categories'] = $api->has_public_categories(); } return $params; } }ecwid-shopping-cart/includes/gutenberg/class-ecwid-gutenberg-block-category-page.php000064400000000334151222736030024710 0ustar00get_store_profile(); $params['filtersEnabled'] = true; // phpcs:disable WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase if ( isset( $settings->productFiltersSettings ) && isset( $settings->productFiltersSettings->enabledInStorefront ) ) { $params['filtersEnabled'] = $settings->productFiltersSettings->enabledInStorefront; } // phpcs:enable WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase return $params; } public function get_attributes_for_editor() { $attributes = parent::get_attributes_for_editor(); $overrides = array( 'show_breadcrumbs' => false, ); foreach ( $overrides as $name => $editor_default ) { $attributes[ $name ]['profile_default'] = $attributes[ $name ]['default']; $attributes[ $name ]['default'] = $editor_default; } return $attributes; } public function render_callback( $params ) { $params['no_html_catalog'] = 1; $result = parent::render_callback( $params ); $result .= self::get_script_for_open_filters_page(); return $result; } public static function get_script_for_open_filters_page() { ob_start(); ?> true, ) ); ob_start(); ?> get_attributes_for_editor(); foreach ( array( 'fixed_shape', 'layout', 'icon' ) as $param ) { if ( ! @$params[ $param ] ) { $params[ $param ] = $attributes[ $param ]['default']; } } ?>

    ' data-layout='' data-icon='' >
    ' . $contents . ''; } return $contents; } public function get_attributes_for_editor() { $minicart_attributes = array( 'layout' => array( 'name' => 'layout', 'title' => __( 'Layout', 'ecwid-shopping-cart' ), 'values' => Ecwid_Floating_Minicart::get_layouts(), 'default' => 'BIG_ICON_TITLE_SUBTOTAL', ), 'icon' => array( 'name' => 'icon', 'title' => __( 'Cart icon', 'ecwid-shopping-cart' ), 'values' => Ecwid_Floating_Minicart::get_icons(), 'default' => 'BAG', ), 'fixed_shape' => array( 'name' => 'fixed_shape', 'title' => __( 'Border', 'ecwid-shopping-cart' ), 'values' => Ecwid_Floating_Minicart::get_fixed_shapes(), 'default' => 'RECT', ), ); $attributes = array(); foreach ( $minicart_attributes as $name => $attr ) { $result = array(); $result['name'] = $attr['name']; $result['title'] = $attr['title']; $result['default'] = $attr['default']; $result['values'] = array(); foreach ( $attr['values'] as $value => $title ) { $result['values'][] = array( 'value' => $value, 'title' => $title, ); } $attributes[ $name ] = $result; } return $attributes; } } ecwid-shopping-cart/includes/gutenberg/class-ecwid-gutenberg-block-product-page.php000064400000001444151222736030024556 0ustar00 false, 'product_details_show_breadcrumbs' => false ); foreach ( $overrides as $name => $editor_default ) { $attributes[$name]['profile_default'] = $attributes[$name]['default']; $attributes[$name]['default'] = $editor_default; } return $attributes; } }ecwid-shopping-cart/includes/gutenberg/class-ecwid-gutenberg-block-product.php000064400000004101151222736030023635 0ustar00 0, 'show_picture' => true, 'show_title' => true, 'show_price' => true, 'show_options' => true, 'show_addtobag' => true, 'show_border' => true, 'center_align' => true, 'show_price_on_button' => true ) ); $display = array( 'picture', 'title', 'price', 'options', 'qty', 'addtobag' ); $params['display'] = ''; $display_string = ''; foreach ( $display as $name ) { if ( @$params['show_' . $name] ) { $params['display'] .= ' ' . $name; } } $params['version'] = 2; $shortcode = new Ecwid_Shortcode_Product( $params ); $contents = $shortcode->render(); $align = @$params['align']; if ( $align == 'right' || $align == "left" ) { $contents = '
    ' . $contents . '
    '; } return $contents; } public function get_icon_path() { return 'M16.43,5.12c-0.13-1.19-0.15-1.19-1.35-1.33c-0.21-0.02-0.21-0.02-0.43-0.05c-0.01,0.06,0.06,0.78,0.14,1.13 c0.57,0.37,0.87,0.98,0.87,1.71c0,1.14-0.93,2.07-2.07,2.07s-2.07-0.93-2.07-2.07c0-0.54,0.09-0.97,0.55-1.4 c-0.06-0.61-0.19-1.54-0.18-1.64C10.14,3.46,8.72,3.46,8.58,3.6l-8.17,8.13c-0.56,0.55-0.56,1.43,0,1.97l5.54,5.93 c0.56,0.55,1.46,0.55,2.01,0l8.67-8.14C17.04,11.09,16.68,7.14,16.43,5.12z M16.06,0.04c-1.91,0-3.46,1.53-3.46,3.41c0,0.74,0.4,3.09,0.44,3.28c0.07,0.34,0.52,0.56,0.86,0.49 C14,7.19,14.07,7.15,14.12,7.1c0.24-0.11,0.32-0.39,0.25-0.68c-0.09-0.45-0.39-2.44-0.39-2.94c0-1.16,0.94-2.09,2.11-2.09 c1.24,0,2.11,0.96,2.11,2.34c0,2.43-0.31,4.23-0.32,4.26c-0.1,0.17-0.1,0.38-0.03,0.55c0.03,0.17,0.13,0.31,0.28,0.4 c0.1,0.06,0.22,0.09,0.33,0.09c0.21,0,0.42-0.1,0.54-0.3c0.06-0.09,0.52-2.17,0.52-5.03C19.52,1.61,18.04,0.04,16.06,0.04z'; } }ecwid-shopping-cart/includes/gutenberg/class-ecwid-gutenberg-block-search.php000064400000000642151222736030023430 0ustar00 true ) ); $shortcode = new Ecwid_Shortcode_Search( $params ); return $shortcode->render(); } }ecwid-shopping-cart/includes/gutenberg/class-ecwid-gutenberg-block-store.php000064400000031123151222736030023315 0ustar00id; } $params = array( 'attributes' => $this->get_attributes_for_editor(), 'isNewProductList' => $this->_is_new_product_list(), 'isNewDetailsPage' => $this->_is_new_details_page(), 'isEnabledProductSubtitles' => $this->_is_enabled_product_subtitles(), 'storeBlockTitle' => _x( 'Store', 'gutenberg-store-block-stub', 'ecwid-shopping-cart' ), 'shortcodeName' => Ecwid_Shortcode_Base::get_current_store_shortcode_name(), 'title' => __( 'Store Home Page', 'ecwid-shopping-cart' ), 'icon' => self::get_icon_path(), 'isDemoStore' => ecwid_is_demo_store(), 'isLivePreviewEnabled' => $this->is_live_preview_for_gutenberg_enabled(), 'randomProductId' => $random_product_id, 'customizeMinicartText' => sprintf( __( 'You can enable an extra shopping bag icon widget that will appear on your site pages. Open “Appearance → Customize → %2$s” menu to enable it.', 'ecwid-shopping-cart' ), 'customize.php?autofocus[section]=' . Ecwid_Customizer::SECTION_MINICART . '&return=' . rawurlencode( remove_query_arg( wp_removable_query_args(), $request_uri ) ), Ecwid_Config::get_brand() ), ); $params = array_merge( $params, $this->_get_common_block_params() ); return $params; } public function render_callback( $params ) { $print_js_refresh_config = false; $is_wp_customize = isset( $_REQUEST['wp_customize'] ) && $_REQUEST['wp_customize'] == 'on'; $is_get_request = isset( $_SERVER['REQUEST_METHOD'] ) && $_SERVER['REQUEST_METHOD'] == 'GET'; if ( ! $is_get_request && ! $is_wp_customize ) { return ''; } $result = '[ecwid'; $params['widgets'] = 'productbrowser'; if ( isset( $params['show_categories'] ) ) { $params['widgets'] .= ' categories'; } if ( isset( $params['show_search'] ) ) { $params['widgets'] .= ' search'; } foreach ( $params as $key => $value ) { if ( is_object( $value ) || is_array( $value ) ) { $value = json_encode( $value, JSON_FORCE_OBJECT ); } $result .= " $key='$value'"; } $result .= ']'; $config_js = array(); $attributes = $this->get_attributes_for_editor(); $store_page_data = array(); foreach ( $attributes as $key => $attribute ) { $name = $attribute['name']; if ( ! isset( $params[ $name ] ) ) { $store_page_data[ $name ] = $attribute['default']; } $value = null; if ( isset( $params[ $name ] ) ) { $value = $params[ $name ]; } if ( $name == 'show_description_under_image' ) { $layout = ( isset( $params['product_details_layout'] ) ) ? $params['product_details_layout'] : null; if ( is_null( $layout ) ) { $layout = $attributes['product_details_layout']['default']; } $applicableLayouts = array( 'TWO_COLUMNS_SIDEBAR_ON_THE_LEFT', 'TWO_COLUMNS_SIDEBAR_ON_THE_RIGHT' ); if ( in_array( $layout, $applicableLayouts ) ) { if ( $layout == 'TWO_COLUMNS_SIDEBAR_ON_THE_LEFT' ) { $name = 'product_details_two_columns_with_left_sidebar_show_product_description_on_sidebar'; } elseif ( $layout == 'TWO_COLUMNS_SIDEBAR_ON_THE_RIGHT' ) { $name = 'product_details_two_columns_with_right_sidebar_show_product_description_on_sidebar'; } $attribute['is_storefront_api'] = true; $api = new Ecwid_Api_V3(); $settings = $api->get_store_profile(); if ( $settings ) { $design_settings = $settings->designSettings; $value = isset( $params['show_description_under_image'] ) ? ! $params['show_description_under_image'] : $design_settings->$name; $attribute['profile_default'] = $design_settings->$name; } } }//end if if ( $name == 'storefront_view' && ! isset( $params['default_category_id'] ) ) { if ( $value !== 'FILTERS_PAGE' ) { $attribute['type'] = 'boolean'; $attribute['is_storefront_api'] = true; foreach ( $attribute['values'] as $item ) { if ( $item['value'] == $value ) { $selected_attribute = $item; $name = $selected_attribute['config_name']; $value = $selected_attribute['config_value']; break; } } } else { $is_need_open_filter_page = true; $config_js[] = 'window.ec.storefront.show_breadcrumbs=false'; } }//end if if ( isset( $attribute['is_storefront_api'] ) && $attribute['is_storefront_api'] && strpos( $name, 'chameleon' ) === false ) { if ( is_null( $value ) ) { $value = $attribute['default']; } $profile_default = isset( $attribute['profile_default'] ) ? $attribute['profile_default'] : $attribute['default']; $is_profile_default = $profile_default === $value; if ( ! $is_profile_default ) { if ( @$attribute['type'] == 'boolean' ) { $config_js[] = 'window.ec.storefront.' . $name . '=' . ( $value === true ? 'true' : 'false' ) . ';'; } else { $config_js[] = 'window.ec.storefront.' . $name . "='" . $value . "';"; } $store_page_data[ $name ] = $value; } } }//end foreach $colors = array(); foreach ( array( 'foreground', 'background', 'link', 'price', 'button' ) as $kind ) { $color = ( isset( $params[ 'chameleon_color_' . $kind ] ) ) ? $params[ 'chameleon_color_' . $kind ] : false; if ( $color ) { $colors[ 'color-' . $kind ] = $color; } } if ( empty( $colors ) ) { $colors = 'auto'; } $colors = json_encode( $colors ); $chameleon = apply_filters( 'ecwid_chameleon_settings', array( 'colors' => $colors ) ); if ( ! is_array( $chameleon ) ) { $chameleon = array( 'colors' => $colors, ); } if ( ! isset( $chameleon['colors'] ) ) { $chameleon['colors'] = json_encode( $colors ); } $store_page_data['chameleon-colors'] = $chameleon['colors']; Ecwid_Store_Page::save_store_page_params( $store_page_data ); $chameleon_config_js = ''; if ( $chameleon['colors'] != '"auto"' ) { $chameleon_config_js .= 'window.ec.config.chameleon = window.ec.config.chameleon || Object();' . PHP_EOL; $chameleon_config_js .= 'window.ec.config.chameleon.colors = ' . $chameleon['colors'] . ';' . PHP_EOL; } if ( count( $config_js ) || ! empty( $chameleon_config_js ) ) { $result .= '' . PHP_EOL; } if ( isset( $is_need_open_filter_page ) && class_exists( 'Ecwid_Gutenberg_Block_Filters_Page' ) ) { $result .= Ecwid_Gutenberg_Block_Filters_Page::get_script_for_open_filters_page(); } return $result; } public function get_attributes_for_editor() { $api = new Ecwid_Api_V3(); if ( $api->is_available() && $api->get_store_profile() ) { $settings = $api->get_store_profile()->designSettings; } else { $settings = new stdClass(); } $attributes = Ecwid_Product_Browser::get_attributes(); $to_remove = array( 'product_details_two_columns_with_left_sidebar_show_product_description_on_sidebar', 'product_details_two_columns_with_right_sidebar_show_product_description_on_sidebar', ); foreach ( $to_remove as $name ) { unset( $attributes[ $name ] ); } $attributes['show_description_under_image'] = array( 'name' => 'show_description_under_image', 'title' => __( 'Show description under the image', 'ecwid-shopping-cart' ), 'default' => false, 'type' => 'boolean', ); foreach ( $attributes as $key => $attribute ) { $name = $attribute['name']; $default = null; if ( property_exists( $settings, $name ) ) { $default = $settings->$name; } if ( $name == 'storefront_view' && isset( $settings->enable_catalog_on_one_page ) && $settings->enable_catalog_on_one_page ) { $default = 'EXPAND_CATEGORIES'; } $prop_to_default_exceptions = array( 'product_list_category_image_aspect_ratio' => 'product_list_image_aspect_ratio', 'product_list_category_image_size' => 'product_list_image_size', ); if ( array_key_exists( $name, $prop_to_default_exceptions ) ) { $another_name = $prop_to_default_exceptions[ $name ]; if ( property_exists( $settings, $another_name ) ) { $default = $settings->$another_name; } } if ( $default !== null ) { $attributes[ $key ]['profile_default'] = $attributes[ $key ]['default'] = $default; } }//end foreach $categories = ecwid_get_categories_for_selector(); if ( $categories ) { $attributes['default_category_id']['values'] = array( array( 'value' => '0', 'title' => __( 'Store root category', 'ecwid-shopping-cart' ), ), ); foreach ( $categories as $category ) { if ( empty( $category->enabled ) ) { continue; } $attributes['default_category_id']['values'][] = array( 'value' => $category->id, 'title' => $category->name, ); } $attributes['default_category_id']['default'] = ''; } else { $api = new Ecwid_Api_V3(); $cats = $api->get_categories( array() ); if ( $cats && $cats->total == 0 ) { unset( $attributes['default_category_id'] ); } }//end if $attributes['align'] = array( 'type' => 'string', 'default' => 'full', 'name' => 'align', ); $attributes['widgets'] = array( 'type' => 'string', 'default' => '', 'name' => 'widgets', ); return $attributes; } protected function _is_new_product_list() { $api = new Ecwid_Api_V3(); return ecwid_is_demo_store() || ! Ecwid_Api_V3::is_available() || $api->is_store_feature_enabled( Ecwid_Api_V3::FEATURE_NEW_PRODUCT_LIST ); } protected function _is_new_details_page() { $api = new Ecwid_Api_V3(); return ecwid_is_demo_store() || ! Ecwid_Api_V3::is_available() || $api->is_store_feature_enabled( Ecwid_Api_V3::FEATURE_NEW_DETAILS_PAGE ); } protected function _is_enabled_product_subtitles() { $api = new Ecwid_Api_V3(); return $api->is_store_feature_available( Ecwid_Api_V3::FEATURE_PRODUCT_SUBTITLES ); } protected function is_live_preview_for_gutenberg_enabled() { if ( get_option( 'ecwid_live_preview_for_gutenberg_enabled', '' ) === 'N' ) { return false; } return true; } public function get_icon_path() { return 'M15.32,15.58c-0.37,0-0.66,0.3-0.66,0.67c0,0.37,0.3,0.67,0.66,0.67c0.37,0,0.67-0.3,0.67-0.67 C15.98,15.88,15.69,15.58,15.32,15.58z M15.45,0H4.55C2.04,0,0,2.04,0,4.55v10.91C0,17.97,2.04,20,4.55,20h10.91c2.51,0,4.55-2.04,4.55-4.55V4.55 C20,2.04,17.96,0,15.45,0z M12.97,4.94C13.54,4.94,14,5.4,14,5.96s-0.46,1.03-1.03,1.03c-0.57,0-1.03-0.46-1.03-1.03 C11.95,5.4,12.41,4.94,12.97,4.94z M12.97,8.02c0.57,0,1.03,0.46,1.03,1.03c0,0.57-0.46,1.03-1.03,1.03c-0.57,0-1.03-0.46-1.03-1.03 C11.95,8.48,12.41,8.02,12.97,8.02z M9.98,4.94c0.57,0,1.03,0.46,1.03,1.03s-0.46,1.03-1.03,1.03c-0.57,0-1.03-0.46-1.03-1.03 C8.95,5.4,9.41,4.94,9.98,4.94z M9.98,8.02c0.57,0,1.03,0.46,1.03,1.03s-0.46,1.03-1.03,1.03c-0.57,0-1.03-0.46-1.03-1.03 C8.95,8.48,9.41,8.02,9.98,8.02z M7.03,4.94c0.57,0,1.03,0.46,1.03,1.03S7.6,6.99,7.03,6.99C6.46,6.99,6,6.53,6,5.96 C6,5.4,6.46,4.94,7.03,4.94z M7.03,8.02c0.57,0,1.03,0.46,1.03,1.03s-0.46,1.03-1.03,1.03C6.46,10.08,6,9.62,6,9.05 C6,8.48,6.46,8.02,7.03,8.02z M4.6,18.02c-1.02,0-1.86-0.83-1.86-1.86c0-1.03,0.83-1.86,1.86-1.86c1.03,0,1.86,0.83,1.86,1.86 C6.45,17.19,5.62,18.02,4.6,18.02z M15.32,18.1c-1.02,0-1.86-0.83-1.86-1.86c0-1.03,0.83-1.86,1.86-1.86c1.03,0,1.86,0.83,1.86,1.86 C17.17,17.27,16.34,18.1,15.32,18.1z M18.48,2.79l-1.92,7.14c-0.51,1.91-2.03,3.1-4,3.1H7.2c-1.91,0-3.26-1.09-3.84-2.91L1.73,5 C1.7,4.9,1.72,4.79,1.78,4.71c0.06-0.09,0.16-0.14,0.27-0.14l0.31,0c0.75,0,1.41,0.49,1.64,1.2l1.2,3.76 c0.32,1.02,1.26,1.7,2.33,1.7h4.81c1.1,0,2.08-0.74,2.36-1.81l1.55-5.78c0.2-0.75,0.89-1.28,1.67-1.28h0.24 c0.1,0,0.2,0.05,0.26,0.13C18.48,2.58,18.5,2.68,18.48,2.79z M4.6,15.5c-0.37,0-0.66,0.3-0.66,0.67c0,0.37,0.3,0.67,0.66,0.67c0.37,0,0.67-0.3,0.67-0.67 S4.96,15.5,4.6,15.5z'; } } ecwid-shopping-cart/includes/gutenberg/class-ecwid-gutenberg.php000064400000023155151222736030021101 0ustar00 $block_name ) { require_once dirname( __FILE__ ) . "/class-ecwid-gutenberg-block-$block.php"; $class_name = 'Ecwid_Gutenberg_Block_' . str_replace( '-', '_', ucfirst( $block ) ); $this->_blocks[] = new $class_name(); } foreach ( $this->_blocks as $block ) { $block->register(); } add_action( 'admin_init', array( $this, 'init_scripts' ) ); add_action( 'enqueue_block_editor_assets', array( $this, 'enqueue_block_editor_assets' ) ); add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) ); add_action( 'rest_insert_post', array( $this, 'on_save_post' ), 10, 3 ); add_action( 'rest_insert_page', array( $this, 'on_save_post' ), 10, 3 ); $version = get_bloginfo( 'version' ); if ( strpos( $version, '5.8' ) === 0 || version_compare( $version, '5.8' ) >= 0 ) { add_filter( 'block_categories_all', array( $this, 'block_categories' ) ); } else { add_filter( 'block_categories', array( $this, 'block_categories' ) ); } } public function init_scripts() { wp_register_script( 'ecwid-gutenberg-store', ECWID_PLUGIN_URL . 'js/gutenberg/blocks.build.js', array( 'wp-blocks', 'wp-i18n', 'wp-element', 'wp-editor' ), get_option( 'ecwid_plugin_version' ) ); wp_set_script_translations( 'ecwid-gutenberg-store', 'ecwid-shopping-cart', ECWID_PLUGIN_DIR . '/languages' ); } public function admin_enqueue_scripts() { wp_enqueue_script( 'gutenberg-store' ); EcwidPlatform::enqueue_style( 'store-popup' ); } public function block_categories( $categories ) { $store_block = new Ecwid_Gutenberg_Block_Store(); $ec_category = array( 'slug' => 'ec-store', 'title' => sprintf( __( '%s', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ), 'icon' => '', ); $is_store_page = Ecwid_Store_Page::is_store_page(); $installed_within_one_weeks = time() - get_option( 'ecwid_installation_date' ) < WEEK_IN_SECONDS; if ( $is_store_page || ( ! $is_store_page && $installed_within_one_weeks ) ) { return array_merge( array( $ec_category ), $categories ); } return array_merge( $categories, array( $ec_category ) ); } public function on_save_post( $post, $request, $creating ) { if ( strpos( $post->post_content, '', $content, ( '' !== $module_id ? sprintf( ' id="%1$s"', esc_attr( $module_id ) ) : '' ), ( '' !== $module_class ? sprintf( ' %1$s', esc_attr( $module_class ) ) : '' ) ); return $output; } public function shortcode_callback( $atts, $content, $function_name ) { $module_id = $this->shortcode_atts['module_id']; $module_class = $this->shortcode_atts['module_class']; $module_class = ET_Builder_Element::add_module_order_class( $module_class, $function_name ); $content = do_shortcode( $this->shortcode_atts['raw_content'] ); $output = sprintf( ' %1$s ', $content, ( '' !== $module_id ? sprintf( ' id="%1$s"', esc_attr( $module_id ) ) : '' ), ( '' !== $module_class ? sprintf( ' %1$s', esc_attr( $module_class ) ) : '' ) ); return $output; } } new ET_Builder_Module_Ecwid(); }//end if } ecwid-shopping-cart/includes/integrations/class-ecwid-integration-elementor.php000064400000007116151222736030024155 0ustar00=' ); $is_needed_wp_version = version_compare( get_bloginfo( 'version' ), '5.4.1', '>=' ); if ( $is_needed_php_version && $is_needed_wp_version ) { add_action( 'elementor/elements/categories_registered', array( $this, 'add_custom_widget_categories' ) ); add_action( 'elementor/widgets/widgets_registered', array( $this, 'init_custom_widgets' ), 10, 1 ); } if ( $this->_should_apply() ) { add_action( 'widgets_init', array( $this, 'init_sidebar_widgets' ) ); } add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ) ); add_filter( 'ecwid_page_has_product_browser', array( $this, 'page_has_product_browser' ), 10, 3 ); } protected function _should_apply() { global $pagenow; return ! ( is_admin() && $pagenow == 'widgets.php' ); } public function init_sidebar_widgets() { if ( class_exists( 'Ecwid_Widget_Product_Browser' ) ) { register_widget( 'Ecwid_Widget_Product_Browser' ); } } private function include_custom_widgets_files() { require_once ECWID_PLUGIN_DIR . self::EC_WIDGETS_PATH . '/class-ec-elementor-widget-store.php'; require_once ECWID_PLUGIN_DIR . self::EC_WIDGETS_PATH . '/class-ec-elementor-widget-buynow.php'; } public function init_custom_widgets( $widgets_manager ) { if ( ! class_exists( '\Elementor\Plugin' ) || ! class_exists( '\Elementor\Widget_Base' ) ) { return; } $this->include_custom_widgets_files(); $widgets_manager->register_widget_type( new Ec_Elementor_Widget_Store() ); $widgets_manager->register_widget_type( new Ec_Elementor_Widget_Buynow() ); } public function add_custom_widget_categories( $elements_manager ) { $elements_manager->add_category( 'ec-store', array( 'title' => sprintf( // translators: %s: brand __( '%s Store', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ), 'icon' => 'fa fa-plug', ) ); } public function enqueue_scripts() { wp_enqueue_style( 'ec-elementor', ECWID_PLUGIN_URL . 'css/integrations/elementor.css', array(), get_option( 'ecwid_plugin_version' ) ); } public function page_has_product_browser( $result, $content, $post_id ) { if ( $result ) { return true; } $meta = get_post_meta( $post_id, '_elementor_data', true ); if ( ! empty( $meta ) ) { if ( ! is_array( $meta ) ) { $data = json_decode( $meta, true ); } if ( is_array( $data ) ) { $this->has_widget = false; array_walk_recursive( $data, array( $this, 'filter_page_data' ) ); } if ( $this->has_widget ) { return true; } } return $result; } public function filter_page_data( $item, $key ) { if ( $key === 'widgetType' && $item === 'ec_store' ) { $this->has_widget = true; } } } class Ec_Integration_Elementor_Stub_Renderer extends Ecwid_Stub_Renderer { public function __construct() { parent::__construct(); } protected function _should_apply() { if ( isset( $_REQUEST['action'] ) && in_array( $_REQUEST['action'], array( 'elementor_ajax', 'elementor' ) ) ) { return true; } if ( isset( $_GET['elementor-preview'] ) ) { return true; } return false; } public function enqueue_scripts() { parent::enqueue_scripts(); } } $__ecwid_integration_elementor = new Ecwid_Integration_Elementor(); $__ecwid_integration_elementor_stub_render = new Ec_Integration_Elementor_Stub_Renderer(); ecwid-shopping-cart/includes/integrations/class-ecwid-integration-google-sitemap-generator.php000064400000003072151222736030027060 0ustar00 'Version' ), 'plugin' ); $this->plugin_version = $plugin_data['version']; } public function build_sitemap() { return ecwid_build_sitemap( array( $this, 'sitemap_callback' ) ); } //phpcs:disable WordPress.NamingConventions.ValidVariableName.VariableNotSnakeCase public function sitemap_callback( $url, $priority, $frequency ) { if ( ! class_exists( 'GoogleSitemapGenerator' ) || ! class_exists( 'GoogleSitemapGeneratorPage' ) ) { return false; } if ( version_compare( $this->plugin_version, '4.1.2', '>=' ) ) { $generator_object = GoogleSitemapGenerator::get_instance(); } else { $generator_object = GoogleSitemapGenerator::GetInstance(); } if ( $generator_object !== null ) { $page = new GoogleSitemapGeneratorPage( $url, $priority, $frequency ); if ( version_compare( $this->plugin_version, '4.1.2', '>=' ) ) { $generator_object->add_element( $page ); } else { $generator_object->AddElement( $page ); } } } //phpcs:enable WordPress.NamingConventions.ValidVariableName.VariableNotSnakeCase } new Ecwid_Integration_Google_Sitemap_Generator(); ecwid-shopping-cart/includes/integrations/class-ecwid-integration-gutenberg.php000064400000041015151222736030024141 0ustar00 'ecwid-gutenberg-store', 'render_callback' => array( $this, 'render_callback' ), ) ); register_block_type( self::PRODUCT_BLOCK, array( 'editor_script' => 'ecwid-gutenberg-store', 'render_callback' => array( $this, 'product_render_callback' ), ) ); add_filter( 'block_categories', array( $this, 'block_categories' ) ); } public function admin_enqueue_scripts() { wp_enqueue_script( 'gutenberg-store' ); EcwidPlatform::enqueue_style( 'store-popup' ); } public function block_categories( $categories ) { return array_merge( $categories, array( array( 'slug' => 'ec-store', 'title' => sprintf( __( '%s', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ), 'icon' => '', ), ) ); } public function on_save_post( $post, $request, $creating ) { if ( strpos( $post->post_content, '" . $shortcode_content . ""; return $shortcode_content; } public function render() { if ( ! $this->_should_render ) { return ''; } $custom_renderer = apply_filters( 'ecwid_shortcode_custom_renderer', null, $this ); if ( is_callable( $custom_renderer ) ) { return call_user_func( $custom_renderer, $this ); } return self::_default_render(); } public function render_script() { $params_string = $this->build_params_string( array_merge( $this->_params, array( 'id' => $this->get_html_id() ) ) ); $function = $this->get_ecwid_widget_function_name(); if ( ! Ec_Store_Defer_Init::is_enabled() ) { return sprintf( '', $function, $params_string ); } else { return Ec_Store_Defer_Init::print_js_widget( $function, $this->get_html_id(), $params_string ); } } public function render_placeholder() { $classname = $this->_get_html_class_name(); $id = $this->get_html_id(); return '
    '; } protected function _get_html_class_name() { return $this->get_shortcode_name(); } public function get_html_id() { return 'ecwid-shopping-cart-' . $this->get_shortcode_name() . '-' . ( $this->_index + 1 ); } protected function _default_render() { $result = ''; $result .= $this->render_placeholder(); $result .= $this->render_script(); $result = apply_filters( 'ecwid_' . $this->get_shortcode_name() . '_shortcode_content', $result ); if ( $result ) { return $this->wrap_code( $result ); } return ''; } public function build_params_string( $params = null ) { if ( is_null( $params ) ) { $params = $this->_params; } unset( $params['noHTMLCatalog'] ); $pieces = array(); if ( ! empty( $params ) ) { foreach ( $params as $key => $value ) { $pieces[] = sprintf( '%s=%s', esc_attr( $key ), esc_attr( $value ) ); } } return '"' . implode( '","', $pieces ) . '"'; } public function get_params() { return $this->_params; } } ecwid-shopping-cart/includes/shortcodes/class-ecwid-shortcode-categories.php000064400000001344151222736030023423 0ustar00_should_render = ( isset( $params['is_ecwid_shortcode'] ) && $params['is_ecwid_shortcode'] ) ? true : get_option( 'ecwid_show_categories' ); } public static function get_shortcode_name() { return 'categories'; } public function get_ecwid_widget_function_name() { return 'xCategoriesV2'; } public function render_placeholder() { $classname = $this->_get_html_class_name(); $id = $this->get_html_id(); return '
    '; } } ecwid-shopping-cart/includes/shortcodes/class-ecwid-shortcode-minicart.php000064400000004026151222736030023104 0ustar00 null, 'is_ecwid_shortcode' => false, ), $shortcode_attributes ); $layout = $params['layout']; if ( ! in_array( $layout, array( '', 'attachToCategories', 'floating', 'Mini', 'MiniAttachToProductBrowser', ), true ) ) { $layout = 'MiniAttachToProductBrowser'; } $this->_params = array( 'layout' => $layout, ); if ( $params['is_ecwid_shortcode'] ) { // it is a part of the ecwid shortcode, we need to show it anyways $ecwid_enable_minicart = $ecwid_show_categories = true; } else { // it is a ecwid_minicart widget that works based on appearance settings $ecwid_enable_minicart = get_option( 'ecwid_enable_minicart' ); $ecwid_show_categories = get_option( 'ecwid_show_categories' ); } $this->_should_render = ! empty( $ecwid_enable_minicart ) && ! empty( $ecwid_show_categories ); } public static function get_shortcode_name() { return 'minicart'; } public function get_ecwid_widget_function_name() { return 'xMinicart'; } public function render() { $default_render = parent::render(); if ( ! isset( $this->_params['layout'] ) || $this->_params['layout'] != 'MiniAttachToProductBrowser' ) { return $default_render; } $has_minicart = ( strpos( $default_render, 'xMinicart' ) !== false ); if ( $has_minicart && Ecwid_Static_Page::is_enabled_static_home_page() ) { $default_render .= ''; } return $default_render; } public function build_params_string( $params = null ) { if ( ! is_null( $params ) && array_key_exists( 'id', $params ) && isset( $params['layout'] ) && $params['layout'] == 'MiniAttachToProductBrowser' ) { unset( $params['id'] ); } return parent::build_params_string( $params ); } } ecwid-shopping-cart/includes/shortcodes/class-ecwid-shortcode-productbrowser.php000064400000027646151222736030024377 0ustar00check_base_urls_on_view_store_page_as_admin(); } $option_print_html_catalog = get_option( 'ecwid_print_html_catalog', 'Y' ); if ( ! Ecwid_Static_Page::is_data_available() || @$this->_params['noHTMLCatalog'] || empty( $option_print_html_catalog ) ) { add_filter( 'ecwid_is_defer_store_init_enabled', '__return_false' ); $code = self::get_dynamic_html_code(); if ( ! empty( $this->_params['default_page'] ) ) { $code .= $this->get_js_for_open_page( $this->_params['default_page'] ); } return $code; } $code = ''; $code .= self::get_js_for_adding_html_id(); $classname = ''; $is_default_render = false; if ( Ecwid_Static_Page::is_enabled_static_home_page() ) { add_filter( 'ecwid_hide_defer_load_script', '__return_true', 10000 ); $code .= self::get_js_for_switch_dynamic( 'static-ec-store-container', 'dynamic-ec-store-container' ); $classname = 'hide-ec-dynamic-placeholder'; } else { $is_default_render = true; $code .= self::get_js_for_hide_static( '#static-ec-store-container' ); add_filter( 'ecwid_is_defer_store_init_enabled', '__return_false' ); } $code .= '
    '; $code .= htmlspecialchars_decode( Ecwid_Static_Page::get_html_code() ); $js_code = Ecwid_Static_Page::get_js_code(); if ( ! empty( $js_code ) ) { $code .= sprintf( '', $js_code ) . PHP_EOL; } $code .= '
    '; $code .= self::get_dynamic_html_code( $is_default_render, $classname ); $force_dynamic_js_code = 'if( typeof window.ec.storefront.staticPages != "undefined" && typeof window.ec.storefront.staticPages.forceDynamicLoadingIfRequired != "undefined" ) { window.ec.storefront.staticPages.forceDynamicLoadingIfRequired(); }'; wp_add_inline_script( 'ecwid-' . Ecwid_Static_Page::HANDLE_STATIC_PAGE, $force_dynamic_js_code ); return $code; } protected function get_dynamic_html_code( $is_default_render = true, $classname = '' ) { if ( ! Ec_Store_Defer_Init::is_enabled() || $is_default_render ) { $default_render = parent::render(); $code = '
    ' . $default_render . '
    ' . PHP_EOL; } else { $code = '
    ' . PHP_EOL; $code = $this->wrap_code( $code ); } return $code; } protected function get_js_for_adding_html_id() { global $ecwid_current_theme; if ( $ecwid_current_theme ) { ob_start(); ?> build_params_string( array_merge( $this->_params, array( 'id' => 'dynamic-ec-store' ) ) ); ob_start(); ?> 0, ); if ( $this->_lang ) { $params['lang'] = $this->_lang; } if ( isset( $this->_params['defaultCategoryId'] ) ) { $params['default_category_id'] = $this->_params['defaultCategoryId']; } if ( ! empty( $this->_params['defaultProductId'] ) ) { $params['default_product_id'] = $this->_params['defaultProductId']; } Ecwid_Store_Page::save_store_page_params( $params ); $classname = $this->_get_html_class_name(); $pb_placeholder = ''; if ( Ec_Store_Defer_Init::is_enabled() ) { ob_start(); require ECWID_PLUGIN_DIR . '/templates/shortcode-pb-placeholder.php'; $pb_placeholder = ob_get_clean(); } $result = '
    ' . $pb_placeholder . '
    '; return $result; } protected function _process_params( $shortcode_params = array() ) { $atts = shortcode_atts( array( 'categories_per_row' => false, 'grid' => false, 'list' => false, 'table' => false, 'search_view' => false, 'category_view' => false, ), $shortcode_params ); $grid = explode( ',', $atts['grid'] ); if ( count( $grid ) === 2 ) { $atts['grid_rows'] = intval( $grid[0] ); $atts['grid_cols'] = intval( $grid[1] ); } else { list($atts['grid_rows'], $atts['grid_cols']) = array( false, false ); } $list_of_views = array( 'list', 'grid', 'table' ); $cats_per_row = $atts['categories_per_row'] ? $atts['categories_per_row'] : get_option( 'ecwid_pb_categoriesperrow' ); $products_per_column_in_grid = $atts['grid_rows'] ? $atts['grid_rows'] : get_option( 'ecwid_pb_productspercolumn_grid' ); $products_per_row_in_grid = $atts['grid_cols'] ? $atts['grid_cols'] : get_option( 'ecwid_pb_productsperrow_grid' ); $products_in_list = $atts['list'] ? $atts['list'] : get_option( 'ecwid_pb_productsperpage_list' ); $products_in_table = $atts['table'] ? $atts['table'] : get_option( 'ecwid_pb_productsperpage_table' ); $default_view = $atts['category_view'] ? $atts['category_view'] : get_option( 'ecwid_pb_defaultview' ); $search_view = $atts['search_view'] ? $atts['search_view'] : get_option( 'ecwid_pb_searchview' ); $ecwid_default_category_id = $this->_get_param_default_category_id( $shortcode_params ); $store_id = get_ecwid_store_id(); if ( empty( $cats_per_row ) ) { $cats_per_row = 3; } if ( empty( $products_per_column_in_grid ) ) { $products_per_column_in_grid = 3; } if ( empty( $products_per_row_in_grid ) ) { $products_per_row_in_grid = 3; } if ( empty( $products_in_list ) ) { $products_in_list = 10; } if ( empty( $products_in_table ) ) { $products_in_table = 20; } if ( empty( $default_view ) || ! in_array( $default_view, $list_of_views ) ) { $default_view = 'grid'; } if ( empty( $search_view ) || ! in_array( $search_view, $list_of_views ) ) { $search_view = 'list'; } $input_params = array( 'id' => "ecwid-store-$store_id", 'views' => "grid($products_per_column_in_grid,$products_per_row_in_grid) list($products_in_list) table($products_in_table)", ); if ( ecwid_is_legacy_appearance_used() ) { $legacy_input_params = array( 'categoriesPerRow' => $cats_per_row, 'categoryView' => $default_view, 'searchView' => $search_view, ); $input_params = array_merge( $input_params, $legacy_input_params ); } if ( $ecwid_default_category_id ) { $input_params['defaultCategoryId'] = $ecwid_default_category_id; } if ( isset( $shortcode_params['default_product_id'] ) && $shortcode_params['default_product_id'] > 0 ) { $input_params['defaultProductId'] = $shortcode_params['default_product_id']; } if ( isset( $shortcode_params['no_html_catalog'] ) ) { $input_params['noHTMLCatalog'] = $shortcode_params['no_html_catalog']; } if ( isset( $shortcode_params['default_page'] ) ) { $input_params['default_page'] = $shortcode_params['default_page']; } $this->_params = $input_params; } /** * Get default category id * * @param $shortcode_params * * @return mixed|void */ protected function _get_param_default_category_id( $shortcode_params ) { $ecwid_default_category_id = ! empty( $shortcode_params ) && array_key_exists( 'default_category_id', $shortcode_params ) ? $shortcode_params['default_category_id'] : get_option( 'ecwid_default_category_id' ); return $ecwid_default_category_id; } public function get_js_for_open_page( $page = '' ) { $allowed_pages = array( 'cart', 'search', ); if ( ! in_array( $page, $allowed_pages ) ) { return false; } ob_start(); ?> (.*?)<\/script>/is'; $is_found_static_js = preg_match( $pattern, $output, $m ); if ( $is_found_static_js ) { preg_match( $pattern, $output, $matches ); if ( ! empty( $matches[2] ) ) { $static_js = $matches[2]; if ( strpos( $static_js, '&' ) !== false ) { $static_js = str_replace( '&', '&', $static_js ); $output = preg_replace( $pattern, "", $output, 1 ); } } } echo $output; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } } add_action( 'template_redirect', 'Ecwid_Shortcode_ProductBrowser::init_static_js_repair' ); ecwid-shopping-cart/includes/shortcodes/class-ecwid-shortcode-product.php000064400000012531151222736030022756 0ustar00 null, 'display' => 'picture title price options addtobag', 'link' => 'yes', 'version' => '1', 'show_border' => '1', 'show_price_on_button' => '1', 'center_align' => '1', ), $shortcode_params ); $id = $attributes['id']; if ( is_null( $id ) || ! is_numeric( $id ) || $id <= 0 ) { $this->_should_render = false; return; } if ( $attributes['link'] == 'yes' && ! ecwid_is_store_page_available() ) { $attributes['link'] = 'no'; } $version = $attributes['version']; if ( ! in_array( $version, array( '1', '2' ) ) ) { $attributes['version'] = 1; } $this->_params = $attributes; } public function render_placeholder() { $widget_parts = array(); if ( $this->_params['version'] == 1 ) { $widget_parts = $this->_get_widget_parts_v1(); } elseif ( $this->_params['version'] == 2 ) { $widget_parts = $this->_get_widget_parts_v2(); } $display_items = $widget_parts['display_items']; $result = $widget_parts['opening_div']; $items = preg_split( '![^0-9^a-z^A-Z^\-^_]!', $this->_params['display'] ); $product = Ecwid_Product::get_without_loading( $this->_params['id'], (object) array( 'name' => '' ) ); if ( is_array( $items ) && count( $items ) > 0 ) { foreach ( $items as $item ) { if ( array_key_exists( $item, $display_items ) ) { if ( $item == 'title' ) { $display_items[ $item ] = str_replace( '$name', $product->name, $display_items[ $item ] ); } if ( $item == 'price' ) { $display_items[ $item ] = str_replace( '$price', $product->price, $display_items[ $item ] ); } if ( $this->_params['link'] == 'yes' && in_array( $item, array( 'title', 'picture' ) ) ) { $product_link = $product->link; $result .= '' . $display_items[ $item ] . ''; } else { $result .= $display_items[ $item ]; } } } }//end if $result .= ''; $result .= ' '; // APPS-892, otherwise there is no space between consecutive widgets update_option( 'ecwid_single_product_used', time() ); return $result; } public function get_ecwid_widget_function_name() { return $this->_params['version'] == 1 ? 'xSingleProduct' : 'xProduct'; } protected function _get_widget_parts_v1() { return array( 'display_items' => array( 'picture' => '
    ', 'title' => '
    ', 'price' => '
    ' . '
    ' . '
    ', 'options' => '
    ', 'qty' => '
    ', 'addtobag' => '
    ', ), 'opening_div' => sprintf( '
    ', $this->_params['id'], $this->_params['id'], $this->get_html_id() ), ); } protected function _get_widget_parts_v2() { $price_location_attributes = ' data-spw-price-location="button"'; $main_div_classes = array( 'ecwid', 'ecwid-SingleProduct-v2', 'ecwid-Product', 'ecwid-Product-' . $this->_params['id'], ); if ( $this->_params['show_border'] != 0 ) { // defaults to 1 $bordered_class = ''; $main_div_classes[] = 'ecwid-SingleProduct-v2-bordered'; } if ( $this->_params['center_align'] == 1 ) { // defaults to 0 $main_div_classes[] = 'ecwid-SingleProduct-v2-centered'; } $main_div_class = implode( ' ', $main_div_classes ); if ( $this->_params['show_price_on_button'] == 0 ) { // defaults to 1 $price_location_attributes = ''; } return array( 'display_items' => array( 'picture' => '
    ', 'title' => '
    ', 'price' => '
    ' . '
    ' . '
    ' . '
    ' . '
    ', 'options' => '
    ', 'qty' => '
    ', 'addtobag' => '
    ', ), 'opening_div' => sprintf( '
    ', $this->_params['id'], $this->get_html_id() ), ); } public function build_params_string( $params = null ) { if ( ! is_null( $params ) && array_key_exists( 'id', $params ) ) { unset( $params['id'] ); } return parent::build_params_string( $params ); } } ecwid-shopping-cart/includes/shortcodes/class-ecwid-shortcode-search.php000064400000000755151222736030022550 0ustar00_should_render = (isset($params['is_ecwid_shortcode']) && $params['is_ecwid_shortcode']) ? true : get_option('ecwid_show_search_box'); } public static function get_shortcode_name() { return 'search'; } public function get_ecwid_widget_function_name() { return 'xSearch'; } }ecwid-shopping-cart/includes/shortcodes/class-ecwid-shortcode-stub.php000064400000001173151222736030022253 0ustar00_get_html_class_name(); $id = $this->get_html_id(); return '
    '; } } ecwid-shopping-cart/includes/themes/class-ecwid-theme-avada.php000064400000002263151222736030020573 0ustar00create_scroller( array( 'scroll' => 95 ) ); } public function shortcode_content( $content ) { ob_start(); ?> name = $name; if ( is_admin() ) { return; } if ( array_key_exists( 'scroll', $props ) ) { $theme->create_scroller( $props ); } if ( in_array( 'js', $props, true ) ) { $theme->add_js(); } if ( in_array( 'css', $props, true ) ) { $theme->add_css(); } if ( in_array( 'css-no-parent', $props, true ) ) { $theme->add_css( '' ); } if ( in_array( 'historyjs_html4mode', $props, true ) ) { $theme->historyjs_html4mode = true; } if ( in_array( self::PROP_USE_JS_API_FOR_CATS_NAV_MENU, $props, true ) ) { add_filter( Ecwid_Nav_Menus::FILTER_USE_JS_API_FOR_CATS_MENU, array( $theme, 'filter_use_js_api_for_cats_menu' ) ); } if ( in_array( self::PROP_AJAX_DEFER_RENDERING, $props, true ) ) { add_filter( Ecwid_Ajax_Defer_Renderer::FILTER_ENABLED, '__return_true' ); } if ( in_array( 'title', $props, true ) ) { $store_page_params = Ecwid_Store_Page::get_store_page_params(); if ( @$store_page_params['product_details_show_product_name'] ) { add_filter( 'option_' . Ecwid_Store_Page::OPTION_REPLACE_TITLE, '__return_false' ); } } return $theme; } public function filter_use_js_api_for_cats_menu( $value ) { return Ecwid_Nav_Menus::OPTVAL_USE_JS_API_FOR_CATS_MENU_TRUE; } protected function add_js() { wp_enqueue_script( 'ecwid-theme-js', ECWID_PLUGIN_URL . 'js/themes/' . $this->name . '.js', array( 'jquery' ), get_option( 'ecwid_plugin_version' ), false ); } public function create_scroller( $props ) { $this->scroll_indent = $props['scroll']; if ( is_admin_bar_showing() ) { $this->scroll_indent += $this->scroll_indent_admin_bar; } add_filter( 'ecwid_inline_js_config', array( $this, 'ecwid_inline_js_config_hook' ) ); } public function ecwid_inline_js_config_hook( $js ) { $js .= 'window.ec.config.scroll_indent = ' . $this->scroll_indent . ';'; return $js; } protected function add_css( $parent = null ) { $name = strtolower( $this->name ); if ( is_null( $parent ) ) { $parent = array( $name . '-style' ); } elseif ( empty( $parent ) ) { $parent = array(); } else { $parent = array( $parent ); } wp_enqueue_style( 'ecwid-theme-css', ECWID_PLUGIN_URL . 'css/themes/' . $name . '.css', $parent, get_option( 'ecwid_plugin_version' ) ); } } ecwid-shopping-cart/includes/themes/class-ecwid-theme-boundless.php000064400000001610151222736030021510 0ustar00getOptionValue('page_transitions'); } return false; } } return new Ecwid_Theme_Bridge();ecwid-shopping-cart/includes/themes/class-ecwid-theme-central.php000064400000001111151222736030021136 0ustar00is_wireframe_view() ) { add_filter( 'ecwid_scriptjs_code', '__return_false' ); } if ( $this->is_visual_view() ) { remove_all_filters( 'ecwid_inline_js_config' ); } if ( isset( $_REQUEST['page_id'] ) && $this->is_visual_view() ) { add_action( 'wp_footer', array( $this, 'add_scriptjs_code' ) ); } add_filter( 'single_post_title', array( $this, 'single_post_title' ), 10000, 2 ); add_action( 'plugins_loaded', array( $this, 'init_builder_integration' ) ); } public function init_builder_integration() { require_once ECWID_PLUGIN_DIR . 'includes/integrations/class-ecwid-integration-divibuilder.php'; } public function is_wireframe_view() { return isset( $_REQUEST['et_bfb'] ); } public function is_visual_view() { return isset( $_REQUEST['et_fb'] ) && ! isset( $_REQUEST['et_bfb'] ); } public function add_scriptjs_code() { echo ecwid_get_scriptjs_code(); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } public function single_post_title( $post_title, $post ) { $ecwid_title = _ecwid_get_seo_title(); if ( ! empty( $ecwid_title ) ) { return $ecwid_title; } return $post_title; } } return new Ecwid_Divi(); ecwid-shopping-cart/includes/themes/class-ecwid-theme-enfold.php000064400000001023151222736030020757 0ustar00 need_advanced_layout() ) { wp_enqueue_style( 'ecwid-theme-adjustments' , ECWID_PLUGIN_URL . 'css/themes/responsive-adjustments.css', array(), get_option('ecwid_plugin_version'), 'all' ); wp_enqueue_script( 'ecwid-theme', ECWID_PLUGIN_URL . 'js/themes/responsive.js', array( 'jquery' ), get_option('ecwid_plugin_version'), true ); add_filter( 'ecwid_minicart_shortcode_content', array( $this, 'minicart_shortcode_content' ) ); add_filter( 'ecwid_search_shortcode_content', array( $this, 'search_shortcode_content' ) ); } wp_enqueue_style( 'ecwid-open-sans' , 'https://fonts.googleapis.com/css?family=Open+Sans:400,700&subset=latin,cyrillic-ext,cyrillic,greek-ext,vietnamese,greek,latin-ext'); wp_enqueue_style( 'dashicons' ); wp_enqueue_style( 'ecwid-theme-fixes' , ECWID_PLUGIN_URL . 'css/themes/responsive.css', array(), get_option('ecwid_plugin_version'), 'all' ); add_filter('body_class', array($this, 'body_class')); } else { add_action('ecwid_store_page_created', array($this, 'on_create_store_page')); add_action('switch_theme', array($this, 'switch_theme')); } } public function switch_theme() { } public function minicart_shortcode_content( $content ) { if ( Ecwid_Store_Page::is_store_page() ) { $content = ''; } return $content; } public function search_shortcode_content( $content ) { $content .= ''; return $content; } public function body_class($classes) { if (get_option('ecwid_show_search_box')) { $classes[] = 'ecwid-with-search'; } return $classes; } public function on_create_store_page($page_id) { update_post_meta($page_id, '_wp_page_template', 'full-width-page.php'); } protected function need_advanced_layout() { return get_option('ecwid_advanced_theme_layout') == 'Y'; } } return new Ecwid_Theme_Responsive();ecwid-shopping-cart/includes/themes/class-ecwid-theme-themify-music.php000064400000001022151222736030022272 0ustar00 array( 'label' => __('Shop', 'ecwid-shopping-cart') ), '_multiwidget' => 1 ); } else { $options[2] = array( 'label' => __('Shop', 'ecwid-shopping-cart') ); } update_option('widget_ecwidstorelink', $options); } } } return new Ecwid_Theme_2015();ecwid-shopping-cart/includes/themes/class-ecwid-theme-twentynineteen.php000064400000000676151222736030022605 0ustar00' . $content . '
    '; } } return new Ecwid_Theme_2019();ecwid-shopping-cart/includes/themes/class-ecwid-theme-twentyseventeen.php000064400000003401151222736030022761 0ustar00 '#222', 'color-foreground' => '#fff', 'color-link' => '#fff', 'color-button' => '#888', 'color-price' => '#ddd' ) ); } return $chameleon; } public function on_ecwid_plugin_installed() { $widgets = get_option('sidebars_widgets'); if ( strpos( implode( ' ', $widgets['sidebar-1'] ), 'ecwidstorelink' ) === false ) { array_unshift( $widgets['sidebar-1'], 'ecwidstorelink-2' ); wp_set_sidebars_widgets( $widgets ); $options = get_option( 'widget_ecwidstorelink' ); if (!$options) { $options = array( 2 => array( 'label' => __( 'Shop', 'ecwid-shopping-cart' ) ), '_multiwidget' => 1 ); } else { $options[2] = array( 'label' => __( 'Shop', 'ecwid-shopping-cart' ) ); } update_option( 'widget_ecwidstorelink', $options ); } } } return new Ecwid_Theme_2017();ecwid-shopping-cart/includes/themes/class-ecwid-theme-twentysixteen.php000064400000002464151222736030022454 0ustar00 array( 'label' => __('Shop', 'ecwid-shopping-cart') ), '_multiwidget' => 1 ); } else { $options[2] = array( 'label' => __('Shop', 'ecwid-shopping-cart') ); } update_option('widget_ecwidstorelink', $options); } } } return new Ecwid_Theme_2016();ecwid-shopping-cart/includes/themes/class-ecwid-theme-vantage.php000064400000001051151222736030021136 0ustar00 $item) { if( !isset($item->ecwid_page_type) || $item->ecwid_page_type != 'category' ) { continue; } $items[$key]->ID = 0; } } return $items; } } return new Ecwid_Theme_Woodiex();ecwid-shopping-cart/includes/themes/class-ecwid-theme-zenlife.php000064400000001051151222736030021145 0ustar00_hide_title = true; $widget_ops = array( 'classname' => 'widget_ecwid_badge', 'description' => __( "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid.", 'ecwid-shopping-cart' ), ); parent::__construct( 'ecwidbadge', __( 'Ecwid Badge', 'ecwid-shopping-cart' ), $widget_ops ); $this->available_badges = array( 'ecwid-shopping-cart-widget-5' => array( 'name' => 'ecwid-shopping-cart-widget-5', 'width' => '73', 'height' => '20', 'alt' => __( 'Ecwid shopping cart widget', 'ecwid-shopping-cart' ), ), 'ecwid-shopping-cart-widget-6' => array( 'name' => 'ecwid-shopping-cart-widget-6', 'width' => '73', 'height' => '20', 'alt' => __( 'Ecwid shopping cart widget', 'ecwid-shopping-cart' ), ), 'ecwid-ecommerce-solution-2' => array( 'name' => 'ecwid-ecommerce-solution-2', 'width' => '165', 'height' => '58', 'alt' => __( 'Ecwid ecommerce solution', 'ecwid-shopping-cart' ), ), 'ecwid-free-shopping-cart-2' => array( 'name' => 'ecwid-free-shopping-cart-2', 'width' => '175', 'height' => '58', 'alt' => __( 'Ecwid free shopping cart', 'ecwid-shopping-cart' ), ), 'ecwid-shopping-cart-3' => array( 'name' => 'ecwid-shopping-cart-3', 'width' => '165', 'height' => '56', 'alt' => __( 'Ecwid shopping cart', 'ecwid-shopping-cart' ), ), 'ecwid-ecommerce-widgets-3' => array( 'name' => 'ecwid-ecommerce-widgets-3', 'width' => '165', 'height' => '58', 'alt' => __( 'Ecwid e-commerce widgets', 'ecwid-shopping-cart' ), ), 'ecwid-shopping-cart-3' => array( 'name' => 'ecwid-shopping-cart-3', 'width' => '165', 'height' => '56', 'alt' => __( 'Ecwid shopping cart', 'ecwid-shopping-cart' ), ), 'ecwid-ecommerce-widgets-3' => array( 'name' => 'ecwid-ecommerce-widgets-3', 'width' => '165', 'height' => '58', 'alt' => __( 'Ecwid e-commerce widgets', 'ecwid-shopping-cart' ), ), 'ecwid-ecommerce-solution-3' => array( 'name' => 'ecwid-ecommerce-solution-3', 'width' => '165', 'height' => '58', 'alt' => __( 'Ecwid ecommerce solution', 'ecwid-shopping-cart' ), ), 'ecwid-free-shopping-cart-3' => array( 'name' => 'ecwid-free-shopping-cart-3', 'width' => '175', 'height' => '58', 'alt' => __( 'Ecwid free shopping cart', 'ecwid-shopping-cart' ), ), ); } protected function _render_widget_content( $args, $instance ) { //phpcs:ignore PSR2.Methods.MethodDeclaration.Underscore if ( ! isset( $instance['badge_id'] ) || ! array_key_exists( $instance['badge_id'], $this->available_badges ) ) { return; } $badge = $this->available_badges[ $instance['badge_id'] ]; $url = sprintf( $this->url_template, $badge['name'] ); if ( ! isset( $instance['badge_id'] ) || ! array_key_exists( $instance['badge_id'], $this->available_badges ) ) { return; } ob_start(); ?> available_badges ) ? $new_instance['badge_id'] : ''; return $instance; } public function form( $instance ) { $instance = wp_parse_args( (array) $instance, array( 'badge_id' => 'ecwid-shopping-cart-widget-5' ) ); foreach ( $this->available_badges as $id => $widget ) { $element_id = "badge-$id"; $name = $this->get_field_name( 'badge_id' ); $checked = ''; if ( isset( $instance['badge_id'] ) && $instance['badge_id'] == $id ) { //phpcs:ignore Universal.Operators.StrictComparisons.LooseEqual $checked = 'checked="checked"'; } $url = sprintf( $this->url_template, $id ); ?> widget_number = 1; parent::__construct( $id_base, $name, $widget_options, $control_options ); } public function widget( $args, $instance ) { $before_widget = ''; $before_title = ''; $after_title = ''; $after_widget = ''; extract( $args ); //phpcs:ignore WordPress.PHP.DontExtract.extract_extract $renderer = apply_filters( 'ecwid_get_custom_widget_renderer', null ); if ( ! is_null( $renderer ) ) { $content = call_user_func_array( $renderer, array( $this, $args, $instance ) ); } else { $content = $this->_render_widget_content( $args, $instance ); } if ( empty( $content ) ) { return; } echo $before_widget; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped if ( ! $this->_hide_title ) { $title = ' '; if ( isset( $instance['title'] ) && ! empty( $instance['title'] ) ) { $title = $instance['title']; } $title = apply_filters( 'widget_title', $title ); if ( $title ) { echo $before_title . $title . $after_title; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } } echo $content; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped echo $after_widget; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } } ecwid-shopping-cart/includes/widgets/class-ecwid-widget-floating-shopping-cart.php000064400000012466151222736030024446 0ustar00 'widget_ecwid_floating_shopping_cart', 'description' => __( 'Adds a shopping cart widget to the top right corner of your site.', 'ecwid-shopping-cart' ), ); parent::__construct( 'ecwidfloatingshoppingcart', __( 'Shopping Cart Floating (deprecated)', 'ecwid-shopping-cart' ), $widget_ops ); add_action( 'init', array( $this, 'init' ) ); } public function init() { if ( is_active_widget( false, false, $this->id_base, true ) || get_option( self::OPTION_DISPLAY_POSITION ) ) { add_filter( 'body_class', array( $this, 'body_class' ) ); add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ) ); add_action( 'wp_footer', array( $this, 'render' ) ); } } public function enqueue_scripts() { if ( self::$was_enqueued ) { return; } wp_enqueue_script( 'ecwid-floating-shopping-cart', ECWID_PLUGIN_URL . '/js/floating-shopping-cart.js', array( 'jquery' ), get_option( 'ecwid_plugin_version' ), true ); $move_to_body = get_option( self::OPTION_MOVE_INTO_BODY ); if ( $move_to_body === '' ) { $move_to_body = is_plugin_active( 'wptouch/wptouch.php' ); } wp_localize_script( 'ecwid-floating-shopping-cart', 'ecwid_floating_shopping_cart_options', array( 'move_to_body' => intval( $move_to_body ), ) ); wp_enqueue_style( 'ecwid-floating-shopping-cart', ECWID_PLUGIN_URL . 'css/floating-shopping-cart.css', array(), get_option( 'ecwid_plugin_version' ) ); } public function body_class( $classes ) { $classes[] = 'ecwid-floating-shopping-cart'; return $classes; } protected function _render_widget_content( $args, $instance ) { //phpcs:ignore PSR2.Methods.MethodDeclaration.Underscore return ''; } public function render() { if ( Ecwid_Ajax_Defer_Renderer::get_instance()->is_enabled() ) { return; } $position = get_option( self::OPTION_DISPLAY_POSITION ); if ( ! $position ) { $options = get_option( 'widget_ecwidfloatingshoppingcart' ); if ( is_array( $options ) ) { foreach ( $options as $key => $option ) { if ( is_array( $option ) && isset( $option['position'] ) ) { $position = $option['position']; break; } } } } if ( ! $position ) { return; } $position = in_array( $position, self::$positions, true ) ? $position : self::$default_position; if ( Ecwid_Store_Page::is_store_page() ) { $cart_url = '#!/~/cart'; } else { $cart_url = Ecwid_Store_Page::get_cart_url(); } ?> self::$default_position ) ); $position = $instance['position']; echo '

    ' . esc_html__( 'Position', 'ecwid-shopping-cart' ) . ':

    '; echo '

    '; echo '

    '; } } ecwid-shopping-cart/includes/widgets/class-ecwid-widget-latest-products.php000064400000001317151222736030023215 0ustar00_init( __( 'Latest Products', 'ecwid-shopping-cart' ), __( 'Displays the latest added products from your store. Show new products to returning customers to drive repeat sales.', 'ecwid-shopping-cart' ), 'ecwidlatestproducts' ); parent::__construct(); } protected function _get_products() { $api = new Ecwid_Api_V3(); $result = $api->search_products( array( 'sortBy' => 'ADDED_TIME_DESC', 'limit' => $this->_instance['number_of_products'], ) ); return @$result->items; } } ecwid-shopping-cart/includes/widgets/class-ecwid-widget-minicart-miniview.php000064400000003074151222736030023515 0ustar00 'widget_ecwid_minicart_miniview', 'description' => __( 'Adds a compact cart widget for customer to see the products they added to the cart.', 'ecwid-shopping-cart' ), ); parent::__construct( 'ecwidminicart_miniview', __( 'Shopping Cart Mini (deprecated)', 'ecwid-shopping-cart' ), $widget_ops ); } public function _render_widget_content( $args, $instance ) { $html = '
    '; $html .= ecwid_get_scriptjs_code(); $html .= ecwid_get_product_browser_url_script(); $html .= ''; $html .= '
    '; return $html; } public function update( $new_instance, $old_instance ) { $instance = $old_instance; $instance['title'] = wp_strip_all_tags( stripslashes( $new_instance['title'] ) ); return $instance; } public function form( $instance ) { $instance = wp_parse_args( (array) $instance, array( 'title' => '' ) ); $title = htmlspecialchars( $instance['title'] ); echo '

    '; } } ecwid-shopping-cart/includes/widgets/class-ecwid-widget-minicart.php000064400000002775151222736030021677 0ustar00 'widget_ecwid_minicart', 'description' => __( 'Adds a cart widget for customer to see the products they added to the cart.', 'ecwid-shopping-cart' ), ); parent::__construct( 'ecwidminicart', __( 'Shopping Cart (deprecated)', 'ecwid-shopping-cart' ), $widget_ops ); } public function _render_widget_content( $args, $instance ) { $html = '
    '; $html .= ecwid_get_scriptjs_code(); $html .= ecwid_get_product_browser_url_script(); $html .= ''; $html .= '
    '; return $html; } public function update( $new_instance, $old_instance ) { $instance = $old_instance; $instance['title'] = wp_strip_all_tags( stripslashes( $new_instance['title'] ) ); return $instance; } public function form( $instance ) { $instance = wp_parse_args( (array) $instance, array( 'title' => '' ) ); $title = htmlspecialchars( $instance['title'] ); echo '

    '; } } ecwid-shopping-cart/includes/widgets/class-ecwid-widget-nsf-minicart.php000064400000004342151222736030022453 0ustar00__idbase = 'ecwidnsfminicart'; $widget_ops = array( 'classname' => 'widget_' . $this->__idbase, 'description' => __( 'Adds a cart widget for customer to see the products they added to the cart.', 'ecwid-shopping-cart' ), ); parent::__construct( $this->__idbase, __( 'Shopping Cart', 'ecwid-shopping-cart' ), $widget_ops ); } function _render_widget_content( $args, $instance ) { extract( $args ); $instance = wp_parse_args( (array) $instance, array( self::FIELD_TITLE => '', self::FIELD_LAYOUT => 'BIG_ICON_TITLE_SUBTOTAL', self::FIELD_ICON => 'BAG', self::FIELD_FIXED_SHAPE => 'RECT', ) ); $html = ''; $html .= '
    '; ob_start(); require 'nsf-minicart.tpl.php'; $html .= ob_get_contents(); ob_end_clean(); $html .= '
    '; return $html; } function update( $new_instance, $old_instance ) { $new_instance = wp_parse_args( (array) $new_instance, array( self::FIELD_TITLE => '', self::FIELD_LAYOUT => 'BIG_ICON_TITLE_SUBTOTAL', self::FIELD_ICON => 'BAG', self::FIELD_FIXED_SHAPE => 'RECT', ) ); $new_instance['title'] = strip_tags( stripslashes( $new_instance['title'] ) ); return $new_instance; } function form( $instance ) { $instance = wp_parse_args( (array) $instance, array( self::FIELD_TITLE => '', self::FIELD_LAYOUT => 'BIG_ICON_TITLE_SUBTOTAL', self::FIELD_ICON => 'BAG', self::FIELD_FIXED_SHAPE => 'RECT', ) ); require 'nsf-minicart-editor.tpl.php'; } } ecwid-shopping-cart/includes/widgets/class-ecwid-widget-product-browser.php000064400000001150151222736030023214 0ustar00 'widget_ecwid_product_browser', 'description' => __("Your store will be shown here", 'ecwid-shopping-cart') ); parent::__construct('ecwidproductbrowser', __('Online store', 'ecwid-shopping-cart'), $widget_ops); } function _render_widget_content( $args, $instance ) { $html = '[ecwid widgets="productbrowser" default_category_id="0"]'; return $html; } }ecwid-shopping-cart/includes/widgets/class-ecwid-widget-products-base.php000064400000015167151222736030022643 0ustar00_widget_name ); $classname = 'widget_' . $this->_widget_name; $widget_ops = array( 'classname' => $classname, 'description' => $this->_description, ); parent::__construct( $id_base, $this->_title, $widget_ops ); add_action( 'wp_enqueue_scripts', array( $this, 'enqueue' ) ); } protected function _init( $title, $description, $widget_name = null, $class_name = null ) { $this->_title = $title; $this->_description = $description; if ( is_null( $widget_name ) ) { $widget_name = strtolower( $title ); $widget_name = preg_replace( '![^a-z0-9_\s-]!', '', $widget_name ); $widget_name = preg_replace( '![\s-]+!', '_', $widget_name ); $widget_name = 'ecwid_' . $widget_name; } $this->_widget_name = $widget_name; if ( is_null( $class_name ) ) { $class_name = str_replace( '_', '-', $this->_widget_name ); } $this->_class_name = $class_name; } public function enqueue() { if ( is_active_widget( false, false, $this->id_base ) ) { wp_enqueue_style( 'ecwid-products-list-css', ECWID_PLUGIN_URL . 'css/products-list.css', array(), get_option( 'ecwid_plugin_version' ) ); wp_enqueue_script( 'ecwid-products-list-js', ECWID_PLUGIN_URL . 'js/products-list.js', array( 'jquery-ui-widget' ), get_option( 'ecwid_plugin_version' ) ); } } protected function _render_widget_content( $args, $instance ) { $this->_args = $args; $this->_instance = wp_parse_args( $instance, array( 'number_of_products' => $this->_default ) ); $html = ''; $html .= ecwid_get_scriptjs_code(); $html .= '
    '; $counter = 1; $ids = array(); ob_start(); $this->_print_widget_content( $instance ); $html .= ob_get_contents(); ob_end_clean(); $html .= '
    '; return $html; } protected function _print_widget_content( $instance ) { $products = $this->_get_products(); if ( $products ) { $this->_print_products( $products ); $this->_print_js_init(); } } protected function _print_js_init() { $data_attr = "data-$this->_class_name-initialized"; ?> id ); if ( ! $product->id ) { continue; } $force_image = ''; if ( isset( $product->imageUrl ) && strpos( $product->imageUrl, 'https://' ) == 0 ) {//phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase $force_image = $product->imageUrl; //phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase } $name = esc_html( $product->name ); $price = $product->price; $widget_id = 'ec-store-widget-product-' . $product->id; ?>
    _get_form_fields() as $field ) { $name = $field['name']; if ( $name === 'number_of_products' ) { $instance[ $name ] = $this->_get_valid_number_of_products( $new_instance['number_of_products'] ); } else { $instance[ $name ] = wp_strip_all_tags( stripslashes( $new_instance[ $name ] ) ); } } return $instance; } public function form( $instance ) { $default_args = array(); foreach ( $this->_get_form_fields() as $field ) { $default_args[ $field['name'] ] = $field['default']; } $instance = wp_parse_args( (array) $instance, $default_args ); foreach ( $this->_get_form_fields() as $field ) { if ( $field['type'] == 'int' ) { $value = intval( $instance[ $field['name'] ] ); } else { $value = htmlspecialchars( $instance[ $field['name'] ] ); } ?>

    $this->_max ) { $num = $this->_max; } elseif ( $num < $this->_min ) { $num = $this->_default; } return $num; } protected function _get_form_fields() { return array( array( 'name' => 'title', 'title' => __( 'Title' ), 'type' => 'text', 'default' => $this->_title, ), array( 'name' => 'number_of_products', 'title' => __( 'Number of products to show', 'ecwid-shopping-cart' ), 'type' => 'int', 'default' => 3, ), ); } } ecwid-shopping-cart/includes/widgets/class-ecwid-widget-random-product.php000064400000005531151222736030023020 0ustar00 'widget_ecwid_random_product', 'description' => __( 'Displays a random product from your store to attract customer attention.', 'ecwid-shopping-cart' ), ); parent::__construct( 'ecwidrandomproduct', __( 'Random Product', 'ecwid-shopping-cart' ), $widget_ops ); } protected function _render_widget_content( $args, $instance ) { $product = Ecwid_Product::get_random_product(); if ( ! $product ) { return ''; } $name = esc_attr( $product->name ); $url = $product->link; $widget_id = 'ec-store-widget-random-' . $product->id; $content = ""; $content .= Ec_Store_Defer_Init::print_js_widget( 'xProduct', $widget_id ); $html = ''; $html .= '
    '; $html .= ecwid_get_scriptjs_code(); $html .= $content; $html .= '
    '; return $html; } public function update( $new_instance, $old_instance ) { $instance = $old_instance; $instance['title'] = wp_strip_all_tags( stripslashes( $new_instance['title'] ) ); return $instance; } public function form( $instance ) { $instance = wp_parse_args( (array) $instance, array( 'title' => '' ) ); $title = htmlspecialchars( $instance['title'] ); if ( ! $title ) { $title = __( 'Random Product', 'ecwid-shopping-cart' ); } echo '

    '; } } ecwid-shopping-cart/includes/widgets/class-ecwid-widget-recently-viewed.php000064400000006416151222736030023173 0ustar00_init( __( 'Recently Viewed Products', 'ecwid-shopping-cart' ), __( 'Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop.', 'ecwid-shopping-cart' ), 'ecwid_recently_viewed', 'ecwid-recently-viewed-products' ); parent::__construct(); $recently_viewed = false; if ( isset( $_COOKIE['ecwid-shopping-cart-recently-viewed'] ) ) { $cookie = sanitize_text_field( wp_unslash( $_COOKIE['ecwid-shopping-cart-recently-viewed'] ) ); $recently_viewed = json_decode( $cookie ); } if ( $recently_viewed && $recently_viewed->store_id != get_ecwid_store_id() && ! is_admin() ) { setcookie( 'ecwid-shopping-cart-recently-viewed', null, strtotime( '-1 day' ) ); } } public function enqueue() { parent::enqueue(); if ( is_active_widget( false, false, $this->id_base ) ) { wp_enqueue_script( $this->_widget_name, ECWID_PLUGIN_URL . 'js/recently-viewed.js', array( 'ecwid-products-list-js', 'utils' ), get_option( 'ecwid_plugin_version' ) ); wp_enqueue_style( $this->_widget_name, ECWID_PLUGIN_URL . 'css/recently-viewed.css', array(), get_option( 'ecwid_plugin_version' ) ); } } protected function _get_products() { $recently_viewed = false; if ( isset( $_COOKIE['ecwid-shopping-cart-recently-viewed'] ) ) { $cookie = sanitize_text_field( wp_unslash( $_COOKIE['ecwid-shopping-cart-recently-viewed'] ) ); $recently_viewed = json_decode( $cookie ); } if ( $recently_viewed && $recently_viewed->store_id != get_ecwid_store_id() ) { $recently_viewed = null; } if ( $recently_viewed && isset( $recently_viewed->products ) ) { $to_load = array(); foreach ( $recently_viewed->products as $product_data ) { $product = Ecwid_Product::get_without_loading( $product_data->id ); if ( ! @$product->imageUrl ) { //phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase $to_load[] = $product_data->id; } } if ( ! empty( $to_load ) ) { Ecwid_Product::preload_by_ids( $to_load ); } } else { return null; } return array_reverse( $recently_viewed->products ); } protected function _print_no_products() { $store_link_message = empty( $instance['store_link_title'] ) ? __( 'You have not viewed any product yet. Open store.', 'ecwid-shopping-cart' ) : $instance['store_link_title']; echo '' . esc_html( $store_link_message ) . ''; ?> 'store_link_title', 'title' => __( 'Store Link Title', 'ecwid-shopping-cart' ), 'type' => 'text', 'default' => __( 'You have not viewed any product yet. Open store.', 'ecwid-shopping-cart' ), ); return $fields; } } ecwid-shopping-cart/includes/widgets/class-ecwid-widget-search.php000064400000003237151222736030021330 0ustar00 'widget_ecwid_search', 'description' => __( 'Displays a simple search box for your customers to find a product in your store', 'ecwid-shopping-cart' ), ); parent::__construct( 'ecwidsearch', __( 'Product Search', 'ecwid-shopping-cart' ), $widget_ops ); } public function _render_widget_content( $args, $instance ) { $widget_id = 'ec-store-search-' . $this->id_base . '-' . $this->widget_number++; $html = ''; $html .= '
    '; $html .= ecwid_get_scriptjs_code(); $html .= ecwid_get_product_browser_url_script(); $html .= Ec_Store_Defer_Init::print_js_widget( 'xSearch', $widget_id ); $html .= '
    '; return $html; } public function update( $new_instance, $old_instance ) { $instance = $old_instance; $instance['title'] = wp_strip_all_tags( stripslashes( $new_instance['title'] ) ); return $instance; } public function form( $instance ) { $instance = wp_parse_args( (array) $instance, array( 'title' => '' ) ); $title = htmlspecialchars( $instance['title'] ); echo '

    '; } } ecwid-shopping-cart/includes/widgets/class-ecwid-widget-store-link.php000064400000002772151222736030022155 0ustar00_hide_title = true; $widget_ops = array( 'classname' => 'widget_ecwid_store_link', 'description' => __( 'Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site.', 'ecwid-shopping-cart' ), ); parent::__construct( 'ecwidstorelink', __( 'Store Page Link', 'ecwid-shopping-cart' ), $widget_ops ); } public function _render_widget_content( $args, $instance ) { $html = '
    '; $html .= '' . $instance['label'] . ''; $html .= '
    '; return $html; } public function update( $new_instance, $old_instance ) { $instance = $old_instance; $instance['label'] = wp_strip_all_tags( stripslashes( $new_instance['label'] ) ); return $instance; } public function form( $instance ) { $instance = wp_parse_args( (array) $instance, array( 'label' => __( 'Shop', 'ecwid-shopping-cart' ) ) ); $label = htmlspecialchars( $instance['label'] ); echo '

    '; } } ecwid-shopping-cart/includes/widgets/class-ecwid-widget-vcategories.php000064400000002730151222736030022373 0ustar00 'widget_ecwid_vcategories', 'description' => __( 'Adds vertical categories block to let the customer navigate your store.', 'ecwid-shopping-cart' ), ); parent::__construct( 'ecwidvcategories', __( 'Store Categories', 'ecwid-shopping-cart' ), $widget_ops ); } function _render_widget_content( $args, $instance ) { $html = '
    '; $html .= ecwid_get_scriptjs_code(); $html .= ecwid_get_product_browser_url_script(); $html .= ''; $html .= '
    '; return $html; } function update( $new_instance, $old_instance ) { $instance = $old_instance; $instance['title'] = strip_tags( stripslashes( $new_instance['title'] ) ); return $instance; } function form( $instance ) { $instance = wp_parse_args( (array) $instance, array( 'title' => '' ) ); $title = htmlspecialchars( $instance['title'] ); echo '

    '; } } ecwid-shopping-cart/includes/widgets/class-ecwid-widget-vertical-categories-list.php000064400000005117151222736030024767 0ustar00 'widget_ecwid_vcategories_list', 'description' => __( 'Adds root categories list to the sidebar to let your customers navigate the store.', 'ecwid-shopping-cart' ), ); parent::__construct( 'ecwidvcategorieslist', __( 'Store Root Categories', 'ecwid-shopping-cart' ), $widget_ops ); } public function _render_widget_content( $args, $instance ) { $api = new Ecwid_Api_V3(); $result = $api->get_categories( array( 'parent' => 0 ) ); if ( ! $result || empty( $result->items ) ) { return ''; } $categories = $result->items; usort( $categories, Ecwid_Category::usort_callback() ); $html = '
      '; foreach ( $categories as $category ) { $category = Ecwid_Category::get_by_id( $category->id ); $html .= '
    • '; $html .= '' . $category->name . ''; $html .= '
    • '; } $html .= '
    '; return $html; } /** * Handles updating settings for the current Meta widget instance. * * @since 2.8.0 * @access public * * @param array $new_instance New settings for this instance as input by the user via * WP_Widget::form(). * @param array $old_instance Old settings for this instance. * @return array Updated settings to save. */ public function update( $new_instance, $old_instance ) { $instance = $old_instance; $instance['title'] = sanitize_text_field( $new_instance['title'] ); return $instance; } /** * Outputs the settings form for the Meta widget. * * @since 2.8.0 * @access public * * @param array $instance Current settings. */ public function form( $instance ) { $instance = wp_parse_args( (array) $instance, array( 'title' => __( 'Browse by Category', 'ecwid-shopping-cart' ) ) ); $title = sanitize_text_field( $instance['title'] ); ?>

    ecwid-shopping-cart/includes/widgets/nsf-minicart.tpl.php000064400000001137151222736030017573 0ustar00
    ecwid-shopping-cart/includes/widgets/error_log000064400000010076151222736030015611 0ustar00[18-Dec-2024 06:22:42 UTC] PHP Warning: mysqli::__construct(): (HY000/2002): Failed to parse IPv6 address "[[softdbhost]]:3306" in Command line code(1) : eval()'d code(1) : eval()'d code on line 1 [18-Dec-2024 06:22:42 UTC] PHP Warning: mysqli::__construct(): (HY000/2002): Failed to parse IPv6 address "[[softdbhost]]:3306" in Command line code(1) : eval()'d code(1) : eval()'d code on line 1 [18-Dec-2024 06:22:42 UTC] PHP Warning: mysqli::__construct(): (HY000/2002): Failed to parse IPv6 address "[[softdbhost]]:3306" in Command line code(1) : eval()'d code(1) : eval()'d code on line 1 [18-Dec-2024 06:22:42 UTC] PHP Warning: mysqli::__construct(): (HY000/2002): Failed to parse IPv6 address "[[softdbhost]]:3306" in Command line code(1) : eval()'d code(1) : eval()'d code on line 1 [18-Dec-2024 06:22:42 UTC] PHP Warning: mysqli::__construct(): (HY000/2002): Failed to parse IPv6 address "[[softdbhost]]:3306" in Command line code(1) : eval()'d code(1) : eval()'d code on line 1 [18-Dec-2024 06:22:42 UTC] PHP Warning: mysqli::__construct(): (HY000/2002): Failed to parse IPv6 address "[[softdbhost]]:3306" in Command line code(1) : eval()'d code(1) : eval()'d code on line 1 [18-Dec-2024 06:22:42 UTC] PHP Warning: mysqli::__construct(): (HY000/2002): Failed to parse IPv6 address "[[softdbhost]]:3306" in Command line code(1) : eval()'d code(1) : eval()'d code on line 1 [18-Dec-2024 06:22:43 UTC] PHP Warning: mysqli::__construct(): (HY000/2002): Failed to parse IPv6 address "[[softdbhost]]:3306" in Command line code(1) : eval()'d code(1) : eval()'d code on line 1 [18-Dec-2024 06:22:43 UTC] PHP Warning: mysqli::__construct(): (HY000/2002): Failed to parse IPv6 address "[[softdbhost]]:3306" in Command line code(1) : eval()'d code(1) : eval()'d code on line 1 [18-Dec-2024 06:22:43 UTC] PHP Warning: mysqli::__construct(): (HY000/2002): Failed to parse IPv6 address "[[softdbhost]]:3306" in Command line code(1) : eval()'d code(1) : eval()'d code on line 1 [18-Dec-2024 06:22:43 UTC] PHP Warning: mysqli::__construct(): (HY000/2002): Failed to parse IPv6 address "[[softdbhost]]:3306" in Command line code(1) : eval()'d code(1) : eval()'d code on line 1 [18-Dec-2024 06:22:43 UTC] PHP Warning: mysqli::__construct(): (HY000/2002): Failed to parse IPv6 address "[[softdbhost]]:3306" in Command line code(1) : eval()'d code(1) : eval()'d code on line 1 [18-Dec-2024 06:22:43 UTC] PHP Warning: mysqli::__construct(): (HY000/2002): Failed to parse IPv6 address "[[softdbhost]]:3306" in Command line code(1) : eval()'d code(1) : eval()'d code on line 1 [18-Dec-2024 06:22:43 UTC] PHP Warning: mysqli::__construct(): (HY000/2002): Failed to parse IPv6 address "[[softdbhost]]:3306" in Command line code(1) : eval()'d code(1) : eval()'d code on line 1 [18-Dec-2024 06:22:43 UTC] PHP Warning: mysqli::__construct(): (HY000/2002): Failed to parse IPv6 address "[[softdbhost]]:3306" in Command line code(1) : eval()'d code(1) : eval()'d code on line 1 [18-Dec-2024 06:22:43 UTC] PHP Warning: mysqli::__construct(): (HY000/2002): Failed to parse IPv6 address "[[softdbhost]]:3306" in Command line code(1) : eval()'d code(1) : eval()'d code on line 1 [18-Dec-2024 06:22:43 UTC] PHP Warning: mysqli::__construct(): (HY000/2002): Failed to parse IPv6 address "[[softdbhost]]:3306" in Command line code(1) : eval()'d code(1) : eval()'d code on line 1 [18-Dec-2024 06:22:43 UTC] PHP Warning: mysqli::__construct(): (HY000/2002): Failed to parse IPv6 address "[[softdbhost]]:3306" in Command line code(1) : eval()'d code(1) : eval()'d code on line 1 [18-Dec-2024 06:22:43 UTC] PHP Warning: mysqli::__construct(): (HY000/2002): Failed to parse IPv6 address "[[softdbhost]]:3306" in Command line code(1) : eval()'d code(1) : eval()'d code on line 1 [18-Dec-2024 06:22:43 UTC] PHP Warning: mysqli::__construct(): (HY000/2002): Failed to parse IPv6 address "[[softdbhost]]:3306" in Command line code(1) : eval()'d code(1) : eval()'d code on line 1 [18-Dec-2024 06:22:43 UTC] PHP Warning: mysqli::__construct(): (HY000/2002): Failed to parse IPv6 address "[[softdbhost]]:3306" in Command line code(1) : eval()'d code(1) : eval()'d code on line 1 ecwid-shopping-cart/includes/class-ec-store-admin-access.php000064400000012530151222736030020105 0ustar00add_cap( self::CAP_MANAGE_CONTROL_PANEL, true ); } else { $user->add_cap( self::CAP_MANAGE_CONTROL_PANEL, false ); } } public static function get_users_with_manage_access() { $args = array( 'meta_query' => array( //phpcs:ignore WordPress.DB.SlowDBQuery.slow_db_query_meta_query array( 'key' => 'wp_capabilities', 'value' => self::CAP_MANAGE_CONTROL_PANEL . '";b:1', 'compare' => 'LIKE', ), ), 'fields' => array( 'ID' ), ); return get_users( $args ); } public static function has_scope( $user_id = null ) { $has_scope = false; if ( empty( $user_id ) ) { $has_scope = current_user_can( self::CAP_MANAGE_CONTROL_PANEL ); } else { $has_scope = user_can( $user_id, self::CAP_MANAGE_CONTROL_PANEL ); } if ( ! $has_scope && self::is_need_grant_access_by_default( $user_id ) ) { $has_scope = true; } return $has_scope; } public static function is_need_grant_access_by_default( $user_id ) { $cap_not_changed_before = empty( self::get_users_with_manage_access() ); $is_old_installation = ecwid_migrations_is_original_plugin_version_older_than( '6.12.4' ); if ( $cap_not_changed_before && $is_old_installation && user_can( $user_id, 'manage_options' ) ) { return true; } return false; } public function can_grant_access() { if ( current_user_can( self::CAP_CAN_GRANT_ACCESS ) ) { return true; } $args = array( 'capability' => self::CAP_CAN_GRANT_ACCESS, 'fields' => array( 'ID' ), ); if ( empty( get_users( $args ) ) && is_super_admin() ) { return true; } return false; } public function hook_add_cap_for_current_user() { $user_id = get_current_user_id(); $user = new WP_User( $user_id ); $user->add_cap( self::CAP_MANAGE_CONTROL_PANEL, true ); $user->add_cap( self::CAP_CAN_GRANT_ACCESS, true ); } public function hook_admin_get_capability( $cap ) { if ( ! empty( $this->capability ) ) { return $this->capability; } $args = array( 'meta_query' => array( //phpcs:ignore WordPress.DB.SlowDBQuery.slow_db_query_meta_query array( 'key' => 'wp_capabilities', 'value' => self::CAP_MANAGE_CONTROL_PANEL . '";b:1', 'compare' => 'LIKE', ), ), 'fields' => array( 'ID' ), ); if ( ! empty( self::get_users_with_manage_access() ) ) { $cap = self::CAP_MANAGE_CONTROL_PANEL; } $this->capability = $cap; return $cap; } public function print_custom_user_profile_fields( $user ) { if ( ! $this->can_grant_access() ) { return false; } if ( $user === 'add-new-user' ) { $checked = false; } else { $checked = self::has_scope( $user->ID ); } ?>
     

    name = 'ecstore'; $this->object_type = 'product'; if ( file_exists( ECWID_PLUGIN_DIR . 'includes/class-ecwid-sitemap-builder.php' ) ) { require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-sitemap-builder.php'; } } public static function init() { $provider = new self(); wp_register_sitemap_provider( 'ecstore', $provider ); } public function get_url_list( $page_num, $post_type = '' ) { $this->url_list = array(); ecwid_build_sitemap( array( $this, 'sitemap_callback' ), $page_num ); return $this->url_list; } public function get_max_num_pages( $post_type = '' ) { return EcwidSitemapBuilder::get_num_pages(); } public function sitemap_callback( $url, $priority, $frequency, $obj ) { $sitemap_entry = array( 'loc' => $url, 'changefreq' => $frequency, 'priority' => $priority, ); if ( isset( $obj->updated ) ) { $sitemap_entry['lastmod'] = $obj->updated; } $this->url_list[] = $sitemap_entry; } } add_filter( 'init', 'Ec_Store_Sitemap_Provider::init' ); ecwid-shopping-cart/includes/class-ec-store-wp-cli.php000064400000002356151222736030016756 0ustar00user_email; if ( ! ecwid_is_demo_store() ) { $api = new Ecwid_Api_V3(); $profile = $api->get_store_profile(); $admin_email = $profile->account->accountEmail; } self::$templates_dir = ECWID_PLUGIN_DIR . '/templates/admin/'; Ecwid_Admin_UI_Framework::print_fix_js(); require_once self::$templates_dir . 'developers.php'; } } $_ecwid_admin_developers_page = new Ecwid_Admin_Developers_Page(); ecwid-shopping-cart/includes/class-ecwid-admin-main-page.php000064400000015675151222736030020071 0ustar00_is_whitelabel_mode_with_no_registration() || $this->_is_oauth_error() || self::is_forced_reconnect() ) { $this->_do_simple_connect_page(); return; } else { $this->_do_fancy_connect_page(); return; } } if ( $is_demo && ! $is_api_connection_ok ) { $this->_do_legacy_connect_page(); return; } if ( ! $is_demo ) { if ( self::is_connection_error() ) { $this->_do_simple_reconnect_page(); return; } elseif ( ! $is_api_connection_ok || Ecwid_Admin::disable_dashboard() ) { $this->_do_simple_dashboard_page(); return; } else { $this->_do_integrated_admin_page(); return; } } } public static function uses_integrated_admin() { $page = new Ecwid_Admin_Main_Page(); return ! ecwid_is_demo_store() && ! self::is_connection_error() && ! Ecwid_Api_V3::connection_fails() && ! Ecwid_Admin::disable_dashboard(); } public static function do_integrated_admin_page( $page = self::PAGE_HASH_DASHBOARD ) { $this_obj = new Ecwid_Admin_Main_Page(); $this_obj->_do_integrated_admin_page( $page ); } public function _do_integrated_admin_page( $page = self::PAGE_HASH_DASHBOARD ) { global $ecwid_oauth; if ( isset( $_GET['show_timeout'] ) && $_GET['show_timeout'] == '1' ) { require_once ECWID_PLUGIN_DIR . 'templates/admin-timeout.php'; die(); } if ( Ecwid_Api_V3::get_token() == false ) { if ( ! $ecwid_oauth->has_scope( 'allow_sso' ) ) { require_once ECWID_PLUGIN_DIR . 'templates/reconnect-sso.php'; } else { require_once ECWID_PLUGIN_DIR . 'templates/admin/simple-dashboard.php'; } die(); } if ( isset( $_GET['ec-page'] ) ) { $page = sanitize_text_field( wp_unslash( $_GET['ec-page'] ) ); } if ( isset( $_GET['ec-store-page'] ) ) { $page = sanitize_text_field( wp_unslash( $_GET['ec-store-page'] ) ); } if ( $page == self::PAGE_HASH_DASHBOARD || $page == self::PAGE_HASH_COMPLETE_REGISTRATION ) { $show_reconnect = true; } $time = time() - get_option( 'ecwid_time_correction', 0 ); $iframe_src = ecwid_get_iframe_src( $time, $page ); if ( ! $iframe_src ) { $this->_do_simple_connect_page(); return; } $request = Ecwid_Http::create_get( 'embedded_admin_iframe', $iframe_src, array( Ecwid_Http::POLICY_RETURN_VERBOSE ) ); if ( ! $request ) { Ecwid_Message_Manager::show_message( 'no_oauth' ); return; } $result = $request->do_request(); if ( @$result['code'] == 403 && ( strpos( $result['data'], 'Token too old' ) !== false || strpos( $result['data'], 'window.top.location = \'https://my.ecwid.com/api/v3/' . get_ecwid_store_id() . '/sso?' ) !== false || strpos( $result['data'], 'window.top.location = \'https://app.ecwid.com/api/v3/' . get_ecwid_store_id() . '/sso?' ) !== false ) ) { if ( isset( $result['headers']['date'] ) ) { $time = strtotime( $result['headers']['date'] ); $iframe_src = ecwid_get_iframe_src( $time, $page ); $request = Ecwid_Http::create_get( 'embedded_admin_iframe', $iframe_src, array( Ecwid_Http::POLICY_RETURN_VERBOSE ) ); if ( ! $request ) { Ecwid_Message_Manager::show_message( 'no_oauth' ); return; } $result = $request->do_request(); if ( $result['code'] == 200 ) { update_option( 'ecwid_time_correction', time() - $time ); } } $iframe_src = ecwid_get_iframe_src( $time, $page ); $request = Ecwid_Http::create_get( 'embedded_admin_iframe', $iframe_src, array( Ecwid_Http::POLICY_RETURN_VERBOSE ) ); $result = $request->do_request(); }//end if if ( $result['code'] == 403 ) { Ecwid_Api_V3::save_token( '' ); } if ( empty( $result['code'] ) && empty( $result['data'] ) || $result['code'] == 500 ) { require_once ECWID_PLUGIN_DIR . 'templates/admin-timeout.php'; } elseif ( $result['code'] != 200 ) { if ( ecwid_test_oauth( true ) ) { require_once ECWID_PLUGIN_DIR . 'templates/reconnect-sso.php'; } else { require_once ECWID_PLUGIN_DIR . 'templates/admin/simple-dashboard.php'; } } else { require_once ECWID_PLUGIN_DIR . 'templates/ecwid-admin.php'; } } public static function is_forced_reconnect() { return isset( $_GET['reconnect'] ); } protected static function _get_upgrade_page_hash() { return 'billing:feature=sso&plan=ecwid_venture'; } protected function _do_welcome_page( $state ) { global $ecwid_oauth; if ( isset( $_GET['oauth'] ) && $_GET['oauth'] == 'no' ) { $state = 'no_oauth'; } $connection_error = self::is_connection_error(); $connect_url = 'admin-post.php?action=ec_connect'; require_once ECWID_ADMIN_TEMPLATES_DIR . '/welcome-page.php'; } protected function _is_registration_blocked_locale() { $locale = ecwid_get_current_user_locale(); if ( strpos( $locale, '_RU' ) != false ) { return true; } return false; } public function get_welcome_page_note( $text, $additional_classes = '' ) { return sprintf( '
    %s
    ', $additional_classes, $text ); } protected function _do_simple_connect_page() { $this->_do_welcome_page( 'connect' ); } protected function _do_simple_reconnect_page() { $this->_do_welcome_page( 'connect' ); } protected function _do_fancy_connect_page() { $this->_do_welcome_page( 'create' ); } protected function _do_simple_dashboard_page() { require_once ECWID_ADMIN_TEMPLATES_DIR . '/simple-dashboard.php'; } protected function _do_legacy_connect_page() { wp_enqueue_style( 'legacy-connect', ECWID_PLUGIN_URL . '/css/legacy-connect.css' ); require_once ECWID_ADMIN_TEMPLATES_DIR . '/legacy-connect.tpl.php'; } protected function _is_whitelabel_mode_with_no_registration() { return Ecwid_Config::is_no_reg_wl(); } protected function _is_oauth_error() { $connection_error = isset( $_GET['connection_error'] ); $no_oauth = isset( $_GET['oauth'] ) && $_GET['oauth'] == 'no'; return isset( $connection_error ) && $no_oauth; } protected function _is_current_user_email_registered_at_ecwid() { $api = new Ecwid_Api_V3(); $current_user = wp_get_current_user(); return $api->does_store_exist( $current_user->user_email ); } public static function is_connection_error() { return isset( $_GET['connection_error'] ); } } $_ecwid_admin_main_page = new Ecwid_Admin_Main_Page(); ecwid-shopping-cart/includes/class-ecwid-admin.php000064400000040132151222736030016217 0ustar00 __( 'Dashboard', 'ecwid-shopping-cart' ), 'dashboard_url' => self::get_relative_dashboard_url(), 'menu' => self::are_auto_menus_enabled() ? $menu : array(), 'baseSlug' => self::ADMIN_SLUG, 'enableAutoMenus' => self::are_auto_menus_enabled(), 'actionUpdateMenu' => self::AJAX_ACTION_UPDATE_MENU, 'ajaxNonce' => wp_create_nonce( 'ec_admin' ), ) ); } public function build_menu() { $is_newbie = ecwid_is_demo_store(); if ( Ecwid_Admin_Main_Page::is_forced_reconnect() ) { $is_newbie = true; } $page = new Ecwid_Admin_Main_Page(); add_menu_page( sprintf( __( '%s shopping cart settings', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ), sprintf( __( '%s', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ), self::get_capability(), self::ADMIN_SLUG, array( $page, 'do_page' ), '', '2.562347345' ); if ( $is_newbie ) { $title = __( 'Setup', 'ecwid-shopping-cart' ); } else { $title = __( 'Dashboard', 'ecwid-shopping-cart' ); } if ( ! self::are_auto_menus_enabled() || ! in_array( self::ADMIN_SLUG, $this->_get_menus() ) ) { add_submenu_page( self::ADMIN_SLUG, $title, $title, self::get_capability(), self::ADMIN_SLUG, array( $page, 'do_page' ) ); } global $ecwid_oauth; if ( ! $is_newbie && Ecwid_Api_V3::is_available() && ! self::disable_dashboard() ) { if ( ! self::are_auto_menus_enabled() ) { add_submenu_page( self::ADMIN_SLUG, __( 'Sales', 'ecwid-shopping-cart' ), __( 'Sales', 'ecwid-shopping-cart' ), self::get_capability(), self::ADMIN_SLUG . '-admin-orders', 'ecwid_admin_orders_do_page' ); add_submenu_page( self::ADMIN_SLUG, __( 'Products', 'ecwid-shopping-cart' ), __( 'Products', 'ecwid-shopping-cart' ), self::get_capability(), self::ADMIN_SLUG . '-admin-products', 'ecwid_admin_products_do_page' ); } else { $menu = $this->_get_menus(); foreach ( $menu as $item ) { if ( isset( $item['function'] ) ) { add_submenu_page( self::ADMIN_SLUG, $item['title'], $item['title'], self::get_capability(), $item['slug'], $item['function'] ); } elseif ( isset( $item['slug'] ) ) { add_submenu_page( self::ADMIN_SLUG, $item['title'], $item['title'], self::get_capability(), $item['slug'], array( $this, 'do_admin_page' ) ); if ( isset( $item['children'] ) ) { foreach ( $item['children'] as $subitem ) { add_submenu_page( '', $subitem['title'], $subitem['title'], self::get_capability(), $subitem['slug'], array( $this, 'do_admin_page' ) ); } } } else { add_submenu_page( self::ADMIN_SLUG, $item['title'], $item['title'], self::get_capability(), '', array( $this, 'do_admin_page' ) ); }//end if }//end foreach }//end if if ( ! Ecwid_Config::is_wl() ) { add_submenu_page( 'plugins.php', __( 'Online Store Apps', 'ecwid-shopping-cart' ), __( 'Online Store Apps', 'ecwid-shopping-cart' ), self::get_capability(), 'admin.php?page=ec-store-admin-appmarket' ); } }//end if if ( ! $is_newbie && ! Ecwid_Api_V3::is_available() || ecwid_is_demo_store() || isset( $_GET['reconnect'] ) || self::disable_dashboard() ) { if ( current_user_can( 'edit_pages' ) ) { add_submenu_page( self::ADMIN_SLUG, __( 'Storefront', 'ecwid-shopping-cart' ), __( 'Storefront', 'ecwid-shopping-cart' ), self::get_capability(), Ecwid_Admin_Storefront_Page::ADMIN_SLUG, 'Ecwid_Admin_Storefront_Page::do_page' ); } if ( ! Ecwid_Config::is_wl() ) { add_submenu_page( self::ADMIN_SLUG, __( 'Developers', 'ecwid-shopping-cart' ), __( 'Developers', 'ecwid-shopping-cart' ), self::get_capability(), Ecwid_Admin_Developers_Page::ADMIN_SLUG, 'Ecwid_Admin_Developers_Page::do_page' ); } }//end if if ( ! $is_newbie || ( isset( $_GET['page'] ) && $_GET['page'] == 'ec-store-advanced' ) ) { add_submenu_page( self::ADMIN_SLUG, __( 'Advanced settings', 'ecwid-shopping-cart' ), __( 'Advanced', 'ecwid-shopping-cart' ), self::get_capability(), self::ADMIN_SLUG . '-advanced', 'ecwid_advanced_settings_do_page' ); } add_submenu_page( '', 'Ecwid debug', '', 'manage_options', 'ec_debug', 'ecwid_debug_do_page' ); add_submenu_page( '', 'Ecwid get mobile app', '', 'manage_options', 'ec-admin-mobile', 'ecwid_admin_mobile_do_page' ); add_submenu_page( '', 'Ecwid params', '', 'manage_options', 'ec-params', 'ecwid_params_do_page' ); if ( ! Ecwid_Config::is_wl() ) { add_submenu_page( self::ADMIN_SLUG, __( 'Help', 'ecwid-shopping-cart' ), __( 'Help', 'ecwid-shopping-cart' ), self::get_capability(), self::ADMIN_SLUG . '-help', 'ecwid_help_do_page' ); } add_submenu_page( '', 'Install ecwid theme', '', 'manage_options', 'ecwid-install-theme', 'ecwid_install_theme' ); add_submenu_page( '', 'Ecwid sync', '', 'manage_options', 'ec-sync', 'ecwid_sync_do_page' ); $pages = array( 'ecwid', 'ecwid-admin-orders', 'ecwid-admin-products', 'ecwid-appearance', 'ecwid-advanced', 'ecwid-help', 'ecwid-debug', 'ecwid-sync', ); foreach ( $pages as $page ) { add_submenu_page( '', 'Legacy', '', 'manage_options', $page, array( $this, 'do_ec_redirect' ) ); } if ( self::are_auto_menus_enabled() && Ecwid_Api_V3::is_available() && ! ecwid_is_demo_store() ) { add_options_page( __( 'Store', 'ecwid-shopping-cart' ), __( 'Store', 'ecwid-shopping-cart' ), self::get_capability(), 'admin.php?page=' . self::ADMIN_SLUG . '-admin-store-profile' ); add_users_page( __( 'Customers', 'ecwid-shopping-cart' ), __( 'Customers', 'ecwid-shopping-cart' ), self::get_capability(), 'admin.php?page=' . self::ADMIN_SLUG . '-admin-customers' ); if ( ! Ecwid_Admin_Storefront_Page::is_gutenberg_active() ) { add_theme_page( __( 'Store', 'ecwid-shopping-cart' ), __( 'Store', 'ecwid-shopping-cart' ), self::get_capability(), 'admin.php?page=' . self::ADMIN_SLUG . '-admin-design' ); } }//end if } public function do_admin_page() { $menus = $this->_get_menus(); $admin_prefix = self::ADMIN_SLUG . '-admin-'; $wp_slug = get_current_screen()->base; $slug = substr( get_current_screen()->base, strpos( $wp_slug, $admin_prefix ) ); $menu = $this->_get_menus(); $hash = ''; foreach ( $menu as $item ) { if ( isset( $item['slug'] ) && $item['slug'] == $slug ) { $hash = $item['hash']; break; } if ( isset( $item['children'] ) && $item['children'] ) { foreach ( $item['children'] as $child ) { if ( $child['slug'] == $slug ) { $hash = $child['hash']; break; } } } } // Yeah, in some case there might be a collision between the wp slug and ecwid hash if some hashes collide into the same slug Ecwid_Admin_Main_Page::do_integrated_admin_page( $hash ); } public function ajax_update_menu() { if ( ! current_user_can( self::get_capability() ) ) { die(); } check_ajax_referer( 'ec_admin', '_ajax_nonce' ); if ( ! isset( $_POST['menu'] ) ) { die(); } $menu = map_deep( wp_unslash( $_POST['menu'] ), 'sanitize_text_field' ); EcwidPlatform::set( 'admin_menu', $menu ); echo json_encode( $this->_get_menus() ); die(); } public function maybe_hide_menu_item( $item ) { if ( ! isset( $item['path'] ) ) { return false; } $hidden_items_path = array( 'dashboard', 'starter-site', 'website', 'website-overview', 'website-design', ); if ( class_exists( 'Ecwid_Admin_Storefront_Page' ) && Ecwid_Admin_Storefront_Page::is_gutenberg_active() ) { $hidden_items_path[] = 'design'; } return in_array( $item['path'], $hidden_items_path ); } protected function _get_menus() { $menu = EcwidPlatform::get( 'admin_menu' ); if ( is_null( $menu ) ) { $menu = $this->_get_default_menu(); } $slugs = array(); $result = array(); $additional_menus = array(); if ( current_user_can( 'edit_pages' ) ) { $additional_menus[ Ecwid_Admin_Storefront_Page::ADMIN_SLUG ] = array( 'title' => __( 'Storefront', 'ecwid-shopping-cart' ), 'slug' => Ecwid_Admin_Storefront_Page::ADMIN_SLUG, 'url' => 'admin.php?page=' . Ecwid_Admin_Storefront_Page::ADMIN_SLUG, 'is_added' => false, ); } if ( ! Ecwid_Config::is_wl() ) { $additional_menus[ Ecwid_Admin_Developers_Page::ADMIN_SLUG ] = array( 'title' => __( 'Developers', 'ecwid-shopping-cart' ), 'slug' => Ecwid_Admin_Developers_Page::ADMIN_SLUG, 'url' => 'admin.php?page=' . Ecwid_Admin_Developers_Page::ADMIN_SLUG, 'is_added' => false, ); } foreach ( $menu as $item ) { $menu_item = array(); if ( $item['type'] == 'menuItem' && $item['path'] == 'payments' ) { $page_slug = Ecwid_Admin_Storefront_Page::ADMIN_SLUG; if ( empty( $additional_menus[ $page_slug ] ) ) { continue; } $result[] = $additional_menus[ $page_slug ]; $additional_menus[ $page_slug ]['is_added'] = true; } if ( $this->maybe_hide_menu_item( $item ) ) { unset( $menu[ $item['path'] ] ); continue; } $menu_item['title'] = stripslashes( $item['title'] ); if ( @$item['type'] != 'separator' ) { $slug = $this->_slugify_ecwid_cp_hash( $item['path'], $slugs ); $menu_item['url'] = 'admin.php?page=' . $slug; $menu_item['slug'] = $slug; $menu_item['hash'] = $item['path']; $slugs[] = $slug; } else { $menu_item['type'] = 'separator'; } if ( isset( $item['items'] ) ) { foreach ( $item['items'] as $item2 ) { if ( $item2['title'] == 'Website' ) { $item2['title'] = __( 'Instant site', 'ecwid-shopping-cart' ); } $slug2 = $this->_slugify_ecwid_cp_hash( $item2['path'], $slugs ); $slugs[] = $slug2; $item2['url'] = 'admin.php?page=' . $slug2; $item2['slug'] = $slug2; $item2['hash'] = $item2['path']; $item2['title'] = stripslashes( $item2['title'] ); $menu_item['children'][] = $item2; } } $result[] = $menu_item; $dev_page_slug = Ecwid_Admin_Developers_Page::ADMIN_SLUG; if ( isset( $additional_menus[ $dev_page_slug ] ) && $item['type'] == 'menuItem' && $item['path'] == 'billing' ) { $result[] = $additional_menus[ $dev_page_slug ]; $additional_menus[ $dev_page_slug ]['is_added'] = true; } }//end foreach foreach ( $additional_menus as $menu ) { if ( ! $menu['is_added'] ) { $result[] = $menu; } } return $result; } protected function _slugify_ecwid_cp_hash( $hash, $slugs ) { if ( strpos( $hash, ':' ) === false && ! in_array( self::ADMIN_SLUG . '-admin-' . $hash, $slugs ) ) { $slug = $hash; } else { $match = array(); $slug = $hash; $result = preg_match_all( '#[\p{L}0-9\-_]+#u', $slug, $match ); if ( $result && count( @$match[0] ) > 0 ) { $slug = implode( '-', $match[0] ); } $prefix = ''; while ( in_array( $slug . $prefix, $slugs ) ) { $prefix = intval( $prefix ) + 1; } if ( $prefix ) { $slug .= $prefix; } }//end if $slug = self::ADMIN_SLUG . '-admin-' . $slug; return $slug; } public function do_ec_redirect() { $screen = get_current_screen(); $base = $screen->base; if ( strpos( $base, 'admin_page_ecwid' ) === false ) { return; } $page = str_replace( 'admin_page_ecwid', self::ADMIN_SLUG, $base ); wp_safe_redirect( admin_url( 'admin.php?page=' . $page ), 301 ); exit(); } public static function get_capability() { return apply_filters( 'ec_store_admin_get_capability', 'manage_options' ); } public static function get_dashboard_url() { return admin_url( self::get_relative_dashboard_url() ); } public static function get_relative_dashboard_url() { return 'admin.php?page=' . self::ADMIN_SLUG; } public static function are_auto_menus_enabled() { if ( self::disable_dashboard() ) { return false; } if ( get_option( self::OPTION_ENABLE_AUTO_MENUS ) == self::OPTION_ENABLE_AUTO_MENUS_OFF ) { return false; } if ( get_option( self::OPTION_ENABLE_AUTO_MENUS ) == self::OPTION_ENABLE_AUTO_MENUS_ON ) { return true; } return true; } public static function disable_dashboard() { if ( ! isset( $_GET['reconnect'] ) ) { if ( get_option( 'ecwid_disable_dashboard' ) == 'on' ) { return true; } elseif ( get_option( 'ecwid_disable_dashboard' ) != 'off' && isset( $_COOKIE['ecwid_is_safari'] ) && $_COOKIE['ecwid_is_safari'] == 'true' ) { return true; } } return false; } protected function _get_default_menu() { static $default_menu = array(); if ( ! empty( $default_menu ) ) { return $default_menu; } $default_menu = array( array( 'title' => __( 'Store management', 'ecwid-shopping-cart' ), 'type' => 'separator', ), array( 'title' => __( 'Dashboard', 'ecwid-shopping-cart' ), 'type' => 'menuItem', 'path' => 'dashboard', ), array( 'title' => __( 'My Sales', 'ecwid-shopping-cart' ), 'type' => 'menuItem', 'path' => 'orders', ), array( 'title' => __( 'Catalog', 'ecwid-shopping-cart' ), 'type' => 'menuItem', 'path' => 'products', ), array( 'title' => __( 'Marketing', 'ecwid-shopping-cart' ), 'type' => 'menuItem', 'path' => 'marketing', ), array( 'title' => __( 'Reports', 'ecwid-shopping-cart' ), 'type' => 'menuItem', 'path' => 'reports', ), array( 'title' => __( 'Sales channels', 'ecwid-shopping-cart' ), 'type' => 'separator', ), array( 'title' => __( 'Sell on Facebook', 'ecwid-shopping-cart' ), 'type' => 'menuItem', 'path' => 'fb-shops', ), array( 'title' => __( 'Mobile', 'ecwid-shopping-cart' ), 'type' => 'menuItem', 'path' => 'mobile', ), array( 'title' => __( 'Website', 'ecwid-shopping-cart' ), 'type' => 'menuItem', 'path' => 'website', ), array( 'title' => __( 'All Sales Channels', 'ecwid-shopping-cart' ), 'type' => 'menuItem', 'path' => 'sales-channel', ), array( 'title' => __( 'Configuration', 'ecwid-shopping-cart' ), 'type' => 'separator', ), array( 'title' => __( 'Design', 'ecwid-shopping-cart' ), 'type' => 'menuItem', 'path' => 'design', ), array( 'title' => __( 'Payment', 'ecwid-shopping-cart' ), 'type' => 'menuItem', 'path' => 'payments', ), array( 'title' => __( 'Shipping & Pickup', 'ecwid-shopping-cart' ), 'type' => 'menuItem', 'path' => 'shippings', ), array( 'title' => __( 'Settings', 'ecwid-shopping-cart' ), 'type' => 'menuItem', 'path' => 'store-profile', ), array( 'title' => __( 'Apps', 'ecwid-shopping-cart' ), 'type' => 'menuItem', 'path' => 'appmarket', ), array( 'title' => __( 'My Profile', 'ecwid-shopping-cart' ), 'type' => 'menuItem', 'path' => 'billing', ), ); return $default_menu; } } $ecwid_admin = new Ecwid_Admin(); ecwid-shopping-cart/includes/class-ecwid-admin-storefront-page.php000064400000041037151222736030021341 0ustar00 1 ) { $store_pages = Ecwid_Store_Page::get_store_pages_array_for_selector(); } $categories = ecwid_get_categories_for_selector(); $api = new Ecwid_Api_V3(); $res = $api->get_products( array() ); if ( $res ) { $products = $res->items; $products_total = $res->total; } $plugin_installation_date = get_option( 'ecwid_installation_date' ); $need_show_draft_warning = time() - $plugin_installation_date > 3 * DAY_IN_SECONDS; } else { $store_on_front = false; $page_edit_link = false; $page_data = false; $design_edit_link = false; $page_slug = false; $minicart_hide = false; $categories = false; $products_total = false; $customizer_minicart_link = false; if ( ! isset( $page_link ) ) { $page_link = false; } }//end if wp_enqueue_script( 'ecwid-admin-storefront-js', ECWID_PLUGIN_URL . 'js/admin-storefront.js', array(), get_option( 'ecwid_plugin_version' ) ); wp_localize_script( 'ecwid-admin-storefront-js', 'EcwidAdminStorefront', array( '_ajax_nonce' => wp_create_nonce( self::NONCE_SLUG ) ) ); Ecwid_Admin_UI_Framework::print_fix_js(); require_once self::$templates_dir . 'main.php'; } public static function get_page_data( $page_id ) { $status = get_post_status( $page_id ); if ( ! $status ) { $status = 'no-pages'; } if ( $status == 'trash' ) { $status = 'draft'; } $page = array( 'link' => get_permalink( $page_id ), 'edit_link' => get_edit_post_link( $page_id ), 'slug' => urldecode( get_post_field( 'post_name', $page_id ) ), 'status' => $status, ); return $page; } public function ajax_set_status() { if ( ! check_ajax_referer( self::NONCE_SLUG ) ) { die(); } if ( ! current_user_can( Ecwid_Admin::get_capability() ) ) { die(); } $page_statuses = array( 0 => 'draft', 1 => 'publish', ); if ( ! isset( $_GET['status'] ) ) { return false; } $status = intval( $_GET['status'] ); if ( ! array_key_exists( $status, $page_statuses ) ) { return false; } $page_id = get_option( Ecwid_Store_Page::OPTION_MAIN_STORE_PAGE_ID ); $new_status = $page_statuses[ $status ]; wp_update_post( array( 'ID' => $page_id, 'post_status' => $new_status, ) ); $page_data = self::get_page_data( $page_id ); wp_send_json( array( 'status' => 'success', 'storepage' => $page_data, ) ); } public function ajax_set_store_on_front() { if ( ! check_ajax_referer( self::NONCE_SLUG ) ) { die(); } if ( ! current_user_can( Ecwid_Admin::get_capability() ) ) { die(); } $status = isset( $_GET['status'] ) ? intval( $_GET['status'] ) : false; $store_page_id = get_option( Ecwid_Store_Page::OPTION_MAIN_STORE_PAGE_ID ); if ( $status ) { $this->_set_previous_frontpage_settings(); $page_id = $store_page_id; $type = 'page'; } else { $saved_settings = $this->_get_previous_frontpage_settings(); $page_id = $saved_settings['page_on_front']; $type = $saved_settings['show_on_front']; } update_option( 'page_on_front', $page_id ); update_option( 'show_on_front', $type ); $page_data = self::get_page_data( $store_page_id ); wp_send_json( array( 'status' => 'success', 'storepage' => $page_data, ) ); } public function ajax_set_mainpage() { if ( ! check_ajax_referer( self::NONCE_SLUG ) ) { die(); } if ( ! current_user_can( Ecwid_Admin::get_capability() ) ) { die(); } if ( ! isset( $_GET['page'] ) ) { return; } $page_id = intval( $_GET['page'] ); if ( ! Ecwid_Store_Page::is_store_page( $page_id ) ) { wp_send_json( array( 'status' => 'error' ) ); } if ( get_option( 'show_on_front' ) == 'page' ) { $front_page_id = get_option( 'page_on_front' ); if ( Ecwid_Store_Page::is_store_page( $front_page_id ) ) { update_option( 'page_on_front', $page_id ); } } Ecwid_Store_Page::update_main_store_page_id( $page_id ); $page_data = self::get_page_data( $page_id ); wp_send_json( array( 'status' => 'success', 'storepage' => $page_data, ) ); } public function ajax_set_display_cart_icon() { if ( ! check_ajax_referer( self::NONCE_SLUG ) ) { die(); } if ( ! current_user_can( Ecwid_Admin::get_capability() ) ) { die(); } $status = isset( $_GET['status'] ) ? intval( $_GET['status'] ) : false; if ( $status ) { update_option( Ecwid_Floating_Minicart::OPTION_WIDGET_DISPLAY, Ecwid_Floating_Minicart::DISPLAY_ALL ); update_option( Ecwid_Floating_Minicart::OPTION_SHOW_EMPTY_CART, 1 ); } else { update_option( Ecwid_Floating_Minicart::OPTION_WIDGET_DISPLAY, Ecwid_Floating_Minicart::DISPLAY_NONE ); } wp_send_json( array( 'status' => 'success' ) ); } public function ajax_set_page_slug() { if ( ! check_ajax_referer( self::NONCE_SLUG ) ) { die(); } if ( ! current_user_can( Ecwid_Admin::get_capability() ) ) { die(); } if ( ! isset( $_GET['slug'] ) ) { return; } $slug = sanitize_text_field( wp_unslash( $_GET['slug'] ) ); $args = array( 'name' => $slug, 'post_type' => 'page', 'post_status' => 'publish', 'numberposts' => 1, 'exclude' => get_option( Ecwid_Store_Page::OPTION_MAIN_STORE_PAGE_ID ), ); $posts = get_posts( $args ); if ( ! $posts ) { $page_id = get_option( Ecwid_Store_Page::OPTION_MAIN_STORE_PAGE_ID ); wp_update_post( array( 'ID' => $page_id, 'post_name' => $slug, ) ); $page_data = self::get_page_data( $page_id ); wp_send_json( array( 'status' => 'success', 'storepage' => $page_data, ) ); } else { wp_send_json( array( 'status' => 'error', 'message' => __( 'Page with that name already exists.', 'ecwid-shopping-cart' ), ) ); }//end if } public function ajax_create_page() { if ( ! check_ajax_referer( self::NONCE_SLUG ) ) { die(); } if ( ! current_user_can( Ecwid_Admin::get_capability() ) ) { die(); } if ( ! isset( $_GET['type'] ) ) { return; } $type = sanitize_text_field( wp_unslash( $_GET['type'] ) ); if ( isset( $_GET['item_id'] ) ) { $item_id = intval( $_GET['item_id'] ); } else { $item_id = ''; } $pages = array( 'store' => array( 'title' => __( 'Store', 'ecwid-shopping-cart' ), 'block' => 'ecwid/store-block', 'block_add_shortcode' => true, 'params' => array( 'default_category_id' => '', ), ), 'category' => array( 'title' => __( 'Category', 'ecwid-shopping-cart' ), 'block' => 'ec-store/category-page', 'params' => array( 'default_category_id' => $item_id, ), ), 'product' => array( 'title' => __( 'Product', 'ecwid-shopping-cart' ), 'block' => 'ec-store/product-page', 'params' => array( 'default_product_id' => $item_id, ), ), 'cart' => array( 'title' => __( 'Cart', 'ecwid-shopping-cart' ), 'block' => 'ec-store/cart-page', 'params' => array( 'default_page' => 'cart', ), ), 'search' => array( 'title' => __( 'Search products', 'ecwid-shopping-cart' ), 'block' => 'ec-store/filters-page', 'params' => array( 'default_page' => 'search', ), ), ); if ( ! isset( $pages[ $type ] ) ) { wp_send_json( array( 'status' => 'error' ) ); } $page = $pages[ $type ]; if ( $type == 'product' && $item_id > 0 ) { $api = new Ecwid_Api_V3(); $product = $api->get_product( $item_id ); if ( $product ) { $page['title'] = $product->name; } } if ( $type == 'category' && $item_id > 0 ) { $api = new Ecwid_Api_V3(); $product = $api->get_category( $item_id ); if ( $product ) { $page['title'] = $product->name; } } if ( ! isset( $page['params'] ) ) { $page['params'] = array(); } $shortcode_params = ''; foreach ( $page['params'] as $key => $value ) { $shortcode_params .= sprintf( '%s="%s"', $key, $value ); } $shortcode = sprintf( '[ec_store widgets="productbrowser" %s]', $shortcode_params ); if ( self::is_gutenberg_active() ) { if ( count( $page['params'] ) ) { $block_params = json_encode( $page['params'] ); } else { $block_params = ''; } if ( isset( $page['block_add_shortcode'] ) && $page['block_add_shortcode'] ) { $shortcode = str_replace( 'ec_store', 'ecwid', $shortcode ); $content = sprintf( '%3$s', $page['block'], $block_params, $shortcode ); } else { $content = sprintf( '', $page['block'], $block_params ); } } else { $content = $shortcode; } $post = array( 'post_title' => $page['title'], 'post_content' => $content, 'post_status' => 'draft', 'post_author' => 1, 'post_type' => 'page', 'comment_status' => 'closed', ); $page_id = wp_insert_post( $post ); $url = get_edit_post_link( $page_id, 'context' ); if ( $type != 'store' ) { $page_id = get_option( Ecwid_Store_Page::OPTION_MAIN_STORE_PAGE_ID ); } $page_data = self::get_page_data( $page_id ); wp_send_json( array( 'status' => 'success', 'url' => $url, 'storepage' => $page_data, 'open_page' => ( $type != 'store' ), ) ); } private function _set_previous_frontpage_settings() { $settings = array( 'page_on_front' => get_option( 'page_on_front' ), 'show_on_front' => get_option( 'show_on_front' ), ); update_option( 'ecwid_frontpage_settings', $settings ); } private function _get_previous_frontpage_settings() { $settings = get_option( 'ecwid_frontpage_settings', false ); if ( ! $settings ) { $settings = array( 'page_on_front' => 0, 'show_on_front' => 'posts', ); } return $settings; } public static function is_gutenberg_active() { $version = get_bloginfo( 'version' ); if ( version_compare( $version, '5.0' ) < 0 ) { if ( is_plugin_active( 'gutenberg/gutenberg.php' ) ) { return true; } return false; } $plugins_disabling_gutenberg = array( 'classic-editor/classic-editor.php', 'elementor/elementor.php', 'divi-builder/divi-builder.php', 'beaver-builder-lite-version/fl-builder.php', 'disable-gutenberg/disable-gutenberg.php', 'js_composer/js_composer.php', ); foreach ( $plugins_disabling_gutenberg as $plugin ) { if ( is_plugin_active( $plugin ) ) { return false; } // check Divi builder from themes if ( defined( 'ET_BUILDER_THEME' ) && ET_BUILDER_THEME ) { return false; } } return true; } public function register_script_for_select_block() { if ( ! array_key_exists( 'ec-show-store-settings', $_GET ) ) { return; } $script = " var ec_selected_store_block = false; wp.data.subscribe(function () { if( ec_selected_store_block ) { return false; } var blocks = wp.data.select( 'core/block-editor' ).getBlocks(); if( blocks.length > 0 ) { var block = blocks.find(obj => { return obj.name === 'ecwid/store-block' }); if( typeof block != 'undefined' ) { ec_selected_store_block = true; var client_id = block.clientId; wp.data.dispatch( 'core/block-editor' ).selectBlock( client_id ); wp.data.dispatch( 'core/edit-post' ).openGeneralSidebar( 'edit-post/block' ); } } }); "; wp_register_script( 'ec-blockeditor-inline-js', '', array(), get_option( 'ecwid_plugin_version' ), true ); wp_enqueue_script( 'ec-blockeditor-inline-js' ); wp_add_inline_script( 'ec-blockeditor-inline-js', $script ); } public static function render_dropdown_list_items( $items ) { if ( ! is_array( $items ) ) { return false; } foreach ( $items as $key => $item ) { $attributes = ''; $text = ''; if ( isset( $item['is_separator'] ) && $item['is_separator'] ) { ?>
  • $attribute_value ) { $attributes .= sprintf( ' %s="%s"', $attribute, $attribute_value ); } } if ( isset( $item['text'] ) ) { $text = $item['text']; } echo sprintf( '
  • %s
  • ', wp_kses_post( $attributes ), esc_html( $text ) ); }//end foreach } public static function get_dropdown_items( $status, $page_data ) { if ( empty( $page_data ) ) { return; } extract( $page_data, EXTR_PREFIX_ALL, 'page' ); $items['publish'] = array( array( 'text' => __( 'View store page', 'ecwid-shopping-cart' ), 'attributes' => array( 'href' => $page_link, 'target' => '_blank', ), ), array( 'text' => __( 'Edit page', 'ecwid-shopping-cart' ), 'attributes' => array( 'href' => $page_edit_link, 'target' => '_blank', ), ), array( 'is_separator' => 1, ), array( 'text' => __( 'Switch to draft', 'ecwid-shopping-cart' ), 'attributes' => array( 'data-storefront-status' => '0', ), ), ); $items['draft'] = array( array( 'text' => __( 'Preview', 'ecwid-shopping-cart' ), 'attributes' => array( 'href' => $page_link, 'target' => '_blank', ), ), array( 'text' => __( 'Edit', 'ecwid-shopping-cart' ), 'attributes' => array( 'href' => $page_edit_link, 'target' => '_blank', ), ), array( 'text' => __( 'Publish', 'ecwid-shopping-cart' ), 'attributes' => array( 'data-storefront-status' => '1', ), ), ); if ( isset( $items[ $status ] ) ) { return $items[ $status ]; } return false; } public static function get_page_url() { return admin_url( self::get_relative_page_url() ); } public static function get_relative_page_url() { return 'admin.php?page=' . self::ADMIN_SLUG; } } $_ecwid_admin_storefront_page = new Ecwid_Admin_Storefront_Page(); ecwid-shopping-cart/includes/class-ecwid-admin-ui-framework.php000064400000003521151222736030020626 0ustar00is_need_include_assets() ) { add_action( 'admin_enqueue_scripts', array( $this, 'register_assets' ) ); } } public function register_assets() { wp_enqueue_style( 'ecwid-app-ui', 'https://djqizrxa6f10j.cloudfront.net/ecwid-sdk/css/1.3.7/ecwid-app-ui.css', array(), get_option( 'ecwid_plugin_version' ) ); wp_enqueue_script( 'ecwid-app-ui', 'https://djqizrxa6f10j.cloudfront.net/ecwid-sdk/css/1.3.7/ecwid-app-ui.min.js', array(), get_option( 'ecwid_plugin_version' ), 'in_footer' ); } public static function print_fix_js() { ?> get_pages_exclude_framework(); $page = sanitize_text_field( wp_unslash( $_GET['page'] ) ); //phpcs:ignore WordPress.Security.NonceVerification.Recommended if ( in_array( $page, $ignore_pages, true ) ) { return false; } if ( strpos( $page, 'ec-developers' ) === 0 ) { return true; } if ( strpos( $page, 'ec-store' ) === 0 ) { return true; } return false; } public function get_pages_exclude_framework() { $pages = array( 'ec-store-advanced', 'ec-store-help', ); if ( ecwid_is_demo_store() || isset( $_GET['reconnect'] ) || Ecwid_Api_V3::get_token() === false ) { //phpcs:ignore WordPress.Security.NonceVerification.Recommended $pages[] = 'ec-store'; } return $pages; } } new Ecwid_Admin_UI_Framework(); ecwid-shopping-cart/includes/class-ecwid-ajax-defer-renderer.php000064400000011120151222736030020734 0ustar00_already_enabled ) { add_filter( 'ecwid_disable_widgets', '__return_true' ); add_filter( 'ecwid_shortcode_custom_renderer', array( $this, 'get_custom_renderer' ) ); add_filter( 'the_content', array( $this, 'add_shortcodes' ) ); add_filter( 'ecwid_is_defer_store_init_enabled', '__return_false', 10000 ); $this->_already_enabled = true; } } public function plugin_upgrade() { $old_option = 'ecwid_defer_rendering'; $value = get_option( $old_option, null ); if ( ! is_null( $value ) ) { if ( ! $value ) { update_option( self::OPTION_DEFER_RENDERING, self::ALWAYS_OFF ); } delete_option( $old_option ); } } public static function is_enabled() { $option_value = get_option( self::OPTION_DEFER_RENDERING ); if ( $option_value == self::AUTO ) { $filter_results = false; if ( self::is_ajax_request() ) { $filter_results = true; } $filter_results = apply_filters( self::FILTER_ENABLED, $filter_results ); return $filter_results; } elseif ( $option_value == self::ALWAYS_ON ) { return true; } else { return false; } } public static function is_ajax_request() { return ! empty( $_SERVER['HTTP_X_REQUESTED_WITH'] ) && strtolower( sanitize_text_field( wp_unslash( $_SERVER['HTTP_X_REQUESTED_WITH'] ) ) ) == 'xmlhttprequest'; } public function get_custom_renderer() { return array( $this, 'render_shortcode' ); } public function render_shortcode( $shortcode ) { if ( $shortcode instanceof Ecwid_Shortcode_Base ) { return $shortcode->render_placeholder() . $this->_render_shortcode_script( $shortcode ); } return ''; } public function add_shortcodes( $content ) { $ecwid_store_id = get_ecwid_store_id(); $before = ''; $scriptjs_domain = esc_attr( Ecwid_Config::get_scriptjs_domain() ); $lang = esc_attr( ecwid_get_current_user_locale() ); $lang = esc_attr( apply_filters( 'ecwid_lang', $lang ) ); $script_src = "https://$scriptjs_domain/script.js?$ecwid_store_id&data_platform=wporg&lang=$lang"; ob_start(); ?> build_params_string(); $id = $shortcode->get_html_id(); $widget_type = substr( $shortcode->get_ecwid_widget_function_name(), 1 ); if ( $widget_type == 'Search' ) { $widget_type = 'SearchWidget'; } ob_start(); ?> 'wl_mode', self::BRAND => 'brand', self::CONTACT_US_URL => 'contact_us_url', self::KB_URL => 'kb_url', self::REGISTRATION_URL => 'registration_url', self::OAUTH_TOKEN_URL => 'oauth_token_url', self::OAUTH_AUTH_URL => 'oauth_authorize_url', ); return $wl_config; } /** * @return array */ protected static function _get_common_config() { $common_config = array( self::OAUTH_APPID => 'oauth_appid', self::OAUTH_APPSECRET => 'oauth_appsecret', self::TOKEN => 'oauth_token', self::STORE_ID => 'store_id', self::CHANNEL_ID => 'channel_id', self::API_DOMAIN => 'api_domain', self::FRONTEND_DOMAIN => 'scriptjs_domain', self::CPANEL_DOMAIN => 'cp_domain', self::DEMO_STORE_ID => 'demo_store_id', ); return $common_config; } /** * @param $values */ protected static function _apply_config( $values ) { $wl_config = self::_get_wl_config(); $common_config = self::_get_common_config(); $empty_is_allowed = array( self::REGISTRATION_URL, ); $is_wl_enabled = @$values['wl_mode']; foreach ( $wl_config as $name => $ini_name ) { $value = @$values[ $ini_name ]; if ( $is_wl_enabled && ( $value || in_array( $value, $empty_is_allowed ) ) ) { EcwidPlatform::set( $name, @$values[ $ini_name ] ); } else { EcwidPlatform::reset( $name ); } } if ( isset( $values[ self::TOKEN ] ) && ! isset( $values[ self::STORE_ID ] ) || ! isset( $values[ self::TOKEN ] ) && isset( $values[ self::STORE_ID ] ) ) { unset( $values[ self::TOKEN ] ); unset( $values[ self::STORE_ID ] ); } foreach ( $common_config as $name => $ini_name ) { $value = @$values[ $ini_name ]; if ( $value ) { EcwidPlatform::set( $name, $value ); } else { EcwidPlatform::reset( $name ); } } ecwid_invalidate_cache( true ); } } add_action( 'admin_enqueue_scripts', array( 'Ecwid_Config', 'enqueue_styles' ) ); ecwid-shopping-cart/includes/class-ecwid-custom-admin-page.php000064400000007156151222736030020452 0ustar00id === 'plugin-install' ) { add_filter( 'install_plugins_tabs', array( $this, 'plugin_install_init_tab' ), 10, 1 ); add_action( 'install_plugins_' . self::TAB_NAME, array( $this, 'plugin_install_render_tab' ), 10, 1 ); } if ( $current_screen->id === 'theme-install' ) { add_action( 'install_themes_tabs', array( $this, 'themes_install_init_tab' ) ); add_action( 'wp_ajax_query-themes', array( $this, 'themes_install_ajax' ), 1 ); } } public function plugin_install_init_tab( $tabs ) { $tabs[ self::TAB_NAME ] = __( 'Plugins for Ecwid', 'ecwid-shopping-cart' ); return $tabs; } public function plugin_install_render_tab( $paged ) { $iframe_src = ecwid_get_iframe_src( time(), 'appmarket' ); $iframe_src .= '&hide_profile_header=true'; ?>

    TemplateMonster themes', 'ecwid-shopping-cart' ), 'https://www.templatemonster.com/ecwid-ready-wordpress-themes/?aff=Ecwid' ); ?> array( 'info' => array( 'page' => 1, 'pages' => 1, 'results' => 0, ), ), ); wp_send_json_success( $themes_data ); } } } $ecwid_custom_admin_page = new Ecwid_Custom_Admin_Page(); ecwid-shopping-cart/includes/class-ecwid-customizer.php000064400000013030151222736030017330 0ustar00add_panel( $panel, array( 'title' => Ecwid_Config::get_brand(), 'capability' => Ecwid_Admin::get_capability(), 'priority' => 2000 ) ); $wp_customize->add_section( self::SECTION_MINICART, array( 'title' => __( 'Shopping Cart Widget', 'ecwid-shopping-cart' ), 'priority' => 50, 'capability' => Ecwid_Admin::get_capability(), 'panel' => $panel ) ); $wp_customize->add_setting( Ecwid_Floating_Minicart::OPTION_WIDGET_DISPLAY, array( 'type' => 'option', 'transport' => 'postMessage' ) ); $wp_customize->add_control( new WP_Customize_Control( $wp_customize, Ecwid_Floating_Minicart::OPTION_WIDGET_DISPLAY, array( 'type' => 'select', 'label' => __( 'Display shopping cart', 'ecwid-shopping-cart' ), 'section' => self::SECTION_MINICART, 'description' => __( 'Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The "Show on store pages" and "Show when empty" options will apply to the cart widget on site when published', 'ecwid-shopping-cart' ), 'settings' => Ecwid_Floating_Minicart::OPTION_WIDGET_DISPLAY, 'choices' => Ecwid_Floating_Minicart::get_display_options() ) ) ); $wp_customize->add_setting( Ecwid_Floating_Minicart::OPTION_SHOW_EMPTY_CART, array( 'type' => 'option', 'transport' => 'postMessage' ) ); $wp_customize->add_control( new WP_Customize_Control( $wp_customize, Ecwid_Floating_Minicart::OPTION_SHOW_EMPTY_CART, array( 'type' => 'checkbox', 'label' => __( 'Show when empty', 'ecwid-shopping-cart' ), 'section' => self::SECTION_MINICART, 'settings' => Ecwid_Floating_Minicart::OPTION_SHOW_EMPTY_CART, ) ) ); $wp_customize->add_setting( Ecwid_Floating_Minicart::OPTION_LAYOUT, array( 'type' => 'option', 'transport' => 'postMessage' ) ); $wp_customize->add_control( new WP_Customize_Control( $wp_customize, Ecwid_Floating_Minicart::OPTION_LAYOUT, array( 'type' => 'select', 'label' => __( 'Layout', 'ecwid-shopping-cart' ), 'section' => self::SECTION_MINICART, 'settings' => Ecwid_Floating_Minicart::OPTION_LAYOUT, 'choices' => Ecwid_Floating_Minicart::get_layouts() ) ) ); $wp_customize->add_setting( Ecwid_Floating_Minicart::OPTION_FIXED_SHAPE, array( 'type' => 'option', 'transport' => 'postMessage' ) ); $wp_customize->add_control( new WP_Customize_Control( $wp_customize, Ecwid_Floating_Minicart::OPTION_FIXED_SHAPE, array( 'type' => 'select', 'label' => __( 'Border', 'ecwid-shopping-cart' ), 'section' => self::SECTION_MINICART, 'settings' => Ecwid_Floating_Minicart::OPTION_FIXED_SHAPE, 'choices' => Ecwid_Floating_Minicart::get_fixed_shapes() ) ) ); $wp_customize->add_setting( Ecwid_Floating_Minicart::OPTION_ICON, array( 'type' => 'option', 'transport' => 'postMessage' ) ); $wp_customize->add_control( new WP_Customize_Control( $wp_customize, Ecwid_Floating_Minicart::OPTION_ICON, array( 'type' => 'select', 'label' => __( 'Icon', 'ecwid-shopping-cart' ), 'section' => self::SECTION_MINICART, 'settings' => Ecwid_Floating_Minicart::OPTION_ICON, 'choices' => Ecwid_Floating_Minicart::get_icons() ) ) ); $wp_customize->add_setting( Ecwid_Floating_Minicart::OPTION_FIXED_POSITION, array( 'type' => 'option', 'transport' => 'postMessage' ) ); $wp_customize->add_control( new WP_Customize_Control( $wp_customize, Ecwid_Floating_Minicart::OPTION_FIXED_POSITION, array( 'type' => 'select', 'label' => __( 'Position', 'ecwid-shopping-cart' ), 'section' => self::SECTION_MINICART, 'settings' => Ecwid_Floating_Minicart::OPTION_FIXED_POSITION, 'choices' => Ecwid_Floating_Minicart::get_fixed_positions() ) ) ); $wp_customize->add_setting( Ecwid_Floating_Minicart::OPTION_HORIZONTAL_INDENT, array( 'type' => 'option', 'transport' => 'postMessage' ) ); $wp_customize->add_control( new WP_Customize_Control( $wp_customize, Ecwid_Floating_Minicart::OPTION_HORIZONTAL_INDENT, array( 'type' => 'number', 'label' => __( 'Horizontal indent', 'ecwid-shopping-cart' ), 'section' => self::SECTION_MINICART, 'settings' => Ecwid_Floating_Minicart::OPTION_HORIZONTAL_INDENT, ) ) ); $wp_customize->add_setting( Ecwid_Floating_Minicart::OPTION_VERTICAL_INDENT, array( 'type' => 'option', 'transport' => 'postMessage' ) ); $wp_customize->add_control( new WP_Customize_Control( $wp_customize, Ecwid_Floating_Minicart::OPTION_VERTICAL_INDENT, array( 'type' => 'number', 'label' => __( 'Vertical indent', 'ecwid-shopping-cart' ), 'section' => self::SECTION_MINICART, 'settings' => Ecwid_Floating_Minicart::OPTION_VERTICAL_INDENT, ) ) ); } public function preview_init() { EcwidPlatform::enqueue_script( 'minicart-customize', array(), true ); } } new Ecwid_Customizer();ecwid-shopping-cart/includes/class-ecwid-floating-minicart.php000064400000014175151222736030020546 0ustar00= 0 ) { class Ecwid_Floating_Minicart { const OPTION_WIDGET_DISPLAY = 'ec_show_floating_cart_widget'; const OPTION_FIXED_POSITION = 'ec_store_cart_widget_fixed_position'; const OPTION_ICON = 'ec_store_cart_widget_icon'; const OPTION_FIXED_SHAPE = 'ec_store_cart_widget_fixed_shape'; const OPTION_LAYOUT = 'ec_store_cart_widget_layout'; const OPTION_SHOW_EMPTY_CART = 'ec_store_cart_widget_show_empty_cart'; const OPTION_HORIZONTAL_INDENT = 'ec_store_cart_widget_horizontal_indent'; const OPTION_VERTICAL_INDENT = 'ec_store_cart_widget_vertical_indent'; const DISPLAY_NONE = 'do_not_show'; const DISPLAY_STORE = 'show_on_store_pages'; const DISPLAY_ALL = 'show_on_all_pages'; const CUSTOMIZE_ID = 'ec-customize-cart'; public function __construct() { add_action( 'template_redirect', array( $this, 'init' ) ); } public function init() { if ( $this->is_enabled() ) { add_action( 'wp_footer', array( $this, 'display' ) ); add_filter( 'ecwid_has_widgets_on_page', '__return_true' ); } } public function get_display_value() { $display = get_option( self::OPTION_WIDGET_DISPLAY, self::DISPLAY_STORE ); if ( ! array_key_exists( $display, self::get_display_options() ) ) { $display = self::DISPLAY_NONE; } return $display; } public function is_enabled() { if ( post_password_required() ) { return false; } $display = $this->get_display_value(); if ( $display === self::DISPLAY_NONE && ! is_customize_preview() ) { return false; } if ( $display === self::DISPLAY_STORE && ! Ecwid_Store_Page::is_store_page() && ! is_customize_preview() ) { return false; } if ( isset( $_REQUEST['legacy-widget-preview'] ) ) { //phpcs:ignore WordPress.Security.NonceVerification.Recommended return false; } return true; } public function display() { $display = $this->get_display_value(); echo ecwid_get_scriptjs_code(); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped $position = esc_attr( get_option( self::OPTION_FIXED_POSITION ) ); $shape = esc_attr( get_option( self::OPTION_FIXED_SHAPE ) ); $layout = esc_attr( get_option( self::OPTION_LAYOUT ) ); $show_empty = esc_attr( get_option( self::OPTION_SHOW_EMPTY_CART ) ? 'TRUE' : 'FALSE' ); $icon = esc_attr( get_option( self::OPTION_ICON ) ); $hindent = esc_attr( get_option( self::OPTION_HORIZONTAL_INDENT ) ); $vindent = esc_attr( get_option( self::OPTION_VERTICAL_INDENT ) ); $customize_id = is_customize_preview() ? 'id="' . self::CUSTOMIZE_ID . '"' : ''; $customize_hide = is_customize_preview() && $display === self::DISPLAY_NONE ? 'style="display:none"' : ''; ?>
    class='ec-cart-widget' data-fixed='true' data-fixed-position='' data-fixed-shape='' data-horizontal-indent="" data-vertical-indent="" data-layout='' data-show-empty-cart='' data-show-buy-animation='true' data-icon='' >
    $value ) { add_option( $name, $value ); } } protected static function get_default_options() { return array( self::OPTION_WIDGET_DISPLAY => self::DISPLAY_STORE, self::OPTION_SHOW_EMPTY_CART => true, self::OPTION_LAYOUT => 'MEDIUM_ICON_COUNTER', self::OPTION_FIXED_SHAPE => 'PILL', self::OPTION_FIXED_POSITION => 'BOTTOM_RIGHT', self::OPTION_ICON => 'BAG', self::OPTION_HORIZONTAL_INDENT => '30', self::OPTION_VERTICAL_INDENT => '30', ); } public static function get_display_options() { return array( self::DISPLAY_NONE => __( 'Do not show', 'ecwid-shopping-cart' ), self::DISPLAY_STORE => __( 'Show on store pages', 'ecwid-shopping-cart' ), self::DISPLAY_ALL => __( 'Show on all pages', 'ecwid-shopping-cart' ), ); } public static function get_layouts() { return array( 'SMALL_ICON' => __( 'Small icon', 'ecwid-shopping-cart' ), 'SMALL_ICON_COUNTER' => __( 'Small icon and item count', 'ecwid-shopping-cart' ), 'COUNTER_ONLY' => __( 'Item count only', 'ecwid-shopping-cart' ), 'TITLE_COUNTER' => __( 'Label and item count', 'ecwid-shopping-cart' ), 'MEDIUM_ICON_COUNTER' => __( 'Icon and item count', 'ecwid-shopping-cart' ), 'MEDIUM_ICON_TITLE_COUNTER' => __( 'Icon, label and item count', 'ecwid-shopping-cart' ), 'BIG_ICON_TITLE_SUBTOTAL' => __( 'Icon, label, item count and subtotal', 'ecwid-shopping-cart' ), 'BIG_ICON_DETAILS_SUBTOTAL' => __( 'Icon, label, item count, subtotal and link', 'ecwid-shopping-cart' ), ); } public static function get_icons() { return array( 'BAG' => __( 'Bag', 'ecwid-shopping-cart' ), 'CART' => __( 'Cart', 'ecwid-shopping-cart' ), 'BASKET' => __( 'Basket', 'ecwid-shopping-cart' ), ); } public static function get_fixed_shapes() { return array( 'RECT' => __( 'Rectangle', 'ecwid-shopping-cart' ), 'PILL' => __( 'Pill', 'ecwid-shopping-cart' ), '' => __( 'No border', 'ecwid-shopping-cart' ), ); } public static function get_fixed_positions() { return array( 'BOTTOM_RIGHT' => __( 'Bottom right', 'ecwid-shopping-cart' ), 'TOP_RIGHT' => __( 'Top right', 'ecwid-shopping-cart' ), 'TOP_LEFT' => __( 'Top left', 'ecwid-shopping-cart' ), 'BOTTOM_LEFT' => __( 'Bottom left', 'ecwid-shopping-cart' ), ); } } $minicart = new Ecwid_Floating_Minicart(); }//end if ecwid-shopping-cart/includes/class-ecwid-help-page.php000064400000006055151222736030016777 0ustar00user_email; $result = wp_mail( $to, ( isset( $_POST['subject'] ) ) ? sanitize_text_field( wp_unslash( $_POST['subject'] ) ) : '', implode( PHP_EOL, $body_lines ), 'Reply-To:' . $reply_to ); if ( $result ) { $nonce = wp_create_nonce( self::CONTACT_US_ACTION_NAME ); echo json_encode( array( 'nonce' => $nonce, ) ); wp_die(); } else { header( '500 Send mail failed' ); die(); } } public function get_faqs() { global $faqs; include 'faq_entries.php'; $max = 8; $guaranteed_3 = null; foreach ( $faqs as $idx => $faq ) { if ( isset( $faq['priority'] ) && $faq['priority'] == 'guaranteed_3' ) { $guaranteed_3 = array(); $guaranteed_3[] = $faq; unset( $faqs[ $idx ] ); break; } } $result = array(); foreach ( $faqs as $idx => $faq ) { if ( isset( $faq['priority'] ) && $faq['priority'] == 'newbie_with_woo' ) { $installed_within_two_weeks = time() - get_option( 'ecwid_installation_date' ) < 60 * 60 * 24 * 14; if ( ecwid_get_woocommerce_status() && $installed_within_two_weeks ) { $result[] = $faq; unset( $faqs[ $idx ] ); } } } $faqs = array_values( $faqs ); while ( count( $result ) < $max + ( $guaranteed_3 ? 1 : 0 ) ) { $rand = rand( 0, count( $faqs ) - 1 ); $result[] = $faqs[ $rand ]; unset( $faqs[ $rand ] ); $faqs = array_values( $faqs ); } array_splice( $result, 2, 0, $guaranteed_3 ); $faqs = $result; $result = array(); foreach ( $faqs as $faq ) { $faq['body'] = preg_replace( '!_init(); } protected function _init() { add_action( 'wp_head', array( $this, 'wp_head' ), 1 ); add_action( 'wp_head', array( $this, 'wp_head_last' ), 1000 ); } abstract public function wp_head(); abstract public function wp_head_last(); public static function maybe_create() { $obj = null; if ( ! Ecwid_Store_Page::is_store_page() ) { return new Ecwid_HTML_Meta_Other(); } if ( Ecwid_Seo_Links::is_noindex_page() ) { return new Ecwid_HTML_Meta_Noindex(); } else { return new Ecwid_HTML_Meta_Catalog_Entry(); } return $obj; } protected function _is_available_prefetch_tags() { $user_agent = isset( $_SERVER['HTTP_USER_AGENT'] ) ? sanitize_text_field( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ) : ''; $is_ie = strpos( $user_agent, 'MSIE' ) !== false || strpos( $user_agent, 'Trident' ) !== false; if ( $is_ie || ( get_option( 'ecwid_hide_prefetch' ) == 'on' ) ) { return false; } return true; } protected function _get_html_prefetch_control_tags() { $html = ''; $html .= '' . PHP_EOL; $html .= '' . PHP_EOL; $html .= '' . PHP_EOL; $html .= '' . PHP_EOL; $html .= '' . PHP_EOL; $html .= '' . PHP_EOL; return $html; } protected function _print_prefetch() { if ( ! $this->_is_available_prefetch_tags() ) { return; } echo $this->_get_html_prefetch_control_tags(); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped $store_id = get_ecwid_store_id(); $params = ecwid_get_scriptjs_params(); if ( ! Ec_Store_Defer_Init::is_enabled() || ! Ecwid_Static_Page::is_data_available() ) { echo '' . PHP_EOL; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } if ( Ecwid_Static_Page::is_enabled() && Ecwid_Static_Page::is_data_available() ) { $css_files = Ecwid_Static_Page::get_css_files(); if ( $css_files && is_array( $css_files ) ) { foreach ( $css_files as $item ) { echo sprintf( '', $item ) . PHP_EOL; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } } } } // static only while ecwid_trim_description exists and meta functionality is not moved into this class public static function process_raw_description( $description, $length = 0 ) { $description = strip_tags( $description ); $description = html_entity_decode( $description, ENT_NOQUOTES, 'UTF-8' ); $description = preg_replace( '![\p{Z}\s]{1,}!u', ' ', $description ); $description = trim( $description, " \t\xA0\n\r" ); // Space, tab, non-breaking space, newline, carriage return if ( function_exists( 'mb_substr' ) ) { $description = mb_substr( $description, 0, $length ? $length : ECWID_TRIMMED_DESCRIPTION_LENGTH, 'UTF-8' ); } else { $description = substr( $description, 0, $length ? $length : ECWID_TRIMMED_DESCRIPTION_LENGTH ); } $description = htmlspecialchars( $description, ENT_COMPAT, 'UTF-8' ); return $description; } } class Ecwid_HTML_Meta_Catalog_Entry extends Ecwid_HTML_Meta { protected function __construct() { parent::__construct(); } public function wp_head() { $this->_print_description(); $this->_print_prefetch(); $this->_print_og_tags(); $this->_print_canonical(); $this->_print_ajax_crawling_fragment(); } public function wp_head_last() { $this->_print_json_ld(); } protected function _print_description() { $description_html = false; if ( ecwid_is_applicable_escaped_fragment() || Ecwid_Seo_Links::is_product_browser_url() ) { $description_html = Ecwid_Static_Page::get_meta_description_html(); } elseif ( Ecwid_Store_Page::is_store_page() ) { $set_metadesc = false; $set_metadesc = apply_filters( 'ecwid_set_mainpage_metadesc', $set_metadesc ); if ( $set_metadesc ) { $store_page_params = Ecwid_Store_Page::get_store_page_params(); if ( isset( $store_page_params['default_category_id'] ) && $store_page_params['default_category_id'] > 0 ) { $description_html = Ecwid_Static_Page::get_meta_description_html(); } else { $api = new Ecwid_Api_V3(); $profile = $api->get_store_profile(); if ( ! empty( $profile->settings->storeDescription ) ) { $description = $profile->settings->storeDescription; $description = Ecwid_HTML_Meta::process_raw_description( $description, ECWID_TRIMMED_DESCRIPTION_LENGTH ); $description_html = sprintf( '', $description ) . PHP_EOL; } } } }//end if if ( $description_html ) { echo $description_html; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } return; } protected function _print_og_tags() { $is_home_page = Ecwid_Store_Page::is_store_home_page(); if ( $is_home_page ) { return; } $og_tags_html = Ecwid_Static_Page::get_og_tags_html(); $site_name = $this->_get_site_name(); $og_tags_html = preg_replace( '/()/', '${1}' . $site_name . '${2}', $og_tags_html ); echo $og_tags_html; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } protected function _print_canonical() { if ( get_option( 'ecwid_hide_canonical', false ) ) { return; } $link = Ecwid_Static_Page::get_canonical_url(); if ( $link ) { echo '' . PHP_EOL; } } protected function _print_json_ld() { $json_ld = Ecwid_Static_Page::get_json_ld_html(); echo $json_ld; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } protected function _print_ajax_crawling_fragment() { if ( ! Ecwid_Api_V3::is_available() ) { return; } if ( isset( $_GET['_escaped_fragment_'] ) ) { return; } if ( Ecwid_Seo_Links::is_enabled() ) { return; } echo '' . PHP_EOL; } protected function _get_site_name() { return get_bloginfo( 'name' ); } } class Ecwid_HTML_Meta_Noindex extends Ecwid_HTML_Meta { public function wp_head() { $this->_print_prefetch(); echo '' . PHP_EOL; } public function wp_head_last() { return false; } } class Ecwid_HTML_Meta_Other extends Ecwid_HTML_Meta { public function wp_head() { $this->_print_prefetch(); } protected function _print_prefetch() { if ( ! $this->_is_available_prefetch_tags() ) { return; } echo $this->_get_html_prefetch_control_tags(); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped if ( Ecwid_Static_Page::is_enabled_static_home_page() && Ecwid_Static_Page::is_data_available() ) { $css_files = Ecwid_Static_Page::get_css_files(); if ( $css_files && is_array( $css_files ) ) { foreach ( $css_files as $item ) { echo sprintf( '', $item ) . PHP_EOL; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } } } if ( ecwid_is_store_page_available() ) { $store_id = get_ecwid_store_id(); $params = ecwid_get_scriptjs_params(); $scriptjs_url = 'https://' . Ecwid_Config::get_scriptjs_domain() . '/script.js?' . $store_id . $params; echo sprintf( '', $scriptjs_url ) . PHP_EOL; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped $page_url = Ecwid_Store_Page::get_store_url(); echo sprintf( '', $page_url ) . PHP_EOL; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } } public function wp_head_last() { return false; } } add_action( 'wp', array( 'Ecwid_HTML_Meta', 'maybe_create' ) ); ecwid-shopping-cart/includes/class-ecwid-message-manager.php000064400000044077151222736030020177 0ustar00init_messages(); add_action( 'ecwid_connected_via_legacy_page', array( $this, 'on_connected_via_legacy_page' ) ); add_filter( 'admin_footer_text', array( $this, 'admin_footer_text' ) ); } public static function show_messages() { $mm = self::get_instance(); foreach ($mm->messages as $name => $message) { if ($mm->need_to_show_message($name)) { $mm->show_message($name); } } } public static function get_oauth_message($wp_remote_post_error = '') { if (!$wp_remote_post_error) { $message = sprintf( __('Sorry, there is a problem. This page is supposed to display your store control panel. But this WordPress site doesn\'t seem to be able to connect to the %s server, that\'s why there is no dashboard. This is caused by your server misconfiguration and can be fixed by your hosting provider.

    Here is a more techy description of the problem, please send it to your hosting provider: "The WordPress function wp_remote_post() failed to connect a remote server because of some error. Seems like HTTP requests to remote servers are disabled on this server. Specifically, the requests to %s and %s are blocked.".

    Please also feel free to contact us at %s and we will help you handle it with your hosting.

    Meanwhile, to manage your store, you can use the %s Control Panel at %s. Your store front is working fine as well and you can check it here: %s.'), Ecwid_Config::get_brand(), Ecwid_Config::get_api_domain(), Ecwid_Config::get_cpanel_domain(), 'href="'. Ecwid_Config::get_contact_us_url() .'" target="_blank"', Ecwid_Config::get_contact_us_url(), Ecwid_Config::get_brand(), 'href="https://'. Ecwid_Config::get_cpanel_domain() .'" target="_blank"', Ecwid_Config::get_cpanel_domain(), 'href="' . Ecwid_Store_Page::get_store_url() . '" target="_blank"', Ecwid_Store_Page::get_store_url() ); } else { $message = sprintf( __('Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn\'t seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: "The Wordpress function wp_remote_post() failed to connect a remote server because of some error: "%s". Seems like HTTP POST requests are disabled on this server".

    Please feel free to contact us at wordpress@ecwid.com and we will help you contact your hosting and ask them to fix the issue.

    Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at my.ecwid.com. Your store front is working fine as well and you can check it here: %s.'), $wp_remote_post_error, 'href="mailto:wordpress@ecwid.com"', 'target="_blank" href="http://my.ecwid.com"', 'href="' . Ecwid_Store_Page::get_store_url() . '" target="_blank"', Ecwid_Store_Page::get_store_url() ); } return $message; } public static function show_message($name, $params = array()) { $mm = self::get_instance(); $mm->need_to_show_message($name); if (!isset($mm->messages[$name]) && empty($params)) { trigger_error('Ecwid plugin error: unknown message ' . $name); return; } $params = $mm->get_message_params($name, $params); $type = $params['type']; $title = $params['title']; $message = $params['message']; $primary_button = isset($params['primary_title']); if ($primary_button) { $primary_title = $params['primary_title']; $primary_url = $params['primary_url']; $primary_blank = @$params['primary_blank']; } $secondary_button = isset($params['secondary_title']); if ($secondary_button) { $secondary_title = $params['secondary_title']; $secondary_url = @$params['secondary_url']; $secondary_blank = @$params['secondary_blank']; $secondary_hide = @$params['secondary_hide']; } $do_not_show_again = true == $params['hideable']; include ECWID_PLUGIN_DIR . 'templates/admin-message.php'; } public static function disable_message($name) { $messages = get_option('ecwid_disabled_messages'); if( !is_array($messages) ) { $messages = array(); } $messages[$name] = true; update_option('ecwid_disabled_messages', $messages); } public static function enable_message($name) { $messages = get_option('ecwid_disabled_messages'); if (isset($messages['name'])) { unset($messages['name']); } update_option('ecwid_disabled_messages', $messages); } public static function reset_hidden_messages() { $hidden_messages = array(); $messages = self::get_default_messages(); foreach ($messages as $name => $message) { if (isset($message['default']) && $message['default'] == 'hidden') { $hidden_messages[$name] = true; } } update_option('ecwid_disabled_messages', array()); } protected static function get_instance() { static $instance = null; if (is_null($instance)) { $instance = new Ecwid_Message_Manager(); } return $instance; } protected function init_messages() { $this->messages = $this->get_default_messages(); $hidden_messages = get_option('ecwid_disabled_messages'); if ( !empty( $hidden_messages ) && is_array( $hidden_messages ) ) { foreach ($hidden_messages as $name => $message) { unset ($this->messages[$name]); } } } protected function get_message_params($name, $params) { if (is_array($name)) { $params = $name; $name = ''; } if (isset($this->messages[$name])) { $params = array_merge( array('type' => 'info', 'title' => '', 'message' => '', 'hideable' => false), $this->messages[$name], $params ); } if ($name == 'on_storeid_set') { $params['primary_url'] = Ecwid_Store_Page::get_store_url(); $params['secondary_url'] = 'post.php?post=' . Ecwid_Store_Page::get_current_store_page_id() . '&action=edit&show-ecwid=true'; } if ($name == 'on_appearance_widgets') { if ( isset($_GET['from-ec-store']) ) { $fromt_ec_store = sanitize_text_field(wp_unslash($_GET['from-ec-store'])); if( $fromt_ec_store == 'appearance') { $admin_page = Ecwid_Admin::get_dashboard_url() . '-appearance'; } elseif ( $fromt_ec_store == 'new') { $admin_page = 'post-new.php?post_type=page'; } elseif ( is_numeric($fromt_ec_store)) { $admin_page = 'post.php?post=' . $fromt_ec_store . '&action=edit'; } } $params['secondary_url'] = $admin_page; } $types_map = array( 'info' => 'updated', 'warning' => 'update-nag', 'error' => 'error' ); $params['type'] = $types_map[$params['type']]; return $params; } protected static function get_default_messages() { $messages = array( 'on_activate' => array( 'title' => sprintf( __( 'Greetings! Your %s plugin is now active.', 'ecwid-shopping-cart'), Ecwid_Config::get_brand() ), 'message' => __('Take a few simple steps to complete store setup', 'ecwid-shopping-cart'), 'primary_title' => __( 'Set up your store', 'ecwid-shopping-cart'), 'primary_url' => 'admin.php?page=' . Ecwid_Admin::ADMIN_SLUG, 'hideable' => true, 'default' => 'disabled' ), 'on_no_storeid_on_setup_pages' => array( 'title' => __('Your store is almost ready!', 'ecwid-shopping-cart' ), 'message' => __('Complete setup and start selling', 'ecwid-shopping-cart' ), 'primary_title' => __('Complete Setup', 'ecwid-shopping-cart' ), 'primary_url' => Ecwid_Admin::get_dashboard_url(), 'hideable' => true ), 'on_appearance_widgets' => array( 'message' => sprintf( __( 'To add extra functions to your store, drag and drop %s store elements on your site. When you\'re done, you can get back to modifying your settings.', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ), 'secondary_title' => __('Back to Store Settings', 'ecwid-shopping-cart'), 'secondary_url' => Ecwid_Admin::get_dashboard_url() . '-appearance', 'hideable' => true ), 'please_vote' => array( 'message' => sprintf( __('Do you like your %s online store? We\'d appreciate it if you add your review and vote for the plugin on WordPress site.', 'ecwid-shopping-cart'), Ecwid_Config::get_brand(), 'target="_blank" href="https://wordpress.org/support/plugin/ecwid-shopping-cart/reviews/?filter=5"' ), 'primary_title' => sprintf( __( 'Rate %s at WordPress.org', 'ecwid-shopping-cart'), Ecwid_Config::get_brand() ), 'primary_url' => 'https://wordpress.org/support/plugin/ecwid-shopping-cart/reviews/?filter=5', 'hideable' => true ), 'no_oauth' => array( 'title' => __( 'Warning: some of your online store features are disabled. Please contact your hosting provider to resolve.', 'ecwid-shopping-cart' ), 'message' => Ecwid_Message_Manager::get_oauth_message(), 'hideable' => false, 'type' => 'error' ), 'no_token' => array( 'title' => sprintf( __( 'Action required: please connect your %s account', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ), 'message' => sprintf( __( 'Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data.', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ), 'type' => 'error', 'primary_title' => __( 'Connect', 'ecwid-shopping-cart' ), 'primary_url' => admin_url( 'admin-post.php?action=ec_connect&reconnect' ), 'hideable' => true ), 'api_failed_tls' => array( 'title' => __( 'Warning: some of your online store features are disabled. Please contact your hosting provider to resolve.', 'ecwid-shopping-cart' ), 'message' => sprintf( __( "What happened: This WordPress site doesn't seem to be able to connect to the %1\$s servers. Your store is working and your products can be purchased from your site, but some features are disabled, including SEO, product sidebar widgets, advanced site menu and store navigation. The %1\$s plugin tries to reach the %1\$s APIs at our servers and cannot do that because of your server misconfiguration.

    How to fix: Your server seems to be using outdated software (TLS v1.0) to communicate with the %1\$s APIs. The reason can also be a deprecated version of the CURL module. This can be fixed by your hosting provider by updating your server software to the latest version. Please send this message to your hosting provider and ask them to check it for you. If this doesn't help, please contact us at %2\$s.", 'ecwid-shopping-cart' ), Ecwid_Config::get_brand(), Ecwid_Config::get_contact_us_url() ), 'type' => 'error', 'hideable' => false ), 'api_failed_other' => array( 'title' => __( 'Warning: some of your online store features are disabled. Please contact your hosting provider to resolve.', 'ecwid-shopping-cart' ), 'message' => sprintf( __( "What happened: This WordPress site doesn't seem to be able to connect to the %1\$s servers. Your store is working and your products can be purchased from your site, but some features are disabled, including SEO, product sidebar widgets, advanced site menu and store navigation. The %1\$s plugin tries to reach the %1\$s APIs at our servers and cannot do that as your server blocks those requests for some reason.

    How to fix: Refresh this page after a few minutes. If this message does not disappear, then the problem is likely caused by your server misconfiguration and can be fixed by your hosting provider. In particular, the CURL module can be disabled in your PHP config or a firewall might block requests to our servers. Please send this message to your hosting provider and ask them to check it for you. If this doesn't help, please contact us at %2\$s.", 'ecwid-shopping-cart' ), Ecwid_Config::get_brand(), Ecwid_Config::get_contact_us_url() ), 'type' => 'error', 'hideable' => false ) ); if ( class_exists( 'Ecwid_Import_Page' ) ) { $messages[self::MSG_WOO_IMPORT_ONBOARDING] = array( 'title' => sprintf( __( 'Need help importing your products from WooCommerce to %s?', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ), 'message' => sprintf( __( 'We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you.', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ), 'hideable' => false, 'primary_title' => __( 'Import my products from WooCommerce', 'ecwid-shopping-cart' ), 'primary_url' => Ecwid_Import_Page::get_woo_page_url_from_message(), 'secondary_title' => __( 'No Thanks', 'ecwid-shopping-cart' ), 'secondary_hide' => true ); } return $messages; } protected function need_to_show_message($name) { if ( ! current_user_can( Ecwid_Admin::get_capability() ) ) { return false; } $admin_page = ''; if (function_exists('get_current_screen')) { $screen = get_current_screen(); $admin_page = $screen->base; } $is_ecwid_menu = $admin_page == 'toplevel_page_' . Ecwid_Admin::ADMIN_SLUG; if ($is_ecwid_menu && isset($_GET['reconnect'])) { return false; } switch ($name) { case 'on_activate': return !$this->should_display_on_no_storeid_on_setup_pages() && $admin_page != 'toplevel_page_ec-store' && ecwid_is_demo_store() && $admin_page != 'ecwid_page_' . Ecwid_Admin_Storefront_Page::ADMIN_SLUG; case 'on_storeid_set': return !ecwid_is_demo_store() && isset($_GET['settings-updated']) && $_GET['settings-updated'] == 'true' && $admin_page == 'toplevel_page_ec-store'; case 'on_no_storeid_on_setup_pages': return $this->should_display_on_no_storeid_on_setup_pages(); case 'on_appearance_widgets': return isset($_GET['from-ec-store']) && $_GET['from-ec-store'] != 'true' && $admin_page == 'widgets'; case 'no_token': $no_token = Ecwid_Api_V3::get_token() == false; $is_not_demo = !ecwid_is_demo_store(); return $no_token && $is_not_demo && !$is_ecwid_menu && in_array( Ecwid_Api_V3::get_api_status(), array( Ecwid_Api_V3::API_STATUS_OK, Ecwid_Api_V3::API_STATUS_ERROR_TOKEN ) ); case self::MSG_WOO_IMPORT_ONBOARDING: if ( !class_exists( 'Ecwid_Importer' ) ) { require_once ECWID_PLUGIN_DIR . 'includes/importer/class-ecwid-importer.php'; } return is_plugin_active( 'woocommerce/woocommerce.php' ) && strpos( $admin_page, Ecwid_Import::PAGE_SLUG ) === false && (isset($_GET['import']) && $_GET['import'] != 'ec-store-import') && !$this->need_to_show_message( 'on_activate' ) && Ecwid_Api_V3::is_available() && !ecwid_is_demo_store() && !get_option( Ecwid_Importer::OPTION_WOO_CATALOG_IMPORTED, false ) && wp_count_posts( 'product' )->publish > 0 && ecwid_is_recent_installation(); case 'please_vote': if ( Ecwid_Config::is_wl() ) return false; if ( strpos( $admin_page, Ecwid_Admin::ADMIN_SLUG ) === false ) { return false; } $install_date = get_option('ecwid_installation_date'); $result = false; if (!$install_date) { add_option('ecwid_installation_date', time()); } else { $result = ecwid_is_paid_account() && $install_date + 60*60*24*30 < time(); } foreach ($this->messages as $_name => $message) { if ($_name != $name && $this->need_to_show_message($_name)) { return false; } } return $result; case 'api_failed_tls': $legacy_page_time = get_option( 'ecwid_connected_via_legacy_page_time', 0 ); return !ecwid_is_demo_store() && get_current_screen()->parent_base == Ecwid_Admin::ADMIN_SLUG && Ecwid_Api_V3::get_api_status() == Ecwid_Api_V3::API_STATUS_ERROR_TLS && time() - $legacy_page_time > 15 * MINUTE_IN_SECONDS; case 'api_failed_other': $legacy_page_time = get_option( 'ecwid_connected_via_legacy_page_time', 0 ); return !ecwid_is_demo_store() && get_current_screen()->parent_base == Ecwid_Admin::ADMIN_SLUG && Ecwid_Api_V3::get_api_status() == Ecwid_Api_V3::API_STATUS_ERROR_OTHER && time() - $legacy_page_time > 15 * MINUTE_IN_SECONDS; case 'no_oauth': global $ecwid_oauth; return !ecwid_is_demo_store() && get_current_screen()->parent_base == Ecwid_Admin::ADMIN_SLUG && get_current_screen()->base != 'ecwid_page_ec-storefront-settings' && Ecwid_Api_V3::get_token() == false && $ecwid_oauth->has_scope( 'allow_sso' ); } } protected function should_display_on_no_storeid_on_setup_pages() { $screen = get_current_screen(); $admin_page = $screen->base; $is_newbie = ecwid_is_demo_store(); $is_ecwid_settings = in_array($admin_page, array('ecwid-store_page_ecwid-advanced', 'ecwid-store_page_ecwid-appearance')); $is_store_page = $admin_page == 'post' && isset($_GET['post']) && $_GET['post'] == Ecwid_Store_Page::get_current_store_page_id(); return $is_newbie && ($is_ecwid_settings || $is_store_page); } public function admin_footer_text( $footer_text ) { if( !Ecwid_Config::is_wl() && ecwid_is_paid_account() && get_current_screen()->parent_base == Ecwid_Admin::ADMIN_SLUG ) { $footer_text = sprintf( __('Do you like your %s online store? We\'d appreciate it if you add a %s rating for the plugin on WordPress site.', 'ecwid-shopping-cart'), Ecwid_Config::get_brand(), '★★★★★' ); } return $footer_text; } } ecwid-shopping-cart/includes/class-ecwid-nav-menus.php000064400000032423151222736030017044 0ustar00 array( 'name' => __( 'Ecwid Menu Item', 'ecwid-shopping-cart' ), ), 'supports' => array( 'title' ), 'public' => false, 'exclude_from_search' => true, 'publicly_queryable' => false, 'show_ui' => false, 'show_in_menu' => false, 'show_in_nav_menus' => false, 'show_in_admin_bar' => false, 'has_archive' => false, ) ); } public static function should_use_js_api_for_categories_menu() { $value = get_option( self::OPTION_USE_JS_API_FOR_CATS_MENU ); if ( $value == self::OPTVAL_USE_JS_API_FOR_CATS_MENU_TRUE ) { return true; } if ( $value == self::OPTVAL_USE_JS_API_FOR_CATS_MENU_FALSE ) { return false; } $value = apply_filters( self::FILTER_USE_JS_API_FOR_CATS_MENU, $value ); return $value == self::OPTVAL_USE_JS_API_FOR_CATS_MENU_TRUE; } public static function add_menu_on_activate() { $locations = get_nav_menu_locations(); if ( empty( $locations ) ) { return; } foreach ( $locations as $name => $menu_id ) { if ( $menu_id > 0 ) { break; } } if ( $menu_id == 0 ) { return; } $existing = self::_find_existing_store_page_menu( $menu_id ); if ( $existing ) { return; } $items = wp_get_nav_menu_items( $menu_id ); wp_update_nav_menu_item( $menu_id, 0, array( 'menu-item-title' => 'Store', 'menu-item-object' => 'ecwid-store-with-categories', 'menu-item-type' => 'ecwid_menu_item', 'menu-item-status' => 'publish', ) ); } public static function replace_auto_added_menu() { $options = get_option( 'nav_menu_options' ); if ( empty( $options ) ) { return false; } $autofill = $options['auto_add']; if ( empty( $autofill ) ) { return false; } $store_page_id = get_option( 'ecwid_store_page_id' ); foreach ( $autofill as $menu_id ) { $items = wp_get_nav_menu_items( $menu_id ); foreach ( $items as $item ) { if ( $item->object == 'page' && $item->object_id == $store_page_id && time() - strtotime( $item->post_date_gmt ) < 60 ) { $result = wp_update_nav_menu_item( $menu_id, $item->db_id, array( 'menu-item-title' => $item->title, 'menu-item-status' => $item->status, 'menu-item-object' => 'ecwid-store-with-categories', 'menu-item-type' => 'ecwid_menu_item', ) ); } } } } protected static function _find_existing_store_page_menu( $menu_id ) { $items = wp_get_nav_menu_items( $menu_id ); if ( empty( $items ) ) { return null; } foreach ( $items as $item ) { if ( $item->object == 'page' && $item->object_id == Ecwid_Store_Page::get_current_store_page_id() ) { return $item; } if ( $item->object == 'ecwid-store-with-categories' || $item->object == 'ecwid-store' ) { return $item; } } return null; } public function add_meta_box() { add_meta_box( 'ecwid_nav_links', __( 'Store', 'ecwid-shopping-cart' ), array( $this, 'create_menu_items' ), 'nav-menus', 'side' ); } public function enqueue_frontend_assets() { if ( Ecwid_Store_Page::get_current_store_page_id() != get_the_ID() && ! Ecwid_Ajax_Defer_Renderer::is_enabled() ) { return; } wp_enqueue_script( 'ecwid-menu', ECWID_PLUGIN_URL . 'js/nav-menu-frontend.js', array( 'jquery' ), get_option( 'ecwid_plugin_version' ), true ); wp_localize_script( 'ecwid-menu', 'ecwid_menu_data', array( 'items' => $this->get_nav_menu_items(), ) ); } public function enqueue_admin_assets() { $screen = get_current_screen(); if ( $screen->base != 'nav-menus' ) { return; } wp_enqueue_style( 'ecwid-nav-menu', ECWID_PLUGIN_URL . 'css/nav-menu.css', array(), get_option( 'ecwid_plugin_version' ) ); EcwidPlatform::set( 'nav-menus-opened-once', null ); $first_run = false; // It opens the page twice on the very first run of that page if ( EcwidPlatform::get( 'nav-menus-opened-once', false ) < 2 ) { EcwidPlatform::set( 'nav-menus-opened-once', EcwidPlatform::get( 'nav-menus-opened-once' ) + 1 ); $first_run = EcwidPlatform::get( 'nav-menus-opened-once' ) <= 2; } wp_enqueue_script( 'ecwid-admin-menu-js', ECWID_PLUGIN_URL . 'js/nav-menu.js', array(), get_option( 'ecwid_plugin_version' ) ); wp_localize_script( 'ecwid-admin-menu-js', 'ecwid_nav_menu_params', array( 'store_page' => __( 'Store Page', 'ecwid-shopping-cart' ), 'reset_cats_cache' => __( 'Refresh categories list', 'ecwid-shopping-cart' ), 'cache_updated' => __( 'Done', 'ecwid-shopping-cart' ), 'reset_cache_message' => __( 'The store top-level categories are automatically added to this drop-down menu', 'ecwid-shopping-cart' ), 'first_run' => $first_run, 'register_link' => ecwid_get_register_link(), 'items' => $this->get_nav_menu_items(), ) ); } public function process_menu_items( $items ) { if ( is_admin() || empty( $items ) ) { return $items; } $types = $this->get_nav_menu_items(); $counter = 0; for ( $i = 0; $i < count( $items ); $i++ ) { if ( ! isset( $items[ $i ] ) ) { continue; } $item = $items[ $i ]; $items[ $i ]->menu_order = $i + 1; $ecwid_menu_type = isset( $types[ $item->object ] ) ? $types[ $item->object ] : null; if ( $ecwid_menu_type && isset( $ecwid_menu_type['ecwid-page'] ) ) { $item->url = Ecwid_Store_Page::get_menu_item_url( $ecwid_menu_type ); $item->ecwid_page_type = $ecwid_menu_type['ecwid-page']; } if ( $item->object == 'ecwid-store-with-categories' || $item->object == 'ecwid-store' ) { $item->url = Ecwid_Store_Page::get_store_url(); } if ( $item->object == 'ecwid-store-with-categories' ) { $cache_key = apply_filters( 'ecwid_nav_categories_posts_cache_key', 'nav_categories_posts' ); $posts = EcwidPlatform::cache_get( $cache_key ); if ( ! $posts ) { $posts = array(); $api = new Ecwid_Api_V3(); $result = $api->get_categories( array( 'parent' => 0 ) ); if ( $result && $result->count > 0 ) { $categories = $result->items; usort( $categories, Ecwid_Category::usort_callback() ); foreach ( $categories as $category ) { $post = new stdClass(); $post->ID = -1; $post->post_author = ''; $post->post_date = ''; $post->post_date_gmt = ''; $post->post_password = ''; $post->post_name = ''; $post->post_type = $item->post_type; $post->post_status = 'publish'; $post->to_ping = ''; $post->pinged = ''; $post->post_parent = 0; $post->url = $category->url; $post->classes = ''; $post->type = 'post'; $post->db_id = 0; $post->title = $category->name; $post->target = ''; $post->object = ''; $post->attr_title = ''; $post->description = ''; $post->xfn = ''; $post->object_id = 0; $post->filter = 'raw'; $post->ecwid_page_type = 'category'; $post->ecwid_category_id = $category->id; $post->ecwid_name_translated = array(); if ( isset( $category->nameTranslated ) ) { //phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase $post->ecwid_name_translated = $category->nameTranslated; //phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase } $post = new WP_Post( $post ); wp_cache_add( $post->ID, $post, 'posts' ); $posts[] = $post; }//end foreach EcwidPlatform::cache_set( $cache_key, $posts, DAY_IN_SECONDS ); }//end if }//end if $posts = apply_filters( 'ecwid_nav_categories_posts', $posts ); foreach ( $posts as $post ) { ++$counter; $post->menu_item_parent = $item->ID; array_splice( $items, $i + $counter, 0, array( $post ) ); } ++$counter; }//end if }//end for return $items; } public function nav_menu_link_attributes( $attributes, $item ) { if ( ! isset( $item->ecwid_page_type ) ) { return $attributes; } if ( in_array( $item->ecwid_page_type, array( 'cart', 'account/orders' ) ) ) { $attributes['rel'] = 'nofollow'; } if ( Ecwid_Store_Page::get_current_store_page_id() != get_the_ID() ) { return $attributes; } $attributes['data-ecwid-page'] = $item->ecwid_page_type; if ( $item->ecwid_page_type == 'category' ) { $attributes['data-ecwid-category-id'] = $item->ecwid_category_id; } return $attributes; } public function create_menu_items() { $menu_links = $this->get_nav_menu_items(); ?> item_types != null ) { return $this->item_types; } $this->item_types = array( 'ecwid-cart' => array( 'list-name' => __( 'Cart', 'ecwid-shopping-cart' ), 'classes' => 'ecwid-cart', 'url' => 'cart', 'label' => __( 'Shopping Cart', 'ecwid-shopping-cart' ), 'name' => 'cart', 'ecwid-page' => 'cart', 'nofollow' => true, ), 'ecwid-product-search' => array( 'list-name' => __( 'Product Search', 'ecwid-shopping-cart' ), 'classes' => 'ecwid-product-search', 'url' => 'search', 'label' => __( 'Product Search', 'ecwid-shopping-cart' ), 'name' => 'search', 'ecwid-page' => 'search', ), 'ecwid-my-account' => array( 'list-name' => __( 'My Account', 'ecwid-shopping-cart' ), 'classes' => 'ecwid-my-account', 'url' => 'accountSettings', 'label' => __( 'My Account', 'ecwid-shopping-cart' ), 'name' => 'account', 'ecwid-page' => 'account/orders', 'nofollow' => true, ), 'ecwid-store' => array( 'list-name' => __( 'Store', 'ecwid-shopping-cart' ), 'classes' => 'ecwid-store', 'url' => '', 'label' => __( 'Store', 'ecwid-shopping-cart' ), 'name' => 'store', 'ecwid-page' => '/', ), 'ecwid-store-with-categories' => array( 'list-name' => __( 'Store with Categories Menu', 'ecwid-shopping-cart' ), 'classes' => 'ecwid-store-with-categories', 'url' => '', 'label' => __( 'Store', 'ecwid-shopping-cart' ), 'name' => 'store-with-categories', 'ecwid-page' => '/', ), ); return $this->item_types; } } $ecwid_menus = new Ecwid_Nav_Menus(); ecwid-shopping-cart/includes/class-ecwid-oauth.php000064400000025465151222736030016263 0ustar00_load_state(); $this->api = new Ecwid_Api_V3(); } public function test_post() { $return = EcwidPlatform::http_post_request( $this->get_test_post_url() ); return is_array( $return ); } public function get_test_post_url() { return Ecwid_Config::get_oauth_auth_url(); } public function get_auth_dialog_url() { $action = 'ec_oauth'; if ( $this->_is_reconnect() ) { $action = 'ec_oauth_reconnect'; } $redirect_uri = admin_url( 'admin-post.php?action=' . $action ); $redirect_uri = $this->check_url_for_idn_format( $redirect_uri ); return $this->api->get_oauth_dialog_url( $redirect_uri, implode( ' ', $this->_get_scope() ) ); } public function get_sso_reconnect_dialog_url() { $redirect_uri = 'admin-post.php?action=ec_oauth_reconnect'; $scope = $this->_get_scope(); if ( ! in_array( 'create_customers', $scope ) ) { $scope[] = 'create_customers'; } return $this->api->get_oauth_dialog_url( admin_url( $redirect_uri ), implode( ' ', $scope ) ); } public function process_authorization() { $reconnect = isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'ec_oauth_reconnect'; if ( isset( $_REQUEST['error'] ) || ! isset( $_REQUEST['code'] ) ) { if ( $reconnect ) { $this->update_state( array( 'mode' => self::MODE_RECONNECT, 'error' => 'cancelled', ) ); } else { $this->update_state( array( 'mode' => self::MODE_CONNECT, 'error' => 'cancelled', ) ); } wp_safe_redirect( Ecwid_Admin::get_dashboard_url() . '&connection_error' . ( $reconnect ? '&reconnect' : '' ) ); exit; } $base_admin_url = 'admin-post.php?action=ec_oauth' . ( $reconnect ? '_reconnect' : '' ); $redirect_uri = admin_url( $base_admin_url ); $redirect_uri = $this->check_url_for_idn_format( $redirect_uri ); $params['code'] = sanitize_text_field( wp_unslash( $_REQUEST['code'] ) ); $params['client_id'] = Ecwid_Config::get_oauth_appid(); $params['client_secret'] = Ecwid_Config::get_oauth_appsecret(); $params['redirect_uri'] = $redirect_uri; $params['grant_type'] = 'authorization_code'; $request = Ecwid_HTTP::create_post( 'oauth_authorize', Ecwid_Config::get_oauth_token_url(), array( Ecwid_HTTP::POLICY_RETURN_VERBOSE, ) ); $return = $request->do_request( array( 'body' => $params ) ); $result = new stdClass(); if ( is_array( $return ) && isset( $return['data'] ) ) { $result = json_decode( $return['data'] ); } if ( ! is_array( $return ) || ! isset( $result->store_id ) || ! isset( $result->scope ) || ! isset( $result->access_token ) || ( $result->token_type != 'Bearer' ) ) { // detect cURL problem if ( $request->is_error ) { if ( strstr( $request->error->get_error_message(), 'cURL error' ) !== false ) { $reconnect = 'true'; } } return $this->trigger_auth_error( $reconnect ? 'reconnect' : 'default' ); } ecwid_update_store_id( $result->store_id ); update_option( 'ecwid_oauth_scope', $result->scope ); update_option( 'ecwid_public_token', $result->public_token ); update_option( self::OPTION_JUST_CONNECTED, true ); EcwidPlatform::cache_reset( 'all_categories' ); ecwid_invalidate_cache( true ); Ecwid_Api_V3::reset_api_status(); $this->api->save_token( $result->access_token ); do_action( 'ecwid_authorization_success' ); if ( isset( $this->state->return_url ) && ! empty( $this->state->return_url ) ) { wp_safe_redirect( admin_url( $this->state->return_url ) ); } else { $url = ''; if ( $reconnect ) { $url = Ecwid_Admin::get_dashboard_url() . '&setting-updated=true'; } else { $url = Ecwid_Admin::get_dashboard_url(); } wp_safe_redirect( $url ); } exit; } public function disconnect_store() { update_option( 'ecwid_store_id', ecwid_get_demo_store_id() ); $this->api->save_token( '' ); wp_safe_redirect( Ecwid_Admin::get_dashboard_url() ); exit; } public function get_safe_scopes_array( $scopes ) { if ( ! isset( $scopes ) || empty( $scopes ) ) { return $this->_get_default_scopes_array(); } if ( ! empty( $scopes ) ) { $scopes_array = explode( ' ', $scopes ); foreach ( $scopes_array as $key => $scope ) { if ( ! preg_match( '/^[a-z_]+$/', $scope ) ) { unset( $scopes_array[ $key ] ); } } } return $scopes_array; } public function has_scope( $scope ) { if ( Ecwid_Config::overrides_token() ) { $stored_scope = implode( ' ', $this->_get_default_scopes_array() ); } else { $stored_scope = get_option( 'ecwid_oauth_scope' ); if ( empty( $stored_scope ) ) { $stored_scope = implode( ' ', array( self::SCOPE_READ_STORE_PROFILE, self::SCOPE_UPDATE_STORE_PROFILE, self::SCOPE_READ_CATALOG, ) ); } } return in_array( $scope, explode( ' ', $stored_scope ) ); } protected function _get_default_scopes_array() { $defaults = array( self::SCOPE_READ_STORE_PROFILE, self::SCOPE_UPDATE_STORE_PROFILE, self::SCOPE_READ_CATALOG, 'allow_sso', 'create_customers', 'public_storefront', ); if ( function_exists( 'is_plugin_active' ) && is_plugin_active( 'woocommerce/woocommerce.php' ) ) { $defaults[] = 'create_catalog'; $defaults[] = 'update_catalog'; } return $defaults; } protected function trigger_auth_error( $mode = 'default' ) { update_option( 'ecwid_last_oauth_fail_time', time() ); $logs = get_option( 'ecwid_error_log' ); if ( $logs ) { $logs = json_decode( $logs ); } if ( is_array( $logs ) && count( $logs ) > 0 ) { $entry = $logs[ count( $logs ) - 1 ]; if ( isset( $entry->message ) ) { $last_error = $entry->message; } } if ( $mode == self::MODE_RECONNECT ) { $this->update_state( array( 'mode' => 'reconnect', 'error' => 'other', ) ); } if ( isset( $last_error ) ) { EcwidPlatform::report_error( $last_error ); } wp_safe_redirect( Ecwid_Admin::get_dashboard_url() . '&connection_error' . ( $mode == self::MODE_RECONNECT ? '&reconnect' : '' ) ); exit(); } protected function _get_scope() { $default = $this->_get_default_scopes_array(); $scopes = array(); if ( $this->_is_reconnect() ) { $scopes = isset( $this->state->reconnect_scopes ) && is_array( $this->state->reconnect_scopes ) ? $this->state->reconnect_scopes : array(); } $scopes = array_merge( $scopes, $default ); return $scopes; } public function get_sso_admin_link() { $url = 'https://' . Ecwid_Config::get_cpanel_domain() . '/api/v3/%s/sso?token=%s×tamp=%s&signature=%s&inline=true'; $store_id = get_ecwid_store_id(); $token = $this->api->get_token(); $timestamp = time(); $signature = hash( 'sha256', $store_id . $token . $timestamp . Ecwid_Config::get_oauth_appsecret() ); $url = sprintf( $url, $store_id, $token, $timestamp, $signature ); return $url; } protected function _load_state() { if ( isset( $_COOKIE['ecwid_oauth_state'] ) ) { $cookie = sanitize_text_field( wp_unslash( $_COOKIE['ecwid_oauth_state'] ) ); $this->state = @json_decode( $cookie ); } if ( ! is_object( $this->state ) ) { $this->state = new stdClass(); $this->state->reconnect_scopes = array(); $this->state->reconnect_error = ''; $this->state->return_url = ''; $this->state->reason = ''; $this->state->mode = self::MODE_CONNECT; } } public function get_state() { return $this->state; } protected function _save_state() { if ( ! headers_sent() ) { setcookie( 'ecwid_oauth_state', json_encode( $this->state ), strtotime( '+1 day' ), ADMIN_COOKIE_PATH, COOKIE_DOMAIN ); } } public function get_reconnect_error() { return $this->state->reconnect_error; } public function update_state( $params ) { if ( isset( $params['mode'] ) ) { $this->state->mode = $params['mode'] == self::MODE_RECONNECT ? self::MODE_RECONNECT : self::MODE_CONNECT; } if ( $this->_is_reconnect() ) { if ( isset( $params['scope'] ) ) { $this->state->reconnect_scopes = $this->get_safe_scopes_array( @$params['scope'] ); } if ( isset( $params['return_url'] ) ) { $this->state->return_url = $params['return_url']; } if ( isset( $params['error'] ) ) { $this->state->reconnect_error = $params['error']; } if ( isset( $params['reason'] ) ) { $this->state->reason = $params['reason']; } } $this->_save_state(); } public function get_error() { if ( $this->_is_reconnect() ) { return $this->state->reconnect_error; } else { return $this->state->error; } } public function get_reconnect_message() { $reconnect_message = ''; if ( isset( $this->state->reason ) ) { switch ( $this->state->reason ) { case 'spw': $reconnect_message = sprintf( __( 'To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the "Add product" dialog.', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ); break; case '2': $reconnect_message = 'Message 2'; break; } } return $reconnect_message; } public static function just_connected() { return get_option( self::OPTION_JUST_CONNECTED ); } public function reset_just_connected() { update_option( self::OPTION_JUST_CONNECTED, false ); } public function check_url_for_idn_format( $url ) { if ( function_exists( 'idn_to_ascii' ) ) { $host = wp_parse_url( $url, PHP_URL_HOST ); if ( idn_to_ascii( $host, IDNA_DEFAULT, INTL_IDNA_VARIANT_UTS46 ) === false ) { return $url; } $is_idn_format = $host != idn_to_ascii( $host, IDNA_DEFAULT, INTL_IDNA_VARIANT_UTS46 ); if ( $is_idn_format ) { $encoded_host = idn_to_ascii( $host, IDNA_DEFAULT, INTL_IDNA_VARIANT_UTS46 ); $pattern = '/' . $host . '/i'; return preg_replace( $pattern, $encoded_host, $url, 1 ); } } return $url; } protected function _is_reconnect() { return @$this->state->mode == self::MODE_RECONNECT; } } $ecwid_oauth = new Ecwid_OAuth(); ecwid-shopping-cart/includes/class-ecwid-popup-deactivate.php000064400000012352151222736030020404 0ustar00_get_reasons(); if ( isset( $_GET['reason'] ) ) { $reason = $reasons[ sanitize_text_field( wp_unslash( $_GET['reason'] ) ) ]; } else { $reason = end( $reasons ); } if ( isset( $reason['is_disable_message'] ) ) { update_option( self::OPTION_DISABLE_POPUP, true ); } $body_lines[] = 'Store URL: ' . Ecwid_Store_Page::get_store_url(); $body_lines[] = 'Plugin installed: ' . date_i18n( 'd M Y', get_option( 'ecwid_installation_date' ) ); $body_lines[] = 'Plugin version: ' . get_option( 'ecwid_plugin_version' ); $body_lines[] = 'Reason:' . $reason['text'] . "\n" . ( ! empty( $_GET['message'] ) ? sanitize_text_field( wp_unslash( $_GET['message'] ) ) : '[no message]' ); $api = new Ecwid_Api_V3(); $profile = $api->get_store_profile(); if ( $profile && @$profile->account && @$profile->account->accountEmail ) { $reply_to = $profile->account->accountEmail; } else { global $current_user; $reply_to = $current_user->user_email; } $subject_template = __( '[%1$s] WordPress plugin deactivation feedback (store ID: %2$s)', 'ecwid-shopping-cart' ); $prefix = $reason['code']; if ( ! empty( $_GET['message'] ) ) { $prefix .= ', commented'; } $subject = sprintf( $subject_template, $prefix, get_ecwid_store_id() ); $result = wp_mail( $to, $subject, implode( PHP_EOL, $body_lines ), 'Reply-To:' . $reply_to ); if ( $result ) { header( 'HTTP/1.1 200 OK' ); die(); } else { header( '500 Send mail failed' ); die(); } } public function is_disabled() { $disabled = get_option( self::OPTION_DISABLE_POPUP, false ); if ( $disabled ) { return true; } if ( Ecwid_Config::is_wl() ) { return true; } if ( strpos( ecwid_get_current_user_locale(), 'en' ) !== 0 ) { return true; } return false; } protected function _get_footer_buttons() { return array( (object) array( 'class' => 'button-primary float-left deactivate', 'title' => __( 'Submit & Deactivate', 'ecwid-shopping-cart' ), ), (object) array( 'class' => 'button-link deactivate', 'title' => __( 'Skip & Deactivate', 'ecwid-shopping-cart' ), ), ); } protected function _get_header() { return __( 'Before You Go', 'ecwid-shopping-cart' ); } protected function _render_body() { if ( ecwid_is_paid_account() ) { $support_link = Ecwid_Config::get_contact_us_url(); } else { $support_link = 'https://wordpress.org/support/plugin/ecwid-shopping-cart/#new-topic-0'; } $reasons = $this->_get_reasons(); require ECWID_POPUP_TEMPLATES_DIR . 'deactivate.php'; } protected function _get_reasons() { $options = array( array( 'text' => __( 'I have a problem using this plugin', 'ecwid-shopping-cart' ), 'has_message' => true, 'code' => 'problem', 'message_hint' => __( 'What was wrong?', 'ecwid-shopping-cart' ), ), array( 'text' => sprintf( __( 'I couldn’t find a WordPress theme that goes well with %s', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ), 'has_message' => true, 'code' => 'theme', 'message_hint' => sprintf( __( 'I use this WordPress theme: %s', 'ecwid-shopping-cart' ), wp_get_theme()->get( 'Name' ) ), ), array( 'text' => __( 'The plugin doesn\'t support the feature I want', 'ecwid-shopping-cart' ), 'has_message' => true, 'code' => 'no feature', 'message_hint' => __( 'What feature do you need?', 'ecwid-shopping-cart' ), ), array( 'text' => __( 'I found a better plugin', 'ecwid-shopping-cart' ), 'has_message' => true, 'code' => 'found better', 'message_hint' => __( 'Can you share the name of the plugin you chose?', 'ecwid-shopping-cart' ), ), array( 'text' => __( 'It\'s a temporary deactivation. Please do not ask me again.', 'ecwid-shopping-cart' ), 'has_message' => false, 'code' => 'temporary', 'is_disable_message' => true, ), array( 'text' => __( 'Other', 'ecwid-shopping-cart' ), 'has_message' => true, 'code' => 'other', 'message_hint' => __( 'Can you share your feedback? What was wrong?', 'ecwid-shopping-cart' ), ), ); return $options; } } ecwid-shopping-cart/includes/class-ecwid-popup.php000064400000002527151222736030016300 0ustar00_init(); } protected function _init() { add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) ); add_action( 'admin_footer', array( $this, 'render' ) ); } public function enqueue_scripts() { wp_enqueue_script( 'ecwid-popup', ECWID_PLUGIN_URL . '/js/popup.js', array( 'jquery' ), get_option('ecwid_plugin_version') ); wp_enqueue_style( 'ecwid-popup', ECWID_PLUGIN_URL . '/css/popup.css', array(), get_option('ecwid_plugin_version') ); } public function render() { require( ECWID_POPUP_TEMPLATES_DIR . 'popup.php' ); } protected function _render_header() { require( ECWID_POPUP_TEMPLATES_DIR . 'header.php' ); } protected function _render_footer() { require( ECWID_POPUP_TEMPLATES_DIR . 'footer.php' ); } abstract protected function _get_footer_buttons(); abstract protected function _get_header(); abstract protected function _render_body(); } ecwid-shopping-cart/includes/class-ecwid-product-browser.php000064400000050224151222736030020273 0ustar00 array( 'name' => 'product_list_show_product_images', 'title' => __( 'Show product thumbnails', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => true, 'is_storefront_api' => true, ), 'product_list_image_size' => array( 'name' => 'product_list_image_size', 'title' => __( 'Product thumbnail size', 'ecwid-shopping-cart' ), 'values' => self::_get_sizes(), 'default' => 'MEDIUM', 'is_storefront_api' => true, ), 'product_list_image_aspect_ratio' => array( 'name' => 'product_list_image_aspect_ratio', 'title' => __( 'Product thumbnail aspect ratio', 'ecwid-shopping-cart' ), 'values' => self::_get_aspect_ratios(), 'default' => 'SQUARE', 'is_storefront_api' => true, ), 'product_list_show_frame' => array( 'name' => 'product_list_show_frame', 'title' => __( 'Show product card border', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => false, 'is_storefront_api' => true, ), 'product_list_product_info_layout' => array( 'name' => 'product_list_product_info_layout', 'title' => __( 'Product card text align', 'ecwid-shopping-cart' ), 'values' => array( array( 'value' => 'LEFT', 'title' => __( 'Left', 'ecwid-shopping-cart' ), 'icon' => 'textalignleft', ), array( 'value' => 'CENTER', 'title' => __( 'Center', 'ecwid-shopping-cart' ), 'icon' => 'textaligncenter', ), array( 'value' => 'RIGHT', 'title' => __( 'Right', 'ecwid-shopping-cart' ), 'icon' => 'textalignright', ), array( 'value' => 'JUSTIFY', 'title' => __( 'Justify', 'ecwid-shopping-cart' ), 'icon' => 'textalignjustify', ), ), 'default' => 'CENTER', 'is_storefront_api' => true, ), 'product_list_title_behavior' => array( 'name' => 'product_list_title_behavior', 'title' => __( 'Product title', 'ecwid-shopping-cart' ), 'values' => self::_get_behaviors(), 'default' => 'SHOW', 'is_storefront_api' => true, ), 'product_list_price_behavior' => array( 'name' => 'product_list_price_behavior', 'title' => __( 'Product price', 'ecwid-shopping-cart' ), 'values' => self::_get_behaviors(), 'default' => 'SHOW', 'is_storefront_api' => true, ), 'product_list_sku_behavior' => array( 'name' => 'product_list_sku_behavior', 'title' => __( 'Product SKU', 'ecwid-shopping-cart' ), 'values' => self::_get_behaviors(), 'default' => 'HIDE', 'is_storefront_api' => true, ), 'product_list_buybutton_behavior' => array( 'name' => 'product_list_buybutton_behavior', 'title' => __( 'Buy now buttons', 'ecwid-shopping-cart' ), 'values' => self::_get_behaviors(), 'default' => 'SHOW', 'is_storefront_api' => true, ), 'product_list_show_additional_image_on_hover' => array( 'name' => 'product_list_show_additional_image_on_hover', 'title' => __( 'Show additional image on hover', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => false, 'is_storefront_api' => true, ), 'product_list_category_title_behavior' => array( 'name' => 'product_list_category_title_behavior', 'title' => __( 'Category card layout', 'ecwid-shopping-cart' ), 'values' => array( array( 'value' => 'SHOW_BELOW_IMAGE', 'title' => __( 'Title under image', 'ecwid-shopping-cart' ), ), array( 'value' => 'SHOW_ON_IMAGE', 'title' => __( 'Title on image', 'ecwid-shopping-cart' ), ), array( 'value' => 'SHOW_ON_HOVER', 'title' => __( 'Image and title on mouse over', 'ecwid-shopping-cart' ), ), array( 'value' => 'SHOW_TEXT_ONLY', 'title' => __( 'Title only', 'ecwid-shopping-cart' ), ), array( 'value' => 'HIDE', 'title' => __( 'Image only', 'ecwid-shopping-cart' ), ), ), 'default' => 'SHOW_ON_IMAGE', 'is_storefront_api' => true, ), 'product_list_category_image_size' => array( 'name' => 'product_list_category_image_size', 'title' => __( 'Category thumbnail size', 'ecwid-shopping-cart' ), 'values' => self::_get_sizes(), 'default' => 'MEDIUM', 'is_storefront_api' => true, ), 'product_list_category_image_aspect_ratio' => array( 'name' => 'product_list_category_image_aspect_ratio', 'title' => __( 'Category thumbnail aspect ratio', 'ecwid-shopping-cart' ), 'values' => self::_get_aspect_ratios(), 'default' => 'SQUARE', 'is_storefront_api' => true, ), 'show_categories' => array( 'name' => 'show_categories', 'title' => __( 'Display categories menu', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => false, ), 'show_search' => array( 'name' => 'show_search', 'title' => __( 'Display search box', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => false, ), 'show_breadcrumbs' => array( 'name' => 'show_breadcrumbs', 'title' => __( 'Display breadcrumbs', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => true, 'is_storefront_api' => true, ), 'show_footer_menu' => array( 'name' => 'show_footer_menu', 'title' => __( 'Display footer menu', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => true, 'is_storefront_api' => true, ), 'show_signin_link' => array( 'name' => 'show_signin_link', 'title' => __( 'Display sign in link', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => true, 'is_storefront_api' => true, ), 'product_list_show_sort_viewas_options' => array( 'name' => 'product_list_show_sort_viewas_options', 'title' => __( 'Display sort by link', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => true, 'is_storefront_api' => true, ), 'default_category_id' => array( 'name' => 'default_category_id', 'title' => '', 'type' => 'default_category_id', 'default' => 0, ), 'default_product_id' => array( 'name' => 'default_product_id', 'title' => __( 'Default product_ID', 'ecwid-shopping-cart' ), 'type' => 'default_product_id', 'default' => 0, ), 'product_details_layout' => array( 'name' => 'product_details_layout', 'title' => __( 'Product page layout', 'ecwid-shopping-cart' ), 'values' => self::_get_product_details_layouts(), 'default' => 'TWO_COLUMNS_SIDEBAR_ON_THE_RIGHT', 'is_storefront_api' => true, ), 'product_details_two_columns_with_left_sidebar_show_product_description_on_sidebar' => array( 'name' => 'product_details_two_columns_with_left_sidebar_show_product_description_on_sidebar', 'title' => __( 'Show description under the image', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => true, 'is_storefront_api' => true, ), 'product_details_two_columns_with_right_sidebar_show_product_description_on_sidebar' => array( 'name' => 'product_details_two_columns_with_right_sidebar_show_product_description_on_sidebar', 'title' => __( 'Show description under the image', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => true, 'is_storefront_api' => true, ), 'product_details_gallery_layout' => array( 'name' => 'product_details_gallery_layout', 'title' => __( 'Image gallery layout', 'ecwid-shopping-cart' ), 'values' => self::_get_gallery_layouts(), 'default' => 'IMAGE_SINGLE_THUMBNAILS_HORIZONTAL', 'is_storefront_api' => true, ), 'product_details_show_product_name' => array( 'name' => 'product_details_show_product_name', 'title' => __( 'Title', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => true, 'is_storefront_api' => true, ), 'product_details_show_breadcrumbs' => array( 'name' => 'product_details_show_breadcrumbs', 'title' => __( 'Breadcrumbs', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => true, 'is_storefront_api' => true, ), 'product_details_show_product_sku' => array( 'name' => 'product_details_show_product_sku', 'title' => _x( 'Product SKU', 'product-browser-attributes', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => true, 'is_storefront_api' => true, ), 'product_details_show_product_price' => array( 'name' => 'product_details_show_product_price', 'title' => _x( 'Product price', 'product-browser-attributes', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => true, 'is_storefront_api' => true, ), 'product_details_show_qty' => array( 'name' => 'product_details_show_qty', 'title' => __( 'Product quantity', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => true, 'is_storefront_api' => true, ), 'product_details_show_weight' => array( 'name' => 'product_details_show_weight', 'title' => __( 'Product weight', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => true, 'is_storefront_api' => true, ), 'product_details_show_number_of_items_in_stock' => array( 'name' => 'product_details_show_number_of_items_in_stock', 'title' => __( 'Available qty in stock', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => true, 'is_storefront_api' => true, ), 'product_details_show_in_stock_label' => array( 'name' => 'product_details_show_in_stock_label', 'title' => __( '"In stock" label', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => true, 'is_storefront_api' => true, ), 'product_details_show_wholesale_prices' => array( 'name' => 'product_details_show_wholesale_prices', 'title' => __( 'Wholesale prices', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => true, 'is_storefront_api' => true, ), 'product_details_show_share_buttons' => array( 'name' => 'product_details_show_share_buttons', 'title' => __( 'Share buttons', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => true, 'is_storefront_api' => true, ), 'product_details_show_navigation_arrows' => array( 'name' => 'product_details_show_navigation_arrows', 'title' => __( 'Navigation arrows', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => true, 'is_storefront_api' => true, ), 'product_details_show_product_photo_zoom' => array( 'name' => 'product_details_show_product_photo_zoom', 'title' => __( 'Product photo zoom', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => false, 'is_storefront_api' => true, ), 'chameleon_color_button' => array( 'name' => 'chameleon_color_button', 'title' => __( 'Button color', 'ecwid-shopping-cart' ), 'default' => get_option( 'ecwid_chameleon_colors_button' ), 'is_storefront_api' => true, ), 'chameleon_color_foreground' => array( 'name' => 'chameleon_color_foreground', 'title' => __( 'Text color', 'ecwid-shopping-cart' ), 'default' => get_option( 'ecwid_chameleon_colors_foreground' ), 'is_storefront_api' => true, ), 'chameleon_color_price' => array( 'name' => 'chameleon_color_price', 'title' => __( 'Price color', 'ecwid-shopping-cart' ), 'default' => get_option( 'ecwid_chameleon_colors_price' ), 'is_storefront_api' => true, ), 'chameleon_color_link' => array( 'name' => 'chameleon_color_link', 'title' => __( 'Link color', 'ecwid-shopping-cart' ), 'default' => get_option( 'ecwid_chameleon_colors_link' ), 'is_storefront_api' => true, ), 'chameleon_color_background' => array( 'name' => 'chameleon_color_background', 'title' => __( 'Background color', 'ecwid-shopping-cart' ), 'default' => get_option( 'ecwid_chameleon_colors_background' ), 'is_storefront_api' => true, ), 'product_filters_position_search_page' => array( 'name' => 'product_filters_position_search_page', 'title' => __( 'Filters panel position', 'ecwid-shopping-cart' ), 'values' => array( array( 'value' => 'LEFT', 'title' => __( 'On the left', 'ecwid-shopping-cart' ), ), array( 'value' => 'RIGHT', 'title' => __( 'On the right', 'ecwid-shopping-cart' ), ), ), 'default' => 'LEFT', 'is_storefront_api' => true, ), 'storefront_view' => array( 'name' => 'storefront_view', 'title' => __( 'Products view on the store’s front page:', 'ecwid-shopping-cart' ), 'values' => array( array( 'value' => 'COLLAPSE_CATEGORIES', 'title' => __( 'Categories list and featured products', 'ecwid-shopping-cart' ), 'description' => __( 'Display root categories and featured products. Good for showing all categories and highlighting some products. Recommended for most stores.', 'ecwid-shopping-cart' ), 'config_name' => 'enable_catalog_on_one_page', 'config_value' => false, ), array( 'value' => 'EXPAND_CATEGORIES', 'title' => __( 'Expanded categories', 'ecwid-shopping-cart' ), 'description' => __( 'Unfold all categories and display the products they contain. Good for restaurants and shops with a fewer number of products.', 'ecwid-shopping-cart' ), 'config_name' => 'enable_catalog_on_one_page', 'config_value' => true, ), array( 'value' => 'SHOW_ROOT_CATEGORIES', 'title' => __( 'Only featured products', 'ecwid-shopping-cart' ), 'description' => __( 'Display featured products without the categories list. Good when categories are already shown in the site menu.', 'ecwid-shopping-cart' ), 'config_name' => 'show_root_categories', 'config_value' => false, ), array( 'value' => 'DEFAULT_CATEGORY_ID', 'title' => __( 'Featured category', 'ecwid-shopping-cart' ), 'description' => __( 'Display a category page. Good for featuring a certain category; for example, new products or bestsellers', 'ecwid-shopping-cart' ), 'config_name' => '', 'config_value' => false, ), ), 'default' => 'COLLAPSE_CATEGORIES', ), ); $api = new Ecwid_Api_V3(); if ( $api->is_store_feature_available( Ecwid_Api_V3::FEATURE_PRODUCT_FILTERS ) ) { $attributes['storefront_view']['values'][] = array( 'value' => 'FILTERS_PAGE', 'title' => __( 'All products with filters', 'ecwid-shopping-cart' ), 'description' => __( 'Display all products and product filters. Good for a large product catalog with similar products.', 'ecwid-shopping-cart' ), ); } if ( $api->is_store_feature_available( Ecwid_Api_V3::FEATURE_PRODUCT_SUBTITLES ) ) { $attributes['product_list_subtitles_behavior'] = array( 'name' => 'product_list_subtitles_behavior', 'title' => __( 'Product subtitles', 'ecwid-shopping-cart' ), 'values' => self::_get_behaviors(), 'default' => 'SHOW', 'is_storefront_api' => true, ); $attributes['product_details_show_subtitle'] = array( 'name' => 'product_details_show_subtitle', 'title' => __( 'Subtitle', 'ecwid-shopping-cart' ), 'type' => 'boolean', 'default' => true, 'is_storefront_api' => true, ); } return $attributes; } protected static function _get_behaviors() { return array( array( 'value' => 'SHOW', 'title' => __( 'Show', 'ecwid-shopping-cart' ), ), array( 'value' => 'HIDE', 'title' => __( 'Hide', 'ecwid-shopping-cart' ), ), array( 'value' => 'SHOW_ON_HOVER', 'title' => __( 'Show on hover', 'ecwid-shopping-cart' ), ), ); } protected static function _get_sizes() { return array( array( 'value' => 'SMALL', 'title' => __( 'S', 'ecwid-shopping-cart' ), ), array( 'value' => 'MEDIUM', 'title' => __( 'M', 'ecwid-shopping-cart' ), ), array( 'value' => 'LARGE', 'title' => __( 'L', 'ecwid-shopping-cart' ), ), ); } protected static function _get_aspect_ratios() { return array( array( 'value' => 'PORTRAIT_0667', 'title' => __( 'Portrait 2:3', 'ecwid-shopping-cart' ), 'icon' => 'aspect916', ), array( 'value' => 'PORTRAIT_075', 'title' => __( 'Portrait 3:4', 'ecwid-shopping-cart' ), 'icon' => 'aspect34', ), array( 'value' => 'SQUARE', 'title' => __( 'Square 1:1', 'ecwid-shopping-cart' ), 'icon' => 'aspect11', ), array( 'value' => 'LANDSCAPE_1333', 'title' => __( 'Landscape 4:3', 'ecwid-shopping-cart' ), 'icon' => 'aspect43', ), array( 'value' => 'LANDSCAPE_15', 'title' => __( 'Landscape 3:2', 'ecwid-shopping-cart' ), 'icon' => 'aspect169', ), ); } protected static function _get_product_details_layouts() { return array( array( 'value' => 'TWO_COLUMNS_SIDEBAR_ON_THE_RIGHT', 'title' => __( '2 columns, image on the left', 'ecwid-shopping-cart' ), ), array( 'value' => 'TWO_COLUMNS_SIDEBAR_ON_THE_LEFT', 'title' => __( '2 columns, image on the right', 'ecwid-shopping-cart' ), ), array( 'value' => 'THREE_COLUMNS_SIDEBAR_ON_THE_RIGHT', 'title' => __( '3 columns, image on the left', 'ecwid-shopping-cart' ), ), array( 'value' => 'THREE_COLUMNS_SIDEBAR_ON_THE_LEFT', 'title' => __( '3 columns, image on the right', 'ecwid-shopping-cart' ), ), ); } protected static function _get_gallery_layouts() { return array( array( 'value' => 'IMAGE_SINGLE_THUMBNAILS_HORIZONTAL', 'title' => __( 'Horizontal thumbnails', 'ecwid-shopping-cart' ), 'icon' => 'galleryLayoutVertical', ), array( 'value' => 'IMAGE_SINGLE_THUMBNAILS_VERTICAL', 'title' => __( 'Vertical thumbnails', 'ecwid-shopping-cart' ), 'icon' => 'galleryLayoutHorizontal', ), array( 'value' => 'IMAGE_FEED', 'title' => __( 'Image feed', 'ecwid-shopping-cart' ), 'icon' => 'galleryLayoutFeed', ), ); } } ecwid-shopping-cart/includes/class-ecwid-product-popup.php000064400000012153151222736030017752 0ustar00base === 'post'; $is_site_editor = $current_screen->base === 'site-editor'; $is_widgets_screen = false; if ( strpos( $version, '5.8' ) === 0 || version_compare( $version, '5.8' ) >= 0 ) { $is_widgets_screen = $current_screen->base === 'widgets'; } if ( ! $is_post_screen && ! $is_widgets_screen && ! $is_site_editor ) { return; } if ( $is_post_screen && ! in_array( $current_screen->post_type, array( 'page', 'post' ) ) ) { //phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict return; } if ( is_plugin_active( 'elementor/elementor.php' ) && isset( $_GET['action'] ) && $_GET['action'] === 'elementor' ) { //phpcs:ignore WordPress.Security.NonceVerification.Recommended return; } if ( Ecwid_Api_V3::get_token() ) { add_action( 'media_buttons', array( $this, 'add_editor_button' ) ); add_action( 'admin_enqueue_scripts', array( $this, 'add_scripts' ) ); add_action( 'in_admin_header', array( $this, 'add_popup' ) ); } } public function save_display_params() { if ( ! check_ajax_referer( 'ecwid-product-popup' ) ) { die(); } if ( ! is_admin() || ! current_user_can( Ecwid_Admin::get_capability() ) ) { return; } $params = isset( $_REQUEST['params'] ) ? map_deep( wp_unslash( $_REQUEST['params'] ), 'sanitize_text_field' ) : array(); EcwidPlatform::set( 'spw_display_params', $params ); } public function search_products() { if ( ! is_admin() || ! current_user_can( Ecwid_Admin::get_capability() ) ) { return; } $api = new Ecwid_Api_V3(); $allowed = array( 'keyword', 'sortBy' ); foreach ( $allowed as $name ) { if ( array_key_exists( $name, $_REQUEST ) ) { $params[ $name ] = sanitize_text_field( wp_unslash( $_REQUEST[ $name ] ) ); } } $params['limit'] = 10; $params['offset'] = 0; if ( array_key_exists( 'page', $_REQUEST ) ) { $params['offset'] = $params['limit'] * ( intval( $_REQUEST['page'] ) - 1 ); } $result = $api->search_products( $params ); if ( $result && $result->count > 0 ) { $output = array( 'total' => $result->total, 'count' => $result->count, 'offset' => $result->offset, 'limit' => $params['limit'], 'items' => array(), ); foreach ( $result->items as $product ) { $output['items'][] = array( 'id' => $product->id, 'name' => $product->name, 'thumb' => ! empty( $product->thumbnailUrl ) ? $product->thumbnailUrl : '', //phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase 'sku' => $product->sku, ); } echo wp_json_encode( $output ); }//end if wp_die(); } public function add_editor_button( $editor_id ) { //phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found $title = __( 'Add Product', 'ecwid-shopping-cart' ); ?> wp_create_nonce( 'ecwid-product-popup' ), ) ); $data = array(); if ( ! Ecwid_Api_V3::get_token() ) { $data = array( 'no_token' => 1 ); } else { $data = EcwidPlatform::get( 'spw_display_params' ); } if ( ! isset( $data['display'] ) ) { $data['display'] = array( 'picture' => 1, 'title' => 1, 'price' => 1, 'addtobag' => 1, 'options' => 1, ); } if ( ! isset( $data['attributes'] ) ) { $data['attributes'] = array( 'show_price_on_button' => 1, 'center_align' => 1, 'show_border' => 1, ); } $data['labels'] = array( 'firstPage' => __( 'First Page', 'ecwid-shopping-cart' ), 'prevPage' => __( 'Previous Page', 'ecwid-shopping-cart' ), 'nextPage' => __( 'Next Page', 'ecwid-shopping-cart' ), 'lastPage' => __( 'Last Page', 'ecwid-shopping-cart' ), ); wp_localize_script( 'ecwid-product-popup', 'ecwidSpwParams', $data ); } public function add_popup() { require_once ECWID_PLUGIN_DIR . 'templates/product-popup.php'; } } $ecwid_product_popup = new Ecwid_Product_Popup(); ecwid-shopping-cart/includes/class-ecwid-products.php000064400000043743151222736030017005 0ustar00_api = new Ecwid_Api_V3( get_ecwid_store_id() ); $this->_status = new Ecwid_Products_Sync_Status(); $this->_status->load(); add_action( 'ecwid_update_store_id', array( $this, 'reset_dates' ) ); add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_admin' ) ); if ( ! self::is_enabled() ) { return; } add_action( 'init', array( $this, 'register_post_type' ) ); add_action( 'admin_init', array( $this, 'register_post_type' ) ); add_filter( 'the_content', array( $this, 'content' ) ); add_filter( 'post_thumbnail_html', array( $this, 'thumbnail' ) ); add_action( 'wp_ajax_ecwid_get_post_link', array( $this, 'ajax_get_post_link' ) ); add_action( 'wp_ajax_nopriv_ecwid_get_post_link', array( $this, 'ajax_get_post_link' ) ); add_filter( 'post_type_link', array( $this, 'replace_product_page_url_on_search' ), 10, 3 ); add_action( 'template_redirect', array( $this, 'redirect_to_store_page' ) ); add_action( 'ecwid_on_plugin_update', array( $this, 'on_plugin_update' ) ); if ( EcwidPlatform::get( 'hide_out_of_stock' ) ) { add_filter( 'posts_join_paged', array( $this, 'join_out_of_stock' ) ); } $this->sync_limit = get_option( self::OPTION_SYNC_LIMIT, $this->sync_limit ); $this->_sync_progress_callback = '__return_false'; } public function on_plugin_update() { add_option( self::OPTION_NO_SSE, false ); add_option( self::OPTION_NO_IMAGES, false ); } public function enqueue_admin() { EcwidPlatform::enqueue_style( 'sync.css' ); } public function replace_product_page_url_on_search( $url, $post, $leavename = false ) { if ( $post->post_type == self::POST_TYPE_PRODUCT ) { $new_url = $this->_get_post_link( $post->ID ); if ( $new_url ) { return $new_url; } } return $url; } public function redirect_to_store_page() { $post = get_post(); if ( $post && $post->post_type == self::POST_TYPE_PRODUCT && is_single() ) { $url = $this->_get_post_link( $post->ID ); if ( $url ) { wp_safe_redirect( $url, 301 ); exit(); } } } public function join_out_of_stock( $join ) { if ( ! is_search() ) { return $join; } if ( ! $join ) { $join = ''; } global $wpdb; $join .= 'LEFT JOIN ' . $wpdb->postmeta . ' ' . self::DB_ALIAS_OUT_OF_STOCK . ' ON ' . $wpdb->posts . '.id = ' . self::DB_ALIAS_OUT_OF_STOCK . '.post_id' . ' AND ' . self::DB_ALIAS_OUT_OF_STOCK . '.meta_key="in_stock"' . ' AND ' . self::DB_ALIAS_OUT_OF_STOCK . '.meta_value=1'; return $join; } public function ajax_get_post_link() { if ( ! isset( $_REQUEST['product_id'] ) ) { return; } $product_id = intval( @$_REQUEST['product_id'] ); $link = $this->get_product_link( $product_id ); if ( $link ) { echo json_encode( $link ); } exit(); } public function get_product_link( $product_id ) { $post_id = $this->_find_post_by_product_id( $product_id ); if ( $post_id ) { return $this->_get_post_link( $post_id ); } return ''; } protected function _get_post_link( $post_id ) { $store_page_url = Ecwid_Store_Page::get_store_url(); if ( ! $store_page_url ) { return ''; } $ecwid_product_id = get_post_meta( $post_id, 'ecwid_id', true ); $url = Ecwid_Store_Page::get_product_url_from_api( $ecwid_product_id ); if ( $url ) { return $url; } return Ecwid_Store_Page::get_product_url_default_fallback( $ecwid_product_id ); } public function reset_dates() { $this->_status->reset_dates(); } public function set_sync_progress_callback( $callback ) { $this->_sync_progress_callback = $callback; } public function content( $content ) { if ( get_post_type() == self::POST_TYPE_PRODUCT ) { add_filter( 'ecwid_is_defer_store_init_enabled', '__return_false', 10000 ); $ecwid_id = get_post_meta( get_the_ID(), 'ecwid_id' ); $ecwid_id = $ecwid_id[0]; if ( is_singular() ) { ob_start(); require ECWID_PLUGIN_DIR . '/templates/product.php'; $contents = ob_get_contents(); ob_end_clean(); return $contents; } } return $content; } public function thumbnail( $html ) { if ( get_post_type() == self::POST_TYPE_PRODUCT && is_singular() ) { return ''; } return $html; } public static function is_enabled() { return self::is_feature_available() && get_option( self::OPTION_ENABLED, false ); } public static function enable() { flush_rewrite_rules( true ); update_option( self::OPTION_ENABLED, 1 ); } public static function disable() { flush_rewrite_rules( true ); update_option( self::OPTION_ENABLED, false ); } public static function is_feature_available() { return Ecwid_Api_V3::get_token() != false; } public static function reset_sync_date() { Ecwid_Products_Sync_Status::reset_dates(); } public function register_post_type() { register_post_type( self::POST_TYPE_PRODUCT, array( 'public' => true, 'capability_type' => 'product', 'map_meta_cap' => true, 'publicly_queryable' => true, 'exclude_from_search' => false, 'hierarchical' => false, 'show_in_nav_menus' => true, 'show_ui' => false, 'labels' => array( 'name' => __( 'Products', 'ecwid-shopping-cart' ), ), ) ); } protected function _find_post_by_product_id( $product_id ) { global $wpdb; $row = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->postmeta WHERE meta_key = %s AND meta_value = %s LIMIT 1", 'ecwid_id', $product_id ) ); $id = null; if ( ! empty( $row ) ) { $id = $row->post_id; } return $id; } public function is_in_sync() { $stats = $this->_api->get_store_update_stats(); $update_time = strtotime( $stats->productsUpdated ); // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase $last_update = EcwidPlatform::get( Ecwid_Products_Sync_Status::OPTION_UPDATE_TIME ); return $last_update > $update_time; } public function set_last_update_time( $time ) { EcwidPlatform::set( Ecwid_Products_Sync_Status::OPTION_UPDATE_TIME, $time ); } public function get_last_sync_time() { return $this->_status->get_last_sync_time(); } public function estimate_sync() { if ( ! Ecwid_Api_V3::get_token() ) { return array( 'last_update' => 0 ); } $updated = $this->_api->search_products( array( 'updatedFrom' => $this->_status->get_last_sync_time(), 'limit' => 1, 'offset' => 0, 'sortBy' => 'UPDATED_TIME_ASC', ) ); $deleted = $this->_api->get_deleted_products( array( 'from_date' => $this->_status->get_deleted_from(), 'limit' => 1, 'offset' => 0, ) ); $result = array( 'total_deleted' => $deleted->total, 'total_updated' => $updated->total, ); $result['last_update_string'] = Ecwid_Api_V3::format_time( $this->_status->get_last_sync_time() ); $result['last_update'] = $this->_status->get_last_sync_time(); if ( $updated->total > 0 ) { $result['updated_from'] = $updated->items[0]->updated; $result['last_updated'] = Ecwid_Api_V3::format_time( $this->_status->last_deleted_product_time ); } if ( $deleted->total > 0 ) { $result['deleted_from'] = $deleted->items[0]->date; $result['last_deleted'] = Ecwid_Api_V3::format_time( $this->_status->last_deleted_product_time ); } $api = new Ecwid_Api_V3(); $profile = $api->get_store_profile(); if ( $profile && $profile->settings ) { EcwidPlatform::set( 'hide_out_of_stock', $profile->settings->hideOutOfStockProductsInStorefront ); } return $result; } public function sync( $settings = null ) { $did_something = false; if ( ! $settings || $settings['mode'] == 'deleted' ) { $did_something = $this->_process_deleted_products( $settings ); } if ( ! $settings || $settings['one_at_a_time'] && ! $did_something ) { $did_something = $this->_process_products( $settings ); } if ( ! $settings || $settings['one_at_a_time'] && ! $did_something ) { $this->_status->update_last_sync_time( time() ); return true; } return false; } public function delete_all_products() { global $wpdb; $result = $wpdb->get_col( $wpdb->prepare( "SELECT post_id FROM $wpdb->postmeta WHERE meta_key = %s", 'ecwid_id' ) ); foreach ( $result as $post_id ) { wp_delete_post( $post_id ); } } public function disable_all_products() { global $wpdb; $result = $wpdb->get_col( $wpdb->prepare( "SELECT post_id FROM $wpdb->postmeta WHERE meta_key = %s", 'ecwid_id' ) ); foreach ( $result as $post_id ) { wp_update_post( array( 'ID' => $post_id, 'post_status' => 'draft', ) ); } } public function enable_all_products() { global $wpdb; $result = $wpdb->get_col( $wpdb->prepare( "SELECT post_id FROM $wpdb->postmeta WHERE meta_key = %s", 'ecwid_id' ) ); foreach ( $result as $post_id ) { wp_update_post( array( 'ID' => $post_id, 'post_status' => 'publish', ) ); } } protected function _process_products( $settings ) { $over = false; $offset = 0; $limit = $this->sync_limit; if ( $settings && @$settings['offset'] ) { $offset = $settings['offset']; } if ( $settings && isset( $settings['from'] ) ) { $updated_from = $settings['from']; } else { $updated_from = $this->_status->get_updated_from(); } while ( ! $over ) { $this->_status_event( array( 'event' => 'fetching_products', 'offset' => $offset, 'limit' => $limit, ) ); $params = array( 'updatedFrom' => $updated_from, 'limit' => $limit, 'offset' => $offset, 'sortBy' => 'UPDATED_TIME_ASC', ); $products = $this->_api->search_products( $params ); $this->_status_event( array_merge( $params, array( 'event' => 'found_updated', 'total' => $products->total, 'count' => $products->count, ) ) ); if ( $products->total == 0 || $products->count == 0 ) { $over = true; return false; } foreach ( $products->items as $product ) { $this->_process_product( $product ); } if ( $products->total < $offset + $limit || @$settings['one_at_a_time'] ) { break; } $offset += $limit; }//end while return true; } protected function _process_product( $product ) { $id = $this->_find_post_by_product_id( $product->id ); if ( ! $product->enabled ) { if ( ! is_null( $id ) ) { wp_delete_post( $id ); } $this->_status_event( array( 'event' => 'deleted_disabled_product', 'product' => $product, ) ); return null; } return $this->_sync_product( $product, $id ); } protected function _sync_product( $product, $existing_post_id = null ) { // phpcs:disable WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase $meta = array( '_price' => $product->defaultDisplayedPrice, '_regular_price' => $product->defaultDisplayedPrice, 'image' => @$product->imageUrl, 'ecwid_id' => $product->id, '_sku' => $product->sku, '_visibility' => 'visible', '_ecwid_url' => substr( $product->url, strpos( $product->url, '#!' ) ), 'in_stock' => $product->inStock ? '1' : '0', '_updatedTimestamp' => $product->updateTimestamp, ); // phpcs:enable WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase if ( Ecwid_Seo_Links::is_enabled() ) { $meta['_ecwid_seo_url'] = $product->url; } $post_id = wp_insert_post( array( 'ID' => $existing_post_id, 'post_title' => $product->name, 'post_content' => $product->description, 'post_type' => self::POST_TYPE_PRODUCT, 'post_status' => 'publish', ) ); foreach ( $meta as $key => $value ) { add_post_meta( $post_id, $key, $value, true ); } if ( ! get_option( self::OPTION_NO_IMAGES ) ) { $image_id = get_post_meta( $post_id, '_thumbnail_id' ); if ( ! $image_id ) { $this->_upload_product_thumbnail( $product, $post_id ); } } $this->_status->update_last_updated( $product->updateTimestamp ); // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase $this->_status_event( array( 'event' => $existing_post_id ? 'updated_product' : 'created_product', 'product' => $product, ) ); return $post_id; } protected function _process_deleted_products( $settings = array() ) { $over = false; $offset = 0; $limit = 100; if ( $settings && @$settings['offset'] ) { $offset = $settings['offset']; } if ( $settings && isset( $settings['from'] ) ) { $deleted_from = $settings['from']; } else { $deleted_from = $this->_status->get_deleted_from(); } while ( ! $over ) { $this->_status_event( array( 'event' => 'fetching_deleted_product_ids', 'offset' => $offset, 'limit' => $limit, ) ); $params = array( 'from_date' => $deleted_from, 'limit' => $limit, 'offset' => $offset, ); $products = $this->_api->get_deleted_products( $params ); $this->_status_event( array_merge( $params, array( 'event' => 'found_deleted', 'total' => $products->total, 'count' => $products->count, ) ) ); if ( $products->total == 0 ) { $over = true; return false; } foreach ( $products->items as $product ) { $post_id = $this->_find_post_by_product_id( $product->id ); if ( $post_id ) { wp_delete_post( $post_id ); $this->_status_event( array( 'event' => 'deleted_product', 'product' => $product, ) ); } else { $this->_status_event( array( 'event' => 'skipped_deleted', 'product' => $product, ) ); } $this->_status->update_last_deleted( $product->date ); }//end foreach if ( $products->total < $offset + $limit || @$settings['one_at_a_time'] ) { return true; } $offset += $limit; }//end while } protected function _status_event( $event ) { if ( $this->_sync_progress_callback ) { call_user_func( $this->_sync_progress_callback, $event ); } } protected function _upload_product_thumbnail( $product, $post_id ) { if ( ! @$product->imageUrl ) { // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase return; } $file = download_url( $product->imageUrl ); // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase if ( is_wp_error( $file ) ) { return; } $uploaded = wp_upload_bits( basename( $product->imageUrl ), null, file_get_contents( $file ) ); // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase unlink( $file ); $filetype = wp_check_filetype( $uploaded['file'], null ); $file = $uploaded['file']; $wp_upload_dir = wp_upload_dir(); $attachment = array( 'guid' => $wp_upload_dir['url'] . '/' . basename( $file ), 'post_mime_type' => $filetype['type'], 'post_title' => preg_replace( '/\.[^.]+$/', '', basename( $file ) ), 'post_content' => '', 'post_status' => 'inherit', ); $attachment_id = wp_insert_attachment( $attachment, $file, $post_id ); $attach_data = wp_generate_attachment_metadata( $attachment_id, $file ); wp_update_attachment_metadata( $attachment_id, $attach_data ); set_post_thumbnail( $post_id, $attachment_id ); } } class Ecwid_Products_Sync_Status { const OPTION_UPDATE_TIME = 'update_time'; const OPTION_LAST_PRODUCT_UPDATE_TIME = 'last_product_update_time'; const OPTION_LAST_PRODUCT_DELETE_TIME = 'last_product_delete_time'; const OPTION_LAST_UPDATED_POST_ID = 'last_updated_post_id'; public $last_sync_time; public $last_updated_product_time; public $last_deleted_product_time; public $current_operation; public $error; protected $_last_updated_post_id; public function load() { $this->last_sync_time = EcwidPlatform::get( self::OPTION_UPDATE_TIME, 0 ); $this->last_updated_product_time = EcwidPlatform::get( self::OPTION_LAST_PRODUCT_UPDATE_TIME, 0 ); $this->last_deleted_product_time = EcwidPlatform::get( self::OPTION_LAST_PRODUCT_DELETE_TIME, 0 ); } public function get_last_sync_time() { return $this->last_sync_time; } public function update_last_sync_time( $date ) { $this->_set_date_option( self::OPTION_UPDATE_TIME, $date ); $this->last_sync_time = $date; $this->update_last_deleted( $date ); $this->update_last_updated( $date ); } public function update_last_deleted( $date ) { $this->_set_date_option( self::OPTION_LAST_PRODUCT_DELETE_TIME, $date ); } public function set_last_updated_post_id( $id ) { EcwidPlatform::set( self::OPTION_LAST_UPDATED_POST_ID, $id ); } public function update_last_updated( $date ) { $this->_set_date_option( self::OPTION_LAST_PRODUCT_UPDATE_TIME, $date ); } public function get_updated_from() { if ( ! $this->last_updated_product_time ) { return $this->get_last_sync_time(); } return $this->last_updated_product_time; } public function get_deleted_from() { if ( ! $this->last_deleted_product_time ) { return $this->get_last_sync_time(); } return $this->last_deleted_product_time; } public function _set_date_option( $option, $date ) { if ( ! is_int( $date ) ) { $date = strtotime( $date ); } EcwidPlatform::set( $option, $date ); } public static function reset_dates() { foreach ( array( self::OPTION_LAST_PRODUCT_DELETE_TIME, self::OPTION_LAST_PRODUCT_UPDATE_TIME, self::OPTION_UPDATE_TIME, ) as $option ) { EcwidPlatform::set( $option, 0 ); } } } $ecwid_products = new Ecwid_Products(); ecwid-shopping-cart/includes/class-ecwid-seo-links.php000064400000031274151222736030017042 0ustar00are_base_urls_ok() ) { flush_rewrite_rules(); } } } public function check_base_urls_on_edit_store_page() { $current_screen = get_current_screen(); if ( $current_screen->base != 'post' || ! in_array( $current_screen->post_type, array( 'post', 'page' ) ) ) { return; } $id = ( isset( $_GET['post'] ) ) ? intval( $_GET['post'] ) : false; if ( ! $id ) { return; } if ( Ecwid_Store_Page::is_store_page( $id ) ) { if ( ! $this->are_base_urls_ok() ) { flush_rewrite_rules(); } } } public function check_base_urls_on_view_store_page_as_admin() { $id = get_the_ID(); if ( Ecwid_Store_Page::is_store_page( $id ) ) { if ( ! $this->are_base_urls_ok() ) { flush_rewrite_rules(); } } } public function on_fresh_install() { add_option( self::OPTION_ENABLED, 'Y' ); } public function on_plugin_update() { add_option( self::OPTION_ENABLED, '' ); } public function redirect_canonical( $redir, $req ) { if ( self::is_store_on_home_page() && get_queried_object_id() == get_option( 'page_on_front' ) ) { return false; } return $redir; } public function redirect_escaped_fragment() { if ( ecwid_should_display_escaped_fragment_catalog() ) { $params = ecwid_parse_escaped_fragment(); if ( ! isset( $params['mode'] ) ) { return; } if ( $params['mode'] == 'product' ) { $redirect = Ecwid_Store_Page::get_product_url( $params['id'] ); } elseif ( $params['mode'] == 'category' ) { $redirect = Ecwid_Store_Page::get_category_url( $params['id'] ); } if ( isset( $redirect ) ) { wp_safe_redirect( $redirect, 301 ); exit; } } } public function get_shortlink( $shortlink ) { if ( self::is_product_browser_url() ) { return ''; } return $shortlink; } public function is_post_slug_bad( $value, $slug, $type = '', $parent = '' ) { if ( ! self::is_store_on_home_page() ) { return $value; } if ( $this->slug_matches_seo_pattern( $slug ) ) { return true; } return $value; } public function slug_matches_seo_pattern( $slug ) { static $pattern = ''; if ( ! $pattern ) { $patterns = self::get_seo_links_patterns(); $pattern = '!(^' . implode( '$|^', $patterns ) . '$)!'; } return preg_match( $pattern, $slug ); } public static function get_seo_links_patterns() { return array( '.*-p([0-9]+)(\/.*|\?.*)?', '.*-c([0-9]+)(\/.*|\?.*)?', 'cart', 'checkout.*', 'account', 'account\/settings', 'account\/orders', 'account\/address-book', 'account\/favorites', 'account\/registration', 'account\/resetPassword', 'search', 'search\?.*', 'signin', 'pages\/about', 'pages\/shipping-payment', 'pages\/returns', 'pages\/terms', 'pages\/privacy-policy', 'signIn.*', 'resetPassword.*', 'checkoutAB.*', 'downloadError.*', 'orderFailure.*', 'checkoutCC.*', 'checkoutEC.*', 'checkoutAC.*', 'FBAutofillCheckout.*', ); } public static function is_store_on_home_page() { $front_page = get_option( 'page_on_front' ); if ( ! $front_page ) { return false; } if ( Ecwid_Store_Page::is_store_page( $front_page ) ) { return true; } return false; } public function add_js_config( $config ) { $page_id = get_queried_object_id(); $has_store = Ecwid_Store_Page::is_store_page( $page_id ); if ( ! $has_store ) { if ( ! Ecwid_Ajax_Defer_Renderer::is_enabled() ) { return $config; } } if ( Ecwid_Api_V3::is_available() && self::is_404_seo_link() ) { return $config; } if ( Ecwid_Ajax_Defer_Renderer::is_enabled() ) { $url = esc_js( Ecwid_Store_Page::get_store_url() ); } else { $url = esc_js( get_permalink( $page_id ) ); } if ( parse_url( $url, PHP_URL_SCHEME ) == 'https' && parse_url( $url, PHP_URL_PORT ) == '443' ) { $url = str_replace( ':443', '', $url ); } $result = self::get_js_config_storefront_urls(); $result .= " window.ec.config.baseUrl = '$url'; window.ec.storefront = window.ec.storefront || {}; window.ec.storefront.sharing_button_link = 'DIRECT_PAGE_URL';"; $config .= $result; return $config; } public static function get_js_config_storefront_urls() { return ' window.ec.config.storefrontUrls = window.ec.config.storefrontUrls || {}; window.ec.config.storefrontUrls.cleanUrls = true;'; } public static function is_404_seo_link() { if ( ! self::is_product_browser_url() ) { return false; } $params = self::maybe_extract_html_catalog_params(); if ( ! $params ) { return false; } // Root is always ok $is_root_cat = $params['mode'] == 'category' && $params['id'] == 0; if ( $is_root_cat ) { return false; } $result = false; if ( $params['mode'] == 'product' ) { $result = Ecwid_Product::get_by_id( $params['id'] ); } elseif ( ! $is_root_cat && $params['mode'] == 'category' ) { $result = Ecwid_Category::get_by_id( $params['id'] ); } // Can't parse params, assume its ok if ( ! $result ) { return false; } // product/category not found, 404 if ( is_object( $result ) && ( ! isset( $result->id ) || ! $result->enabled ) ) { return true; } return false; } public static function maybe_extract_html_catalog_params() { $current_url = add_query_arg( null, null ); $matches = array(); if ( ! preg_match( self::_get_pb_preg_pattern(), $current_url, $matches ) ) { return array(); } $modes = array( 'p' => 'product', 'c' => 'category', ); return array( 'mode' => $modes[ $matches[1] ], 'id' => $matches[2], ); } public static function is_product_browser_url( $url = '' ) { if ( ! $url ) { $url = add_query_arg( null, null ); } return preg_match( self::_get_pb_preg_pattern(), $url ); } public static function is_seo_link() { if ( ! Ecwid_Store_Page::is_store_page() ) { return false; } $url = add_query_arg( null, null ); $link = urldecode( self::_get_relative_permalink( get_the_ID() ) ); $site_url = parse_url( get_bloginfo( 'url' ) ); $site_path = ( isset( $site_url['path'] ) ) ? $site_url['path'] : ''; foreach ( self::get_seo_links_patterns() as $pattern ) { $pattern = '#' . $site_path . preg_quote( $link ) . $pattern . '#'; if ( preg_match( $pattern, $url ) ) { return true; } } return false; } protected static function _get_pb_preg_pattern() { return '!.*-(p|c)([0-9]+)(\/.*|\?.*)?$!'; } public function build_rewrite_rules() { if ( ! self::is_enabled() ) { return; } $all_base_urls = $this->_build_all_base_urls(); foreach ( $all_base_urls as $page_id => $links ) { $patterns = self::get_seo_links_patterns(); $post = get_post( $page_id ); if ( ! $post ) { continue; } if ( ! in_array( $post->post_type, array( 'page', 'post' ) ) ) { continue; } $param_name = $post->post_type == 'page' ? 'page_id' : 'p'; foreach ( $links as $link ) { $link = trim( $link, '/' ); $link = apply_filters( 'ecwid_rewrite_rules_relative_link', $link, $page_id ); $link_page_id = apply_filters( 'ecwid_rewrite_rules_page_id', $page_id, $link ); if ( strpos( $link, 'index.php' ) !== 0 ) { $link = '^' . preg_quote( $link ); } foreach ( $patterns as $pattern ) { add_rewrite_rule( $link . '/' . $pattern . '.*', 'index.php?' . $param_name . '=' . $link_page_id, 'top' ); } } }//end foreach if ( self::is_store_on_home_page() ) { $patterns = self::get_seo_links_patterns(); foreach ( $patterns as $pattern ) { add_rewrite_rule( '^' . $pattern . '$', 'index.php?page_id=' . get_option( 'page_on_front' ), 'top' ); } } update_option( self::OPTION_ALL_BASE_URLS, array_merge( $all_base_urls, array( 'home' => self::is_store_on_home_page() ) ) ); } public function are_base_urls_ok() { if ( ! self::is_feature_available() ) { return true; } $all_base_urls = $this->_build_all_base_urls(); $flattened = array(); foreach ( $all_base_urls as $page_id => $links ) { foreach ( $links as $link ) { $flattened[ $link ] = $link; } } $saved = get_option( self::OPTION_ALL_BASE_URLS ); if ( empty( $saved ) || ! is_array( $saved ) ) { return false; } $saved_home = false; if ( isset( $saved['home'] ) ) { $saved_home = $saved['home']; unset( $saved['home'] ); } $flattened_saved = array(); foreach ( $saved as $page_id => $links ) { foreach ( $links as $link ) { $flattened_saved[ $link ] = $link; } } $rules = get_option( 'rewrite_rules' ); if ( empty( $rules ) ) { return false; } foreach ( $flattened as $link ) { $link = trim( $link, '/' ); $patterns = self::get_seo_links_patterns(); $pattern = $patterns[0]; $rules_pattern = '^' . $link . '/' . $pattern . '.*'; if ( ! array_key_exists( $rules_pattern, $rules ) ) { return false; } } $are_the_same = array_diff( $flattened, $flattened_saved ); return empty( $are_the_same ) && $saved_home == self::is_store_on_home_page(); } protected function _build_all_base_urls() { $base_urls = array(); $pages = Ecwid_Store_Page::get_store_pages_array(); if ( is_array( $pages ) ) { foreach ( $pages as $page_id ) { if ( ! isset( $base_urls[ $page_id ] ) ) { $base_urls[ $page_id ] = array(); } $link = urldecode( self::_get_relative_permalink( $page_id, true ) ); $base_urls[ $page_id ][] = $link; } } return $base_urls; } protected static function _get_relative_permalink( $item_id, $not_filter_return_value = false ) { $permalink = parse_url( get_permalink( $item_id ) ); $home_url = parse_url( home_url() ); if ( ! isset( $permalink['path'] ) ) { $permalink['path'] = '/'; } if ( ! isset( $home_url['path'] ) ) { $home_url['path'] = ''; } if ( isset( $home_url['query'] ) ) { $home_url['path'] = substr( $home_url['path'], 0, -1 ); } $default_link = substr( $permalink['path'], strlen( $home_url['path'] ) ); if ( $not_filter_return_value ) { return $default_link; } return apply_filters( 'ecwid_relative_permalink', $default_link, $item_id ); } public static function is_noindex_page() { if ( ! Ecwid_Store_Page::is_store_page() ) { return false; } $relative_permalink = self::_get_relative_permalink( get_the_ID() ); $noindex_pages = array( 'cart', 'account', 'checkout', 'signin', 'search', ); $home_url = home_url(); $path = parse_url( $home_url, PHP_URL_PATH ); $request_uri = isset( $_SERVER['REQUEST_URI'] ) ? sanitize_text_field( wp_unslash( $_SERVER['REQUEST_URI'] ) ) : ''; $seo_part = str_replace( $path . $relative_permalink, '', $request_uri ); foreach ( $noindex_pages as $page ) { if ( preg_match( '!' . $page . '([\?\/]+.*|)$' . '!', $seo_part ) ) { return true; } } return false; } public static function is_enabled() { return self::is_feature_available() && get_option( self::OPTION_ENABLED ); } public static function enable() { update_option( self::OPTION_ENABLED, true ); Ecwid_Store_Page::schedule_flush_rewrites(); ecwid_invalidate_cache( true ); } public static function disable() { update_option( self::OPTION_ENABLED, false ); Ecwid_Store_Page::schedule_flush_rewrites(); ecwid_invalidate_cache( true ); } public static function is_feature_available() { $permalink = get_option( 'permalink_structure' ); return $permalink != ''; } } $ecwid_seo_links = new Ecwid_Seo_Links(); ecwid-shopping-cart/includes/class-ecwid-sitemap-builder.php000064400000005525151222736030020224 0ustar00callback = $callback; $this->base_url = $base_url; $this->unlimited = apply_filters( 'ecwid_sitemap_builder_set_unlimited', $unlimited ); } public function generate( $page_num ) { $api = new Ecwid_Api_V3(); $stats = $api->get_store_update_stats(); $offset = 0; $limit = self::API_LIMIT; if ( $page_num === 1 ) { do { $categories = $api->get_categories( array( 'offset' => $offset, 'limit' => $limit, ) ); if ( empty( $categories ) ) { break; } if ( $categories->items ) { foreach ( $categories->items as $item ) { $url = $item->url; $item->updated = gmdate( 'c', strtotime( $stats->categoriesUpdated ) ); //phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase call_user_func( $this->callback, $url, self::PRIORITY_CATEGORY, 'weekly', $item ); } } $offset += $limit; } while ( $categories->count > 0 ); }//end if if ( $this->unlimited ) { $sitemap_items_limit = self::get_products_total(); } else { $sitemap_items_limit = self::SITEMAP_ITEMS_LIMIT; } $count = 0; $limit = self::API_LIMIT; $offset = 1 === $page_num ? 0 : $sitemap_items_limit * ( $page_num - 1 ); if ( $limit > $sitemap_items_limit ) { $limit = $sitemap_items_limit; } do { $products = $api->search_products( array( 'offset' => $offset, 'limit' => $limit, ) ); if ( empty( $products ) ) { break; } if ( $products->items ) { foreach ( $products->items as $item ) { if ( $item->enabled ) { $url = $item->url; if ( ! empty( $item->updated ) ) { $item->updated = gmdate( 'c', strtotime( $item->updated ) ); } call_user_func( $this->callback, $url, self::PRIORITY_PRODUCT, 'weekly', $item ); } ++$count; } }//end if if ( $products->count !== $limit ) { break; } $offset += $limit; } while ( $count < $sitemap_items_limit ); return true; } public static function get_products_total() { $api = new Ecwid_Api_V3(); $products = $api->search_products( array( 'baseUrl' => '' ) ); $total = 0; if ( ! empty( $products ) ) { $total += $products->total; } return $total; } public static function get_num_pages() { $unlimited = apply_filters( 'ecwid_sitemap_builder_set_unlimited', false ); if ( $unlimited ) { return 1; } return ceil( self::get_products_total() / self::SITEMAP_ITEMS_LIMIT ); } } ecwid-shopping-cart/includes/class-ecwid-static-page.php000064400000025654151222736030017344 0ustar00 $item ) { wp_enqueue_style( 'ecwid-' . self::HANDLE_STATIC_PAGE . '-' . $index, $item, array(), null ); //phpcs:ignore WordPress.WP.EnqueuedResourceParameters.MissingVersion } } } public static function get_data_for_current_page() { if ( current_user_can( Ecwid_Admin::get_capability() ) ) { add_action( 'wp_enqueue_scripts', 'ecwid_enqueue_cache_control', 100 ); } $data = self::maybe_fetch_data(); return $data; } protected static function get_endpoint_url( $params = false ) { if ( ! $params ) { if ( ecwid_is_applicable_escaped_fragment() ) { $params = ecwid_parse_escaped_fragment(); } else { $params = Ecwid_Seo_Links::maybe_extract_html_catalog_params(); } } if ( ! isset( $params['mode'] ) ) { $params['mode'] = 'home'; } $url = self::API_URL; $url .= sprintf( '%s-page/', $params['mode'] ); $url .= sprintf( '%s/', get_ecwid_store_id() ); if ( isset( $params['id'] ) ) { $url .= sprintf( '%s/', $params['id'] ); } $url .= 'static-code?'; return $url; } protected static function maybe_fetch_data() { $version = get_bloginfo( 'version' ); $pb_attribures = array(); if ( strpos( $version, '5.0' ) === 0 || version_compare( $version, '5.0' ) > 0 ) { $pb_attribures = Ecwid_Product_Browser::get_attributes(); } $store_page_params = Ecwid_Store_Page::get_store_page_params(); $endpoint_params = false; // for cases of early access to the page if the cache is empty and need to get store block params if ( empty( $store_page_params ) ) { if ( strpos( $version, '5.0' ) === 0 || version_compare( $version, '5.0' ) > 0 ) { do_blocks( get_the_content() ); $store_page_params = Ecwid_Store_Page::get_store_page_params(); } } $params = array(); if ( Ecwid_Seo_Links::is_enabled() || ecwid_is_demo_store() ) { $params['clean_urls'] = 'true'; } else { $params['clean_urls'] = 'false'; } $params['base_url'] = get_permalink(); if ( array_key_exists( 'offset', $_GET ) ) { //phpcs:ignore WordPress.Security.NonceVerification.Recommended $params['offset'] = intval( $_GET['offset'] ); //phpcs:ignore WordPress.Security.NonceVerification.Recommended } if ( ! array_key_exists( 'category', $_GET ) && isset( $store_page_params['default_category_id'] ) && intval( $store_page_params['default_category_id'] ) > 0 ) { //phpcs:ignore WordPress.Security.NonceVerification.Recommended $params['default_category_id'] = $store_page_params['default_category_id']; } $params['lang'] = self::get_accept_language(); $storefront_view_params = array( 'show_root_categories', 'enable_catalog_on_one_page' ); foreach ( $storefront_view_params as $param ) { if ( isset( $store_page_params[ $param ] ) ) { $pb_attribures[ $param ] = array( 'name' => $param, 'is_storefront_api' => true, 'type' => true, ); } } unset( $pb_attribures['storefront_view'] ); foreach ( $pb_attribures as $attribute ) { $name = $attribute['name']; if ( ! empty( $attribute['is_storefront_api'] ) && isset( $store_page_params[ $name ] ) ) { if ( ! empty( $attribute['type'] ) && $attribute['type'] === 'boolean' ) { $value = $store_page_params[ $name ] ? 'true' : 'false'; } else { $value = $store_page_params[ $name ]; } if ( strpos( $name, 'chameleon' ) !== false ) { $name = str_replace( 'chameleon_', '', $name ); $params[ 'tplvar_ec.chameleon.' . $name ] = $value; } else { $params[ 'tplvar_ec.storefront.' . $name ] = $value; } } }//end foreach $hreflang_items = apply_filters( 'ecwid_hreflangs', null ); if ( ! empty( $hreflang_items ) ) { foreach ( $hreflang_items as $lang => $link ) { $params[ 'international_pages[' . $lang . ']' ] = $link; } } $url = self::get_endpoint_url( $endpoint_params ); foreach ( $params as $name => $value ) { $url .= $name . '=' . rawurlencode( $value ) . '&'; } $url = substr( $url, 0, -1 ); $dynamic_css = ''; if ( ! empty( $_COOKIE['ec_store_dynamic_css'] ) ) { $dynamic_css = wp_strip_all_tags( $_COOKIE['ec_store_dynamic_css'] ); //phpcs:ignore WordPress.Security.ValidatedSanitizedInput.MissingUnslash } $cached_data = EcwidPlatform::get_from_static_pages_cache( $url ); if ( $cached_data ) { $is_css_defined = ! empty( $dynamic_css ); $is_css_already_set = ! empty( $cached_data->isSetDynamicCss ); //phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase $is_home_page = Ecwid_Store_Page::is_store_home_page(); if ( $is_home_page && $is_css_defined && ! $is_css_already_set ) { $cached_data->cssFiles = array( $dynamic_css ); //phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase $cached_data->isSetDynamicCss = true; //phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase EcwidPlatform::store_in_static_pages_cache( $url, $cached_data ); } return $cached_data; } $fetched_data = self::get_static_snapshot( $url, $dynamic_css ); return $fetched_data; } protected static function get_static_snapshot( $url, $dynamic_css = '' ) { $fetched_data = EcwidPlatform::fetch_url( $url, array( 'timeout' => 3, 'headers' => array( 'ACCEPT-LANGUAGE' => self::get_accept_language(), ), ) ); if ( $fetched_data && isset( $fetched_data['data'] ) ) { $fetched_data = json_decode( $fetched_data['data'] ); if ( empty( $fetched_data ) || ! is_object( $fetched_data ) ) { return null; } //phpcs:disable WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase if ( ! empty( $dynamic_css ) ) { $fetched_data->cssFiles = array( $dynamic_css ); $fetched_data->isSetDynamicCss = true; } if ( ! empty( $fetched_data->htmlCode ) ) { $pattern = '//is'; $fetched_data->htmlCode = preg_replace( $pattern, '', $fetched_data->htmlCode ); } if ( isset( $fetched_data->lastUpdated ) ) { $last_update = substr( $fetched_data->lastUpdated, 0, -3 ); } else { $last_update = time(); } //phpcs:enable WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase EcwidPlatform::invalidate_static_pages_cache_from( $last_update ); EcwidPlatform::store_in_static_pages_cache( $url, $fetched_data ); return $fetched_data; }//end if return null; } public static function get_accept_language() { $http_accept_language = isset( $_SERVER['HTTP_ACCEPT_LANGUAGE'] ) ? : ''; //phpcs:ignore Universal.Operators.DisallowShortTernary.Found return apply_filters( 'ecwid_lang', $http_accept_language ); } public static function get_data_field( $field ) { $data = self::get_data_for_current_page(); if ( isset( $data->$field ) ) { $data->$field = apply_filters( 'ecwid_static_page_field_' . strtolower( $field ), $data->$field ); return $data->$field; } return false; } public static function get_css_files() { return self::get_data_field( 'cssFiles' ); } public static function get_html_code() { return self::get_data_field( 'htmlCode' ); } public static function get_js_code() { return self::get_data_field( 'jsCode' ); } public static function get_title() { return self::get_data_field( 'title' ); } public static function get_meta_description_html() { $description = self::get_data_field( 'metaDescriptionHtml' ); if ( $description ) { $description = preg_replace( '/.*?<\/title>/i', '', $description ); } return $description; } public static function get_canonical_url() { return self::get_data_field( 'canonicalUrl' ); } public static function get_og_tags_html() { $og_tags_html = self::get_data_field( 'ogTagsHtml' ); $ec_title = self::get_title(); $wp_title = wp_get_document_title(); if ( $og_tags_html && $wp_title && $ec_title ) { $og_tags_html = str_replace( "content=\"$ec_title\"", "content=\"$wp_title\"", $og_tags_html ); } return $og_tags_html; } public static function get_json_ld_html() { return self::get_data_field( 'jsonLDHtml' ); } public static function get_href_lang_html() { return self::get_data_field( 'hrefLangHtml' ); } public static function get_last_update() { return self::get_data_field( 'lastUpdated' ); } public static function is_data_available() { if ( self::get_last_update() ) { return true; } return false; } public static function is_enabled() { return self::is_enabled_static_home_page(); } public static function is_enabled_static_home_page() { $api = new Ecwid_Api_V3(); $profile = $api->get_store_profile(); if ( isset( $profile->settings->closed ) && $profile->settings->closed ) { return false; } if ( is_preview() ) { return false; } $is_home_page = Ecwid_Store_Page::is_store_home_page(); if ( ! $is_home_page ) { return false; } if ( Ecwid_Seo_Links::is_noindex_page() ) { return false; } $store_page_params = Ecwid_Store_Page::get_store_page_params(); if ( isset( $store_page_params['default_product_id'] ) && $store_page_params['default_product_id'] > 0 ) { return false; } if ( isset( $store_page_params['enable_catalog_on_one_page'] ) && $store_page_params['enable_catalog_on_one_page'] ) { return false; } if ( array_key_exists( 'ec-enable-static-page', $_GET ) ) { //phpcs:ignore WordPress.Security.NonceVerification.Recommended return true; } if ( ! Ecwid_Seo_Links::is_enabled() ) { return false; } if ( ! EcwidPlatform::is_static_pages_cache_trusted() ) { return false; } if ( Ecwid_Ajax_Defer_Renderer::is_ajax_request() ) { return false; } if ( get_option( self::OPTION_IS_ENABLED ) === self::OPTION_VALUE_ENABLED ) { return true; } if ( ecwid_is_demo_store() ) { return true; } if ( get_option( self::OPTION_IS_ENABLED ) === self::OPTION_VALUE_DISABLED ) { return false; } if ( get_option( self::OPTION_IS_ENABLED ) === '' ) { return true; } return false; } } $__ecwid_static_page = new Ecwid_Static_Page(); ������������������������������������������������������������������������������������ecwid-shopping-cart/includes/class-ecwid-store-editor.php�������������������������������������������0000644�����������������00000006172�15122273603�0017555 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?php class Ecwid_Store_Editor { public function __construct() { $version = get_bloginfo( 'version' ); if ( version_compare( $version, '3.5' ) < 0 ) { return; } add_action( 'template_redirect', array( $this, 'get_store_svg' ) ); add_action( 'current_screen', array( $this, 'init' ) ); } public function init() { $current_screen = get_current_screen(); if ( $current_screen->base != 'post' || ! in_array( $current_screen->post_type, array( 'post', 'page' ) ) ) { return; } if ( is_plugin_active( 'elementor/elementor.php' ) && isset( $_GET['action'] ) && $_GET['action'] == 'elementor' ) { return; } if ( is_plugin_active( 'gutenberg/gutenberg.php' ) && ! isset( $_GET['classic-editor'] ) ) { return; } add_filter( 'mce_external_plugins', array( $this, 'add_mce_plugin' ) ); add_action( 'media_buttons', array( $this, 'add_editor_button' ) ); add_action( 'admin_enqueue_scripts', array( $this, 'add_scripts' ) ); add_action( 'in_admin_header', array( $this, 'add_popup' ) ); } public function add_mce_plugin( $plugins ) { $plugins_array = array( 'ecwid' => ECWID_PLUGIN_URL . 'js/store-editor-mce.js', 'ecwid_common' => ECWID_PLUGIN_URL . 'js/store-editor-common.js', ); return array_merge( $plugins, $plugins_array ); } public function add_editor_button( $editor_id ) { ?> <button id="insert-ecwid-button" class="button add-ecwid ecwid_button" title="$title"> <span class="ecwid-store-icon"><?php ecwid_embed_svg( 'store' ); ?></span> <?php echo esc_html__( 'Add Store', 'ecwid-shopping-cart' ); ?> </button> <button id="update-ecwid-button" class="button update-ecwid ecwid_button" title="$title"> <span class="ecwid-store-icon"><?php ecwid_embed_svg( 'store' ); ?></span> <?php echo esc_html__( 'Edit Store', 'ecwid-shopping-cart' ); ?> </button> <?php } public function add_scripts() { wp_enqueue_style( 'ecwid-store-editor-css', ECWID_PLUGIN_URL . 'css/store-popup.css', array(), get_option( 'ecwid_plugin_version' ) ); wp_enqueue_script( 'ecwid-store-editor-common-js', ECWID_PLUGIN_URL . 'js/store-editor-common.js', array(), get_option( 'ecwid_plugin_version' ) ); wp_enqueue_script( 'ecwid-store-editor-page-js', ECWID_PLUGIN_URL . 'js/store-editor-page.js', array(), get_option( 'ecwid_plugin_version' ) ); wp_localize_script( 'ecwid-store-editor-page-js', 'ecwid_i18n', array( 'edit_store_appearance' => __( 'Edit Appearance', 'ecwid-shopping-cart' ) ) ); wp_localize_script( 'ecwid-store-editor-page-js', 'ecwid_pb_defaults', ecwid_get_default_pb_size() ); add_editor_style( ECWID_PLUGIN_URL . 'css/page-editor.css' ); } public function get_store_svg() { // TODO: Move this to admin-post if ( isset( $_GET['file'] ) && $_GET['file'] == 'ecwid_store_svg.svg' && current_user_can( 'administrator' ) ) { ecwid_load_textdomain(); header( 'Content-type: image/svg+xml' ); require_once ECWID_PLUGIN_DIR . 'templates/store-svg.php'; die(); } } public function add_popup() { $categories = ecwid_get_categories_for_selector(); require_once ECWID_PLUGIN_DIR . 'templates/store-popup.php'; } } $ecwid_store_editor = new Ecwid_Store_Editor(); ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/includes/class-ecwid-store-page.php���������������������������������������������0000644�����������������00000037407�15122273603�0017210 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?php class Ecwid_Store_Page { const OPTION_STORE_PAGES = 'ecwid_store_pages'; const OPTION_MAIN_STORE_PAGE_ID = 'ecwid_store_page_id'; const OPTION_LAST_STORE_PAGE_ID = 'ecwid_last_store_page_id'; const OPTION_FLUSH_REWRITES = 'ecwid_flush_rewrites'; const OPTION_REPLACE_TITLE = 'ecwid_replace_title'; const WARMUP_ACTION = 'ecwid_warmup_store'; const META_STORE_DATA = 'ecwid_store'; protected static $_store_pages = false; public static function get_product_url( $id ) { $product = Ecwid_Product::get_by_id( $id ); $url = $product->link; if ( $url ) { return $url; } return self::get_product_url_default_fallback( $id ); } public static function get_product_url_from_api( $id ) { if ( Ecwid_Api_V3::is_available() ) { $api = new Ecwid_Api_V3(); $product = $api->get_product( $id ); if ( $product ) { return $product->url; } } return ''; } public static function get_product_url_default_fallback( $id ) { return self::get_store_url() . '#!/p/' . $id; } public static function get_category_url( $id ) { $category = Ecwid_Category::get_by_id( $id ); $url = $category->link; if ( $url ) { return $url; } if ( $id == 0 ) { return self::get_store_url(); } if ( Ecwid_Api_V3::is_available() ) { $api = new Ecwid_Api_V3(); $category = $api->get_category( $id ); if ( $category ) { $url = $category->url; return $url; } } return self::get_store_url() . '#!/c/' . $id; } public static function get_menu_item_url( $menu_item ) { $suffix = ''; if ( Ecwid_Seo_Links::is_enabled() ) { $suffix = $menu_item['ecwid-page']; if ( $suffix == '/' ) { $suffix = ''; } } else { $suffix = '#!' . $menu_item['url']; } return self::get_store_url() . $suffix; } public static function get_cart_url() { if ( Ecwid_Seo_Links::is_enabled() ) { return untrailingslashit( self::get_store_url() ) . '/cart'; } else { return self::get_store_url() . '#!/~/cart'; } } public static function get_store_url() { static $link = null; if ( is_null( $link ) ) { $id = self::get_current_store_page_id(); if ( ! $id ) { return get_bloginfo( 'url' ); } $link = get_permalink( $id ); } return $link; } public static function save_store_page_params( $data ) { $existing = self::get_store_page_params(); $data = array_merge( $existing, $data ); EcwidPlatform::cache_set( self::_get_store_page_data_key(), $data ); } public static function get_store_page_params( $page_id = 0 ) { $params = EcwidPlatform::cache_get( self::_get_store_page_data_key( $page_id ), array() ); if ( ! empty( $params ) ) { return $params; } return array(); } protected static function _get_store_page_data_key( $page_id = 0 ) { $post = get_post( $page_id ); if ( ! $post ) { return; } return get_ecwid_store_id() . '_' . $post->ID . '_' . $post->post_modified_gmt; } public static function get_page_base_url( $page = 0 ) { return urldecode( get_page_uri( $page ) ); } public static function get_current_store_page_id() { static $page_id = null; if ( is_null( $page_id ) ) { $page_id = false; $id = get_option( self::OPTION_MAIN_STORE_PAGE_ID ); if ( $id ) { $post = get_post( $id ); $changed = false; while ( is_null( $post ) ) { $changed = true; $pages = self::get_store_pages_array(); $ind = array_search( $id, $pages ); if ( $ind !== false ) { unset( $pages[ $ind ] ); $pages = self::_set_store_pages( $pages ); } if ( count( $pages ) == 0 ) { return false; } $id = $pages[0]; $post = get_post( $id ); } $status = get_post_status( $id ); if ( in_array( $status, self::_get_allowed_post_statuses() ) ) { $page_id = $id; if ( $changed ) { update_option( self::OPTION_MAIN_STORE_PAGE_ID, $id ); } } }//end if }//end if return $page_id; } public static function is_store_page( $page_id = 0 ) { if ( ! $page_id ) { $page_id = get_the_ID(); } $pages = self::get_store_pages_array(); return in_array( $page_id, $pages ); } public static function is_store_page_with_default_category() { if ( ! self::is_store_page() ) { return false; } $store_page_params = self::get_store_page_params(); if ( isset( $store_page_params['default_category_id'] ) && $store_page_params['default_category_id'] > 0 ) { return true; } return false; } public static function is_store_home_page() { if ( ! self::is_store_page() ) { return false; } $html_catalog_params = Ecwid_Seo_Links::maybe_extract_html_catalog_params(); $is_home_page = empty( $html_catalog_params ); return $is_home_page; } public static function add_store_page( $page_id = 0 ) { $pages = self::get_store_pages_array(); if ( in_array( $page_id, $pages ) ) { return; } if ( wp_is_post_revision( $page_id ) ) { return; } $pages[] = $page_id; if ( count( $pages ) == 1 || ! get_option( self::OPTION_MAIN_STORE_PAGE_ID ) ) { self::update_main_store_page_id( $page_id ); } self::_set_store_pages( $pages ); self::schedule_flush_rewrites(); } public static function reset_store_page( $page_id ) { $pages = self::get_store_pages_array(); $index = array_search( $page_id, $pages ); if ( $index === false ) { return; } unset( $pages[ $index ] ); ecwid_reset_categories_cache(); $pages = self::_set_store_pages( $pages ); if ( $page_id == get_option( self::OPTION_MAIN_STORE_PAGE_ID ) ) { if ( isset( $pages[0] ) ) { $new_page = $pages[0]; // we prefer pages, not posts foreach ( $pages as $page ) { if ( get_post( $page ) && get_post( $page )->post_type == 'page' ) { $new_page = $page; } } update_option( self::OPTION_MAIN_STORE_PAGE_ID, $new_page ); } else { update_option( self::OPTION_MAIN_STORE_PAGE_ID, '' ); } } } public static function get_store_pages_array() { if ( self::$_store_pages ) { return self::$_store_pages; } $pages = get_option( self::OPTION_STORE_PAGES ); if ( ! $pages || ! is_string( $pages ) ) { $pages = ''; } self::$_store_pages = explode( ',', $pages ); self::$_store_pages[] = get_option( self::OPTION_MAIN_STORE_PAGE_ID ); self::$_store_pages = array_values( array_filter( array_unique( self::$_store_pages ) ) ); return self::$_store_pages; } public static function get_store_pages_array_for_selector() { $pages = self::get_store_pages_array(); foreach ( $pages as $ind => $page ) { $post = get_post( $page ); if ( $page != self::get_current_store_page_id() && isset( $post ) && $post->post_type != 'page' ) { unset( $pages[ $ind ] ); } } return $pages; } public static function schedule_flush_rewrites() { update_option( self::OPTION_FLUSH_REWRITES, 1 ); } public static function flush_rewrites() { if ( get_option( self::OPTION_FLUSH_REWRITES ) == 1 ) { flush_rewrite_rules(); } update_option( self::OPTION_FLUSH_REWRITES, 0 ); } protected static function _set_store_pages( $pages ) { self::$_store_pages = array_values( array_filter( $pages ) ); $option_value = implode( ',', $pages ); update_option( self::OPTION_STORE_PAGES, $option_value ); return self::$_store_pages; } public static function post_content_has_productbrowser( $post_id = null ) { if ( is_null( $post_id ) ) { if ( is_admin() ) { return false; } $post_id = get_the_ID(); } $result = false; $post = get_post( $post_id ); if ( $post ) { $post_content = get_post( $post_id )->post_content; $result = ecwid_content_has_productbrowser( $post_content ); $result = apply_filters( 'ecwid_page_has_product_browser', $result, $post_content, $post_id ); } return $result; } public static function update_main_store_page_id( $new_id ) { if ( self::post_content_has_productbrowser( $new_id ) ) { update_option( self::OPTION_MAIN_STORE_PAGE_ID, $new_id ); } } public static function on_save_post( $post_id ) { if ( wp_is_post_revision( $post_id ) ) { return; } $has_pb = self::post_content_has_productbrowser( $post_id ); $is_allowable_post_type = in_array( get_post_type( $post_id ), array( 'page', 'post' ) ); if ( self::is_store_page( $post_id ) ) { $is_disabled = ! in_array( get_post_status( $post_id ), self::_get_allowed_post_statuses() ); if ( $is_disabled || ! $has_pb ) { self::reset_store_page( $post_id ); } } if ( $is_allowable_post_type && $has_pb ) { ecwid_reset_categories_cache(); } if ( $is_allowable_post_type && $has_pb && in_array( get_post_status( $post_id ), self::_get_allowed_post_statuses() ) ) { self::add_store_page( $post_id ); } elseif ( get_option( self::OPTION_MAIN_STORE_PAGE_ID ) == $post_id ) { update_option( self::OPTION_LAST_STORE_PAGE_ID, $post_id ); update_option( self::OPTION_MAIN_STORE_PAGE_ID, '' ); } } protected static function _get_allowed_post_statuses() { return array( 'publish', 'private', 'draft' ); } public static function warmup_store() { $store_page = get_post( self::get_current_store_page_id() ); if ( ! $store_page ) { return; } $shortcodes = array(); foreach ( Ecwid_Shortcode_Base::get_store_shortcode_names() as $shortcode_name ) { $shortcodes[] = ecwid_find_shortcodes( $store_page->post_content, $shortcode_name ); } if ( count( $shortcodes ) === 0 ) { return; } $shortcode_data = $shortcodes[0]; $category = 0; if ( isset( $shortcode_data[3] ) ) { $attributes = shortcode_parse_atts( $shortcode_data[3] ); if ( ! $attributes ) { return; } $category = $attributes['default_category_id']; } $page_url = get_permalink( $store_page ); include_once ECWID_PLUGIN_DIR . 'lib/ecwid_catalog.php'; $catalog = new EcwidCatalog( get_ecwid_store_id(), $page_url ); $catalog->warmup_store_page( intval( $category ) ); } public static $main_page_title = ''; // If you figure out a better place to put this the_title functionality, go ahead, move it =) public static function enqueue_original_page_title() { if ( ! get_option( self::OPTION_REPLACE_TITLE, false ) || ! self::is_store_page() ) { return; } $script = 'dynamic-title'; EcwidPlatform::enqueue_script( $script, array( 'jquery' ), true ); wp_localize_script( EcwidPlatform::make_handle( $script ), 'ecwidOriginalTitle', array( 'initialTitle' => get_the_title(), 'mainPageTitle' => self::$main_page_title, ) ); } public static function the_title( $title, $post_id = 0 ) { if ( ! self::is_store_page( $post_id ) || ! get_option( self::OPTION_REPLACE_TITLE, false ) ) { return $title; } if ( ecwid_is_demo_store() ) { $title .= ' — Demo'; } self::$main_page_title = $title; return $title; } public static function display_post_states( $states, $post ) { if ( in_array( $post->ID, self::get_store_pages_array() ) ) { /* translators: %s: brand */ $states[] = sprintf( __( '%s Store Page', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ); } return $states; } public static function set_store_url() { $store_page_id = self::get_current_store_page_id(); if ( ! $store_page_id ) { return; } $oauth = new Ecwid_OAuth(); if ( ! $oauth->has_scope( Ecwid_OAuth::SCOPE_UPDATE_STORE_PROFILE ) ) { return; } $store_url = self::get_store_url(); $api = new Ecwid_Api_V3(); $profile = $api->get_store_profile(); if ( empty( $profile ) ) { return; } if ( ecwid_is_demo_store() ) { return; } //phpcs:disable WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase if ( $profile->generalInfo->storeUrl === $store_url ) { return; } $is_empty = in_array( $profile->generalInfo->storeUrl, array( 'http://', 'https://' ), true ); $is_same_domain = wp_parse_url( $profile->generalInfo->storeUrl, PHP_URL_HOST ) === wp_parse_url( $store_url, PHP_URL_HOST ); $is_custom_domain = isset( $profile->generalInfo->starterSite->customDomain ); $is_generated_url = ( $profile->generalInfo->storeUrl === $profile->generalInfo->starterSite->generatedUrl ) && ! $is_custom_domain; $is_dev_to_prod = self::is_localhost( $profile->generalInfo->storeUrl ) && ! self::is_localhost( $store_url ); if ( $is_dev_to_prod ) { $is_same_domain = true; } //phpcs:enable WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase if ( ! $is_empty && ! $is_generated_url && ! $is_same_domain ) { return; } $params = array( 'generalInfo' => array( 'storeUrl' => $store_url, 'websitePlatform' => 'wordpress', ), ); $result = $api->update_store_profile( $params ); if ( $result ) { EcwidPlatform::cache_reset( Ecwid_Api_V3::PROFILE_CACHE_NAME ); } } public static function is_localhost( $url ) { $hostname = wp_parse_url( $url, PHP_URL_HOST ); $ip = gethostbyname( $hostname ); if ( $ip ) { return in_array( $ip, array( '127.0.0.1', '::1' ), true ); } return false; } public static function get_notice_for_demo() { $notice = '<div class="ec-notice ec-demo-notice"><div class="ec-notice__wrap"><div class="ec-notice__message"><div class="ec-notice__text"><div class="ec-notice__text-inner"><div>%s <a href="%s" class="ec-link">%s</a></div> </div></div></div></div></div>'; $notice = sprintf( $notice, __( 'This is a demo store. Create your store to see your store products here.', 'ecwid-shopping-cart' ), admin_url( 'admin.php?page=ec-store' ), __( 'Set up your store', 'ecwid-shopping-cart' ) ); return $notice; } public static function show_notice_for_demo( $content ) { if ( ecwid_is_demo_store() && current_user_can( Ecwid_Admin::get_capability() ) && self::is_store_page() ) { ob_start(); ?> <script data-cfasync="false" type="text/javascript"> jQuery(document).ready(function(){ var showDemoNotice = function() { if( jQuery('.ec-notice.ec-demo-notice').length > 0 ) return; jQuery('#dynamic-ec-store-container .ec-store__content-wrapper').append( '<?php echo self::get_notice_for_demo(); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>' ); } if( typeof Ecwid == 'object' && typeof Ecwid.OnPageLoaded == 'object' ) { Ecwid.OnPageLoaded.add(function(page){ showDemoNotice(); }); } document.addEventListener('setupAfterEcwidLoaded', (e) => { Ecwid.OnAPILoaded.add(function () { setTimeout(function(){ showDemoNotice(); }, 1000); }); Ecwid.OnPageLoaded.add(function(page){ showDemoNotice(); }); }); }); </script> <?php $demo_notice = ob_get_clean(); $content .= $demo_notice; }//end if return $content; } public static function delete_page_from_nav_menus() { $page_id = get_option( self::OPTION_LAST_STORE_PAGE_ID ); if ( empty( $page_id ) || intval( $page_id ) <= 0 ) { return false; } $args = array( 'post_type' => 'nav_menu_item', ); $menu_items = get_posts( $args ); if ( count( $menu_items ) ) { foreach ( $menu_items as $item ) { if ( $page_id == get_post_meta( $item->ID, '_menu_item_object_id', true ) ) { wp_delete_post( $item->ID, true ); } } } } } add_action( 'init', array( 'Ecwid_Store_Page', 'flush_rewrites' ) ); add_action( 'save_post', array( 'Ecwid_Store_Page', 'on_save_post' ) ); add_action( 'wp_ajax_' . Ecwid_Store_Page::WARMUP_ACTION, array( 'Ecwid_Store_Page', 'warmup_store' ) ); add_action( 'update_option_page_on_front', array( 'Ecwid_Store_Page', 'schedule_flush_rewrites' ) ); add_action( 'display_post_states', array( 'Ecwid_Store_Page', 'display_post_states' ), 10, 2 ); add_action( 'wp_enqueue_scripts', array( 'Ecwid_Store_Page', 'enqueue_original_page_title' ) ); add_filter( 'the_title', array( 'Ecwid_Store_Page', 'the_title' ), 10, 2 ); add_filter( 'the_content', array( 'Ecwid_Store_Page', 'show_notice_for_demo' ) ); ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/includes/class-ecwid-stub-renderer.php������������������������������������������0000644�����������������00000004734�15122273603�0017720 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?php abstract class Ecwid_Stub_Renderer { public function __construct() { if ( $this->_should_apply() ) { add_filter( 'ecwid_shortcode_custom_renderer', array( $this, 'get_custom_renderer' ), 10, 2 ); add_filter( 'ecwid_get_custom_widget_renderer', array( $this, 'get_custom_widget_renderer' ), 10, 3 ); add_filter( 'ecwid_inline_js_config', array( $this, 'filter_inline_js_config' ), 10000 ); add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ) ); } } public function get_custom_renderer() { return array( $this, 'render_shortcode' ); } public function get_custom_widget_renderer() { return array( $this, 'render_widget' ); } public function render_shortcode( $args ) { if ( $args instanceof Ecwid_Shortcode_Product ) { ob_start(); $message = __( 'Product', 'ecwid-shopping-cart' ); $template_file = 'shortcode-stub.tpl.php'; // detect Buy Now $params = $args->get_params(); if( isset($params['display']) ) { $display_items = explode( ' ', $params['display'] ); $display_buynow = array('addtobag', 'price'); if( !array_diff( $display_items, $display_buynow ) ) { $message = __( 'Buy Now', 'ecwid-shopping-cart' ); $template_file = 'shortcode-stub-buynow.tpl.php'; } } require ECWID_TEMPLATES_DIR . '/' . $template_file; $contents = ob_get_contents(); ob_end_clean(); return $contents; } else if ( is_array( $args ) ) { ob_start(); require ECWID_TEMPLATES_DIR . '/shortcode-stub-store.tpl.php'; $contents = ob_get_contents(); ob_end_clean(); return $contents; } return false; } public function render_widget( $widget, $args, $instance ) { if ( is_array( $args ) ) { ob_start(); if ( $widget instanceof Ecwid_Widget_Product_Browser ) { $message = $widget->widget_options['description']; } else { $message = $widget->name; } $classname = $widget->widget_options['classname']; require ECWID_TEMPLATES_DIR . '/widget-stub.tpl.php'; $contents = ob_get_contents(); ob_end_clean(); return $contents; } return false; } abstract protected function _should_apply(); public function enqueue_scripts() { wp_enqueue_style( 'ec-shortcode-stub', ECWID_PLUGIN_URL . 'css/gutenberg/blocks.editor.build.css' ); EcwidPlatform::enqueue_style( 'shortcode-stub' ); EcwidPlatform::enqueue_style( 'widget-stub' ); } public function filter_inline_js_config( $js ) { if ( $this->_should_apply() ) { return ""; } return $js; } }������������������������������������ecwid-shopping-cart/includes/class-ecwid-well-known.php���������������������������������������������0000644�����������������00000006030�15122273603�0017223 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?php class Ecwid_Well_Known { public function __construct() { // rule for .well-known/* path add_filter( 'query_vars', array( $this, 'query_vars' ) ); add_action( 'parse_request', array( $this, 'delegate_request' ), 1000 ); add_action( 'generate_rewrite_rules', array( $this, 'rewrite_rules' ), 1000 ); add_action( 'permalink_structure_changed', array( $this, 'save_mod_rewrite_rules' ) ); if ( ! Ecwid_Seo_Links::is_feature_available() ) { add_action( 'init', array( $this, 'check_add_rewrite_rules' ) ); } // Well-Known URIs add_action( 'ec_well_known_apple-developer-merchantid-domain-association', array( $this, 'apple_pay_verification' ) ); } public function query_vars( $vars ) { $vars[] = 'ec-well-known'; return $vars; } public function rewrite_rules( $wp_rewrite ) { $well_known_rules = array( '.well-known/(.+)' => 'index.php?ec-well-known=' . $wp_rewrite->preg_index( 1 ), ); $wp_rewrite->rules = $well_known_rules + $wp_rewrite->rules; } public function delegate_request( $wp ) { if ( array_key_exists( 'ec-well-known', $wp->query_vars ) ) { $uri_suffix = str_replace( '/', '', $wp->query_vars['ec-well-known'] ); do_action( 'ec_well_known', $wp->query_vars ); do_action( "ec_well_known_{$uri_suffix}", $wp->query_vars ); } } public function save_mod_rewrite_rules() { if ( ! function_exists( 'get_home_path' ) ) { require_once ABSPATH . 'wp-admin/includes/file.php'; } if ( ! function_exists( 'insert_with_markers' ) ) { require_once ABSPATH . 'wp-admin/includes/misc.php'; } $brand = Ecwid_Config::get_brand(); $rules = array(); $home_path = get_home_path(); $htaccess_file = $home_path . '.htaccess'; if ( ! Ecwid_Seo_Links::is_feature_available() ) { $rules[] = '<IfModule mod_rewrite.c>'; $rules[] = 'RewriteEngine On'; $rules[] = 'RewriteRule ^\.well-known/(.+)$ index.php?ec-well-known=$1 [L]'; $rules[] = '</IfModule>'; } else { EcwidPlatform::cache_reset( 'need_add_rewrite' ); } insert_with_markers( $htaccess_file, $brand, $rules ); } public function check_add_rewrite_rules() { $need_add_rewrite = EcwidPlatform::cache_get( 'need_add_rewrite', null ); if ( is_null( $need_add_rewrite ) ) { $this->save_mod_rewrite_rules(); EcwidPlatform::cache_set( 'need_add_rewrite', '1', WEEK_IN_SECONDS ); } } public function apple_pay_verification( $query_vars ) { $api = new Ecwid_Api_V3(); $profile = $api->get_store_profile( true ); if ( $profile && ! empty( $profile->payment->applePay->verificationFileUrl ) ) { $response = wp_remote_get( $profile->payment->applePay->verificationFileUrl, array( 'timeout' => 60, ) ); $body = wp_remote_retrieve_body( $response ); if ( ! empty( $body ) ) { echo esc_html( $body ); } else { $this->show_404(); } exit(); } else { $this->show_404(); }//end if } public function show_404() { global $wp_query; $wp_query->set_404(); status_header( 404 ); exit(); } } $ecwid_well_know = new Ecwid_Well_Known(); ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/includes/class-ecwid-wp-dashboard-feed.php��������������������������������������0000644�����������������00000006222�15122273603�0020405 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?php class Ecwid_WP_Dashboard_Feed { const CACHE_POSTS = 'wp-dashboard-blog-posts'; const ACTION_AJAX_SAVE = 'ecwid-save-posts'; const PARAM_LAST_ECWID_ADMIN_PREFETCH_TIME = 'last-admin-prefetch-time'; public function __construct() { if ( Ecwid_Config::is_wl() ) { return; } add_action( 'wp_dashboard_setup', array( $this, 'dashboard_setup' ) ); add_action( 'wp_ajax_' . self::ACTION_AJAX_SAVE, array( $this, 'ajax_save_posts' ) ); } public function dashboard_setup() { if ( ! current_user_can( 'administrator' ) && ! current_user_can( 'editor' ) ) { return; } $url = 'https://www.ecwid.com/wp-json/wp/v2/posts?per_page=3&categories=1'; $media_url = 'https://www.ecwid.com/wp-json/wp/v2/media/'; $images_cdn = 'https://web-cdn.ecwid.com/wp-content/uploads/'; $lang = ecwid_get_current_user_locale(); if ( $lang === 'ru_RU' ) { $url = 'https://www.ecwid.ru/wp-json/wp/v2/posts?per_page=3&categories=1'; $media_url = 'https://www.ecwid.ru/wp-json/wp/v2/media/'; $images_cdn = 'https://web-cdn.ecwid.com/wp-content/uploads/ru/'; } wp_enqueue_style( 'ecwid-dashboard-blog', ECWID_PLUGIN_URL . '/css/dashboard-blog.css', array(), get_option( 'ecwid_plugin_version' ) ); wp_enqueue_script( 'ecwid-dashboard-blog', ECWID_PLUGIN_URL . '/js/dashboard-blog.js', array( 'jquery' ), get_option( 'ecwid_plugin_version' ) ); wp_localize_script( 'ecwid-dashboard-blog', 'ecwidDashboardBlog', array( 'posts' => EcwidPlatform::cache_get( $this->get_cache_name() ), 'url' => $url, 'mediaUrl' => $media_url, 'imagesCDN' => $images_cdn, 'saveAction' => self::ACTION_AJAX_SAVE, ) ); wp_add_dashboard_widget( 'ecwid_blog_feed', /* translators: %s: brand */ sprintf( __( '%s Blog', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ), array( $this, 'display' ) ); } public function ajax_save_posts() { if ( ! current_user_can( Ecwid_Admin::get_capability() ) ) { die(); } check_ajax_referer( 'ec_admin', '_ajax_nonce' ); if ( ! isset( $_POST['posts'] ) ) { die(); } $posts = map_deep( wp_unslash( $_POST['posts'] ), 'sanitize_text_field' ); EcwidPlatform::cache_set( $this->get_cache_name(), $posts, 12 * HOUR_IN_SECONDS ); header( 'HTTP/1.0 200 OK' ); die(); } protected function get_cache_name() { $name = self::CACHE_POSTS; $name .= '-' . ecwid_get_current_user_locale(); return $name; } public function display() { require_once ECWID_PLUGIN_DIR . '/templates/dashboard-blog-posts.tpl.php'; if ( EcwidPlatform::get( self::PARAM_LAST_ECWID_ADMIN_PREFETCH_TIME ) > time() + HOUR_IN_SECONDS * 12 ) { $dashboard_url = ecwid_get_iframe_src( time(), 'dashboard' ); ?> <div style="display:none"> <iframe id="ecwid-prefetch" src=""></iframe> <script type="text/javascript"> jQuery(document).ready(function() { jQuery('#ecwid-prefetch').attr('src', '<?php esc_url( $dashboard_url ); ?>'); }); </script> </div> <?php EcwidPlatform::set( self::PARAM_LAST_ECWID_ADMIN_PREFETCH_TIME, time() ); } } } $ecwid_wp_dashboard_feed = new Ecwid_WP_Dashboard_Feed(); ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/includes/faq_entries.php��������������������������������������������������������0000644�����������������00000011662�15122273603�0015241 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?php $faqs = array( array( 'title' => __( 'How secure is this plugin? Is my store PCI DSS compliant?', 'ecwid-shopping-cart' ), 'body' => __( 'Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won\'t have any banking compliance issues when selling online with Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">More details.</a>', 'ecwid-shopping-cart' ), 'priority' => 'newbie_with_woo' ), array( 'title' => __( 'How can I manage my store from a mobile device?', 'ecwid-shopping-cart' ), 'body' => __( 'Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">More details.</a>' , 'ecwid-shopping-cart' ), 'priority' => 'newbie_with_woo' ), array( 'title' => __( 'How to set up a storefront on Facebook with Ecwid?', 'ecwid-shopping-cart' ), 'body' => __( 'You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">More details.</a>' , 'ecwid-shopping-cart' ), 'priority' => 'newbie_with_woo' ), array( 'title' => __( 'How can I add a cart widget to my site sidebar?', 'ecwid-shopping-cart' ), 'body' => sprintf( __( 'You can add product search box, cart widget and more on the <a href="%s">"Appearance / Widgets page"</a> here in your site admin. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">More details.</a>' , 'ecwid-shopping-cart' ), admin_url("widgets.php?highlight-ec-widgets=true") ) ), array( 'title' => __( 'How much does Ecwid cost?', 'ecwid-shopping-cart' ), 'body' => sprintf( __( 'Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target="_blank" href="%s">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans.' , 'ecwid-shopping-cart' ), admin_url( 'admin.php?page=' . Ecwid_Admin::ADMIN_SLUG . '&ec-store-page=billing' ) ) ), array( 'title' => __( 'How do I add store categories to the site menu?', 'ecwid-shopping-cart' ), 'body' => __( 'You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open "Appearance > Menus" in your WordPress control panel and add the "Store with Categories Menu" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site.' , 'ecwid-shopping-cart' ) ), array( 'title' => __( 'How do I put my products in the sitemap?', 'ecwid-shopping-cart' ), 'body' => __( 'To create sitemap for your Wordpress site we suggest using <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> or <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster.', 'ecwid-shopping-cart' ) ), array( 'title' => __( 'How to add a single product with the add to bag button to the site pages?', 'ecwid-shopping-cart' ), 'body' => __( 'To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">How to use it.</a>' , 'ecwid-shopping-cart' ) ), array( 'title' => __( 'Is it possible to display my store on the site home page?', 'ecwid-shopping-cart' ), 'body' => __( 'You can display your store on the site main page. Adjust the "Reading" settings of your site as described in our <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">Help Center.</a>' , 'ecwid-shopping-cart' ) ), array( 'title' => __( 'Is there a WordPress theme for Ecwid?', 'ecwid-shopping-cart' ), 'body' => sprintf( __( 'Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href="%s">TemplateMonster themes</a>' , 'ecwid-shopping-cart' ), admin_url( 'admin.php?page=' . Ecwid_Admin::ADMIN_SLUG . '&ec-store-page=apps%3Aview%3Dapp%26name%3Dtemplatemonster-themes' ) ), 'priority' => 'guaranteed_3' ) );������������������������������������������������������������������������������ecwid-shopping-cart/includes/kliken.php�������������������������������������������������������������0000644�����������������00000001753�15122273603�0014216 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?php $user_agent = isset( $_SERVER['HTTP_USER_AGENT'] ) ? sanitize_text_field( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ) : ''; if ( strpos( $user_agent, 'Google-Site-Verification' ) ) { add_action( 'wp_head', 'ecwid_add_kliken_code' ); function ecwid_add_kliken_code() { $api = new Ecwid_Api_V3(); $info = $api->get_starter_site_info(); if ( ! $info || ! isset( $info->customHeaderHtmlCode ) ) {//phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase return; } $pattern = '%' . '(<!--Kliken Google Site Verification Token Tag-->\s*' . "<meta name='google-site-verification' content='(.*)' />\s*" . '<!--Kliken Google Site Verification Token Tag-->)%s'; $matches = array(); if ( preg_match( $pattern, $info->customHeaderHtmlCode, $matches ) ) {//phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase echo $matches[1]; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } } }//end if ���������������������ecwid-shopping-cart/includes/oembed.php�������������������������������������������������������������0000644�����������������00000006523�15122273603�0014174 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?php add_filter( 'embed_content', 'ecwid_oembed_content', 10, 1 ); function ecwid_oembed_content( $data ) { echo ecwid_get_embed_content(); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } function ecwid_get_embed_content() { $html = ''; $root_category_id = 0; $post_content = get_post( get_the_ID() )->post_content; $shortcodes = array(); foreach ( Ecwid_Shortcode_Base::get_store_shortcode_names() as $shortcode_name ) { $shortcodes = ecwid_find_shortcodes( $post_content, $shortcode_name ); if ( $shortcodes ) { break; } } if ( ! $shortcodes || ! isset( $shortcodes[0] ) || ! isset( $shortcodes[0][3] ) ) { return; } $attributes = $shortcodes[0][3]; if ( ! preg_match( '/default_category_id=.([\\d]*)./', $attributes, $matches ) ) { return; } $root_category_id = 0; if ( ! is_numeric( $matches[1] ) ) { return; } elseif ( isset( $matches[1] ) ) { $root_category_id = $matches[1]; } $api = new Ecwid_Api_V3(); $categories = $api->get_categories( array( 'parent' => $root_category_id ) ); $max_items = 5; $items = array(); $see_more = false; $result = ''; if ( ! empty( $categories->items ) ) { foreach ( $categories->items as $category ) { $category = Ecwid_Category::get_by_id( $category->id ); $items[ $category->link ] = $category->name; if ( count( $items ) >= $max_items ) { $see_more = true; break; } } } if ( ecwid_is_paid_account() ) { $api = new Ecwid_Api_V3(); $category = $api->get_category( $root_category_id ); if ( $category ) { $trimmed = ecwid_trim_description( $category->description ); $result .= '<div>' . ecwid_trim_description( $category->description ); $descr_length = function_exists( 'mb_strlen' ) ? mb_strlen( $category->description ) : strlen( $category->description ); $trimmed_length = function_exists( 'mb_strlen' ) ? mb_strlen( $trimmed ) : strlen( $trimmed ); if ( $trimmed_length < $descr_length && $trimmed_length == ECWID_TRIMMED_DESCRIPTION_LENGTH ) { $result .= '... <a class="wp-embed-more" href="' . get_permalink() . '">' . __( 'See more', 'ecwid-shopping-cart' ) . '</a>'; } $result .= '</div>'; } if ( ! $see_more ) { $products = $api->search_products( array( 'category' => $root_category_id ) ); if ( $products->items ) { foreach ( $products->items as $product ) { $product = Ecwid_Product::get_by_id( $product->id ); $items[ $product->link ] = $product->name; if ( count( $items ) >= $max_items ) { $see_more = true; break; } } } } }//end if $result .= '<ul>'; if ( $items ) { foreach ( $items as $url => $title ) { $result .= '<li><a href="' . esc_attr( $url ) . '">' . esc_html( $title ) . '</a></li>'; } } if ( $see_more ) { $result .= '<li><a class="wp-embed-more" href="' . get_permalink() . '">' . __( 'See more', 'ecwid-shopping-cart' ) . '</a></li>'; } $result .= '</ul>'; return $result; } function _ecwid_find_category_in_horizontal_categories_tree( $categories, $root_id ) { foreach ( $categories as $category ) { if ( $category->id == $root_id ) { return $category->sub; } if ( ! is_null( $category->sub ) ) { $result = _ecwid_find_category_in_horizontal_categories_tree( $category->sub, $root_id ); if ( $result !== false ) { return $result; } } } return false; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/includes/shortcodes.php���������������������������������������������������������0000644�����������������00000002233�15122273603�0015110 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?php require_once 'shortcodes/class-ecwid-shortcode-productbrowser.php'; require_once 'shortcodes/class-ecwid-shortcode-minicart.php'; require_once 'shortcodes/class-ecwid-shortcode-search.php'; require_once 'shortcodes/class-ecwid-shortcode-categories.php'; require_once 'shortcodes/class-ecwid-shortcode-product.php'; add_shortcode( 'ecwid_productbrowser', 'ecwid_render_shortcode' ); add_shortcode( 'ecwid_minicart', 'ecwid_render_shortcode' ); add_shortcode( 'ecwid_search', 'ecwid_render_shortcode' ); add_shortcode( 'ecwid_categories', 'ecwid_render_shortcode' ); add_shortcode( 'ecwid_product', 'ecwid_render_shortcode' ); add_shortcode( 'ecwid_searchbox', 'ecwid_searchbox_shortcode' ); add_shortcode( 'ec_product', 'ecwid_render_shortcode' ); function ecwid_render_shortcode( $params, $content = '', $name = '' ) { $shortcode = Ecwid_Shortcode_Base::get_shortcode_object( $name, $params ); if ( $shortcode ) { return $shortcode->render( array( 'legacy' => true ) ); } } function ecwid_searchbox_shortcode( $params, $content = '', $name = '' ) { $shortcode = new Ecwid_Shortcode_Search( $params ); return $shortcode->render( array( 'legacy' => true ) ); } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/includes/themes.php�������������������������������������������������������������0000644�����������������00000011055�15122273603�0014222 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?php define( 'ECWID_THEMES_DIR', ECWID_PLUGIN_DIR . 'includes/themes' ); add_action( 'after_switch_theme', 'ecwid_after_switch_theme' ); require ECWID_THEMES_DIR . '/class-ecwid-theme-base.php'; function ecwid_get_theme_name() { $version = get_bloginfo( 'version' ); if ( version_compare( $version, '3.4' ) < 0 ) { $theme_name = get_current_theme(); //phpcs:ignore WordPress.WP.DeprecatedFunctions.get_current_themeFound } else { $theme = wp_get_theme(); $theme_name = $theme->Name; //phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase } return $theme_name; } function ecwid_get_theme_identification() { $version = get_bloginfo( 'version' ); if ( version_compare( $version, '3.4' ) < 0 ) { $theme_name = get_template(); } else { $theme = wp_get_theme(); $theme_name = $theme->template; } return $theme_name; } function ecwid_apply_theme( $theme_name = null ) { $generic_themes = array( 'pixova-lite' => array( 'js', 'scroll' => 75, ), 'accesspress-mag' => array( 'css' ), 'attitude' => array( 'css-no-parent' ), 'customizr' => array( 'js', 'css-no-parent', Ecwid_Theme_Base::PROP_USE_JS_API_FOR_CATS_NAV_MENU ), 'edin' => array( 'js' ), 'evolve' => array( 'css-no-parent' ), 'mantra' => array( 'css-no-parent' ), 'pageline' => array( 'scroll' => 60 ), 'responsiveboat' => array( 'css' ), 'twentyfourteen' => array( 'css', 'scroll' => 0, Ecwid_Theme_Base::PROP_USE_JS_API_FOR_CATS_NAV_MENU, ), 'twentytwelve' => array( 'js' ), 'sliding-door' => array( 'css-no-parent' ), 'zerif-lite' => array( 'css-no-parent' ), 'storefront' => array( 'css' ), 'salient' => array( 'css-no-parent' ), 'flora' => array( 'historyjs_html4mode' ), 'thevoux-wp' => array( 'historyjs_html4mode' ), 'zerogravity' => array( 'css' ), 'skt-design-agency-pro' => array( 'css-no-parent' ), 'uncode' => array( 'css-no-parent' ), 'ribosome' => array( 'css' ), 'optimizepress' => array( 'css' ), 'edge' => array( 'js', 'scroll' => 50, ), 'newsmag' => array( 'css-no-parent' ), 'optimizer' => array( 'css' ), 'businesso' => array( 'css' ), 'flatsome' => array( Ecwid_Theme_Base::PROP_USE_JS_API_FOR_CATS_NAV_MENU ), 'themify-music' => array( Ecwid_Theme_Base::PROP_AJAX_DEFER_RENDERING ), 'Parallax-One' => array( 'css' ), 'twentytwenty' => array( 'css-no-parent', 'title' ), 'jevelin3' => array( 'css-no-parent' ), 'newstore' => array( 'css', 'title' ), 'twentytwentyone' => array( 'css-no-parent', 'title' ), 'twentytwentytwo' => array( 'css-no-parent', 'title' ), 'twentytwentythree' => array( 'css-no-parent', 'title' ), 'twentytwentyfour' => array( 'css-no-parent', 'title' ), ); $generic_themes = apply_filters( 'ecwid_generic_themes', $generic_themes ); $custom_themes = array( 'bretheon', 'responsive', 'envision', 'twentyfifteen', 'genesis', 'twentysixteen', 'central', 'mfupdate', 'trend', 'Boundless', 'twentyseventeen', 'themify-music', 'Avada', 'twentynineteen', 'woodiex', 'enfold', 'vantage', 'zenlife', 'Divi', 'bridge', ); $custom_themes = apply_filters( 'ecwid_custom_themes', $custom_themes ); if ( empty( $theme_name ) ) { $theme_name = ecwid_get_theme_identification(); } $theme_file = ''; if ( function_exists( 'wp_get_theme' ) && wp_get_theme()->Name == 'ResponsiveBoat' ) { $theme_name = 'responsiveboat'; } if ( $theme_name == 'evolve-plus' ) { $theme_name = 'evolve'; } if ( ! $theme_name ) { return; } global $ecwid_current_theme; if ( in_array( $theme_name, $custom_themes ) ) { $theme_file = ECWID_THEMES_DIR . '/class-ecwid-theme-' . $theme_name . '.php'; $theme_file = apply_filters( 'ecwid_get_theme_file', $theme_file ); $theme_file = strtolower( $theme_file ); if ( ! empty( $theme_file ) && is_file( $theme_file ) && is_readable( $theme_file ) ) { $ecwid_current_theme = require_once $theme_file; } } elseif ( array_key_exists( $theme_name, $generic_themes ) ) { $ecwid_current_theme = Ecwid_Theme_Base::create( $theme_name, $generic_themes[ $theme_name ] ); } do_action( Ecwid_Theme_Base::ACTION_APPLY_THEME, $ecwid_current_theme ); } function ecwid_after_switch_theme() { ecwid_apply_theme(); } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/includes/widgets.php������������������������������������������������������������0000644�����������������00000004606�15122273603�0014407 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?php require_once 'widgets/class-ecwid-widget-badge.php'; require_once 'widgets/class-ecwid-widget-minicart.php'; require_once 'widgets/class-ecwid-widget-minicart-miniview.php'; require_once 'widgets/class-ecwid-widget-floating-shopping-cart.php'; require_once 'widgets/class-ecwid-widget-recently-viewed.php'; require_once 'widgets/class-ecwid-widget-latest-products.php'; require_once 'widgets/class-ecwid-widget-search.php'; require_once 'widgets/class-ecwid-widget-store-link.php'; require_once 'widgets/class-ecwid-widget-vertical-categories-list.php'; require_once 'widgets/class-ecwid-widget-random-product.php'; require_once 'widgets/class-ecwid-widget-nsf-minicart.php'; require_once 'widgets/class-ecwid-widget-product-browser.php'; if ( ecwid_migrations_is_original_plugin_version_older_than( '4.3' ) ) { include_once 'widgets/class-ecwid-widget-vcategories.php'; } function ecwid_sidebar_widgets_init() { $disable_widgets = apply_filters( 'ecwid_disable_widgets', false ); if ( $disable_widgets ) { return; } if ( ! Ecwid_Config::is_wl() ) { register_widget( 'Ecwid_Widget_Badge' ); } register_widget( 'Ecwid_Widget_Search' ); if ( version_compare( get_bloginfo( 'version' ), '4.0' ) >= 0 ) { register_widget( 'Ecwid_Widget_NSF_Minicart' ); } $need_to_disable_defer_init = false; $old_minicarts = array( 'ecwidminicart_miniview' => 'Ecwid_Widget_Minicart_Miniview', 'ecwidminicart' => 'Ecwid_Widget_Minicart', 'ecwidfloatingshoppingcart' => 'Ecwid_Widget_Floating_Shopping_Cart', ); foreach ( $old_minicarts as $idbase => $widget_class ) { if ( is_active_widget( false, false, $idbase ) || version_compare( get_bloginfo( 'version' ), '4.0' ) < 0 ) { register_widget( $widget_class ); $need_to_disable_defer_init = true; } } if ( $need_to_disable_defer_init ) { add_filter( 'ecwid_is_defer_store_init_enabled', '__return_false', 10000 ); } register_widget( 'Ecwid_Widget_Store_Link' ); if ( Ecwid_Api_V3::is_available() ) { register_widget( 'Ecwid_Widget_Recently_Viewed' ); register_widget( 'Ecwid_Widget_Latest_Products' ); register_widget( 'Ecwid_Widget_Vertical_Categories_List' ); register_widget( 'Ecwid_Widget_Random_Product' ); } if ( ecwid_migrations_is_original_plugin_version_older_than( '4.3' ) ) { register_widget( 'Ecwid_Widget_VCategories' ); } } add_action( 'widgets_init', 'ecwid_sidebar_widgets_init' ); ��������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/gutenberg/blocks.build.js����������������������������������������������������0000644�����������������00000241523�15122273603�0015732 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������!function(e){function t(o){if(r[o])return r[o].exports;var n=r[o]={i:o,l:!1,exports:{}};return e[o].call(n.exports,n,n.exports,t),n.l=!0,n.exports}var r={};t.m=e,t.c=r,t.d=function(e,r,o){t.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:o})},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=3)}([function(e,t,r){"use strict";function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}r.d(t,"a",function(){return a});var n,c,a={ecwid:wp.element.createElement("svg",{class:"ec-store-icon",version:"1.1",id:"Layer_1",x:"0px",y:"0px",viewBox:"0 0 215 215","enable-background":"new 0 0 215 215"},wp.element.createElement("g",{fill:"#0087cd"},wp.element.createElement("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M160.68,163.34c-3.67,0-6.65,2.98-6.65,6.66c0,3.68,2.98,6.66,6.65,6.66 c3.68,0,6.66-2.98,6.66-6.66C167.34,166.32,164.36,163.34,160.68,163.34z"}),wp.element.createElement("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M53.46,162.51c-3.67,0-6.65,2.98-6.65,6.66c0,3.68,2.98,6.66,6.65,6.66 c3.68,0,6.66-2.98,6.66-6.66C60.12,165.49,57.14,162.51,53.46,162.51z"}),wp.element.createElement("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M166.12,0H48.88C21.89,0,0,21.89,0,48.89v117.23c0,27,21.89,48.88,48.88,48.88 h117.24c27,0,48.88-21.88,48.88-48.88V48.88C215,21.89,193.11,0,166.12,0z M134.43,57.85c5.36,0,9.7,4.34,9.7,9.7 c0,5.36-4.34,9.7-9.7,9.7c-5.36,0-9.7-4.34-9.7-9.7C124.73,62.19,129.07,57.85,134.43,57.85z M134.43,85.25 c5.36,0,9.7,4.34,9.7,9.7s-4.34,9.7-9.7,9.7c-5.36,0-9.7-4.34-9.7-9.7S129.07,85.25,134.43,85.25z M107.09,57.85 c5.36,0,9.7,4.34,9.7,9.7c0,5.36-4.34,9.7-9.7,9.7c-5.36,0-9.7-4.34-9.7-9.7C97.39,62.19,101.73,57.85,107.09,57.85z M107.09,85.25 c5.36,0,9.7,4.34,9.7,9.7s-4.34,9.7-9.7,9.7c-5.36,0-9.7-4.34-9.7-9.7S101.73,85.25,107.09,85.25z M79.75,57.85 c5.36,0,9.7,4.34,9.7,9.7c0,5.36-4.34,9.7-9.7,9.7c-5.36,0-9.7-4.34-9.7-9.7C70.05,62.19,74.39,57.85,79.75,57.85z M79.75,85.25 c5.36,0,9.7,4.34,9.7,9.7s-4.34,9.7-9.7,9.7c-5.36,0-9.7-4.34-9.7-9.7S74.39,85.25,79.75,85.25z M53.46,187.72 c-10.24,0-18.55-8.31-18.55-18.55c0-10.25,8.31-18.56,18.55-18.56c10.25,0,18.56,8.31,18.56,18.56 C72.03,179.41,63.71,187.72,53.46,187.72z M160.68,188.55c-10.24,0-18.55-8.31-18.55-18.55c0-10.25,8.31-18.56,18.55-18.56 c10.25,0,18.56,8.31,18.56,18.56C179.24,180.24,170.93,188.55,160.68,188.55z M193.27,37.66l-19.18,71.44 c-5.12,19.07-21.28,31.04-41.03,31.04h-12.65c-4.18,0-10.23-2.26-12.74-4.62c-0.42-0.39-1.08-0.39-1.5,0 c-2.51,2.36-8.56,4.62-12.74,4.62h-13.9c-19.12,0-33.61-10.9-39.41-29.12L23.81,59.86c-0.32-1.02-0.15-2.1,0.49-2.97 c0.63-0.86,1.6-1.36,2.69-1.36l3.12,0.01c7.52,0.03,14.11,4.86,16.38,12.02l11.98,37.62c3.24,10.19,13.61,17.04,24.3,17.04 l4.65-0.01c4.8,0,8.18-2.46,10.22-4.66c1.06-1.15,2.54-1.82,4.11-1.82l10.44,0.01c1.48,0,2.92,0.59,3.91,1.68 c1.98,2.17,5.49,4.79,10.33,4.79l4.43,0.01c11.04,0,21.75-7.45,24.62-18.11l15.53-57.84c2.03-7.53,8.88-12.78,16.67-12.78l2.74,0 c0.26,0,0.52,0.04,0.76,0.14C192.93,34.37,193.7,36.08,193.27,37.66z"}))),store:wp.element.createElement("svg",{class:"ec-store-icon-color",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},wp.element.createElement("g",{fill:"none","fill-rule":"evenodd",stroke:"currentColor","stroke-linejoin":"round","stroke-width":"2",transform:"translate(0 3)"},wp.element.createElement("path",{d:"M20 7L20 17C20 18.1045695 19.1045695 19 18 19L4 19C2.8954305 19 2 18.1045695 2 17L2 7 2 7M1 0L21 0 21.5808632 3.48517907C21.8145004 4.88700236 20.8935617 6.22128765 19.5 6.5L18.9764235 6.60471529C17.7961226 6.84077548 16.5971903 6.29508301 16 5.25L16 5.25 16 5.25 15.7442084 5.69763529C15.2840087 6.50298484 14.4275622 7 13.5 7 12.5724378 7 11.7159913 6.50298484 11.2557916 5.69763529L11 5.25 11 5.25 10.7442084 5.69763529C10.2840087 6.50298484 9.42756224 7 8.5 7 7.57243776 7 6.71599134 6.50298484 6.25579159 5.69763529L6 5.25 6 5.25C5.40280971 6.29508301 4.20387741 6.84077548 3.02357646 6.60471529L2.5 6.5C1.10643827 6.22128765.185499607 4.88700236.419136822 3.48517907L1 0 1 0z"}),wp.element.createElement("polygon",{points:"7 11 15 11 15 19 7 19"}))),product:wp.element.createElement("svg",{class:"ec-store-icon-color",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},wp.element.createElement("g",{fill:"none","fill-rule":"evenodd","stroke-linecap":"round","stroke-linejoin":"round"},wp.element.createElement("path",{stroke:"currentColor","stroke-width":"2",d:"M5.5638852,7 L18.4361148,7 C19.3276335,7 19.6509198,7.09282561 19.9768457,7.2671327 C20.3027716,7.4414398 20.5585602,7.69722837 20.7328673,8.0231543 C20.9071744,8.34908022 21,8.67236646 21,9.5638852 L21,20.4361148 C21,21.3276335 20.9071744,21.6509198 20.7328673,21.9768457 C20.5585602,22.3027716 20.3027716,22.5585602 19.9768457,22.7328673 C19.6509198,22.9071744 19.3276335,23 18.4361148,23 L5.5638852,23 C4.67236646,23 4.34908022,22.9071744 4.0231543,22.7328673 C3.69722837,22.5585602 3.4414398,22.3027716 3.2671327,21.9768457 C3.09282561,21.6509198 3,21.3276335 3,20.4361148 L3,9.5638852 C3,8.67236646 3.09282561,8.34908022 3.2671327,8.0231543 C3.4414398,7.69722837 3.69722837,7.4414398 4.0231543,7.2671327 C4.34908022,7.09282561 4.67236646,7 5.5638852,7 Z"}),wp.element.createElement("path",{stroke:"currentColor","stroke-width":"2",d:"M8,10 L8,6 C8,3.790861 9.790861,2 12,2 C14.209139,2 16,3.790861 16,6 L16,10 L16,10"}))),aspect169:wp.element.createElement("svg",{width:"40px",height:"40px",viewBox:"0 0 40 40",version:"1.1"},wp.element.createElement("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},wp.element.createElement("rect",{fill:"#000000",x:"9",y:"14",width:"22",height:"12",rx:"2"}))),aspect916:wp.element.createElement("svg",{width:"40px",height:"40px",viewBox:"0 0 40 40",version:"1.1"}," ",wp.element.createElement("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},wp.element.createElement("rect",{fill:"#000000",x:"14",y:"9",width:"12",height:"22",rx:"2"}))),aspect11:wp.element.createElement("svg",{width:"40px",height:"40px",viewBox:"0 0 40 40",version:"1.1"},wp.element.createElement("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},wp.element.createElement("rect",{fill:"#000000",x:"12",y:"12",width:"16",height:"16",rx:"2"}))),aspect34:wp.element.createElement("svg",{width:"40px",height:"40px",viewBox:"0 0 40 40",version:"1.1"},wp.element.createElement("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},wp.element.createElement("rect",{fill:"#000000",x:"12",y:"10",width:"16",height:"20",rx:"2"}))),aspect43:wp.element.createElement("svg",{width:"40px",height:"40px",viewBox:"0 0 40 40",version:"1.1"},wp.element.createElement("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},wp.element.createElement("rect",{fill:"#000000",x:"10",y:"12",width:"20",height:"16",rx:"2"}))),textalignleft:wp.element.createElement("svg",{width:"40px",height:"40px",viewBox:"0 0 40 40",version:"1.1"},wp.element.createElement("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},wp.element.createElement("rect",{fill:"#000000",x:"13",y:"13",width:"14",height:"2"}),wp.element.createElement("rect",{fill:"#000000",x:"13",y:"16",width:"9",height:"2"}),wp.element.createElement("rect",{fill:"#000000",x:"13",y:"19",width:"13",height:"2"}),wp.element.createElement("rect",{fill:"#000000",x:"13",y:"22",width:"9",height:"2"}),wp.element.createElement("rect",{fill:"#000000",x:"13",y:"25",width:"14",height:"2"}))),textaligncenter:wp.element.createElement("svg",{width:"40px",height:"40px",viewBox:"0 0 40 40",version:"1.1"},wp.element.createElement("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},wp.element.createElement("rect",{fill:"#000000",x:"13",y:"13",width:"14",height:"2"}),wp.element.createElement("rect",{fill:"#000000",x:"16",y:"16",width:"8",height:"2"}),wp.element.createElement("rect",{fill:"#000000",x:"14",y:"19",width:"12",height:"2"}),wp.element.createElement("rect",{fill:"#000000",x:"16",y:"22",width:"8",height:"2"}),wp.element.createElement("rect",{fill:"#000000",x:"13",y:"25",width:"14",height:"2"}))),textalignright:wp.element.createElement("svg",{width:"40px",height:"40px",viewBox:"0 0 40 40",version:"1.1"},wp.element.createElement("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},wp.element.createElement("rect",{fill:"#000000",x:"13",y:"13",width:"14",height:"2"}),wp.element.createElement("rect",{fill:"#000000",x:"18",y:"16",width:"9",height:"2"}),wp.element.createElement("rect",{fill:"#000000",x:"14",y:"19",width:"13",height:"2"}),wp.element.createElement("rect",{fill:"#000000",x:"18",y:"22",width:"9",height:"2"}),wp.element.createElement("rect",{fill:"#000000",x:"13",y:"25",width:"14",height:"2"}))),textalignjustify:wp.element.createElement("svg",{width:"40px",height:"40px",viewBox:"0 0 40 40",zoomAndPan:"1.5",version:"1.1"},wp.element.createElement("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},wp.element.createElement("rect",{fill:"#000000",x:"13",y:"13",width:"14",height:"2"}),wp.element.createElement("rect",{fill:"#000000",x:"13",y:"16",width:"14",height:"2"}),wp.element.createElement("rect",{fill:"#000000",x:"13",y:"19",width:"14",height:"2"}),wp.element.createElement("rect",{fill:"#000000",x:"13",y:"22",width:"14",height:"2"}),wp.element.createElement("rect",{fill:"#000000",x:"13",y:"25",width:"14",height:"2"}))),productLayout3Columns:wp.element.createElement("svg",{width:"40px",height:"40px",viewBox:"0 0 40 40",version:"1.1"},wp.element.createElement("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},wp.element.createElement("rect",{fill:"#000000",transform:"translate(13.000000, 19.500000) rotate(-270.000000) translate(-13.000000, -19.500000) ",x:"3.5",y:"16.5",width:"19",height:"6",rx:"1"}),wp.element.createElement("rect",{fill:"#000000",x:"18",y:"10",width:"5",height:"19"}),wp.element.createElement("rect",{fill:"#000000",x:"25",y:"10",width:"5",height:"8"}),wp.element.createElement("rect",{fill:"#000000",x:"25",y:"19",width:"5",height:"10"}))),productLayout2ColumnsLeft:wp.element.createElement("svg",{width:"40px",height:"40px",viewBox:"0 0 40 40",version:"1.1"},wp.element.createElement("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},wp.element.createElement("rect",{fill:"#000000",x:"17",y:"10",width:"13",height:"19",rx:"1"}),wp.element.createElement("rect",{fill:"#000000",x:"10",y:"10",width:"5",height:"5"}),wp.element.createElement("rect",{fill:"#000000",x:"10",y:"17",width:"5",height:"12"}))),productLayout2ColumnsRight:wp.element.createElement("svg",{width:"40px",height:"40px",viewBox:"0 0 40 40",version:"1.1"},wp.element.createElement("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},wp.element.createElement("g",{transform:"translate(10.000000, 10.000000)",fill:"#000000"},wp.element.createElement("rect",{x:"0",y:"0",width:"13",height:"19",rx:"1"}),wp.element.createElement("rect",{x:"15",y:"0",width:"5",height:"5"}),wp.element.createElement("rect",{x:"15",y:"7",width:"5",height:"12"})))),productLayout2ColumnsBottom:wp.element.createElement("svg",{width:"40px",height:"40px",viewBox:"0 0 40 40",version:"1.1"},wp.element.createElement("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},wp.element.createElement("g",{transform:"translate(10.000000, 10.000000)",fill:"#000000"},wp.element.createElement("rect",{x:"0",y:"0",width:"13",height:"12",rx:"1"}),wp.element.createElement("rect",{x:"15",y:"0",width:"5",height:"12"}),wp.element.createElement("rect",{x:"0",y:"14",width:"20",height:"5"})))),galleryLayoutHorizontal:wp.element.createElement("svg",{width:"40px",height:"40px",viewBox:"0 0 40 40",version:"1.1"},wp.element.createElement("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},wp.element.createElement("g",{transform:"translate(20.000000, 20.500000) rotate(-180.000000) translate(-20.000000, -20.500000) translate(10.000000, 11.000000)",fill:"#000000","fill-rule":"nonzero"},wp.element.createElement("rect",{x:"0",y:"0",width:"13",height:"19",rx:"1"}),wp.element.createElement("rect",{x:"15",y:"0",width:"5",height:"6"}),wp.element.createElement("rect",{x:"15",y:"14",width:"5",height:"5"}),wp.element.createElement("rect",{x:"15",y:"7",width:"5",height:"6"})))),galleryLayoutVertical:wp.element.createElement("svg",{width:"40px",height:"40px",viewBox:"0 0 40 40",version:"1.1"},wp.element.createElement("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},wp.element.createElement("g",{transform:"translate(19.500000, 20.000000) rotate(-270.000000) translate(-19.500000, -20.000000) translate(9.500000, 10.500000)",fill:"#000000","fill-rule":"nonzero"},wp.element.createElement("rect",{x:"0",y:"-1.13686838e-13",width:"13",height:"19",rx:"1"}),wp.element.createElement("rect",{x:"15",y:"-1.13686838e-13",width:"5",height:"6"}),wp.element.createElement("rect",{x:"15",y:"7",width:"5",height:"5"}),wp.element.createElement("rect",{x:"15",y:"13",width:"5",height:"6"})))),galleryLayoutFeed:wp.element.createElement("svg",{width:"40px",height:"40px",viewBox:"0 0 40 40",version:"1.1"},wp.element.createElement("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},wp.element.createElement("g",{transform:"translate(20.500000, 12.500000) rotate(-270.000000) translate(-20.500000, -12.500000) translate(14.000000, 3.000000)",fill:"#000000","fill-rule":"nonzero"},wp.element.createElement("rect",{x:"0",y:"0",width:"13",height:"19",rx:"1"})),wp.element.createElement("g",{transform:"translate(20.500000, 27.500000) rotate(-270.000000) translate(-20.500000, -27.500000) translate(14.000000, 18.000000)",fill:"#000000","fill-rule":"nonzero"},wp.element.createElement("rect",{x:"0",y:"0",width:"13",height:"19",rx:"1"})))),cart:wp.element.createElement("svg",(n={class:"ec-store-icon-color"},o(n,"class","ec-store-icon-color"),o(n,"width","24px"),o(n,"height","24px"),o(n,"viewBox","0 0 24 24"),o(n,"version","1.1"),n),wp.element.createElement("g",{id:"Typography",stroke:"none","stroke-width":"1","fill-rule":"evenodd"},wp.element.createElement("g",{id:"gutenberg-widgets-icons",transform:"translate(-352.000000, -415.000000)"},wp.element.createElement("g",{id:"cart-icon",transform:"translate(352.000000, 415.000000)"},wp.element.createElement("path",{d:"M4.5269723,4 L2,4 C1.44771525,4 1,3.55228475 1,3 C1,2.44771525 1.44771525,2 2,2 L5.33333333,2 C5.80393835,2 6.21086155,2.32812702 6.31061146,2.788039 L7.22413999,7 L21,7 C21.6640252,7 22.143636,7.63527258 21.9617572,8.27390353 L19.968471,15.272927 C19.8460922,15.7026358 19.4535094,15.9990234 19.0067139,15.9990234 L7.93579102,15.9990234 C7.465186,15.9990234 7.0582628,15.6708964 6.95851289,15.2109844 L4.5269723,4 Z M7.65791824,9 L8.74215205,13.9990234 L18.2517453,13.9990234 L19.6754416,9 L7.65791824,9 Z",id:"Path-3","fill-rule":"nonzero"}),wp.element.createElement("circle",{id:"Oval-2",cx:"9",cy:"20",r:"2"}),wp.element.createElement("circle",{id:"Oval-2",cx:"18",cy:"20",r:"2"}))))),search:wp.element.createElement("svg",{class:"ec-store-icon-color",xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 18 18"},wp.element.createElement("g",{fill:"none","fill-rule":"evenodd",stroke:"currentColor","stroke-linecap":"round","stroke-width":"2",transform:"translate(1.667 1.667)"},wp.element.createElement("line",{x1:"10.667",x2:"14.667",y1:"10.667",y2:"14.667"}),wp.element.createElement("circle",{cx:"6",cy:"6",r:"6","stroke-linejoin":"round"}))),categories:wp.element.createElement("svg",(c={class:"ec-store-icon-color"},o(c,"class","ec-store-icon-color"),o(c,"width","24px"),o(c,"height","24px"),o(c,"viewBox","0 0 24 24"),o(c,"version","1.1"),c),wp.element.createElement("g",{id:"Typography",stroke:"none","stroke-width":"1","fill-rule":"evenodd"},wp.element.createElement("g",{id:"gutenberg-widgets-icons",transform:"translate(-234.000000, -416.000000)"},wp.element.createElement("g",{id:"categories-icon",transform:"translate(234.000000, 416.000000)"},wp.element.createElement("polygon",{id:"Triangle",points:"3 2 5.5 7 0.5 7"}),wp.element.createElement("polygon",{id:"Line","fill-rule":"nonzero",points:"8 6 8 4 23 4 23 6"}),wp.element.createElement("polygon",{id:"Line","fill-rule":"nonzero",points:"8 13 8 11 23 11 23 13"}),wp.element.createElement("polygon",{id:"Line","fill-rule":"nonzero",points:"8 20 8 18 23 18 23 20"}),wp.element.createElement("rect",{id:"Rectangle",stroke:"currentColor","stroke-width":"2",fill:"#FFFFFF",x:"2",y:"11",width:"2",height:"2"}),wp.element.createElement("rect",{id:"Rectangle",stroke:"currentColor","stroke-width":"2",fill:"#FFFFFF",x:"2",y:"18",width:"2",height:"2",rx:"1"}))))),category:wp.element.createElement("svg",{class:"ec-store-icon-color",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},wp.element.createElement("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4.5638852 2L7.4361148 2C8.32763354 2 8.65091978 2.09282561 8.9768457 2.2671327 9.30277163 2.4414398 9.5585602 2.69722837 9.7328673 3.0231543 9.90717439 3.34908022 10 3.67236646 10 4.5638852L10 7.4361148C10 8.32763354 9.90717439 8.65091978 9.7328673 8.9768457 9.5585602 9.30277163 9.30277163 9.5585602 8.9768457 9.7328673 8.65091978 9.90717439 8.32763354 10 7.4361148 10L4.5638852 10C3.67236646 10 3.34908022 9.90717439 3.0231543 9.7328673 2.69722837 9.5585602 2.4414398 9.30277163 2.2671327 8.9768457 2.09282561 8.65091978 2 8.32763354 2 7.4361148L2 4.5638852C2 3.67236646 2.09282561 3.34908022 2.2671327 3.0231543 2.4414398 2.69722837 2.69722837 2.4414398 3.0231543 2.2671327 3.34908022 2.09282561 3.67236646 2 4.5638852 2zM4.5638852 14L7.4361148 14C8.32763354 14 8.65091978 14.0928256 8.9768457 14.2671327 9.30277163 14.4414398 9.5585602 14.6972284 9.7328673 15.0231543 9.90717439 15.3490802 10 15.6723665 10 16.5638852L10 19.4361148C10 20.3276335 9.90717439 20.6509198 9.7328673 20.9768457 9.5585602 21.3027716 9.30277163 21.5585602 8.9768457 21.7328673 8.65091978 21.9071744 8.32763354 22 7.4361148 22L4.5638852 22C3.67236646 22 3.34908022 21.9071744 3.0231543 21.7328673 2.69722837 21.5585602 2.4414398 21.3027716 2.2671327 20.9768457 2.09282561 20.6509198 2 20.3276335 2 19.4361148L2 16.5638852C2 15.6723665 2.09282561 15.3490802 2.2671327 15.0231543 2.4414398 14.6972284 2.69722837 14.4414398 3.0231543 14.2671327 3.34908022 14.0928256 3.67236646 14 4.5638852 14zM16.5638852 2L19.4361148 2C20.3276335 2 20.6509198 2.09282561 20.9768457 2.2671327 21.3027716 2.4414398 21.5585602 2.69722837 21.7328673 3.0231543 21.9071744 3.34908022 22 3.67236646 22 4.5638852L22 7.4361148C22 8.32763354 21.9071744 8.65091978 21.7328673 8.9768457 21.5585602 9.30277163 21.3027716 9.5585602 20.9768457 9.7328673 20.6509198 9.90717439 20.3276335 10 19.4361148 10L16.5638852 10C15.6723665 10 15.3490802 9.90717439 15.0231543 9.7328673 14.6972284 9.5585602 14.4414398 9.30277163 14.2671327 8.9768457 14.0928256 8.65091978 14 8.32763354 14 7.4361148L14 4.5638852C14 3.67236646 14.0928256 3.34908022 14.2671327 3.0231543 14.4414398 2.69722837 14.6972284 2.4414398 15.0231543 2.2671327 15.3490802 2.09282561 15.6723665 2 16.5638852 2zM16.5638852 14L19.4361148 14C20.3276335 14 20.6509198 14.0928256 20.9768457 14.2671327 21.3027716 14.4414398 21.5585602 14.6972284 21.7328673 15.0231543 21.9071744 15.3490802 22 15.6723665 22 16.5638852L22 19.4361148C22 20.3276335 21.9071744 20.6509198 21.7328673 20.9768457 21.5585602 21.3027716 21.3027716 21.5585602 20.9768457 21.7328673 20.6509198 21.9071744 20.3276335 22 19.4361148 22L16.5638852 22C15.6723665 22 15.3490802 21.9071744 15.0231543 21.7328673 14.6972284 21.5585602 14.4414398 21.3027716 14.2671327 20.9768457 14.0928256 20.6509198 14 20.3276335 14 19.4361148L14 16.5638852C14 15.6723665 14.0928256 15.3490802 14.2671327 15.0231543 14.4414398 14.6972284 14.6972284 14.4414398 15.0231543 14.2671327 15.3490802 14.0928256 15.6723665 14 16.5638852 14z"})),button:wp.element.createElement("svg",{class:"ec-store-icon-color",width:"24px",height:"24px",viewBox:"0 0 24 24",version:"1.1"},wp.element.createElement("g",{id:"Typography",stroke:"none","stroke-width":"1","fill-rule":"evenodd"},wp.element.createElement("g",{id:"gutenberg-widgets-icons",transform:"translate(-345.000000, -280.000000)","fill-rule":"nonzero"},wp.element.createElement("g",{id:"button-icon",transform:"translate(345.000000, 280.000000)"},wp.element.createElement("path",{d:"M4,8 L4,16 L20,16 L20,8 L4,8 Z M4,6 L20,6 C21.1045695,6 22,6.8954305 22,8 L22,16 C22,17.1045695 21.1045695,18 20,18 L4,18 C2.8954305,18 2,17.1045695 2,16 L2,8 C2,6.8954305 2.8954305,6 4,6 Z",id:"Rectangle-5"}),wp.element.createElement("path",{d:"M13.8320367,9.8101295 C14.2137832,9.41102047 14.8467917,9.3969454 15.2459008,9.77869195 C15.6450098,10.1604385 15.6590849,10.793447 15.2773383,11.192556 L12.2122748,14.3970238 C11.8300377,14.7966458 11.1960253,14.8101668 10.7970986,14.427204 L9.5128579,13.1943549 C9.11444327,12.8118837 9.10151859,12.1788506 9.48398981,11.780436 C9.86646103,11.3820214 10.4994941,11.3690967 10.8979087,11.7515679 L11.4594438,12.290632 L13.8320367,9.8101295 Z",id:"Line-6"}))))),productPreview:wp.element.createElement("svg",{width:"72px",height:"72px",viewBox:"0 0 72 72",version:"1.1"},wp.element.createElement("g",{id:"Typography",stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},wp.element.createElement("g",{id:"gutenberg-widgets",transform:"translate(-625.000000, -811.000000)",fill:"#AAAAAA"},wp.element.createElement("g",{id:"Group-2",transform:"translate(571.000000, 756.000000)"},wp.element.createElement("g",{id:"product-preview",transform:"translate(54.000000, 55.000000)"},wp.element.createElement("path",{d:"M6,25 L6,69 L66,69 L66,25 L6,25 Z M4,23 L68,23 L68,71 L4,71 L4,23 Z",id:"Rectangle-2-Copy-2","fill-rule":"nonzero"}),wp.element.createElement("path",{d:"M36.5,23.5 L65.836706,23.5 L67.2237665,22.8226349 L55.0328393,7.34740904 L39.8812213,0.895706316 L40.7501329,7.5 L17.0403124,7.5 L5.04031242,22.5 L6.32093727,22.5 L17.5209373,8.5 L36.5,8.5 L36.5,23.5 Z M42.9573255,16.6099474 L41.1011835,2.50206036 L54.4056315,8.16722056 L66.5284549,23.5566573 L42.9573255,16.6099474 Z",id:"Combined-Shape",stroke:"#AAAAAA"}),wp.element.createElement("path",{d:"M29.8056641,41.53125 C29.9375,38.2060547 32.2080078,35.6865234 36.4560547,35.6865234 C40.3232422,35.6865234 42.9306641,37.9863281 42.9306641,41.1210938 C42.9306641,43.3916016 41.7880859,44.9882812 39.8544922,46.1455078 C37.9648438,47.2587891 37.4228516,48.0351562 37.4228516,49.5439453 L37.4228516,50.4375 L34.390625,50.4375 L34.3759766,49.265625 C34.3027344,47.2001953 35.1962891,45.8818359 37.203125,44.6806641 C38.9755859,43.6113281 39.6054688,42.7617188 39.6054688,41.2529297 C39.6054688,39.5976562 38.3017578,38.3818359 36.2949219,38.3818359 C34.2734375,38.3818359 32.9697266,39.5976562 32.8378906,41.53125 L29.8056641,41.53125 Z M35.9287109,57.2197266 C34.859375,57.2197266 34.0097656,56.3994141 34.0097656,55.3300781 C34.0097656,54.2607422 34.859375,53.4404297 35.9287109,53.4404297 C37.0273438,53.4404297 37.8623047,54.2607422 37.8623047,55.3300781 C37.8623047,56.3994141 37.0273438,57.2197266 35.9287109,57.2197266 Z",id:"?"})))))),filters:wp.element.createElement("svg",{class:"ec-store-icon-color",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},wp.element.createElement("g",{fill:"none","fill-rule":"evenodd","stroke-linecap":"round"},wp.element.createElement("line",{x1:"2",x2:"22",y1:"7",y2:"7",stroke:"currentColor","stroke-width":"2"}),wp.element.createElement("line",{x1:"6",x2:"18",y1:"13",y2:"13",stroke:"currentColor","stroke-width":"2"}),wp.element.createElement("line",{x1:"11",x2:"13",y1:"19",y2:"19",stroke:"currentColor","stroke-width":"2"}))),cartPage:wp.element.createElement("svg",{class:"ec-store-icon-color",width:"24px",height:"24px",viewBox:"0 0 24 24",version:"1.1"},wp.element.createElement("g",{id:"Typography",stroke:"none","stroke-width":"1","fill-rule":"evenodd"},wp.element.createElement("g",{id:"gutenberg-widgets-icons",transform:"translate(-470.000000, -500.000000)"},wp.element.createElement("g",{id:"cart-icon",transform:"translate(470.000000, 500.000000)"},wp.element.createElement("g",{id:"Group-6",transform:"translate(2.000000, 3.000000)"},wp.element.createElement("path",{d:"M2.5269723,1 L0,1 C-0.55228475,1 -1,0.55228475 -1,-1.11022302e-16 C-1,-0.55228475 -0.55228475,-1 0,-1 L3.33333333,-1 C3.80393835,-1 4.21086155,-0.671872981 4.31061146,-0.211960997 L6.74215205,10.9990234 L16.2517453,10.9990234 L17.6754416,6 L17.0067139,6 C16.4544291,6 16.0067139,5.55228475 16.0067139,5 C16.0067139,4.44771525 16.4544291,4 17.0067139,4 L19,4 C19.6640252,4 20.143636,4.63527258 19.9617572,5.27390353 L17.968471,12.272927 C17.8460922,12.7026358 17.4535094,12.9990234 17.0067139,12.9990234 L5.93579102,12.9990234 C5.465186,12.9990234 5.0582628,12.6708964 4.95851289,12.2109844 L2.5269723,1 Z",id:"Path-3","fill-rule":"nonzero"}),wp.element.createElement("path",{d:"M13.6266547,1.30878828 C14.0084012,0.909679249 14.6414097,0.895604177 15.0405188,1.27735072 C15.4396278,1.65909727 15.4537029,2.29210579 15.0719563,2.69121482 L11.0068929,6.89568259 C10.6246557,7.29530459 9.99064332,7.30882561 9.59171662,6.92586281 L7.61584318,5.00113813 C7.21742856,4.61866691 7.20450388,3.98563386 7.5869751,3.58721924 C7.96944632,3.18880462 8.60247937,3.17587994 9.00089399,3.55835116 L10.2540618,4.78929076 L13.6266547,1.30878828 Z",id:"Line-6","fill-rule":"nonzero"}),wp.element.createElement("circle",{id:"Oval-2",cx:"7",cy:"17",r:"2"}),wp.element.createElement("circle",{id:"Oval-2",cx:"16",cy:"17",r:"2"})))))),latestProducts:wp.element.createElement("svg",{class:"ec-store-icon-color",width:"24px",height:"24px",viewBox:"0 0 24 24",version:"1.1"},wp.element.createElement("g",{id:"Typography",stroke:"none","stroke-width":"1","fill-rule":"evenodd"},wp.element.createElement("g",{id:"gutenberg-widgets-icons",transform:"translate(-470.000000, -416.000000)","fill-rule":"nonzero"},wp.element.createElement("g",{transform:"translate(470.000000, 416.000000)"},wp.element.createElement("path",{d:"M5,17 L5,20 L9,20 L9,17 L5,17 Z M3,15 L11,15 L11,22 L3,22 L3,15 Z",id:"Rectangle-2"}),wp.element.createElement("path",{d:"M5,8 L5,11 L9,11 L9,8 L5,8 Z M3,6 L11,6 L11,13 L3,13 L3,6 Z",id:"Rectangle-2-Copy"}),wp.element.createElement("path",{d:"M15,17 L15,20 L19,20 L19,17 L15,17 Z M13,15 L21,15 L21,22 L13,22 L13,15 Z",id:"Rectangle-2"}),wp.element.createElement("path",{d:"M15,8 L15,11 L19,11 L19,8 L15,8 Z M13,6 L21,6 L21,13 L13,13 L13,6 Z",id:"Rectangle-2-Copy-3"})))))}},function(e,t,r){"use strict";function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=t.attributes,n=function(e,t,n,c){return wp.element.createElement(b,{label:n},wp.element.createElement(h,{className:"ec-store-inspector-button-group"},c.map(function(n){return wp.element.createElement(_,{isPrimary:r[t]===n.value,onClick:function(){return e.setAttributes(o({},t,n.value))}},n.title)})))},c=function(e,t,r){return wp.element.createElement(f,{label:r,checked:e.attributes[t],onChange:function(){return e.setAttributes(o({},t,!e.attributes[t]))}})},a=function(e,t,r,n){var c=arguments.length>4&&void 0!==arguments[4]?arguments[4]:function(){};return wp.element.createElement(b,{label:r},wp.element.createElement("select",{className:"ec-store-control-select",onChange:function(r){e.setAttributes(o({},t,r.target.value)),c()}},n.map(function(r){return wp.element.createElement("option",{value:r.value,selected:e.attributes[t]==r.value},r.title)})))},l=function(e,t,r){return wp.element.createElement(b,{label:r},wp.element.createElement("input",{type:"text",value:e.attributes[t],onChange:function(r){e.setAttributes(o({},t,r.target.value))}}))},i=function(e,t,r,n){return wp.element.createElement(b,{label:r},wp.element.createElement(E,{controls:n.map(function(r){return{icon:p.a[r.icon],title:r.title,isActive:e.attributes[t]===r.value,className:"ecwid-toolbar-icon",onClick:function(){return e.setAttributes(o({},t,r.value))}}})}))},s=function(t,r,n,c){var l="DEFAULT_CATEGORY_ID"==t.attributes[r],i=e.default_category_id,s=null!=document.querySelector("[name=editor-canvas]"),p=window;s&&(p=document.querySelector("[name=editor-canvas]").contentWindow);var d=function(e){"undefined"!=typeof p.Ecwid&&"FILTERS_PAGE"!=e&&(null!=p.document.getElementById("ec-store-preview")&&(p.document.getElementById("ec-store-preview").innerHTML=""),setTimeout(function(){p.ecwid_onBodyDone()},300))},m="";i.values&&i.values.length>1&&(m=a(t,i.name,i.title,i.values,d));var u=c.map(function(e){return{value:e.value,label:wp.element.createElement("div",null,wp.element.createElement("span",{className:"ec-store-inspector-radio__title"},e.title),wp.element.createElement("p",null,e.description),"DEFAULT_CATEGORY_ID"==e.value&&l&&[m])}});return wp.element.createElement(b,null,wp.element.createElement(v,{label:n,className:"ec-store-inspector-radio",options:u,selected:t.attributes[r],onChange:function(e){t.setAttributes(o({},r,e)),d(e)}}))};return{buttonGroup:function(r){var o=e[r];return"undefined"==typeof t.attributes[r]&&(t.attributes[r]=o.default),n(t,o.name,o.title,o.values)},toggle:function(r){var o=e[r];return"undefined"==typeof t.attributes[r]&&(t.attributes[r]=o.default),c(t,o.name,o.title)},select:function(r){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=e[r];return"undefined"==typeof t.attributes[r]&&(t.attributes[r]=n.default),a(t,n.name,o||n.title,n.values)},textbox:function(r){var o=e[r];return builtTextbox(t,o.name,o.title)},toolbar:function(r){var o=e[r];return"undefined"==typeof t.attributes[r]&&(t.attributes[r]=o.default),i(t,o.name,o.title,o.values)},color:function(r){return wp.element.createElement(d.a,{props:t,name:r,title:e[r].title})},defaultCategoryId:function(r){var o=e[r];return o.values&&o.values.length>1?("undefined"==typeof t.attributes[r]&&(t.attributes[r]=o.default),a(t,o.name,o.title,o.values)):l(t,o.name,o.title)},radioButtonWithDescription:function(r){var o=e[r];return"undefined"==typeof t.attributes[r]&&(t.attributes[r]=o.default),s(t,o.name,o.title,o.values)}}}function c(e){return wp.element.createElement("div",{className:"ec-store-inspector-subheader-row"},wp.element.createElement("label",{className:"ec-store-inspector-subheader"},e))}function a(e,t,r){for(var o=t.props,n=r.split(" "),c=o.clientId,a="#ec-store-block-"+c,l=jQuery(e).find(a).data("ec-store-block-stored-properties"),i=!1,s={},p=0;p<n.length;p++){var d=n[p];l&&o.attributes[d]==l[d]||(i=!0),s[d]=o.attributes[d]}return jQuery(e).find(a).data("ec-store-block-stored-properties",s),i}function l(e){var t=e.props,r=e.attributes,o=t.clientId,n=t.attributes.show_categories,c=t.attributes.show_search,l="undefined"===typeof e.render||e.render,i="ec-store-block-"+o,s=window;(function(){return null!=document.querySelector("[name=editor-canvas]")})()&&(s=function(){return document.querySelector("[name=editor-canvas]").contentWindow}());var p="";t.attributes.default_category_id?p="defaultCategoryId="+t.attributes.default_category_id:t.attributes.default_product_id&&(p="defaultProductId="+t.attributes.default_product_id);var d="";e.isLivePreviewEnabled||(d="ec-store-generic-block ec-store-dynamic-block",l&&s.document.getElementById(i)&&s.document.getElementById(i).getAttribute("data-ec-store-rendered")||(d+=" ec-store-block"),n&&(d+=" ec-store-with-categories"),c&&(d+=" ec-store-with-search"),d+=" ec-store-with-stub");var g=a(s.document,e,"default_product_id default_category_id show_search show_categories");if(l&&g&&(s.document.getElementById(i)&&s.document.getElementById(i).removeAttribute("data-ec-store-rendered"),"undefined"!=typeof EcwidGutenberg&&setTimeout(function(){EcwidGutenberg.refresh()})),s.ec=s.ec||{},s.ec.storefront=s.ec.storefront||{},s.ec.config=s.ec.config||{},s.ec.config.chameleon=s.ec.config.chameleon||{},s.ec.config.chameleon.colors=[],s.ec.config.disable_all_cookies=!0,Object.keys(r).map(function(e){var o="undefined"!==typeof t.attributes[e]?t.attributes[e]:r.default;-1!==e.indexOf("chameleon")?o&&(s.ec.config.chameleon.colors["color-"+e.substr(16)]=o):"undefined"!=typeof o&&(s.ec.storefront[e]=o)}),delete s.ec.storefront.enable_catalog_on_one_page,delete s.ec.storefront.show_root_categories,e.isLivePreviewEnabled){var h=Object(m.useState)(""),_=w(h,2),b=_[0],E=_[1],f=function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e.isProductPage||"undefined"!=typeof s.Ecwid&&s.Ecwid.openPage&&s.Ecwid.openPage(t,r)},v=function(){history.replaceState(null,null," ")};switch(r.storefront_view){case"EXPAND_CATEGORIES":s.ec.storefront.enable_catalog_on_one_page=!0,v();break;case"SHOW_ROOT_CATEGORIES":s.ec.storefront.show_root_categories=!1,v();break;case"FILTERS_PAGE":f("search");break;case"DEFAULT_CATEGORY_ID":case"COLLAPSE_CATEGORIES":default:s.ec.storefront.enable_catalog_on_one_page=!1,v()}var k=function(t){if(null!=t){"undefined"!=typeof s.Ecwid&&s.Ecwid.refreshConfig&&s.Ecwid.refreshConfig(),"undefined"!=typeof s.Ecwid&&s.Ecwid.destroy&&s.Ecwid.destroy(),s.ecwid_script_defer=!0,s.ecwid_dynamic_widgets=!0,s._xnext_initialization_scripts=[],localStorage.setItem("ec_disabled_apps","all");var n=!1,c=s.document.getElementById("ec-store-search-preview"),a=c&&c.childNodes&&c.childNodes.length>0;if(e.attributes.show_search&&!a&&s._xnext_initialization_scripts.push({widgetType:"SearchWidget",id:"ec-store-search-preview",arg:""}),e.attributes.show_categories&&s._xnext_initialization_scripts.push({widgetType:"CategoriesV2",id:"ec-store-categories-preview",arg:["id=ec-store-categories-preview"]}),s._xnext_initialization_scripts.push({widgetType:"ProductBrowser",id:"ec-store-preview",arg:[p]}),s.document.getElementById("ec-store-script"))"undefined"!=typeof s.Ecwid&&(b!=o&&(E(o),s.ecwid_onBodyDone()),g&&(s.document.getElementById("ec-store-preview").innerHTML="",s.ecwid_onBodyDone()));else{var l=s.document.createElement("script");l.type="text/javascript",l.id="ec-store-script",l.src=EcwidGutenbergParams.scriptJsUrl,t.innerHTML="",t.appendChild(l),l.addEventListener("load",function(){if("undefined"!=typeof s.Ecwid){s.ecwid_loader("ec-store-preview");s.document.getElementsByClassName("ec-cart-widget").length>0&&s.Ecwid.init(),s.needLoadEcwidAsync||void 0===u(s.Ecwid._onComplete)||s.Ecwid._onComplete(),s.Ecwid.OnAPILoaded.add(function(){"FILTERS_PAGE"!=r.storefront_view||n||(f("search"),n=!0)}),E(o)}})}}},C=[{label:__("Set up your store","ecwid-shopping-cart"),url:"admin.php?page=ec-store",variant:"primary"}];return wp.element.createElement("div",{className:d,"data-ec-store-widget":"productbrowser","data-ec-store-id":o,"data-ec-store-args":p,"data-ec-store-with-search":c,"data-ec-store-with-categories":n,id:i},e.attributes.show_search&&wp.element.createElement("div",{id:"ec-store-search-preview"}),e.attributes.show_categories&&wp.element.createElement("div",{id:"ec-store-categories-preview"}),wp.element.createElement("div",{id:"ec-store-preview"}),wp.element.createElement("div",{ref:k}),e.showDemoButton&&wp.element.createElement(y,{status:"info",isDismissible:!1,actions:C},wp.element.createElement("div",{style:{margin:"0 0 12px 12px"}},__("This is a demo store. Create your store to see your store products here.","ecwid-shopping-cart"))))}return wp.element.createElement("div",{className:d,"data-ec-store-widget":"productbrowser","data-ec-store-id":o,"data-ec-store-args":p,"data-ec-store-with-search":c,"data-ec-store-with-categories":n,id:i},wp.element.createElement("div",{className:"ec-store-block-header"},e.icon,e.title),wp.element.createElement("div",{className:"ec-store-block-content"},e.children),e.showDemoButton&&wp.element.createElement("div",null,wp.element.createElement("a",{className:"button button-primary",href:"admin.php?page=ec-store"},__("Set up your store","ecwid-shopping-cart"))))}function i(e){var t=EcwidGutenbergParams.imagesUrl+e.src,r="";return""!=e.className&&(r=e.className),wp.element.createElement("img",{src:t,className:r})}function s(e){var t=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return wp.element.createElement("div",{className:e},wp.element.createElement("div",{className:"ec-store-products"},wp.element.createElement("div",{className:"ec-store-product-block ec-store-product-filter"},wp.element.createElement("div",{className:"ec-store-stub-sample"})),wp.element.createElement("div",{className:"ec-store-product-block"},wp.element.createElement("div",{className:"ec-store-product ec-store-product-y_shirt"}),wp.element.createElement("div",{className:"ec-store-stub-sample"})),wp.element.createElement("div",{className:"ec-store-product-block"},wp.element.createElement("div",{className:"ec-store-product ec-store-product-b_watch"}),wp.element.createElement("div",{className:"ec-store-stub-sample"}))),wp.element.createElement("div",{className:"ec-store-products"},wp.element.createElement("div",{className:"ec-store-product-block"}),wp.element.createElement("div",{className:"ec-store-product-block"},wp.element.createElement("div",{className:"ec-store-product ec-store-product-g_sneaker"}),wp.element.createElement("div",{className:"ec-store-stub-sample"})),wp.element.createElement("div",{className:"ec-store-product-block"},wp.element.createElement("div",{className:"ec-store-product ec-store-product-g_hat"}),wp.element.createElement("div",{className:"ec-store-stub-sample"}))))};switch(e.state){case"EXPAND_CATEGORIES":return function(){return wp.element.createElement("div",null,wp.element.createElement("div",{className:"ec-store-block-subheader"},__("Category #1","ecwid-shopping-cart")),wp.element.createElement("div",{className:"ec-store-products"},wp.element.createElement("div",{className:"ec-store-product-block"},wp.element.createElement("div",{className:"ec-store-product ec-store-product-y_sneaker"}),wp.element.createElement("div",{className:"ec-store-stub-sample"})),wp.element.createElement("div",{className:"ec-store-product-block"},wp.element.createElement("div",{className:"ec-store-product ec-store-product-y_shirt"}),wp.element.createElement("div",{className:"ec-store-stub-sample"})),wp.element.createElement("div",{className:"ec-store-product-block"},wp.element.createElement("div",{className:"ec-store-product ec-store-product-y_watch"}),wp.element.createElement("div",{className:"ec-store-stub-sample"}))),wp.element.createElement("div",{className:"ec-store-block-subheader"},__("Category #2","ecwid-shopping-cart")),wp.element.createElement("div",{className:"ec-store-products"},wp.element.createElement("div",{className:"ec-store-product-block"},wp.element.createElement("div",{className:"ec-store-product ec-store-product-g_sneaker"}),wp.element.createElement("div",{className:"ec-store-stub-sample"})),wp.element.createElement("div",{className:"ec-store-product-block"},wp.element.createElement("div",{className:"ec-store-product ec-store-product-g_shirt"}),wp.element.createElement("div",{className:"ec-store-stub-sample"})),wp.element.createElement("div",{className:"ec-store-product-block"},wp.element.createElement("div",{className:"ec-store-product ec-store-product-g_watch"}),wp.element.createElement("div",{className:"ec-store-stub-sample"}))))}();case"SHOW_ROOT_CATEGORIES":return function(){return wp.element.createElement("div",null,wp.element.createElement("div",{className:"ec-store-block-subheader"},__("Featured Products","ecwid-shopping-cart")),wp.element.createElement("div",{className:"ec-store-products"},wp.element.createElement("div",{className:"ec-store-product-block"},wp.element.createElement("div",{className:"ec-store-product ec-store-product-m_sneaker"}),wp.element.createElement("div",{className:"ec-store-stub-sample"})),wp.element.createElement("div",{className:"ec-store-product-block"},wp.element.createElement("div",{className:"ec-store-product ec-store-product-p_shirt"}),wp.element.createElement("div",{className:"ec-store-stub-sample"})),wp.element.createElement("div",{className:"ec-store-product-block"},wp.element.createElement("div",{className:"ec-store-product ec-store-product-g_hat"}),wp.element.createElement("div",{className:"ec-store-stub-sample"}))),wp.element.createElement("div",{className:"ec-store-products"},wp.element.createElement("div",{className:"ec-store-product-block"},wp.element.createElement("div",{className:"ec-store-product ec-store-product-b_watch"}),wp.element.createElement("div",{className:"ec-store-stub-sample"})),wp.element.createElement("div",{className:"ec-store-product-block"},wp.element.createElement("div",{className:"ec-store-product ec-store-product-y_bag"}),wp.element.createElement("div",{className:"ec-store-stub-sample"})),wp.element.createElement("div",{className:"ec-store-product-block"},wp.element.createElement("div",{className:"ec-store-product ec-store-product-p_sneaker"}),wp.element.createElement("div",{className:"ec-store-stub-sample"}))))}();case"DEFAULT_CATEGORY_ID":return function(){return wp.element.createElement("div",null,wp.element.createElement("div",{className:"ec-store-block-subheader"},__("Category #1","ecwid-shopping-cart")),wp.element.createElement("div",{className:"ec-store-products"},wp.element.createElement("div",{className:"ec-store-product-block"},wp.element.createElement("div",{className:"ec-store-product ec-store-product-y_sneaker"}),wp.element.createElement("div",{className:"ec-store-stub-sample"})),wp.element.createElement("div",{className:"ec-store-product-block"},wp.element.createElement("div",{className:"ec-store-product ec-store-product-y_shirt"}),wp.element.createElement("div",{className:"ec-store-stub-sample"})),wp.element.createElement("div",{className:"ec-store-product-block"},wp.element.createElement("div",{className:"ec-store-product ec-store-product-y_watch"}),wp.element.createElement("div",{className:"ec-store-stub-sample"}))),wp.element.createElement("div",{className:"ec-store-products"},wp.element.createElement("div",{className:"ec-store-product-block"},wp.element.createElement("div",{className:"ec-store-product ec-store-product-y_bag"}),wp.element.createElement("div",{className:"ec-store-stub-sample"})),wp.element.createElement("div",{className:"ec-store-product-block"},wp.element.createElement("div",{className:"ec-store-product ec-store-product-y_hat"}),wp.element.createElement("div",{className:"ec-store-stub-sample"})),wp.element.createElement("div",{className:"ec-store-product-block"},wp.element.createElement("div",{className:"ec-store-product ec-store-product-y_sneaker"}),wp.element.createElement("div",{className:"ec-store-stub-sample"}))))}();case"FILTERS_PAGE":return t();case"SEARCH_FILTERS_PAGE":return t("ec-store-block-filters-page");default:return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return""!=e&&(e=wp.element.createElement("h5",null,e)),wp.element.createElement("div",null,wp.element.createElement("div",{className:"ec-store-block-subheader"},__("Categories","ecwid-shopping-cart")),wp.element.createElement("div",{className:"ec-store-products"},wp.element.createElement("div",{className:"ec-store-product-block"},wp.element.createElement("div",{className:"ec-store-product ec-store-category-sneaker"})),wp.element.createElement("div",{className:"ec-store-product-block"},wp.element.createElement("div",{className:"ec-store-product ec-store-category-bag"})),wp.element.createElement("div",{className:"ec-store-product-block"},wp.element.createElement("div",{className:"ec-store-product ec-store-category-shirt"}))),wp.element.createElement("div",{className:"ec-store-block-subheader"},__("Featured Products","ecwid-shopping-cart")),wp.element.createElement("div",{className:"ec-store-products"},wp.element.createElement("div",{className:"ec-store-product-block"},wp.element.createElement("div",{className:"ec-store-product ec-store-product-g_sneaker"}),wp.element.createElement("div",{className:"ec-store-stub-sample"})),wp.element.createElement("div",{className:"ec-store-product-block"},wp.element.createElement("div",{className:"ec-store-product ec-store-product-p_shirt"}),wp.element.createElement("div",{className:"ec-store-stub-sample"})),wp.element.createElement("div",{className:"ec-store-product-block"},wp.element.createElement("div",{className:"ec-store-product ec-store-product-b_hat"}),wp.element.createElement("div",{className:"ec-store-stub-sample"}))))}()}}r.d(t,"a",function(){return n}),r.d(t,"c",function(){return c}),r.d(t,"b",function(){return i}),r.d(t,"d",function(){return l}),r.d(t,"e",function(){return s});var p=r(0),d=r(7),m=r(2),u=(r.n(m),"function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e}),w=function(){function e(e,t){var r=[],_n=!0,o=!1,n=void 0;try{for(var c,a=e[Symbol.iterator]();!(_n=(c=a.next()).done)&&(r.push(c.value),!t||r.length!==t);_n=!0);}catch(e){o=!0,n=e}finally{try{!_n&&a.return&&a.return()}finally{if(o)throw n}}return r}return function(t,r){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,r);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),g=wp.components,h=g.ButtonGroup,_=g.Button,b=g.BaseControl,E=g.ToolbarGroup,f=g.ToggleControl,v=g.RadioControl,y=g.Notice,__=wp.i18n.__},function(e,t){e.exports=wp.element},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=r(0);r(4),r(8),r(11),r(14),r(17),r(20),r(23),r(26),r(29),r(32);wp.blocks.updateCategory("ec-store",{icon:o.a.ecwid})},function(e,t,r){"use strict";var o=r(5),n=(r.n(o),r(6)),c=(r.n(n),r(0)),a=r(1),l=r(2),i=(r.n(l),function(){function e(e,t){var r=[],_n=!0,o=!1,n=void 0;try{for(var c,a=e[Symbol.iterator]();!(_n=(c=a.next()).done)&&(r.push(c.value),!t||r.length!==t);_n=!0);}catch(e){o=!0,n=e}finally{try{!_n&&a.return&&a.return()}finally{if(o)throw n}}return r}return function(t,r){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,r);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}()),s=wp.i18n,__=s.__,p=(s._x,wp.blocks.registerBlockType),d=wp.blockEditor.InspectorControls,m=wp.components,u=m.PanelBody,w=m.BaseControl,g=m.Modal,h=m.Button,_=EcwidGutenbergParams.blockParams["ecwid/store-block"];p("ecwid/store-block",{title:__("Store Home Page","ecwid-shopping-cart"),icon:c.a.store,category:"ec-store",attributes:_.attributes,description:__("Add storefront (product listing)","ecwid-shopping-cart"),supports:{customClassName:!1,className:!1,html:!1,multiple:!1,inserter:!EcwidGutenbergParams.isWidgetsScreen},example:{},edit:function(e){function t(e,t){return wp.element.createElement(w,{label:e},wp.element.createElement("div",{dangerouslySetInnerHTML:{__html:t}}))}if(Object.keys(e.attributes).length<=1)for(var r in _.attributes)_.attributes.hasOwnProperty(r)&&(e.attributes[r]=_.attributes[r].default);var o=e.attributes;e.setAttributes({widgets:""});var n=t("",__('To improve the look and feel of your store and manage your storefront appearance here, please enable the \u201cNext-gen look and feel of the product list on the storefront\u201d option in your store dashboard (\u201c<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings \u2192 What\u2019s New</a>\u201d).',"ecwid-shopping-cart")),s=t(__("Display cart icon","ecwid-shopping-cart"),_.customizeMinicartText),p=(t("",__('To improve the look and feel of your product page and manage its appearance here, please enable the \u201cNext-gen look and feel of the product page on the storefront\u201d option in your store dashboard (\u201c<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings \u2192 What\u2019s New</a>\u201d).',"ecwid-shopping-cart")),_.isNewProductList),m=_.isNewDetailsPage,b=_.isEnabledProductSubtitles,E=_.isLivePreviewEnabled,f=_.attributes.default_category_id&&_.attributes.default_category_id.values&&_.attributes.default_category_id.values.length>0,v=f&&"DEFAULT_CATEGORY_ID"==o.storefront_view;o.show_description_under_image?("TWO_COLUMNS_SIDEBAR_ON_THE_LEFT"==o.product_details_layout&&e.setAttributes({product_details_two_columns_with_left_sidebar_show_product_description_on_sidebar:!o.show_description_under_image}),"TWO_COLUMNS_SIDEBAR_ON_THE_RIGHT"==o.product_details_layout&&e.setAttributes({product_details_two_columns_with_right_sidebar_show_product_description_on_sidebar:!o.show_description_under_image})):e.setAttributes({product_details_two_columns_with_left_sidebar_show_product_description_on_sidebar:"",product_details_two_columns_with_right_sidebar_show_product_description_on_sidebar:""}),v||e.setAttributes({default_category_id:""}),f||e.setAttributes({storefront_view:"COLLAPSE_CATEGORIES"});var y=Object(a.a)(_.attributes,e),k=Object(l.useState)(!1),C=i(k,2),N=C[0],x=C[1],L=Object(l.useRef)([]),P=function(e){var t=L.current.length;null!==e&&(L.current[t]=e)},A=window;(function(){return null!=document.querySelector("[name=editor-canvas]")})()&&(A=function(){return document.querySelector("[name=editor-canvas]").contentWindow}());var S=function(e){E&&e&&(x(!1),L.current.map(function(e){e.classList.contains("is-opened")&&(e.querySelector("button").click(),e.classList.contains("ec-store-panelbody-product-details")&&("FILTERS_PAGE"==o.storefront_view?A.Ecwid.openPage("search"):A.Ecwid.openPage("category")))}))},T=function(e){E&&e&&(x(!0),S(e),A.Ecwid.openPage("product",{id:_.randomProductId}))},O=Object(l.useState)(!1),B=i(O,2),G=B[0],I=B[1],M=function(){return I(!0)},D=function(){return I(!1)};return"undefined"!=typeof A.Ecwid&&(A.Ecwid.OnPageLoaded.add(function(e){"PRODUCT"==e.type&&(_.randomProductId=e.productId)}),A.Ecwid.OnPageSwitch.add(function(e){if("PRODUCT"!=e.type&&"CATEGORY"!=e.type&&"SEARCH"!=e.type)return M(),!1})),[wp.element.createElement("div",null,wp.element.createElement(a.d,{props:e,attributes:o,icon:c.a.store,title:__("Store Home Page","ecwid-shopping-cart"),showDemoButton:_.isDemoStore,isLivePreviewEnabled:E,blockParams:_,isProductPage:N},wp.element.createElement(a.e,{state:o.storefront_view})),G&&wp.element.createElement(g,{title:"Edit Mode",onRequestClose:D},wp.element.createElement("p",null,__("The transition to this page is disabled in the editor, on a real storefront it works as it should.","ecwid-shopping-cart")),wp.element.createElement(h,{variant:"secondary",onClick:D},__("Continue Editing Page","ecwid-shopping-cart")))),wp.element.createElement(d,null,f&&wp.element.createElement(u,{title:__("Category List Appearance","ecwid-shopping-cart"),initialOpen:!1,ref:P,onToggle:S},p&&[y.select("product_list_category_title_behavior"),"SHOW_TEXT_ONLY"!==o.product_list_category_title_behavior&&[y.buttonGroup("product_list_category_image_size"),y.toolbar("product_list_category_image_aspect_ratio")]],!p&&n),wp.element.createElement(u,{title:__("Product List Appearance","ecwid-shopping-cart"),initialOpen:!1,ref:P,onToggle:S},p&&[y.toggle("product_list_show_product_images"),o.product_list_show_product_images&&[y.buttonGroup("product_list_image_size"),y.toolbar("product_list_image_aspect_ratio")],y.toolbar("product_list_product_info_layout"),y.select("product_list_title_behavior"),b&&y.select("product_list_subtitles_behavior"),y.select("product_list_price_behavior"),y.select("product_list_sku_behavior"),y.select("product_list_buybutton_behavior"),y.toggle("product_list_show_additional_image_on_hover"),y.toggle("product_list_show_frame")],!p&&n),wp.element.createElement(u,{title:__("Product Page Appearance","ecwid-shopping-cart"),initialOpen:!1,ref:P,onToggle:T,className:"ec-store-panelbody-product-details"},m&&[y.select("product_details_layout"),("TWO_COLUMNS_SIDEBAR_ON_THE_RIGHT"===o.product_details_layout||"TWO_COLUMNS_SIDEBAR_ON_THE_LEFT"===o.product_details_layout)&&y.toggle("show_description_under_image"),y.toolbar("product_details_gallery_layout"),Object(a.c)(__("Product sidebar content","ecwid-shopping-cart")),y.toggle("product_details_show_product_name"),b&&y.toggle("product_details_show_subtitle"),y.toggle("product_details_show_breadcrumbs"),y.toggle("product_details_show_product_sku"),y.toggle("product_details_show_product_price"),y.toggle("product_details_show_qty"),y.toggle("product_details_show_weight"),y.toggle("product_details_show_number_of_items_in_stock"),y.toggle("product_details_show_in_stock_label"),y.toggle("product_details_show_wholesale_prices"),y.toggle("product_details_show_share_buttons"),y.toggle("product_details_show_navigation_arrows"),y.toggle("product_details_show_product_photo_zoom")],!m&&n),f&&wp.element.createElement(u,{title:__("Store Front Page","ecwid-shopping-cart"),initialOpen:!1,ref:P,onToggle:S},y.radioButtonWithDescription("storefront_view",E)),wp.element.createElement(u,{title:__("Store Navigation","ecwid-shopping-cart"),initialOpen:!1,ref:P,onToggle:S},f&&y.toggle("show_categories"),y.toggle("show_search"),y.toggle("show_breadcrumbs"),p&&y.toggle("show_footer_menu"),y.toggle("show_signin_link"),y.toggle("product_list_show_sort_viewas_options"),s),wp.element.createElement(u,{title:__("Color settings","ecwid-shopping-cart"),initialOpen:!1,ref:P,onToggle:S},y.color("chameleon_color_button"),y.color("chameleon_color_foreground"),y.color("chameleon_color_price"),y.color("chameleon_color_link"),y.color("chameleon_color_background")))]},save:function(e){var t=["productbrowser"];e.attributes.show_categories&&(t[t.length]="categories"),e.attributes.show_search&&(t[t.length]="search");var r={widgets:t.join(" "),default_category_id:"undefined"!==typeof e.attributes.default_category_id?e.attributes.default_category_id:""};return new wp.shortcode({tag:_.shortcodeName,attrs:r,type:"single"}).string()},deprecated:[{attributes:{widgets:{type:"string"},categories_per_row:{type:"integer"},grid:{type:"string"},list:{type:"integer"},table:{type:"integer"},default_category_id:{type:"integer"},default_product_id:{type:"integer"},category_view:{type:"string"},search_view:{type:"string"},minicart_layout:{type:"string"}},save:function(e){return null}},{attributes:{widgets:{type:"string",default:"productbrowser"},default_category_id:{type:"integer",default:0}},migrate:function(e){return{widgets:e.widgets,default_category_id:e.default_category_id}},save:function(e){for(var t={},r=["widgets","default_category_id"],o=0;o<r.length;o++)t[r[o]]=e.attributes[r[o]];return t.default_product_id=0,new wp.shortcode({tag:_.shortcodeName,attrs:t,type:"single"}).string()}},{save:function(e){return"[ecwid]"}},{save:function(e){return'[ecwid widgets="productbrowser" default_category_id="0" default_product_id="0"]'}},{save:function(e){return'[ecwid widgets="productbrowser" default_category_id="0"]'}}],transforms:{from:[{type:"shortcode",tag:["ecwid","ec_store"],attributes:{default_category_id:{type:"integer",shortcode:function(e){return e.default_category_id}},show_categories:{type:"boolean",shortcode:function(e){return-1!==e.named.widgets.indexOf("categories")}},show_search:{type:"boolean",shortcode:function(e){return-1!==e.named.widgets.indexOf("search")}}},priority:10}]}})},function(e,t){e.exports=".wp-block-cgb-block-my-block{background:#ff4500;border:0.2rem solid #292929;color:#292929;margin:0 auto;max-width:740px;padding:2rem}\n"},function(e,t){},function(e,t,r){"use strict";function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e){function t(e){c(function(t){return{manual:"manual",color:e}}),d.setAttributes(o({},s,e))}var r=e.manual,n=e.color,c=e.setState,s=arguments[0].name,d=arguments[0].props,m=arguments[0].title;"undefined"==typeof d.attributes[s]&&(d.attributes[s]=!1);var u=null===r&&!1!==d.attributes[s]&&null!==d.attributes[s]&&""!==d.attributes[s]||"manual"===r;u?null!==n&&d.setAttributes(o({},s,n)):d.setAttributes(o({},s,null));var w=d.attributes[s]||"",g=wp.element.createElement("span",null,m,null!==w&&wp.element.createElement(i,{colorValue:d.attributes[s]}));return wp.element.createElement(a,{label:g,className:"ec-store-color-picker"},wp.element.createElement("select",{onChange:function(e){return c(function(e){return{manual:event.target.value,color:e.color}})}},wp.element.createElement("option",{value:"auto",selected:!u},__("Detect automatically","ecwid-shopping-cart")),wp.element.createElement("option",{value:"manual",selected:u},__("Set manually","ecwid-shopping-cart"))),u&&wp.element.createElement(l,{value:w,colors:p,onChange:t}))}r.d(t,"a",function(){return d});var c=wp.components,a=c.BaseControl,l=c.ColorPalette,i=c.ColorIndicator,s=wp.compose.withState,__=wp.i18n.__,p=[{name:__("Pale pink"),slug:"pale-pink",color:"#f78da7"},{name:__("Vivid red"),slug:"vivid-red",color:"#cf2e2e"},{name:__("Luminous vivid orange"),slug:"luminous-vivid-orange",color:"#ff6900"},{name:__("Luminous vivid amber"),slug:"luminous-vivid-amber",color:"#fcb900"},{name:__("Light green cyan"),slug:"light-green-cyan",color:"#7bdcb5"},{name:__("Vivid green cyan"),slug:"vivid-green-cyan",color:"#00d084"},{name:__("Pale cyan blue"),slug:"pale-cyan-blue",color:"#8ed1fc"},{name:__("Vivid cyan blue"),slug:"vivid-cyan-blue",color:"#0693e3"},{name:__("Very light gray"),slug:"very-light-gray",color:"#eeeeee"},{name:__("Cyan bluish gray"),slug:"cyan-bluish-gray",color:"#abb8c3"},{name:__("Very dark gray"),slug:"very-dark-gray",color:"#313131"}],d=s({manual:null,color:null})(n)},function(e,t,r){"use strict";function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var n=r(9),c=(r.n(n),r(10)),a=(r.n(c),r(0)),l=r(1),i=wp.i18n,__=i.__,_x=i._x,s=wp.blocks.registerBlockType,p=wp.blockEditor.InspectorControls,d=wp.components,m=d.PanelBody,u=d.ToggleControl,w=EcwidGutenbergParams.blockParams["ecwid/product-block"];s("ecwid/product-block",{title:__("Product Card Small","ecwid-shopping-cart"),icon:a.a.product,category:"ec-store",attributes:{id:{type:"integer"},show_picture:{type:"boolean",default:!0},show_title:{type:"boolean",default:!0},show_price:{type:"boolean",default:!0},show_options:{type:"boolean",default:!0},show_qty:{type:"boolean",default:!1},show_addtobag:{type:"boolean",default:!0},show_price_on_button:{type:"boolean",default:!0},show_border:{type:"boolean",default:!0},center_align:{type:"boolean",default:!0}},description:__("Display product with a buy button","ecwid-shopping-cart"),alignWide:!1,supports:{customClassName:!1,className:!1,html:!1,align:!0,inserter:EcwidGutenbergParams.isApiAvailable,isPrivate:!EcwidGutenbergParams.isApiAvailable},example:{},edit:function(e){function t(e,t,r){return wp.element.createElement(u,{label:r,checked:e.attributes[t],onChange:function(){return e.setAttributes(o({},t,!e.attributes[t]))}})}function r(e){ecwid_open_product_popup({saveCallback:c,props:e})}var n=e.attributes,c=function(e){var t={id:e.newProps.product.id};EcwidGutenbergParams.products[e.newProps.product.id]={name:e.newProps.product.name,imageUrl:e.newProps.product.thumb},e.originalProps.setAttributes(t)};return[wp.element.createElement(l.d,{props:e,attributes:n,icon:a.a.product,title:__("Product Card Small","ecwid-shopping-cart"),showDemoButton:w.isDemoStore},wp.element.createElement("div",{className:"ec-store-products"},wp.element.createElement("div",{className:"ec-store-product-block ec-store-product-block-small"},EcwidGutenbergParams.products&&n.id&&EcwidGutenbergParams.products[n.id]&&wp.element.createElement("div",{className:"ec-store-block-image"},wp.element.createElement("img",{src:EcwidGutenbergParams.products[n.id].imageUrl})),!n.id&&wp.element.createElement("div",{className:"ec-store-product ec-store-product-y_sneaker"}),!n.id&&wp.element.createElement("div",{className:"ec-store-stub-sample"}),!n.id&&wp.element.createElement("div",null,wp.element.createElement("button",{className:"button ec-store-block-button",onClick:function(){var t={saveCallback:c,props:e};ecwid_open_product_popup(t)}},EcwidGutenbergParams.chooseProduct)),EcwidGutenbergParams.products&&n.id&&EcwidGutenbergParams.products[n.id]&&wp.element.createElement("div",{className:"ec-store-product-title"},EcwidGutenbergParams.products[n.id].name)))),wp.element.createElement(p,null,n.id&&wp.element.createElement(m,null,wp.element.createElement("div",{className:"ec-store-inspector-row"},wp.element.createElement("label",{className:"ec-store-inspector-subheader"},__("Displayed product","ecwid-shopping-cart"))),wp.element.createElement("div",{className:"ec-store-inspector-row"},EcwidGutenbergParams.products&&EcwidGutenbergParams.products[n.id]&&wp.element.createElement("label",null,EcwidGutenbergParams.products[n.id].name),wp.element.createElement("button",{className:"button",onClick:function(){return r(e)}},__("Change","ecwid-shopping-cart")))),!n.id&&wp.element.createElement(m,null,wp.element.createElement("button",{className:"button",onClick:function(){return r(e)}},__("Choose product","ecwid-shopping-cart"))),wp.element.createElement(m,{title:_x("Content","gutenberg-product-block","ecwid-shopping-cart"),initialOpen:!1},t(e,"show_picture",__("Picture","ecwid-shopping-cart")),t(e,"show_title",__("Title","ecwid-shopping-cart")),t(e,"show_price",__("Price","ecwid-shopping-cart")),t(e,"show_options",__("Options","ecwid-shopping-cart")),t(e,"show_qty",__("Quantity","ecwid-shopping-cart")),t(e,"show_addtobag",__("\xabBuy now\xbb button","ecwid-shopping-cart"))),wp.element.createElement(m,{title:__("Appearance","ecwid-shopping-cart"),initialOpen:!1},t(e,"show_price_on_button",__("Show price inside the \xabBuy now\xbb button","ecwid-shopping-cart")),t(e,"show_border",__("Add border","ecwid-shopping-cart")),t(e,"center_align",__("Center align on a page","ecwid-shopping-cart"))))]},save:function(e){return!1}})},function(e,t){e.exports=".wp-block-cgb-block-my-block2{background:#ff4500;border:0.2rem solid #292929;color:#292929;margin:0 auto;max-width:740px;padding:2rem}\n"},function(e,t){},function(e,t,r){"use strict";function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var n=r(12),c=(r.n(n),r(13)),a=(r.n(c),r(0)),l=r(1),__=wp.i18n.__,i=wp.blocks.registerBlockType,s=wp.blockEditor.InspectorControls,p=wp.components,d=p.PanelBody,m=p.ToggleControl;i("ec-store/buynow",{title:__("Buy Now Button","ecwid-shopping-cart"),icon:a.a.button,category:"ec-store",attributes:{id:{type:"integer"},show_price_on_button:{type:"boolean",default:!0},center_align:{type:"boolean",default:!0}},description:__("Display a buy button","ecwid-shopping-cart"),supports:{customClassName:!1,className:!1,html:!1,align:!0,alignWide:!1,inserter:EcwidGutenbergParams.isApiAvailable,isPrivate:!EcwidGutenbergParams.isApiAvailable},example:{},edit:function(e){function t(e,t,r){return wp.element.createElement(m,{label:r,checked:e.attributes[t],onChange:function(){return e.setAttributes(o({},t,!e.attributes[t]))}})}function r(e){ecwid_open_product_popup({saveCallback:c,props:e})}var n=e.attributes,c=function(e){var t={id:e.newProps.id};EcwidGutenbergParams.products[e.newProps.id]={name:e.newProps.product.name,imageUrl:e.newProps.product.thumb},e.originalProps.setAttributes(t)};return[wp.element.createElement(l.d,{props:e,attributes:n,icon:a.a.button,title:__("Buy Now Button","ecwid-shopping-cart")},wp.element.createElement("div",{className:"ec-store-block-cart-page"},wp.element.createElement(l.b,{src:"buy-now-preview.png",className:"ec-store-block-buynow-preview"})),!n.id&&wp.element.createElement("div",{className:"button-container"},wp.element.createElement("button",{className:"button ec-store-block-button",onClick:function(){var t={saveCallback:c,props:e};ecwid_open_product_popup(t)}},EcwidGutenbergParams.chooseProduct))),wp.element.createElement(s,null,n.id&&wp.element.createElement(d,null,wp.element.createElement("div",{className:"ec-store-inspector-row"},wp.element.createElement("label",{className:"ec-store-inspector-subheader"},__("Linked product","ecwid-shopping-cart"))),wp.element.createElement("div",{className:"ec-store-inspector-row"},EcwidGutenbergParams.products&&EcwidGutenbergParams.products[n.id]&&wp.element.createElement("label",null,EcwidGutenbergParams.products[n.id].name),wp.element.createElement("button",{className:"button",onClick:function(){return r(e)}},__("Change","ecwid-shopping-cart")))),!n.id&&wp.element.createElement(d,null,wp.element.createElement("button",{className:"button",onClick:function(){return r(e)}},__("Choose product","ecwid-shopping-cart"))),wp.element.createElement(d,{title:__("Appearance","ecwid-shopping-cart"),initialOpen:!1},t(e,"show_price_on_button",__("Show price inside the \xabBuy now\xbb button","ecwid-shopping-cart")),t(e,"center_align",__("Center align on a page","ecwid-shopping-cart"))))]},save:function(e){return!1}})},function(e,t){e.exports=".wp-block-cgb-block-my-block2{background:#ff4500;border:0.2rem solid #292929;color:#292929;margin:0 auto;max-width:740px;padding:2rem}\n"},function(e,t){},function(e,t,r){"use strict";var o=r(15),n=(r.n(o),r(16)),c=(r.n(n),r(0)),a=wp.i18n,__=a.__;a._x;(0,wp.blocks.registerBlockType)("ec-store/search",{title:__("Product Search Box","ecwid-shopping-cart"),icon:c.a.search,category:"ec-store",description:__("Display search box","ecwid-shopping-cart"),supports:{customClassName:!1,className:!1,html:!1,inserter:EcwidGutenbergParams.isApiAvailable,isPrivate:!EcwidGutenbergParams.isApiAvailable},example:{},edit:function(e){return e.attributes,[wp.element.createElement("div",{className:"ec-store-block ec-store-block-search"},wp.element.createElement("div",{class:"image"}))]},save:function(e){return!1}})},function(e,t){e.exports=""},function(e,t){},function(e,t,r){"use strict";var o=r(18),n=(r.n(o),r(19)),c=(r.n(n),r(0)),a=r(1);if(!EcwidGutenbergParams.isDemoStore){var l=wp.blockEditor.InspectorControls,i=wp.components.PanelBody,s=wp.i18n,__=s.__,p=(s._x,wp.blocks.registerBlockType),d=EcwidGutenbergParams.blockParams["ec-store/categories"];p("ec-store/categories",{title:__("Store Categories Menu","ecwid-shopping-cart"),icon:c.a.categories,category:"ec-store",description:__("Display categories navigation bar","ecwid-shopping-cart"),supports:{customClassName:!1,className:!1,html:!1,multiple:!1,inserter:EcwidGutenbergParams.isApiAvailable,isPrivate:!EcwidGutenbergParams.isApiAvailable},example:{},edit:function(e){var t=(e.attributes,wp.element.createElement("div",{className:"ec-store-block ec-store-block-categories"},wp.element.createElement("div",{className:"ec-store-block-header"},wp.element.createElement("div",null,__("Categories","ecwid-shopping-cart")),wp.element.createElement(a.b,{src:"categories-menu-preview.png",className:"ec-store-categories-menu"})))),r=__('The block is hidden because you don\'t have categories in your store. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Add categories.</a>',"ecwid-shopping-cart");return[t,wp.element.createElement(l,null,wp.element.createElement(i,null,wp.element.createElement("div",{style:{height:"10px"}}),!d.has_categories&&wp.element.createElement("div",{dangerouslySetInnerHTML:{__html:r}})))]},save:function(e){return!1}})}},function(e,t){e.exports=""},function(e,t){},function(e,t,r){"use strict";var o=r(21),n=(r.n(o),r(22)),c=(r.n(n),r(0)),a=r(1),__=wp.i18n.__,l=wp.blockEditor.InspectorControls,i=wp.components.PanelBody;(0,wp.blocks.registerBlockType)("ec-store/minicart",{title:__("Shopping Cart Icon","ecwid-shopping-cart"),icon:c.a.cart,category:"ec-store",description:__("Display shopping bag link and summary","ecwid-shopping-cart"),supports:{customClassName:!1,className:!1,html:!1,inserter:EcwidGutenbergParams.isApiAvailable,isPrivate:!EcwidGutenbergParams.isApiAvailable,align:!0,alignWide:!1},attributes:EcwidGutenbergParams.minicartAttributes,example:{},edit:function(e){function t(e,t,o){var n=EcwidGutenbergParams.minicartAttributes[t];return"undefined"===typeof o&&(o=n.type),r.select(t)}var r=(e.attributes,Object(a.a)(EcwidGutenbergParams.minicartAttributes,e));return[wp.element.createElement("div",{className:"ec-store-block ec-store-block-minicart"},wp.element.createElement("div",{className:"image"})),wp.element.createElement(l,null,wp.element.createElement(i,{title:__("Appearance","ecwid-shopping-cart"),initialOpen:!0},t(e,"layout","select"),t(e,"icon","select"),t(e,"fixed_shape","select")))]},save:function(e){return!1}})},function(e,t){e.exports=""},function(e,t){},function(e,t,r){"use strict";var o=r(24),n=(r.n(o),r(25)),c=(r.n(n),r(0)),a=r(1),l=wp.i18n,__=l.__,i=(l._x,c.a,wp.blocks.registerBlockType),s=wp.blockEditor.InspectorControls,p=wp.components,d=p.PanelBody,m=p.BaseControl,u=EcwidGutenbergParams.blockParams["ec-store/category-page"];i("ec-store/category-page",{title:__("Store Category Page","ecwid-shopping-cart"),icon:c.a.category,category:"ec-store",attributes:EcwidGutenbergStoreBlockParams.attributes,description:__("Display category page","ecwid-shopping-cart"),supports:{customClassName:!1,className:!1,html:!1,multiple:!1,inserter:!EcwidGutenbergParams.isWidgetsScreen},example:{},edit:function(e){function t(e,t){return wp.element.createElement(m,{label:e},wp.element.createElement("div",{dangerouslySetInnerHTML:{__html:t}}))}var r=e.attributes;e.setAttributes({widgets:""});var o=wp.element.createElement(a.d,{props:e,attributes:r,icon:c.a.category,title:__("Store Category Page","ecwid-shopping-cart"),showDemoButton:u.isDemoStore},wp.element.createElement("div",{className:"ec-store-products"},wp.element.createElement("div",{className:"ec-store-product-block"},wp.element.createElement("div",{className:"ec-store-product ec-store-category-sneaker"})),wp.element.createElement("div",{className:"ec-store-product-block"},wp.element.createElement("div",{className:"ec-store-product ec-store-category-bag"})),wp.element.createElement("div",{className:"ec-store-product-block"},wp.element.createElement("div",{className:"ec-store-product ec-store-category-shirt"}))),wp.element.createElement("div",{className:"ec-store-products"},wp.element.createElement("div",{className:"ec-store-product-block"},wp.element.createElement("div",{className:"ec-store-product ec-store-category-hat"})),wp.element.createElement("div",{className:"ec-store-product-block"},wp.element.createElement("div",{className:"ec-store-product ec-store-category-watch"})),wp.element.createElement("div",{className:"ec-store-product-block"},wp.element.createElement("div",{className:"ec-store-product ec-store-category-glasses"})))),n=t("",__('To improve the look and feel of your store and manage your storefront appearance here, please enable the \u201cNext-gen look and feel of the product list on the storefront\u201d option in your store dashboard (\u201c<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings \u2192 What\u2019s New</a>\u201d).',"ecwid-shopping-cart")),l=t(__("Display cart icon","ecwid-shopping-cart"),u.customizeMinicartText),i=u.isNewProductList,p=u.isNewDetailsPage,w=Object(a.a)(u.attributes,e);return[o,wp.element.createElement(s,null,wp.element.createElement(d,null,!EcwidGutenbergParams.hasCategories&&wp.element.createElement("div",{style:{margin:"10px"}},wp.element.createElement("a",{href:"admin.php?page=ec-store-admin-category-id-0-mode-edit",target:"_blank",class:"button button-primary"},__("Add categories","ecwid-shopping-cart"))),EcwidGutenbergParams.hasCategories&&[!e.attributes.default_category_id&&w.select("default_category_id",__("Select category","ecwid-shopping-cart")),e.attributes.default_category_id&&w.select("default_category_id",__("Selected category","ecwid-shopping-cart"))]),wp.element.createElement(d,{title:__("Category List Appearance","ecwid-shopping-cart"),initialOpen:!1},i&&[w.select("product_list_category_title_behavior"),"SHOW_TEXT_ONLY"!==r.product_list_category_title_behavior&&[w.buttonGroup("product_list_category_image_size"),w.toolbar("product_list_category_image_aspect_ratio")]],!i&&n),wp.element.createElement(d,{title:__("Product List Appearance","ecwid-shopping-cart"),initialOpen:!1},i&&[w.toggle("product_list_show_product_images"),r.product_list_show_product_images&&[w.buttonGroup("product_list_image_size"),w.toolbar("product_list_image_aspect_ratio")],w.toolbar("product_list_product_info_layout"),w.select("product_list_title_behavior"),w.select("product_list_price_behavior"),w.select("product_list_sku_behavior"),w.select("product_list_buybutton_behavior"),w.toggle("product_list_show_additional_image_on_hover"),w.toggle("product_list_show_frame")],!i&&n),wp.element.createElement(d,{title:__("Product Page Appearance","ecwid-shopping-cart"),initialOpen:!1},p&&[w.select("product_details_layout"),("TWO_COLUMNS_SIDEBAR_ON_THE_RIGHT"===r.product_details_layout||"TWO_COLUMNS_SIDEBAR_ON_THE_LEFT"===r.product_details_layout)&&w.toggle("show_description_under_image"),w.toolbar("product_details_gallery_layout"),Object(a.c)(__("Product sidebar content","ecwid-shopping-cart")),w.toggle("product_details_show_product_name"),w.toggle("product_details_show_breadcrumbs"),w.toggle("product_details_show_product_sku"),w.toggle("product_details_show_product_price"),w.toggle("product_details_show_qty"),w.toggle("product_details_show_weight"),w.toggle("product_details_show_number_of_items_in_stock"),w.toggle("product_details_show_in_stock_label"),w.toggle("product_details_show_wholesale_prices"),w.toggle("product_details_show_share_buttons"),w.toggle("product_details_show_navigation_arrows"),w.toggle("product_details_show_product_photo_zoom")],!p&&n),wp.element.createElement(d,{title:__("Store Navigation","ecwid-shopping-cart"),initialOpen:!1},w.toggle("show_categories"),w.toggle("show_search"),w.toggle("show_breadcrumbs"),i&&w.toggle("show_footer_menu"),w.toggle("show_signin_link"),w.toggle("product_list_show_sort_viewas_options"),l),wp.element.createElement(d,{title:__("Color settings","ecwid-shopping-cart"),initialOpen:!1},w.color("chameleon_color_button"),w.color("chameleon_color_foreground"),w.color("chameleon_color_price"),w.color("chameleon_color_link"),w.color("chameleon_color_background")))]},save:function(e){return null}})},function(e,t){e.exports=""},function(e,t){},function(e,t,r){"use strict";var o=r(27),n=(r.n(o),r(28)),c=(r.n(n),r(0)),a=r(1),__=wp.i18n.__,l=wp.blocks.registerBlockType,i=wp.blockEditor.InspectorControls,s=wp.components,p=s.PanelBody,d=s.BaseControl,m=EcwidGutenbergParams.blockParams["ec-store/product-page"];l("ec-store/product-page",{title:__("Product Card Large","ecwid-shopping-cart"),icon:c.a.product,category:"ec-store",attributes:m.attributes,description:__("Display product page with description and a buy button","ecwid-shopping-cart"),supports:{customClassName:!1,className:!1,html:!1,multiple:!1,inserter:!EcwidGutenbergParams.isWidgetsScreen},example:{},edit:function(e){function t(e){ecwid_open_product_popup({saveCallback:n,props:e})}function r(e,t){return wp.element.createElement(d,{label:e},wp.element.createElement("div",{dangerouslySetInnerHTML:{__html:t}}))}var o=e.attributes,n=function(e){var t={default_product_id:e.newProps.product.id};EcwidGutenbergParams.products[e.newProps.product.id]={name:e.newProps.product.name,imageUrl:e.newProps.product.thumb},e.originalProps.setAttributes(t)},l=wp.element.createElement(a.d,{props:e,attributes:o,icon:c.a.product,title:__("Product Card Large","ecwid-shopping-cart")},wp.element.createElement(a.b,{src:"product-page-preview.png",className:"ec-store-product-page-preview"}),!o.default_product_id&&wp.element.createElement("div",{className:"button-container"},wp.element.createElement("button",{className:"button ec-store-block-button",onClick:function(){var t={saveCallback:n,props:e};ecwid_open_product_popup(t)}},EcwidGutenbergParams.chooseProduct))),s=r("",__('To improve the look and feel of your store and manage your storefront appearance here, please enable the \u201cNext-gen look and feel of the product list on the storefront\u201d option in your store dashboard (\u201c<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings \u2192 What\u2019s New</a>\u201d).',"ecwid-shopping-cart")),u=(r("",__('To improve the look and feel of your product page and manage your its appearance here, please enable the \u201cNext-gen look and feel of the product page on the storefront\u201d option in your store dashboard (\u201c<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings \u2192 What\u2019s New</a>\u201d).',"ecwid-shopping-cart")),m.isNewDetailsPage),w=Object(a.a)(m.attributes,e);return[l,wp.element.createElement(i,null,o.default_product_id>0&&wp.element.createElement(p,null,wp.element.createElement("div",{className:"ec-store-inspector-row"},wp.element.createElement("label",{className:"ec-store-inspector-subheader"},__("Linked product","ecwid-shopping-cart"))),wp.element.createElement("div",{className:"ec-store-inspector-row"},EcwidGutenbergParams.products&&EcwidGutenbergParams.products[o.default_product_id]&&wp.element.createElement("label",null,EcwidGutenbergParams.products[o.default_product_id].name),wp.element.createElement("button",{className:"button",onClick:function(){return t(e)}},__("Change","ecwid-shopping-cart")))),!o.default_product_id&&wp.element.createElement(p,null,wp.element.createElement("button",{className:"button",onClick:function(){return t(e)}},__("Choose product","ecwid-shopping-cart"))),wp.element.createElement(p,{title:__("Appearance","ecwid-shopping-cart"),initialOpen:!1},u&&[w.select("product_details_layout"),("TWO_COLUMNS_SIDEBAR_ON_THE_RIGHT"===o.product_details_layout||"TWO_COLUMNS_SIDEBAR_ON_THE_LEFT"===o.product_details_layout)&&w.toggle("show_description_under_image"),w.toolbar("product_details_gallery_layout"),Object(a.c)(__("Product sidebar content","ecwid-shopping-cart")),w.toggle("product_details_show_product_name"),w.toggle("product_details_show_breadcrumbs"),w.toggle("product_details_show_product_sku"),w.toggle("product_details_show_product_price"),w.toggle("product_details_show_qty"),w.toggle("product_details_show_weight"),w.toggle("product_details_show_number_of_items_in_stock"),w.toggle("product_details_show_in_stock_label"),w.toggle("product_details_show_wholesale_prices"),w.toggle("product_details_show_share_buttons"),w.toggle("product_details_show_navigation_arrows"),w.toggle("product_details_show_product_photo_zoom")],!u&&s),wp.element.createElement(p,{title:__("Color settings","ecwid-shopping-cart"),initialOpen:!1},w.color("chameleon_color_button"),w.color("chameleon_color_foreground"),w.color("chameleon_color_price"),w.color("chameleon_color_link"),w.color("chameleon_color_background")))]},save:function(e){return null}})},function(e,t){e.exports=""},function(e,t){},function(e,t,r){"use strict";var o=r(30),n=(r.n(o),r(31)),c=(r.n(n),r(0)),a=r(1),__=wp.i18n.__,l=wp.blocks.registerBlockType,i=wp.blockEditor.InspectorControls,s=wp.components,p=s.PanelBody,d=s.BaseControl,m=EcwidGutenbergParams.blockParams["ec-store/filters-page"];l("ec-store/filters-page",{title:__("Product Search and filters","ecwid-shopping-cart"),icon:c.a.filters,category:"ec-store",attributes:m.attributes,description:__("Display search page with filters on a side","ecwid-shopping-cart"),supports:{customClassName:!1,className:!1,html:!1,multiple:!1,inserter:!EcwidGutenbergParams.isWidgetsScreen},example:{},edit:function(e){function t(e,t){return wp.element.createElement(d,{label:e},wp.element.createElement("div",{dangerouslySetInnerHTML:{__html:t}}))}var r=e.attributes,o=wp.element.createElement(a.d,{props:e,attributes:r,icon:c.a.filters,title:__("Search and Filters","ecwid-shopping-cart")},wp.element.createElement(a.e,{state:"SEARCH_FILTERS_PAGE"})),n=t("",__('You can enable filters in the store settings: (\u201c<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Settings \u2192 Product Filters</a>\u201d).',"ecwid-shopping-cart")),l=t("",__('To improve the look and feel of your store and manage your storefront appearance here, please enable the \u201cNext-gen look and feel of the product list on the storefront\u201d option in your store dashboard (\u201c<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings \u2192 What\u2019s New</a>\u201d).',"ecwid-shopping-cart")),s=m.isNewProductList,u=Object(a.a)(m.attributes,e);return[o,wp.element.createElement(i,null,wp.element.createElement(p,{title:__("Filters","ecwid-shopping-cart"),initialOpen:!1},!m.filtersEnabled&&n,m.filtersEnabled&&[u.select("product_filters_position_search_page")]),wp.element.createElement(p,{title:__("Product List Appearance","ecwid-shopping-cart"),initialOpen:!1},s&&[u.toggle("product_list_show_product_images"),r.product_list_show_product_images&&[u.buttonGroup("product_list_image_size"),u.toolbar("product_list_image_aspect_ratio")],u.toolbar("product_list_product_info_layout"),u.select("product_list_title_behavior"),u.select("product_list_price_behavior"),u.select("product_list_sku_behavior"),u.select("product_list_buybutton_behavior"),u.toggle("product_list_show_additional_image_on_hover"),u.toggle("product_list_show_frame")],!s&&l),wp.element.createElement(p,{title:__("Store Navigation","ecwid-shopping-cart"),initialOpen:!1},u.toggle("show_categories"),u.toggle("show_breadcrumbs"),s&&u.toggle("show_footer_menu"),u.toggle("show_signin_link"),u.toggle("product_list_show_sort_viewas_options")),wp.element.createElement(p,{title:__("Color settings","ecwid-shopping-cart"),initialOpen:!1},u.color("chameleon_color_button"),u.color("chameleon_color_foreground"),u.color("chameleon_color_price"),u.color("chameleon_color_link"),u.color("chameleon_color_background")))]},save:function(e){return null}})},function(e,t){e.exports=""},function(e,t){},function(e,t,r){"use strict";var o=r(33),n=(r.n(o),r(34)),c=(r.n(n),r(0)),a=r(1),__=wp.i18n.__,l=wp.blocks.registerBlockType,i=(wp.components.BaseControl,EcwidGutenbergParams.blockParams["ec-store/cart-page"]);l("ec-store/cart-page",{title:__("Cart and Checkout","ecwid-shopping-cart"),icon:c.a.cartPage,category:"ec-store",attributes:i.attributes,description:__("Display shopping cart and checkout page","ecwid-shopping-cart"),supports:{customClassName:!1,className:!1,html:!1,multiple:!1,inserter:!EcwidGutenbergParams.isWidgetsScreen},example:{},edit:function(e){var t=e.attributes;return[wp.element.createElement(a.d,{props:e,attributes:t,icon:c.a.cartPage,title:__("Cart and Checkout","ecwid-shopping-cart")},wp.element.createElement("div",{className:"ec-store-block-cart-page"},wp.element.createElement(a.b,{src:"cart-page-preview.png"})))]},save:function(e){return null}})},function(e,t){e.exports=""},function(e,t){}]);�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/gutenberg/buynow.jsx���������������������������������������������������������0000644�����������������00000010345�15122273603�0015066 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������// Import CSS. import './style.scss'; import './editor.scss'; import {EcwidIcons} from '../icons.js'; if ( !EcwidGutenbergParams.isDemoStore ) { const { __, _x } = wp.i18n; // Import __() from wp.i18n const { BlockControls, registerBlockType, } = wp.blocks; const { InspectorControls, } = wp.editor; const { PanelBody, ToggleControl, } = wp.components; const { withState } = wp.compose; const { Fragment } = wp.element; registerBlockType( 'ec-store/buynow', { title: __( 'Buy Now Button', 'ecwid-shopping-cart' ), icon: EcwidIcons.button, category: 'ec-store', // Block category — Group blocks together based on common traits E.g. common, formatting, layout widgets, embed. attributes: { id: {type: 'integer'}, show_price_on_button: {type: 'boolean', default: true}, center_align: {type: 'boolean', default: true} }, description: __( 'Display a buy button', 'ecwid-shopping-cart' ), supports: { customClassName: false, className: false, html: false, align: true, alignWide: false, isPrivate: !EcwidGutenbergParams.isApiAvailable }, /** * The edit function describes the structure of your block in the context of the editor. * This represents what the editor will render when the block is used. * * The "edit" property must be a valid function. * * @link https://wordpress.org/gutenberg/handbook/block-api/block-edit-save/ */ edit: function( props ) { const { attributes } = props; const saveCallback = function( params ) { const attributes = { 'id': params.newProps.id }; EcwidGutenbergParams.products[params.newProps.id] = { name: params.newProps.product.name, imageUrl: params.newProps.product.thumb }; params.originalProps.setAttributes(attributes); }; const editor = <div className="ec-store-block ec-store-block-buynow"> { !attributes.id && <div> <div className="image"> </div> <div className="button-container"> <button className="button ec-store-block-button" onClick={ () => { var params = {'saveCallback':saveCallback, 'props': props}; ecwid_open_product_popup( params ); } }>{ EcwidGutenbergParams.chooseProduct }</button> </div> </div> } { attributes.id && <div className="image"> </div> } </div>; function buildToggle(props, name, label) { return <ToggleControl label={ label } checked={ props.attributes[name] } onChange={ () => props.setAttributes( { [name]: ! props.attributes[name] } ) } /> } function openEcwidProductPopup( props ) { ecwid_open_product_popup( { 'saveCallback': saveCallback, 'props': props } ); } return ([ editor, <InspectorControls> {attributes.id && <div> <div className="ec-store-inspector-row"> <label className="ec-store-inspector-subheader">{ __( 'Linked product', 'ecwid-shopping-cart' ) }</label> </div> <div className="ec-store-inspector-row"> { EcwidGutenbergParams.products && EcwidGutenbergParams.products[attributes.id] && <label>{ EcwidGutenbergParams.products[attributes.id].name }</label> } <button className="button" onClick={ () => openEcwidProductPopup( props ) }>{ __( 'Change', 'ecwid-shopping-cart' ) }</button> </div> </div> } {!attributes.id && <div className="ec-store-inspector-row"> <button className="button" onClick={ () => openEcwidProductPopup( props ) }>{ __( 'Choose product', 'ecwid-shopping-cart' ) }</button> </div> } <br /> <PanelBody title={ __( 'Appearance', 'ecwid-shopping-cart' ) } initialOpen={false}> { buildToggle( props, 'show_price_on_button', __( 'Show price inside the «Buy now» button', 'ecwid-shopping-cart' ) ) } { buildToggle( props, 'center_align', __( 'Center align on a page', 'ecwid-shopping-cart' ) ) } </PanelBody> </InspectorControls> ]); }, save: function( props ) { return false; }, } ); }�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/gutenberg/cart-page.jsx������������������������������������������������������0000644�����������������00000005435�15122273603�0015412 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������/** * BLOCK: my-block * * Registering a basic block with Gutenberg. * Simple block, renders and saves the same content without any interactivity. */ // Import CSS. import './style.scss'; import './editor.scss'; import {EcwidIcons} from '../icons.js'; import { EcwidControls, EcwidProductBrowserBlock, EcwidImage } from '../includes/controls.js'; const { __, _x } = wp.i18n; const { registerBlockType, } = wp.blocks; const { InspectorControls, } = wp.editor; const { PanelBody, PanelRow, ToggleControl, ButtonGroup, Button, BaseControl, Toolbar, ColorPalette, ColorIndicator } = wp.components; const { withState } = wp.compose; const blockName = 'ec-store/cart-page'; const blockParams = EcwidGutenbergParams.blockParams[blockName]; /** * Register: aa Gutenberg Block. * * Registers a new block provided a unique name and an object defining its * behavior. Once registered, the block is made editor as an option to any * editor interface where blocks are implemented. * * @link https://wordpress.org/gutenberg/handbook/block-api/ * @param {string} name Block name. * @param {Object} settings Block settings. * @return {?WPBlock} The block, if it has been successfully * registered; otherwise `undefined`. */ registerBlockType( 'ec-store/cart-page', { title: __( 'Cart and Checkout', 'ecwid-shopping-cart' ), // Block title. icon: EcwidIcons.cartPage, category: 'ec-store', // Block category — Group blocks together based on common traits E.g. common, formatting, layout widgets, embed. attributes: blockParams.attributes, description: __( 'Display shopping cart and checkout page', 'ecwid-shopping-cart' ), supports: { customClassName: false, className: false, html: false, multiple: false }, /** * The edit function describes the structure of your block in the context of the editor. * This represents what the editor will render when the block is used. * * The "edit" property must be a valid function. * * @link https://wordpress.org/gutenberg/handbook/block-api/block-edit-save/ */ edit: function( props ) { const { attributes } = props; const editor = <EcwidProductBrowserBlock icon={ EcwidIcons.cartPage } title={ __( 'Cart and Checkout', 'ecwid-shopping-cart' ) }> <EcwidImage src="cart-page-preview.png" /> </EcwidProductBrowserBlock>; function buildDangerousHTMLMessageWithTitle( title, message ) { return <BaseControl label={ title }><div dangerouslySetInnerHTML={{ __html: message }} /></BaseControl>; } return ([ editor ]); }, save: function( props ) { return null; } } ); �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/gutenberg/categories.jsx�����������������������������������������������������0000644�����������������00000005113�15122273603�0015665 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������// Import CSS. import './style.scss'; import './editor.scss'; import {EcwidIcons} from '../icons.js'; if ( !EcwidGutenbergParams.isDemoStore ) { const { InspectorControls } = wp.editor; const { __, _x } = wp.i18n; // Import __() from wp.i18n const { registerBlockType, } = wp.blocks; const blockName = 'ec-store/categories'; const blockParams = EcwidGutenbergParams.blockParams[blockName]; /** * Register: aa Gutenberg Block. * * Registers a new block provided a unique name and an object defining its * behavior. Once registered, the block is made editor as an option to any * editor interface where blocks are implemented. * * @link https://wordpress.org/gutenberg/handbook/block-api/ * @param {string} name Block name. * @param {Object} settings Block settings. * @return {?WPBlock} The block, if it has been successfully * registered; otherwise `undefined`. */ registerBlockType( 'ec-store/categories', { title: __( 'Store Categories Menu', 'ecwid-shopping-cart' ), icon: EcwidIcons.categories, category: 'ec-store', // Block category — Group blocks together based on common traits E.g. common, formatting, layout widgets, embed. description: __( 'Display categories navigation bar', 'ecwid-shopping-cart' ), supports: { customClassName: false, className: false, html: false, isPrivate: !EcwidGutenbergParams.isApiAvailable }, /** * The edit function describes the structure of your block in the context of the editor. * This represents what the editor will render when the block is used. * * The "edit" property must be a valid function. * * @link https://wordpress.org/gutenberg/handbook/block-api/block-edit-save/ */ edit: function( props ) { const { attributes } = props; const editor = <div className="ec-store-block ec-store-block-categories"> <div className="ec-store-block-header"> { EcwidIcons.categories } { __( 'Categories', 'ecwid-shopping-cart' ) } </div> </div>; const message = __( 'The block is hidden because you don\'t have categories in your store. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Add categories.</a>', 'ecwid-shopping-cart' ); return ([ editor, <InspectorControls> <div style={{ height: '10px' }}></div> { !blockParams.has_categories && <div dangerouslySetInnerHTML={{__html: message}}/> } </InspectorControls> ]); }, save: function( props ) { return false; }, } ); }�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/gutenberg/category-page.jsx��������������������������������������������������0000644�����������������00000023035�15122273603�0016272 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������/** * BLOCK: my-block * * Registering a basic block with Gutenberg. * Simple block, renders and saves the same content without any interactivity. */ // Import CSS. import './style.scss'; import './editor.scss'; import {EcwidIcons} from '../icons.js'; import { EcwidControls, EcwidInspectorSubheader, EcwidProductBrowserBlock } from '../includes/controls.js'; const { __, _x } = wp.i18n; // Import __() from wp.i18n const ecwidIcons = EcwidIcons; const { registerBlockType, } = wp.blocks; const { InspectorControls, } = wp.editor; const { PanelBody, BaseControl, } = wp.components; const blockName = 'ec-store/category-page'; const blockParams = EcwidGutenbergParams.blockParams[blockName]; /** * Register: aa Gutenberg Block. * * Registers a new block provided a unique name and an object defining its * behavior. Once registered, the block is made editor as an option to any * editor interface where blocks are implemented. * * @link https://wordpress.org/gutenberg/handbook/block-api/ * @param {string} name Block name. * @param {Object} settings Block settings. * @return {?WPBlock} The block, if it has been successfully * registered; otherwise `undefined`. */ registerBlockType( 'ec-store/category-page', { title: __( 'Store Category Page', 'ecwid-shopping-cart' ), // Block title. icon: EcwidIcons.category, category: 'ec-store', // Block category — Group blocks together based on common traits E.g. common, formatting, layout widgets, embed. attributes: EcwidGutenbergStoreBlockParams.attributes, description: __( 'Display category page', 'ecwid-shopping-cart' ), supports: { customClassName: false, className: false, html: false, multiple: false }, /** * The edit function describes the structure of your block in the context of the editor. * This represents what the editor will render when the block is used. * * The "edit" property must be a valid function. * * @link https://wordpress.org/gutenberg/handbook/block-api/block-edit-save/ */ edit: function( props ) { const { attributes } = props; // legacy reset props.setAttributes({widgets:''}); const editor = <EcwidProductBrowserBlock icon={ EcwidIcons.category } title={ __( 'Store Category Page', 'ecwid-shopping-cart' ) } showDemoButton={ blockParams.isDemoStore }> <div className="ec-store-category-products"> <div className="ec-store-category-product1"></div> <div className="ec-store-category-product2"></div> <div className="ec-store-category-product3"></div> </div> <div className="ec-store-category-products"> <div className="ec-store-category-product4"></div> <div className="ec-store-category-product5"></div> <div className="ec-store-category-product6"></div> </div> </EcwidProductBrowserBlock>; function buildDangerousHTMLMessageWithTitle( title, message ) { return <BaseControl label={ title }><div dangerouslySetInnerHTML={{ __html: message }} /></BaseControl>; } const productMigrationWarning = buildDangerousHTMLMessageWithTitle( '', __( 'To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).', 'ecwid-shopping-cart' ) ); const cartIconMessage = buildDangerousHTMLMessageWithTitle( __( 'Display cart icon', 'ecwid-shopping-cart' ), blockParams.customizeMinicartText ); const isNewProductList = blockParams.isNewProductList; const isNewDetailsPage = blockParams.isNewDetailsPage; const controls = EcwidControls(blockParams.attributes, props); return ([ editor, <InspectorControls> <div style={{height:"10px"}}></div> { !EcwidGutenbergParams.hasCategories && <div style={{margin:'10px'}}> <a href="admin.php?page=ec-store-admin-category-id-0-mode-edit" target="_blank" class="button button-primary">{ __('Add categories', 'ecwid-shopping-cart') }</a> </div> } { EcwidGutenbergParams.hasCategories && [ !props.attributes.default_category_id && controls.select( 'default_category_id', __( 'Select category', 'ecwid-shopping-cart' ) ), props.attributes.default_category_id && controls.select( 'default_category_id', __( 'Selected category', 'ecwid-shopping-cart' ) ) ] } <PanelBody title={ __('Category List Appearance', 'ecwid-shopping-cart') } initialOpen={false}> { isNewProductList && [ controls.select('product_list_category_title_behavior'), attributes.product_list_category_title_behavior !== 'SHOW_TEXT_ONLY' && [ controls.buttonGroup('product_list_category_image_size'), controls.toolbar('product_list_category_image_aspect_ratio'), ] ] } { !isNewProductList && productMigrationWarning } </PanelBody> <PanelBody title={ __( 'Product List Appearance', 'ecwid-shopping-cart' ) } initialOpen={false}> { isNewProductList && [ controls.toggle( 'product_list_show_product_images' ), attributes.product_list_show_product_images && [ controls.buttonGroup( 'product_list_image_size' ), controls.toolbar( 'product_list_image_aspect_ratio' ) ], controls.toolbar( 'product_list_product_info_layout' ), controls.select( 'product_list_title_behavior' ), controls.select( 'product_list_price_behavior' ), controls.select( 'product_list_sku_behavior' ), controls.select( 'product_list_buybutton_behavior' ), controls.toggle( 'product_list_show_additional_image_on_hover' ), controls.toggle( 'product_list_show_frame' ) ] } { !isNewProductList && productMigrationWarning } </PanelBody> <PanelBody title={ __( 'Product Page Appearance', 'ecwid-shopping-cart' ) } initialOpen={false}> { isNewDetailsPage && [ controls.select('product_details_layout'), ( attributes.product_details_layout === 'TWO_COLUMNS_SIDEBAR_ON_THE_RIGHT' || attributes.product_details_layout === 'TWO_COLUMNS_SIDEBAR_ON_THE_LEFT' ) && controls.toggle('show_description_under_image'), controls.toolbar('product_details_gallery_layout'), EcwidInspectorSubheader( __('Product sidebar content', 'ecwid-shopping-cart') ), controls.toggle('product_details_show_product_name'), controls.toggle('product_details_show_breadcrumbs'), controls.toggle('product_details_show_product_sku'), controls.toggle('product_details_show_product_price'), controls.toggle('product_details_show_qty'), controls.toggle('product_details_show_number_of_items_in_stock'), controls.toggle('product_details_show_in_stock_label'), controls.toggle('product_details_show_wholesale_prices'), controls.toggle('product_details_show_share_buttons'), ] } { !isNewDetailsPage && productDetailsMigrationWarning } </PanelBody> <PanelBody title={ __( 'Store Navigation', 'ecwid-shopping-cart' ) } initialOpen={false}> { controls.toggle( 'show_categories') } { controls.toggle( 'show_search') } { controls.toggle( 'show_breadcrumbs') } { isNewProductList && controls.toggle( 'show_footer_menu' ) } { controls.toggle( 'show_signin_link') } { controls.toggle( 'product_list_show_sort_viewas_options') } { cartIconMessage } </PanelBody> <PanelBody title={ __( 'Color settings', 'ecwid-shopping-cart' ) } initialOpen={false}> { controls.color( 'chameleon_color_button' ) } { controls.color( 'chameleon_color_foreground' ) } { controls.color( 'chameleon_color_price' ) } { controls.color( 'chameleon_color_link' ) } { controls.color( 'chameleon_color_background' ) } </PanelBody> </InspectorControls> ]); }, save: function( props ) { return null; }, } ); ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/gutenberg/filters-page.jsx���������������������������������������������������0000644�����������������00000015643�15122273603�0016133 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������/** * BLOCK: my-block * * Registering a basic block with Gutenberg. * Simple block, renders and saves the same content without any interactivity. */ // Import CSS. import './style.scss'; import './editor.scss'; import {EcwidIcons} from '../icons.js'; import { EcwidControls, EcwidProductBrowserBlock, EcwidImage } from '../includes/controls.js'; const { __, _x } = wp.i18n; const { registerBlockType, } = wp.blocks; const { InspectorControls, } = wp.editor; const { PanelBody, PanelRow, ToggleControl, ButtonGroup, Button, BaseControl, Toolbar, ColorPalette, ColorIndicator } = wp.components; const { withState } = wp.compose; const blockName = 'ec-store/filters-page'; const blockParams = EcwidGutenbergParams.blockParams[blockName]; /** * Register: aa Gutenberg Block. * * Registers a new block provided a unique name and an object defining its * behavior. Once registered, the block is made editor as an option to any * editor interface where blocks are implemented. * * @link https://wordpress.org/gutenberg/handbook/block-api/ * @param {string} name Block name. * @param {Object} settings Block settings. * @return {?WPBlock} The block, if it has been successfully * registered; otherwise `undefined`. */ registerBlockType( 'ec-store/filters-page', { title: __( 'Product Search and filters', 'ecwid-shopping-cart' ), // Block title. icon: EcwidIcons.filters, category: 'ec-store', // Block category — Group blocks together based on common traits E.g. common, formatting, layout widgets, embed. attributes: blockParams.attributes, description: __( 'Display search page with filters on a side', 'ecwid-shopping-cart' ), supports: { customClassName: false, className: false, html: false, multiple: false }, /** * The edit function describes the structure of your block in the context of the editor. * This represents what the editor will render when the block is used. * * The "edit" property must be a valid function. * * @link https://wordpress.org/gutenberg/handbook/block-api/block-edit-save/ */ edit: function( props ) { const { attributes } = props; const editor = <EcwidProductBrowserBlock icon={ EcwidIcons.filters } title={ __( 'Search and Filters', 'ecwid-shopping-cart' ) }> <EcwidImage src="filter-preview.png" /> </EcwidProductBrowserBlock>; /* const editor = <div className="ec-store-block ec-store-block-filters-page"> <div className="ec-store-block-header"> { EcwidIcons.filters } { __( 'Filters Page', 'ecwid-shopping-cart' ) } </div> <div className="image"> </div> { blockParams.isDemoStore && <div> <a className="button button-primary" href="admin.php?page=ec-store">{ __( 'Set up your store', 'ecwid-shopping-cart') }</a> </div> } </div> ;*/ function buildDangerousHTMLMessageWithTitle( title, message ) { return <BaseControl label={ title }><div dangerouslySetInnerHTML={{ __html: message }} /></BaseControl>; } const filtersDisabledMessage = buildDangerousHTMLMessageWithTitle( '', __( 'You can enable filters in the store settings: (“<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Settings → Product Filters</a>”).', 'ecwid-shopping-cart' ) ); const productMigrationWarning = buildDangerousHTMLMessageWithTitle( '', __( 'To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).', 'ecwid-shopping-cart' ) ); const isNewProductList = blockParams.isNewProductList; const controls = EcwidControls(blockParams.attributes, props); return ([ editor, <InspectorControls> <PanelBody title={ __( 'Filters', 'ecwid-shopping-cart' ) } initialOpen={false}> { !blockParams.filtersEnabled && filtersDisabledMessage } { blockParams.filtersEnabled && [ controls.select( 'product_filters_position_search_page' ) ] } </PanelBody> <PanelBody title={ __( 'Product List Appearance', 'ecwid-shopping-cart' ) } initialOpen={false}> { isNewProductList && [ controls.toggle( 'product_list_show_product_images' ), attributes.product_list_show_product_images && [ controls.buttonGroup( 'product_list_image_size' ), controls.toolbar( 'product_list_image_aspect_ratio' ) ], controls.toolbar( 'product_list_product_info_layout' ), controls.select( 'product_list_title_behavior' ), controls.select( 'product_list_price_behavior' ), controls.select( 'product_list_sku_behavior' ), controls.select( 'product_list_buybutton_behavior' ), controls.toggle( 'product_list_show_additional_image_on_hover' ), controls.toggle( 'product_list_show_frame' ) ] } { !isNewProductList && productMigrationWarning } </PanelBody> <PanelBody title={ __( 'Store Navigation', 'ecwid-shopping-cart' ) } initialOpen={false}> { controls.toggle( 'show_categories') } { controls.toggle( 'show_breadcrumbs') } { isNewProductList && controls.toggle( 'show_footer_menu' ) } { controls.toggle( 'show_signin_link') } { controls.toggle( 'product_list_show_sort_viewas_options') } </PanelBody> <PanelBody title={ __( 'Color settings', 'ecwid-shopping-cart' ) } initialOpen={false}> { controls.color( 'chameleon_color_button' ) } { controls.color( 'chameleon_color_foreground' ) } { controls.color( 'chameleon_color_price' ) } { controls.color( 'chameleon_color_link' ) } { controls.color( 'chameleon_color_background' ) } </PanelBody> </InspectorControls> ]); }, save: function( props ) { return null; } } ); ���������������������������������������������������������������������������������������������ecwid-shopping-cart/js/gutenberg/minicart.jsx�������������������������������������������������������0000644�����������������00000006174�15122273603�0015356 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������// Import CSS. import './style.scss'; import './editor.scss'; import {EcwidIcons} from '../icons.js'; if ( !EcwidGutenbergParams.isDemoStore ) { const { __, _x } = wp.i18n; // Import __() from wp.i18n const { InspectorControls } = wp.editor; const { PanelBody, BaseControl, } = wp.components; const { registerBlockType, } = wp.blocks; /** * Register: aa Gutenberg Block. * * Registers a new block provided a unique name and an object defining its * behavior. Once registered, the block is made editor as an option to any * editor interface where blocks are implemented. * * @link https://wordpress.org/gutenberg/handbook/block-api/ * @param {string} name Block name. * @param {Object} settings Block settings. * @return {?WPBlock} The block, if it has been successfully * registered; otherwise `undefined`. */ registerBlockType( 'ec-store/minicart', { title: __( 'Shopping Cart Icon', 'ecwid-shopping-cart' ), icon: EcwidIcons.cart, category: 'ec-store', // Block category — Group blocks together based on common traits E.g. common, formatting, layout widgets, embed. description: __( 'Display shopping bag link and summary', 'ecwid-shopping-cart' ), supports: { customClassName: false, className: false, html: false, isPrivate: !EcwidGutenbergParams.isApiAvailable, align: true, alignWide: false }, attributes: EcwidGutenbergParams.minicartAttributes, /** * The edit function describes the structure of your block in the context of the editor. * This represents what the editor will render when the block is used. * * The "edit" property must be a valid function. * * @link https://wordpress.org/gutenberg/handbook/block-api/block-edit-save/ */ edit: function( props ) { const { attributes } = props; function buildSelect(props, name, label, items) { return <BaseControl label={ label }> <select className="ec-store-inspector-select" onChange={ (event) => { props.setAttributes( { [name]:event.target.value } ) } }> { items.map( function(item) { return <option value={item.value} selected={ props.attributes[name] == item.value }>{item.title}</option> })} </select> </BaseControl>; } function buildItem(props, name, type) { const item = EcwidGutenbergParams.minicartAttributes[name]; if ( typeof type === 'undefined' ) { type = item.type; } return buildSelect( props, item.name, item.title, item.values ); } const editor = <div className="ec-store-block ec-store-block-minicart"> <div className="image"> </div> </div>; return ([ editor, <InspectorControls> <PanelBody title={ __('Appearance', 'ecwid-shopping-cart') } initialOpen={true}> { buildItem(props, 'layout', 'select' ) } { buildItem(props, 'icon', 'select' ) } { buildItem(props, 'fixed_shape', 'select' ) } </PanelBody> </InspectorControls> ]); }, save: function( props ) { return false; }, } ); }����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/gutenberg/product.jsx��������������������������������������������������������0000644�����������������00000015576�15122273603�0015236 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������/** * BLOCK: my-block * * Registering a basic block with Gutenberg. * Simple block, renders and saves the same content without any interactivity. */ // Import CSS. import './style.scss'; import './editor.scss'; import {EcwidIcons} from '../icons.js'; if ( !EcwidGutenbergParams.isDemoStore ) { const { __, _x } = wp.i18n; // Import __() from wp.i18n const { registerBlockType, } = wp.blocks; const { InspectorControls, } = wp.editor; const { PanelBody, ToggleControl, } = wp.components; const { withState } = wp.compose; const { Fragment } = wp.element; /** * Register: aa Gutenberg Block. * * Registers a new block provided a unique name and an object defining its * behavior. Once registered, the block is made editor as an option to any * editor interface where blocks are implemented. * * @link https://wordpress.org/gutenberg/handbook/block-api/ * @param {string} name Block name. * @param {Object} settings Block settings. * @return {?WPBlock} The block, if it has been successfully * registered; otherwise `undefined`. */ registerBlockType( 'ecwid/product-block', { title: __( 'Product Card Small', 'ecwid-shopping-cart' ), // Block title. icon: EcwidIcons.product, category: 'ec-store', // Block category — Group blocks together based on common traits E.g. common, formatting, layout widgets, embed. attributes: { id: {type: 'integer'}, show_picture: {type: 'boolean', default: true}, show_title: {type: 'boolean', default: true}, show_price: {type: 'boolean', default: true}, show_options: {type: 'boolean', default: true}, show_qty: {type: 'boolean', default: false}, show_addtobag: {type: 'boolean', default: true}, show_price_on_button: {type: 'boolean', default: true}, show_border: {type: 'boolean', default: true}, center_align: {type: 'boolean', default: true} }, description: __( 'Display product with a buy button', 'ecwid-shopping-cart' ), alignWide: false, supports: { customClassName: false, className: false, html: false, align: true, isPrivate: !EcwidGutenbergParams.isApiAvailable }, /** * The edit function describes the structure of your block in the context of the editor. * This represents what the editor will render when the block is used. * * The "edit" property must be a valid function. * * @link https://wordpress.org/gutenberg/handbook/block-api/block-edit-save/ */ edit: function( props ) { const { attributes } = props; const saveCallback = function( params ) { const attributes = { 'id': params.newProps.product.id }; EcwidGutenbergParams.products[params.newProps.product.id] = { name: params.newProps.product.name, imageUrl: params.newProps.product.thumb }; params.originalProps.setAttributes(attributes); } const editor = <div className="ec-store-block ec-store-block-product"> { EcwidGutenbergParams.products && attributes.id && EcwidGutenbergParams.products[attributes.id] && <div className="ec-store-block-image"> <img src={ EcwidGutenbergParams.products[attributes.id].imageUrl }/> </div> } { EcwidGutenbergParams.products && attributes.id && EcwidGutenbergParams.products[attributes.id] && <div className="ec-store-product-title"> { EcwidGutenbergParams.products[attributes.id].name } </div> } { !attributes.id && <div className="ec-store-block-product-preview"> { EcwidIcons.productPreview } </div> } { !attributes.id && <div> <button className="button ec-store-block-button" onClick={ () => { var params = {'saveCallback':saveCallback, 'props': props}; ecwid_open_product_popup( params ); } }>{ EcwidGutenbergParams.chooseProduct }</button> </div> } </div>; function buildToggle(props, name, label) { return <ToggleControl label={ label } checked={ props.attributes[name] } onChange={ () => props.setAttributes( { [name]: ! props.attributes[name] } ) } /> } function openEcwidProductPopup( props ) { ecwid_open_product_popup( { 'saveCallback': saveCallback, 'props': props } ); } return ([ editor, <InspectorControls> { attributes.id && <div> <div className="ec-store-inspector-row"> <label className="ec-store-inspector-subheader">{ __( 'Displayed product', 'ecwid-shopping-cart' ) }</label> </div> <div className="ec-store-inspector-row"> { EcwidGutenbergParams.products && EcwidGutenbergParams.products[attributes.id] && <label>{ EcwidGutenbergParams.products[attributes.id].name }</label> } <button className="button" onClick={ () => openEcwidProductPopup( props ) }>{ __( 'Change', 'ecwid-shopping-cart' ) }</button> </div> </div> } {!attributes.id && <div className="ec-store-inspector-row"> <button className="button" onClick={ () => openEcwidProductPopup( props ) }>{ __( 'Choose product', 'ecwid-shopping-cart' ) }</button> </div> } <PanelBody title={ _x( 'Content', 'gutenberg-product-block', 'ecwid-shopping-cart' ) } initialOpen={false}> { buildToggle( props, 'show_picture', __( 'Picture', 'ecwid-shopping-cart' ) ) } { buildToggle( props, 'show_title', __( 'Title', 'ecwid-shopping-cart' ) ) } { buildToggle( props, 'show_price', __( 'Price', 'ecwid-shopping-cart' ) ) } { buildToggle( props, 'show_options', __( 'Options', 'ecwid-shopping-cart' ) ) } { buildToggle( props, 'show_qty', __( 'Quantity', 'ecwid-shopping-cart' ) ) } { buildToggle( props, 'show_addtobag', __( '«Buy now» button', 'ecwid-shopping-cart' ) ) } </PanelBody> <PanelBody title={ __( 'Appearance', 'ecwid-shopping-cart' ) } initialOpen={false}> { buildToggle( props, 'show_price_on_button', __( 'Show price inside the «Buy now» button', 'ecwid-shopping-cart' ) ) } { buildToggle( props, 'show_border', __( 'Add border', 'ecwid-shopping-cart' ) ) } { buildToggle( props, 'center_align', __( 'Center align on a page', 'ecwid-shopping-cart' ) ) } </PanelBody> </InspectorControls> ]); }, save: function( props ) { return false; }, } ); }����������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/gutenberg/product-page.jsx���������������������������������������������������0000644�����������������00000017507�15122273603�0016144 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������/** * BLOCK: my-block * * Registering a basic block with Gutenberg. * Simple block, renders and saves the same content without any interactivity. */ // Import CSS. import './style.scss'; import './editor.scss'; import {EcwidIcons} from '../icons.js'; import { EcwidControls, EcwidInspectorSubheader, EcwidProductBrowserBlock, EcwidImage } from '../includes/controls.js'; const { __, _x } = wp.i18n; const { registerBlockType, } = wp.blocks; const { InspectorControls, } = wp.editor; const { PanelBody, BaseControl } = wp.components; const { withState } = wp.compose; const blockName = 'ec-store/product-page'; const blockParams = EcwidGutenbergParams.blockParams[blockName]; /** * Register: aa Gutenberg Block. * * Registers a new block provided a unique name and an object defining its * behavior. Once registered, the block is made editor as an option to any * editor interface where blocks are implemented. * * @link https://wordpress.org/gutenberg/handbook/block-api/ * @param {string} name Block name. * @param {Object} settings Block settings. * @return {?WPBlock} The block, if it has been successfully * registered; otherwise `undefined`. */ registerBlockType( 'ec-store/product-page', { title: __( 'Product Card Large', 'ecwid-shopping-cart' ), icon: EcwidIcons.product, category: 'ec-store', // Block category — Group blocks together based on common traits E.g. common, formatting, layout widgets, embed. attributes: blockParams.attributes, description: __( 'Display product page with description and a buy button', 'ecwid-shopping-cart' ), supports: { customClassName: false, className: false, html: false, multiple: false }, /** * The edit function describes the structure of your block in the context of the editor. * This represents what the editor will render when the block is used. * * The "edit" property must be a valid function. * * @link https://wordpress.org/gutenberg/handbook/block-api/block-edit-save/ */ edit: function( props ) { const { attributes } = props; const saveCallback = function( params ) { const attributes = { 'default_product_id': params.newProps.product.id }; EcwidGutenbergParams.products[params.newProps.product.id] = { name: params.newProps.product.name, imageUrl: params.newProps.product.thumb }; params.originalProps.setAttributes(attributes); }; function openEcwidProductPopup( props ) { ecwid_open_product_popup( { 'saveCallback': saveCallback, 'props': props } ); } const editor = <EcwidProductBrowserBlock icon={ EcwidIcons.product } title={ __( 'Product Card Large', 'ecwid-shopping-cart' ) }> <EcwidImage src="product-page-preview.png" /> { !attributes.default_product_id && <div className="button-container"> <button className="button ec-store-block-button" onClick={ () => { var params = {'saveCallback':saveCallback, 'props': props}; ecwid_open_product_popup( params ); } }>{ EcwidGutenbergParams.chooseProduct }</button> </div> } </EcwidProductBrowserBlock>; function buildDangerousHTMLMessageWithTitle( title, message ) { return <BaseControl label={ title }><div dangerouslySetInnerHTML={{ __html: message }} /></BaseControl>; } const productMigrationWarning = buildDangerousHTMLMessageWithTitle( '', __( 'To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).', 'ecwid-shopping-cart' ) ); const productDetailsMigrationWarning = buildDangerousHTMLMessageWithTitle( '', __( 'To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).', 'ecwid-shopping-cart' ) ); const isNewDetailsPage = blockParams.isNewDetailsPage; const controls = EcwidControls(blockParams.attributes, props); return ([ editor, <InspectorControls> {attributes.default_product_id > 0 && <div> <div className="ec-store-inspector-row"> <label className="ec-store-inspector-subheader">{ __( 'Linked product', 'ecwid-shopping-cart' ) }</label> </div> <div className="ec-store-inspector-row"> { EcwidGutenbergParams.products && EcwidGutenbergParams.products[attributes.default_product_id] && <label>{ EcwidGutenbergParams.products[attributes.default_product_id].name }</label> } <button className="button" onClick={ () => openEcwidProductPopup( props ) }>{ __( 'Change', 'ecwid-shopping-cart' ) }</button> </div> </div> } {!attributes.default_product_id && <div className="ec-store-inspector-row"> <button className="button" onClick={ () => openEcwidProductPopup( props ) }>{ __( 'Choose product', 'ecwid-shopping-cart' ) }</button> </div> } <PanelBody title={ __( 'Appearance', 'ecwid-shopping-cart' ) } initialOpen={false}> { isNewDetailsPage && [ controls.select('product_details_layout'), ( attributes.product_details_layout === 'TWO_COLUMNS_SIDEBAR_ON_THE_RIGHT' || attributes.product_details_layout === 'TWO_COLUMNS_SIDEBAR_ON_THE_LEFT' ) && controls.toggle('show_description_under_image'), controls.toolbar('product_details_gallery_layout'), EcwidInspectorSubheader( __('Product sidebar content', 'ecwid-shopping-cart') ), controls.toggle('product_details_show_product_name'), controls.toggle('product_details_show_breadcrumbs'), controls.toggle('product_details_show_product_sku'), controls.toggle('product_details_show_product_price'), controls.toggle('product_details_show_qty'), controls.toggle('product_details_show_number_of_items_in_stock'), controls.toggle('product_details_show_in_stock_label'), controls.toggle('product_details_show_wholesale_prices'), controls.toggle('product_details_show_share_buttons'), ] } { !isNewDetailsPage && productMigrationWarning } </PanelBody> <PanelBody title={ __( 'Color settings', 'ecwid-shopping-cart' ) } initialOpen={false}> { controls.color( 'chameleon_color_button' ) } { controls.color( 'chameleon_color_foreground' ) } { controls.color( 'chameleon_color_price' ) } { controls.color( 'chameleon_color_link' ) } { controls.color( 'chameleon_color_background' ) } </PanelBody> </InspectorControls> ]); }, save: function( props ) { return null; } } ); �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/gutenberg/search.jsx���������������������������������������������������������0000644�����������������00000003554�15122273603�0015014 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������// Import CSS. import './style.scss'; import './editor.scss'; import {EcwidIcons} from '../icons.js'; if ( !EcwidGutenbergParams.isDemoStore ) { const { __, _x } = wp.i18n; // Import __() from wp.i18n const { registerBlockType, } = wp.blocks; /** * Register: aa Gutenberg Block. * * Registers a new block provided a unique name and an object defining its * behavior. Once registered, the block is made editor as an option to any * editor interface where blocks are implemented. * * @link https://wordpress.org/gutenberg/handbook/block-api/ * @param {string} name Block name. * @param {Object} settings Block settings. * @return {?WPBlock} The block, if it has been successfully * registered; otherwise `undefined`. */ registerBlockType( 'ec-store/search', { title: __( 'Product Search Box', 'ecwid-shopping-cart' ), icon: EcwidIcons.search, category: 'ec-store', // Block category — Group blocks together based on common traits E.g. common, formatting, layout widgets, embed. description: __( 'Display search box', 'ecwid-shopping-cart' ), supports: { customClassName: false, className: false, html: false, isPrivate: !EcwidGutenbergParams.isApiAvailable }, /** * The edit function describes the structure of your block in the context of the editor. * This represents what the editor will render when the block is used. * * The "edit" property must be a valid function. * * @link https://wordpress.org/gutenberg/handbook/block-api/block-edit-save/ */ edit: function( props ) { const { attributes } = props; const editor = <div className="ec-store-block ec-store-block-search"> <div class="image"></div> </div>; return ([ editor ]); }, save: function( props ) { return false; }, } ); }����������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/gutenberg/store.jsx����������������������������������������������������������0000644�����������������00000032327�15122273603�0014703 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������/** * BLOCK: my-block * * Registering a basic block with Gutenberg. * Simple block, renders and saves the same content without any interactivity. */ // Import CSS. import './style.scss'; import './editor.scss'; import {EcwidIcons} from '../icons.js'; import { EcwidControls, EcwidInspectorSubheader, EcwidProductBrowserBlock } from '../includes/controls.js'; const { __, _x } = wp.i18n; const { registerBlockType, } = wp.blocks; const { InspectorControls, } = wp.editor; const { PanelBody, PanelRow, ToggleControl, ButtonGroup, Button, BaseControl, Toolbar, ColorPalette, ColorIndicator } = wp.components; const { withState } = wp.compose; const blockName = 'ecwid/store-block'; const blockParams = EcwidGutenbergParams.blockParams[blockName]; /** * Register: aa Gutenberg Block. * * Registers a new block provided a unique name and an object defining its * behavior. Once registered, the block is made editor as an option to any * editor interface where blocks are implemented. * * @link https://wordpress.org/gutenberg/handbook/block-api/ * @param {string} name Block name. * @param {Object} settings Block settings. * @return {?WPBlock} The block, if it has been successfully * registered; otherwise `undefined`. */ registerBlockType( 'ecwid/store-block', { title: __( 'Store Home Page', 'ecwid-shopping-cart' ), // Block title. icon: EcwidIcons.store, category: 'ec-store', // Block category — Group blocks together based on common traits E.g. common, formatting, layout widgets, embed. attributes: blockParams.attributes, description: __( 'Add storefront (product listing)', 'ecwid-shopping-cart' ), supports: { customClassName: false, className: false, html: false, multiple: false }, /** * The edit function describes the structure of your block in the context of the editor. * This represents what the editor will render when the block is used. * * The "edit" property must be a valid function. * * @link https://wordpress.org/gutenberg/handbook/block-api/block-edit-save/ */ edit: function( props ) { const { attributes } = props; // legacy reset props.setAttributes({widgets:''}); const editor = <EcwidProductBrowserBlock icon={ EcwidIcons.store } title={ __( 'Store Home Page', 'ecwid-shopping-cart') } showDemoButton={ blockParams.isDemoStore }> <div className="ec-store-products"> <div className="ec-store-product1"></div> <div className="ec-store-product2"></div> <div className="ec-store-product3"></div> </div> <div className="ec-store-products"> <div className="ec-store-product4"></div> <div className="ec-store-product5"></div> <div className="ec-store-product6"></div> </div> </EcwidProductBrowserBlock>; function buildDangerousHTMLMessageWithTitle( title, message ) { return <BaseControl label={ title }><div dangerouslySetInnerHTML={{ __html: message }} /></BaseControl>; } const productMigrationWarning = buildDangerousHTMLMessageWithTitle( '', __( 'To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).', 'ecwid-shopping-cart' ) ); const cartIconMessage = buildDangerousHTMLMessageWithTitle( __( 'Display cart icon', 'ecwid-shopping-cart' ), blockParams.customizeMinicartText ); const productDetailsMigrationWarning = buildDangerousHTMLMessageWithTitle( '', __( 'To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).', 'ecwid-shopping-cart' ) ); const isNewProductList = blockParams.isNewProductList; const isNewDetailsPage = blockParams.isNewDetailsPage; const hasCategories = blockParams.attributes.default_category_id && blockParams.attributes.default_category_id.values && blockParams.attributes.default_category_id.values.length > 0; const controls = EcwidControls(blockParams.attributes, props); return ([ editor, <InspectorControls> { hasCategories && <PanelBody title={ __('Category List Appearance', 'ecwid-shopping-cart') } initialOpen={false}> { isNewProductList && [ controls.select('product_list_category_title_behavior'), attributes.product_list_category_title_behavior !== 'SHOW_TEXT_ONLY' && [ controls.buttonGroup('product_list_category_image_size'), controls.toolbar('product_list_category_image_aspect_ratio'), ] ] } { !isNewProductList && productMigrationWarning } </PanelBody> } <PanelBody title={ __( 'Product List Appearance', 'ecwid-shopping-cart' ) } initialOpen={false}> { isNewProductList && [ controls.toggle( 'product_list_show_product_images' ), attributes.product_list_show_product_images && [ controls.buttonGroup( 'product_list_image_size' ), controls.toolbar( 'product_list_image_aspect_ratio' ) ], controls.toolbar( 'product_list_product_info_layout' ), controls.select( 'product_list_title_behavior' ), controls.select( 'product_list_price_behavior' ), controls.select( 'product_list_sku_behavior' ), controls.select( 'product_list_buybutton_behavior' ), controls.toggle( 'product_list_show_additional_image_on_hover' ), controls.toggle( 'product_list_show_frame' ) ] } { !isNewProductList && productMigrationWarning } </PanelBody> <PanelBody title={ __( 'Product Page Appearance', 'ecwid-shopping-cart' ) } initialOpen={false}> { isNewDetailsPage && [ controls.select('product_details_layout'), ( attributes.product_details_layout === 'TWO_COLUMNS_SIDEBAR_ON_THE_RIGHT' || attributes.product_details_layout === 'TWO_COLUMNS_SIDEBAR_ON_THE_LEFT' ) && controls.toggle('show_description_under_image'), controls.toolbar('product_details_gallery_layout'), EcwidInspectorSubheader( __('Product sidebar content', 'ecwid-shopping-cart') ), controls.toggle('product_details_show_product_name'), controls.toggle('product_details_show_breadcrumbs'), controls.toggle('product_details_show_product_sku'), controls.toggle('product_details_show_product_price'), controls.toggle('product_details_show_qty'), controls.toggle('product_details_show_number_of_items_in_stock'), controls.toggle('product_details_show_in_stock_label'), controls.toggle('product_details_show_wholesale_prices'), controls.toggle('product_details_show_share_buttons'), ] } { !isNewDetailsPage && productMigrationWarning } </PanelBody> { hasCategories && <PanelBody title={ __('Store Front Page', 'ecwid-shopping-cart') } initialOpen={false}> { controls.defaultCategoryId( 'default_category_id' ) } </PanelBody> } <PanelBody title={ __( 'Store Navigation', 'ecwid-shopping-cart' ) } initialOpen={false}> { controls.toggle( 'show_categories') } { controls.toggle( 'show_search') } { controls.toggle( 'show_breadcrumbs') } { isNewProductList && controls.toggle( 'show_footer_menu' ) } { controls.toggle( 'show_signin_link') } { controls.toggle( 'product_list_show_sort_viewas_options') } { cartIconMessage } </PanelBody> <PanelBody title={ __( 'Color settings', 'ecwid-shopping-cart' ) } initialOpen={false}> { controls.color( 'chameleon_color_button' ) } { controls.color( 'chameleon_color_foreground' ) } { controls.color( 'chameleon_color_price' ) } { controls.color( 'chameleon_color_link' ) } { controls.color( 'chameleon_color_background' ) } </PanelBody> </InspectorControls> ]); }, save: function( props ) { var widgets = ['productbrowser']; if ( props.attributes.show_categories ) { widgets[widgets.length] = 'categories'; } if ( props.attributes.show_search ) { widgets[widgets.length] = 'search'; } const shortcodeAttributes = { 'widgets': widgets.join(' '), 'default_category_id': typeof props.attributes.default_category_id !== 'undefined' ? props.attributes.default_category_id : 0 }; const shortcode = new wp.shortcode({ 'tag': blockParams.shortcodeName, 'attrs': shortcodeAttributes, 'type': 'single' }); return shortcode.string(); }, deprecated: [ { attributes: { widgets: { type: 'string' }, categories_per_row: { type: 'integer' }, grid: { type: 'string' }, list: { type: 'integer' }, table: { type: 'integer' }, default_category_id: { type: 'integer' }, default_product_id: { type: 'integer' }, category_view: { type: 'string' }, search_view: { type: 'string' }, minicart_layout: {type: 'string' } }, save: function( props ) { return null; }, }, { attributes: { widgets: { type: 'string', default: 'productbrowser' }, default_category_id: { type: 'integer', default: 0 } }, migrate: function ( attributes ) { return { 'widgets': attributes.widgets, 'default_category_id': attributes.default_category_id } }, save: function( props ) { var shortcodeAttributes = {}; const attrs = ['widgets', 'default_category_id']; for ( var i = 0; i < attrs.length; i++ ) { shortcodeAttributes[attrs[i]] = props.attributes[attrs[i]]; } shortcodeAttributes.default_product_id = 0; var shortcode = new wp.shortcode({ 'tag': blockParams.shortcodeName, 'attrs': shortcodeAttributes, 'type': 'single' }); return shortcode.string(); }, }, { save: function( props ) { return '[ecwid]'; }, }, { save: function( props ) { return '[ecwid widgets="productbrowser" default_category_id="0" default_product_id="0"]'; }, }, { save: function( props ) { return '[ecwid widgets="productbrowser" default_category_id="0"]'; }, }, ], transforms: { from: [{ type: 'shortcode', tag: ['ecwid', 'ec_store'], attributes: { default_category_id: { type: 'integer', shortcode: function(named) { return named.default_category_id } }, show_categories: { type: 'boolean', shortcode: function(attributes) { return attributes.named.widgets.indexOf('categories') !== -1 } }, show_search: { type: 'boolean', shortcode: function(attributes) { return attributes.named.widgets.indexOf('search') !== -1 } } }, priority: 10 }] }, } ); ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/gutenberg/audits/index.php���������������������������������������������������0000444�����������������00000000000�15122273603�0016107 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/themes/customizr.js����������������������������������������������������������0000644�����������������00000000475�15122273603�0014720 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������jQuery(document).ready(function() { var fixedNav = jQuery('header.tc-header'), ecwid_pb_scroller = jQuery('#ecwid_product_browser_scroller'); ecwid_pb_scroller.css('top', (- fixedNav.height()) + 'px'); jQuery(window).scroll(function() { ecwid_pb_scroller.css('top', (- fixedNav.height()) + 'px'); }); });���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/themes/edge.js���������������������������������������������������������������0000644�����������������00000000407�15122273603�0013560 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������jQuery(document).ready(function() { var fixedNav = jQuery('#sticky_header'); jQuery('#ecwid_product_browser_scroller').css({ 'position': 'relative', 'top': -fixedNav.height() - jQuery('.ecwid-shopping-cart-categories').height() }); });���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/themes/edin.js���������������������������������������������������������������0000644�����������������00000000226�15122273603�0013572 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������jQuery(document).ready(function() { jQuery('.ecwid-store-with-categories a').click(function() { jQuery('button.menu-toggle.open').click() }) });��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/themes/pagelines.js����������������������������������������������������������0000644�����������������00000000351�15122273603�0014621 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������jQuery(document).ready(function() { var fixedNav = jQuery('#navbar'); if (fixedNav.css('position') == 'fixed') { jQuery('#ecwid_product_browser_scroller').css({ 'position': 'relative', 'top': -fixedNav.height() }); } });���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/themes/pixova-lite.js��������������������������������������������������������0000644�����������������00000000443�15122273603�0015115 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������jQuery(document).ready(function() { var fixedNav = jQuery('#header-wrap'); if (fixedNav.css('position') == 'fixed') { jQuery('#ecwid_product_browser_scroller').css({ 'position': 'relative', 'top': -fixedNav.height() - jQuery('.ecwid-shopping-cart-categories').height() }); } });�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/themes/responsive.js���������������������������������������������������������0000644�����������������00000004111�15122273603�0015045 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������(function($) { function doDefaultLayout() { $('.ecwid-shopping-cart-search .ecwid-SearchPanel-button').text(''); $('.ecwid-minicart-mini-rolloverContainer').show(); $('.ecwid-shopping-cart-minicart') .css({ 'top': '2px' }) .show(); var topElement = $('.ecwid-shopping-cart-categories'); if (topElement.length == 0) { topElement = $('.ecwid-shopping-cart-product-browser') } if (topElement.length > 0) { $('.ecwid-productBrowser-auth-mini').css({ 'position': 'absolute', 'top': topElement.prop('offsetTop') - 50 }); $('.ecwid-shopping-cart-search').css({ 'position': 'absolute', 'top': topElement.prop('offsetTop') - 50 + 8 }); if (navigator.userAgent.match(/firefox/i)) { $('.ecwid-SearchPanel-button').css('right', '3px'); } } $('.ecwid-shopping-cart-minicart').css( 'margin-right', $('.ecwid-minicart-mini-rolloverContainer').width() - $('.ecwid-shopping-cart-minicart').width() ); if ($('.ecwid-search-placeholder').length == 0) { $('.ecwid-shopping-cart .ecwid-shopping-cart-search .ecwid-SearchPanel').after('<div class="ecwid-search-placeholder"></div>'); } $('.ecwid-search-placeholder').click(function() { $('body').addClass('ecwid-search-open'); $('.ecwid-shopping-cart-search .ecwid-SearchPanel-field').focus(); }); } $('body').click(function(e) { if ($('.ecwid-shopping-cart-search').has(e.target).length == 0) { $(this).removeClass('ecwid-search-open'); } }); function doMobileLayout() { $('.ecwid-minicart-mini-rolloverContainer').hide(); $('.ecwid-shopping-cart-minicart').hide(); $('.ecwid-productBrowser-auth-mini').css({ 'position': 'inherit', 'top': 'auto' }); $('.ecwid-shopping-cart-search').css({ 'position': 'absolute', 'top': $('.ecwid-productBrowser').prop('offsetTop') - 50 + 8 }); } if (typeof Ecwid != 'undefined') { Ecwid.OnPageLoaded.add(function(args) { if ($(window).width() < 650) { doMobileLayout(); } else { doDefaultLayout(); } }); } $(window).resize(function() { if ($(window).width() < 650) { doMobileLayout(); } else { doDefaultLayout(); } }); })(jQuery); /*});*/ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/themes/trend-shortcodes.js���������������������������������������������������0000644�����������������00000001131�15122273603�0016136 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������window.ecwid_script_defer = true; window.ecwid_dynamic_widgets = true; if (typeof Ecwid != 'undefined') Ecwid.destroy(); if (typeof ecwid_shortcodes != 'undefined' && typeof ecwid_store_id != 'undefined') { window._xnext_initialization_scripts = ecwid_shortcodes; if (!document.getElementById('ecwid-script')) { var script = document.createElement('script'); script.charset = 'utf-8'; script.type = 'text/javascript'; script.src = 'https://app.ecwid.com/script.js?' + ecwid_store_id; script.id = 'ecwid-script' document.body.appendChild(script); } else { ecwid_onBodyDone(); } } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/themes/twentytwelve.js�������������������������������������������������������0000644�����������������00000000362�15122273603�0015435 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������jQuery(document).ready(function() { if (typeof Ecwid == 'undefined') return; Ecwid.OnPageLoaded.add(function () { document.activeElement.blur(); jQuery('.nav-menu,.nav-menu *.focus').removeClass('focus'); }); } );������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/admin-bar.js�����������������������������������������������������������������0000644�����������������00000003253�15122273603�0013223 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������jQuery(document).ready(function() { if ( typeof Ecwid == 'undefined' ) return; var $post_edit_links = jQuery('[href*="'+ecwidEditPostLinkParams.admin_url+'post.php"]').filter('[href*="action=edit"]'), url = ( $post_edit_links.length ) ? $post_edit_links.eq(0).attr( 'href' ) : false, $bar, text; $post_edit_links.each( function() { if( jQuery( this ).closest('#wpadminbar').length ) { $bar = jQuery( this ); text = $bar.text(); } }); if( !url ) return; Ecwid.OnPageLoad.add(function(page){ var is_product = ( page.type == 'PRODUCT' ), is_subcategory = ( page.type == 'CATEGORY' && page.categoryId > 0 ), new_url = url; if( page.entryPage ) { is_subcategory = false; } if( typeof text != 'undefined' ) new_text = text; if( is_product || is_subcategory ) { if( typeof $bar != 'undefined' ) { new_text = ( is_product ) ? ecwidEditPostLinkParams.languages.editProduct : ( is_subcategory ) ? ecwidEditPostLinkParams.languages.editCategory : text; } var id = ( is_product ) ? page.productId : page.categoryId, hash = page.type.toLowerCase() + ':mode=edit&id=' + id; if( ecwidEditPostLinkParams.is_api_available ) { hash = encodeURIComponent( hash ); } new_url = ecwidEditPostLinkParams.url + hash; } if( typeof $bar != 'undefined' ) { $bar.text( new_text ); } if( $post_edit_links.length ) { $post_edit_links.attr( 'href', new_url ); } }); });�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/admin.js���������������������������������������������������������������������0000644�����������������00000012177�15122273603�0012466 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������jQuery(document).ready(function() { var is_safari = navigator.userAgent.indexOf('Chrome') == -1 && navigator.userAgent.indexOf("Safari") > -1; wpCookies.set('ecwid_is_safari', is_safari); window.ecwidOpenAdminPage = function(place) { jQuery('#ecwid-frame')[0].contentWindow.postMessage(JSON.stringify({ ecwidAppNs: "ecwid-wp-plugin", method: "openPage", data: place }), "*") } jQuery('#hide-vote-message').on('click', function() { jQuery('#hide-vote-message').addClass('hiding'); jQuery.getJSON( 'admin-ajax.php', { action:'ecwid_hide_vote_message' }, function(data) { jQuery('#hide-vote-message').removeClass('hiding') .closest('div.update-nag, div.updated.fade').fadeOut(); } ); }); jQuery('a.ecwid-message-hide').on('click', function() { var a = this; jQuery(a).css('cursor', 'wait'); jQuery.getJSON( 'admin-ajax.php', { action: 'ecwid_hide_message', message: a.name }, function(data) { jQuery(a).closest('.ecwid-message').fadeOut(); } ); return false; }); if (location.href.match(/wp-admin\/widgets.php/) || location.href.match(/wp-admin\/customize.php/)) { jQuery('div[id^="widget-"]').filter('div[id*="_ecwid"]').each(function(idx, el) { if (location.href.match(/wp-admin\/widgets.php\?highlight-ec-widgets=/) && el.id.match(/__i__/)) { if (jQuery('.ecwid-widget').length > 0) { jQuery(el).insertAfter(jQuery('.ecwid-widget:last')); } else { jQuery(el).prependTo(jQuery('#widget-list')); } jQuery('.widget-top', el).addClass('ecwid-widget-highlighted'); } var classname = el.id.match(/ecwid(.*)-__i__/); if (classname) { classname = 'ecwid-widget-' + classname[1]; jQuery(el).addClass('ecwid-widget') .find('.widget-top') .addClass(classname); } }); jQuery(document).on('widget-added', function(event, widgetElement) { if (typeof this.widgets == 'undefined') { this.widgets = { 'ecwid-widget-badge': 'ecwidBadge', 'ecwid-widget-search': 'productSearch', 'ecwid-widget-recentlyviewed': 'recentlyViewedProducts', 'ecwid-widget-minicart': 'shoppingCart', 'ecwid-widget-minicart_miniview': 'miniShoppingCart', 'ecwid-widget-vcategories': 'storeCategories', 'ecwid-widget-storelink': 'storePageLink', 'ecwid-widget-floatingshoppingcart': 'floatingShoppingCart', 'ecwid-widget-vcategorieslist': 'storeRootCategories', 'ecwid-widget-nsfminicart': 'shoppingCart', }; } jQuery('input[value=ecwidvcategorieslist]').closest('.widget').each(function(idx, el) { prepareVerticalCategoriesWidget(el); }); }); } if (location.href.match(/wp-admin\/widgets.php/)) { jQuery('input[value=ecwidvcategorieslist]').closest('.widget').each(function(idx, el) { prepareVerticalCategoriesWidget(el); }); } jQuery('.drop-down').each(function(idx, el) { jQuery(el).find('>span').on('click', function (e) { jQuery(e.target).closest('.drop-down').addClass('hover'); jQuery(window).bind('click.ecwidDropDown', function(e) { if (jQuery(e.target).closest('.drop-down')[0] != el) { jQuery(window).unbind('.ecwidDropDown'); jQuery(el).removeClass('hover'); } }); }) }); jQuery('#ecwid-connect-no-oauth').on('click', function() { if (jQuery('#ecwid-store-id').val()) { var link = jQuery(this).data('href'); location.href = link + '&force_store_id=' + jQuery('#ecwid-store-id').val() + '&_wpnonce=' + ecwid_admin_menu.ajaxNonce; } return false; }); jQuery('#ecwid-get-mobile-app').on('click', function() { ecwidOpenAdminPage('mobile'); return false; }); if (document.location.hash == 'mobile') { ecwidOpenAdminPage('mobile'); } }); prepareVerticalCategoriesWidget = function(element) { element = jQuery(element); if (element.data('vcategoriesInitialized')) return; if (jQuery('input.widget-id', element).val() == 'ecwidvcategorieslist-__i__') return; resetCache = function(callback) { jQuery.getJSON( 'admin-ajax.php', { action: 'ecwid_reset_categories_cache' }, callback ); } $target = jQuery('<p class="ecwid-cats-reset-cache">').appendTo(jQuery('.ecwid-reset-categories-cache-block', element)); jQuery('<span>') .text(ecwid_params.cache_updated) .addClass('ecwid-reset-categories-cache-updated') .appendTo($target); var a = jQuery('<a>') .text(ecwid_params.reset_cats_cache) .attr('href', 'javascript:void(0);') .addClass('ecwid-reset-categories-cache') .appendTo($target); a.on('click', function() { var that = this; jQuery(that).css('cursor', 'wait'); resetCache(function() { jQuery(that).fadeOut(100, function() { jQuery(that).prev('.ecwid-reset-categories-cache-updated').fadeIn(100, function() { setTimeout(function () { jQuery(that).prev('.ecwid-reset-categories-cache-updated').fadeOut(500, function () { jQuery(that).fadeIn(500); }) }, 4000); }); }); jQuery(that).css('cursor', 'pointer'); }); }); if (jQuery('#ecwid-frame').length > 0) { if (jQuery('div.update-nag').length > 0) { jQuery('#ecwid-frame').addClass('has-wp-message'); } } element.data('vcategoriesInitialized', true); }�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/admin-menu.js����������������������������������������������������������������0000644�����������������00000025136�15122273603�0013427 0����������������������������������������������������������������������������������������������������ustar�00������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� function ecwidRefreshEcwidMenuItemSelection(slug) { if (!slug) { slug = ecwidGetCurrentMenuSlug(); } if (!slug || slug.indexOf(ecwid_admin_menu.baseSlug) == -1) return; var parent = jQuery('li#toplevel_page_' + ecwid_admin_menu.baseSlug); parent.addClass('wp-has-current-submenu').addClass('wp-menu-open'); parent.find('a.toplevel_page_ec-store').addClass('wp-has-current-submenu').addClass('wp-menu-open'); var selector = 'a[data-ecwid-menu-slug="' + slug + '"]'; if (jQuery(selector).length == 0) { selector = 'a[data-ecwid-menu-slug="' + decodeURI(slug) + '"]'; } jQuery('.current', parent).removeClass('current'); jQuery('.wp-has-current-submenu3', parent).removeClass('wp-has-current-submenu3'); jQuery(selector, parent) .addClass('current') .closest('li') .addClass('current') .closest('.wp-has-submenu3').addClass('wp-has-current-submenu3'); ecwidSetCurrentPageTitle( selector ); } function ecwidSetCurrentPageTitle(selector) { var delimiter = String.fromCharCode(8249), title_splited = document.title.split( delimiter ), title = jQuery(selector).last().text(); if( title_splited.length ) { title += ' ' + delimiter + ' ' + title_splited[title_splited.length-1]; } document.title = title; } function ecwidGetCurrentMenuSlug() { var query_parts = location.search.split('&'); var slug = null; for (var i = 0; i < query_parts.length; i++) { var param = query_parts[i]; if (i == 0 && param.startsWith('?')) { param = param.substr(1); } ecwidPagePrefix = 'page='; if (!param.startsWith(ecwidPagePrefix)) continue; slug = param.substr(ecwidPagePrefix.length); } return slug; } var ec_admin_prev_slug = '', ec_admin_wait_page_load = false; function ecwidApplyIframeAdminMenu($link, menu) { $link .data('ecwid-menu', menu) .attr('data-ecwid-menu-slug', menu.slug) .on('click', function (e) { var slug = jQuery(this).data('ecwid-menu-slug'); if (e.shiftKey || e.ctrlKey || e.metaKey) { if( !!jQuery(this).attr('href') ) { window.open( jQuery(this).attr('href'), '_blank' ); } return false; } if ( jQuery(this).hasClass('current') ) { if( slug != 'ec-store-admin-products' ) { return false; } } if( ecwid_params.is_demo_store ) { location.href = jQuery(this).attr('href'); return false; } var ecwidMenu = jQuery(this).data('ecwid-menu'); var link = jQuery(this).closest('li'); var is3dlevelMenuRoot = link.hasClass('wp-has-submenu3'); var isOpen = jQuery('li.current').closest('.toplevel_page_ec-store').length > 0; if( slug == 'ec-storefront-settings' || slug == 'ec-store-developers' ) { if( !jQuery('#ecwid-frame').length ) { location.href = jQuery(this).attr('href'); } jQuery('.ec-ui-framework-page, #ecwid-frame').hide(); jQuery('#' + slug).show(); jQuery(document).scrollTop(0); } else { if( ec_admin_prev_slug == '' || ec_admin_prev_slug == slug ) { if( !jQuery('#ecwid-frame').length ) { location.href = jQuery(this).attr('href'); } jQuery('#ecwid-frame').show(); jQuery(document).scrollTop(48); } else { ec_admin_wait_page_load = true; } jQuery('.ec-ui-framework-page').hide(); ecwidOpenAdminPage(ecwidMenu.hash); ec_admin_prev_slug = slug; } history.pushState({}, null, ecwidMenu.url); ecwidRefreshEcwidMenuItemSelection(); jQuery('#wpwrap.wp-responsive-open').removeClass('wp-responsive-open'); jQuery(this).parents('.opensub').removeClass('opensub'); if ( !isOpen ) return true; return false; }); } function ecwidAddSubmenu(items, parent) { var $parent = jQuery(parent); var $parentListItem = $parent.closest('li'); var $parentList = jQuery('<ul class="wp-submenu3 wp-submenu3-wrap">'); $parentListItem.addClass('wp-has-submenu3'); $parentListItem.append($parentList); if ($parentListItem.find('a').hasClass('current')) { $parentListItem.addClass('wp-has-current-submenu3'); } for (var i = 0; i < items.length; i++) { var item = items[i]; var $link = jQuery('<a>').text(item.title).attr('href', item.url); jQuery('<li>').append($link).appendTo($parentList); ecwidApplyIframeAdminMenu($link, item); } $parent.closest('li').on('touchstart', function(e) { var link = jQuery(this); if (!link.hasClass('opensub') && link.hasClass('wp-has-submenu3')) { jQuery(this).closest('ul').find('li').removeClass('opensub'); link.addClass('opensub'); e.preventDefault(); return false; } }).on('mouseover', function () { jQuery(this).addClass('opensub'); }).on('mouseout', function () { jQuery(this).removeClass('opensub'); }); } function ecwidAddMenuItems(items) { var prevItem = jQuery('#toplevel_page_ec-store .wp-submenu-head + li'); for (var i = 0; i < items.length; i++) { if (!items.hasOwnProperty(i)) continue; var menuItem = items[i]; var listItem = jQuery('<li>').insertAfter(prevItem); var a = jQuery('<a>').data('ecwid-url', menuItem.hash).text(menuItem.title).appendTo(listItem); ecwidApplyIframeAdminMenu(a, menuItem); listItem.attr('data-ecwid-dynamic-menu', 1); if (menuItem.type == 'separator') { listItem.addClass('ec-separator'); } if (menuItem.children) { ecwidAddSubmenu(menuItem.children, a); } prevItem = listItem; } } jQuery(document).ready(function() { var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent"; var eventer = window[eventMethod]; var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message"; var previous_frame_page; // Listen to message from child window eventer(messageEvent,function(e) { if (typeof e.data.height != 'undefined' && e.data.height > 0) { jQuery('#ecwid-frame').css('height', e.data.height + 'px'); } if ( typeof e.data.action != 'undefined') { if ( e.data.action == 'pageLoad' ) { var adminpage = e.currentTarget.adminpage; var page = e.data.data.page.path; if( ec_admin_wait_page_load ) { jQuery('#ecwid-frame').show(); jQuery('#ec-ui-framework-page').hide(); } if( adminpage.indexOf(ecwid_admin_menu.baseSlug) != -1 ) { jQuery('*[data-ecwid-menu-slug="ec-store-admin-' + page + '"]').eq(0).click(); } if( adminpage == 'plugin-install-php' ) { if( page.indexOf('apps:view=app&name=') != -1 ) { var admin_page_app = 'admin.php?page=ec-store-admin-my_apps&ec-store-page='; window.open( admin_page_app + encodeURIComponent(page), '_blank' ); var frame_src = jQuery('#ecwid-frame') .attr( 'src' ) .replace( /(&place=).*?(&)/i, '$1' + previous_frame_page + '$2' ); jQuery('#ecwid-frame').attr( 'src', frame_src ); } else { previous_frame_page = page; } } } else if ( e.data.action && e.data.action == 'navigationMenuUpdated' && e.data.data && e.data.data.navigationMenuItems && e.data.data.navigationMenuItems.length > 0 && ecwid_admin_menu.enableAutoMenus ) { jQuery.ajax({ 'url': ajaxurl + '?action=' + ecwid_admin_menu.actionUpdateMenu, 'method': 'POST', 'data': { 'menu': e.data.data.navigationMenuItems, '_ajax_nonce': ecwid_admin_menu.ajaxNonce }, 'success': function(result) { jQuery('li[data-ecwid-dynamic-menu]').remove(); ecwidAddMenuItems(jQuery.parseJSON(result)); ecwidRefreshEcwidMenuItemSelection(); jQuery(window).trigger('resize'); } }); } } },false); if (jQuery('#ecwid-frame').length > 0) { if (jQuery('div.update-nag').length > 0) { jQuery('#ecwid-frame').addClass('has-wp-message'); } } window.ecwidOpenAdminPage = function (place) { if (jQuery('#ecwid-frame').length < 1) { return; } jQuery('#ecwid-frame')[0].contentWindow.postMessage(JSON.stringify({ ecwidAppNs: "ecwid-wp-plugin", method: "openPage", data: place }), "*") } if ( ecwid_admin_menu.enableAutoMenus ) { for (var i = 0; i < ecwid_admin_menu.menu.length; i++) { var menu = ecwid_admin_menu.menu[i]; var $link = jQuery('li.toplevel_page_ec-store .wp-submenu a[href$="' + menu.url + '"]'); $link.closest('li').attr('data-ecwid-dynamic-menu', 1); ecwidApplyIframeAdminMenu($link, menu); if (menu.children) { ecwidAddSubmenu(menu.children, $link); } } var $link = jQuery('li.toplevel_page_ec-store .wp-submenu a[href="admin.php?page"]'); $link.closest('li').attr('data-ecwid-dynamic-menu', 1); $link.on('click', function() { return false; }); var $link = jQuery('li.toplevel_page_ec-store .wp-submenu a[href="admin.php?page=ec-store"]'); ecwidApplyIframeAdminMenu($link, {slug:'ec-store', url: 'admin.php?page=ec-store', hash:'dashboard'}); } if ( jQuery( '#calypsoify_wpadminmods_css-css' ).length > 0 ) { jQuery('#toplevel_page_ec-store').addClass('wpcom-menu'); } if ( jQuery( '#toplevel_page_ec-store .wp-submenu3 li.current' ).length > 0 ) { jQuery('#toplevel_page_ec-store > a').addClass('wp-has-current-submenu'); } ecwidRefreshEcwidMenuItemSelection(); });����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/admin-storefront.js����������������������������������������������������������0000644�����������������00000015661�15122273603�0014672 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������jQuery(document).ready(function () { jQuery(document).on('click', '[data-storefront-status]', function () { var el = jQuery(this), new_status = el.data('storefrontStatus'); ecwid_toggle_loading_status(el); var data = { action: 'ecwid_storefront_set_status', status: new_status, _ajax_nonce: EcwidAdminStorefront._ajax_nonce }; jQuery.getJSON( 'admin-ajax.php', data, function (data) { ecwid_update_storepage_link(data.storepage); ecwid_set_storefront_state(data.storepage.status); ecwid_toggle_loading_status(el, true); } ); return false; }); jQuery(document).on('change', '[data-storefront-save-main-page]', function () { var page = jQuery(this).val(); var data = { action: 'ecwid_storefront_set_mainpage', page: page, _ajax_nonce: EcwidAdminStorefront._ajax_nonce }; jQuery.getJSON( 'admin-ajax.php', data, function (data) { ecwid_update_storepage_link(data.storepage); } ); return false; }); jQuery(document).on('change', '[data-storefront-checkbox]', function () { var setting = jQuery(this).data('storefrontCheckbox'), is_checked = jQuery(this).is(':checked'), status = (is_checked) ? 1 : 0; var data = { action: 'ecwid_storefront_set_' + setting, status: status, _ajax_nonce: EcwidAdminStorefront._ajax_nonce }; jQuery.getJSON( 'admin-ajax.php', data, function (data) { if (typeof data.storepage != 'undefined') { ecwid_update_storepage_link(data.storepage); } } ); return false; }); jQuery(document).on('click', '[data-storefront-save-slug]', function () { var slug = jQuery('[name=post_name]').val(), button = jQuery(this), card = jQuery(this).closest('.a-card'), fieldset = jQuery('[name=post_name]').closest('.fieldset'); button.addClass('btn-loading'); fieldset.removeClass('has-error'); fieldset.find('.field__error').text(''); var data = { action: 'ecwid_storefront_set_page_slug', slug: slug, _ajax_nonce: EcwidAdminStorefront._ajax_nonce }; jQuery.getJSON( 'admin-ajax.php', data, function (data) { if (data.status == 'success') { ecwid_update_storepage_link(data.storepage); card.find('[data-storefront-show-card]').trigger('click'); } if (data.status == 'error') { fieldset.addClass('has-error'); fieldset.find('.field__error').text(data.message); } button.removeClass('btn-loading'); } ); return false; }); jQuery(document).on('click', '[data-storefront-create-page]', function () { var button = jQuery(this), type = button.data('storefrontCreatePage'), item_id = false; if (typeof button.data('storefrontItemId') != 'undefined') { item_id = button.data('storefrontItemId'); } if (!button.hasClass('btn')) { button = button.closest('.btn-group').find('.btn'); } button.addClass('btn-loading'); var data = { action: 'ecwid_storefront_create_page', type: type, item_id: item_id, _ajax_nonce: EcwidAdminStorefront._ajax_nonce }; jQuery.getJSON( 'admin-ajax.php', data, function (data) { button.removeClass('btn-loading'); if (data.status == 'success' && data.open_page) { var win = window.open(data.url, '_blank'); win.focus(); } ecwid_set_storefront_state(data.storepage.status); } ); return false; }); jQuery(document).on('click', '[data-storefront-show-card]', function () { var card = jQuery(this).data('storefrontShowCard'); ecwid_show_storefront_card(jQuery(this), card); return false; }); ecwid_disable_cards(jQuery('.settings-page').data('ecStorefrontStatus')); }); function ecwid_set_storefront_state(state) { jQuery('[data-ec-storefront-status]').attr('data-ec-storefront-status', state); ecwid_disable_cards(state); } function ecwid_show_storefront_card(el, need_show_card) { el.closest('.a-card').hide(); jQuery('[data-storefront-card="' + need_show_card + '"]').show(); } function ecwid_toggle_loading_status(el, close_dropdown) { if (el.hasClass('btn')) { if (typeof close_dropdown != 'undefined') { el.removeClass('btn-loading'); } else { el.addClass('btn-loading'); } } else { el.closest('.feature-element__status').find('.dropdown-menu').toggle(); el.closest('.feature-element__status').find('.iconable-link').toggle(); if (typeof close_dropdown != 'undefined') { el.closest('.feature-element__status').find('.list-dropdown').hide(); } } } function ecwid_disable_cards(status) { jQuery('[data-ec-storefront-disabled-card]').each(function () { var card = jQuery(this); if (card.data('ecStorefrontDisabledCard') == status) { card.find('.iconable-block').addClass('iconable-block--disabled'); card.find('.status-block').addClass('status-block--disabled'); card.find('.cta-block').addClass('cta-block--disabled'); card.find('input').attr('disabled', true); card.find('.btn').attr('disabled', true); } else { card.find('.iconable-block').removeClass('iconable-block--disabled'); card.find('.status-block').removeClass('status-block--disabled'); card.find('.cta-block').removeClass('cta-block--disabled'); card.find('input').attr('disabled', false); card.find('.btn').attr('disabled', false); } }); } function ecwid_update_storepage_link(storepage) { var old_link = jQuery('[data-ec-store-link]').eq(0).attr('href'); jQuery('[data-ec-store-slug]').html(storepage.slug); jQuery('[data-ec-store-slug-input]').val(storepage.slug); jQuery('a').each(function () { if (typeof jQuery(this).attr('href') != 'undefined') { if (jQuery(this).attr('href') == old_link) { jQuery(this).attr('href', storepage.link); } if (jQuery(this).html() == decodeURI(old_link)) { jQuery(this).html(decodeURI(storepage.link)); } } }); }�������������������������������������������������������������������������������ecwid-shopping-cart/js/appearance.js����������������������������������������������������������������0000644�����������������00000000355�15122273603�0013470 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������if (!Modernizr.svg) { for (var i in {grid:1,list:1,table:1}) { var parent = jQuery('.' + i + '.ecwid-pb-view-size .main-area'); parent.find('svg').remove(); parent.append('<div class="fallback-image ' + i + '-image"></div>'); } }�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/cf7designer.js���������������������������������������������������������������0000644�����������������00000000170�15122273603�0013564 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������if (typeof(Ecwid) == 'object') { Ecwid.OnAPILoaded.add(function(page){ jQuery('html').attr('id', 'ecwid_html') }); }��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/dashboard-blog.js������������������������������������������������������������0000644�����������������00000005623�15122273603�0014244 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������jQuery(document).ready(function() { window.ecwidBlogPosts = []; if (ecwidDashboardBlog.posts.length > 0) { renderBlogPosts(ecwidDashboardBlog.posts); } else { jQuery.getJSON( ecwidDashboardBlog.url, {}, function(data) { posts = [], mediaIds = []; for (var i = 0; i < data.length; i++) { post = data[i]; window.ecwidBlogPosts[i] = { 'title': post.title.rendered, 'excerpt': post.excerpt.rendered, 'link': post.link, 'id': post.id }; } renderBlogPosts(); var deferreds = []; for (var i = 0; i < data.length; i++) { deferreds[deferreds.length] = jQuery.getJSON( ecwidDashboardBlog.mediaUrl + data[i].featured_media, function(data) { var imageUrl = ecwidDashboardBlog.imagesCDN + data.media_details.sizes.medium.file; jQuery('.ecwid-post-id-' + data.post + ' .ecwid-blog-post-image').css('background-image', 'url(' + imageUrl + ')'); for (var i = 0; i < window.ecwidBlogPosts.length; i++) if (window.ecwidBlogPosts[i].id == data.post ) { window.ecwidBlogPosts[i].imageFile = data.media_details.sizes.medium.file; } }); } jQuery.when.apply(jQuery, deferreds).done(function() { sendPosts(); }); sendPosts = function() { jQuery.ajax({ 'url': ajaxurl + '?action=' + ecwidDashboardBlog.saveAction, 'method': 'POST', 'data': { 'posts': window.ecwidBlogPosts, '_ajax_nonce': ecwid_admin_menu.ajaxNonce } }); }; sendPosts.posts = posts; } ); } function renderBlogPosts(posts) { if (!posts) { posts = window.ecwidBlogPosts; } for (var i = 0; i < posts.length; i++) { var post = jQuery('#ecwid_blog_feed .template-container .ecwid-blog-post').clone(); post.addClass('ecwid-post-id-' + posts[i].id); jQuery('.ecwid-blog-post-link', post).attr('href', posts[i].link + '?utm_source=wpdashboard'); jQuery('.ecwid-blog-post-title', post).html(posts[i].title); jQuery('.ecwid-blog-post-excerpt', post).html(posts[i].excerpt); if (posts[i].imageFile) { jQuery('.ecwid-blog-post-image', post).css('background-image', 'url(' + ecwidDashboardBlog.imagesCDN + posts[i].imageFile + ')'); } post.appendTo('#ecwid_blog_feed .ecwid-blog-posts'); } } });�������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/dashboard.js�����������������������������������������������������������������0000644�����������������00000003241�15122273603�0013315 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������jQuery(window).on('resize', function() { if (jQuery(this).width() < 768) { jQuery('.ecwid-admin').addClass('width-smaller'); var head = jQuery('.ecwid-dashboard .box .head'); /* head.addClass('drop-down'); head.find('h2').addClass('drop-down-head'); head.find('ul').addClass('drop-down-content open').removeClass('head-links');*/ } else { jQuery('.ecwid-admin').removeClass('width-smaller'); } }).trigger('resize'); show_reconnect = function() { jQuery('<div class="ecwid-popup"></div>').load( 'admin-post.php?action=ecwid_show_reconnect', '', function() { jQuery('.ecwid-popup .close').on('click', function() { jQuery(this).closest('.ecwid-popup').remove(); }); } ).appendTo('body'); } function ecwidSetPopupCentering(iframeSelector) { if (!iframeSelector) { if (console) console.log("Selector should be set"); return; } var iframeElement = document.querySelector(iframeSelector); if (iframeElement === null) { if (console) console.log("Element not found by selector " + iframeSelector); return; } window.addEventListener('scroll', function(e) { sendCenteringSettings(iframeElement); }); window.addEventListener('resize', function(e) { sendCenteringSettings(iframeElement); }); sendCenteringSettings(iframeElement); function sendCenteringSettings(iframeElement) { var scrollTop = window.pageYOffset || document.documentElement.scrollTop; var clientHeight = window.innerHeight; var data = { parentWindowVisibleHeight: clientHeight, visibleHeightAboveIframe: iframeElement.getBoundingClientRect().top }; iframeElement.contentWindow.postMessage(JSON.stringify({data: data, method: 'setupPopupCentering'}), '*'); } } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/defer-actions.js�������������������������������������������������������������0000644�����������������00000001027�15122273603�0014111 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������var ecwidCheckApiCache = function () { if (typeof ecwidCacheControlParams == 'undefined') return; jQuery.getJSON( ecwidCacheControlParams.ajax_url, { action: 'ec_check_api_cache', } ); } jQuery(document).ready(function () { if (document.cookie.search("ecwid_event_is_working_beforeunload") < 0) { ecwidCheckApiCache(); } }); jQuery(window).on('beforeunload', function () { ecwidCheckApiCache(); document.cookie = "ecwid_event_is_working_beforeunload=true"; });���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/dynamic-title.js�������������������������������������������������������������0000644�����������������00000002566�15122273603�0014142 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������jQuery(document).ready(function() { if ( jQuery( '.entry-title' ).length > 0 && typeof Ecwid !== 'undefined' ) { Ecwid.OnPageLoaded.add(function(page) { var alreadyFoundEl = jQuery('h1[data-ecwid-found-title]'); var el = false; if ( alreadyFoundEl .length > 0 ) { el = alreadyFoundEl; } else { el = jQuery('h1').filter( function(idx, el) { if ( el.innerText == ecwidOriginalTitle.initialTitle ) return true; } ); if ( el.length > 0 ) { el.attr('data-ecwid-found-title', 'true'); } } if ( el.length === 0 ) return; var isCategory = page.type === 'CATEGORY'; var isProduct = page.type === 'PRODUCT'; var isNotPbPage = !isCategory && !isProduct; var isHomePage = isCategory && page.categoryId === 0; var newTitle = ''; if ( isNotPbPage || isHomePage ) { newTitle = ecwidOriginalTitle.mainPageTitle; } else { newTitle = jQuery('title').html(); } el.html( newTitle ); }); } });������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/floating-shopping-cart.js����������������������������������������������������0000644�����������������00000001613�15122273603�0015746 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������var EcwidFloatingShoppingCart = function() { var cartIcon = jQuery('.ecwid-cart-icon:first'), cartCounter = jQuery('a', cartIcon); function changeState(cartObj) { if (cartObj.productsQuantity) { cartIcon.removeClass('off'); cartCounter.attr('data-count', cartObj.productsQuantity); } else { cartIcon.addClass('off'); cartCounter.attr('data-count', 0); } } this.init = function() { Ecwid.OnCartChanged.add(function(cartObj) { changeState(cartObj); }); if (ecwid_floating_shopping_cart_options.move_to_body == 1) { jQuery(document).ready(function() { jQuery('body').append(jQuery('.ecwid-float-icons')); }); } } }; if ( typeof ecwid_floating_shopping_cart == 'undefined' && typeof Ecwid != 'undefined' ) { var ecwid_floating_shopping_cart = new EcwidFloatingShoppingCart(); ecwid_floating_shopping_cart.init(); }���������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/frontend.js������������������������������������������������������������������0000644�����������������00000003756�15122273603�0013220 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������window.ec = window.ec || {}; window.ec.config = window.ec.config || {}; window.ec.config.storefrontUrls = window.ec.config.storefrontUrls || {}; jQuery(document).ready(function () { window.ecwidShoppingCartMakeStoreLinksUseApiCall = function ($link) { $link.click(function () { if (typeof Ecwid == 'undefined') { return true; } var page = jQuery(this).data('ecwid-page'); if (page == '/') { if (!ecwidParams.useJsApiToOpenStoreCategoriesPages) { return; } var id = jQuery('[data-ecwid-default-category-id]').data('ecwid-default-category-id'); if (id) { Ecwid.openPage('category', { id: id }); } else { Ecwid.openPage('category', 0); } } else if (page == 'category') { if (ecwidParams.useJsApiToOpenStoreCategoriesPages) { Ecwid.openPage('category', { id: jQuery(this).data('ecwid-category-id') }); jQuery(this).hide().blur().show(); } else { return; } } else if (page == 'product') { Ecwid.openPage('product', { id: jQuery(this).data('ecwid-product-id') }); } else { Ecwid.openPage(page); } return false; }); }; ecwidShoppingCartMakeStoreLinksUseApiCall(jQuery("a[data-ecwid-page]")); ecwidSaveDynamicCss(); }); var ecwidSaveDynamicCss = function () { if (typeof Ecwid != 'undefined') { Ecwid.OnAPILoaded.add(function () { if (typeof window.ec.cssLinkElement !== 'undefined') { document.cookie = "ec_store_dynamic_css=" + window.ec.cssLinkElement.href; } }); } } document.addEventListener('setupAfterEcwidLoaded', (e) => { Ecwid.OnAPILoaded.add(function () { ecwidSaveDynamicCss(); }); });������������������ecwid-shopping-cart/js/historywa.js�����������������������������������������������������������������0000644�����������������00000000136�15122273603�0013417 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������if (!window.History.options) window.History.options = {}; window.History.options.html4Mode=1; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/importer.js������������������������������������������������������������������0000644�����������������00000013111�15122273603�0013224 0����������������������������������������������������������������������������������������������������ustar�00������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� jQuery(document).ready(function () { var status = { 'success': [], 'error': [], 'errorMessages': {}, 'planLimitHit': false, 'imagesTotal': 0 }; switchWooImportState = function (state) { jQuery('[data-ec-importer-state]').hide(); jQuery('[data-ec-importer-state=' + state + ']').show(); jQuery('[data-ec-importer-card-stack]').each(function () { if (jQuery(this).find('.a-card:visible').length > 1) { jQuery(this).addClass('a-card-stack'); } else { jQuery(this).removeClass('a-card-stack'); } }); } showWooImportAlert = function (alert_type) { var block = jQuery('#ec-importer-alert'), block_status = 'success'; if (alert_type == 'warning' || alert_type == 'limit') { block_status = 'warning'; } block.find('[data-ec-importer-alert]').hide(); block.find('[data-ec-importer-alert=' + block_status + ']').show(); block.addClass('a-card--' + block_status); block.find('.iconable-block').addClass('iconable-block--' + block_status); if (alert_type == 'limit') { block.find('[data-ec-importer-alert=limit]').show(); } block.show(); } startWooImport = function () { var settings = {}; do_import = function (start = null) { switchWooImportState('process'); var data = { 'action': ecwid_importer.do_woo_import_action, '_ajax_nonce': ecwid_importer._ajax_nonce, settings: settings }; if (start) { data.reset = 1 } jQuery.ajax({ 'url': ajaxurl, 'data': data, 'success': function (json) { try { data = jQuery.parseJSON(json); processImportProgress(data); } catch (e) { status.errorMessages['json_failed'] = []; status.errorMessages['json_failed'][json] = 1; doImportComplete(status); } }, 'error': function (jqXHR, textStatus, errorThrown) { status.errorMessages[textStatus] = []; status.errorMessages[textStatus][errorThrown] = 1; doImportComplete(status); } }); }; do_import(true); processImportProgress = function (data) { for (var i = 0; i < data.success.length; i++) { if (typeof status.success[data.success[i]] == 'undefined') { status.success[data.success[i]] = 1; } else { status.success[data.success[i]]++; } } for (var i = 0; i < data.error.length; i++) { if (typeof status.error[data.error[i]] == 'undefined') { status.error[data.error[i]] = 1; } else { status.error[data.error[i]]++; } } status.planLimitHit |= typeof data.plan_limit_hit != 'undefined'; if (data.error_messages) { for (var import_type in data.error_messages) { var messages = data.error_messages[import_type]; if (!status.errorMessages[import_type]) { status.errorMessages[import_type] = {}; } for (var message in messages) { if (!status.errorMessages[import_type].hasOwnProperty(message)) { status.errorMessages[import_type][message] = ''; } status.errorMessages[import_type][message] += messages[message]; } } } jQuery('#import-progress-current').text((status.success.create_category || 0) + (status.success.create_product || 0)); status.imagesTotal += data.imagesProcessed; if (status.imagesTotal > 0) { jQuery('[data-ec-importer-process-images]').show(); jQuery('#import-images-progress-total').text(status.imagesTotal); } var imagesUploaded = (status.success.upload_category_image || 0) + (status.success.upload_product_image || 0) + (status.success.upload_product_gallery_image || 0); jQuery('#import-images-progress-current').text(imagesUploaded); if (data.status == 'complete') { doImportComplete(status); } else { do_import(); } } doImportComplete = function (status) { jQuery('#import-results-products').text(status.success.create_product || 0); jQuery('#import-results-categories').text(status.success.create_category || 0); if (status.planLimitHit) { showWooImportAlert('limit'); } else if (Object.keys(status.error).length > 0 || Object.keys(status.errorMessages).length > 0) { showWooImportAlert('warning'); } else { showWooImportAlert('success'); } switchWooImportState('complete'); } }; jQuery('#ec-importer-woo-go').on('click', function () { startWooImport(); }); // Autostart import if (window.location.hash.indexOf('start') != -1) { window.location.hash = ''; startWooImport(); } });�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/minicart-customize-admin.js��������������������������������������������������0000644�����������������00000000756�15122273603�0016312 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������jQuery(document).ready(function() { jQuery('#customize-control-ec_show_floating_cart_widget select').change(function() { if ( jQuery(this).val() == 'do_not_show' ) { jQuery('[id^="customize-control-ec_store_cart"]:not(#customize-control-ec_show_floating_cart_widget)').hide(); } else { jQuery('[id^="customize-control-ec_store_cart"]:not(#customize-control-ec_show_floating_cart_widget)').show(); } }).trigger('change'); })������������������ecwid-shopping-cart/js/minicart-customize.js��������������������������������������������������������0000644�����������������00000002566�15122273603�0015225 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������( function( $ ) { props = [ 'ec_store_cart_widget_layout', 'ec_store_cart_widget_icon', 'ec_store_cart_widget_fixed_shape', 'ec_store_cart_widget_fixed_position', 'ec_store_cart_widget_horizontal_indent', 'ec_store_cart_widget_vertical_indent' ]; propsmap = { 'ec_store_cart_widget_layout': 'layout', 'ec_store_cart_widget_icon': 'icon', 'ec_store_cart_widget_fixed_shape': 'fixed-shape', 'ec_store_cart_widget_fixed_position': 'fixed-position', 'ec_store_cart_widget_horizontal_indent': 'horizontal-indent', 'ec_store_cart_widget_vertical_indent': 'vertical-indent' }; for (var i = 0; i < props.length; i++) { wp.customize(props[i], function( value ) { value.bind( function(newval) { var name = 'data-' + propsmap[this.id]; jQuery('#ec-customize-cart').attr(name, newval).attr('data-ec-widget-loaded', null); Ecwid.renderCartWidget(document.getElementById('ec-customize-cart')); }); }); } wp.customize( 'ec_show_floating_cart_widget', function( value ) { value.bind( function( newval ) { jQuery('#ec-customize-cart').css('display', newval != 'do_not_show' ? 'block' : 'none'); } ); } ); } )( jQuery );������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/modernizr.js�����������������������������������������������������������������0000644�����������������00000144244�15122273603�0013410 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������/*! * Modernizr v2.7.0 * www.modernizr.com * * Copyright (c) Faruk Ates, Paul Irish, Alex Sexton * Available under the BSD and MIT licenses: www.modernizr.com/license/ */ /* * Modernizr tests which native CSS3 and HTML5 features are available in * the current UA and makes the results available to you in two ways: * as properties on a global Modernizr object, and as classes on the * <html> element. This information allows you to progressively enhance * your pages with a granular level of control over the experience. * * Modernizr has an optional (not included) conditional resource loader * called Modernizr.load(), based on Yepnope.js (yepnopejs.com). * To get a build that includes Modernizr.load(), as well as choosing * which tests to include, go to www.modernizr.com/download/ * * Authors Faruk Ates, Paul Irish, Alex Sexton * Contributors Ryan Seddon, Ben Alman */ window.Modernizr = (function( window, document, undefined ) { var version = '2.7.0', Modernizr = {}, /*>>cssclasses*/ // option for enabling the HTML classes to be added enableClasses = true, /*>>cssclasses*/ docElement = document.documentElement, /** * Create our "modernizr" element that we do most feature tests on. */ mod = 'modernizr', modElem = document.createElement(mod), mStyle = modElem.style, /** * Create the input element for various Web Forms feature tests. */ inputElem /*>>inputelem*/ = document.createElement('input') /*>>inputelem*/ , /*>>smile*/ smile = ':)', /*>>smile*/ toString = {}.toString, // TODO :: make the prefixes more granular /*>>prefixes*/ // List of property values to set for css tests. See ticket #21 prefixes = ' -webkit- -moz- -o- -ms- '.split(' '), /*>>prefixes*/ /*>>domprefixes*/ // Following spec is to expose vendor-specific style properties as: // elem.style.WebkitBorderRadius // and the following would be incorrect: // elem.style.webkitBorderRadius // Webkit ghosts their properties in lowercase but Opera & Moz do not. // Microsoft uses a lowercase `ms` instead of the correct `Ms` in IE8+ // erik.eae.net/archives/2008/03/10/21.48.10/ // More here: github.com/Modernizr/Modernizr/issues/issue/21 omPrefixes = 'Webkit Moz O ms', cssomPrefixes = omPrefixes.split(' '), domPrefixes = omPrefixes.toLowerCase().split(' '), /*>>domprefixes*/ /*>>ns*/ ns = {'svg': 'http://www.w3.org/2000/svg'}, /*>>ns*/ tests = {}, inputs = {}, attrs = {}, classes = [], slice = classes.slice, featureName, // used in testing loop /*>>teststyles*/ // Inject element with style element and some CSS rules injectElementWithStyles = function( rule, callback, nodes, testnames ) { var style, ret, node, docOverflow, div = document.createElement('div'), // After page load injecting a fake body doesn't work so check if body exists body = document.body, // IE6 and 7 won't return offsetWidth or offsetHeight unless it's in the body element, so we fake it. fakeBody = body || document.createElement('body'); if ( parseInt(nodes, 10) ) { // In order not to give false positives we create a node for each test // This also allows the method to scale for unspecified uses while ( nodes-- ) { node = document.createElement('div'); node.id = testnames ? testnames[nodes] : mod + (nodes + 1); div.appendChild(node); } } // <style> elements in IE6-9 are considered 'NoScope' elements and therefore will be removed // when injected with innerHTML. To get around this you need to prepend the 'NoScope' element // with a 'scoped' element, in our case the soft-hyphen entity as it won't mess with our measurements. // msdn.microsoft.com/en-us/library/ms533897%28VS.85%29.aspx // Documents served as xml will throw if using ­ so use xml friendly encoded version. See issue #277 style = ['­','<style id="s', mod, '">', rule, '</style>'].join(''); div.id = mod; // IE6 will false positive on some tests due to the style element inside the test div somehow interfering offsetHeight, so insert it into body or fakebody. // Opera will act all quirky when injecting elements in documentElement when page is served as xml, needs fakebody too. #270 (body ? div : fakeBody).innerHTML += style; fakeBody.appendChild(div); if ( !body ) { //avoid crashing IE8, if background image is used fakeBody.style.background = ''; //Safari 5.13/5.1.4 OSX stops loading if ::-webkit-scrollbar is used and scrollbars are visible fakeBody.style.overflow = 'hidden'; docOverflow = docElement.style.overflow; docElement.style.overflow = 'hidden'; docElement.appendChild(fakeBody); } ret = callback(div, rule); // If this is done after page load we don't want to remove the body so check if body exists if ( !body ) { fakeBody.parentNode.removeChild(fakeBody); docElement.style.overflow = docOverflow; } else { div.parentNode.removeChild(div); } return !!ret; }, /*>>teststyles*/ /*>>mq*/ // adapted from matchMedia polyfill // by Scott Jehl and Paul Irish // gist.github.com/786768 testMediaQuery = function( mq ) { var matchMedia = window.matchMedia || window.msMatchMedia; if ( matchMedia ) { return matchMedia(mq).matches; } var bool; injectElementWithStyles('@media ' + mq + ' { #' + mod + ' { position: absolute; } }', function( node ) { bool = (window.getComputedStyle ? getComputedStyle(node, null) : node.currentStyle)['position'] == 'absolute'; }); return bool; }, /*>>mq*/ /*>>hasevent*/ // // isEventSupported determines if a given element supports the given event // kangax.github.com/iseventsupported/ // // The following results are known incorrects: // Modernizr.hasEvent("webkitTransitionEnd", elem) // false negative // Modernizr.hasEvent("textInput") // in Webkit. github.com/Modernizr/Modernizr/issues/333 // ... isEventSupported = (function() { var TAGNAMES = { 'select': 'input', 'change': 'input', 'submit': 'form', 'reset': 'form', 'error': 'img', 'load': 'img', 'abort': 'img' }; function isEventSupported( eventName, element ) { element = element || document.createElement(TAGNAMES[eventName] || 'div'); eventName = 'on' + eventName; // When using `setAttribute`, IE skips "unload", WebKit skips "unload" and "resize", whereas `in` "catches" those var isSupported = eventName in element; if ( !isSupported ) { // If it has no `setAttribute` (i.e. doesn't implement Node interface), try generic element if ( !element.setAttribute ) { element = document.createElement('div'); } if ( element.setAttribute && element.removeAttribute ) { element.setAttribute(eventName, ''); isSupported = is(element[eventName], 'function'); // If property was created, "remove it" (by setting value to `undefined`) if ( !is(element[eventName], 'undefined') ) { element[eventName] = undefined; } element.removeAttribute(eventName); } } element = null; return isSupported; } return isEventSupported; })(), /*>>hasevent*/ // TODO :: Add flag for hasownprop ? didn't last time // hasOwnProperty shim by kangax needed for Safari 2.0 support _hasOwnProperty = ({}).hasOwnProperty, hasOwnProp; if ( !is(_hasOwnProperty, 'undefined') && !is(_hasOwnProperty.call, 'undefined') ) { hasOwnProp = function (object, property) { return _hasOwnProperty.call(object, property); }; } else { hasOwnProp = function (object, property) { /* yes, this can give false positives/negatives, but most of the time we don't care about those */ return ((property in object) && is(object.constructor.prototype[property], 'undefined')); }; } // Adapted from ES5-shim https://github.com/kriskowal/es5-shim/blob/master/es5-shim.js // es5.github.com/#x15.3.4.5 if (!Function.prototype.bind) { Function.prototype.bind = function bind(that) { var target = this; if (typeof target != "function") { throw new TypeError(); } var args = slice.call(arguments, 1), bound = function () { if (this instanceof bound) { var F = function(){}; F.prototype = target.prototype; var self = new F(); var result = target.apply( self, args.concat(slice.call(arguments)) ); if (Object(result) === result) { return result; } return self; } else { return target.apply( that, args.concat(slice.call(arguments)) ); } }; return bound; }; } /** * setCss applies given styles to the Modernizr DOM node. */ function setCss( str ) { mStyle.cssText = str; } /** * setCssAll extrapolates all vendor-specific css strings. */ function setCssAll( str1, str2 ) { return setCss(prefixes.join(str1 + ';') + ( str2 || '' )); } /** * is returns a boolean for if typeof obj is exactly type. */ function is( obj, type ) { return typeof obj === type; } /** * contains returns a boolean for if substr is found within str. */ function contains( str, substr ) { return !!~('' + str).indexOf(substr); } /*>>testprop*/ // testProps is a generic CSS / DOM property test. // In testing support for a given CSS property, it's legit to test: // `elem.style[styleName] !== undefined` // If the property is supported it will return an empty string, // if unsupported it will return undefined. // We'll take advantage of this quick test and skip setting a style // on our modernizr element, but instead just testing undefined vs // empty string. // Because the testing of the CSS property names (with "-", as // opposed to the camelCase DOM properties) is non-portable and // non-standard but works in WebKit and IE (but not Gecko or Opera), // we explicitly reject properties with dashes so that authors // developing in WebKit or IE first don't end up with // browser-specific content by accident. function testProps( props, prefixed ) { for ( var i in props ) { var prop = props[i]; if ( !contains(prop, "-") && mStyle[prop] !== undefined ) { return prefixed == 'pfx' ? prop : true; } } return false; } /*>>testprop*/ // TODO :: add testDOMProps /** * testDOMProps is a generic DOM property test; if a browser supports * a certain property, it won't return undefined for it. */ function testDOMProps( props, obj, elem ) { for ( var i in props ) { var item = obj[props[i]]; if ( item !== undefined) { // return the property name as a string if (elem === false) return props[i]; // let's bind a function if (is(item, 'function')){ // default to autobind unless override return item.bind(elem || obj); } // return the unbound function or obj or value return item; } } return false; } /*>>testallprops*/ /** * testPropsAll tests a list of DOM properties we want to check against. * We specify literally ALL possible (known and/or likely) properties on * the element including the non-vendor prefixed one, for forward- * compatibility. */ function testPropsAll( prop, prefixed, elem ) { var ucProp = prop.charAt(0).toUpperCase() + prop.slice(1), props = (prop + ' ' + cssomPrefixes.join(ucProp + ' ') + ucProp).split(' '); // did they call .prefixed('boxSizing') or are we just testing a prop? if(is(prefixed, "string") || is(prefixed, "undefined")) { return testProps(props, prefixed); // otherwise, they called .prefixed('requestAnimationFrame', window[, elem]) } else { props = (prop + ' ' + (domPrefixes).join(ucProp + ' ') + ucProp).split(' '); return testDOMProps(props, prefixed, elem); } } /*>>testallprops*/ /** * Tests * ----- */ // The *new* flexbox // dev.w3.org/csswg/css3-flexbox tests['flexbox'] = function() { return testPropsAll('flexWrap'); }; // The *old* flexbox // www.w3.org/TR/2009/WD-css3-flexbox-20090723/ tests['flexboxlegacy'] = function() { return testPropsAll('boxDirection'); }; // On the S60 and BB Storm, getContext exists, but always returns undefined // so we actually have to call getContext() to verify // github.com/Modernizr/Modernizr/issues/issue/97/ tests['canvas'] = function() { var elem = document.createElement('canvas'); return !!(elem.getContext && elem.getContext('2d')); }; tests['canvastext'] = function() { return !!(Modernizr['canvas'] && is(document.createElement('canvas').getContext('2d').fillText, 'function')); }; // webk.it/70117 is tracking a legit WebGL feature detect proposal // We do a soft detect which may false positive in order to avoid // an expensive context creation: bugzil.la/732441 tests['webgl'] = function() { return !!window.WebGLRenderingContext; }; /* * The Modernizr.touch test only indicates if the browser supports * touch events, which does not necessarily reflect a touchscreen * device, as evidenced by tablets running Windows 7 or, alas, * the Palm Pre / WebOS (touch) phones. * * Additionally, Chrome (desktop) used to lie about its support on this, * but that has since been rectified: crbug.com/36415 * * We also test for Firefox 4 Multitouch Support. * * For more info, see: modernizr.github.com/Modernizr/touch.html */ tests['touch'] = function() { var bool; if(('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch) { bool = true; } else { injectElementWithStyles(['@media (',prefixes.join('touch-enabled),('),mod,')','{#modernizr{top:9px;position:absolute}}'].join(''), function( node ) { bool = node.offsetTop === 9; }); } return bool; }; // geolocation is often considered a trivial feature detect... // Turns out, it's quite tricky to get right: // // Using !!navigator.geolocation does two things we don't want. It: // 1. Leaks memory in IE9: github.com/Modernizr/Modernizr/issues/513 // 2. Disables page caching in WebKit: webk.it/43956 // // Meanwhile, in Firefox < 8, an about:config setting could expose // a false positive that would throw an exception: bugzil.la/688158 tests['geolocation'] = function() { return 'geolocation' in navigator; }; tests['postmessage'] = function() { return !!window.postMessage; }; // Chrome incognito mode used to throw an exception when using openDatabase // It doesn't anymore. tests['websqldatabase'] = function() { return !!window.openDatabase; }; // Vendors had inconsistent prefixing with the experimental Indexed DB: // - Webkit's implementation is accessible through webkitIndexedDB // - Firefox shipped moz_indexedDB before FF4b9, but since then has been mozIndexedDB // For speed, we don't test the legacy (and beta-only) indexedDB tests['indexedDB'] = function() { return !!testPropsAll("indexedDB", window); }; // documentMode logic from YUI to filter out IE8 Compat Mode // which false positives. tests['hashchange'] = function() { return isEventSupported('hashchange', window) && (document.documentMode === undefined || document.documentMode > 7); }; // Per 1.6: // This used to be Modernizr.historymanagement but the longer // name has been deprecated in favor of a shorter and property-matching one. // The old API is still available in 1.6, but as of 2.0 will throw a warning, // and in the first release thereafter disappear entirely. tests['history'] = function() { return !!(window.history && history.pushState); }; tests['draganddrop'] = function() { var div = document.createElement('div'); return ('draggable' in div) || ('ondragstart' in div && 'ondrop' in div); }; // FF3.6 was EOL'ed on 4/24/12, but the ESR version of FF10 // will be supported until FF19 (2/12/13), at which time, ESR becomes FF17. // FF10 still uses prefixes, so check for it until then. // for more ESR info, see: mozilla.org/en-US/firefox/organizations/faq/ tests['websockets'] = function() { return 'WebSocket' in window || 'MozWebSocket' in window; }; // css-tricks.com/rgba-browser-support/ tests['rgba'] = function() { // Set an rgba() color and check the returned value setCss('background-color:rgba(150,255,150,.5)'); return contains(mStyle.backgroundColor, 'rgba'); }; tests['hsla'] = function() { // Same as rgba(), in fact, browsers re-map hsla() to rgba() internally, // except IE9 who retains it as hsla setCss('background-color:hsla(120,40%,100%,.5)'); return contains(mStyle.backgroundColor, 'rgba') || contains(mStyle.backgroundColor, 'hsla'); }; tests['multiplebgs'] = function() { // Setting multiple images AND a color on the background shorthand property // and then querying the style.background property value for the number of // occurrences of "url(" is a reliable method for detecting ACTUAL support for this! setCss('background:url(https://),url(https://),red url(https://)'); // If the UA supports multiple backgrounds, there should be three occurrences // of the string "url(" in the return value for elemStyle.background return (/(url\s*\(.*?){3}/).test(mStyle.background); }; // this will false positive in Opera Mini // github.com/Modernizr/Modernizr/issues/396 tests['backgroundsize'] = function() { return testPropsAll('backgroundSize'); }; tests['borderimage'] = function() { return testPropsAll('borderImage'); }; // Super comprehensive table about all the unique implementations of // border-radius: muddledramblings.com/table-of-css3-border-radius-compliance tests['borderradius'] = function() { return testPropsAll('borderRadius'); }; // WebOS unfortunately false positives on this test. tests['boxshadow'] = function() { return testPropsAll('boxShadow'); }; // FF3.0 will false positive on this test tests['textshadow'] = function() { return document.createElement('div').style.textShadow === ''; }; tests['opacity'] = function() { // Browsers that actually have CSS Opacity implemented have done so // according to spec, which means their return values are within the // range of [0.0,1.0] - including the leading zero. setCssAll('opacity:.55'); // The non-literal . in this regex is intentional: // German Chrome returns this value as 0,55 // github.com/Modernizr/Modernizr/issues/#issue/59/comment/516632 return (/^0.55$/).test(mStyle.opacity); }; // Note, Android < 4 will pass this test, but can only animate // a single property at a time // daneden.me/2011/12/putting-up-with-androids-bullshit/ tests['cssanimations'] = function() { return testPropsAll('animationName'); }; tests['csscolumns'] = function() { return testPropsAll('columnCount'); }; tests['cssgradients'] = function() { /** * For CSS Gradients syntax, please see: * webkit.org/blog/175/introducing-css-gradients/ * developer.mozilla.org/en/CSS/-moz-linear-gradient * developer.mozilla.org/en/CSS/-moz-radial-gradient * dev.w3.org/csswg/css3-images/#gradients- */ var str1 = 'background-image:', str2 = 'gradient(linear,left top,right bottom,from(#9f9),to(white));', str3 = 'linear-gradient(left top,#9f9, white);'; setCss( // legacy webkit syntax (FIXME: remove when syntax not in use anymore) (str1 + '-webkit- '.split(' ').join(str2 + str1) + // standard syntax // trailing 'background-image:' prefixes.join(str3 + str1)).slice(0, -str1.length) ); return contains(mStyle.backgroundImage, 'gradient'); }; tests['cssreflections'] = function() { return testPropsAll('boxReflect'); }; tests['csstransforms'] = function() { return !!testPropsAll('transform'); }; tests['csstransforms3d'] = function() { var ret = !!testPropsAll('perspective'); // Webkit's 3D transforms are passed off to the browser's own graphics renderer. // It works fine in Safari on Leopard and Snow Leopard, but not in Chrome in // some conditions. As a result, Webkit typically recognizes the syntax but // will sometimes throw a false positive, thus we must do a more thorough check: if ( ret && 'webkitPerspective' in docElement.style ) { // Webkit allows this media query to succeed only if the feature is enabled. // `@media (transform-3d),(-webkit-transform-3d){ ... }` injectElementWithStyles('@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}', function( node, rule ) { ret = node.offsetLeft === 9 && node.offsetHeight === 3; }); } return ret; }; tests['csstransitions'] = function() { return testPropsAll('transition'); }; /*>>fontface*/ // @font-face detection routine by Diego Perini // javascript.nwbox.com/CSSSupport/ // false positives: // WebOS github.com/Modernizr/Modernizr/issues/342 // WP7 github.com/Modernizr/Modernizr/issues/538 tests['fontface'] = function() { var bool; injectElementWithStyles('@font-face {font-family:"font";src:url("https://")}', function( node, rule ) { var style = document.getElementById('smodernizr'), sheet = style.sheet || style.styleSheet, cssText = sheet ? (sheet.cssRules && sheet.cssRules[0] ? sheet.cssRules[0].cssText : sheet.cssText || '') : ''; bool = /src/i.test(cssText) && cssText.indexOf(rule.split(' ')[0]) === 0; }); return bool; }; /*>>fontface*/ // CSS generated content detection tests['generatedcontent'] = function() { var bool; injectElementWithStyles(['#',mod,'{font:0/0 a}#',mod,':after{content:"',smile,'";visibility:hidden;font:3px/1 a}'].join(''), function( node ) { bool = node.offsetHeight >= 3; }); return bool; }; // These tests evaluate support of the video/audio elements, as well as // testing what types of content they support. // // We're using the Boolean constructor here, so that we can extend the value // e.g. Modernizr.video // true // Modernizr.video.ogg // 'probably' // // Codec values from : github.com/NielsLeenheer/html5test/blob/9106a8/index.html#L845 // thx to NielsLeenheer and zcorpan // Note: in some older browsers, "no" was a return value instead of empty string. // It was live in FF3.5.0 and 3.5.1, but fixed in 3.5.2 // It was also live in Safari 4.0.0 - 4.0.4, but fixed in 4.0.5 tests['video'] = function() { var elem = document.createElement('video'), bool = false; // IE9 Running on Windows Server SKU can cause an exception to be thrown, bug #224 try { if ( bool = !!elem.canPlayType ) { bool = new Boolean(bool); bool.ogg = elem.canPlayType('video/ogg; codecs="theora"') .replace(/^no$/,''); // Without QuickTime, this value will be `undefined`. github.com/Modernizr/Modernizr/issues/546 bool.h264 = elem.canPlayType('video/mp4; codecs="avc1.42E01E"') .replace(/^no$/,''); bool.webm = elem.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,''); } } catch(e) { } return bool; }; tests['audio'] = function() { var elem = document.createElement('audio'), bool = false; try { if ( bool = !!elem.canPlayType ) { bool = new Boolean(bool); bool.ogg = elem.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,''); bool.mp3 = elem.canPlayType('audio/mpeg;') .replace(/^no$/,''); // Mimetypes accepted: // developer.mozilla.org/En/Media_formats_supported_by_the_audio_and_video_elements // bit.ly/iphoneoscodecs bool.wav = elem.canPlayType('audio/wav; codecs="1"') .replace(/^no$/,''); bool.m4a = ( elem.canPlayType('audio/x-m4a;') || elem.canPlayType('audio/aac;')) .replace(/^no$/,''); } } catch(e) { } return bool; }; // In FF4, if disabled, window.localStorage should === null. // Normally, we could not test that directly and need to do a // `('localStorage' in window) && ` test first because otherwise Firefox will // throw bugzil.la/365772 if cookies are disabled // Also in iOS5 Private Browsing mode, attempting to use localStorage.setItem // will throw the exception: // QUOTA_EXCEEDED_ERRROR DOM Exception 22. // Peculiarly, getItem and removeItem calls do not throw. // Because we are forced to try/catch this, we'll go aggressive. // Just FWIW: IE8 Compat mode supports these features completely: // www.quirksmode.org/dom/html5.html // But IE8 doesn't support either with local files tests['localstorage'] = function() { try { localStorage.setItem(mod, mod); localStorage.removeItem(mod); return true; } catch(e) { return false; } }; tests['sessionstorage'] = function() { try { sessionStorage.setItem(mod, mod); sessionStorage.removeItem(mod); return true; } catch(e) { return false; } }; tests['webworkers'] = function() { return !!window.Worker; }; tests['applicationcache'] = function() { return !!window.applicationCache; }; // Thanks to Erik Dahlstrom tests['svg'] = function() { return !!document.createElementNS && !!document.createElementNS(ns.svg, 'svg').createSVGRect; }; // specifically for SVG inline in HTML, not within XHTML // test page: paulirish.com/demo/inline-svg tests['inlinesvg'] = function() { var div = document.createElement('div'); div.innerHTML = '<svg/>'; return (div.firstChild && div.firstChild.namespaceURI) == ns.svg; }; // SVG SMIL animation tests['smil'] = function() { return !!document.createElementNS && /SVGAnimate/.test(toString.call(document.createElementNS(ns.svg, 'animate'))); }; // This test is only for clip paths in SVG proper, not clip paths on HTML content // demo: srufaculty.sru.edu/david.dailey/svg/newstuff/clipPath4.svg // However read the comments to dig into applying SVG clippaths to HTML content here: // github.com/Modernizr/Modernizr/issues/213#issuecomment-1149491 tests['svgclippaths'] = function() { return !!document.createElementNS && /SVGClipPath/.test(toString.call(document.createElementNS(ns.svg, 'clipPath'))); }; /*>>webforms*/ // input features and input types go directly onto the ret object, bypassing the tests loop. // Hold this guy to execute in a moment. function webforms() { /*>>input*/ // Run through HTML5's new input attributes to see if the UA understands any. // We're using f which is the <input> element created early on // Mike Taylr has created a comprehensive resource for testing these attributes // when applied to all input types: // miketaylr.com/code/input-type-attr.html // spec: www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary // Only input placeholder is tested while textarea's placeholder is not. // Currently Safari 4 and Opera 11 have support only for the input placeholder // Both tests are available in feature-detects/forms-placeholder.js Modernizr['input'] = (function( props ) { for ( var i = 0, len = props.length; i < len; i++ ) { attrs[ props[i] ] = !!(props[i] in inputElem); } if (attrs.list){ // safari false positive's on datalist: webk.it/74252 // see also github.com/Modernizr/Modernizr/issues/146 attrs.list = !!(document.createElement('datalist') && window.HTMLDataListElement); } return attrs; })('autocomplete autofocus list placeholder max min multiple pattern required step'.split(' ')); /*>>input*/ /*>>inputtypes*/ // Run through HTML5's new input types to see if the UA understands any. // This is put behind the tests runloop because it doesn't return a // true/false like all the other tests; instead, it returns an object // containing each input type with its corresponding true/false value // Big thanks to @miketaylr for the html5 forms expertise. miketaylr.com/ Modernizr['inputtypes'] = (function(props) { for ( var i = 0, bool, inputElemType, defaultView, len = props.length; i < len; i++ ) { inputElem.setAttribute('type', inputElemType = props[i]); bool = inputElem.type !== 'text'; // We first check to see if the type we give it sticks.. // If the type does, we feed it a textual value, which shouldn't be valid. // If the value doesn't stick, we know there's input sanitization which infers a custom UI if ( bool ) { inputElem.value = smile; inputElem.style.cssText = 'position:absolute;visibility:hidden;'; if ( /^range$/.test(inputElemType) && inputElem.style.WebkitAppearance !== undefined ) { docElement.appendChild(inputElem); defaultView = document.defaultView; // Safari 2-4 allows the smiley as a value, despite making a slider bool = defaultView.getComputedStyle && defaultView.getComputedStyle(inputElem, null).WebkitAppearance !== 'textfield' && // Mobile android web browser has false positive, so must // check the height to see if the widget is actually there. (inputElem.offsetHeight !== 0); docElement.removeChild(inputElem); } else if ( /^(search|tel)$/.test(inputElemType) ){ // Spec doesn't define any special parsing or detectable UI // behaviors so we pass these through as true // Interestingly, opera fails the earlier test, so it doesn't // even make it here. } else if ( /^(url|email)$/.test(inputElemType) ) { // Real url and email support comes with prebaked validation. bool = inputElem.checkValidity && inputElem.checkValidity() === false; } else { // If the upgraded input compontent rejects the :) text, we got a winner bool = inputElem.value != smile; } } inputs[ props[i] ] = !!bool; } return inputs; })('search tel url email datetime date month week time datetime-local number range color'.split(' ')); /*>>inputtypes*/ } /*>>webforms*/ // End of test definitions // ----------------------- // Run through all tests and detect their support in the current UA. // todo: hypothetically we could be doing an array of tests and use a basic loop here. for ( var feature in tests ) { if ( hasOwnProp(tests, feature) ) { // run the test, throw the return value into the Modernizr, // then based on that boolean, define an appropriate className // and push it into an array of classes we'll join later. featureName = feature.toLowerCase(); Modernizr[featureName] = tests[feature](); classes.push((Modernizr[featureName] ? '' : 'no-') + featureName); } } /*>>webforms*/ // input tests need to run. Modernizr.input || webforms(); /*>>webforms*/ /** * addTest allows the user to define their own feature tests * the result will be added onto the Modernizr object, * as well as an appropriate className set on the html element * * @param feature - String naming the feature * @param test - Function returning true if feature is supported, false if not */ Modernizr.addTest = function ( feature, test ) { if ( typeof feature == 'object' ) { for ( var key in feature ) { if ( hasOwnProp( feature, key ) ) { Modernizr.addTest( key, feature[ key ] ); } } } else { feature = feature.toLowerCase(); if ( Modernizr[feature] !== undefined ) { // we're going to quit if you're trying to overwrite an existing test // if we were to allow it, we'd do this: // var re = new RegExp("\\b(no-)?" + feature + "\\b"); // docElement.className = docElement.className.replace( re, '' ); // but, no rly, stuff 'em. return Modernizr; } test = typeof test == 'function' ? test() : test; if (typeof enableClasses !== "undefined" && enableClasses) { docElement.className += ' ' + (test ? '' : 'no-') + feature; } Modernizr[feature] = test; } return Modernizr; // allow chaining. }; // Reset modElem.cssText to nothing to reduce memory footprint. setCss(''); modElem = inputElem = null; /*>>shiv*/ /** * @preserve HTML5 Shiv prev3.7.1 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed */ ;(function(window, document) { /*jshint evil:true */ /** version */ var version = '3.7.0'; /** Preset options */ var options = window.html5 || {}; /** Used to skip problem elements */ var reSkip = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i; /** Not all elements can be cloned in IE **/ var saveClones = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i; /** Detect whether the browser supports default html5 styles */ var supportsHtml5Styles; /** Name of the expando, to work with multiple documents or to re-shiv one document */ var expando = '_html5shiv'; /** The id for the the documents expando */ var expanID = 0; /** Cached data for each document */ var expandoData = {}; /** Detect whether the browser supports unknown elements */ var supportsUnknownElements; (function() { try { var a = document.createElement('a'); a.innerHTML = '<xyz></xyz>'; //if the hidden property is implemented we can assume, that the browser supports basic HTML5 Styles supportsHtml5Styles = ('hidden' in a); supportsUnknownElements = a.childNodes.length == 1 || (function() { // assign a false positive if unable to shiv (document.createElement)('a'); var frag = document.createDocumentFragment(); return ( typeof frag.cloneNode == 'undefined' || typeof frag.createDocumentFragment == 'undefined' || typeof frag.createElement == 'undefined' ); }()); } catch(e) { // assign a false positive if detection fails => unable to shiv supportsHtml5Styles = true; supportsUnknownElements = true; } }()); /*--------------------------------------------------------------------------*/ /** * Creates a style sheet with the given CSS text and adds it to the document. * @private * @param {Document} ownerDocument The document. * @param {String} cssText The CSS text. * @returns {StyleSheet} The style element. */ function addStyleSheet(ownerDocument, cssText) { var p = ownerDocument.createElement('p'), parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement; p.innerHTML = 'x<style>' + cssText + '</style>'; return parent.insertBefore(p.lastChild, parent.firstChild); } /** * Returns the value of `html5.elements` as an array. * @private * @returns {Array} An array of shived element node names. */ function getElements() { var elements = html5.elements; return typeof elements == 'string' ? elements.split(' ') : elements; } /** * Returns the data associated to the given document * @private * @param {Document} ownerDocument The document. * @returns {Object} An object of data. */ function getExpandoData(ownerDocument) { var data = expandoData[ownerDocument[expando]]; if (!data) { data = {}; expanID++; ownerDocument[expando] = expanID; expandoData[expanID] = data; } return data; } /** * returns a shived element for the given nodeName and document * @memberOf html5 * @param {String} nodeName name of the element * @param {Document} ownerDocument The context document. * @returns {Object} The shived element. */ function createElement(nodeName, ownerDocument, data){ if (!ownerDocument) { ownerDocument = document; } if(supportsUnknownElements){ return ownerDocument.createElement(nodeName); } if (!data) { data = getExpandoData(ownerDocument); } var node; if (data.cache[nodeName]) { node = data.cache[nodeName].cloneNode(); } else if (saveClones.test(nodeName)) { node = (data.cache[nodeName] = data.createElem(nodeName)).cloneNode(); } else { node = data.createElem(nodeName); } // Avoid adding some elements to fragments in IE < 9 because // * Attributes like `name` or `type` cannot be set/changed once an element // is inserted into a document/fragment // * Link elements with `src` attributes that are inaccessible, as with // a 403 response, will cause the tab/window to crash // * Script elements appended to fragments will execute when their `src` // or `text` property is set return node.canHaveChildren && !reSkip.test(nodeName) && !node.tagUrn ? data.frag.appendChild(node) : node; } /** * returns a shived DocumentFragment for the given document * @memberOf html5 * @param {Document} ownerDocument The context document. * @returns {Object} The shived DocumentFragment. */ function createDocumentFragment(ownerDocument, data){ if (!ownerDocument) { ownerDocument = document; } if(supportsUnknownElements){ return ownerDocument.createDocumentFragment(); } data = data || getExpandoData(ownerDocument); var clone = data.frag.cloneNode(), i = 0, elems = getElements(), l = elems.length; for(;i<l;i++){ clone.createElement(elems[i]); } return clone; } /** * Shivs the `createElement` and `createDocumentFragment` methods of the document. * @private * @param {Document|DocumentFragment} ownerDocument The document. * @param {Object} data of the document. */ function shivMethods(ownerDocument, data) { if (!data.cache) { data.cache = {}; data.createElem = ownerDocument.createElement; data.createFrag = ownerDocument.createDocumentFragment; data.frag = data.createFrag(); } ownerDocument.createElement = function(nodeName) { //abort shiv if (!html5.shivMethods) { return data.createElem(nodeName); } return createElement(nodeName, ownerDocument, data); }; ownerDocument.createDocumentFragment = Function('h,f', 'return function(){' + 'var n=f.cloneNode(),c=n.createElement;' + 'h.shivMethods&&(' + // unroll the `createElement` calls getElements().join().replace(/[\w\-]+/g, function(nodeName) { data.createElem(nodeName); data.frag.createElement(nodeName); return 'c("' + nodeName + '")'; }) + ');return n}' )(html5, data.frag); } /*--------------------------------------------------------------------------*/ /** * Shivs the given document. * @memberOf html5 * @param {Document} ownerDocument The document to shiv. * @returns {Document} The shived document. */ function shivDocument(ownerDocument) { if (!ownerDocument) { ownerDocument = document; } var data = getExpandoData(ownerDocument); if (html5.shivCSS && !supportsHtml5Styles && !data.hasCSS) { data.hasCSS = !!addStyleSheet(ownerDocument, // corrects block display not defined in IE6/7/8/9 'article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}' + // adds styling not present in IE6/7/8/9 'mark{background:#FF0;color:#000}' + // hides non-rendered elements 'template{display:none}' ); } if (!supportsUnknownElements) { shivMethods(ownerDocument, data); } return ownerDocument; } /*--------------------------------------------------------------------------*/ /** * The `html5` object is exposed so that more elements can be shived and * existing shiving can be detected on iframes. * @type Object * @example * * // options can be changed before the script is included * html5 = { 'elements': 'mark section', 'shivCSS': false, 'shivMethods': false }; */ var html5 = { /** * An array or space separated string of node names of the elements to shiv. * @memberOf html5 * @type Array|String */ 'elements': options.elements || 'abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video', /** * current version of html5shiv */ 'version': version, /** * A flag to indicate that the HTML5 style sheet should be inserted. * @memberOf html5 * @type Boolean */ 'shivCSS': (options.shivCSS !== false), /** * Is equal to true if a browser supports creating unknown/HTML5 elements * @memberOf html5 * @type boolean */ 'supportsUnknownElements': supportsUnknownElements, /** * A flag to indicate that the document's `createElement` and `createDocumentFragment` * methods should be overwritten. * @memberOf html5 * @type Boolean */ 'shivMethods': (options.shivMethods !== false), /** * A string to describe the type of `html5` object ("default" or "default print"). * @memberOf html5 * @type String */ 'type': 'default', // shivs the document according to the specified `html5` object options 'shivDocument': shivDocument, //creates a shived element createElement: createElement, //creates a shived documentFragment createDocumentFragment: createDocumentFragment }; /*--------------------------------------------------------------------------*/ // expose html5 window.html5 = html5; // shiv the document shivDocument(document); }(this, document)); /*>>shiv*/ // Assign private properties to the return object with prefix Modernizr._version = version; // expose these for the plugin API. Look in the source for how to join() them against your input /*>>prefixes*/ Modernizr._prefixes = prefixes; /*>>prefixes*/ /*>>domprefixes*/ Modernizr._domPrefixes = domPrefixes; Modernizr._cssomPrefixes = cssomPrefixes; /*>>domprefixes*/ /*>>mq*/ // Modernizr.mq tests a given media query, live against the current state of the window // A few important notes: // * If a browser does not support media queries at all (eg. oldIE) the mq() will always return false // * A max-width or orientation query will be evaluated against the current state, which may change later. // * You must specify values. Eg. If you are testing support for the min-width media query use: // Modernizr.mq('(min-width:0)') // usage: // Modernizr.mq('only screen and (max-width:768)') Modernizr.mq = testMediaQuery; /*>>mq*/ /*>>hasevent*/ // Modernizr.hasEvent() detects support for a given event, with an optional element to test on // Modernizr.hasEvent('gesturestart', elem) Modernizr.hasEvent = isEventSupported; /*>>hasevent*/ /*>>testprop*/ // Modernizr.testProp() investigates whether a given style property is recognized // Note that the property names must be provided in the camelCase variant. // Modernizr.testProp('pointerEvents') Modernizr.testProp = function(prop){ return testProps([prop]); }; /*>>testprop*/ /*>>testallprops*/ // Modernizr.testAllProps() investigates whether a given style property, // or any of its vendor-prefixed variants, is recognized // Note that the property names must be provided in the camelCase variant. // Modernizr.testAllProps('boxSizing') Modernizr.testAllProps = testPropsAll; /*>>testallprops*/ /*>>teststyles*/ // Modernizr.testStyles() allows you to add custom styles to the document and test an element afterwards // Modernizr.testStyles('#modernizr { position:absolute }', function(elem, rule){ ... }) Modernizr.testStyles = injectElementWithStyles; /*>>teststyles*/ /*>>prefixed*/ // Modernizr.prefixed() returns the prefixed or nonprefixed property name variant of your input // Modernizr.prefixed('boxSizing') // 'MozBoxSizing' // Properties must be passed as dom-style camelcase, rather than `box-sizing` hypentated style. // Return values will also be the camelCase variant, if you need to translate that to hypenated style use: // // str.replace(/([A-Z])/g, function(str,m1){ return '-' + m1.toLowerCase(); }).replace(/^ms-/,'-ms-'); // If you're trying to ascertain which transition end event to bind to, you might do something like... // // var transEndEventNames = { // 'WebkitTransition' : 'webkitTransitionEnd', // 'MozTransition' : 'transitionend', // 'OTransition' : 'oTransitionEnd', // 'msTransition' : 'MSTransitionEnd', // 'transition' : 'transitionend' // }, // transEndEventName = transEndEventNames[ Modernizr.prefixed('transition') ]; Modernizr.prefixed = function(prop, obj, elem){ if(!obj) { return testPropsAll(prop, 'pfx'); } else { // Testing DOM property e.g. Modernizr.prefixed('requestAnimationFrame', window) // 'mozRequestAnimationFrame' return testPropsAll(prop, obj, elem); } }; /*>>prefixed*/ /*>>cssclasses*/ // Remove "no-js" class from <html> element, if it exists: docElement.className = docElement.className.replace(/(^|\s)no-js(\s|$)/, '$1$2') + // Add the new classes to the <html> element. (enableClasses ? ' js ' + classes.join(' ') : ''); /*>>cssclasses*/ return Modernizr; })(this, this.document); ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/nav-menu-frontend.js���������������������������������������������������������0000644�����������������00000005772�15122273603�0014744 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������jQuery(document).ready(function() { if (typeof Ecwid == 'undefined') return; refreshEcwidMenuItemsSelection(); Ecwid.OnPageLoaded.add(function(page) { if (page.type == 'CART') { window.ecwidCurrentMenuPage = 'cart'; } else if (page.type == 'ACCOUNT_SETTINGS' || page.type == 'ORDERS' || page.type == 'ADDRESS_BOOK') { window.ecwidCurrentMenuPage = 'my-account'; } else if (page.type == 'SEARCH') { window.ecwidCurrentMenuPage = 'product-search'; } else { window.ecwidCurrentMenuPage = 'store'; } }); Ecwid.OnPageLoaded.add(refreshEcwidMenuItemsSelection); function refreshEcwidMenuItemsSelection(page) { $allMenus = jQuery('ul').has('li.menu-item'); $allMenus.each(function (idx, el) { var current = findCurrentEcwidMenuItem(el, page); if (current) { highlightCurrentMenuItem(el, current); } }); } function highlightCurrentMenuItem(menu, item) { jQuery('.current_page_item', menu).removeClass('current_page_item'); jQuery('.current-menu-item', menu).removeClass('current-menu-item'); item.addClass('current-menu-item current_page_item'); } function findCurrentEcwidMenuItem(menuElement, page) { if (page) { var endswith = null; if (page.type == 'CATEGORY') { if (page.categoryId == 0) { endswith = ''; } else { endswith = 'c' + page.categoryId; } }else if (page.type == 'PRODUCT') { endswith = 'p' + page.productId; } if (endswith != null) { if (endswith == '') { endswith = ec.config.baseUrl; } var selector = '>li a[href*="' + ec.config.baseUrl + '"]'; var exactCatalogPage = jQuery('>li a[href$="' + endswith + '"][href*="' + ec.config.baseUrl + '"]', menuElement).closest('li'); if (exactCatalogPage.length > 0) { return exactCatalogPage; } } } var specificMenuItem = findSpecificMenuItem(menuElement); if (specificMenuItem) { return specificMenuItem; } var storeMenuItem = findStoreMenuItem(menuElement); if (storeMenuItem) { return storeMenuItem; } return null; } function findSpecificMenuItem(menuElement) { var currentPage = getCurrentEcwidPage(); var currentMenuItem = null; if (['my-account', 'product-search', 'cart'].indexOf(currentPage) != -1) { currentMenuItem = jQuery('>li.menu-item-object-' + ecwid_menu_data.items['ecwid-' + currentPage]['classes'], menuElement); if (currentMenuItem.length > 0) { return currentMenuItem; } } return null; } function findStoreMenuItem(menuElement) { var currentMenuItem = null; var storeItems = ['ecwid-store', 'ecwid-store-with-categories']; for (var i = 0; i < storeItems.length; i++) { currentMenuItem = jQuery('>li.menu-item-object-' + ecwid_menu_data.items[storeItems[i]]['classes'], menuElement); if (currentMenuItem.length > 0) { return currentMenuItem; } } return null; } function getCurrentEcwidPage() { if (!window.ecwidCurrentMenuPage) { window.ecwidCurrentMenuPage = 'store'; } return window.ecwidCurrentMenuPage; } })������ecwid-shopping-cart/js/nav-menu.js������������������������������������������������������������������0000644�����������������00000006277�15122273603�0013130 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������jQuery(document).ready(function() { var ecwidClasses = {}; for (var i in ecwid_nav_menu_params.items) { ecwidClasses[i] = ecwid_nav_menu_params.items[i].name; } if (ecwid_nav_menu_params.first_run && jQuery('#ecwid_nav_links-hide:checked').length == 0) { jQuery('#ecwid_nav_links-hide').click(); } processEcwidLinks = function(element) { var ecwidLink = findEcwidLink(element); if (!findEcwidLink(element)) return; if (jQuery(element).hasClass('ecwid-link')) return; jQuery(element).addClass('ecwid-link'); jQuery(element).find('.item-type').text(ecwid_nav_menu_params.store_page); if (isStoreWithCategories(element)) { var $message = jQuery('<p>') .addClass('ecwid-store-with-cats-message') .text(ecwid_nav_menu_params.reset_cache_message) .insertAfter(jQuery('.field-move', element)); $target = jQuery('<p class="ecwid-store-with-cats-reset-cache">').insertAfter($message); jQuery('<span>') .text(ecwid_nav_menu_params.cache_updated) .addClass('ecwid-reset-categories-cache-updated') .appendTo($target); jQuery('<a>') .text(ecwid_nav_menu_params.reset_cats_cache) .attr('href', 'javascript:void(0);') .addClass('ecwid-reset-categories-cache') .appendTo($target) .on('click', function() { var that = this; jQuery(this).css('cursor', 'wait'); resetCache(function() { jQuery(that).fadeOut(100, function() { jQuery(that).prev('.ecwid-reset-categories-cache-updated').fadeIn(100, function() { setTimeout(function () { jQuery(that).prev('.ecwid-reset-categories-cache-updated').fadeOut(500, function () { jQuery(that).fadeIn(500); }) }, 4000); }); }); jQuery(that).css('cursor', 'pointer'); }); }); } } findEcwidLink = function(element) { for (var i in ecwidClasses) { if (jQuery(element).hasClass('menu-item-' + i)) { return i; } } return false; } isStoreWithCategories = function(element) { return jQuery(element).hasClass('menu-item-ecwid-store-with-categories'); } resetCache = function(callback) { jQuery.getJSON( 'admin-ajax.php', { action: 'ecwid_reset_categories_cache' }, callback ); } jQuery('ul.menu > li.menu-item').each(function(idx, el) { processEcwidLinks(el); }); jQuery('#ecwid_nav_links').insertAfter(jQuery('#add-page')); jQuery('#menu-to-edit').on('DOMNodeInserted', function(e) { if (!jQuery(e.srcElement).hasClass('menu-item')) return; processEcwidLinks(e.srcElement); }); });���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/popup-deactivate.js����������������������������������������������������������0000644�����������������00000002667�15122273603�0014653 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������jQuery(document).ready(function() { var deactivateButton = jQuery('tr[data-slug="ecwid-shopping-cart"] .deactivate a'); jQuery('input[name=reason]').on('click', function() { jQuery('.reasons-list-item').removeClass('selected'); jQuery(this).closest('.reasons-list-item').addClass('selected'); }); deactivateButton.on('click', function() { jQuery('.ecwid-popup-deactivate').addClass('open'); jQuery('body').addClass('ecwid-popup-open'); return false; }); function gatherFeedback() { var feedback = {}; var reasonElement = jQuery('.ecwid-popup-deactivate input[name=reason]:checked'); feedback.reason = reasonElement.val(); feedback.reasonText = reasonElement.attr('data-text'); feedback.message = jQuery('.ecwid-popup-deactivate textarea[name="message[' + feedback.reason + ']"]').val(); return feedback; } jQuery('.ecwid-popup-deactivate .deactivate').on('click', function() { feedback = gatherFeedback(); jQuery.ajax({ url: wp.ajax.settings.url, data: { action: 'ecwid_deactivate_feedback', reason: feedback.reason, message: feedback.message }, complete: function() { location.href = deactivateButton.attr('href'); } }); }); });�������������������������������������������������������������������������ecwid-shopping-cart/js/popup.js���������������������������������������������������������������������0000644�����������������00000001060�15122273603�0012526 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������jQuery('document').ready(function() { jQuery('.ecwid-popup').on('click', function(e) { var $popup = jQuery('.ecwid-popup-window', this); if (!$popup.is(e.target) && $popup.has(e.target).length === 0) { jQuery(this).removeClass('open'); jQuery('body').removeClass('ecwid-popup-open'); } }); jQuery('.ecwid-popup .btn-close').on('click', function() { jQuery(this).closest('.ecwid-popup').removeClass('open'); jQuery('body').removeClass('ecwid-popup-open'); }); });��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/post-product.js��������������������������������������������������������������0000644�����������������00000000332�15122273603�0014027 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������if (typeof Ecwid != 'undefined') { Ecwid.OnPageLoad.add(function(page) { if ( page.type != 'PRODUCT' || page.productId != ecwidPost.productId ) { location.href = ecwidPost.storePageUrl + location.hash; } }); }������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/product-popup.js�������������������������������������������������������������0000644�����������������00000046664�15122273603�0014227 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������jQuery(document).ready(function () { if (typeof wp !== 'undefined' && typeof wp.blocks !== 'undefined') { jQuery('#ecwid-product-popup-content').addClass('ec-store-gutenberg'); } var popup = function () { return jQuery('#ecwid-product-popup-content'); }; popup().data('defaultSortBy', 'ADDED_TIME_DESC'); jQuery(document).on('click', '#insert-ecwid-product-button', function () { openPopup(); return false; }); openPopup = function () { if (ecwidSpwParams && typeof ecwidSpwParams.no_token != 'undefined') { location.href = 'admin.php?page=ec-store&reconnect&reason=spw'; return false; } changeTab('add-product'); populateWidgetParams(); setSearchParams({}); if (getInitialSearchData()) { buildProductsTable(getInitialSearchData()); } else { updateSearchParams(); } setSelectedProduct(null); if (popup().data('params')) { var props = popup().data('params').props.attributes; if (props.id) { setSelectedProduct( { 'id': props.id } ); } changeMode('selected-product'); } if (!getSelectedProduct()) { changeMode('add-product'); } popup().addClass('open'); } popup().data('openPopup', openPopup); jQuery(document).keydown(function (e) { if (e.keyCode == 27 && popup().hasClass('open')) { popup().removeClass('open'); return false; } }); jQuery('.media-modal-close', popup()).click(function () { popup().removeClass('open'); }); jQuery('.toolbar-link', popup()).click(function () { changeTab(jQuery(this).data('content')); return false; }) var populateWidgetParams = function () { var params; if (popup().data('params') && popup().data('params').props.attributes.id) { var selectedParams = popup().data('params').props.attributes; params = { 'display': [] }; var displayMap = [ 'picture', 'title', 'price', 'options', 'addtobag', 'qty' ]; for (var i = 0; i < displayMap.length; i++) { var param = displayMap[i]; if (selectedParams['show_' + param]) { params.display[param] = true; } } var shortcodeMap = [ 'show_price_on_button', 'show_border', 'center_align' ]; for (var i = 0; i < shortcodeMap.length; i++) { var name = shortcodeMap[i]; params.attributes = params.attributes || {}; if (selectedParams[name]) params.attributes[name] = selectedParams[name]; } } else { params = ecwidSpwParams; } if (params && params.display) { jQuery('input[type=checkbox]', popup()).prop('checked', false); for (var i in params.display) { jQuery('input[type=checkbox][data-display-option=' + i + ']') .prop('checked', true); } for (var i in params.attributes) { jQuery('input[type=checkbox][data-shortcode-attribute=' + i + ']') .prop('checked', true); } } }; var changeTab = function (tab) { jQuery('.media-menu .media-menu-item', popup()).removeClass('active'); jQuery('.media-menu .media-menu-item[data-content=' + tab + ']', popup()).addClass('active'); jQuery('.media-modal-content', popup()).attr('data-active-dialog', tab); jQuery('.media-menu', popup()).removeClass('visible'); jQuery('.toolbar-link').show(); jQuery('.toolbar-link[data-content=' + tab + ']', popup()).hide(); } var changeMode = function (mode) { jQuery('.media-modal-content', popup()).attr('data-mode', mode); } jQuery('.media-menu-item', popup()).click(function () { changeTab(jQuery(this).attr('data-content')); return false; }); var closeTopMenuOnExternalClick = function (e) { jQuery('.media-menu').toggleClass('visible'); popup().unbind('click', closeTopMenuOnExternalClick); } jQuery('h1', popup()).click(function (e) { e.stopPropagation(); jQuery('.media-menu').toggleClass('visible'); popup().click(closeTopMenuOnExternalClick); }); jQuery('.media-button-select, .media-button-update', popup()).click(function () { if (popup().data('params') && popup().data('params').saveCallback) { popup().data('params').saveCallback({ originalProps: popup().data('params').props, newProps: buildOutputParams() }); } else { var shortcode = buildShortcode(); if (tinymce.activeEditor && !tinymce.activeEditor.isHidden()) { tinymce.activeEditor.execCommand('mceInsertContent', false, shortcode); } else { getCursorPosition = function (el) { var pos = 0; if ('selectionStart' in el) { pos = el.selectionStart; } else if ('selection' in document) { el.focus(); var Sel = document.selection.createRange(); var SelLength = document.selection.createRange().text.length; Sel.moveStart('character', -el.value.length); pos = Sel.text.length - SelLength; } return pos; }; var el = jQuery('#content'); var cursorPosition = getCursorPosition(el.get(0)); el.val(el.val().substr(0, cursorPosition) + shortcode + el.val().substr(cursorPosition)); } saveParams(); } popup().removeClass('open'); }); var saveParams = function () { var params = { display: {}, attributes: {} }; jQuery('input[type=checkbox][data-display-option]:checked').each(function (idx, el) { params.display[jQuery(el).data('display-option')] = 1; }); jQuery('input[type=checkbox][data-shortcode-attribute]:checked').each(function (idx, el) { params.attributes[jQuery(el).data('shortcode-attribute')] = 1; }); jQuery.getJSON(ajaxurl, { action: 'ecwid-save-spw-params', params: params, _ajax_nonce: EcwidProductPopup._ajax_nonce }); ecwidSpwParams.display = params.display; ecwidSpwParams.attributes = params.attributes; }; var buildShortcode = function () { var params = buildOutputParams(); var params_order = ['id', 'display', 'version', 'show_border', 'show_price_on_button', 'center_align']; if (params.display.length == 0) { params.display = 'picture title price options addtobag'; } else { params.display = params.display.join(' '); } var shortcode = '[' + ecwid_params.product_shortcode; for (var i = 0; i < params_order.length; i++) { shortcode += ' ' + params_order[i] + '="' + params[params_order[i]] + '"'; } shortcode += ']'; return shortcode; }; var buildOutputParams = function () { var params = {}; product = getSelectedProduct(); params.id = product.id; params.version = '2'; params.display = []; params.product = product; jQuery('input[type=checkbox][data-display-option]:checked').each(function (idx, el) { params.display[params.display.length] = jQuery(el).data('display-option'); }); jQuery('input[type=checkbox][data-shortcode-attribute]').each(function (idx, el) { params[jQuery(el).data('shortcode-attribute')] = jQuery(el).is(':checked') ? 1 : 0; }); return params; } var setSelectedProduct = function (product) { popup().data('currentProduct', product); updateFormOnCurrentProduct(); }; var getSelectedProduct = function () { return popup().data('currentProduct'); }; var setInitialSearchData = function (data) { popup().data('initialSearchData', data); }; var getInitialSearchData = function () { return popup().data('initialSearchData'); }; var setSearchParams = function (params) { if (typeof params.page == 'undefined') { params.page = 1; } popup().data('searchParams', params); }; var getSearchParams = function () { var params = popup().data('searchParams'); if (!params) { params = { page: 1, sortBy: popup().data('defaultSortBy') }; } return params; }; var updateFormOnCurrentProduct = function () { var product = getSelectedProduct(); if (product) { jQuery('.media-button-select, .media-button-update', popup()).removeClass('disabled'); } else { jQuery('.media-button-select, .media-button-update', popup()).addClass('disabled'); } } var clickProduct = function () { if (jQuery('.empty-page', this).length > 0) { return; } if (jQuery(this).hasClass('selected-product')) { jQuery(this).closest('tbody').find('tr').removeClass('selected-product'); setSelectedProduct(null); } else { jQuery(this).closest('tbody').find('tr').removeClass('selected-product'); jQuery(this).addClass('selected-product'); setSelectedProduct(jQuery(this).data('productData')); } }; var ecwidSpwSearchProducts = function () { var data = { 'action': 'ecwid-search-products' }; var params = popup().data('searchParams'); if (params) { if (params.keyword) { data.keyword = params.keyword; } if (params.sortBy) { data.sortBy = params.sortBy; } if (params.page) { data.page = params.page; } } jQuery('#search-submit').addClass('searching'); jQuery.getJSON(ajaxurl, data, buildProductsTable); } var buildProductsTable = function (data) { if (data == null) { data = { total: 0, limit: 1 } } var params = {}; if (Math.ceil(data.total / data.limit) < getSearchParams().page) { params = getSearchParams(); params.page = 1; setSearchParams(params); } var enabledPageTemplate = wp.template('pagination-button-enabled'); var disabledPageTemplate = wp.template('pagination-button-disabled'); var totalPages = Math.ceil(data.total / data.limit); var prevPages = ''; var nextPages = ''; if (totalPages > 1) { if (getSearchParams() && getSearchParams().page == 1) { prevPages = disabledPageTemplate({ symbol: '«' }) + disabledPageTemplate({ symbol: '‹' }); } else { prevPages = enabledPageTemplate({ 'symbol': '«', 'name': 'first', 'label': ecwidSpwParams.labels.firstPage }) + enabledPageTemplate({ 'symbol': '‹', 'name': 'prev', 'label': ecwidSpwParams.labels.prevPage }); } if (getSearchParams().page >= Math.ceil(data.total / data.limit)) { nextPages = disabledPageTemplate({ symbol: '›' }) + disabledPageTemplate({ symbol: '»' }); } else { nextPages = enabledPageTemplate({ 'symbol': '›', 'name': 'next', 'label': ecwidSpwParams.labels.nextPage }) + enabledPageTemplate({ 'symbol': '»', 'name': 'last', 'label': ecwidSpwParams.labels.lastPage, 'page': Math.ceil(data.total / data.limit) }); } } var formTemplate = wp.template('add-product-form'); var tableTemplate = wp.template('products-list'); var tableHTML = tableTemplate(); jQuery('.media-frame-content.ecwid-add-product.add-product').empty().append( formTemplate({ 'tableHTML': tableHTML, 'page': data.offset / data.limit + 1, 'total_pages': Math.ceil(data.total / data.limit), 'total_items': data.total + ' items', 'prev_pages': prevPages, 'next_pages': nextPages }) ); if (data.total > 0) { for (var i = 0; i < data.items.length; i++) { addProduct(data.items[i]); } } else { var keyword = ''; if (params.keyword) { keyword = params.keyword; } showEmpty(keyword); } renderSearchParams(); assignHandlers(); jQuery('#search-submit').removeClass('searching'); if (totalPages <= 1) { jQuery('.tablenav.bottom', popup()).hide(); } if (!getInitialSearchData()) { setInitialSearchData(data); } else { popup().find('img[data-src]').each(function (index) { var src = jQuery(this).data('src'); popup().find('img[data-src]').eq(index).attr('src', src); }); } } var addProduct = function (productData) { var productTemplate = wp.template('product-in-list'); var product = productTemplate( { 'name': productData.name, 'image_url': productData.thumb, 'sku': productData.sku, 'id': productData.id } ); jQuery('.wp-list-table.products tbody').append(product); jQuery('#product-' + productData.id).data('productData', productData); }; var addTable = function () { tableTemplate = wp.template('products-list'); jQuery('.ecwid-add-product.add-product').append(tableTemplate()); }; var showEmpty = function (term) { emptyTemplate = wp.template('no-products'); jQuery('.ecwid-add-product.add-product .wp-list-table.products tbody').append(emptyTemplate({ term: term })); jQuery('.tablenav,.wp-list-table.products thead', popup()).hide(); }; var updateSearchParams = function (newParams) { var params = popup().data('searchParams'); if (!params) { params = {}; } for (var i in newParams) { if (newParams.hasOwnProperty(i)) { params[i] = newParams[i]; } } popup().data('searchParams', params); ecwidSpwSearchProducts(); }; var renderSearchParams = function () { var searchParams = popup().data('searchParams'); if (!searchParams) { searchParams = {}; } if (typeof (searchParams.keyword) != 'undefined') { jQuery('#product-search-input').val(searchParams.keyword); } if (typeof (searchParams.sortBy) != 'undefined') { if (searchParams.sortBy == 'NAME_ASC') { jQuery('#name').addClass('sorted asc'); } else if (searchParams.sortBy == 'NAME_DESC') { jQuery('#name').addClass('sorted desc'); } else if (searchParams.sortBy == 'SKU_ASC') { jQuery('#sku').addClass('sorted asc'); } else if (searchParams.sortBy == 'SKU_DESC') { jQuery('#sku').addClass('sorted desc'); } } } var renderPagination = function () { if (typeof (searchParams.page != 'undefined')) { jQuery('#current-page-selector').val(searchParams.page); if (searchParams.page > 1) { } } } var assignHandlers = function () { jQuery('.wp-list-table.products tr').click(clickProduct); jQuery('#search-submit').click(function () { updateSearchParams({ keyword: jQuery('#product-search-input').val(), page: 1 }); return false; }); jQuery('#name a').click(function () { var column = jQuery(this).closest('.manage-column'); var newSort = ''; if (column.hasClass('asc')) { newSort = 'NAME_DESC'; } else if (column.hasClass('desc')) { newSort = popup().data('defaultSort'); } else { newSort = 'NAME_ASC'; } updateSearchParams({ 'sortBy': newSort }); return false; }); jQuery('#sku a').click(function () { var column = jQuery(this).closest('.manage-column'); var newSort = ''; if (column.hasClass('asc')) { newSort = 'SKU_DESC'; } else if (column.hasClass('desc')) { newSort = popup().data('defaultSort'); } else { newSort = 'SKU_ASC'; } updateSearchParams({ 'sortBy': newSort }); return false; }); jQuery('.pagination-links .prev-page', popup()).click(function () { updateSearchParams({ 'page': getSearchParams().page - 1 }); return false; }); jQuery('.pagination-links .next-page', popup()).click(function () { updateSearchParams({ 'page': getSearchParams().page + 1 }); return false; }); jQuery('.pagination-links .first-page', popup()).click(function () { updateSearchParams({ 'page': 1 }); return false; }); jQuery('.pagination-links .last-page', popup()).click(function () { updateSearchParams({ 'page': jQuery(this).data('page') }); return false; }); jQuery('#ecwid-reset-search').click(function () { setSearchParams({}); buildProductsTable(getInitialSearchData()); setSelectedProduct(null); }); }; updateSearchParams(); }); ecwidRenderCheckboxOption = function (data) { var that = ecwidRenderCheckboxOption; if (!that.template) { that.template = wp.template('checkbox-option'); } if (data.section == 'display-options') { var name = data.displayOptionName; if (!name) { name = data.name; } data.additionalAttributes = 'data-display-option="' + name + '"'; } else if (data.section == 'shortcode-attributes') { var name = data.name; data.additionalAttributes = 'data-shortcode-attribute="' + data.name + '"'; } if (!that.nextTarget || that.nextTarget == 'right') { that.nextTarget = 'left'; } else { that.nextTarget = 'right'; } jQuery('#ecwid-product-popup-content .widget-settings.' + data.section + ' .widget-settings__' + that.nextTarget) .append(that.template(data)); } function ecwid_open_product_popup(params) { jQuery('#ecwid-product-popup-content').data('params', params); var open = jQuery('#ecwid-product-popup-content').data('openPopup'); open();//jQuery('#ecwid-product-popup-content').addClass('open'); }����������������������������������������������������������������������������ecwid-shopping-cart/js/products-list.js�������������������������������������������������������������0000644�����������������00000017155�15122273603�0014213 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������jQuery.widget('ecwid.productsList', { _create: function() { this.products = {}; this.container = null; this._prefix = 'ecwid-productsList'; this.sort = []; this.options = { max: 3, debug: false, prependNew: false }; this.element.addClass(this._prefix); this._removeInitialContent(); this.container = jQuery('<ul>').appendTo(this.element); this._initFromHtmlData(); this._readSingleProducts(); this._onWindowResize(); this._render(); var self = this; jQuery(window).resize( ecwid_debounce( function() { self._onWindowResize(); } , 200) ); if (typeof wp_ecwid_products_list_vars != 'undefined') { this.ajax_url = wp_ecwid_products_list_vars.ajax_url; this.is_api_available = wp_ecwid_products_list_vars.is_api_available; } }, _render: function() { var toShow = this._getProductsToShow(); for (var i = 0; i < toShow.length; i++) { this._showProduct(this.products[toShow[i]]); } for (var id in this.products) { if (toShow.indexOf(id) == -1) { this._hideProduct(this.products[id]); } } if (toShow.length > 0) { jQuery('.show-if-empty', this.el).hide(); } }, _setOption: function(key, value) { this._super(key, value); if (key == 'max') { this.refresh(); } }, _getProductClass: function(id) { return this._prefix + '-product-' + id; }, _getProductElement: function(id) { return this.container.find('.' + this._getProductClass(id)); }, _showProduct: function(product) { var existing = this._getProductElement(product.id); if (existing.length == 0) { this._buildProductElement(product); } this._fillProductElement(product); var el = this._getProductElement(product.id) .addClass('show') .removeClass('hide'); if (this.options.prependNew) { el.prependTo(this.container); } else { el.appendTo(this.container); } }, _hideProduct: function(product) { this._getProductElement(product.id) .addClass('hide') .removeClass('show'); }, _buildProductElement: function(product) { var container = jQuery('<li class="' + this._getProductClass(product.id) + '">').appendTo(this.container); if (product.link != '') { container = jQuery('<a>') .appendTo(container); } if (product.image) { jQuery('<div class="' + this._prefix + '-image">').append('<img>').appendTo(container); } else { jQuery('<div class="' + this._prefix + '-image ecwid-noimage">').appendTo(container); } jQuery('<div class="' + this._prefix + '-name">').appendTo(container); jQuery('<div class="' + this._prefix + '-price ecwid-productBrowser-price">').appendTo(container); }, _fillProductElement: function(product) { var container = jQuery('.'+ this._getProductClass(product.id), this.el); if (product.link != '') { var a = jQuery('a', container) .attr('href', product.link) .attr('title', product.name) .data('ecwid-page', 'product') .data('ecwid-product-id', product.id); if (typeof window.ecwidShoppingCartMakeStoreLinksUseApiCall != 'undefined') { ecwidShoppingCartMakeStoreLinksUseApiCall(a); } } if (product.image) { jQuery('.' + this._prefix + '-image img', container).attr('src', product.image); } jQuery('.' + this._prefix + '-name', container).text(product.name); price = product.defaultDisplayedPrice ? product.defaultDisplayedPrice : product.price; jQuery('.' + this._prefix + '-price.ecwid-productBrowser-price', container).text(product.price); }, _initFromHtmlData: function() { for (var option_name in this.options) { var data_name = 'ecwid-' + option_name; if (typeof(this.element.data(data_name)) != 'undefined') { this._setOption(option_name, this.element.data(data_name)); } } }, _removeInitialContent: function() { this.originalContentContainer = jQuery('<div class="ecwid-initial-productsList-content">') .data('generatedProductsList', this) .append(this.element.find('>*')) .insertAfter(this.element); }, _readSingleProducts: function() { var self = this; var singleProductLoaded = function (container) { return jQuery('.ecwid-title', container).text() != ''; } jQuery('.ecwid-SingleProduct', this.originalContentContainer).each(function(idx, el) { var interval = setInterval( function() { if (singleProductLoaded(el)) { clearInterval(interval); self._readSingleProduct(el); } }, 500 ); }); }, _readSingleProduct: function(singleProductContainer) { var forced_image = jQuery('div[itemprop=image]', singleProductContainer).data('force-image'); var product = { name: jQuery('.ecwid-title', singleProductContainer).text(), image: forced_image ? forced_image : jQuery('.ecwid-SingleProduct-picture img', singleProductContainer).attr('src'), id: jQuery(singleProductContainer).data('single-product-id'), link: jQuery(singleProductContainer).data('single-product-link'), } if (jQuery('.ecwid-productBrowser-price .gwt-HTML', singleProductContainer).length > 0) { product.price = jQuery('.ecwid-productBrowser-price .gwt-HTML', singleProductContainer).text(); } else { product.price = jQuery('.ecwid-price', singleProductContainer).text(); } this.addProduct(product, true); }, _updateFromServer: function(id) { var that = this; if (!this.products[id]) return false; jQuery.getJSON( wp_ecwid_products_list_vars.ajax_url, { 'action': 'ecwid_get_product_info', 'id': id }, function(data, result) { if (result == 'success') { that.products[id] = jQuery.extend( that.products[id], { image: data.imageUrl } ); that._render(); } } ); }, _getProductsToShow: function() { return this.sort.slice(0, this.option('max')); }, _addToSort: function(id) { this.sort.push(id.toString()); }, _triggerError: function(message) { message = 'ecwid.productsList ' + message; if (this.options.debug) { alert(message); } console.log(message); }, _destroy: function() { this.element.removeClass('.' + this._prefix).find('>*').remove(); this.element.append(this.originalContentContainer.find('>*')); this.originalContentContainer.data('generatedProductsList', null); this.originalContentContainer = null; this._superApply(arguments); }, refresh: function() { this._render(); }, addProduct: function(product, forceRender) { if (typeof(product.id) == 'undefined') { this._triggerError('addProduct error: product must have id'); } if (typeof this.products[product.id] != 'undefined') { return; } this.products[product.id] = jQuery.extend( {}, { id: 0, name: 'no name', image: '', link: '', price: '', toString: function() {return this.name;} }, product ); this._addToSort(product.id); if (forceRender) { this._render(); } }, _onWindowResize: function() { if (this.element.width() < 150) { this.element.addClass('width-s').removeClass('width-m width-l'); } else if (this.element.width() < 300) { this.element.addClass('width-m').removeClass('width-s width-l'); } else { this.element.addClass('width-l').removeClass('width-s width-m'); } } }); // Debounce function from http://unscriptable.com/2009/03/20/debouncing-javascript-methods/ var ecwid_debounce = function (func, threshold, execAsap) { var timeout; return function debounced () { var obj = this, args = arguments; function delayed () { if (!execAsap) { func.apply(obj, args); } timeout = null; }; if (timeout) clearTimeout(timeout); else if (execAsap) func.apply(obj, args); timeout = setTimeout(delayed, threshold || 100); }; } jQuery('.ecwid-productsList').trigger('ecwidOnWindowResize'); �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/recently-viewed-common.js����������������������������������������������������0000644�����������������00000003342�15122273603�0015764 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������(function() { if (typeof jQuery == 'undefined') { console.warn('recently-viewed-common.js requires jquery'); } if (typeof Ecwid == 'undefined') { console.warn('recently-viewed-common.js must be included after Ecwid object initialization'); return; } if (typeof wpCookies == 'undefined') { console.warn('recently-viewed-common.js requires utils'); } if (wpCookies.get('test_ecwid_shopping_cart_recently_products_cookie') != 'test_ecwid_shopping_cart_cookie_value') { wpCookies.set('test_ecwid_shopping_cart_recently_products_cookie', 'test_ecwid_shopping_cart_cookie_value', '', '/'); console.warn('recently-viewed-common.js requires enabled cookies'); } Ecwid.OnPageLoaded.add(function(page) { if (page.type == 'PRODUCT') { var productInfo = fetchProductInfo(page.productId); saveProductToCookies(productInfo); } }); var fetchProductInfo = function(productId) { var product = {}; product.id = productId; product.link = window.location.href; return product; } var saveProductToCookies = function(product) { var cookieName = 'ecwid-shopping-cart-recently-viewed'; var cookie = JSON.parse(wpCookies.get(cookieName)); if (cookie == null || typeof(cookie) != 'object') { cookie = {last: 0, products: []}; } var expires = new Date; expires.setMonth(expires.getMonth() + 1); var src = jQuery('script[src*="app.ecwid.com/script.js?"]').attr('src'); var re = /app.ecwid.com\/script.js\?(\d*)/; cookie.store_id = src.match(re)[1]; for (var i = 0; i < cookie.products.length; i++) { if (cookie.products[i].id == product.id) { cookie.products.splice(i, 1); } } cookie.products.unshift({ id: product.id, link: product.link }); wpCookies.set(cookieName, JSON.stringify(cookie), expires.toUTCString(), '/' ); } })();����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/recently-viewed.js�����������������������������������������������������������0000644�����������������00000004511�15122273603�0014475 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wpCookies.set('test_ecwid_shopping_cart_recently_products_cookie', 'test_ecwid_shopping_cart_cookie_value', { path: '/' }); if (wpCookies.get('test_ecwid_shopping_cart_recently_products_cookie') != 'test_ecwid_shopping_cart_cookie_value') { // Cookies do not work, we do nothing exit; } jQuery.widget('ecwid.recentlyViewedProducts', jQuery.ecwid.productsList, { _create: function() { this._superApply(arguments); this.options.prependNew = true; if (typeof Ecwid == 'undefined') return; var self = this; Ecwid.OnPageLoaded.add( function(page) { if (page.type == 'PRODUCT' && jQuery('.ecwid-productBrowser-details').length > 0) { var product = { id: page.productId.toString(), name: page.name } setTimeout(function() { self.addViewedProduct(product); }, 500); } else { self.refresh(); } } ); }, addViewedProduct: function(product) { product.image = jQuery('.ecwid-productBrowser-gallery-image .gwt-Image').attr('src'); product.link = window.location.href; product.name = jQuery('.ecwid-productBrowser-head').text(); if (jQuery('.ecwid-productBrowser-price .ecwid-productBrowser-price-value').length > 0) { product.price = jQuery('.ecwid-productBrowser-details-rightPanel .ecwid-productBrowser-price .ecwid-productBrowser-price-value').text(); } else { product.price = jQuery('.ecwid-productBrowser-details-rightPanel .ecwid-productBrowser-price').text(); } if (typeof this.products[product.id] == 'undefined') { this.addProduct(product); if (this.is_api_available) { this._updateFromServer(product.id); } } else { this.sort.splice(this.sort.indexOf(product.id), 1); this._addToSort(product.id); } this._render(); }, render: function() { this._superApply(arguments); jQuery('.show-if-empty', this.el).hide(); }, _getProductsToShow: function() { // copy array using slice var sort = this.sort.slice(); if (jQuery('.ecwid-productBrowser-ProductPage').length > 0) { var currentProductId = jQuery('.ecwid-productBrowser-ProductPage').attr('class').match(/ecwid-productBrowser-ProductPage-(\d+)/); if (sort.length > 1 && sort.indexOf(currentProductId[1]) != -1) { sort.splice( sort.indexOf( currentProductId[1] ), 1 ); } } return sort.reverse().slice(0, this.option('max')).reverse(); } }); ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/static-page.js���������������������������������������������������������������0000644�����������������00000065402�15122273603�0013576 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������(function () { var isTouchDevice = false; var staticId = null; var staticContentClass = 'static-content'; var dynamicId = null; var ecwidPageOpened = false; var autoSwitchStaticToDynamicWhenReady = false; var autoSwitchStaticToDynamicWhenReadyDefault = false; var invisibleDynamicContainerStyle = "display: block !important; height: 0 !important; max-height: 0 !important; min-height: 0 !important; overflow-y: auto !important; margin: 0 !important; padding: 0 !important;"; var mainCategoryId = 0; var initialCategoryOffset = 0; function find(selector) { return document.querySelector(selector); } function isDynamicMode() { function isVisible(elem) { return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length); } var staticHtml = find('#' + staticId); return !staticHtml || !isVisible(staticHtml); } function isRootCategory() { var urlHash = window.location.hash; return urlHash === '' || (urlHash.indexOf("#!/c/0/") === -1 && urlHash.indexOf("#!//c/0/") === -1); } function isHashbangPage() { var urlHash = window.location.hash; return urlHash !== '' && urlHash.indexOf("#!/") >= 0 } function loadScriptJs(onScriptJsLoadedCallback) { var scriptJs = document.createElement('script'); scriptJs.src = ec.storefront.staticPages.lazyLoading.scriptJsLink; if (scriptJs.readyState) { scriptJs.onreadystatechange = function () { if (scriptJs.readyState === 'loaded' || scriptJs.readyState === 'complete') { onScriptJsLoadedCallback(); } }; } else { scriptJs.onload = onScriptJsLoadedCallback; } var dynamicEl = find("#" + ec.storefront.staticPages.dynamicContainerID); dynamicEl.appendChild(scriptJs); }; function processStaticHomePage() { window.ec = window.ec || {}; window.ec.storefront = window.ec.storefront || {}; window.ec.storefront.staticPages = window.ec.storefront.staticPages || {}; window.ec.storefront.staticPages.switchStaticToDynamic = switchToDynamicMode; function onDocumentReady(fn) { if (document.attachEvent ? document.readyState === "complete" : document.readyState !== "loading") { fn(); } else { document.addEventListener('DOMContentLoaded', fn); } } onDocumentReady(function () { var staticStorefrontEnabled = window.ec.storefront.staticPages.staticStorefrontEnabled || false; if (staticStorefrontEnabled !== true) { return; } staticId = ec.storefront.staticPages.staticContainerID; dynamicId = ec.storefront.staticPages.dynamicContainerID; if (!staticId || !document.querySelector("#" + staticId)) { if (!!console) { console.warn("Static storefront is enabled, but no staticContainerID is provided or container is not present"); } return; } if (!dynamicId || !document.querySelector("#" + dynamicId)) { if (!!console) { console.warn("Static storefront is enabled, but no dynamicContainerID is provided or container is not present"); } return; } if (window.location.hash.indexOf("#!/c/0") !== -1) { var element = document.querySelector("#" + staticId); element.scrollIntoView(true); } if (!!('ontouchstart' in window)) { isTouchDevice = true; document.body.classList.add('touchable'); } var needDisableLazyLoading = false; if (ecwidLoaded() || isHashbangPage()) { needDisableLazyLoading = true; } if (needDisableLazyLoading && typeof ec.storefront.staticPages.lazyLoading !== "undefined") { var onScriptJsLoadedCallback = function () { xProductBrowser.apply(this, ec.storefront.staticPages.lazyLoading.xProductBrowserArguments); } loadScriptJs(onScriptJsLoadedCallback); } if (!needDisableLazyLoading && typeof ec.storefront.staticPages.lazyLoading !== "undefined") { if (typeof ec.storefront.staticPages.lazyLoading.scriptJsLink === "undefined") { if (!!console) { console.warn("Storefront lazy loading is enabled, but no scriptJsLink is provided"); } return; } if (typeof ec.storefront.staticPages.lazyLoading.xProductBrowserArguments === "undefined") { if (!!console) { console.warn("Storefront lazy loading is enabled, but no xProductBrowser arguments are provided"); } return; } toggleLazyLoadingEvents(true); var lazyLoading = true; function lazyLoadingEventHandler() { if (typeof lazyLoading === 'undefined') { if (!!console) { console.warn("Unable to fetch script.js outside of lazy loading mode"); } } else { toggleLazyLoadingEvents(false); loadScriptJs(lazyInitDynamic); } } var lazyInitDynamic = function () { xProductBrowser.apply(this, ec.storefront.staticPages.lazyLoading.xProductBrowserArguments); setupEcwidWhenLoaded(); } function toggleLazyLoadingEvents(add) { var staticDivEventsForLazyLoading = ['mousedown', 'mouseup', 'mousemove', 'contextmenu', 'keydown', 'keyup']; var staticDivTouchEventsForLazyLoading = ['touchstart', 'touchend', 'touchcancel', 'touchmove']; var toggleEvent = function (el, add, event) { if (add) { el.addEventListener(event, lazyLoadingEventHandler, { passive: true }); } else { el.removeEventListener(event, lazyLoadingEventHandler); } } //var staticEl = find('#' + staticId); if (isTouchDevice) { staticDivTouchEventsForLazyLoading.forEach( function applyEvent(event) { toggleEvent(document, add, event); } ); } else { staticDivEventsForLazyLoading.forEach( function applyEvent(event) { toggleEvent(document, add, event); } ); } } } var mainCategoryIdFromConfig = ec.storefront.staticPages.mainCategoryId; if (mainCategoryIdFromConfig) { mainCategoryId = mainCategoryIdFromConfig; } var autoSwitchStaticToDynamicWhenReadyFromConfig = ec.storefront.staticPages.autoSwitchStaticToDynamicWhenReady; if (autoSwitchStaticToDynamicWhenReadyFromConfig) { autoSwitchStaticToDynamicWhenReady = autoSwitchStaticToDynamicWhenReadyFromConfig; } else { autoSwitchStaticToDynamicWhenReady = autoSwitchStaticToDynamicWhenReadyDefault; } if (ec.storefront.staticPages.initialCategoryOffset) { initialCategoryOffset = ec.storefront.staticPages.initialCategoryOffset; } hideStorefront(); showStaticHtml(); window.ec.config = window.ec.config || {}; if (!isRootCategory()) { hideStorefront(); switchToDynamicMode(); return; } if (!autoSwitchStaticToDynamicWhenReady) { addStaticPageHandlers(); } function setupAfterEcwidLoaded() { const event = document.createEvent('Event'); event.initEvent('setupAfterEcwidLoaded', true, false); document.dispatchEvent(event); var cartWidgets = document.getElementsByClassName('ec-cart-widget'); if (cartWidgets.length > 0) { Ecwid.init(); } if (!window.needLoadEcwidAsync && typeof Ecwid._onComplete !== undefined) { Ecwid._onComplete(); } // if a store is opened for a client, then the storeClosed won't be true // if a store is opened for a client and we've uploaded a closed banner, then we check it in dynamic Ecwid.OnAPILoaded.add(function () { if (isDynamicMode()) { // if we've already switched to dynamic, we don't need to dispatch this event anymore return; } var storeClosed = window.ecwid_initial_data.data.storeClosed; var storeClosedWrapper = document.querySelectorAll('.ecwid-maintenance-wrapper'); var storeNotClosedAndWrapperExists = !storeClosed && storeClosedWrapper.length > 0; if (storeClosed || storeNotClosedAndWrapperExists || hasEcwidMessages() ) { switchToDynamicMode(); } }); Ecwid.OnPageLoad.add(function (openedPage) { if (isDynamicMode()) { // if we've already switched to dynamic, we don't need to dispatch this event anymore return; } if (openedPage.type === "CART" || openedPage.type === "ORDERS" || openedPage.type === "FAVORITES" || openedPage.type === "SIGN_IN" || openedPage.type === "RESET_PASSWORD" || hasEcwidMessages() ) { // static links from bottom of the page should be processed before page load event finishes, // so self pre-opening scroll didn't make the page jump switchToDynamicMode(); } }); addOnPageLoadedCallback(function (openedPage) { if (isDynamicMode()) { // if we've already switched to dynamic, we don't need to dispatch this event anymore return; } if (autoSwitchStaticToDynamicWhenReady) { switchToDynamicWhenReadyWithRetries(10); return; } if (!ecwidPageOpened && openedPage.type === "CATEGORY" && openedPage.categoryId === mainCategoryId && openedPage.offset === initialCategoryOffset) { // we don't need to dispatch root category loading, // since our static contents covers it for the first time return; } // other than self we must show opened page in dynamic view, // because static view contains only root category page switchToDynamicMode(); }, 0); } function switchToDynamicWhenReadyWithRetries(retry) { if (retry <= 0) { switchToDynamicMode(); return; } var allImagesLoaded = allImagesLoadedInDynamicMarkup(); if (!allImagesLoaded) { setTimeout(function () { switchToDynamicWhenReadyWithRetries(retry - 1); }, 100); return } switchToDynamicMode(); } function allImagesLoadedInDynamicMarkup() { if (!dynamicId) { return true; } try { var firstNotLoadedCategory = document.querySelector('#' + dynamicId + ' .grid-category--loading'); if (firstNotLoadedCategory != null) { return false; } var firstNotLoadedProduct = document.querySelector('#' + dynamicId + ' .grid-product--loading'); if (firstNotLoadedProduct != null) { return false; } } catch (e) { } return true; } function ecwidLoaded() { return typeof Ecwid !== "undefined" && !!Ecwid.OnAPILoaded && !!Ecwid.OnAPILoaded.add; } function hasEcwidMessages() { // If the merchant has at least one custom label, then switch to dynamics regardless of the page type or click return !!window.ecwidMessages && Object.keys(window.ecwidMessages).length > 0; } var setupEcwidWhenLoaded = function () { if (ecwidLoaded()) { setupAfterEcwidLoaded(); } else { var setupIntervalId = setInterval(function () { if (ecwidLoaded()) { setupAfterEcwidLoaded(); clearInterval(setupIntervalId); } }, 100); } }; if (typeof lazyLoading === 'undefined') { // Follow legacy dynamic store initialization flow setupEcwidWhenLoaded(); } }); } function addStaticPageHandlers() { function addClickHandlers(selector, elementProcessor) { var elements = document.querySelectorAll(selector); for (var i = 0; i < elements.length; i++) { elementProcessor(elements[i]); } } addClickHandlers('#' + staticId + ' .ec-breadcrumbs a', function (element) { var categoryId = element.getAttribute('categoryId'); if (categoryId !== mainCategoryId) { addStaticClickEvent(element, openEcwidPage('category', { 'id': categoryId })); } }); var orderByOptions = document.querySelector('#' + staticId + ' .grid__sort select'); if (!!orderByOptions) { orderByOptions.addEventListener('change', function (event) { openEcwidPage('category', { 'id': mainCategoryId, 'sort': orderByOptions.value })(event); }); } addClickHandlers('#' + staticId + ' .grid__sort .grid-sort__item--filter', function (element) { addStaticClickEvent(element, function () { addOnPageLoadedCallback(function () { if (isDynamicMode()) { return; } switchToDynamicMode(); Ecwid.showProductFilters(); }, 0); }); }); addClickHandlers('#' + staticId + ' .grid-category__card a', function (element) { var categoryId = element.getAttribute('data-category-id'); addStaticClickEvent(element, openEcwidPage('category', { 'id': categoryId })); }); addClickHandlers('#' + staticId + ' .grid-product:not(.grid-product--view-all) a:not(.open-external-url)', function (element) { var productId = element.getAttribute('data-product-id'); addStaticClickEvent(element, openEcwidPage('product', { 'id': productId })); }); addClickHandlers('#' + staticId + ' .grid-product:not(.grid-product--view-all) .grid-product__wrap[data-product-id]', function (element) { var productId = element.getAttribute('data-product-id'); addStaticClickEvent(element, openEcwidPage('product', { 'id': productId })); }); addClickHandlers('#' + staticId + ' .grid-product--view-all a', function (element) { var categoryId = element.getAttribute('data-category-id'); addStaticClickEvent(element, openEcwidPage('category', { 'id': categoryId })); }) addClickHandlers('#' + staticId + ' .grid-product__buy-now', function (element) { var productId = element.getAttribute('data-product-id'); addStaticClickEvent(element, openEcwidPage('product', { 'id': productId })); }); addClickHandlers('#' + staticId + ' .footer__link--gift-card', function (element) { var productId = element.getAttribute('data-product-id'); addStaticClickEvent(element, openEcwidPage('product', { 'id': productId })); }); addClickHandlers('#' + staticId + ' .footer__link--all-products', function (element) { addStaticClickEvent(element, openEcwidPage('search')); }); addClickHandlers('#' + staticId + ' .footer__link--track-order', function (element) { addStaticClickEvent(element, openEcwidPage('account/orders')); }); addClickHandlers('#' + staticId + ' .footer__link--shopping-favorites', function (element) { addStaticClickEvent(element, openEcwidPage('account/favorites')); }); addClickHandlers('#' + staticId + ' .footer__link--shopping-cart', function (element) { addStaticClickEvent(element, openEcwidPage('cart')); }); addClickHandlers('#' + staticId + ' .footer__link--sigin-in', function (element) { addStaticClickEvent(element, openEcwidPage('signin')); }); addClickHandlers('#' + staticId + ' .footer__link--my-account', function (element) { addStaticClickEvent(element, openEcwidPage('account/settings')); }); addClickHandlers('#' + staticId + ' .pager__button', function (element) { var pageNumber = element.getAttribute('data-page-number') || 2; addStaticClickEvent(element, openEcwidPage('category', { 'id': mainCategoryId, 'page': pageNumber })); }); addClickHandlers('#' + staticId + ' .pager__number', function (element) { var pageNumber = element.getAttribute('data-page-number'); addStaticClickEvent(element, openEcwidPage('category', { 'id': mainCategoryId, 'page': pageNumber })); }); addClickHandlers('#' + staticId + ' .open-external-url', function (element) { addStaticClickEvent(element, function (e) { e.stopPropagation(); }); }); } function addStaticClickEvent(el, callback) { var x = 0, y = 0, dx = 0, dy = 0, isTap = false; if (isTouchDevice) { el.addEventListener('touchstart', function (e) { isTap = true; x = e.touches[0].clientX; y = e.touches[0].clientY; dx = 0; dy = 0; }, { passive: true }); el.addEventListener('touchmove', function (e) { dx = e.changedTouches[0].clientX - x; dy = e.changedTouches[0].clientY - y; }, { passive: true }); el.addEventListener('touchend', function (e) { if (isTap && Math.abs(dx) < 10 && Math.abs(dy) < 10) { callback(e); } }); } el.addEventListener('click', function (e) { if (!isTap) { callback(e); } else { isTap = false; } }); } function openEcwidPage(page, params) { return function (e) { if (isCtrlClickOnProductEvent(page, e)) { // In case product element in grid was clicked with ctrl/meta key, do not invoke e.preventDefault() // and do nothing. Event will be handled and processed by default ctrl/meta + click handler on // underlying <a> element. New background tab with product page will be opened. return; } e.preventDefault(); // we must wait for Ecwid first page to be ready before changing it addOnPageLoadedCallback(function () { if (isDynamicMode() && ecwidPageOpened) { // if we've already switched to dynamic, we don't need to dispatch this event anymore return; } var onClickCallback = window.ec.storefront.staticPages.onClickCallback; if (!autoSwitchStaticToDynamicWhenReady && onClickCallback) { onClickCallback(); } ecwidPageOpened = true; var element = find('#' + staticId + " .ec-wrapper"); if (!!element) { elementsClassListAction([element], function (list) { list.add("ec-wrapper--transition"); }); } Ecwid.openPage(page, params); }, 0); } } function isCtrlClickOnProductEvent(page, event) { return page === 'product' && (event.ctrlKey || event.metaKey) } function addOnPageLoadedCallback(callback, attempt) { // let's wait for the Ecwid environment to be loaded for up to 2000 milliseconds if (attempt >= 40) { if (!!console) { console.warn("failed to add Ecwid.OnPageLoaded callback"); } return; } if (typeof (Ecwid) == 'object' && typeof (Ecwid.OnPageLoaded) == 'object') { Ecwid.OnPageLoaded.add(callback); } else { setTimeout(function () { addOnPageLoadedCallback(callback, attempt + 1); }, 50); } } function hideStorefront() { var dynamicEl = find('#' + dynamicId); var currentStyleAttribute = dynamicEl.getAttribute("style") || ""; dynamicEl.setAttribute("style", currentStyleAttribute + invisibleDynamicContainerStyle); } function showStorefront() { var dynamicEl = find('#' + dynamicId); // disable zero-height trick to show the storefront dynamicEl.style.height = ""; dynamicEl.style.maxHeight = ""; dynamicEl.style.minHeight = ""; dynamicEl.style.overflowY = ""; dynamicEl.style.margin = ""; dynamicEl.style.padding = ""; dynamicEl.style.display = "block"; } function hideStaticHtml() { var staticEl = find('#' + staticId); if (!!staticEl) { staticEl.style.opacity = 0; staticEl.style.display = 'none'; } } function showStaticHtml() { var element = find('#' + staticId + " ." + staticContentClass); if (!!element) { element.style.opacity = 1; } } function switchToDynamicMode() { requestAnimationFrame(function () { removeClassAnimationForAutoSwitchToDynamic(); showStorefront(); hideStaticHtml(); var staticEl = find('#' + staticId); if (staticEl && staticEl.parentNode) { staticEl.parentNode.removeChild(staticEl); } var switchToDynamicCallback = window.ec.storefront.staticPages.switchToDynamicCallback; var element = find('#' + staticId + " .ec-wrapper"); if (!!element) { elementsClassListAction([element], function (list) { list.remove("ec-wrapper--transition"); }); } if (!autoSwitchStaticToDynamicWhenReady && switchToDynamicCallback) { switchToDynamicCallback(); } }); } function removeClassAnimationForAutoSwitchToDynamic() { if (!autoSwitchStaticToDynamicWhenReady) { return; } var wrapers = document.querySelectorAll('.ec-wrapper--animated-transitions'); var arrWrapers = Array.prototype.slice.call(wrapers); elementsClassListAction(arrWrapers, function (list) { list.remove('ec-wrapper--animated-transitions'); }); } function elementsClassListAction(elements, callback) { if (!(Array.isArray(elements))) { return; } for (var key in elements) { var list = elements[key].classList; if (typeof list != 'undefined') { callback(list); } } } processStaticHomePage(); function forceDynamicLoadingIfRequired() { if (typeof ec.storefront.staticPages.lazyLoading === "undefined") { if (!!console) { console.warn("Storefront lazy loading is not enabled to switch in dynamic mode"); } return; } if (typeof ec.storefront.staticPages.lazyLoading.scriptJsLink === "undefined") { if (!!console) { console.warn("No scriptJsLink is provided to switch in dynamic mode"); } return; } if (typeof ec.storefront.staticPages.lazyLoading.xProductBrowserArguments === "undefined") { if (!!console) { console.warn("No xProductBrowser arguments are provided to switch in dynamic mode"); } return; } var staticContainer = document.getElementById(ec.storefront.staticPages.staticContainerID); var rootCategory = isRootCategory(); if (!rootCategory) { while (staticContainer.lastChild) { staticContainer.lastChild.remove(); } var onScriptJsLoadedCallback = function () { xProductBrowser.apply(this, ec.storefront.staticPages.lazyLoading.xProductBrowserArguments); } loadScriptJs(onScriptJsLoadedCallback); } else { staticContainer.style.height = ""; staticContainer.style.maxHeight = ""; staticContainer.style.minHeight = ""; staticContainer.style.overflowY = ""; } } window.ec = window.ec || {}; window.ec.storefront = window.ec.storefront || {}; window.ec.storefront.staticPages = window.ec.storefront.staticPages || {}; window.ec.storefront.staticPages.forceDynamicLoadingIfRequired = forceDynamicLoadingIfRequired; })();��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/store-editor-common.js�������������������������������������������������������0000644�����������������00000003514�15122273603�0015277 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������function ecwid_get_store_shortcode(content) { if (!wp.shortcode) return false; var found = false; for (var i = 0; i < ecwid_params.store_shortcodes.length; i++) { var candidate = false; var index = 0; while (candidate = wp.shortcode.next(ecwid_params.store_shortcodes[i], content, index)) { if (candidate && (!candidate.shortcode.attrs.named.widgets || candidate.shortcode.attrs.named.widgets.toLowerCase().indexOf('productbrowser') != -1)) { found = candidate; break; } index = candidate.index + 1; } if (found) break; } if (typeof found == 'undefined') { found = false; } // Workaround for the caching bug that does allow to have properly parsed attributes if (found) { var tmpfound = false; for (var i = 0; i < ecwid_params.store_shortcodes.length; i++) { var shortcode_name = ecwid_params.store_shortcodes[i]; tmpfound = wp.shortcode.next(shortcode_name, found.content.replace('[' + shortcode_name, '[' + shortcode_name + ' timestamp="' + (new Date()).getMilliseconds() + '"')); if (tmpfound) { break; } } found.shortcode.attrs = tmpfound.shortcode.attrs; delete found.shortcode.attrs.named.timestamp; } return found; } function ecwid_create_gutenberged_shortcode_string( shortcode ) { if ( typeof shortcode == 'string' ) return shortcode; return shortcode.string(); var result = '<!-- wp:ecwid/store-block '; var attributes = { default_category_id: shortcode.attrs.named.default_category_id, show_categories: shortcode.attrs.named.widgets.indexOf('categories') !== -1, show_search: shortcode.attrs.named.widgets.indexOf('search') !== -1 } result += JSON.stringify(attributes); result += ' -->'; result += shortcode.string(); result += '<!-- /wp:ecwid/store-block -->'; return result; }������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/store-editor-gutenberg.js����������������������������������������������������0000644�����������������00000017635�15122273603�0016002 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������jQuery(document).ready(function() { $popup = jQuery('#ecwid-store-popup-content'); /* jQuery('.media-modal-content', $popup) .attr('data-mode', 'store-settings') .attr('data-active-dialog', 'store-settings'); jQuery('.media-menu-item') .removeClass('active') .filter('[data-content=store-settings]').addClass('active'); */ /* * Media buttons handlers */ jQuery('#update-ecwid-button,#insert-ecwid-button').click(ecwid_open_store_popup); /* * Close button handler */ jQuery('.media-modal-close', $popup).click(function() { $popup.data('block-props').attributes.meta1 = 'good' + Math.random(); $popup.removeClass('open'); return false; }); jQuery(document).keydown(function(e) { if (e.keyCode == 27 && $popup.hasClass('open')) { $popup.removeClass('open'); return false; } }); /* * Returns default parameters object */ getDefaultParams = function() { return { 'show_search': true, 'show_minicart': false, 'show_categories': false, 'categories_per_row': 3, 'grid_rows': ecwid_pb_defaults.grid_rows, 'grid_columns': ecwid_pb_defaults.grid_columns, 'table_rows': ecwid_pb_defaults.table_rows, 'list_rows': ecwid_pb_defaults.list_rows, 'default_category_id': 0, 'default_product_id': 0, 'category_view': 'grid', 'search_view': 'list', 'minicart_layout': 'MiniAttachToProductBrowser' } } /* * Handles media modal menus */ jQuery('.media-menu-item', $popup).click(function() { jQuery('.media-menu .media-menu-item', $popup).removeClass('active'); jQuery(this).addClass('active'); jQuery('.media-modal-content', $popup).attr('data-active-dialog', jQuery(this).attr('data-content')); jQuery('.media-menu').removeClass('visible'); return false; }); jQuery('h1', $popup).click(function() { jQuery('.media-menu').toggleClass('visible'); }) /* * Main button click */ jQuery('.button-primary', $popup).click(function() { var result = {}, defaults = getDefaultParams(); result.widgets = 'productbrowser'; for (var i in {search:1, categories:1, minicart:1}) { if (jQuery('input[name=show_' + i + ']').prop('checked')) { result.widgets += ' ' + i; } } getNumber = function(name, fallback) { var value = parseInt(jQuery('[name=' + name + ']', $popup).val()); if (isNaN(value) || value < 0) { value = fallback; } return value; } getString = function(name, values, fallback) { var value = jQuery('[name=' + name + ']', $popup).val(); if (jQuery.inArray(value, values) == -1) { value = fallback; } return value; } result.categories_per_row = getNumber('categories_per_row', defaults.categories_per_row); result.grid = getNumber('grid_rows', defaults.grid_rows) + ',' + getNumber('grid_columns', defaults.grid_columns); result.list = getNumber('list_rows', defaults.list_rows); result.table = getNumber('table_rows', defaults.table_rows); result.default_category_id = getNumber('default_category_id', defaults.default_category_id); result.default_product_id = getNumber('default_product_id', defaults.default_product_id); result.category_view = getString('category_view', ['list', 'grid', 'table'], defaults.category_view); result.search_view = getString('search_view', ['list', 'grid', 'table'], defaults.search_view); result.minicart_layout = defaults.minicart_layout; $popup.data('block-props').setAttributes(result); jQuery('#ecwid-store-popup-content').removeClass('open'); }); updatePreview = function() { jQuery('.store-settings input[type=checkbox]', $popup).each(function(idx, el) { var widget = jQuery(el).parent().attr('data-ecwid-widget'); var preview = jQuery('.store-settings-preview svg path.' + widget, $popup); if (jQuery(el).prop('checked')) { jQuery('.store-settings-wrapper').addClass('ecwid-' + widget); } else { jQuery('.store-settings-wrapper').removeClass('ecwid-' + widget); } }); } jQuery('.store-settings-wrapper label', $popup).hover( function() { jQuery('.store-settings-wrapper').attr('data-ecwid-widget-hover', jQuery(this).attr('data-ecwid-widget')); }, function() { jQuery('.store-settings-wrapper').attr('data-ecwid-widget-hover', ''); } ); jQuery('.store-settings input[type=checkbox]', $popup).change(updatePreview); }); buildParams = function(attributes) { if (jQuery.inArray(attributes.category_view, ['grid', 'list', 'table']) == -1) { attributes.category_view = undefined; } if (!jQuery.inArray(attributes.search_view, ['grid', 'list', 'table']) == -1) { attributes.search_view = undefined; } var defaults = getDefaultParams(); if (!attributes.grid || attributes.grid.match(/^\d+,\d+$/) === null) { attributes.grid = defaults.grid_columns + ',' + defaults.grid_rows; } var grid = attributes.grid.match(/^(\d+),(\d+)/); attributes.grid_rows = grid[1]; attributes.grid_columns = grid[2]; for (var i in {'categories_per_row': defaults.categories_per_row, 'list': defaults.list_rows, 'table': defaults.table_rows, 'grid_rows': defaults.grid_rows, 'grid_columns': defaults.grid_columns, 'default_category_id': 0, 'default_product_id': 0}) { parsed = parseInt(attributes[i]); if (isNaN(parsed) || parsed < 0) { attributes[i] = undefined; } } var widgets = attributes.widgets; if (typeof widgets == 'undefined') { widgets = "productbrowser"; } widgets = widgets.split(/[^a-z^A-Z^0-9^-^_]/); return { 'show_search': jQuery.inArray('search', widgets) != -1, 'show_categories': jQuery.inArray('categories', widgets) != -1, 'show_minicart': jQuery.inArray('minicart', widgets) != -1, 'categories_per_row': attributes.categories_per_row, 'category_view': attributes.category_view, 'search_view': attributes.search_view, 'list_rows': attributes.list, 'table_rows': attributes.table, 'grid_rows': grid[1], 'grid_columns': grid[2], 'default_category_id': attributes.default_category_id, 'default_product_id': attributes.default_product_id, 'minicart_layout': 'attachToCategories' }; } ecwid_open_store_popup = function( props ) { $popup.data('block-props', props); var attributes = buildParams(props.attributes); params = {}; jQuery.extend(params, getDefaultParams(), attributes ); for (var i in params) { var el = jQuery('[name=' + i + ']', $popup); if (el.attr('type') == 'checkbox') { el.prop('checked', params[i]); } else { el.val(params[i]); } } // mode determines whether it is a new store or not, and active dialog is the current tab // in other words, mode = [add-store,store-settings] and active dialog is [add-store|store-settings, appearance] // buttons and menu items are for mode, current title and content are for dialog jQuery('.media-modal-content', $popup).attr('data-mode', 'store-settings'); jQuery('.media-modal-content', $popup).attr('data-active-dialog', 'store-settings'); jQuery('.media-menu-item') .removeClass('active') .filter('[data-content=store-settings]').addClass('active'); updatePreview(); $popup.addClass('open'); return false; }; ���������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/store-editor-mce.js����������������������������������������������������������0000644�����������������00000015426�15122273603�0014560 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* global tinymce */ tinymce.PluginManager.add( 'ecwid', function( editor ) { var toolbarActive = false; function editStore( img ) { ecwid_open_store_popup(); } function removeImage( node ) { var wrap; if ( node.nodeName === 'DIV' && editor.dom.hasClass( node, 'ecwid-store-wrap' ) ) { wrap = node; } else if ( node.nodeName === 'IMG' || node.nodeName === 'DT' || node.nodeName === 'A' ) { wrap = editor.dom.getParent( node, 'div.ecwid-store-wrap' ); } if ( wrap ) { if ( wrap.nextSibling ) { editor.selection.select( wrap.nextSibling ); } else if ( wrap.previousSibling ) { editor.selection.select( wrap.previousSibling ); } else { editor.selection.select( wrap.parentNode ); } editor.selection.collapse( true ); editor.nodeChanged(); editor.dom.remove( wrap ); } else { editor.dom.remove( node ); } removeToolbar(); editor.dom.remove(editor.dom.select('#ecwid-edit-store-button')); } function addToolbar( node ) { var rectangle, toolbarHtml, toolbar, left, dom = editor.dom; removeToolbar(node); // Don't add to other images if ( ! node || node.nodeName !== 'IMG' || node.className.indexOf('ecwid-store-editor') == -1 ) { return; } dom.setAttrib( node, 'data-ecwid-store-select', 1 ); rectangle = dom.getRect( node ); toolbarHtml = '<div class="dashicons dashicons-no-alt remove" data-mce-bogus="1"></div>'; toolbar = dom.create( 'div', { 'id': 'ecwid-store-toolbar', 'data-mce-bogus': '1', 'contenteditable': false }, toolbarHtml ); if ( editor.rtl ) { left = rectangle.x + rectangle.w - 82; } else { left = rectangle.x; } editor.getBody().appendChild( toolbar ); dom.setStyles( toolbar, { top: rectangle.y, left: left }); toolbarActive = true; } this.addToolbar = function() { addToolbar( jQuery(editor.dom.doc.body).find('.ecwid-store-editor').get(0) ); } function removeToolbar(parentNode) { if (parentNode && editor.dom.getAttrib( parentNode, 'class') == 'ecwid-store-editor' ) { var toolbar = editor.dom.get( 'wp-image-toolbar' ); if ( toolbar ) { editor.dom.remove( toolbar ); } } var toolbar = editor.dom.get( 'ecwid-store-toolbar' ); if ( toolbar ) { editor.dom.remove( toolbar ); } // also remove image toolbar editor.dom.setAttrib( editor.dom.select( 'img[data-ecwid-store-select]' ), 'data-ecwid-store-select', null ); toolbarActive = false; } editor.onInit.add(function(editor) { dom = editor.dom; dom.bind( editor.getDoc(), 'dragstart', function( event ) { var node = editor.selection.getNode(); // Prevent dragging images out of the caption elements if ( node.nodeName === 'IMG' && dom.getParent( node, '.wp-caption' ) ) { event.preventDefault(); } // Remove toolbar to avoid an orphaned toolbar when dragging an image to a new location removeToolbar(); }); }); editor.onKeyUp.add( function( editor, event ) { var node, wrap, P, spacer, selection = editor.selection, keyCode = event.keyCode, dom = editor.dom; if ( keyCode === 46 || keyCode === 8 ) { checkEcwid(); } }); editor.onKeyDown.add( function( editor, event ) { var node, wrap, P, spacer, selection = editor.selection, keyCode = event.keyCode, dom = editor.dom; if ( keyCode == 27 ) { jQuery('#ecwid-store-popup-content').removeClass('open'); return false; } if ( keyCode === 46 || keyCode === 8 ) { node = selection.getNode(); if ( node.nodeName === 'DIV' && dom.hasClass( node, 'ecwid-store-wrap' ) ) { wrap = node; } else if ( node.nodeName === 'IMG' ) { wrap = dom.getParent( node, 'div.ecwid-store-wrap' ); } if ( wrap ) { dom.events.cancel( event ); removeImage( node ); editor.dom.remove(editor.dom.select('#ecwid-edit-store-button')); return false; } removeToolbar(); } // Key presses will replace the image so we need to remove the toolbar if ( toolbarActive ) { if ( event.ctrlKey || event.metaKey || event.altKey || ( keyCode < 48 && keyCode > 90 ) || keyCode > 186 ) { return; } removeToolbar(); editor.dom.remove(editor.dom.select('#ecwid-edit-store-button')); } }); editor.onMouseDown.add( function( editor, event ) { if ( editor.dom.getParent( event.target, '#ecwid-store-toolbar' ) ) { if ( tinymce.Env.ie ) { // Stop IE > 8 from making the wrapper resizable on mousedown event.preventDefault(); } } else if ( event.target.nodeName !== 'IMG' ) { removeToolbar(); if (event.target.nodeName == 'INPUT' && event.target.id == 'ecwid-edit-store-button') { ecwid_open_store_popup(); } } }); editor.onMouseUp.add( function( editor, event ) { var image, node = event.target, dom = editor.dom; // Don't trigger on right-click if ( event.button && event.button > 1 ) { return; } if ( node.nodeName === 'DIV' && dom.getParent( node, '#ecwid-store-toolbar' ) ) { image = dom.select( 'img[data-ecwid-store-select]' )[0]; if ( image ) { editor.selection.select( image ); if ( dom.hasClass( node, 'remove' ) ) { removeImage( image ); } else if ( dom.hasClass( node, 'edit' ) ) { editStore( image ); } } } else if ( node.nodeName === 'IMG' && ! editor.dom.getAttrib( node, 'data-ecwid-store-select' ) ) { addToolbar( node ); } else if ( node.nodeName !== 'IMG' ) { removeToolbar(); } }); // Replace Read More/Next Page tags with images editor.onBeforeSetContent.add( function( editor, e ) { if ( e.content ) { var found = ecwid_get_store_shortcode(e.content); if (!found) return; var start = found.index; var end = found.index + found.content.length; var content = e.content; var gutenStart = content.indexOf('<!-- wp:ecwid/store-block'); var gutenEnd = content.indexOf('<!-- /wp:ecwid/store-block -->') + '<!-- /wp:ecwid/store-block -->'.length; if (gutenStart != -1 && gutenEnd != -1) { var gutenberged = content.substr(gutenStart, gutenEnd); if (gutenberged.indexOf(found.content) != -1) { start = gutenStart; end = gutenEnd; } } var store = '<img height="200" width="100%" data-ecwid-shortcode="' + window.encodeURIComponent(found.content) + '" src="' + ecwid_store_svg + '" data-mce-placeholder="true" data-mce-resize="false" class="ecwid-store-editor mceItem">'; e.content = e.content.substr(0, start) + store + e.content.substr(end); } }); // Replace images with tags editor.onPostProcess.add( function( editor, e ) { if ( e.get ) { return e.content = e.content.replace( /(<img [^>]*data-ecwid-shortcode=[^>]+>)/g, function( match, image ) { var data = window.decodeURIComponent(jQuery(image).attr('data-ecwid-shortcode')); if ( data ) { return data; } return match; }); } }); });������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/store-editor-page.js���������������������������������������������������������0000644�����������������00000027513�15122273603�0014730 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������function ecwidIsTinyMCEActive() { return typeof tinyMCE != 'undefined' && tinyMCE.activeEditor && !tinyMCE.activeEditor.isHidden(); } jQuery(document).ready(function() { $popup = jQuery('#ecwid-store-popup-content'); /* * Media buttons handlers */ // jQuery('#update-ecwid-button,#insert-ecwid-button').click(ecwid_open_store_popup); jQuery(document).on('click', '#update-ecwid-button,#insert-ecwid-button', ecwid_open_store_popup); /* * Close button handler */ jQuery('.media-modal-close', $popup).click(function() { $popup.removeClass('open'); return false; }); jQuery(document).keydown(function(e) { if (e.keyCode == 27 && $popup.hasClass('open')) { $popup.removeClass('open'); return false; } }); /** * Builds params object from the wp.shortcode * * @param shortcode * @returns {*} */ buildParams = function(shortcode) { if (!shortcode) return {}; var attributes = jQuery.extend({}, shortcode.shortcode.attrs.named); if (jQuery.inArray(attributes.category_view, ['grid', 'list', 'table']) == -1) { attributes.category_view = undefined; } if (!jQuery.inArray(attributes.search_view, ['grid', 'list', 'table']) == -1) { attributes.search_view = undefined; } var defaults = getDefaultParams(); if (!attributes.grid || attributes.grid.match(/^\d+,\d+$/) === null) { attributes.grid = defaults.grid_columns + ',' + defaults.grid_rows; } var grid = attributes.grid.match(/^(\d+),(\d+)/); attributes.grid_rows = grid[1]; attributes.grid_columns = grid[2]; for (var i in {'categories_per_row': defaults.categories_per_row, 'list': defaults.list_rows, 'table': defaults.table_rows, 'grid_rows': defaults.grid_rows, 'grid_columns': defaults.grid_columns, 'default_category_id': 0, 'default_product_id': 0}) { parsed = parseInt(attributes[i]); if (isNaN(parsed) || parsed < 0) { attributes[i] = undefined; } } var widgets = attributes.widgets; if (typeof widgets == 'undefined') { widgets = "productbrowser"; } widgets = widgets.split(/[^a-z^A-Z^0-9^-^_]/); return { 'show_search': jQuery.inArray('search', widgets) != -1, 'show_categories': jQuery.inArray('categories', widgets) != -1, 'show_minicart': jQuery.inArray('minicart', widgets) != -1, 'categories_per_row': attributes.categories_per_row, 'category_view': attributes.category_view, 'search_view': attributes.search_view, 'list_rows': attributes.list, 'table_rows': attributes.table, 'grid_rows': grid[1], 'grid_columns': grid[2], 'default_category_id': attributes.default_category_id, 'default_product_id': attributes.default_product_id, 'minicart_layout': 'MiniAttachToProductBrowser' }; } /* * Returns default parameters object */ getDefaultParams = function() { return { 'show_search': false, 'show_minicart': false, 'show_categories': false, 'categories_per_row': 3, 'grid_rows': ecwid_pb_defaults.grid_rows, 'grid_columns': ecwid_pb_defaults.grid_columns, 'table_rows': ecwid_pb_defaults.table_rows, 'list_rows': ecwid_pb_defaults.list_rows, 'default_category_id': 0, 'default_product_id': 0, 'category_view': 'grid', 'search_view': 'list', 'minicart_layout': 'MiniAttachToProductBrowser' } } /* * Tests whether there is a valid store shortcode */ checkEcwid = function() { var hasEcwid = false; if (ecwidIsTinyMCEActive()) { content = tinyMCE.activeEditor.getBody(); hasEcwid = jQuery(content).find('.ecwid-store-editor').length > 0; } else { hasEcwid = ecwid_get_store_shortcode(jQuery('#content').val()); } if (hasEcwid) { jQuery('.wp-media-buttons').addClass('has-ecwid'); } else { jQuery('.wp-media-buttons').removeClass('has-ecwid'); } if (ecwidIsTinyMCEActive()) { var body = tinymce.activeEditor.dom.doc.body; var button = tinymce.activeEditor.dom.select('#ecwid-edit-store-button'); if (hasEcwid && button.length == 0) { var button = jQuery('<input type="button" id="ecwid-edit-store-button" contenteditable="false" data-mce-bogus="true" value="' + ecwid_i18n.edit_store_appearance + '" />') .appendTo(body); } else if (!hasEcwid && button.length > 0) { tinymce.activeEditor.dom.remove(button); } if (hasEcwid) { var store = jQuery(body).find('.ecwid-store-editor'); var button = jQuery('#ecwid-edit-store-button', body); var width = this.buttonWidth; if (!width) { width = button.outerWidth(); this.buttonWidth = width; } button.css({ 'position': 'absolute', 'top': '' + (store.offset().top + 153) + 'px', 'left': '' + (store.offset().left + store.outerWidth() / 2 - width / 2 - 2) + 'px' }); } jQuery('#wp_editbtns').css('display', 'none !important'); } if (window.location.search.indexOf('show-ecwid=true') != -1 && typeof this.show_ecwid_processed == 'undefined') { ecwid_open_store_popup(); this.show_ecwid_processed = true; if (tinymce.activeEditor) { tinymce.activeEditor.plugins.ecwid.addToolbar(); } } } setInterval(checkEcwid, 1000); jQuery('#content-tmce').click(function() { checkEcwid() }); /* * Handles media modal menus */ jQuery('.media-menu-item', $popup).click(function() { jQuery('.media-menu .media-menu-item', $popup).removeClass('active'); jQuery(this).addClass('active'); jQuery('.media-modal-content', $popup).attr('data-active-dialog', jQuery(this).attr('data-content')); jQuery('.media-menu').removeClass('visible'); return false; }); jQuery('h1', $popup).click(function() { jQuery('.media-menu').toggleClass('visible'); }) /* * Main button click */ jQuery('.button-primary', $popup).click(function() { var result = {}, defaults = getDefaultParams(); result.widgets = 'productbrowser'; for (var i in {search:1, categories:1, minicart:1}) { if (jQuery('input[name=show_' + i + ']').prop('checked')) { result.widgets += ' ' + i; } } getNumber = function(name, fallback) { var value = parseInt(jQuery('[name=' + name + ']', $popup).val()); if (isNaN(value) || value < 0) { value = fallback; } return value; } getString = function(name, values, fallback) { var value = jQuery('[name=' + name + ']', $popup).val(); if (jQuery.inArray(value, values) == -1) { value = fallback; } return value; } result.categories_per_row = getNumber('categories_per_row', defaults.categories_per_row); result.grid = getNumber('grid_rows', defaults.grid_rows) + ',' + getNumber('grid_columns', defaults.grid_columns); result.list = getNumber('list_rows', defaults.list_rows); result.table = getNumber('table_rows', defaults.table_rows); result.default_category_id = getNumber('default_category_id', defaults.default_category_id); result.default_product_id = getNumber('default_product_id', defaults.default_product_id); result.category_view = getString('category_view', ['list', 'grid', 'table'], defaults.category_view); result.search_view = getString('search_view', ['list', 'grid', 'table'], defaults.search_view); result.minicart_layout = defaults.minicart_layout; var existingShortcode = ecwid_get_store_shortcode(jQuery('#content').val()); var shortcode = {}; if (!existingShortcode) { shortcode.shortcode = new wp.shortcode(); shortcode.shortcode.tag = ecwid_params.store_shortcode; shortcode.shortcode.type = 'single'; } else { shortcode = existingShortcode; } if (!ecwid_params.legacy_appearance) { var legacy_appearance_properties = [ 'categories_per_row', 'grid', 'list', 'table', 'category_view', 'search_view' ]; for (var i = 0; i < legacy_appearance_properties.length; i++) { delete result[legacy_appearance_properties[i]]; delete shortcode.shortcode.attrs.named[legacy_appearance_properties[i]]; } } for (var i in result) { shortcode.shortcode.attrs.named[i] = result[i]; } var stringToInsert = ecwid_create_gutenberged_shortcode_string(shortcode.shortcode); if (existingShortcode) { stringToReplace = existingShortcode.content; var match = jQuery('#content').val().match(/<!-- wp:ecwid\/store-block([^!]+)!-- \/wp:ecwid\/store-block -->/); if (match && match[1].indexOf(existingShortcode.content) > 0) { stringToReplace = match[0]; } jQuery('#content').val( jQuery('#content').val().replace(stringToReplace, stringToInsert) ); if (ecwidIsTinyMCEActive()) { jQuery(tinymce.activeEditor.getBody()).find('.ecwid-store-editor').attr('data-ecwid-shortcode', shortcode.shortcode.string()); } } else { if (ecwidIsTinyMCEActive()) { if ($popup.data('range')) { tinymce.activeEditor.selection.setRng($popup.data('range')); } tinymce.activeEditor.execCommand('mceInsertContent', false, stringToInsert); tinymce.activeEditor.execCommand('mceSetContent', false, tinymce.activeEditor.getBody().innerHTML); } else { getCursorPosition = function(el) { var pos = 0; if('selectionStart' in el) { pos = el.selectionStart; } else if('selection' in document) { el.focus(); var Sel = document.selection.createRange(); var SelLength = document.selection.createRange().text.length; Sel.moveStart('character', -el.value.length); pos = Sel.text.length - SelLength; } return pos; } var el = jQuery('#content'); var cursorPosition = getCursorPosition(el.get(0)); el.val(el.val().substr(0, cursorPosition) + stringToInsert + el.val().substr(cursorPosition)); } } jQuery('#ecwid-store-popup-content').removeClass('open'); }); updatePreview = function() { jQuery('.store-settings input[type=checkbox]', $popup).each(function(idx, el) { var widget = jQuery(el).parent().attr('data-ecwid-widget'); var preview = jQuery('.store-settings-preview svg path.' + widget, $popup); if (jQuery(el).prop('checked')) { jQuery('.store-settings-wrapper').addClass('ecwid-' + widget); } else { jQuery('.store-settings-wrapper').removeClass('ecwid-' + widget); } }); } jQuery('.store-settings-wrapper label', $popup).hover( function() { jQuery('.store-settings-wrapper').attr('data-ecwid-widget-hover', jQuery(this).attr('data-ecwid-widget')); }, function() { jQuery('.store-settings-wrapper').attr('data-ecwid-widget-hover', ''); } ); jQuery('.store-settings input[type=checkbox]', $popup).change(updatePreview); }); ecwid_open_store_popup = function() { var shortcode; if (ecwidIsTinyMCEActive()) { tinyMCE.activeEditor.save(); $popup.data('range', tinyMCE.activeEditor.selection.getRng()); var content = jQuery(tinyMCE.activeEditor.getBody()) .find('.ecwid-store-editor') .attr('data-ecwid-shortcode'); var shortcode = ecwid_get_store_shortcode(window.decodeURIComponent(content)); } else { shortcode = ecwid_get_store_shortcode(jQuery('#content').val()); } $popup.addClass('open'); params = {}; jQuery.extend(params, getDefaultParams(), buildParams(shortcode)); for (var i in params) { var el = jQuery('[name=' + i + ']', $popup); if (el.attr('type') == 'checkbox') { el.prop('checked', params[i]); } else { el.val(params[i]); } } // mode determines whether it is a new store or not, and active dialog is the current tab // in other words, mode = [add-store,store-settings] and active dialog is [add-store|store-settings, appearance] // buttons and menu items are for mode, current title and content are for dialog var current = !shortcode ? 'add-store' : 'store-settings'; jQuery('.media-modal-content', $popup).attr('data-mode', current); jQuery('.media-modal-content', $popup).attr('data-active-dialog', current); jQuery('.media-menu-item') .removeClass('active') .filter('[data-content=' + current + ']').addClass('active'); updatePreview(); if (ecwidIsTinyMCEActive()) { tinyMCE.activeEditor.execCommand('SelectAll'); tinyMCE.activeEditor.selection.collapse(true); } return false; }; �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/js/welcome-page.js��������������������������������������������������������������0000644�����������������00000001573�15122273603�0013741 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������jQuery(document).ready(function(){ jQuery('.ec-create-store-button').on('click', function() { if (ecwidParams.isWL) { location.href = ecwidParams.registerLink; return; } jQuery('.ec-create-store-button').addClass('btn--loading'); jQuery('.ec-connect-store').addClass('disabled'); jQuery.ajax(ajaxurl + '?action=ecwid_create_store', { success: function(result) { jQuery('.ec-create-store-note').hide(); jQuery('.ec-create-store-success-note').show(); setTimeout(function() { location.href="admin.php?page=ec-store&ec-store-page=complete-registration"; }, 1000); }, error: function(error) { if( error.status == '409' ) { location.href = 'admin-post.php?action=ec_connect'; } else { location.href = ecwidParams.registerLink; } } } ); }); });�������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/languages/ecwid-shopping-cart-de_DE.mo������������������������������������������0000644�����������������00000224475�15122273603�0017542 0����������������������������������������������������������������������������������������������������ustar�00�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������e�����D��5��l&������@3�����A3��H���Y3�����3�����3�����3�����3�����3�� ���3��.���3�� ���4�� ��� 4�����,4�����J4�����e4����4�����g6��B���6�����6�����6�����6�����7��$���97�����^7�����r7�����7�����7��/���r8�� ���8�� ���8�����8�����8�����8�����8�����9��#���%9�� ���I9�����T9�����o9�����~9�� ���9�� ���9��>���9��"��� :�����-:�����:��k���:��K���h;��S���;��A���<��R���J<��G���<��4���<�� ���=�����&=�����/=��&���A=�����h=��T���{=�� ���=�����=�����=�����=�����>�����>�����#>�� ���*>�����8>�����?>�� ���G>�� ���S>�� ���`>�����l>�����>��4���>�� ���>�����>�����>�����>��X���>�� ���V?�����`?��/���g?��,���?�����?�����?�����?�� ���?�� ���?�����?�� ���?����� @�����@�����,@�����A@�����[@�����{@�����@�����@�����@�����@�����@�����@��.���@�����A�����5A��D���LA�����A�����A�� ���A�� ���A�����A�����A�����A����� B����� B��x���3B�����B�� ���B�����B�� ���B�����B�����C�����C�����*C�� ���=C�����JC��5���\C��h���C�����C�����D�� ���D�� ���D��5���D�����E�� ���E��x���%E��i���E�����F�����F�����4F�����QF�����bF�����F�� ���F�����F�����G�����$G��"���7G��#���ZG��/���~G�� ���G�� ���G�����G�����G�����G�����G�����H�����H�����-H�����?H��!���WH�����yH�����H��6���H��!���H�����H��*���I��%���:I�����`I��'���vI�����I�����I��,���I�����I��q���J��s���yJ��#���J��H���K��O���ZK��1���K��s���K�� ���PL�����\L��v���L�����uM��$���zM�����M�����M�����M�� ���M�����M�����M����� N��s���N�����N�����N�����N��=��N�����P����P����Q�����R�����R����� S�����S�� ��� S�� ���.S�� ���;S�� ���FS�� ���TS�����^S�����S�����T�����T�����T��B���T��$���)U�����NU�����VU�����mU�� ���U�����U�����U�� ���U�����U�� ���U��(���U�����V�� ���V�����V�����#V��.���V�����W��D���W��h���%X�����X��_���X��C���X�����7Y�����IY��/���_Y��/���Y�����Y��/���Y��(���Z�����-Z��9���GZ��I���Z��2���Z��"���Z��:���![�����\[��"���t[��!���[�����[�����[�����[�����[��$��� \��*���1\��B���\\�����\�� ���\�����\�� ���\�����\��+���\�����]��-���,]��P���Z]�����]��#���]��'���]��)��� ^�� ���7^�����X^��%���g^��+���^��+���^�����^�����_�����_�����!_�� ���2_��$���?_��9���d_��%���_��:���_�����_�����`�����`�����&`�����(`�� ���=`�� ���K`�� ���Y`�� ���c`�����o`�����`�����`�� ���`�����`�����`�� ���`�����`�����`�� ���`�����`�����oa�����a�����a��S���a�����a��'���a��[���'b�� ���b�����b�� ���b�����b�� ���b�� ���b�����b�����b�� ���b��9���b�����c�� ���:c�� ���Dc�� ���Nc�� ���Xc�����bc�����wc��I���Jd�����d�����d�����d�� ���d�� ���d�� ���e�����e�� ��� e�����-e�����@e�����Ue�����]e�����de�����je�����if��#���Og�����sg�� ���g�����g�����lh�����th�� ���i�� ���i�����i�����%i��O��*i��4���zj�����j�� ���j�� ���j�����j�����j�� ���j�����j�� ����k����� k�����k�����'k�����:k�����Rk�� ���jk�����vk�����k�����k�����k��+���k�����k�� ��� l�����l�����*l�����Bl�����al�� ���xl�����l��I���l��'���l�����m�����m�����$m�����=m�����Em��#���Xm�� ���|m�����m�� ���m�����m�����m�����m��"���m�����m��%���n�� ���4n�����>n�����Vn�����en�����n�����n�����n�����n�����n�����n�����n��*���n�� ���n�����n�����n�����o�����o�����/o�� ���8o�����Co�����So�����do�����vo�� ���o��"���o�����o�����o�� ���o�����o�����o�����p����� p�����p�� ���"p�����0p��#���Kp�����op�����p�����p�����p�����p�����p��V���p�� ���Bq�� ���cq�����qq�� ���q�����q��&���q��(���q�����q�����r�� ���&r�����2r�� ���Br�� ��cr�� ���ns�����ys��(���s��*���s����s�� ���ow�� ���zw�����w�����w��.���$x�����Sx�����Yx�����jx�����x�����x�����x�����x�����x�����y�����z�����0z�� ���Az�����Lz�����\z�����rz�����z�����z�����z�����z�����z�����z�� ���z�����{�����{�����${�����4{�����I{�� ���O{��/���Z{��N���{�����{�� ���{��4���{�����|��=���|�����}��-���}�����}��%���~��M���~�������P�����H���h��P��������������� ����� ���"�����/�����A�����H�����ۀ������� ��4��E��>�������]��������l��%��^��*����*����y���ڊ��>���T�������h���5��L���������� ������������������,�����5�����<�����P�����l�����|�������������������������ԍ����������������� �����!��� ��j���B����������E��^���ŏ�����$�����,�����F�� ���V�����c������� ���������C����B����k���@���������������V�� ������0���!��^���R�������:���Ę��>��������>�����N�����j�� �����2�����?���Ù����������֚������������y�����A��������Q�����o������:��������J�����_�� �����"��������Þ��"���ߞ��H�����)���K�����u�������&�����(���ן���������������� �����4����G��$��� ��K���E����������������� ��������Ǣ�� ���Ϣ��O���ݢ�� ���-�� ���8�����D�����b�����}��8����%���ѥ��E��������=�����S�����j�������"�������������զ�����������5��������;�����O�� ���`������������!��������ר��2��������!��'���2�����Z��(���q��'��������©��T���ة��9���-�����g�����W�����p��p�����z���o��H�����i���3��Y�����E��������=�����O�����_��+���~�������S�������������"�����'��!���C�����e�����v�����}����������������� ����� �������������̯�������D��������G�� ���[�� ���h��!�����o����� ��������&��L���-��>���z�� ����� ���ñ�����ͱ����������������� ��� �� �����#���!�����E��$���\��/�����%����� ���ײ��&������������������$�����7��O���J��(��������ó��v��������Y�����k��5����� ����� ���ȴ�� ���ִ��������������������.���������������0��'���7�����_�����y��������������������̶��8������������������������������7����������������������������<��#���L�����p���������������=�� ���P�����Z�����l�������*�����/���ѻ��2����� ���4�� ���>�����H�����O�����a�����v���������������̼�������*��������)�����A��B���Z��,��������ʽ��.���ܽ��,��� �����8�����K�����h�������4��������׾����������z��.���'��]���V��_�����-��������B��������������������w��.���~������������3����� �������������#�����>�����O��������������� ��e��%�������n��I���������G�����W�� ���n�����y����������������������������������������� ����������V�����1���v������������!����� ���������� ��������1�����A�� ���a��*���l������� ���������������8����� ����V�����y���=�� �����x�����Z���;������������N�����9�����#���Q��6���u��5����������=�����~���7��;�����$�����;�����&���S��'���z��'�����'���������������&�����5���9��;���o��f�����.����� ���A�����M�����f�� ���o��5���{�������B�����r����������*�����*�����.�����)�����"���G��1���j��5�����5����������$���&�� ���K�����U�� ���h��+���u��G�����'�����_��������q�� ������������������������������ �������������������������� ��� �� ���.�����;�� ���O�����Y�����l�� ���r����������Q�����k�����~��g����������,��������,������������ ���������� ����� ��������������� �����H���#��%���l������������ ����� ��������������P��������K�����k��!��������������� ���������� ������������������ �� ����������1��'����Y��)���o������� ���������� �������������p���������������������X���J������������������������������������� ������������������$��!���8��!���Z�����|�� ���������������#�����)�������� �� ����� ���*�����7��-���V��#����� ����������X�����'��������?�����W��(���j������������<������������� ����������+�����?��!���S��0���u�������"������������������ �����!�����A�� ���J�����X�����Z�� ���c�� ���m�� ���{��=������������������������������ ��������,�����<�����Q�����g�����~�������/�����#������������������-�� ���H�� ���V�����b�����w�� ���|������� �������������������������.��������0��q���D��$������������������ �����)��6���B��6���y�������"���������������-�����.��@�����o�� ���~��3�����;��������� ��������������������9���j��������������������������������������������������������� �������������������� �������� ����������0�����M�����a�� ���y��������������������������������Y�����W���L������� �����V�������� ��I����������?����������-�����V�������j�X���|�Z����^���0��������� ���������������������������}�,��C���p���� ���� �.��O �M��~ �M�� �V������q�P�������_�|���=�x���� ���3� ���>�)���J�!���t�������������B������� ��������7����I����Z����n���������������������.���������������a�h�������x���������������������8����������w��M�o����$��5����Z����4�*����<��� �a���T ���� �;��� �A���!����P!�$���a!����!� ���!�6���!�A���!����("����%#����?#����#����$�e���$����%����5%���S%�D���L'����'����'����'�"���'����'�"���'�H���(�)���b(����(�*���(����(� ���(����(����(� ���)� ���)��������I����������������k������R��W��y����$��%���������������������������������������#�����y���R��#��������J���Z���������?���B��^��>������������������������� ��� ��3����1�����U������>�������K��q����������������������-���������������������v���8������:���/������g��d�����������������S��?�����������������������'���������,������������j��Z��������P���������W������������S���������]����������T����������� �������6�������������������r�������������c��9����������,������������������k��������������%���������������������������������������������L���"�������a����������W��t�������������������}��.������ ��$������K������G���������~���������������0������w������������E��������7����������������������������Q��������F������������������:��\�����������������O�����X��'��*��3������1������ ���������������������u������������9�����E�����������C�����������������������������?������8��a��_���b�������L������@��&������*��I��C���J�����Y���������D������������$���������;��F���������N������G������'���������������0�����@�����^��������c�����������������u����>��:��������.�����������M��j���[��S����������������4������� ������������H�������������@���������������K�����]���������P���&�������������������%���� ��c������h��X���A��������#�����������z�������3�����(����������������������������������������������Q��������e�������������-����������i���������D����p�������!��������������(������������X��5����7���������=��������������;������N���������P������������������T��������������\������Z����������������������&����� ��������� ���`�������|�����������`������������<���������e���+�������A�����=����������������������)�������Q������������������������f��!����� ���b��a���M��{�������<��7�������������������������������������H��������6��O��s���`����������9�����*���������-��}���"���������r���������0��������������{������������������������������������l��H����������v����d��/����� ��]���t���p�����2�����������d��������g������U���������C�������w���������[���l������������������������<��������� ���o���1��� ����������V��f������N�� ��E��������������������������������� �����������������������/������,��������~�����������������������!������[����n�����������_��"�����(�������2���J��x��h���_���� ��������o������M������4��=��8������������2����� ��4������������m���������������������������5��n��I���;�����)������6��L��V������������+����+��A�������������������������Y��B��F������ �������)��������m��i�����������5���^������|���z���������������������U����������x�����������\����q������������O���������������V����������b���������������������������������������Y�������������.�����D������������������B�������G��s�������������R�����T����e���������� Choose another product� Thank you very much for contacting us! We will get back to you shortly.�"In stock" label�%s�%s Blog�%s Shopping Cart�%s Store�%s Store Page�%s plugin doesn't work well with my "%s" theme�%s product�%s products�%s products and %s categories�%s products and categories�%s shopping cart settings�%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site.�%s — Advanced settings�(You will be able to confirm the changes before the actual import)�2 columns, image on the left�2 columns, image on the right�3 columns, image on the left�3 columns, image on the right�<a %s>Online store powered by %s</a>�<a %s>Reconnect</a>�<a href="admin.php?page=�<b>%s</b> categories�A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use "/shop" or "/products".�Action required: please connect your %s account�Add Product�Add Store�Add Store Page to Menu�Add a category page�Add a product page�Add a search and filters page�Add a store page�Add an Online Store to Your Website�Add border�Add cart and checkout page�Add categories�Add store page to the site menu�Add storefront (product listing)�Add to Menu�Add your %s store to the website and start selling in minutes.�Add your store to other site pages�Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href="%s" target="_blank">WordPress Settings > Reading</a>�Additional store pages�Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>�Adds a cart widget for customer to see the products they added to the cart.�Adds a compact cart widget for customer to see the products they added to the cart.�Adds a shopping cart widget to the top right corner of your site.�Adds root categories list to the sidebar to let your customers navigate the store.�Adds vertical categories block to let the customer navigate your store.�Adjust your store design to fit your business needs.�Admin Label�Advanced�Advanced settings�After import, your %s store will have �All Sales Channels�Along with the store catalog, you can add other widgets and texts to the store page.�Appearance�Apps�Available qty in stock�Back to Store Settings�Background color�Bag�Basket�Before You Go�Border�Border:�Bottom left�Bottom right�Breadcrumbs�Browse all products.�Browse by Category�Bulk import products and categories to your %s store�Button color�Buy Now�Buy Now Button�Buy now buttons�By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>.�CSS Class�CSS ID�Can you share the name of the plugin you chose?�Can you share your feedback? What was wrong?�Cancel�Cart�Cart and Checkout�Cart icon�Cart icon:�Catalog�Categories�Category�Category List Appearance�Category card layout�Category shown by default�Category thumbnail aspect ratio�Category thumbnail size�Center�Center align on a page�Change�Change store content�Choose Product�Choose product�Choose product properties to display in widget�Choose the main store page�Choose widgets to show�Click the connect button to get rights to update the product catalog�Color settings�Complete Setup�Complete setup and start selling�Configuration�Congratulations!�Connect�Connect Your Store�Connect your %s store�Connect your store�Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again.�Contact Support�Contact us�Content�Copying products and categories.�Create Cart Page�Create Category Page�Create Product Page�Create Search Page�Create Store�Create Store Page�Create a landing page featuring one of your products.�Create a new %s account which you will use to manage your store and inventory. The registration is free.�Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website.�Create new account�Create store�Current Page�Current URL slug: /<span data-ec-store-slug>%s</span>�Customer Single Sign-On�Customers�Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers.�Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout.�Customize design�Customize store appearance�Customize store page address�Customize widget�Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand.�Cyan bluish gray�Dashboard�Default category�Default category ID�Default product_ID�Default view mode on product pages�Default view mode on search results�Deleted products synchronized: %1$s out of %2$s�Demo Store�Demo store�Design�Design and content�Detect automatically�Disconnect store�Display a buy button�Display breadcrumbs�Display cart icon�Display categories menu�Display categories navigation bar�Display category page�Display footer menu�Display product page with description and a buy button�Display product with a buy button�Display search box�Display search page with filters on a side�Display shopping bag link and summary�Display shopping cart�Display shopping cart and checkout page�Display sign in link�Display sort by link�Display the shopping cart icon on site pages�Displayed product�Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site.�Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop.�Displays a list of random products.�Displays a random product from your store to attract customer attention.�Displays a simple search box for your customers to find a product in your store�Displays storefront: product listing and checkout�Displays the latest added products from your store. Show new products to returning customers to drive repeat sales.�Do not show�Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid.�Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site.�Done�Download <a href="%s">import log</a>�Download log file�Draft�E.g. How to set up shipping�Ecwid Badge�Ecwid Ecommerce�Ecwid Ecommerce Shopping Cart�Ecwid Menu Item�Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center�Ecwid e-commerce widgets�Ecwid ecommerce solution�Ecwid free shopping cart�Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">More details.</a>�Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up.�Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href="%s">TemplateMonster themes</a>�Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">More details.</a>�Ecwid shopping cart�Ecwid shopping cart widget�Edit�Edit Appearance�Edit Category�Edit Product�Edit Store�Edit URL Slug�Edit page�Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page.�Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space.�Enter your Store ID�Enter your Store ID here:�Extensions for your Store�Feature a specific store category on a separate page of your site.�Feature your products in the sidebar�Filters�Filters panel position�Find your Store ID�First Page�Frequently Asked Questions�Get %s mobile app�Go to Pages�Go to Your %s Products�Greetings!�Greetings! Your %s plugin is now active.�Grid�Grid view�Help�Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars.�Help customers find your store on the website.�Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products.�Here you can create the content that will be used within the module.�Here, we will help you uploading your product catalog to %s from another shopping cart or other sources.�Hide�Highlight products, categories, and other store pages by adding them to separate website pages.�Highlight your best sellers or new products in the website sidebar.�Horizontal indent�Horizontal thumbnails�How can I add a cart widget to my site sidebar?�How can I manage my store from a mobile device?�How can we help you?�How do I add store categories to the site menu?�How do I put my products in the sitemap?�How much does Ecwid cost?�How secure is this plugin? Is my store PCI DSS compliant?�How to add a single product with the add to bag button to the site pages?�How to set up a storefront on Facebook with Ecwid?�I already have an account, sign in�I couldn’t find a WordPress theme that goes well with %s�I found a better plugin�I have a problem using this plugin�I have a problem with my %s store�I use this WordPress theme: %s�Icon�Icon and item count�Icon, label and item count�Icon, label, item count and subtotal�Icon, label, item count, subtotal and link�If you have a moment, please let us know why you are deactivating:�Image and title on mouse over�Image feed�Image gallery layout�Image only�Import�Import Your Products From Woocommerce to %s�Import completed�Import completed. <a href="%s">Run again.</a>�Import creates new products and update the existing products with matching SKUs.�Import is in Progress�Import my products from WooCommerce�Import product catalog from WooCommerce�Import product catalog from other sources�Import products to your %s store�Import summary�Import your WooCommerce catalog to %s�Import your products from WooCommerce to %s�Import your products from Woocommerce to %s�Imported <b>%s</b> products�Importing %s of %s items�Insert�Insert into page�Instant site�Integration with search on your site�Is it possible to display my store on the site home page?�Is there a WordPress theme for Ecwid?�It's a temporary deactivation. Please do not ask me again.�Item count only�Justify�Knowledge Base�L�Label and item count�Landscape 3:2�Landscape 4:3�Last Page�Last update�Latest Products�Layout�Layout:�Learn more�Left�Light green cyan�Link color�Linked product�List�List view�Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL.�Luminous vivid amber�Luminous vivid orange�M�Make your store accessible from the site menu so your customers can easily find it.�Manage Sidebar�Manage Store on iPhone, iPad or Android�Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page.�Manage store�Manage storefront�Marketing�Mobile�My Account�My Profile�My Sales�Name�Navigation�Need help importing your products from WooCommerce to %s?�Never show this message again�Next Page�Next page�No Thanks�No border�Not synchronized yet�Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The "Show on store pages" and "Show when empty" options will apply to the cart widget on site when published�Nothing found for <span class="empty-page__term">"{{ data.term }}"</span>�Number of categories per row�Number of products per page�Number of products to show�On the left�On the right�Online Store�Online Store Apps�Online store�Open control panel�Open store dashboard�Options�Orders�Other�Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target="_blank" href="%s">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans.�Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">our customer support team</a>.�Page with that name already exists.�Pale cyan blue�Pale pink�Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>�Payment�Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers.�Pick Category�Pick Product�Picture�Pill�Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target="_blank">"Billing & Plans"</a></nobr> page in your Ecwid store control panel.�Please subscribe to a paid plan to get this feature.�Plugins for Ecwid�Portrait 2:3�Portrait 3:4�Position�Preview�Previous Page�Price�Price color�Product�Product Card Large�Product Card Small�Product List Appearance�Product Page Appearance�Product SKU�Product Search�Product Search Box�Product Search and filters�Product card text align�Product catalog will be shown automatically�Product page layout�Product price�Product quantity�Product sidebar content�Product thumbnail aspect ratio�Product thumbnail size�Product title�Products�Products are successfully synchronized. The product pages are up to date.�Products synchronized: %1$s out of %2$s�Promote your store�Provide access.�Provided by <a %s>%s</a>�Publish�Publish Store Page�Publish the page to use this option�Published�Quantity�Questions?�Random Product�Random Products�Rate %s at WordPress.org�Re-connect to Enable Control Panel�Recently Viewed Products�Recommendations for Your Online Store�Rectangle�Refresh categories list�Register at %s�Report a problem with the store�Reports�Right�S�SKU�Sales�Sales channels�Save�Save and connect your %s store to the site�Save changes�Search�Search and Filters�Search products�Search the Knowledge Base�See more�Select All�Select category�Selected Product�Selected category�Sell on Facebook�Send Message�Send a message to our support team�Send message failed�Set Up Your Store�Set manually�Set up your store�Settings�Setup�Shipping & Pickup�Shop�Shopping Cart�Shopping Cart (deprecated)�Shopping Cart Floating (deprecated)�Shopping Cart Icon�Shopping Cart Mini (deprecated)�Shopping Cart Widget�Show�Show additional image on hover�Show categories�Show customers that they can use a search and filters to find desired products faster.�Show description under the image�Show minicart�Show on all pages�Show on hover�Show on store pages�Show price inside the "Buy now" button�Show price inside the «Buy now» button�Show product card border�Show product thumbnails�Show search�Show when empty�Show your store on the home page�Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again.�Small icon�Small icon and item count�Some of the items could not be imported.�Sorry we're having technical difficulties.�Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: "The Wordpress function wp_remote_post() failed to connect a remote server because of some error: "%s". Seems like HTTP POST requests are disabled on this server". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>.�Square 1:1�Start Import�Status�Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store.�Still have questions about Ecwid? Let us know!�Store�Store Categories�Store Categories Menu�Store Category Page�Store Front Page�Store Home Page�Store ID�Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the "Dashboard" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration.�Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>.�Store Link Title�Store Navigation�Store Page�Store Page Link�Store Root Categories�Store appearance�Store elements�Store management�Store page content�Store page on your site�Store root category�Store with Categories Menu�Storefront�Subject�Submit & Deactivate�Switch to draft�Synchronize products�Table�Table view�Take a few simple steps to complete store setup�Take advantage of powerful apps and extensions designed to enhance your store.�Text�Text color�Thank you for choosing %s to build your online store�The block is hidden because you don't have categories in your store. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Add categories.</a>�The category that is shown by default on the Store Front Page�The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps.�The plugin doesn't support the feature I want�The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href="%s" target="_blank">adjust the cart icon appearance</a>.�The store is not visible on your site�The store top-level categories are automatically added to this drop-down menu�Themes for Ecwid�This import will copy your WooCommerce products and categories to your %s store.�This is a demo store. Create your store to see your store products here.�This will change the label of the module in the builder for easy identification.�Title�Title on image�Title only�Title or SKU�Title under image�Title:�To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings.�To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>.�To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>�To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the "Add product" dialog.�To create sitemap for your Wordpress site we suggest using <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> or <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target="_blank" href="https://www.ecwid.com/pricing">paid Ecwid users</a>.�To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission.�To enable this feature, the plugin needs a permission to read your store product information.�To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">How to use it.</a>�To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>�To manage your store, go to <a %s>the Store Dashboard page</a>�To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission.�To show your storefront instead of the demo store, connect your existing %s account or create a new one.�To start selling, add a page to your site where the storefront will display.�Top left�Top right�Try another search.�Type in your message here�URL Slug�Update�Update your catalog�Upgrade to get this feature�Vertical indent�Vertical thumbnails�Very dark gray�Very light gray�View Store Page�View demo store page�View store page�Visit storefront�Vivid cyan blue�Vivid green cyan�Vivid red�Want to connect another %s store?�Warning: some of your online store features are disabled. Please contact your hosting provider to resolve.�We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?�We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you.�We're synchronizing your products. This may take a few minutes. Please do not reload the page.�Website�What feature do you need?�What was wrong?�What's next?�While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site.�Wholesale prices�You can add product search box, cart widget and more on the <a href="%s">"Appearance / Widgets page"</a> here in your site admin. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">More details.</a>�You can add the entire storefront, categories, products, or "Buy now" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block.�You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open "Appearance > Menus" in your WordPress control panel and add the "Store with Categories Menu" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site.�You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">More details.</a>�You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel.�You can display your store on the site main page. Adjust the "Reading" settings of your site as described in our <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">Help Center.</a>�You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href="%1$s">Appearance → Customize → %2$s</a>” menu to enable it.�You can enable filters in the store settings: (“<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Settings → Product Filters</a>”).�You can send a new request here.�You have not viewed any product yet. Open store.�You will be able to sign up through your existing Google, Facebook or PayPal profiles as well.�Your %s store has �Your %s store is connected<br /> to your WordPress website�Your %s store is now connected<br /> to your WordPress website�Your Storefront�Your WooCommerce store has �Your email has been sent�Your product�Your store Control Panel. Right here in WordPress.�Your store has been created. Preparing your store dashboard ...�Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar.�Your store is almost ready!�Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display.�Your store page�Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders.�Your store page is published. Customers can browse your store at �Your store will be shown here�Your store will be shown here!�Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data.�[%s] WordPress plugin deactivation feedback (store ID: %s)�customize appearance�gutenberg-product-blockContent�gutenberg-store-block-stubStore�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�or <a %s>Browse the Help Center�product-browser-attributesProduct SKU�product-browser-attributesProduct price�select product�selected product�vc-tabOnline store�«Buy now» button�PO-Revision-Date: 2020-10-12 12:41 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: Poedit 2.4.1 Language: de Project-Id-Version: temporary-strings X-Crowdin-Project: temporary-strings X-Crowdin-Project-ID: 295314 X-Crowdin-Language: de X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po X-Crowdin-File-ID: 988 Language-Team: German Last-Translator: � Wählen Sie ein anderes Produkt aus� Vielen Dank für Ihre Kontaktaufnahme! Wir melden uns in Kürze bei Ihnen.�Kennzeichnung „Auf Lager“�%s�%s-Blog�%s Warenkorb�%s-Shop�%s Shop-Seite�Das Plug-in „%s“ funktioniert nicht besonders gut mit meinem Thema „%s“�%s Produkt�%s Produkte�%s Produkte und %s Kategorien�%s Produkte und Kategorien�%s-Warenkorb-Einstellungen�%s speichert Ihre Produktdaten in einem sicheren Cloud-Speicher. Die Produktseiten werden dynamisch bzw. „on the fly“ angezeigt, wenn ein Kunde in Ihrem Shop stöbert. Die Produkte werden also nicht auf der Website gespeichert, weshalb die Website-Suche beim Durchsuchen von Seiten und Posts keine Produktseiten findet. Diese Option aktiviert den lokalen Speichermodus: Die Produkte werden sowohl in der Cloud als auch auf Ihrer Website gespeichert. In den Suchergebnissen der Website werden dadurch sowohl Produktseiten als auch reguläre Seiten/Posts angeführt.�%s – Fortgeschrittene Einstellungen�(Sie können die Änderungen vor dem eigentlichen Import bestätigen)�2 Spalten, Bild links�2 Spalten, Bild rechts�3 Spalten, Bild links�3 Spalten, Bild rechts�<a %s>Onlineshop powered by %s</a>�<a %s>Erneut verbinden</a>�<a href="admin.php?page=�<b>%s</b> Kategorien�Ein Slug ist der letzte Teil einer URL. Sie können einen benutzerdefinierten Slug für Ihre Shop-Seite erstellen. Halten Sie sich dabei kurz, da Kunden und Suchmaschinen kompakte URLs bevorzugen. Verwenden Sie zum Beispiel „/shop“ oder „/produkte“.�Aktion erforderlich: Bitte verbinden Sie Ihr %s-Konto�Produkt hinzufügen�Shop hinzufügen�Shop-Seite zum Menü hinzufügen�Kategorieseite hinzufügen�Produktseite hinzufügen�Such- und Filterseite hinzufügen�Shop-Seite hinzufügen�Fügen Sie einen Onlineshop zu Ihrer Website hinzu�Rand hinzufügen�Warenkorb- und Kassen-Seite hinzufügen�Kategorien hinzufügen�Shop-Seite zum Website-Menü hinzufügen�Schaufenster hinzufügen (Produktliste)�Zum Menü hinzufügen�Fügen Sie Ihren %s-Shop zur Website hinzu und verkaufen Sie binnen weniger Minuten.�Fügen Sie Ihren Shop zu anderen Seiten der Website hinzu�Fügen Sie Ihr Schaufenster zur Homepage der Website hinzu, um es noch zentraler zu präsentieren. Sie können die Homepage-Einstellungen für die Website auch unter <a href="%s" target="_blank">WordPress-Einstellungen > Lesen</a> anpassen�Zusätzliche Shop-Seiten�Darüber hinaus können Sie Shop-Steuerelemente zur Toolbar Ihrer Website hinzufügen, indem Sie <a %s>WordPress-native Widgets</a> verwenden�Fügt ein Warenkorb-Widget hinzu, in dem der Kunde jene Produkte sehen kann, die er in den Warenkorb gelegt hat.�Fügt ein kompaktes Warenkorb-Widget hinzu, in dem der Kunde jene Produkte sehen kann, die er in den Warenkorb gelegt hat.�Fügt ein Warenkorb-Widget in der oberen rechten Ecke Ihrer Website ein.�Fügt die Liste der Stammkategorien zur Seitenleiste hinzu, damit Ihre Kunden im Shop navigieren können.�Fügt einen vertikalen Kategorieblock hinzu, damit der Kunde in Ihrem Shop stöbern kann.�Passen Sie Ihr Shop-Design an die Bedürfnisse Ihres Unternehmens an.�Admin-Bezeichnung�Fortgeschritten�Fortgeschrittene Einstellungen�Nach dem Import verfügt Ihr %s-Shop über �Alle Vertriebswege�Neben dem Katalog können Sie der Shop-Seite weitere Widgets und Texte hinzufügen.�Erscheinungsbild�Apps�Verfügbare Menge auf Lager�Zurück zu den Shop-Einstellungen�Hintergrundfarbe�Tasche�Korb�Bevor Sie gehen�Rand�Rand:�Unten links�Unten rechts�Brotkrümelnavigation�Alle Produkte durchsuchen.�Nach Kategorie durchsuchen�Importieren Sie Produkte und Kategorien massenweise in Ihren %s-Shop�Schaltflächenfarbe�Jetzt kaufen�Schaltfläche „Jetzt kaufen“�„Jetzt kaufen“-Schaltflächen�Indem Sie fortfahren, akzeptieren Sie die <a %s>Servicebedingungen</a> und die <a %s>Datenschutzrichtlinie</a>.�CSS-Klasse�CSS-ID�Würden Sie uns bitte den Namen des von Ihnen gewählten Plug-ins mitteilen?�Würden Sie uns bitte Ihr Feedback mitteilen? Was lief falsch?�Abbrechen�Warenkorb�Warenkorb und Kasse�Warenkorb-Symbol�Warenkorb-Symbol:�Katalog�Kategorien�Kategorie�Erscheinungsbild der Kategorieliste�Kategoriekarten-Layout�Standardmäßig angezeigte Kategorie�Seitenverhältnis der Kategorie-Miniaturansicht�Größe der Kategorie-Miniaturansicht�Zentriert�Zentrierte Ausrichtung auf einer Seite�Ändern�Shop-Inhalt ändern�Produkt auswählen�Produkt auswählen�Wählen Sie die Produkteigenschaften aus, die im Widget angezeigt werden sollen�Wählen Sie die Hauptseite des Shops aus�Widgets zur Anzeige auswählen�Klicken Sie auf die Schaltfläche „Verbinden“, um Berechtigungen zur Aktualisierung des Produktkatalogs einzuholen�Farbeinstellungen�Einrichtung abschließen�Einrichtung abschließen und mit dem Verkauf beginnen�Konfiguration�Glückwunsch!�Verbinden�Verbinden Sie Ihren Shop�Verbinden Sie Ihren %s-Shop�Verbinden Sie Ihren Shop�Verbindungsfehler – Nachdem Sie auf die Schaltfläche geklickt haben, müssen Sie sich anmelden und die entsprechenden Berechtigungen erteilen, um unser Plug-in verwenden zu können. Bitte versuchen Sie es erneut.�Support kontaktieren�Kontaktieren Sie uns�Inhalt�Produkte und Kategorien werden kopiert.�Warenkorb-Seite erstellen�Kategorieseite erstellen�Produktseite erstellen�Suchseite erstellen�Shop erstellen�Shop-Seite erstellen�Erstellen Sie eine Landingpage mit einem Ihrer Produkte.�Legen Sie ein neues %s-Konto an, mit dem Sie Ihren Shop und Ihren Lagerbestand verwalten können. Die Registrierung ist kostenlos.�Erstellen Sie einen neuen Shop oder verbinden Sie einen bestehenden, wenn Sie bereits ein %s-Konto haben. Das Plug-in führt Sie durch die Einrichtung des Shops und hilft Ihnen dabei, diesen auf Ihrer Website zu veröffentlichen.�Ein neues Konto erstellen�Shop erstellen�Aktuelle Seite�Aktueller URL-Slug: /<span data-ec-store-slug>%s</span>�Single Sign-on für Kunden�Kunden�Kunden können Ihre Shop-Seite nicht sehen, weil sie sich im Entwurf befindet. Veröffentlichen Sie die Seite, um sie Ihren Kunden zugänglich zu machen.�Kunden rufen die Warenkorb-Seite auf, um die Produkte zu überprüfen, die sie in den Warenkorb gelegt haben, und um zur Kasse fortzufahren.�Design anpassen�Erscheinungsbild des Shops anpassen�Adresse der Shop-Seite anpassen�Widget anpassen�Passen Sie das Erscheinungsbild Ihres Shops an Ihre Geschäftsbedürfnisse an. Verpassen Sie Ihrem Shop genau das Look-and-feel, das Ihrer Marke entspricht.�Türkisblaues Grau�Dashboard�Standardkategorie�Standardmäßige Kategorie-ID�Standardmäßige product_ID�Standardmäßige Ansicht auf Produktseiten�Standardmäßige Ansicht in den Suchergebnissen�Synchronisierte gelöschte Produkte: %1$s von %2$s�Demo-Shop�Demo-Shop�Design�Design und Inhalt�Automatisch erkennen�Verbindung zum Shop trennen�Kaufschaltfläche anzeigen�Brotkrümelnavigation anzeigen�Warenkorb-Symbol anzeigen�Kategoriemenü anzeigen�Navigationsleiste für Kategorien anzeigen�Kategorieseite anzeigen�Fußzeilenmenü anzeigen�Produktseite mit Beschreibung und einer Kaufschaltfläche anzeigen�Produkt mit einer Kaufschaltfläche anzeigen�Suchfeld anzeigen�Suchseite mit Filtern auf einer Seite anzeigen�Warenkorb-Link und -Zusammenfassung anzeigen�Warenkorb anzeigen�Warenkorb und Kasse anzeigen�Link zur Anmeldung anzeigen�Sortierung nach Link anzeigen�Warenkorb-Symbol auf den Seiten der Website anzeigen�Angezeigtes Produkt�Zeigt einen Link zur Shop-Seite in der Seitenleiste an, damit der Kunde von jeder Seite der Website aus schnell auf Ihren Shop zugreifen kann.�Zeigt eine Liste der Produkte an, die der Kunde kürzlich betrachtet hat. Er kann auf diese Weise leicht zu jenen Produkten zurückkehren, die er in Ihrem Shop gesehen hat.�Zeigt eine Liste von zufälligen Produkten an.�Zeigt ein zufälliges Produkt aus Ihrem Shop an, um die Aufmerksamkeit der Kunden zu erregen.�Zeigt ein einfaches Suchfeld an, über das Ihre Kunden ein Produkt in Ihrem Shop finden können�Zeigt Schaufenster an: Produktliste und Kasse�Zeigt die zuletzt hinzugefügten Produkte aus Ihrem Shop an. Zeigen Sie wiederkehrenden Kunden neue Produkte, um Wiederholungskäufe zu fördern.�Nicht anzeigen�Ihnen gefällt Ecwid und Sie möchten uns helfen, zu wachsen? Dann fügen Sie doch diesen schicken „Powered by Ecwid“-Badge zu Ihrer Website hinzu, um Ihren Besuchern zu zeigen, dass Sie ein stolzer Ecwid-Benutzer sind.�Gefällt Ihnen Ihr %s-Onlineshop? Wir wären Ihnen sehr verbunden, wenn Sie Ihre Rezension auf der Website von WordPress hinterlassen und dort für das Plug-in abstimmen könnten.�Fertig�<a href="%s">Importprotokoll</a> herunterladen�Protokolldatei herunterladen�Entwurf�Zum Beispiel: „Wie richte ich den Versand ein?“�Ecwid-Badge�Ecwid-E-Commerce�Ecwid-E-Commerce-Warenkorb�Ecwid-Menüpunkt�Ecwid ermöglicht es Ihnen, Ihre Produkte in Form einer CSV-Datei hochzuladen. Erfahren Sie im Ecwid-Hilfecenter mehr über dieses Tool�Ecwid-E-Commerce-Widgets�Ecwid-E-Commerce-Lösung�Kostenloser Ecwid-Warenkorb�Ecwid ist PCI-DSS-Level-1-zertifiziert – dies ist der Goldstandard für E-Commerce-Lösungen weltweit. Das bedeutet, dass Sie beim Onlineverkauf mit Ecwid keine Probleme mit der Einhaltung von Bankvorschriften haben. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">Weitere Einzelheiten.</a>�Ecwid ist ein kostenloser Warenkorb mit allen erforderlichen Funktionen. Die Lösung kann leicht in jedes WordPress-Blog integriert werden und die Einrichtung dauert nicht einmal 5 Minuten.�Ecwid ist mit jedem WordPress-Thema kompatibel. Ob es sich nun um ein kostenloses Thema aus dem WordPress.org-Katalog, ein Premium-Thema eines Drittanbieters oder ein eigens entworfenes Design handelt – Ihr Ecwid-Shop funktioniert bestens damit. Wir empfehlen die <a href="%s">Themen von TemplateMonster</a>, falls Sie auf der Suche nach einem Premium-Design sind.�Ecwid stellt kostenlose Mobile-Apps für iOS und Android zur Verfügung, mit denen Sie Ihren Shop unterwegs verwalten und Produkte verkaufen können. Scannen Sie Produkte, verfolgen Sie den Lagerbestand, verwalten Sie Verkäufe und akzeptieren Sie Zahlungen, indem Sie Ihr Mobilgerät als POS-Station verwenden. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">Weitere Einzelheiten.</a>�Ecwid-Warenkorb�Ecwid-Warenkorb-Widget�Bearbeiten�Erscheinungsbild bearbeiten�Kategorie bearbeiten�Produkt bearbeiten�Shop bearbeiten�URL-Slug bearbeiten�Seite bearbeiten�Geben Sie eine optionale CSS-ID ein, die für dieses Modul verwendet werden soll. Eine ID kann genutzt werden, um benutzerdefiniertes CSS-Styling oder Links zu bestimmten Abschnitten Ihrer Seite zu erstellen.�Geben Sie optionale CSS-Klassen ein, die für dieses Modul verwendet werden sollen. Eine CSS-Klasse kann genutzt werden, um benutzerdefiniertes CSS-Styling zu erstellen. Sie können mehrere Klassen hinzufügen, indem Sie diese durch ein Leerzeichen trennen.�Geben Sie Ihre Shop-ID ein�Geben Sie hier Ihre Shop-ID ein:�Erweiterungen für Ihren Shop�Stellen Sie eine bestimmte Shop-Kategorie auf einer separaten Seite Ihrer Website vor.�Stellen Sie Ihre Produkte in der Seitenleiste vor�Filter�Position des Filterpanels�Machen Sie Ihre Shop-ID ausfindig�Erste Seite�Häufig gestellte Fragen�Holen Sie sich die %s-Mobile-App�Seiten aufrufen�Gehen Sie zu Ihren %s-Produkten�Guten Tag!�Guten Tag! Ihr %s-Plug-in ist jetzt aktiv.�Gitter�Gitteransicht�Hilfe�Helfen Sie Kunden, Ihren Shop auf der Website zu finden. Fügen Sie den Shop-Link zum Website-Menü hinzu, erstellen Sie zusätzliche Shop-Seiten und heben Sie Shop-Produkte auf anderen Seiten der Website sowie in den Seitenleisten hervor.�Helfen Sie Kunden, Ihren Shop auf der Website zu finden.�Hier können Sie festlegen, wie viele Produkte pro Seite angezeigt werden sollen. Diese Optionen definieren Maximalwerte. Wenn der Platz nicht ausreicht, um alle Produktspalten anzuzeigen, passt %s die Anzahl derselben so an, dass alle Produkte untergebracht werden.�Hier können Sie den Inhalt erstellen, der im Rahmen des Moduls verwendet werden soll.�Hier helfen wir Ihnen dabei, Ihren Produktkatalog von einem anderen Warenkorb oder aus anderen Quellen in %s hochzuladen.�Ausblenden�Heben Sie Produkte, Kategorien und andere Shop-Seiten hervor, indem Sie sie zu separaten Seiten der Website hinzufügen.�Heben Sie Ihre Bestseller oder Ihre neuen Produkte in der Seitenleiste der Website hervor.�Horizontaler Einzug�Horizontale Miniaturansichten�Wie kann ich ein Warenkorb-Widget zur Seitenleiste meiner Website hinzufügen?�Wie kann ich meinen Shop auf einem Mobilgerät verwalten?�Wie können wir Ihnen weiterhelfen?�Wie füge ich Shop-Kategorien zum Website-Menü hinzu?�Wie kann ich meine Produkte in die Sitemap aufnehmen?�Wie viel kostet Ecwid?�Wie sicher ist dieses Plug-in? Ist mein Shop PCI-DSS-konform?�Wie kann ich ein einzelnes Produkt mit der Schaltfläche „Zum Warenkorb hinzufügen“ auf den Seiten der Website einbinden?�Wie richte ich mit Ecwid ein Schaufenster auf Facebook ein?�Ich habe bereits ein Konto, anmelden�Ich konnte kein WordPress-Thema finden, das gut zu %s passt�Ich habe ein besseres Plug-in gefunden�Ich habe ein Problem mit diesem Plug-in�Ich habe ein Problem mit meinem %s-Shop�Ich verwende dieses WordPress-Thema: %s�Symbol�Symbol und Artikelanzahl�Symbol, Beschriftung und Artikelanzahl�Symbol, Beschriftung, Artikelanzahl und Zwischensumme�Symbol, Beschriftung, Artikelanzahl, Zwischensumme und Link�Teilen Sie uns bitte mit, warum Sie die Deaktivierung durchführen, falls Sie einen Moment Zeit haben:�Bild und Titel beim Drüberfahren mit der Maus�Bilder-Feed�Layout der Bildergalerie�Nur Bild�Importieren�Importieren Sie Ihre Produkte von WooCommerce nach %s�Importvorgang abgeschlossen�Importvorgang abgeschlossen. <a href="%s">Erneut durchführen.</a>�Im Rahmen des Importvorgangs werden neue Produkte erstellt und vorhandene mit den passenden Art.-Nr. aktualisiert.�Importvorgang läuft�Meine Produkte von WooCommerce importieren�Produktkatalog von WooCommerce importieren�Produktkatalog aus anderen Quellen importieren�Importieren Sie Produkte in Ihren %s-Shop�Zusammenfassung des Importvorgangs�Importieren Sie Ihren WooCommerce-Katalog nach %s�Importieren Sie Ihre Produkte von WooCommerce nach %s�Importieren Sie Ihre Produkte von WooCommerce nach %s�<b>%s</b> Produkte importiert�%s von %s Artikeln werden importiert�Einfügen�In Seite einfügen�Instant Site�Integration mit der Suche auf Ihrer Website�Ist es möglich, meinen Shop auf der Startseite der Website anzuzeigen?�Gibt es ein WordPress-Thema für Ecwid?�Es handelt sich um eine vorübergehende Deaktivierung. Bitte fragen Sie mich nicht noch einmal.�Nur Artikelanzahl�Blocksatz�Wissensdatenbank�L�Beschriftung und Artikelanzahl�Querformat 3:2�Querformat 4:3�Letzte Seite�Letzte Aktualisierung�Neueste Produkte�Layout�Layout:�Mehr erfahren�Linksbündig�Helles Türkisgrün�Linkfarbe�Verlinktes Produkt�Liste�Listenansicht�Es scheint so, als würde Ihre Website keine Remote-POST-Anfragen unterstützen, die für die Funktionalität der %s-API erforderlich sind. Bitte kontaktieren Sie Ihren Hostingprovider, um cURL zu aktivieren.�Leuchtendes Bernsteingelb�Leuchtendes Orange�M�Machen Sie Ihren Shop über das Website-Menü zugänglich, damit Ihre Kunden ihn leicht finden können.�Seitenleiste verwalten�Shop auf iPhone, iPad oder Android verwalten�Verwalten Sie Produkte, verfolgen Sie Verkäufe und passen Sie Einstellungen an – <nobr>all das, ohne</nobr> diese Seite zu verlassen.�Shop verwalten�Schaufenster verwalten�Marketing�Mobile�Mein Konto�Mein Profil�Meine Verkäufe�Name�Navigation�Benötigen Sie Hilfe beim Import Ihrer Produkte von WooCommerce nach %s?�Diese Nachricht nicht erneut anzeigen�Nächste Seite�Nächste Seite�Nein danke�Kein Rand�Noch nicht synchronisiert�Hinweis: Wenn diese Option aktiviert ist, wird das Warenkorb-Widget immer in der Vorschau angezeigt, um die Anpassung zu erleichtern. Die Optionen „Auf Shop-Seiten anzeigen“ und „Anzeigen, wenn leer“ wirken sich auf das Warenkorb-Widget auf der veröffentlichten Website aus�Nichts gefunden für <span class="empty-page__term">„{{ data.term }}“</span>�Anzahl der Kategorien pro Zeile�Anzahl der Produkte pro Seite�Anzahl der anzuzeigenden Produkte�Links�Rechts�Onlineshop�Onlineshop-Apps�Onlineshop�Steuermenü öffnen�Shop-Dashboard öffnen�Optionen�Bestellungen�Anderes�Unsere 4 Kontotypen unterscheiden sich durch die Anzahl der Produkte, die Art der Funktionalität und den Supportlevel. Weitere Informationen finden Sie auf unserer Seite <a target="_blank" href="%s">„Preise“.</a><br /><br />Pro-Tipp: Sie können Geld sparen, indem Sie einen Jahrestarif abschließen.�Unser Team arbeitet bereits an diesem Problem. Bitte aktualisieren Sie die Seite in ein paar Minuten. Bitte wenden Sie sich an <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">unser Kundensupport-Team</a>, falls das Problem weiterhin bestehen sollte.�Seite mit diesem Namen existiert bereits.�Blasses Türkisblau�Blassrosa�Ein Teil der Produkte wurde nicht nach %1$s kopiert, weil Sie das Produktlimit Ihres Tarifs bei %1$s erreicht haben. Ziehen Sie ein <nobr><a %2$s>Upgrade Ihres %1$s-Tarifs</a></nobr> in Erwägung, falls Sie mehr Produkte importieren möchten.�Bezahlung�Personalisieren Sie das Erscheinungsbild Ihres Schaufensters und bearbeiten Sie den Inhalt auf der Shop-Seite, um Ihre Marke widerzuspiegeln und mit Ihren Kunden in Verbindung zu bleiben.�Kategorie auswählen�Produkt auswählen�Bild�Abgerundetes Rechteck�Bitte beachten Sie die maximale Anzahl an Produkten und Kategorien, die Sie in Ihrem Ecwid-Shop nutzen können. Dieses Import-Tool bricht den Vorgang automatisch ab, wenn das Produktlimit des Shops erreicht wurde. Besuchen Sie bitte die Seite <nobr><a %s target="_blank">„Abrechnung und Tarife“</a></nobr> im Steuermenü Ihres Ecwid-Shops, um das aktuelle Shop-Limit einzusehen oder dieses zu erhöhen.�Bitte abonnieren Sie einen kostenpflichtigen Tarif, um diese Funktion nutzen zu können.�Plug-ins für Ecwid�Hochformat 2:3�Hochformat 3:4�Position�Vorschau�Vorherige Seite�Preis�Preisfarbe�Produkt�Große Produktkarte�Kleine Produktkarte�Erscheinungsbild der Produktliste�Erscheinungsbild der Produktseite�Art.-Nr.�Produktsuche�Produktsuchfeld�Produktsuche und -filter�Ausrichtung des Produktkarten-Texts�Produktkatalog wird automatisch angezeigt�Produktseitenlayout�Produktpreis�Produktmenge�Inhalt der Produktseitenleiste�Seitenverhältnis der Produkt-Miniaturansicht�Größe der Produkt-Miniaturansicht�Produkttitel�Produkte�Produkte sind erfolgreich synchronisiert. Die Produktseiten sind auf dem neuesten Stand.�Synchronisierte Produkte: %1$s von %2$s�Promoten Sie Ihren Shop�Zugriff gewähren.�Zur Verfügung gestellt von <a %s>%s</a>�Veröffentlichen�Shop-Seite veröffentlichen�Veröffentlichen Sie die Seite, um diese Option zu verwenden�Veröffentlicht�Anzahl�Haben Sie noch Fragen?�Zufälliges Produkt�Zufällige Produkte�Bewerten Sie %s auf WordPress.org�Zum Aktivieren des Steuermenüs erneut verbinden�Kürzlich angesehene Produkte�Empfehlungen für Ihren Onlineshop�Rechteck�Kategorieliste aktualisieren�Registrieren bei %s�Ein Problem mit dem Shop melden�Berichte�Rechtsbündig�S�Art.-Nr.�Verkäufe�Vertriebswege�Speichern�Speichern Sie und verbinden Sie Ihren %s-Shop mit der Website�Änderungen speichern�Suchen�Suche und Filter�Produkte suchen�Wissensdatenbank durchsuchen�Mehr anzeigen�Alle auswählen�Kategorie auswählen�Ausgewähltes Produkt�Ausgewählte Kategorie�Auf Facebook verkaufen�Nachricht verschicken�Senden Sie eine Nachricht an unser Support-Team�Senden der Nachricht fehlgeschlagen�Richten Sie Ihren Shop ein�Manuell einstellen�Richten Sie Ihren Shop ein�Einstellungen�Einrichtung�Versand und Abholung�Shop�Warenkorb�Warenkorb (veraltet)�Schwebender Warenkorb (veraltet)�Warenkorb-Symbol�Mini-Warenkorb (veraltet)�Warenkorb-Widget�Anzeigen�Zusätzliches Bild beim Drüberfahren anzeigen�Kategorien anzeigen�Zeigen Sie Ihren Kunden, dass sie mit einer Suche und Filtern die gewünschten Produkte schneller finden können.�Beschreibung unter dem Bild anzeigen�Mini-Warenkorb anzeigen�Auf allen Seiten anzeigen�Beim Drüberfahren anzeigen�Auf Shop-Seiten anzeigen�Preis in der Schaltfläche „Jetzt kaufen“ anzeigen�Preis in der Schaltfläche „Jetzt kaufen“ anzeigen�Produktkarten-Rand anzeigen�Produkt-Miniaturansichten anzeigen�Suche anzeigen�Anzeigen, wenn leer�Präsentieren Sie Ihren Shop auf der Homepage�Single Sign-on ermöglicht es Ihren Kunden, ein einziges Log-in für Ihre WordPress-Website und %s zu verwenden. Wenn sich jemand bei Ihrer Website anmeldet, wird er automatisch auch in sein Kundenkonto bei Ihrem Shop eingeloggt, ohne dass er seine E-Mail-Adresse/sein Passwort erneut eingeben müsste.�Kleines Symbol�Kleines Symbol und Artikelanzahl�Einige der Artikel konnten nicht importiert werden.�Bitte entschuldigen Sie unsere technischen Schwierigkeiten.�Entschuldigung, es gibt ein Problem. Diese Seite soll das Steuermenü Ihres Shops anzeigen. Allerdings scheint diese WordPress-Website nicht in der Lage zu sein, eine Verbindung zum Ecwid-Server herzustellen, um Ihr Shop-Dashboard hier anzuzeigen. Dies ist wahrscheinlich auf eine Fehlkonfiguration Ihres Servers zurückzuführen. Die Situation kann von Ihrem Hostingprovider gelöst werden. Es folgt eine technischere Beschreibung des Problems, die Sie an Ihren Hostingprovider schicken können: „Die WordPress-Funktion wp_remote_post() konnte aufgrund eines Fehlers keine Verbindung zu einem entfernten Server herstellen: ‚%s‘. Es scheint so, als wären HTTP-POST-Anfragen auf diesem Server deaktiviert.“ <br /><br />Bitte zögern Sie nicht, uns unter <a %s>wordpress@ecwid.com</a> zu kontaktieren. Wir helfen Ihnen gerne dabei, sich an Ihren Hostingprovider zu wenden und diesen darum zu bitten, das Problem zu beheben. <br /><br /> In der Zwischenzeit können Sie zur Verwaltung Ihres Shops das Ecwid-Web-Steuermenü unter <a %s>my.ecwid.com</a> verwenden. Ihr Schaufenster funktioniert ebenfalls einwandfrei. Sie können es hier überprüfen: <a %s>%s</a>.�Quadrat 1:1�Import beginnen�Status�Bleiben Sie mit Ihren Kunden in Verbindung. Aktualisieren Sie den Inhalt Ihres Shops jederzeit, um Kunden über laufende Promotions und neue Produkte zu informieren.�Haben Sie noch Fragen zu Ecwid? Lassen Sie es uns wissen!�Shop�Shop-Kategorien�Menü für Shop-Kategorien�Shop-Kategorieseite�Shop-Startseite�Shop-Startseite�Shop-ID�Die Shop-ID ist eine eindeutige Kennung jedes %1$s-Shops. Sie besteht aus mehreren Ziffern. Sie finden sie auf der „Dashboard“-Seite des %1$s-Steuermenüs. Die Shop-ID wird zudem nach der Registrierung in der Begrüßungs-E-Mail mitgeschickt.�Die Shop-ID ist eine eindeutige Kennung Ihres %1$s-Kontos. Sie finden sie in Ihrem %1$s-Steuermenü auf der <a %2$s>Dashboard-Seite</a>.�Shop-Link-Titel�Shop-Navigation�Shop-Seite�Shop-Seiten-Link�Shop-Stammkategorien�Erscheinungsbild des Shops�Shop-Elemente�Shop-Management�Inhalt der Shop-Seite�Shop-Seite auf Ihrer Website�Shop-Stammkategorie�Shop mit Kategoriemenü�Schaufenster�Betreff�Übermitteln und deaktivieren�Zum Entwurf wechseln�Produkte synchronisieren�Tabelle�Tabellenansicht�Führen Sie ein paar einfache Schritte durch, um die Einrichtung des Shops abzuschließen�Profitieren Sie von leistungsfähigen Apps und Erweiterungen, die Ihren Shop aufwerten.�Text�Textfarbe�Vielen Dank, dass Sie sich für %s zur Einrichtung Ihres Onlineshops entschieden haben�Der Block wird ausgeblendet, weil Sie in Ihrem Shop keine Kategorien verwenden. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Fügen Sie Kategorien hinzu.</a>�Die Kategorie, die standardmäßig auf der Shop-Startseite angezeigt wird�Der erste Schritt zur Eröffnung Ihres Onlinegeschäfts: <br />Legen wir los und fügen wir in <strong>3</strong> einfachen Schritten einen Shop zu Ihrer WordPress-Website hinzu.�Das Plug-in unterstützt die von mir gewünschte Funktion nicht�Das Warenkorb-Symbol zeigt die Anzahl der Artikel im Warenkorb an und ermöglicht es den Kunden, zur Kasse zu gehen. Sie können zudem <a href="%s" target="_blank">das Erscheinungsbild des Warenkorb-Symbols</a> anpassen.�Der Shop ist auf Ihrer Website nicht sichtbar�Die Oberkategorien des Shops werden automatisch zu diesem Drop-down-Menü hinzugefügt�Themen für Ecwid�Dieser Importvorgang kopiert Ihre WooCommerce-Produkte und -Kategorien in Ihren %s-Shop.�Dies ist ein Demo-Shop. Erstellen Sie Ihren Shop, um hier die Produkte desselben zu sehen.�Hierdurch wird die Bezeichnung des Moduls im Builder zur leichteren Identifizierung geändert.�Titel�Titel auf Bild�Nur Titel�Titel oder Art.-Nr.�Titel unter Bild�Titel:�Bewegen Sie %s-Shop-Elemente per Drag-and-drop auf Ihre Website, um Ihrem Shop zusätzliche Funktionen hinzuzufügen. Wenn Sie fertig sind, können Sie mit der Änderung Ihrer Einstellungen fortfahren.�Geben Sie Ihre %1$s-Shop-ID in das Feld unten ein, um Ihren Shop zu Ihrer Website hinzuzufügen. Erstellen Sie kostenlos ein %1$s-Konto auf der <a %2$s>%1$s-Website</a>, falls Sie noch über keines verfügen sollten.�Erteilen Sie %s bitte die Berechtigung, die Kundendaten im Shop zu verwenden, um die automatische Anmeldung von Kunden bei Ihrem Shop zu ermöglichen. <a %s>Bitte verwenden Sie dazu diesen Link</a>�Um ein Produkt auswählen zu können, das in Ihre Posts und Seiten eingefügt werden soll, müssen Sie Ihre Website erneut mit Ihrem %s-Shop verbinden. Dazu müssen Sie lediglich die Berechtigungsanfrage akzeptieren, damit das Plug-in Ihre Produkte im Dialog „Produkt hinzufügen“ auflisten kann.�Wir empfehlen die Verwendung der Plug-ins <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> oder <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast WordPress SEO</a> zur Erstellung einer Sitemap für Ihre WordPress-Website. Diese Plug-ins sind vollständig mit Ecwid kompatibel und ermöglichen die Generierung einer Sitemap, die Links zu Kategorien und Produktseiten enthält, sodass die Shop-Seiten schneller indiziert werden können. Bitte beachten Sie, dass diese Option <a target="_blank" href="https://www.ecwid.com/pricing">zahlenden Ecwid-Benutzern</a> zur Verfügung steht.�Um Ihren Shop auf dieser Website anzeigen zu können, müssen Sie WordPress den Zugriff auf Ihre %1$s-Produkte gestatten. Bitte drücken Sie auf „Verbinden“, um die Berechtigung zu erteilen.�Um diese Funktion zu aktivieren, benötigt das Plug-in die Berechtigung zum Auslesen der Informationen der Produkte in Ihrem Shop.�Verwenden Sie den Shortcode <b>[ecwid_product]</b>, um ein einzelnes Produkt auf einer separaten Seite oder in einem Blogpost auf Ihrer Website einzubinden. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">Hier finden Sie die Anleitung.</a>�Bitte aktivieren Sie die Option „Look-and-feel der nächsten Generation für die Produktseite des Schaufensters“ in Ihrem Shop-Dashboard („<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Einstellungen → Neuigkeiten</a>“), um das Look-and-feel Ihrer Produktseite zu optimieren und deren Erscheinungsbild anzupassen.�Bitte aktivieren Sie die Option „Look-and-feel der nächsten Generation für die Produktseite des Schaufensters“ in Ihrem Shop-Dashboard („<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Einstellungen → Neuigkeiten</a>“), um das Look-and-feel Ihrer Produktseite zu optimieren und deren Erscheinungsbild anzupassen.�Bitte aktivieren Sie die Option „Look-and-feel der nächsten Generation für die Produktliste des Schaufensters“ in Ihrem Shop-Dashboard („<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Einstellungen → Neuigkeiten</a>“), um das Look-and-feel Ihres Shops zu optimieren und das Erscheinungsbild des Schaufensters anzupassen.�Aktivieren Sie die Registrierung in den <a %s>Website-Einstellungen</a>, um sicherzustellen, dass Ihr Kunde sich auf Ihrer Website und im Shop anmelden kann�Rufen Sie <a %s>die Dashboard-Seite Ihres Shops</a> auf, um diesen zu verwalten.�Um mit %1$s verkaufen zu können, müssen Sie WordPress den Zugriff auf das %1$s-Plug-in gestatten. Die Schaltfläche „Verbinden“ führt Sie zu Ihrem %1$s-Konto, wo Sie die entsprechende Berechtigung erteilen können.�Verbinden Sie Ihr bestehendes %s-Konto oder erstellen Sie ein neues, um Ihr Schaufenster anstelle des Demo-Shops anzuzeigen.�Fügen Sie eine Seite zu Ihrer Website hinzu, auf der das Schaufenster angezeigt wird, um mit dem Verkaufen zu beginnen.�Oben links�Oben rechts�Probieren Sie es mit einer anderen Suche.�Geben Sie hier Ihre Nachricht ein�URL-Slug�Update�Aktualisieren Sie Ihren Katalog�Führen Sie ein Upgrade durch, um diese Funktion nutzen zu können�Vertikaler Einzug�Vertikale Miniaturansichten�Sehr dunkles Grau�Sehr helles Grau�Shop-Seite anzeigen�Demo-Shop-Seite anzeigen�Shop-Seite anzeigen�Schaufenster besuchen�Kräftiges Türkisblau�Kräftiges Türkisgrün�Kräftiges Rot�Möchten Sie einen weiteren %s-Shop verbinden?�Warnung: Einige Funktionen Ihres Onlineshops sind deaktiviert. Bitte wenden Sie sich zur Lösung des Problems an Ihren Hostingprovider.�Wir haben festgestellt, dass Sie WooCommerce installiert haben. Ihr WooCommerce-Shop verfügt über %1$s Produkte und %2$s Kategorien. Möchten Sie diese nach %3$s importieren?�Wir haben bemerkt, dass Sie WooCommerce installiert haben. Dieses Tool hilft Ihnen dabei, Ihre WooCommerce-Produkte ganz einfach nach %s zu kopieren, wenn Sie dies möchten.�Wir synchronisieren Ihre Produkte. Dies kann einige Minuten dauern. Bitte laden Sie die Seite nicht neu.�Website�Welche Funktion benötigen Sie?�Was lief falsch?�Wie geht es weiter?�Solange Ihr Shop nicht verbunden ist, wird auf Ihrer Website ein Demo-Shop angezeigt. Sehen Sie sich diesen an, um eine Vorstellung davon zu erhalten, wie Ihr Shop auf der Website aussehen könnte.�Großhandelspreise�Sie können ein Produktsuchfeld, ein Warenkorb-Widget und mehr in Ihrer Website-Verwaltung auf der Seite <a href="%s">„Erscheinungsbild > Widgets“</a> hinzufügen. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">Weitere Einzelheiten.</a>�Sie können das gesamte Schaufenster, Kategorien, Produkte oder „Jetzt kaufen“-Schaltflächen zu anderen Seiten Ihrer Website hinzufügen. Öffnen Sie dazu eine Seite im Editor und fügen Sie einen entsprechenden %s-Block hinzu.�Sie können das Shop-Kategoriemenü zu Ihrem Website-Menü hinzufügen, um Ihren Kunden die Navigation auf Ihrer Website zu erleichtern. Öffnen Sie einfach „Erscheinungsbild > Menüs“ in Ihrem WordPress-Steuermenü und fügen Sie den Punkt „Shop mit Kategoriemenü“ zu Ihrem Website-Menü hinzu. Auf Ihrer Website wird automatisch ein Drop-down-Menü mit Ihren Shop-Kategorien angezeigt.�Sie können Ihren Onlineshop zu Ihrer Facebook-Geschäftsseite hinzufügen. Hierzu sind keine Add-ons erforderlich. Ecwid synchronisiert automatisch Produkte, Kunden, Bestellungen und Lagerbestände zwischen Ihren WordPress- und Facebook-Schaufenstern. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">Weitere Einzelheiten.</a>�Sie können das Look-and-feel Ihres Shops auf der Seite <a %s>Designeinstellungen</a> im Steuermenü festlegen.�Sie können Ihren Shop auf der Hauptseite der Website anzeigen. Passen Sie die „Lesen“-Einstellungen Ihrer Website wie in unserem <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">Hilfecenter</a> beschrieben an.�Sie können ein zusätzliches Warenkorb-Symbol-Widget aktivieren, das auf den Seiten Ihrer Website erscheint. Öffnen Sie das Menü „<a href="%1$s">Erscheinungsbild → Anpassen → %2$s</a>“, um es zu aktivieren.�Sie können Filter in den Shop-Einstellungen aktivieren: („<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Einstellungen → Produktfilter</a>“).�Hier können Sie eine neue Anfrage senden.�Sie haben noch kein Produkt angesehen. Öffnen Sie den Shop.�Sie können sich auch über Ihre bestehenden Google-, Facebook- oder PayPal-Profile registrieren.�Ihr %s-Shop verfügt über �Ihr %s-Shop ist mit Ihrer WordPress-Website verbunden<br />�Ihr %s-Shop ist jetzt mit Ihrer WordPress-Website verbunden<br />�Ihr Schaufenster�Ihr WooCommerce-Shop verfügt über �Ihre E-Mail wurde verschickt�Ihr Produkt�Das Steuermenü Ihres Shops. Direkt hier in WordPress.�Ihr Shop wurde erstellt. Ihr Shop-Dashboard wird vorbereitet …�Ihr Shop wird zu mehreren Seiten der Website hinzugefügt. Wählen Sie die Hauptseite aus. Kunden werden zur Hauptseite des Shops weitergeleitet, wenn sie das Warenkorb-Symbol, Links zum Shop im Website-Menü und Produkte in der Seitenleiste anklicken.�Ihr Shop ist fast fertig!�Ihr Shop wird zu keiner Seite Ihrer Website hinzugefügt. Erstellen Sie eine Seite, auf der Ihr Shop angezeigt wird, damit Kunden in diesem stöbern und Bestellungen aufgeben können.�Ihre Shop-Seite�Ihre Shop-Seite befindet sich derzeit im Entwurf. Veröffentlichen Sie sie, sobald Sie fertig sind, damit Kunden in Ihrem Shop stöbern und Bestellungen aufgeben können.�Ihre Shop-Seite wird veröffentlicht. Kunden können unter folgender Adresse in Ihrem Shop stöbern: �Ihr Shop wird hier angezeigt�Ihr Shop wird hier angezeigt!�Ihr Schaufenster (Produktliste und Kasse) funktioniert einwandfrei, doch die erweiterten Shop-Funktionen wie SEO und Widgets in der Seitenleiste sind deaktiviert. Verbinden Sie bitte Ihr %s-Konto durch Drücken der Schaltfläche unten, um diese Features zu aktivieren und sicherzustellen, dass Ihr Shop ordnungsgemäß funktioniert. Dieser Vorgang dauert nicht einmal eine Minute – Sie werden lediglich gebeten, sich bei Ihrem Konto anzumelden und dieser Website zu erlauben, Ihre Shop-Daten abzurufen.�[%s] Feedback zur Deaktivierung des WordPress-Plug-ins (Shop-ID: %s)�Erscheinungsbild anpassen�Inhalt�Shop�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�oder <a %s>durchsuchen Sie das Hilfecenter�Art.-Nr.�Produktpreis�Produkt auswählen�ausgewähltes Produkt�Onlineshop�Schaltfläche „Jetzt kaufen“����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/languages/ecwid-shopping-cart-de_DE.po������������������������������������������0000644�����������������00000325513�15122273603�0017540 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Translation of Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) in German # This file is distributed under the same license as the Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) package. msgid "" msgstr "" "PO-Revision-Date: 2020-10-12 12:41\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: GlotPress/3.0.0-alpha.2\n" "Language: de\n" "Project-Id-Version: temporary-strings\n" "X-Crowdin-Project: temporary-strings\n" "X-Crowdin-Project-ID: 295314\n" "X-Crowdin-Language: de\n" "X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po\n" "X-Crowdin-File-ID: 988\n" "Language-Team: German\n" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:92 msgid "You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel." msgstr "Sie können das Look-and-feel Ihres Shops auf der Seite <a %s>Designeinstellungen</a> im Steuermenü festlegen." #: includes/integrations/elementor/class-ec-elementor-widget-store.php:55 msgid "To manage your store, go to <a %s>the Store Dashboard page</a>" msgstr "Rufen Sie <a %s>die Dashboard-Seite Ihres Shops</a> auf, um diesen zu verwalten." #: includes/integrations/elementor/class-ec-elementor-widget-store.php:39 msgid "The category that is shown by default on the Store Front Page" msgstr "Die Kategorie, die standardmäßig auf der Shop-Startseite angezeigt wird" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:38 msgid "Default category" msgstr "Standardkategorie" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:29 msgid "Online Store" msgstr "Onlineshop" #: includes/class-ecwid-stub-renderer.php:38 msgid "Buy Now" msgstr "Jetzt kaufen" #: templates/admin/welcome-terms-privacy.php:5 msgid "By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>." msgstr "Indem Sie fortfahren, akzeptieren Sie die <a %s>Servicebedingungen</a> und die <a %s>Datenschutzrichtlinie</a>." #: js/gutenberg/blocks.build.js:1 msgid "Display shopping cart and checkout page" msgstr "Warenkorb und Kasse anzeigen" #: js/gutenberg/blocks.build.js:1 msgid "Cart and Checkout" msgstr "Warenkorb und Kasse" #: js/gutenberg/blocks.build.js:1 msgid "Filters" msgstr "Filter" #: js/gutenberg/blocks.build.js:1 msgid "You can enable filters in the store settings: (“<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Settings → Product Filters</a>”)." msgstr "Sie können Filter in den Shop-Einstellungen aktivieren: („<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Einstellungen → Produktfilter</a>“)." #: js/gutenberg/blocks.build.js:1 msgid "Search and Filters" msgstr "Suche und Filter" #: js/gutenberg/blocks.build.js:1 msgid "Display search page with filters on a side" msgstr "Suchseite mit Filtern auf einer Seite anzeigen" #: js/gutenberg/blocks.build.js:1 msgid "Product Search and filters" msgstr "Produktsuche und -filter" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Bitte aktivieren Sie die Option „Look-and-feel der nächsten Generation für die Produktseite des Schaufensters“ in Ihrem Shop-Dashboard („<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Einstellungen → Neuigkeiten</a>“), um das Look-and-feel Ihrer Produktseite zu optimieren und deren Erscheinungsbild anzupassen." #: js/gutenberg/blocks.build.js:1 msgid "Display product page with description and a buy button" msgstr "Produktseite mit Beschreibung und einer Kaufschaltfläche anzeigen" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Large" msgstr "Große Produktkarte" #: js/gutenberg/blocks.build.js:1 msgid "Selected category" msgstr "Ausgewählte Kategorie" #: js/gutenberg/blocks.build.js:1 msgid "Select category" msgstr "Kategorie auswählen" #: js/gutenberg/blocks.build.js:1 msgid "Add categories" msgstr "Kategorien hinzufügen" #: js/gutenberg/blocks.build.js:1 msgid "Display category page" msgstr "Kategorieseite anzeigen" #: js/gutenberg/blocks.build.js:1 msgid "Store Category Page" msgstr "Shop-Kategorieseite" #: js/gutenberg/blocks.build.js:1 msgid "Display shopping bag link and summary" msgstr "Warenkorb-Link und -Zusammenfassung anzeigen" #: js/gutenberg/blocks.build.js:1 msgid "Shopping Cart Icon" msgstr "Warenkorb-Symbol" #: js/gutenberg/blocks.build.js:1 msgid "The block is hidden because you don't have categories in your store. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Add categories.</a>" msgstr "Der Block wird ausgeblendet, weil Sie in Ihrem Shop keine Kategorien verwenden. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Fügen Sie Kategorien hinzu.</a>" #: js/gutenberg/blocks.build.js:1 msgid "Categories" msgstr "Kategorien" #: js/gutenberg/blocks.build.js:1 msgid "Display categories navigation bar" msgstr "Navigationsleiste für Kategorien anzeigen" #: js/gutenberg/blocks.build.js:1 msgid "Store Categories Menu" msgstr "Menü für Shop-Kategorien" #: js/gutenberg/blocks.build.js:1 msgid "Product Search Box" msgstr "Produktsuchfeld" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:25 #: js/gutenberg/blocks.build.js:1 msgid "Linked product" msgstr "Verlinktes Produkt" #: js/gutenberg/blocks.build.js:1 msgid "Display a buy button" msgstr "Kaufschaltfläche anzeigen" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:10 #: js/gutenberg/blocks.build.js:1 msgid "Buy Now Button" msgstr "Schaltfläche „Jetzt kaufen“" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:52 #: js/gutenberg/blocks.build.js:1 msgid "Show price inside the «Buy now» button" msgstr "Preis in der Schaltfläche „Jetzt kaufen“ anzeigen" #: js/gutenberg/blocks.build.js:1 msgctxt "gutenberg-product-block" msgid "Content" msgstr "Inhalt" #: js/gutenberg/blocks.build.js:1 msgid "Change" msgstr "Ändern" #: js/gutenberg/blocks.build.js:1 msgid "Displayed product" msgstr "Angezeigtes Produkt" #: js/gutenberg/blocks.build.js:1 msgid "Display product with a buy button" msgstr "Produkt mit einer Kaufschaltfläche anzeigen" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Small" msgstr "Kleine Produktkarte" #: js/gutenberg/blocks.build.js:1 msgid "Very dark gray" msgstr "Sehr dunkles Grau" #: js/gutenberg/blocks.build.js:1 msgid "Cyan bluish gray" msgstr "Türkisblaues Grau" #: js/gutenberg/blocks.build.js:1 msgid "Very light gray" msgstr "Sehr helles Grau" #: js/gutenberg/blocks.build.js:1 msgid "Vivid cyan blue" msgstr "Kräftiges Türkisblau" #: js/gutenberg/blocks.build.js:1 msgid "Pale cyan blue" msgstr "Blasses Türkisblau" #: js/gutenberg/blocks.build.js:1 msgid "Vivid green cyan" msgstr "Kräftiges Türkisgrün" #: js/gutenberg/blocks.build.js:1 msgid "Light green cyan" msgstr "Helles Türkisgrün" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid amber" msgstr "Leuchtendes Bernsteingelb" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid orange" msgstr "Leuchtendes Orange" #: js/gutenberg/blocks.build.js:1 msgid "Vivid red" msgstr "Kräftiges Rot" #: js/gutenberg/blocks.build.js:1 msgid "Pale pink" msgstr "Blassrosa" #: js/gutenberg/blocks.build.js:1 msgid "Set manually" msgstr "Manuell einstellen" #: js/gutenberg/blocks.build.js:1 msgid "Detect automatically" msgstr "Automatisch erkennen" #: js/gutenberg/blocks.build.js:1 msgid "Color settings" msgstr "Farbeinstellungen" #: js/gutenberg/blocks.build.js:1 msgid "Store Navigation" msgstr "Shop-Navigation" #: js/gutenberg/blocks.build.js:1 msgid "Store Front Page" msgstr "Shop-Startseite" #: js/gutenberg/blocks.build.js:1 msgid "Product sidebar content" msgstr "Inhalt der Produktseitenleiste" #: js/gutenberg/blocks.build.js:1 msgid "Product Page Appearance" msgstr "Erscheinungsbild der Produktseite" #: js/gutenberg/blocks.build.js:1 msgid "Product List Appearance" msgstr "Erscheinungsbild der Produktliste" #: js/gutenberg/blocks.build.js:1 msgid "Category List Appearance" msgstr "Erscheinungsbild der Kategorieliste" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Bitte aktivieren Sie die Option „Look-and-feel der nächsten Generation für die Produktseite des Schaufensters“ in Ihrem Shop-Dashboard („<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Einstellungen → Neuigkeiten</a>“), um das Look-and-feel Ihrer Produktseite zu optimieren und deren Erscheinungsbild anzupassen." #: js/gutenberg/blocks.build.js:1 msgid "Display cart icon" msgstr "Warenkorb-Symbol anzeigen" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Bitte aktivieren Sie die Option „Look-and-feel der nächsten Generation für die Produktliste des Schaufensters“ in Ihrem Shop-Dashboard („<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Einstellungen → Neuigkeiten</a>“), um das Look-and-feel Ihres Shops zu optimieren und das Erscheinungsbild des Schaufensters anzupassen." #: js/gutenberg/blocks.build.js:1 msgid "Add storefront (product listing)" msgstr "Schaufenster hinzufügen (Produktliste)" #: templates/admin/storefront/main.php:21 msgid "Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers." msgstr "Kunden können Ihre Shop-Seite nicht sehen, weil sie sich im Entwurf befindet. Veröffentlichen Sie die Seite, um sie Ihren Kunden zugänglich zu machen." #: templates/admin/storefront/main.php:20 msgid "The store is not visible on your site" msgstr "Der Shop ist auf Ihrer Website nicht sichtbar" #: templates/admin/storefront/main.php:4 msgid "Your Storefront" msgstr "Ihr Schaufenster" #: templates/admin/storefront/area-promo.php:30 msgid "Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars." msgstr "Helfen Sie Kunden, Ihren Shop auf der Website zu finden. Fügen Sie den Shop-Link zum Website-Menü hinzu, erstellen Sie zusätzliche Shop-Seiten und heben Sie Shop-Produkte auf anderen Seiten der Website sowie in den Seitenleisten hervor." #: templates/admin/storefront/area-promo.php:29 msgid "Promote your store" msgstr "Promoten Sie Ihren Shop" #: templates/admin/storefront/area-promo.php:26 msgid "Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store." msgstr "Bleiben Sie mit Ihren Kunden in Verbindung. Aktualisieren Sie den Inhalt Ihres Shops jederzeit, um Kunden über laufende Promotions und neue Produkte zu informieren." #: templates/admin/storefront/area-promo.php:25 msgid "Change store content" msgstr "Shop-Inhalt ändern" #: templates/admin/storefront/area-promo.php:22 msgid "Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand." msgstr "Passen Sie das Erscheinungsbild Ihres Shops an Ihre Geschäftsbedürfnisse an. Verpassen Sie Ihrem Shop genau das Look-and-feel, das Ihrer Marke entspricht." #: templates/admin/storefront/area-promo.php:21 msgid "Customize store appearance" msgstr "Erscheinungsbild des Shops anpassen" #: templates/admin/storefront/area-promo.php:7 msgid "Add your %s store to the website and start selling in minutes." msgstr "Fügen Sie Ihren %s-Shop zur Website hinzu und verkaufen Sie binnen weniger Minuten." #: templates/admin/storefront/area-promo.php:3 msgid "What's next?" msgstr "Wie geht es weiter?" #: templates/admin/storefront/area-additional.php:224 msgid "Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar." msgstr "Ihr Shop wird zu mehreren Seiten der Website hinzugefügt. Wählen Sie die Hauptseite aus. Kunden werden zur Hauptseite des Shops weitergeleitet, wenn sie das Warenkorb-Symbol, Links zum Shop im Website-Menü und Produkte in der Seitenleiste anklicken." #: templates/admin/storefront/area-additional.php:222 msgid "Choose the main store page" msgstr "Wählen Sie die Hauptseite des Shops aus" #: templates/admin/storefront/area-additional.php:200 msgid "Go to Pages" msgstr "Seiten aufrufen" #: templates/admin/storefront/area-additional.php:193 msgid "You can add the entire storefront, categories, products, or \"Buy now\" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block." msgstr "Sie können das gesamte Schaufenster, Kategorien, Produkte oder „Jetzt kaufen“-Schaltflächen zu anderen Seiten Ihrer Website hinzufügen. Öffnen Sie dazu eine Seite im Editor und fügen Sie einen entsprechenden %s-Block hinzu." #: templates/admin/storefront/area-additional.php:189 msgid "Add your store to other site pages" msgstr "Fügen Sie Ihren Shop zu anderen Seiten der Website hinzu" #: templates/admin/storefront/area-additional.php:166 msgid "Create Product Page" msgstr "Produktseite erstellen" #: templates/admin/storefront/area-additional.php:150 msgid "Pick Product" msgstr "Produkt auswählen" #: templates/admin/storefront/area-additional.php:136 #: templates/admin/storefront/area-additional.php:138 msgid "Create a landing page featuring one of your products." msgstr "Erstellen Sie eine Landingpage mit einem Ihrer Produkte." #: templates/admin/storefront/area-additional.php:132 msgid "Add a product page" msgstr "Produktseite hinzufügen" #: templates/admin/storefront/area-additional.php:109 msgid "Create Category Page" msgstr "Kategorieseite erstellen" #: templates/admin/storefront/area-additional.php:93 msgid "Pick Category" msgstr "Kategorie auswählen" #: templates/admin/storefront/area-additional.php:79 #: templates/admin/storefront/area-additional.php:81 msgid "Feature a specific store category on a separate page of your site." msgstr "Stellen Sie eine bestimmte Shop-Kategorie auf einer separaten Seite Ihrer Website vor." #: templates/admin/storefront/area-additional.php:75 msgid "Add a category page" msgstr "Kategorieseite hinzufügen" #: templates/admin/storefront/area-additional.php:54 msgid "Create Search Page" msgstr "Suchseite erstellen" #: templates/admin/storefront/area-additional.php:50 msgid "Show customers that they can use a search and filters to find desired products faster." msgstr "Zeigen Sie Ihren Kunden, dass sie mit einer Suche und Filtern die gewünschten Produkte schneller finden können." #: templates/admin/storefront/area-additional.php:48 msgid "Add a search and filters page" msgstr "Such- und Filterseite hinzufügen" #: templates/admin/storefront/area-additional.php:27 msgid "Create Cart Page" msgstr "Warenkorb-Seite erstellen" #: templates/admin/storefront/area-additional.php:23 msgid "Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout." msgstr "Kunden rufen die Warenkorb-Seite auf, um die Produkte zu überprüfen, die sie in den Warenkorb gelegt haben, und um zur Kasse fortzufahren." #: templates/admin/storefront/area-additional.php:21 msgid "Add cart and checkout page" msgstr "Warenkorb- und Kassen-Seite hinzufügen" #: templates/admin/storefront/area-additional.php:4 msgid "Highlight products, categories, and other store pages by adding them to separate website pages." msgstr "Heben Sie Produkte, Kategorien und andere Shop-Seiten hervor, indem Sie sie zu separaten Seiten der Website hinzufügen." #: templates/admin/storefront/area-additional.php:3 msgid "Additional store pages" msgstr "Zusätzliche Shop-Seiten" #: templates/admin/storefront/draft-message.php:2 msgid "Publish the page to use this option" msgstr "Veröffentlichen Sie die Seite, um diese Option zu verwenden" #: templates/admin/storefront/area-design.php:55 msgid "Along with the store catalog, you can add other widgets and texts to the store page." msgstr "Neben dem Katalog können Sie der Shop-Seite weitere Widgets und Texte hinzufügen." #: templates/admin/storefront/area-design.php:54 msgid "Store page content" msgstr "Inhalt der Shop-Seite" #: templates/admin/storefront/area-design.php:25 #: templates/admin/storefront/area-design.php:27 msgid "Adjust your store design to fit your business needs." msgstr "Passen Sie Ihr Shop-Design an die Bedürfnisse Ihres Unternehmens an." #: templates/admin/storefront/area-design.php:21 msgid "Store appearance" msgstr "Erscheinungsbild des Shops" #: templates/admin/storefront/area-design.php:4 msgid "Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers." msgstr "Personalisieren Sie das Erscheinungsbild Ihres Schaufensters und bearbeiten Sie den Inhalt auf der Shop-Seite, um Ihre Marke widerzuspiegeln und mit Ihren Kunden in Verbindung zu bleiben." #: templates/admin/storefront/area-design.php:3 msgid "Design and content" msgstr "Design und Inhalt" #: templates/admin/storefront/area-status.php:124 msgid "Create Store Page" msgstr "Shop-Seite erstellen" #: templates/admin/storefront/area-status.php:121 msgid "Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display." msgstr "Ihr Shop wird zu keiner Seite Ihrer Website hinzugefügt. Erstellen Sie eine Seite, auf der Ihr Shop angezeigt wird, damit Kunden in diesem stöbern und Bestellungen aufgeben können." #: templates/admin/storefront/area-status.php:115 msgid "Set Up Your Store" msgstr "Richten Sie Ihren Shop ein" #: templates/admin/storefront/area-status.php:109 msgid "To show your storefront instead of the demo store, connect your existing %s account or create a new one." msgstr "Verbinden Sie Ihr bestehendes %s-Konto oder erstellen Sie ein neues, um Ihr Schaufenster anstelle des Demo-Shops anzuzeigen." #: templates/admin/storefront/area-status.php:101 msgid "Publish Store Page" msgstr "Shop-Seite veröffentlichen" #: templates/admin/storefront/area-status.php:98 msgid "Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders." msgstr "Ihre Shop-Seite befindet sich derzeit im Entwurf. Veröffentlichen Sie sie, sobald Sie fertig sind, damit Kunden in Ihrem Shop stöbern und Bestellungen aufgeben können." #: templates/admin/storefront/area-status.php:92 msgid "View Store Page" msgstr "Shop-Seite anzeigen" #: templates/admin/storefront/area-status.php:86 msgid "Your store page is published. Customers can browse your store at " msgstr "Ihre Shop-Seite wird veröffentlicht. Kunden können unter folgender Adresse in Ihrem Shop stöbern: " #: templates/admin/storefront/area-status.php:77 msgid "View demo store page" msgstr "Demo-Shop-Seite anzeigen" #: templates/admin/storefront/area-status.php:46 msgid "Draft" msgstr "Entwurf" #: templates/admin/storefront/area-status.php:45 msgid "Published" msgstr "Veröffentlicht" #: templates/admin/storefront/area-status.php:33 #: templates/admin/storefront/area-status.php:36 msgid "Status" msgstr "Status" #: templates/admin/storefront/area-status.php:29 msgid "Add a store page" msgstr "Shop-Seite hinzufügen" #: templates/admin/storefront/area-status.php:24 msgid "Connect your %s store" msgstr "Verbinden Sie Ihren %s-Shop" #: templates/admin/storefront/area-status.php:21 msgid "Your store page" msgstr "Ihre Shop-Seite" #: templates/admin/storefront/area-status.php:10 msgid "To start selling, add a page to your site where the storefront will display." msgstr "Fügen Sie eine Seite zu Ihrer Website hinzu, auf der das Schaufenster angezeigt wird, um mit dem Verkaufen zu beginnen." #: templates/admin/storefront/area-status.php:7 msgid "While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site." msgstr "Solange Ihr Shop nicht verbunden ist, wird auf Ihrer Website ein Demo-Shop angezeigt. Sehen Sie sich diesen an, um eine Vorstellung davon zu erhalten, wie Ihr Shop auf der Website aussehen könnte." #: templates/admin/storefront/area-status.php:4 msgid "Store page on your site" msgstr "Shop-Seite auf Ihrer Website" #: templates/admin/storefront/area-navigation.php:205 msgid "The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href=\"%s\" target=\"_blank\">adjust the cart icon appearance</a>." msgstr "Das Warenkorb-Symbol zeigt die Anzahl der Artikel im Warenkorb an und ermöglicht es den Kunden, zur Kasse zu gehen. Sie können zudem <a href=\"%s\" target=\"_blank\">das Erscheinungsbild des Warenkorb-Symbols</a> anpassen." #: templates/admin/storefront/area-navigation.php:201 msgid "Display the shopping cart icon on site pages" msgstr "Warenkorb-Symbol auf den Seiten der Website anzeigen" #: templates/admin/storefront/area-navigation.php:179 msgid "Manage Sidebar" msgstr "Seitenleiste verwalten" #: templates/admin/storefront/area-navigation.php:175 msgid "Highlight your best sellers or new products in the website sidebar." msgstr "Heben Sie Ihre Bestseller oder Ihre neuen Produkte in der Seitenleiste der Website hervor." #: templates/admin/storefront/area-navigation.php:173 msgid "Feature your products in the sidebar" msgstr "Stellen Sie Ihre Produkte in der Seitenleiste vor" #: templates/admin/storefront/area-navigation.php:151 msgid "Add Store Page to Menu" msgstr "Shop-Seite zum Menü hinzufügen" #: templates/admin/storefront/area-navigation.php:147 msgid "Make your store accessible from the site menu so your customers can easily find it." msgstr "Machen Sie Ihren Shop über das Website-Menü zugänglich, damit Ihre Kunden ihn leicht finden können." #: templates/admin/storefront/area-navigation.php:141 msgid "Add store page to the site menu" msgstr "Shop-Seite zum Website-Menü hinzufügen" #: templates/admin/storefront/area-navigation.php:118 msgid "Edit URL Slug" msgstr "URL-Slug bearbeiten" #: templates/admin/storefront/area-navigation.php:102 msgid "Current URL slug: /<span data-ec-store-slug>%s</span>" msgstr "Aktueller URL-Slug: /<span data-ec-store-slug>%s</span>" #: templates/admin/storefront/area-navigation.php:78 msgid "Save" msgstr "Speichern" #: templates/admin/storefront/area-navigation.php:69 msgid "URL Slug" msgstr "URL-Slug" #: templates/admin/storefront/area-navigation.php:60 #: templates/admin/storefront/area-navigation.php:113 msgid "A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use \"/shop\" or \"/products\"." msgstr "Ein Slug ist der letzte Teil einer URL. Sie können einen benutzerdefinierten Slug für Ihre Shop-Seite erstellen. Halten Sie sich dabei kurz, da Kunden und Suchmaschinen kompakte URLs bevorzugen. Verwenden Sie zum Beispiel „/shop“ oder „/produkte“." #: templates/admin/storefront/area-navigation.php:56 #: templates/admin/storefront/area-navigation.php:98 msgid "Customize store page address" msgstr "Adresse der Shop-Seite anpassen" #: templates/admin/storefront/area-navigation.php:29 msgid "Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href=\"%s\" target=\"_blank\">WordPress Settings > Reading</a>" msgstr "Fügen Sie Ihr Schaufenster zur Homepage der Website hinzu, um es noch zentraler zu präsentieren. Sie können die Homepage-Einstellungen für die Website auch unter <a href=\"%s\" target=\"_blank\">WordPress-Einstellungen > Lesen</a> anpassen" #: templates/admin/storefront/area-navigation.php:21 msgid "Show your store on the home page" msgstr "Präsentieren Sie Ihren Shop auf der Homepage" #: templates/admin/storefront/area-navigation.php:4 msgid "Help customers find your store on the website." msgstr "Helfen Sie Kunden, Ihren Shop auf der Website zu finden." #: templates/admin/storefront/area-navigation.php:3 msgid "Navigation" msgstr "Navigation" #: templates/admin/welcome-no_oauth.php:12 msgid "Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>." msgstr "Die Shop-ID ist eine eindeutige Kennung Ihres %1$s-Kontos. Sie finden sie in Ihrem %1$s-Steuermenü auf der <a %2$s>Dashboard-Seite</a>." #: templates/admin/welcome-create.php:11 msgid "Your store has been created. Preparing your store dashboard ..." msgstr "Ihr Shop wurde erstellt. Ihr Shop-Dashboard wird vorbereitet …" #: templates/admin/welcome-connect.php:8 msgid "Create store" msgstr "Shop erstellen" #: templates/admin/welcome-connect.php:4 msgid "Connect Your Store" msgstr "Verbinden Sie Ihren Shop" #: templates/admin/welcome-page.php:61 msgid "Provided by <a %s>%s</a>" msgstr "Zur Verfügung gestellt von <a %s>%s</a>" #: templates/admin/welcome-page.php:33 msgid "To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>." msgstr "Geben Sie Ihre %1$s-Shop-ID in das Feld unten ein, um Ihren Shop zu Ihrer Website hinzuzufügen. Erstellen Sie kostenlos ein %1$s-Konto auf der <a %2$s>%1$s-Website</a>, falls Sie noch über keines verfügen sollten." #: templates/admin/welcome-page.php:20 msgid "Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website." msgstr "Erstellen Sie einen neuen Shop oder verbinden Sie einen bestehenden, wenn Sie bereits ein %s-Konto haben. Das Plug-in führt Sie durch die Einrichtung des Shops und hilft Ihnen dabei, diesen auf Ihrer Website zu veröffentlichen." #: templates/admin/welcome-page.php:12 msgid "Add an Online Store to Your Website" msgstr "Fügen Sie einen Onlineshop zu Ihrer Website hinzu" #: includes/class-ecwid-store-page.php:566 msgid "This is a demo store. Create your store to see your store products here." msgstr "Dies ist ein Demo-Shop. Erstellen Sie Ihren Shop, um hier die Produkte desselben zu sehen." #: includes/class-ecwid-admin-storefront-page.php:539 msgid "Publish" msgstr "Veröffentlichen" #: templates/admin/storefront/area-design.php:33 #: templates/admin/storefront/area-design.php:59 #: includes/class-ecwid-admin-storefront-page.php:532 msgid "Edit" msgstr "Bearbeiten" #: includes/class-ecwid-admin-storefront-page.php:525 msgid "Preview" msgstr "Vorschau" #: includes/class-ecwid-admin-storefront-page.php:516 msgid "Switch to draft" msgstr "Zum Entwurf wechseln" #: includes/class-ecwid-admin-storefront-page.php:506 msgid "Edit page" msgstr "Seite bearbeiten" #: includes/class-ecwid-admin-storefront-page.php:499 msgid "View store page" msgstr "Shop-Seite anzeigen" #: includes/class-ecwid-admin-storefront-page.php:286 msgid "Search products" msgstr "Produkte suchen" #: includes/class-ecwid-admin-storefront-page.php:265 msgid "Category" msgstr "Kategorie" #: includes/class-ecwid-admin-storefront-page.php:240 msgid "Page with that name already exists." msgstr "Seite mit diesem Namen existiert bereits." #: includes/class-ecwid-admin.php:538 msgid "My Profile" msgstr "Mein Profil" #: includes/class-ecwid-admin.php:533 msgid "Apps" msgstr "Apps" #: includes/class-ecwid-admin.php:523 msgid "Shipping & Pickup" msgstr "Versand und Abholung" #: includes/class-ecwid-admin.php:518 msgid "Payment" msgstr "Bezahlung" #: includes/class-ecwid-admin.php:513 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:88 msgid "Design" msgstr "Design" #: includes/class-ecwid-admin.php:509 msgid "Configuration" msgstr "Konfiguration" #: includes/class-ecwid-admin.php:504 msgid "All Sales Channels" msgstr "Alle Vertriebswege" #: includes/class-ecwid-admin.php:499 msgid "Website" msgstr "Website" #: includes/class-ecwid-admin.php:494 msgid "Mobile" msgstr "Mobile" #: includes/class-ecwid-admin.php:485 msgid "Sales channels" msgstr "Vertriebswege" #: includes/class-ecwid-admin.php:480 msgid "Reports" msgstr "Berichte" #: includes/class-ecwid-admin.php:475 msgid "Marketing" msgstr "Marketing" #: includes/class-ecwid-admin.php:470 msgid "Catalog" msgstr "Katalog" #: includes/class-ecwid-admin.php:465 msgid "My Sales" msgstr "Meine Verkäufe" #: includes/class-ecwid-admin.php:455 msgid "Store management" msgstr "Shop-Management" #: includes/class-ecwid-admin.php:344 msgid "Instant site" msgstr "Instant Site" #: includes/class-ecwid-admin.php:153 includes/class-ecwid-admin.php:154 #: includes/class-ecwid-admin.php:309 msgid "Storefront" msgstr "Schaufenster" #: ecwid-shopping-cart.php:1111 msgid "Manage storefront" msgstr "Schaufenster verwalten" #: ecwid-shopping-cart.php:1111 msgid "Customize design" msgstr "Design anpassen" #: ecwid-shopping-cart.php:1103 msgid "Manage store" msgstr "Shop verwalten" #: templates/importer/woo-main.tpl.php:97 msgid "Start Import" msgstr "Import beginnen" #: templates/importer/woo-main.tpl.php:87 msgid "Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target=\"_blank\">\"Billing & Plans\"</a></nobr> page in your Ecwid store control panel." msgstr "Bitte beachten Sie die maximale Anzahl an Produkten und Kategorien, die Sie in Ihrem Ecwid-Shop nutzen können. Dieses Import-Tool bricht den Vorgang automatisch ab, wenn das Produktlimit des Shops erreicht wurde. Besuchen Sie bitte die Seite <nobr><a %s target=\"_blank\">„Abrechnung und Tarife“</a></nobr> im Steuermenü Ihres Ecwid-Shops, um das aktuelle Shop-Limit einzusehen oder dieses zu erhöhen." #: templates/importer/woo-main.tpl.php:82 msgid "Import creates new products and update the existing products with matching SKUs." msgstr "Im Rahmen des Importvorgangs werden neue Produkte erstellt und vorhandene mit den passenden Art.-Nr. aktualisiert." #: templates/importer/woo-main.tpl.php:60 msgid "Copying products and categories." msgstr "Produkte und Kategorien werden kopiert." #: templates/importer/woo-main.tpl.php:50 msgid "Import completed. <a href=\"%s\">Run again.</a>" msgstr "Importvorgang abgeschlossen. <a href=\"%s\">Erneut durchführen.</a>" #: templates/importer/woo-main.tpl.php:34 msgid "Import is in Progress" msgstr "Importvorgang läuft" #: templates/importer/woo-main.tpl.php:32 msgid "Import your products from Woocommerce to %s" msgstr "Importieren Sie Ihre Produkte von WooCommerce nach %s" #: templates/importer/woo-main.tpl.php:18 msgid "Update your catalog" msgstr "Aktualisieren Sie Ihren Katalog" #: templates/importer/woo-main.tpl.php:4 msgid "Import Your Products From Woocommerce to %s" msgstr "Importieren Sie Ihre Produkte von WooCommerce nach %s" #: templates/importer/import-no-token.tpl.php:3 msgid "Click the connect button to get rights to update the product catalog" msgstr "Klicken Sie auf die Schaltfläche „Verbinden“, um Berechtigungen zur Aktualisierung des Produktkatalogs einzuholen" #: templates/importer/woo-complete-alert.tpl.php:52 msgid "Go to Your %s Products" msgstr "Gehen Sie zu Ihren %s-Produkten" #: templates/importer/woo-complete-alert.tpl.php:43 msgid "Download <a href=\"%s\">import log</a>" msgstr "<a href=\"%s\">Importprotokoll</a> herunterladen" #: templates/importer/woo-complete-alert.tpl.php:32 msgid "Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>" msgstr "Ein Teil der Produkte wurde nicht nach %1$s kopiert, weil Sie das Produktlimit Ihres Tarifs bei %1$s erreicht haben. Ziehen Sie ein <nobr><a %2$s>Upgrade Ihres %1$s-Tarifs</a></nobr> in Erwägung, falls Sie mehr Produkte importieren möchten." #: templates/importer/woo-complete-alert.tpl.php:21 msgid "<b>%s</b> categories" msgstr "<b>%s</b> Kategorien" #: templates/importer/woo-complete-alert.tpl.php:18 msgid "Imported <b>%s</b> products" msgstr "<b>%s</b> Produkte importiert" #: templates/importer/woo-complete-alert.tpl.php:15 msgid "Import completed" msgstr "Importvorgang abgeschlossen" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:10 #: includes/widgets/class-ecwid-widget-product-browser.php:12 msgid "Online store" msgstr "Onlineshop" #: includes/class-ecwid-store-page.php:476 msgid "%s Store Page" msgstr "%s Shop-Seite" #: templates/advanced-settings.php:79 msgid "Integration with search on your site" msgstr "Integration mit der Suche auf Ihrer Website" #: templates/sync.php:130 msgid "Deleted products synchronized: %1$s out of %2$s" msgstr "Synchronisierte gelöschte Produkte: %1$s von %2$s" #: includes/class-ecwid-custom-admin-page.php:66 msgid "Themes for Ecwid" msgstr "Themen für Ecwid" #: includes/class-ecwid-custom-admin-page.php:33 msgid "Plugins for Ecwid" msgstr "Plug-ins für Ecwid" #: includes/class-ecwid-popup-deactivate.php:138 msgid "I use this WordPress theme: %s" msgstr "Ich verwende dieses WordPress-Thema: %s" #: includes/class-ecwid-popup-deactivate.php:132 msgid "I couldn’t find a WordPress theme that goes well with %s" msgstr "Ich konnte kein WordPress-Thema finden, das gut zu %s passt" #: includes/class-ecwid-product-browser.php:357 msgid "On the right" msgstr "Rechts" #: includes/class-ecwid-product-browser.php:353 msgid "On the left" msgstr "Links" #: includes/class-ecwid-product-browser.php:349 msgid "Filters panel position" msgstr "Position des Filterpanels" #: includes/class-ecwid-product-browser.php:209 msgid "Default product_ID" msgstr "Standardmäßige product_ID" #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:73 msgid "Cart icon" msgstr "Warenkorb-Symbol" #: templates/shortcode-stub-store.tpl.php:4 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:20 #: js/gutenberg/blocks.build.js:1 msgid "Store Home Page" msgstr "Shop-Startseite" #: ecwid-shopping-cart.php:431 msgid "Edit Category" msgstr "Kategorie bearbeiten" #: ecwid-shopping-cart.php:430 msgid "Edit Product" msgstr "Produkt bearbeiten" #: includes/class-ecwid-admin.php:142 includes/class-ecwid-admin.php:143 msgid "Online Store Apps" msgstr "Onlineshop-Apps" #. Plugin Name of the plugin msgid "Ecwid Ecommerce Shopping Cart" msgstr "Ecwid-E-Commerce-Warenkorb" #: includes/class-ecwid-custom-admin-page.php:58 includes/faq_entries.php:76 msgid "Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href=\"%s\">TemplateMonster themes</a>" msgstr "Ecwid ist mit jedem WordPress-Thema kompatibel. Ob es sich nun um ein kostenloses Thema aus dem WordPress.org-Katalog, ein Premium-Thema eines Drittanbieters oder ein eigens entworfenes Design handelt – Ihr Ecwid-Shop funktioniert bestens damit. Wir empfehlen die <a href=\"%s\">Themen von TemplateMonster</a>, falls Sie auf der Suche nach einem Premium-Design sind." #: includes/faq_entries.php:74 msgid "Is there a WordPress theme for Ecwid?" msgstr "Gibt es ein WordPress-Thema für Ecwid?" #: templates/admin-footer.php:19 msgid "<a href=\"admin.php?page=" msgstr "<a href=\"admin.php?page=" #: includes/integrations/class-ecwid-integration-gutenberg.php:113 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:25 msgid "You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href=\"%1$s\">Appearance → Customize → %2$s</a>” menu to enable it." msgstr "Sie können ein zusätzliches Warenkorb-Symbol-Widget aktivieren, das auf den Seiten Ihrer Website erscheint. Öffnen Sie das Menü „<a href=\"%1$s\">Erscheinungsbild → Anpassen → %2$s</a>“, um es zu aktivieren." #: includes/integrations/class-ecwid-integration-gutenberg.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:18 msgctxt "gutenberg-store-block-stub" msgid "Store" msgstr "Shop" #: includes/class-ecwid-product-browser.php:472 msgid "Image feed" msgstr "Bilder-Feed" #: includes/class-ecwid-product-browser.php:467 msgid "Vertical thumbnails" msgstr "Vertikale Miniaturansichten" #: includes/class-ecwid-product-browser.php:462 msgid "Horizontal thumbnails" msgstr "Horizontale Miniaturansichten" #: includes/class-ecwid-product-browser.php:452 msgid "3 columns, image on the right" msgstr "3 Spalten, Bild rechts" #: includes/class-ecwid-product-browser.php:448 msgid "3 columns, image on the left" msgstr "3 Spalten, Bild links" #: includes/class-ecwid-product-browser.php:444 msgid "2 columns, image on the right" msgstr "2 Spalten, Bild rechts" #: includes/class-ecwid-product-browser.php:440 msgid "2 columns, image on the left" msgstr "2 Spalten, Bild links" #: includes/class-ecwid-product-browser.php:429 msgid "Landscape 3:2" msgstr "Querformat 3:2" #: includes/class-ecwid-product-browser.php:424 msgid "Landscape 4:3" msgstr "Querformat 4:3" #: includes/class-ecwid-product-browser.php:419 msgid "Square 1:1" msgstr "Quadrat 1:1" #: includes/class-ecwid-product-browser.php:414 msgid "Portrait 3:4" msgstr "Hochformat 3:4" #: includes/class-ecwid-product-browser.php:409 msgid "Portrait 2:3" msgstr "Hochformat 2:3" #: includes/class-ecwid-product-browser.php:399 msgid "L" msgstr "L" #: includes/class-ecwid-product-browser.php:395 msgid "M" msgstr "M" #: includes/class-ecwid-product-browser.php:391 msgid "S" msgstr "S" #: includes/class-ecwid-product-browser.php:381 msgid "Show on hover" msgstr "Beim Drüberfahren anzeigen" #: includes/class-ecwid-product-browser.php:377 msgid "Hide" msgstr "Ausblenden" #: includes/class-ecwid-product-browser.php:373 msgid "Show" msgstr "Anzeigen" #: includes/class-ecwid-product-browser.php:342 msgid "Background color" msgstr "Hintergrundfarbe" #: includes/class-ecwid-product-browser.php:335 msgid "Link color" msgstr "Linkfarbe" #: includes/class-ecwid-product-browser.php:328 msgid "Price color" msgstr "Preisfarbe" #: includes/class-ecwid-product-browser.php:321 msgid "Text color" msgstr "Textfarbe" #: includes/class-ecwid-product-browser.php:314 msgid "Button color" msgstr "Schaltflächenfarbe" #: includes/class-ecwid-product-browser.php:299 msgid "Wholesale prices" msgstr "Großhandelspreise" #: includes/class-ecwid-product-browser.php:292 msgid "\"In stock\" label" msgstr "Kennzeichnung „Auf Lager“" #: includes/class-ecwid-product-browser.php:285 msgid "Available qty in stock" msgstr "Verfügbare Menge auf Lager" #: includes/class-ecwid-product-browser.php:278 msgid "Product quantity" msgstr "Produktmenge" #: includes/class-ecwid-product-browser.php:271 msgctxt "product-browser-attributes" msgid "Product price" msgstr "Produktpreis" #: includes/class-ecwid-product-browser.php:264 msgctxt "product-browser-attributes" msgid "Product SKU" msgstr "Art.-Nr." #: includes/class-ecwid-product-browser.php:257 msgid "Breadcrumbs" msgstr "Brotkrümelnavigation" #: includes/class-ecwid-product-browser.php:241 msgid "Image gallery layout" msgstr "Layout der Bildergalerie" #: includes/integrations/class-ecwid-integration-gutenberg.php:391 #: includes/class-ecwid-product-browser.php:224 #: includes/class-ecwid-product-browser.php:233 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:212 msgid "Show description under the image" msgstr "Beschreibung unter dem Bild anzeigen" #: includes/class-ecwid-product-browser.php:216 msgid "Product page layout" msgstr "Produktseitenlayout" #: includes/class-ecwid-product-browser.php:194 msgid "Display sort by link" msgstr "Sortierung nach Link anzeigen" #: includes/class-ecwid-product-browser.php:186 #: includes/class-ecwid-product-browser.php:306 msgid "Display sign in link" msgstr "Link zur Anmeldung anzeigen" #: includes/class-ecwid-product-browser.php:178 msgid "Display footer menu" msgstr "Fußzeilenmenü anzeigen" #: includes/class-ecwid-product-browser.php:170 msgid "Display breadcrumbs" msgstr "Brotkrümelnavigation anzeigen" #: includes/class-ecwid-product-browser.php:163 js/gutenberg/blocks.build.js:1 msgid "Display search box" msgstr "Suchfeld anzeigen" #: includes/class-ecwid-product-browser.php:156 msgid "Display categories menu" msgstr "Kategoriemenü anzeigen" #: includes/class-ecwid-product-browser.php:148 msgid "Category thumbnail aspect ratio" msgstr "Seitenverhältnis der Kategorie-Miniaturansicht" #: includes/class-ecwid-product-browser.php:140 msgid "Category thumbnail size" msgstr "Größe der Kategorie-Miniaturansicht" #: includes/class-ecwid-product-browser.php:131 msgid "Image only" msgstr "Nur Bild" #: includes/class-ecwid-product-browser.php:127 msgid "Title only" msgstr "Nur Titel" #: includes/class-ecwid-product-browser.php:123 msgid "Image and title on mouse over" msgstr "Bild und Titel beim Drüberfahren mit der Maus" #: includes/class-ecwid-product-browser.php:119 msgid "Title on image" msgstr "Titel auf Bild" #: includes/class-ecwid-product-browser.php:115 msgid "Title under image" msgstr "Titel unter Bild" #: includes/class-ecwid-product-browser.php:111 msgid "Category card layout" msgstr "Kategoriekarten-Layout" #: includes/class-ecwid-product-browser.php:103 msgid "Show additional image on hover" msgstr "Zusätzliches Bild beim Drüberfahren anzeigen" #: includes/class-ecwid-product-browser.php:95 msgid "Buy now buttons" msgstr "„Jetzt kaufen“-Schaltflächen" #: includes/class-ecwid-product-browser.php:87 msgid "Product SKU" msgstr "Art.-Nr." #: includes/class-ecwid-product-browser.php:79 msgid "Product price" msgstr "Produktpreis" #: includes/class-ecwid-product-browser.php:71 msgid "Product title" msgstr "Produkttitel" #: includes/class-ecwid-product-browser.php:61 msgid "Justify" msgstr "Blocksatz" #: includes/class-ecwid-product-browser.php:56 msgid "Right" msgstr "Rechtsbündig" #: includes/class-ecwid-product-browser.php:51 msgid "Center" msgstr "Zentriert" #: includes/class-ecwid-product-browser.php:46 msgid "Left" msgstr "Linksbündig" #: includes/class-ecwid-product-browser.php:42 msgid "Product card text align" msgstr "Ausrichtung des Produktkarten-Texts" #: includes/class-ecwid-product-browser.php:34 msgid "Show product card border" msgstr "Produktkarten-Rand anzeigen" #: includes/class-ecwid-product-browser.php:26 msgid "Product thumbnail aspect ratio" msgstr "Seitenverhältnis der Produkt-Miniaturansicht" #: includes/class-ecwid-product-browser.php:18 msgid "Product thumbnail size" msgstr "Größe der Produkt-Miniaturansicht" #: includes/class-ecwid-product-browser.php:10 msgid "Show product thumbnails" msgstr "Produkt-Miniaturansichten anzeigen" #. Author of the plugin msgid "Ecwid Ecommerce" msgstr "Ecwid-E-Commerce" #: templates/importer/woo-summary.tpl.php:34 msgid "After import, your %s store will have " msgstr "Nach dem Import verfügt Ihr %s-Shop über " #: templates/importer/woo-summary.tpl.php:21 msgid "Your %s store has " msgstr "Ihr %s-Shop verfügt über " #: templates/importer/woo-summary.tpl.php:10 msgid "Your WooCommerce store has " msgstr "Ihr WooCommerce-Shop verfügt über " #: includes/integrations/class-ecwid-integration-elementor.php:64 #: includes/integrations/class-ecwid-integration-divibuilder.php:25 #: includes/integrations/class-ecwid-integration-gutenberg.php:94 msgid "%s Store" msgstr "%s-Shop" #: includes/importer/class-ecwid-import-page.php:184 msgid "%s products" msgstr "%s Produkte" #: includes/importer/class-ecwid-import-page.php:178 msgid "%s products and %s categories" msgstr "%s Produkte und %s Kategorien" #: includes/class-ecwid-stub-renderer.php:27 #: includes/class-ecwid-admin-storefront-page.php:272 msgid "Product" msgstr "Produkt" #: includes/class-ecwid-message-manager.php:278 #: includes/class-ecwid-message-manager.php:297 #: includes/class-ecwid-message-manager.php:318 msgid "Warning: some of your online store features are disabled. Please contact your hosting provider to resolve." msgstr "Warnung: Einige Funktionen Ihres Onlineshops sind deaktiviert. Bitte wenden Sie sich zur Lösung des Problems an Ihren Hostingprovider." #: templates/admin/legacy-connect.tpl.php:39 msgid "Create new account" msgstr "Ein neues Konto erstellen" #: templates/admin/legacy-connect.tpl.php:33 msgid "Register at %s" msgstr "Registrieren bei %s" #: includes/class-ecwid-floating-minicart.php:155 msgid "Bottom left" msgstr "Unten links" #: includes/class-ecwid-floating-minicart.php:154 msgid "Top left" msgstr "Oben links" #: includes/class-ecwid-floating-minicart.php:113 msgid "Show on all pages" msgstr "Auf allen Seiten anzeigen" #: includes/class-ecwid-floating-minicart.php:112 msgid "Show on store pages" msgstr "Auf Shop-Seiten anzeigen" #: includes/class-ecwid-floating-minicart.php:111 msgid "Do not show" msgstr "Nicht anzeigen" #: includes/class-ecwid-customizer.php:134 msgid "Vertical indent" msgstr "Vertikaler Einzug" #: includes/class-ecwid-customizer.php:123 msgid "Horizontal indent" msgstr "Horizontaler Einzug" #: includes/class-ecwid-customizer.php:97 msgid "Icon" msgstr "Symbol" #: includes/class-ecwid-customizer.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:79 msgid "Border" msgstr "Rand" #: includes/class-ecwid-customizer.php:72 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:67 msgid "Layout" msgstr "Layout" #: includes/class-ecwid-customizer.php:61 msgid "Show when empty" msgstr "Anzeigen, wenn leer" #: includes/class-ecwid-customizer.php:49 msgid "Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The \"Show on store pages\" and \"Show when empty\" options will apply to the cart widget on site when published" msgstr "Hinweis: Wenn diese Option aktiviert ist, wird das Warenkorb-Widget immer in der Vorschau angezeigt, um die Anpassung zu erleichtern. Die Optionen „Auf Shop-Seiten anzeigen“ und „Anzeigen, wenn leer“ wirken sich auf das Warenkorb-Widget auf der veröffentlichten Website aus" #: includes/class-ecwid-customizer.php:47 msgid "Display shopping cart" msgstr "Warenkorb anzeigen" #: includes/class-ecwid-customizer.php:35 msgid "Shopping Cart Widget" msgstr "Warenkorb-Widget" #. Author URI of the plugin msgid "https://ecwid.to/ecwid-site" msgstr "https://ecwid.to/ecwid-site" #: templates/product-popup.php:247 msgid "selected product" msgstr "ausgewähltes Produkt" #: templates/product-popup.php:138 templates/product-popup.php:143 msgid "Selected Product" msgstr "Ausgewähltes Produkt" #: templates/product-popup.php:124 msgid " Choose another product" msgstr " Wählen Sie ein anderes Produkt aus" #: templates/importer/landing.tpl.php:20 msgid "Import your WooCommerce catalog to %s" msgstr "Importieren Sie Ihren WooCommerce-Katalog nach %s" #: includes/widgets/nsf-minicart-editor.tpl.php:35 msgid "Border:" msgstr "Rand:" #: includes/widgets/nsf-minicart-editor.tpl.php:19 msgid "Cart icon:" msgstr "Warenkorb-Symbol:" #: includes/widgets/nsf-minicart-editor.tpl.php:3 msgid "Layout:" msgstr "Layout:" #: includes/class-ecwid-floating-minicart.php:145 msgid "No border" msgstr "Kein Rand" #: includes/class-ecwid-floating-minicart.php:144 msgid "Pill" msgstr "Abgerundetes Rechteck" #: includes/class-ecwid-floating-minicart.php:143 msgid "Rectangle" msgstr "Rechteck" #: includes/class-ecwid-floating-minicart.php:136 msgid "Basket" msgstr "Korb" #: includes/class-ecwid-floating-minicart.php:134 msgid "Bag" msgstr "Tasche" #: includes/class-ecwid-floating-minicart.php:127 msgid "Icon, label, item count, subtotal and link" msgstr "Symbol, Beschriftung, Artikelanzahl, Zwischensumme und Link" #: includes/class-ecwid-floating-minicart.php:126 msgid "Icon, label, item count and subtotal" msgstr "Symbol, Beschriftung, Artikelanzahl und Zwischensumme" #: includes/class-ecwid-floating-minicart.php:125 msgid "Icon, label and item count" msgstr "Symbol, Beschriftung und Artikelanzahl" #: includes/class-ecwid-floating-minicart.php:124 msgid "Icon and item count" msgstr "Symbol und Artikelanzahl" #: includes/class-ecwid-floating-minicart.php:123 msgid "Label and item count" msgstr "Beschriftung und Artikelanzahl" #: includes/class-ecwid-floating-minicart.php:122 msgid "Item count only" msgstr "Nur Artikelanzahl" #: includes/class-ecwid-floating-minicart.php:121 msgid "Small icon and item count" msgstr "Kleines Symbol und Artikelanzahl" #: includes/class-ecwid-floating-minicart.php:120 msgid "Small icon" msgstr "Kleines Symbol" #: includes/widgets/class-ecwid-widget-minicart.php:9 msgid "Shopping Cart (deprecated)" msgstr "Warenkorb (veraltet)" #: includes/widgets/class-ecwid-widget-minicart-miniview.php:9 msgid "Shopping Cart Mini (deprecated)" msgstr "Mini-Warenkorb (veraltet)" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:21 msgid "Shopping Cart Floating (deprecated)" msgstr "Schwebender Warenkorb (veraltet)" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:69 msgid "Displays storefront: product listing and checkout" msgstr "Zeigt Schaufenster an: Produktliste und Kasse" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:67 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:70 msgctxt "vc-tab" msgid "Online store" msgstr "Onlineshop" #: includes/integrations/class-ecwid-integration-gutenberg.php:105 #: includes/gutenberg/class-ecwid-gutenberg.php:131 msgid "Your product" msgstr "Ihr Produkt" #: templates/shortcode-stub-store.tpl.php:18 #: includes/integrations/class-ecwid-integration-gutenberg.php:103 #: includes/widgets/class-ecwid-widget-product-browser.php:11 #: includes/gutenberg/class-ecwid-gutenberg.php:129 msgid "Your store will be shown here" msgstr "Ihr Shop wird hier angezeigt" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:31 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:101 #: includes/integrations/class-ecwid-integration-gutenberg.php:101 #: includes/gutenberg/class-ecwid-gutenberg.php:127 #: js/gutenberg/blocks.build.js:1 msgid "Choose product" msgstr "Produkt auswählen" #: includes/integrations/class-ecwid-integration-gutenberg.php:97 #: includes/gutenberg/class-ecwid-gutenberg.php:123 msgid "%s product" msgstr "%s Produkt" #: templates/wp-toolbox.tpl.php:4 msgid "Take advantage of powerful apps and extensions designed to enhance your store." msgstr "Profitieren Sie von leistungsfähigen Apps und Erweiterungen, die Ihren Shop aufwerten." #: templates/wp-toolbox.tpl.php:3 msgid "Extensions for your Store" msgstr "Erweiterungen für Ihren Shop" #: templates/importer/woo-summary.tpl.php:6 msgid "Import summary" msgstr "Zusammenfassung des Importvorgangs" #: templates/importer/woo-main.tpl.php:19 msgid "This import will copy your WooCommerce products and categories to your %s store." msgstr "Dieser Importvorgang kopiert Ihre WooCommerce-Produkte und -Kategorien in Ihren %s-Shop." #: templates/importer/woo-main.tpl.php:62 msgid "Importing %s of %s items" msgstr "%s von %s Artikeln werden importiert" #: templates/importer/woo-complete-alert.tpl.php:27 msgid "Some of the items could not be imported." msgstr "Einige der Artikel konnten nicht importiert werden." #: templates/importer/landing.tpl.php:33 msgid "Learn more" msgstr "Mehr erfahren" #: templates/importer/landing.tpl.php:33 msgid "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" msgstr "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" #: templates/importer/landing.tpl.php:31 msgid "Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center" msgstr "Ecwid ermöglicht es Ihnen, Ihre Produkte in Form einer CSV-Datei hochzuladen. Erfahren Sie im Ecwid-Hilfecenter mehr über dieses Tool" #: templates/importer/landing.tpl.php:29 msgid "Import product catalog from other sources" msgstr "Produktkatalog aus anderen Quellen importieren" #: templates/importer/landing.tpl.php:23 msgid "(You will be able to confirm the changes before the actual import)" msgstr "(Sie können die Änderungen vor dem eigentlichen Import bestätigen)" #: templates/importer/landing.tpl.php:12 msgid "We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?" msgstr "Wir haben festgestellt, dass Sie WooCommerce installiert haben. Ihr WooCommerce-Shop verfügt über %1$s Produkte und %2$s Kategorien. Möchten Sie diese nach %3$s importieren?" #: templates/importer/landing.tpl.php:9 msgid "Import product catalog from WooCommerce" msgstr "Produktkatalog von WooCommerce importieren" #: templates/importer/landing.tpl.php:4 msgid "Here, we will help you uploading your product catalog to %s from another shopping cart or other sources." msgstr "Hier helfen wir Ihnen dabei, Ihren Produktkatalog von einem anderen Warenkorb oder aus anderen Quellen in %s hochzuladen." #: templates/importer/landing.tpl.php:1 msgid "Import products to your %s store" msgstr "Importieren Sie Produkte in Ihren %s-Shop" #: templates/dashboard-blog-posts.tpl.php:20 msgid "Knowledge Base" msgstr "Wissensdatenbank" #: templates/dashboard-blog-posts.tpl.php:19 msgid "https://support.ecwid.com/hc/en-us" msgstr "https://support.ecwid.com/hc/en-us" #: templates/dashboard-blog-posts.tpl.php:14 msgid "https://www.ecwid.com/blog" msgstr "https://www.ecwid.com/blog" #: includes/importer/class-ecwid-import.php:39 msgid "Bulk import products and categories to your %s store" msgstr "Importieren Sie Produkte und Kategorien massenweise in Ihren %s-Shop" #: includes/importer/class-ecwid-import.php:38 msgid "%s products and categories" msgstr "%s Produkte und Kategorien" #: templates/importer/woo-main.tpl.php:36 #: includes/importer/class-ecwid-import-page.php:52 #: includes/importer/class-ecwid-import-page.php:53 msgid "Import your products from WooCommerce to %s" msgstr "Importieren Sie Ihre Produkte von WooCommerce nach %s" #: includes/importer/class-ecwid-import-page.php:42 #: includes/importer/class-ecwid-import-page.php:43 msgid "Import" msgstr "Importieren" #: templates/dashboard-blog-posts.tpl.php:15 #: includes/class-ecwid-wp-dashboard-feed.php:48 msgid "%s Blog" msgstr "%s-Blog" #: includes/class-ecwid-message-manager.php:345 msgid "No Thanks" msgstr "Nein danke" #: includes/class-ecwid-message-manager.php:343 msgid "Import my products from WooCommerce" msgstr "Meine Produkte von WooCommerce importieren" #: includes/class-ecwid-message-manager.php:341 msgid "We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you." msgstr "Wir haben bemerkt, dass Sie WooCommerce installiert haben. Dieses Tool hilft Ihnen dabei, Ihre WooCommerce-Produkte ganz einfach nach %s zu kopieren, wenn Sie dies möchten." #: includes/class-ecwid-message-manager.php:340 msgid "Need help importing your products from WooCommerce to %s?" msgstr "Benötigen Sie Hilfe beim Import Ihrer Produkte von WooCommerce nach %s?" #: includes/class-ecwid-admin.php:213 includes/class-ecwid-admin.php:214 msgid "Customers" msgstr "Kunden" #: templates/help.php:28 msgid "or <a %s>Browse the Help Center" msgstr "oder <a %s>durchsuchen Sie das Hilfecenter" #: templates/admin/welcome-connection-message.php:5 msgid "To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission." msgstr "Um Ihren Shop auf dieser Website anzeigen zu können, müssen Sie WordPress den Zugriff auf Ihre %1$s-Produkte gestatten. Bitte drücken Sie auf „Verbinden“, um die Berechtigung zu erteilen." #: includes/faq_entries.php:40 msgid "Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target=\"_blank\" href=\"%s\">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans." msgstr "Unsere 4 Kontotypen unterscheiden sich durch die Anzahl der Produkte, die Art der Funktionalität und den Supportlevel. Weitere Informationen finden Sie auf unserer Seite <a target=\"_blank\" href=\"%s\">„Preise“.</a><br /><br />Pro-Tipp: Sie können Geld sparen, indem Sie einen Jahrestarif abschließen." #: includes/class-ecwid-popup-deactivate.php:59 msgid "[%s] WordPress plugin deactivation feedback (store ID: %s)" msgstr "[%s] Feedback zur Deaktivierung des WordPress-Plug-ins (Shop-ID: %s)" #: includes/class-ecwid-message-manager.php:289 msgid "Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data." msgstr "Ihr Schaufenster (Produktliste und Kasse) funktioniert einwandfrei, doch die erweiterten Shop-Funktionen wie SEO und Widgets in der Seitenleiste sind deaktiviert. Verbinden Sie bitte Ihr %s-Konto durch Drücken der Schaltfläche unten, um diese Features zu aktivieren und sicherzustellen, dass Ihr Shop ordnungsgemäß funktioniert. Dieser Vorgang dauert nicht einmal eine Minute – Sie werden lediglich gebeten, sich bei Ihrem Konto anzumelden und dieser Website zu erlauben, Ihre Shop-Daten abzurufen." #: includes/class-ecwid-message-manager.php:288 msgid "Action required: please connect your %s account" msgstr "Aktion erforderlich: Bitte verbinden Sie Ihr %s-Konto" #: templates/popup/deactivate.php:24 msgid "Contact Support" msgstr "Support kontaktieren" #: templates/popup/deactivate.php:1 msgid "If you have a moment, please let us know why you are deactivating:" msgstr "Teilen Sie uns bitte mit, warum Sie die Deaktivierung durchführen, falls Sie einen Moment Zeit haben:" #: templates/admin/welcome-create.php:4 msgid "Create Store" msgstr "Shop erstellen" #: templates/advanced-settings.php:1 msgid "%s — Advanced settings" msgstr "%s – Fortgeschrittene Einstellungen" #: includes/widgets/class-ecwid-widget-random-products.php:10 msgid "Displays a list of random products." msgstr "Zeigt eine Liste von zufälligen Produkten an." #: includes/widgets/class-ecwid-widget-random-products.php:9 msgid "Random Products" msgstr "Zufällige Produkte" #: includes/widgets/class-ecwid-widget-random-product.php:9 #: includes/widgets/class-ecwid-widget-random-product.php:64 msgid "Random Product" msgstr "Zufälliges Produkt" #: includes/widgets/class-ecwid-widget-random-product.php:8 msgid "Displays a random product from your store to attract customer attention." msgstr "Zeigt ein zufälliges Produkt aus Ihrem Shop an, um die Aufmerksamkeit der Kunden zu erregen." #: includes/widgets/class-ecwid-widget-latest-products.php:10 msgid "Displays the latest added products from your store. Show new products to returning customers to drive repeat sales." msgstr "Zeigt die zuletzt hinzugefügten Produkte aus Ihrem Shop an. Zeigen Sie wiederkehrenden Kunden neue Produkte, um Wiederholungskäufe zu fördern." #: includes/widgets/class-ecwid-widget-latest-products.php:9 msgid "Latest Products" msgstr "Neueste Produkte" #: includes/class-ecwid-popup-deactivate.php:164 msgid "Can you share your feedback? What was wrong?" msgstr "Würden Sie uns bitte Ihr Feedback mitteilen? Was lief falsch?" #: includes/class-ecwid-popup-deactivate.php:161 msgid "Other" msgstr "Anderes" #: includes/class-ecwid-popup-deactivate.php:155 msgid "It's a temporary deactivation. Please do not ask me again." msgstr "Es handelt sich um eine vorübergehende Deaktivierung. Bitte fragen Sie mich nicht noch einmal." #: includes/class-ecwid-popup-deactivate.php:152 msgid "Can you share the name of the plugin you chose?" msgstr "Würden Sie uns bitte den Namen des von Ihnen gewählten Plug-ins mitteilen?" #: includes/class-ecwid-popup-deactivate.php:149 msgid "I found a better plugin" msgstr "Ich habe ein besseres Plug-in gefunden" #: includes/class-ecwid-popup-deactivate.php:146 msgid "What feature do you need?" msgstr "Welche Funktion benötigen Sie?" #: includes/class-ecwid-popup-deactivate.php:143 msgid "The plugin doesn't support the feature I want" msgstr "Das Plug-in unterstützt die von mir gewünschte Funktion nicht" #: includes/class-ecwid-popup-deactivate.php:128 msgid "What was wrong?" msgstr "Was lief falsch?" #: includes/class-ecwid-popup-deactivate.php:125 msgid "I have a problem using this plugin" msgstr "Ich habe ein Problem mit diesem Plug-in" #: includes/class-ecwid-popup-deactivate.php:112 msgid "Before You Go" msgstr "Bevor Sie gehen" #: templates/admin/storefront/area-navigation.php:79 #: includes/class-ecwid-popup-deactivate.php:105 msgid "Cancel" msgstr "Abbrechen" #: includes/class-ecwid-popup-deactivate.php:101 msgid "Submit & Deactivate" msgstr "Übermitteln und deaktivieren" #: includes/class-ecwid-message-manager.php:244 #: includes/class-ecwid-store-page.php:568 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:51 #: ecwid-shopping-cart.php:1082 js/gutenberg/blocks.build.js:1 msgid "Set up your store" msgstr "Richten Sie Ihren Shop ein" #: templates/admin-head.php:8 includes/class-ecwid-admin.php:48 #: includes/integrations/class-ecwid-integration-gutenberg.php:45 #: includes/gutenberg/class-ecwid-gutenberg.php:69 msgid "%s" msgstr "%s" #: templates/product-popup.php:199 js/gutenberg/blocks.build.js:1 msgid "«Buy now» button" msgstr "Schaltfläche „Jetzt kaufen“" #: templates/admin/simple-dashboard.php:10 msgid "%s Shopping Cart" msgstr "%s Warenkorb" #: templates/advanced-settings.php:42 msgid "Please subscribe to a paid plan to get this feature." msgstr "Bitte abonnieren Sie einen kostenpflichtigen Tarif, um diese Funktion nutzen zu können." #: templates/admin-footer.php:9 msgid "Get %s mobile app" msgstr "Holen Sie sich die %s-Mobile-App" #: includes/class-ecwid-message-manager.php:272 msgid "Rate %s at WordPress.org" msgstr "Bewerten Sie %s auf WordPress.org" #: includes/class-ecwid-message-manager.php:268 msgid "Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site." msgstr "Gefällt Ihnen Ihr %s-Onlineshop? Wir wären Ihnen sehr verbunden, wenn Sie Ihre Rezension auf der Website von WordPress hinterlassen und dort für das Plug-in abstimmen könnten." #: includes/class-ecwid-message-manager.php:260 msgid "To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings." msgstr "Bewegen Sie %s-Shop-Elemente per Drag-and-drop auf Ihre Website, um Ihrem Shop zusätzliche Funktionen hinzuzufügen. Wenn Sie fertig sind, können Sie mit der Änderung Ihrer Einstellungen fortfahren." #: templates/sync.php:114 msgid "Provide access." msgstr "Zugriff gewähren." #: templates/sync.php:113 msgid "To enable this feature, the plugin needs a permission to read your store product information." msgstr "Um diese Funktion zu aktivieren, benötigt das Plug-in die Berechtigung zum Auslesen der Informationen der Produkte in Ihrem Shop." #: templates/product-popup.php:137 templates/product-popup.php:147 msgid "Choose Product" msgstr "Produkt auswählen" #: templates/product-popup.php:96 msgid "Try another search." msgstr "Probieren Sie es mit einer anderen Suche." #: templates/sync.php:152 msgid "Not synchronized yet" msgstr "Noch nicht synchronisiert" #: templates/sync.php:149 msgid "Last update" msgstr "Letzte Aktualisierung" #: templates/sync.php:145 msgid "Products are successfully synchronized. The product pages are up to date." msgstr "Produkte sind erfolgreich synchronisiert. Die Produktseiten sind auf dem neuesten Stand." #: templates/sync.php:138 msgid "Products synchronized: %1$s out of %2$s" msgstr "Synchronisierte Produkte: %1$s von %2$s" #: templates/sync.php:126 msgid "We're synchronizing your products. This may take a few minutes. Please do not reload the page." msgstr "Wir synchronisieren Ihre Produkte. Dies kann einige Minuten dauern. Bitte laden Sie die Seite nicht neu." #: templates/sync.php:119 msgid "Synchronize products" msgstr "Produkte synchronisieren" #: templates/advanced-settings.php:83 msgid "%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site." msgstr "%s speichert Ihre Produktdaten in einem sicheren Cloud-Speicher. Die Produktseiten werden dynamisch bzw. „on the fly“ angezeigt, wenn ein Kunde in Ihrem Shop stöbert. Die Produkte werden also nicht auf der Website gespeichert, weshalb die Website-Suche beim Durchsuchen von Seiten und Posts keine Produktseiten findet. Diese Option aktiviert den lokalen Speichermodus: Die Produkte werden sowohl in der Cloud als auch auf Ihrer Website gespeichert. In den Suchergebnissen der Website werden dadurch sowohl Produktseiten als auch reguläre Seiten/Posts angeführt." #: templates/product-popup.php:243 msgid "Insert" msgstr "Einfügen" #: templates/product-popup.php:242 msgid "select product" msgstr "Produkt auswählen" #: templates/product-popup.php:241 templates/product-popup.php:246 msgid "customize appearance" msgstr "Erscheinungsbild anpassen" #: templates/product-popup.php:224 msgid "Show price inside the \"Buy now\" button" msgstr "Preis in der Schaltfläche „Jetzt kaufen“ anzeigen" #: templates/product-popup.php:229 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:62 #: js/gutenberg/blocks.build.js:1 msgid "Center align on a page" msgstr "Zentrierte Ausrichtung auf einer Seite" #: templates/product-popup.php:219 js/gutenberg/blocks.build.js:1 msgid "Add border" msgstr "Rand hinzufügen" #: templates/product-popup.php:188 js/gutenberg/blocks.build.js:1 msgid "Quantity" msgstr "Anzahl" #: templates/product-popup.php:178 js/gutenberg/blocks.build.js:1 msgid "Options" msgstr "Optionen" #: templates/product-popup.php:173 js/gutenberg/blocks.build.js:1 msgid "Picture" msgstr "Bild" #: templates/product-popup.php:163 msgid "Choose product properties to display in widget" msgstr "Wählen Sie die Produkteigenschaften aus, die im Widget angezeigt werden sollen" #: templates/product-popup.php:139 templates/product-popup.php:151 msgid "Customize widget" msgstr "Widget anpassen" #: templates/product-popup.php:97 msgid "Browse all products." msgstr "Alle Produkte durchsuchen." #: templates/product-popup.php:94 msgid "Nothing found for <span class=\"empty-page__term\">\"{{ data.term }}\"</span>" msgstr "Nichts gefunden für <span class=\"empty-page__term\">„{{ data.term }}“</span>" #: templates/product-popup.php:80 msgid "Next page" msgstr "Nächste Seite" #: templates/product-popup.php:69 msgid "Current Page" msgstr "Aktuelle Seite" #: templates/product-popup.php:49 msgid "Title or SKU" msgstr "Titel oder Art.-Nr." #: templates/product-popup.php:47 templates/product-popup.php:53 #: templates/product-popup.php:56 msgid "Search" msgstr "Suchen" #: templates/product-popup.php:29 msgid "SKU" msgstr "Art.-Nr." #: templates/product-popup.php:23 msgid "Name" msgstr "Name" #: includes/class-ecwid-product-popup.php:150 msgid "Last Page" msgstr "Letzte Seite" #: includes/class-ecwid-product-popup.php:149 msgid "Next Page" msgstr "Nächste Seite" #: includes/class-ecwid-product-popup.php:148 msgid "Previous Page" msgstr "Vorherige Seite" #: includes/class-ecwid-product-popup.php:147 msgid "First Page" msgstr "Erste Seite" #: includes/class-ecwid-product-popup.php:107 msgid "Add Product" msgstr "Produkt hinzufügen" #: includes/class-ecwid-oauth.php:366 msgid "To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the \"Add product\" dialog." msgstr "Um ein Produkt auswählen zu können, das in Ihre Posts und Seiten eingefügt werden soll, müssen Sie Ihre Website erneut mit Ihrem %s-Shop verbinden. Dazu müssen Sie lediglich die Berechtigungsanfrage akzeptieren, damit das Plug-in Ihre Produkte im Dialog „Produkt hinzufügen“ auflisten kann." #: templates/advanced-settings.php:54 msgid "To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>" msgstr "Aktivieren Sie die Registrierung in den <a %s>Website-Einstellungen</a>, um sicherzustellen, dass Ihr Kunde sich auf Ihrer Website und im Shop anmelden kann" #: templates/advanced-settings.php:48 msgid "To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>" msgstr "Erteilen Sie %s bitte die Berechtigung, die Kundendaten im Shop zu verwenden, um die automatische Anmeldung von Kunden bei Ihrem Shop zu ermöglichen. <a %s>Bitte verwenden Sie dazu diesen Link</a>" #: templates/advanced-settings.php:39 msgid "Upgrade to get this feature" msgstr "Führen Sie ein Upgrade durch, um diese Funktion nutzen zu können" #: templates/advanced-settings.php:32 msgid "Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again." msgstr "Single Sign-on ermöglicht es Ihren Kunden, ein einziges Log-in für Ihre WordPress-Website und %s zu verwenden. Wenn sich jemand bei Ihrer Website anmeldet, wird er automatisch auch in sein Kundenkonto bei Ihrem Shop eingeloggt, ohne dass er seine E-Mail-Adresse/sein Passwort erneut eingeben müsste." #: templates/advanced-settings.php:27 msgid "Customer Single Sign-On" msgstr "Single Sign-on für Kunden" #: includes/integrations/class-ecwid-integration-divibuilder.php:63 msgid "Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space." msgstr "Geben Sie optionale CSS-Klassen ein, die für dieses Modul verwendet werden sollen. Eine CSS-Klasse kann genutzt werden, um benutzerdefiniertes CSS-Styling zu erstellen. Sie können mehrere Klassen hinzufügen, indem Sie diese durch ein Leerzeichen trennen." #: includes/integrations/class-ecwid-integration-divibuilder.php:60 msgid "CSS Class" msgstr "CSS-Klasse" #: includes/integrations/class-ecwid-integration-divibuilder.php:57 msgid "Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page." msgstr "Geben Sie eine optionale CSS-ID ein, die für dieses Modul verwendet werden soll. Eine ID kann genutzt werden, um benutzerdefiniertes CSS-Styling oder Links zu bestimmten Abschnitten Ihrer Seite zu erstellen." #: includes/integrations/class-ecwid-integration-divibuilder.php:54 msgid "CSS ID" msgstr "CSS-ID" #: includes/integrations/class-ecwid-integration-divibuilder.php:51 msgid "This will change the label of the module in the builder for easy identification." msgstr "Hierdurch wird die Bezeichnung des Moduls im Builder zur leichteren Identifizierung geändert." #: includes/integrations/class-ecwid-integration-divibuilder.php:49 msgid "Admin Label" msgstr "Admin-Bezeichnung" #: includes/integrations/class-ecwid-integration-divibuilder.php:44 msgid "Here you can create the content that will be used within the module." msgstr "Hier können Sie den Inhalt erstellen, der im Rahmen des Moduls verwendet werden soll." #: includes/integrations/class-ecwid-integration-divibuilder.php:41 msgid "Content" msgstr "Inhalt" #: templates/admin-footer.php:29 msgid "<a %s>Reconnect</a>" msgstr "<a %s>Erneut verbinden</a>" #: templates/help.php:15 msgid "https://support.ecwid.com/hc/en-us/search" msgstr "https://support.ecwid.com/hc/en-us/search" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:73 msgid "Browse by Category" msgstr "Nach Kategorie durchsuchen" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:15 msgid "Store Root Categories" msgstr "Shop-Stammkategorien" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:14 msgid "Adds root categories list to the sidebar to let your customers navigate the store." msgstr "Fügt die Liste der Stammkategorien zur Seitenleiste hinzu, damit Ihre Kunden im Shop navigieren können." #: templates/admin/welcome-connection-message.php:25 msgid "To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission." msgstr "Um mit %1$s verkaufen zu können, müssen Sie WordPress den Zugriff auf das %1$s-Plug-in gestatten. Die Schaltfläche „Verbinden“ führt Sie zu Ihrem %1$s-Konto, wo Sie die entsprechende Berechtigung erteilen können." #: templates/admin-timeout.php:11 msgid "Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">our customer support team</a>." msgstr "Unser Team arbeitet bereits an diesem Problem. Bitte aktualisieren Sie die Seite in ein paar Minuten. Bitte wenden Sie sich an <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">unser Kundensupport-Team</a>, falls das Problem weiterhin bestehen sollte." #: templates/admin-timeout.php:9 msgid "Sorry we're having technical difficulties." msgstr "Bitte entschuldigen Sie unsere technischen Schwierigkeiten." #: includes/class-ecwid-floating-minicart.php:153 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:143 msgid "Top right" msgstr "Oben rechts" #: includes/class-ecwid-floating-minicart.php:152 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:138 msgid "Bottom right" msgstr "Unten rechts" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:135 #: includes/class-ecwid-customizer.php:110 msgid "Position" msgstr "Position" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:20 msgid "Adds a shopping cart widget to the top right corner of your site." msgstr "Fügt ein Warenkorb-Widget in der oberen rechten Ecke Ihrer Website ein." #: templates/help.php:215 msgid "You can send a new request here." msgstr "Hier können Sie eine neue Anfrage senden." #: templates/help.php:214 msgid " Thank you very much for contacting us! We will get back to you shortly." msgstr " Vielen Dank für Ihre Kontaktaufnahme! Wir melden uns in Kürze bei Ihnen." #: templates/help.php:213 msgid "Your email has been sent" msgstr "Ihre E-Mail wurde verschickt" #: templates/help.php:207 msgid "Send message failed" msgstr "Senden der Nachricht fehlgeschlagen" #: templates/help.php:196 msgid "Send Message" msgstr "Nachricht verschicken" #: templates/help.php:193 msgid "Type in your message here" msgstr "Geben Sie hier Ihre Nachricht ein" #: templates/help.php:192 msgid "Subject" msgstr "Betreff" #: templates/help.php:186 msgid "Send a message to our support team" msgstr "Senden Sie eine Nachricht an unser Support-Team" #: templates/help.php:177 msgid "Still have questions about Ecwid? Let us know!" msgstr "Haben Sie noch Fragen zu Ecwid? Lassen Sie es uns wissen!" #: templates/help.php:176 msgid "Contact us" msgstr "Kontaktieren Sie uns" #: templates/help.php:33 msgid "Frequently Asked Questions" msgstr "Häufig gestellte Fragen" #: templates/help.php:21 msgid "Search the Knowledge Base" msgstr "Wissensdatenbank durchsuchen" #: templates/help.php:17 msgid "E.g. How to set up shipping" msgstr "Zum Beispiel: „Wie richte ich den Versand ein?“" #: templates/help.php:11 msgid "How can we help you?" msgstr "Wie können wir Ihnen weiterhelfen?" #: includes/faq_entries.php:68 msgid "You can display your store on the site main page. Adjust the \"Reading\" settings of your site as described in our <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">Help Center.</a>" msgstr "Sie können Ihren Shop auf der Hauptseite der Website anzeigen. Passen Sie die „Lesen“-Einstellungen Ihrer Website wie in unserem <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">Hilfecenter</a> beschrieben an." #: includes/faq_entries.php:67 msgid "Is it possible to display my store on the site home page?" msgstr "Ist es möglich, meinen Shop auf der Startseite der Website anzuzeigen?" #: includes/faq_entries.php:61 msgid "To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">How to use it.</a>" msgstr "Verwenden Sie den Shortcode <b>[ecwid_product]</b>, um ein einzelnes Produkt auf einer separaten Seite oder in einem Blogpost auf Ihrer Website einzubinden. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">Hier finden Sie die Anleitung.</a>" #: includes/faq_entries.php:60 msgid "How to add a single product with the add to bag button to the site pages?" msgstr "Wie kann ich ein einzelnes Produkt mit der Schaltfläche „Zum Warenkorb hinzufügen“ auf den Seiten der Website einbinden?" #: includes/faq_entries.php:55 msgid "To create sitemap for your Wordpress site we suggest using <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> or <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">paid Ecwid users</a>." msgstr "Wir empfehlen die Verwendung der Plug-ins <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> oder <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast WordPress SEO</a> zur Erstellung einer Sitemap für Ihre WordPress-Website. Diese Plug-ins sind vollständig mit Ecwid kompatibel und ermöglichen die Generierung einer Sitemap, die Links zu Kategorien und Produktseiten enthält, sodass die Shop-Seiten schneller indiziert werden können. Bitte beachten Sie, dass diese Option <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">zahlenden Ecwid-Benutzern</a> zur Verfügung steht." #: includes/faq_entries.php:54 msgid "How do I put my products in the sitemap?" msgstr "Wie kann ich meine Produkte in die Sitemap aufnehmen?" #: includes/faq_entries.php:48 msgid "You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open \"Appearance > Menus\" in your WordPress control panel and add the \"Store with Categories Menu\" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site." msgstr "Sie können das Shop-Kategoriemenü zu Ihrem Website-Menü hinzufügen, um Ihren Kunden die Navigation auf Ihrer Website zu erleichtern. Öffnen Sie einfach „Erscheinungsbild > Menüs“ in Ihrem WordPress-Steuermenü und fügen Sie den Punkt „Shop mit Kategoriemenü“ zu Ihrem Website-Menü hinzu. Auf Ihrer Website wird automatisch ein Drop-down-Menü mit Ihren Shop-Kategorien angezeigt." #: includes/faq_entries.php:47 msgid "How do I add store categories to the site menu?" msgstr "Wie füge ich Shop-Kategorien zum Website-Menü hinzu?" #: includes/faq_entries.php:38 msgid "How much does Ecwid cost?" msgstr "Wie viel kostet Ecwid?" #: includes/faq_entries.php:30 msgid "You can add product search box, cart widget and more on the <a href=\"%s\">\"Appearance / Widgets page\"</a> here in your site admin. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">More details.</a>" msgstr "Sie können ein Produktsuchfeld, ein Warenkorb-Widget und mehr in Ihrer Website-Verwaltung auf der Seite <a href=\"%s\">„Erscheinungsbild > Widgets“</a> hinzufügen. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">Weitere Einzelheiten.</a>" #: includes/faq_entries.php:28 msgid "How can I add a cart widget to my site sidebar?" msgstr "Wie kann ich ein Warenkorb-Widget zur Seitenleiste meiner Website hinzufügen?" #: includes/faq_entries.php:21 msgid "You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">More details.</a>" msgstr "Sie können Ihren Onlineshop zu Ihrer Facebook-Geschäftsseite hinzufügen. Hierzu sind keine Add-ons erforderlich. Ecwid synchronisiert automatisch Produkte, Kunden, Bestellungen und Lagerbestände zwischen Ihren WordPress- und Facebook-Schaufenstern. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">Weitere Einzelheiten.</a>" #: includes/faq_entries.php:20 msgid "How to set up a storefront on Facebook with Ecwid?" msgstr "Wie richte ich mit Ecwid ein Schaufenster auf Facebook ein?" #: includes/faq_entries.php:13 msgid "Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">More details.</a>" msgstr "Ecwid stellt kostenlose Mobile-Apps für iOS und Android zur Verfügung, mit denen Sie Ihren Shop unterwegs verwalten und Produkte verkaufen können. Scannen Sie Produkte, verfolgen Sie den Lagerbestand, verwalten Sie Verkäufe und akzeptieren Sie Zahlungen, indem Sie Ihr Mobilgerät als POS-Station verwenden. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">Weitere Einzelheiten.</a>" #: includes/faq_entries.php:12 msgid "How can I manage my store from a mobile device?" msgstr "Wie kann ich meinen Shop auf einem Mobilgerät verwalten?" #: includes/faq_entries.php:6 msgid "Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">More details.</a>" msgstr "Ecwid ist PCI-DSS-Level-1-zertifiziert – dies ist der Goldstandard für E-Commerce-Lösungen weltweit. Das bedeutet, dass Sie beim Onlineverkauf mit Ecwid keine Probleme mit der Einhaltung von Bankvorschriften haben. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">Weitere Einzelheiten.</a>" #: includes/faq_entries.php:5 msgid "How secure is this plugin? Is my store PCI DSS compliant?" msgstr "Wie sicher ist dieses Plug-in? Ist mein Shop PCI-DSS-konform?" #: includes/class-ecwid-nav-menus.php:32 msgid "Ecwid Menu Item" msgstr "Ecwid-Menüpunkt" #: includes/class-ecwid-admin.php:179 includes/class-ecwid-admin.php:180 msgid "Help" msgstr "Hilfe" #: templates/admin-footer.php:27 msgid "Want to connect another %s store?" msgstr "Möchten Sie einen weiteren %s-Shop verbinden?" #: templates/admin-footer.php:17 msgid "Questions?" msgstr "Haben Sie noch Fragen?" #: templates/admin-footer.php:6 msgid "Manage Store on iPhone, iPad or Android" msgstr "Shop auf iPhone, iPad oder Android verwalten" #: includes/class-ecwid-message-manager.php:254 msgid "Complete Setup" msgstr "Einrichtung abschließen" #: includes/class-ecwid-message-manager.php:253 msgid "Complete setup and start selling" msgstr "Einrichtung abschließen und mit dem Verkauf beginnen" #: includes/class-ecwid-message-manager.php:242 msgid "Greetings! Your %s plugin is now active." msgstr "Guten Tag! Ihr %s-Plug-in ist jetzt aktiv." #: templates/debug.php:12 msgid "Download log file" msgstr "Protokolldatei herunterladen" #: templates/help.php:67 includes/oembed.php:75 includes/oembed.php:104 msgid "See more" msgstr "Mehr anzeigen" #: ecwid-shopping-cart.php:1051 msgid "I have a problem with my %s store" msgstr "Ich habe ein Problem mit meinem %s-Shop" #: includes/class-ecwid-message-manager.php:55 msgid "Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: \"The Wordpress function wp_remote_post() failed to connect a remote server because of some error: \"%s\". Seems like HTTP POST requests are disabled on this server\". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>." msgstr "Entschuldigung, es gibt ein Problem. Diese Seite soll das Steuermenü Ihres Shops anzeigen. Allerdings scheint diese WordPress-Website nicht in der Lage zu sein, eine Verbindung zum Ecwid-Server herzustellen, um Ihr Shop-Dashboard hier anzuzeigen. Dies ist wahrscheinlich auf eine Fehlkonfiguration Ihres Servers zurückzuführen. Die Situation kann von Ihrem Hostingprovider gelöst werden. Es folgt eine technischere Beschreibung des Problems, die Sie an Ihren Hostingprovider schicken können: „Die WordPress-Funktion wp_remote_post() konnte aufgrund eines Fehlers keine Verbindung zu einem entfernten Server herstellen: ‚%s‘. Es scheint so, als wären HTTP-POST-Anfragen auf diesem Server deaktiviert.“ <br /><br />Bitte zögern Sie nicht, uns unter <a %s>wordpress@ecwid.com</a> zu kontaktieren. Wir helfen Ihnen gerne dabei, sich an Ihren Hostingprovider zu wenden und diesen darum zu bitten, das Problem zu beheben. <br /><br /> In der Zwischenzeit können Sie zur Verwaltung Ihres Shops das Ecwid-Web-Steuermenü unter <a %s>my.ecwid.com</a> verwenden. Ihr Schaufenster funktioniert ebenfalls einwandfrei. Sie können es hier überprüfen: <a %s>%s</a>." #: templates/store-popup.php:249 msgid "Open store dashboard" msgstr "Shop-Dashboard öffnen" #: templates/store-popup.php:12 templates/store-popup.php:27 msgid "Store elements" msgstr "Shop-Elemente" #: templates/reconnect-sso.php:10 msgid "Re-connect to Enable Control Panel" msgstr "Zum Aktivieren des Steuermenüs erneut verbinden" #: templates/reconnect-sso.php:8 msgid "Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page." msgstr "Verwalten Sie Produkte, verfolgen Sie Verkäufe und passen Sie Einstellungen an – <nobr>all das, ohne</nobr> diese Seite zu verlassen." #: templates/reconnect-sso.php:7 msgid "Your store Control Panel. Right here in WordPress." msgstr "Das Steuermenü Ihres Shops. Direkt hier in WordPress." #: ecwid-shopping-cart.php:2114 msgid "Orders" msgstr "Bestellungen" #: includes/class-ecwid-nav-menus.php:168 ecwid-shopping-cart.php:2118 msgid "The store top-level categories are automatically added to this drop-down menu" msgstr "Die Oberkategorien des Shops werden automatisch zu diesem Drop-down-Menü hinzugefügt" #: includes/class-ecwid-nav-menus.php:167 ecwid-shopping-cart.php:2117 msgid "Done" msgstr "Fertig" #: includes/class-ecwid-nav-menus.php:166 ecwid-shopping-cart.php:2116 msgid "Refresh categories list" msgstr "Kategorieliste aktualisieren" #: includes/class-ecwid-nav-menus.php:165 msgid "Store Page" msgstr "Shop-Seite" #: includes/class-ecwid-nav-menus.php:319 msgid "Add to Menu" msgstr "Zum Menü hinzufügen" #: includes/class-ecwid-nav-menus.php:316 msgid "Select All" msgstr "Alle auswählen" #: includes/class-ecwid-nav-menus.php:369 msgid "Store with Categories Menu" msgstr "Shop mit Kategoriemenü" #: includes/class-ecwid-nav-menus.php:352 #: includes/class-ecwid-nav-menus.php:355 msgid "My Account" msgstr "Mein Konto" #: includes/class-ecwid-nav-menus.php:335 #: includes/class-ecwid-floating-minicart.php:135 #: includes/class-ecwid-admin-storefront-page.php:279 msgid "Cart" msgstr "Warenkorb" #: includes/class-ecwid-admin.php:87 includes/class-ecwid-admin.php:88 #: includes/class-ecwid-products.php:228 ecwid-shopping-cart.php:2112 msgid "Products" msgstr "Produkte" #: includes/class-ecwid-admin.php:79 includes/class-ecwid-admin.php:80 msgid "Sales" msgstr "Verkäufe" #: ecwid-shopping-cart.php:1119 msgid "Report a problem with the store" msgstr "Ein Problem mit dem Shop melden" #: ecwid-shopping-cart.php:1036 msgid "%s plugin doesn't work well with my \"%s\" theme" msgstr "Das Plug-in „%s“ funktioniert nicht besonders gut mit meinem Thema „%s“" #: templates/admin/welcome-connection-message.php:22 #: templates/admin/welcome-connection-message.php:28 msgid "Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL." msgstr "Es scheint so, als würde Ihre Website keine Remote-POST-Anfragen unterstützen, die für die Funktionalität der %s-API erforderlich sind. Bitte kontaktieren Sie Ihren Hostingprovider, um cURL zu aktivieren." #. Description of the plugin msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up." msgstr "Ecwid ist ein kostenloser Warenkorb mit allen erforderlichen Funktionen. Die Lösung kann leicht in jedes WordPress-Blog integriert werden und die Einrichtung dauert nicht einmal 5 Minuten." #. Plugin URI of the plugin msgid "http://www.ecwid.com?partner=wporg" msgstr "http://www.ecwid.com?partner=wporg" #: templates/store-svg.php:12 msgid "Demo Store" msgstr "Demo-Shop" #: templates/store-svg.php:9 msgid "Your store will be shown here!" msgstr "Ihr Shop wird hier angezeigt!" #: templates/product-popup.php:248 templates/store-popup.php:256 msgid "Update" msgstr "Update" #: templates/store-popup.php:253 msgid "Insert into page" msgstr "In Seite einfügen" #: templates/store-popup.php:246 msgid "Demo store" msgstr "Demo-Shop" #: templates/store-popup.php:80 msgid "Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>" msgstr "Darüber hinaus können Sie Shop-Steuerelemente zur Toolbar Ihrer Website hinzufügen, indem Sie <a %s>WordPress-native Widgets</a> verwenden" #: templates/store-popup.php:74 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:86 msgid "Show categories" msgstr "Kategorien anzeigen" #: templates/store-popup.php:66 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:94 msgid "Show minicart" msgstr "Mini-Warenkorb anzeigen" #: templates/store-popup.php:58 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:78 msgid "Show search" msgstr "Suche anzeigen" #: templates/store-popup.php:53 msgid "Product catalog will be shown automatically" msgstr "Produktkatalog wird automatisch angezeigt" #: templates/store-popup.php:52 msgid "Choose widgets to show" msgstr "Widgets zur Anzeige auswählen" #: templates/admin/welcome-create.php:7 msgid "Connect your store" msgstr "Verbinden Sie Ihren Shop" #: templates/admin/welcome-no_oauth.php:6 #: templates/importer/import-no-token.tpl.php:6 #: includes/class-ecwid-message-manager.php:291 msgid "Connect" msgstr "Verbinden" #: templates/admin/legacy-connect.tpl.php:68 msgid "Save and connect your %s store to the site" msgstr "Speichern Sie und verbinden Sie Ihren %s-Shop mit der Website" #: templates/admin/legacy-connect.tpl.php:59 msgid "Enter your Store ID here:" msgstr "Geben Sie hier Ihre Shop-ID ein:" #: templates/admin/legacy-connect.tpl.php:52 msgid "Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the \"Dashboard\" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration." msgstr "Die Shop-ID ist eine eindeutige Kennung jedes %1$s-Shops. Sie besteht aus mehreren Ziffern. Sie finden sie auf der „Dashboard“-Seite des %1$s-Steuermenüs. Die Shop-ID wird zudem nach der Registrierung in der Begrüßungs-E-Mail mitgeschickt." #: templates/admin/legacy-connect.tpl.php:50 msgid "Find your Store ID" msgstr "Machen Sie Ihre Shop-ID ausfindig" #: templates/admin/legacy-connect.tpl.php:46 msgid "You will be able to sign up through your existing Google, Facebook or PayPal profiles as well." msgstr "Sie können sich auch über Ihre bestehenden Google-, Facebook- oder PayPal-Profile registrieren." #: templates/admin/legacy-connect.tpl.php:42 msgid "I already have an account, sign in" msgstr "Ich habe bereits ein Konto, anmelden" #: templates/admin/legacy-connect.tpl.php:35 msgid "Create a new %s account which you will use to manage your store and inventory. The registration is free." msgstr "Legen Sie ein neues %s-Konto an, mit dem Sie Ihren Shop und Ihren Lagerbestand verwalten können. Die Registrierung ist kostenlos." #: templates/admin/legacy-connect.tpl.php:24 msgid "The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps." msgstr "Der erste Schritt zur Eröffnung Ihres Onlinegeschäfts: <br />Legen wir los und fügen wir in <strong>3</strong> einfachen Schritten einen Shop zu Ihrer WordPress-Website hinzu." #: templates/admin/legacy-connect.tpl.php:21 msgid "Thank you for choosing %s to build your online store" msgstr "Vielen Dank, dass Sie sich für %s zur Einrichtung Ihres Onlineshops entschieden haben" #: templates/admin/simple-dashboard.php:58 msgid "Open control panel" msgstr "Steuermenü öffnen" #: templates/admin/simple-dashboard.php:42 msgid "Your %s store is connected<br /> to your WordPress website" msgstr "Ihr %s-Shop ist mit Ihrer WordPress-Website verbunden<br />" #: templates/admin/simple-dashboard.php:39 msgid "Greetings!" msgstr "Guten Tag!" #: templates/admin/simple-dashboard.php:34 msgid "Your %s store is now connected<br /> to your WordPress website" msgstr "Ihr %s-Shop ist jetzt mit Ihrer WordPress-Website verbunden<br />" #: templates/admin/simple-dashboard.php:31 msgid "Congratulations!" msgstr "Glückwunsch!" #: templates/admin/simple-dashboard.php:18 msgid "Disconnect store" msgstr "Verbindung zum Shop trennen" #: templates/admin/legacy-connect.tpl.php:65 #: templates/admin/simple-dashboard.php:14 templates/store-popup.php:244 #: templates/store-svg.php:14 #: includes/integrations/class-ecwid-integration-gutenberg.php:104 #: includes/gutenberg/class-ecwid-gutenberg.php:130 msgid "Store ID" msgstr "Shop-ID" #: templates/admin/welcome-connection-message.php:15 msgid "Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again." msgstr "Verbindungsfehler – Nachdem Sie auf die Schaltfläche geklickt haben, müssen Sie sich anmelden und die entsprechenden Berechtigungen erteilen, um unser Plug-in verwenden zu können. Bitte versuchen Sie es erneut." #: templates/admin/legacy-connect.tpl.php:57 #: templates/admin/welcome-no_oauth.php:3 msgid "Enter your Store ID" msgstr "Geben Sie Ihre Shop-ID ein" #: templates/store-popup.php:221 msgid "Default view mode on search results" msgstr "Standardmäßige Ansicht in den Suchergebnissen" #: templates/store-popup.php:214 templates/store-popup.php:232 msgid "Table" msgstr "Tabelle" #: templates/store-popup.php:211 templates/store-popup.php:229 msgid "List" msgstr "Liste" #: templates/store-popup.php:208 templates/store-popup.php:226 msgid "Grid" msgstr "Gitter" #: templates/store-popup.php:204 msgid "Default view mode on product pages" msgstr "Standardmäßige Ansicht auf Produktseiten" #: templates/store-popup.php:184 msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products." msgstr "Hier können Sie festlegen, wie viele Produkte pro Seite angezeigt werden sollen. Diese Optionen definieren Maximalwerte. Wenn der Platz nicht ausreicht, um alle Produktspalten anzuzeigen, passt %s die Anzahl derselben so an, dass alle Produkte untergebracht werden." #: templates/store-popup.php:169 msgid "Table view" msgstr "Tabellenansicht" #: templates/store-popup.php:152 msgid "List view" msgstr "Listenansicht" #: templates/store-popup.php:125 msgid "Grid view" msgstr "Gitteransicht" #: templates/store-popup.php:123 msgid "Number of products per page" msgstr "Anzahl der Produkte pro Seite" #: templates/store-popup.php:191 msgid "Number of categories per row" msgstr "Anzahl der Kategorien pro Zeile" #: templates/advanced-settings.php:98 msgid "Save changes" msgstr "Änderungen speichern" #: includes/class-ecwid-product-browser.php:202 msgid "Default category ID" msgstr "Standardmäßige Kategorie-ID" #: templates/store-popup.php:98 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:127 #: includes/integrations/class-ecwid-integration-gutenberg.php:427 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:56 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:248 msgid "Store root category" msgstr "Shop-Stammkategorie" #: templates/store-popup.php:90 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:101 msgid "Category shown by default" msgstr "Standardmäßig angezeigte Kategorie" #: templates/admin-message.php:47 msgid "Never show this message again" msgstr "Diese Nachricht nicht erneut anzeigen" #: templates/product-popup.php:194 lib/ecwid_platform.php:209 #: js/gutenberg/blocks.build.js:1 msgid "Price" msgstr "Preis" #: includes/class-ecwid-store-editor.php:75 #: includes/integrations/class-ecwid-integration-gutenberg.php:102 #: includes/gutenberg/class-ecwid-gutenberg.php:128 msgid "Edit Appearance" msgstr "Erscheinungsbild bearbeiten" #: includes/class-ecwid-store-editor.php:60 msgid "Edit Store" msgstr "Shop bearbeiten" #: templates/store-popup.php:11 templates/store-popup.php:21 #: includes/class-ecwid-store-editor.php:52 msgid "Add Store" msgstr "Shop hinzufügen" #: includes/class-ecwid-message-manager.php:261 msgid "Back to Store Settings" msgstr "Zurück zu den Shop-Einstellungen" #: includes/class-ecwid-message-manager.php:252 msgid "Your store is almost ready!" msgstr "Ihr Shop ist fast fertig!" #: includes/class-ecwid-message-manager.php:243 msgid "Take a few simple steps to complete store setup" msgstr "Führen Sie ein paar einfache Schritte durch, um die Einrichtung des Shops abzuschließen" #: includes/widgets/class-ecwid-widget-products-base.php:205 msgid "Number of products to show" msgstr "Anzahl der anzuzeigenden Produkte" #: includes/widgets/class-ecwid-widget-recently-viewed.php:89 msgid "Store Link Title" msgstr "Shop-Link-Titel" #: templates/product-popup.php:183 includes/class-ecwid-product-browser.php:249 #: includes/widgets/class-ecwid-widget-products-base.php:199 #: js/gutenberg/blocks.build.js:1 msgid "Title" msgstr "Titel" #: includes/widgets/class-ecwid-widget-recently-viewed.php:69 #: includes/widgets/class-ecwid-widget-recently-viewed.php:91 msgid "You have not viewed any product yet. Open store." msgstr "Sie haben noch kein Produkt angesehen. Öffnen Sie den Shop." #: includes/widgets/class-ecwid-widget-recently-viewed.php:11 msgid "Recently Viewed Products" msgstr "Kürzlich angesehene Produkte" #: includes/widgets/class-ecwid-widget-recently-viewed.php:12 msgid "Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop." msgstr "Zeigt eine Liste der Produkte an, die der Kunde kürzlich betrachtet hat. Er kann auf diese Weise leicht zu jenen Produkten zurückkehren, die er in Ihrem Shop gesehen hat." #: includes/widgets/class-ecwid-widget-store-link.php:35 msgid "Text" msgstr "Text" #: includes/themes/class-ecwid-theme-twentyseventeen.php:48 #: includes/themes/class-ecwid-theme-twentyseventeen.php:54 #: includes/themes/class-ecwid-theme-twentyfifteen.php:34 #: includes/themes/class-ecwid-theme-twentyfifteen.php:40 #: includes/themes/class-ecwid-theme-twentysixteen.php:36 #: includes/themes/class-ecwid-theme-twentysixteen.php:42 #: includes/widgets/class-ecwid-widget-store-link.php:31 msgid "Shop" msgstr "Shop" #: includes/widgets/class-ecwid-widget-store-link.php:10 msgid "Store Page Link" msgstr "Shop-Seiten-Link" #: includes/widgets/class-ecwid-widget-store-link.php:9 msgid "Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site." msgstr "Zeigt einen Link zur Shop-Seite in der Seitenleiste an, damit der Kunde von jeder Seite der Website aus schnell auf Ihren Shop zugreifen kann." #: includes/widgets/class-ecwid-widget-vcategories.php:9 msgid "Store Categories" msgstr "Shop-Kategorien" #: includes/widgets/class-ecwid-widget-vcategories.php:8 msgid "Adds vertical categories block to let the customer navigate your store." msgstr "Fügt einen vertikalen Kategorieblock hinzu, damit der Kunde in Ihrem Shop stöbern kann." #: includes/class-ecwid-nav-menus.php:344 #: includes/class-ecwid-nav-menus.php:347 #: includes/widgets/class-ecwid-widget-search.php:13 msgid "Product Search" msgstr "Produktsuche" #: includes/widgets/class-ecwid-widget-search.php:12 msgid "Displays a simple search box for your customers to find a product in your store" msgstr "Zeigt ein einfaches Suchfeld an, über das Ihre Kunden ein Produkt in Ihrem Shop finden können" #: includes/widgets/class-ecwid-widget-minicart-miniview.php:8 msgid "Adds a compact cart widget for customer to see the products they added to the cart." msgstr "Fügt ein kompaktes Warenkorb-Widget hinzu, in dem der Kunde jene Produkte sehen kann, die er in den Warenkorb gelegt hat." #: includes/widgets/class-ecwid-widget-minicart.php:41 #: includes/widgets/class-ecwid-widget-random-product.php:67 #: includes/widgets/class-ecwid-widget-search.php:46 #: includes/widgets/nsf-minicart-editor.tpl.php:50 #: includes/widgets/class-ecwid-widget-minicart-miniview.php:41 #: includes/widgets/class-ecwid-widget-vcategories.php:39 #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:76 msgid "Title:" msgstr "Titel:" #: includes/class-ecwid-nav-menus.php:338 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:20 msgid "Shopping Cart" msgstr "Warenkorb" #: includes/widgets/class-ecwid-widget-minicart.php:8 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:19 msgid "Adds a cart widget for customer to see the products they added to the cart." msgstr "Fügt ein Warenkorb-Widget hinzu, in dem der Kunde jene Produkte sehen kann, die er in den Warenkorb gelegt hat." #: includes/widgets/class-ecwid-widget-badge.php:51 #: includes/widgets/class-ecwid-widget-badge.php:63 msgid "Ecwid e-commerce widgets" msgstr "Ecwid-E-Commerce-Widgets" #: includes/widgets/class-ecwid-widget-badge.php:45 #: includes/widgets/class-ecwid-widget-badge.php:57 msgid "Ecwid shopping cart" msgstr "Ecwid-Warenkorb" #: includes/widgets/class-ecwid-widget-badge.php:39 #: includes/widgets/class-ecwid-widget-badge.php:75 msgid "Ecwid free shopping cart" msgstr "Kostenloser Ecwid-Warenkorb" #: includes/widgets/class-ecwid-widget-badge.php:33 #: includes/widgets/class-ecwid-widget-badge.php:69 msgid "Ecwid ecommerce solution" msgstr "Ecwid-E-Commerce-Lösung" #: includes/widgets/class-ecwid-widget-badge.php:21 #: includes/widgets/class-ecwid-widget-badge.php:27 msgid "Ecwid shopping cart widget" msgstr "Ecwid-Warenkorb-Widget" #: includes/widgets/class-ecwid-widget-badge.php:14 msgid "Ecwid Badge" msgstr "Ecwid-Badge" #: includes/widgets/class-ecwid-widget-badge.php:13 msgid "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid." msgstr "Ihnen gefällt Ecwid und Sie möchten uns helfen, zu wachsen? Dann fügen Sie doch diesen schicken „Powered by Ecwid“-Badge zu Ihrer Website hinzu, um Ihren Besuchern zu zeigen, dass Sie ein stolzer Ecwid-Benutzer sind." #: ecwid-shopping-cart.php:2791 msgid "Recommendations for Your Online Store" msgstr "Empfehlungen für Ihren Onlineshop" #: includes/class-ecwid-admin.php:528 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:77 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:87 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:95 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:103 #: ecwid-shopping-cart.php:2056 msgid "Settings" msgstr "Einstellungen" #: includes/class-ecwid-admin.php:165 msgid "Advanced" msgstr "Fortgeschritten" #: includes/class-ecwid-admin.php:164 msgid "Advanced settings" msgstr "Fortgeschrittene Einstellungen" #: templates/product-popup.php:206 templates/store-popup.php:14 #: templates/store-popup.php:34 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:44 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:78 #: js/gutenberg/blocks.build.js:1 msgid "Appearance" msgstr "Erscheinungsbild" #: includes/class-ecwid-admin.php:28 includes/class-ecwid-admin.php:59 #: includes/class-ecwid-admin.php:459 ecwid-shopping-cart.php:2110 msgid "Dashboard" msgstr "Dashboard" #: includes/class-ecwid-admin.php:57 ecwid-shopping-cart.php:2056 msgid "Setup" msgstr "Einrichtung" #: includes/class-ecwid-admin.php:47 msgid "%s shopping cart settings" msgstr "%s-Warenkorb-Einstellungen" #: includes/class-ecwid-nav-menus.php:132 #: includes/class-ecwid-nav-menus.php:361 #: includes/class-ecwid-nav-menus.php:364 #: includes/class-ecwid-nav-menus.php:372 includes/class-ecwid-admin.php:206 #: includes/class-ecwid-admin.php:207 includes/class-ecwid-admin.php:220 #: includes/class-ecwid-admin.php:221 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:63 #: includes/class-ecwid-admin-storefront-page.php:257 #: ecwid-shopping-cart.php:1657 msgid "Store" msgstr "Shop" #: ecwid-shopping-cart.php:1306 msgid "<a %s>Online store powered by %s</a>" msgstr "<a %s>Onlineshop powered by %s</a>" #: includes/class-ecwid-admin.php:489 msgid "Sell on Facebook" msgstr "Auf Facebook verkaufen" #: templates/admin/simple-dashboard.php:48 ecwid-shopping-cart.php:1094 msgid "Visit storefront" msgstr "Schaufenster besuchen" �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/languages/ecwid-shopping-cart-es_AR.mo������������������������������������������0000644�����������������00000225044�15122273603�0017564 0����������������������������������������������������������������������������������������������������ustar�00�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������e�����D��5��l&������@3�����A3��H���Y3�����3�����3�����3�����3�����3�� ���3��.���3�� ���4�� ��� 4�����,4�����J4�����e4����4�����g6��B���6�����6�����6�����6�����7��$���97�����^7�����r7�����7�����7��/���r8�� ���8�� ���8�����8�����8�����8�����8�����9��#���%9�� ���I9�����T9�����o9�����~9�� ���9�� ���9��>���9��"��� :�����-:�����:��k���:��K���h;��S���;��A���<��R���J<��G���<��4���<�� ���=�����&=�����/=��&���A=�����h=��T���{=�� ���=�����=�����=�����=�����>�����>�����#>�� ���*>�����8>�����?>�� ���G>�� ���S>�� ���`>�����l>�����>��4���>�� ���>�����>�����>�����>��X���>�� ���V?�����`?��/���g?��,���?�����?�����?�����?�� ���?�� ���?�����?�� ���?����� @�����@�����,@�����A@�����[@�����{@�����@�����@�����@�����@�����@�����@��.���@�����A�����5A��D���LA�����A�����A�� ���A�� ���A�����A�����A�����A����� B����� B��x���3B�����B�� ���B�����B�� ���B�����B�����C�����C�����*C�� ���=C�����JC��5���\C��h���C�����C�����D�� ���D�� ���D��5���D�����E�� ���E��x���%E��i���E�����F�����F�����4F�����QF�����bF�����F�� ���F�����F�����G�����$G��"���7G��#���ZG��/���~G�� ���G�� ���G�����G�����G�����G�����G�����H�����H�����-H�����?H��!���WH�����yH�����H��6���H��!���H�����H��*���I��%���:I�����`I��'���vI�����I�����I��,���I�����I��q���J��s���yJ��#���J��H���K��O���ZK��1���K��s���K�� ���PL�����\L��v���L�����uM��$���zM�����M�����M�����M�� ���M�����M�����M����� N��s���N�����N�����N�����N��=��N�����P����P����Q�����R�����R����� S�����S�� ��� S�� ���.S�� ���;S�� ���FS�� ���TS�����^S�����S�����T�����T�����T��B���T��$���)U�����NU�����VU�����mU�� ���U�����U�����U�� ���U�����U�� ���U��(���U�����V�� ���V�����V�����#V��.���V�����W��D���W��h���%X�����X��_���X��C���X�����7Y�����IY��/���_Y��/���Y�����Y��/���Y��(���Z�����-Z��9���GZ��I���Z��2���Z��"���Z��:���![�����\[��"���t[��!���[�����[�����[�����[�����[��$��� \��*���1\��B���\\�����\�� ���\�����\�� ���\�����\��+���\�����]��-���,]��P���Z]�����]��#���]��'���]��)��� ^�� ���7^�����X^��%���g^��+���^��+���^�����^�����_�����_�����!_�� ���2_��$���?_��9���d_��%���_��:���_�����_�����`�����`�����&`�����(`�� ���=`�� ���K`�� ���Y`�� ���c`�����o`�����`�����`�� ���`�����`�����`�� ���`�����`�����`�� ���`�����`�����oa�����a�����a��S���a�����a��'���a��[���'b�� ���b�����b�� ���b�����b�� ���b�� ���b�����b�����b�� ���b��9���b�����c�� ���:c�� ���Dc�� ���Nc�� ���Xc�����bc�����wc��I���Jd�����d�����d�����d�� ���d�� ���d�� ���e�����e�� ��� e�����-e�����@e�����Ue�����]e�����de�����je�����if��#���Og�����sg�� ���g�����g�����lh�����th�� ���i�� ���i�����i�����%i��O��*i��4���zj�����j�� ���j�� ���j�����j�����j�� ���j�����j�� ����k����� k�����k�����'k�����:k�����Rk�� ���jk�����vk�����k�����k�����k��+���k�����k�� ��� l�����l�����*l�����Bl�����al�� ���xl�����l��I���l��'���l�����m�����m�����$m�����=m�����Em��#���Xm�� ���|m�����m�� ���m�����m�����m�����m��"���m�����m��%���n�� ���4n�����>n�����Vn�����en�����n�����n�����n�����n�����n�����n�����n��*���n�� ���n�����n�����n�����o�����o�����/o�� ���8o�����Co�����So�����do�����vo�� ���o��"���o�����o�����o�� ���o�����o�����o�����p����� p�����p�� ���"p�����0p��#���Kp�����op�����p�����p�����p�����p�����p��V���p�� ���Bq�� ���cq�����qq�� ���q�����q��&���q��(���q�����q�����r�� ���&r�����2r�� ���Br�� ��cr�� ���ns�����ys��(���s��*���s����s�� ���ow�� ���zw�����w�����w��.���$x�����Sx�����Yx�����jx�����x�����x�����x�����x�����x�����y�����z�����0z�� ���Az�����Lz�����\z�����rz�����z�����z�����z�����z�����z�����z�� ���z�����{�����{�����${�����4{�����I{�� ���O{��/���Z{��N���{�����{�� ���{��4���{�����|��=���|�����}��-���}�����}��%���~��M���~�������P�����H���h��P��������������� ����� ���"�����/�����A�����H�����ۀ������� ��4��E��>�������]��������l��%��^��*����*����y���ڊ��>���T�������h���5��L���������� ������������������,�����5�����<�����P�����l�����|�������������������������ԍ����������������� �����!��� ��j���B����������E��^���ŏ�����$�����,�����F�� ���V�����c������� ���������C����B����k���@���������������V�� ������0���!��^���R�������:���Ę��>��������>�����N�����j�� �����2�����?���Ù����������֚������������y�����A��������Q�����o������:��������J�����_�� �����"��������Þ��"���ߞ��H�����)���K�����u�������&�����(���ן���������������� �����4����G�����$��e���:��'��������Ȣ�� ���ˢ�����֢�� ����������5����� ���M�� ���Y�����f�������,�������̣�����W��B���v��!��������ۦ��!����������0���=�����n����������������*���������������(�����!���1�����S��*���p�������+����� �����!����������6���)��1���`�������C�����/����������!��������2��e�����n���&��Z�����o�����^���`��R�������������,�����5��5���O�������h����� ��� �� �����!���!��)���C�����m�����}�������������������������������� ���Ӱ������������:��������O�� ���`�����n�������`����� ����� �����=�����9���W�������������������������β�� ����� ����� �����%�����!���(�����J��5���j��(��������ɳ��%���ҳ�������!���������"�����2��C���B��(����������g���ϴ�����7�����Q��.���j�������������������������ҵ������������%�����!���Ŷ�� �����!�������������-�����J�����e�� ����������8�����j��������O������� ��������(��I���7��$���������������x���@�������'���Ѻ��5��������/�����G�������������������������6��9���U��;�����0���˼���������������,�����4�����H�����b�����u�����������������2�����!�����#���5��I���Y��+��������Ͼ��6�����/���%�����U��2���s��&��������Ϳ��E��������2�����D�������*���c��P�����`�����:���@�����{�� ��� ���������������U��3���[������������'���������������5��������D�����`��,�����+��� ��$���L��t��q�������A����h�������6��)���R�����|����������������� �����$�������������������������$����������Y�����*���?�����j�����r�����������������%������������� �� ���$��4���/�� ���d�����p������������;����������D�����g��������l��p���t��Q��������7�����K��]���c��>�����������D�����1���_�������I�����g�����/���[��$�����7����������0�����%���8��"���^������������%�����/�����7�����@���1��.���r�������#����� ����������)����������>���,��h���k��!�����%�����1�����3���N��'����������(�����)�����)��������B�����a�����������������-�����E�����-���+��8���Y������� ��������������� ����������������������� �����7�����J�����R�����[�� ���m�����w������������������������������}������������s��������*��/���E��q���u������������ ��������&�� ���-�� ���7�� ���A�����L�� ���S��A���_��#��������������� ����� ����������)����c���H������� �����!���������� ��������+��#���<�����`�����q����������������������I���������%��������(�� ���:�����G����������$���������������������������9���������� ����� ����� ����� ��� ����������*�����1�����B�����K�����f��#�����%��������������� ����� �����+���5��7���a��"���������������*�����1�����$���C�����h�� ���}��a�����0�������������/�����?�����^�� ���g��4����� ������������������������������5���-�����c��(����� �����"����������"������������������ �����"�����&�����-�����>��-���F�����t�����������������"���������������������������������2�����E��0���T��&��������������������������������� ����������#��"���6��+���Y�������/�����!����������+��������(�����<��(������������������ ��$���;��8���`��8�����)�����#�������� �����2��)���N��M��x�������$�����2�����L���-��,��z�� ��������������������?���������������!�����#��������7�����V�����u��������������3�����S�����l�� �������������������������$�����$���+�����P�����n�������������������������������������G�����W���C������������8����������Y����������:���z�����'����_��������X���&�^����U�������4����<� ���Q� ���^����l������������M�����#��������� �u���= ��� �@�� �@���U��H�����P���:�����~���:�a�����������1����E����]����v� ��������$������������ ���� ��������,���6����c������������� ����#���������������(�]���� ��� ��������0� ���I����W�����V��&����}���U�`������H�+�����������'��� �2��� �^����!����_!�A���v!�G���!�����"����"�$���6"� ���["�8���g"�;���"�5��"� ���$����3$����$����$�R���%����%���� &���-&�[��� (����e(� ���}(����(�"���(����(�"���(�H���(�)���9)����c)�(���~)����)����)����)����)����)����*��������I����������������k������R��W��y����$��%���������������������������������������#�����y���R��#��������J���Z���������?���B��^��>������������������������� ��� ��3����1�����U������>�������K��q����������������������-���������������������v���8������:���/������g��d�����������������S��?�����������������������'���������,������������j��Z��������P���������W������������S���������]����������T����������� �������6�������������������r�������������c��9����������,������������������k��������������%���������������������������������������������L���"�������a����������W��t�������������������}��.������ ��$������K������G���������~���������������0������w������������E��������7����������������������������Q��������F������������������:��\�����������������O�����X��'��*��3������1������ ���������������������u������������9�����E�����������C�����������������������������?������8��a��_���b�������L������@��&������*��I��C���J�����Y���������D������������$���������;��F���������N������G������'���������������0�����@�����^��������c�����������������u����>��:��������.�����������M��j���[��S����������������4������� ������������H�������������@���������������K�����]���������P���&�������������������%���� ��c������h��X���A��������#�����������z�������3�����(����������������������������������������������Q��������e�������������-����������i���������D����p�������!��������������(������������X��5����7���������=��������������;������N���������P������������������T��������������\������Z����������������������&����� ��������� ���`�������|�����������`������������<���������e���+�������A�����=����������������������)�������Q������������������������f��!����� ���b��a���M��{�������<��7�������������������������������������H��������6��O��s���`����������9�����*���������-��}���"���������r���������0��������������{������������������������������������l��H����������v����d��/����� ��]���t���p�����2�����������d��������g������U���������C�������w���������[���l������������������������<��������� ���o���1��� ����������V��f������N�� ��E��������������������������������� �����������������������/������,��������~�����������������������!������[����n�����������_��"�����(�������2���J��x��h���_���� ��������o������M������4��=��8������������2����� ��4������������m���������������������������5��n��I���;�����)������6��L��V������������+����+��A�������������������������Y��B��F������ �������)��������m��i�����������5���^������|���z���������������������U����������x�����������\����q������������O���������������V����������b���������������������������������������Y�������������.�����D������������������B�������G��s�������������R�����T����e���������� Choose another product� Thank you very much for contacting us! We will get back to you shortly.�"In stock" label�%s�%s Blog�%s Shopping Cart�%s Store�%s Store Page�%s plugin doesn't work well with my "%s" theme�%s product�%s products�%s products and %s categories�%s products and categories�%s shopping cart settings�%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site.�%s — Advanced settings�(You will be able to confirm the changes before the actual import)�2 columns, image on the left�2 columns, image on the right�3 columns, image on the left�3 columns, image on the right�<a %s>Online store powered by %s</a>�<a %s>Reconnect</a>�<a href="admin.php?page=�<b>%s</b> categories�A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use "/shop" or "/products".�Action required: please connect your %s account�Add Product�Add Store�Add Store Page to Menu�Add a category page�Add a product page�Add a search and filters page�Add a store page�Add an Online Store to Your Website�Add border�Add cart and checkout page�Add categories�Add store page to the site menu�Add storefront (product listing)�Add to Menu�Add your %s store to the website and start selling in minutes.�Add your store to other site pages�Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href="%s" target="_blank">WordPress Settings > Reading</a>�Additional store pages�Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>�Adds a cart widget for customer to see the products they added to the cart.�Adds a compact cart widget for customer to see the products they added to the cart.�Adds a shopping cart widget to the top right corner of your site.�Adds root categories list to the sidebar to let your customers navigate the store.�Adds vertical categories block to let the customer navigate your store.�Adjust your store design to fit your business needs.�Admin Label�Advanced�Advanced settings�After import, your %s store will have �All Sales Channels�Along with the store catalog, you can add other widgets and texts to the store page.�Appearance�Apps�Available qty in stock�Back to Store Settings�Background color�Bag�Basket�Before You Go�Border�Border:�Bottom left�Bottom right�Breadcrumbs�Browse all products.�Browse by Category�Bulk import products and categories to your %s store�Button color�Buy Now�Buy Now Button�Buy now buttons�By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>.�CSS Class�CSS ID�Can you share the name of the plugin you chose?�Can you share your feedback? What was wrong?�Cancel�Cart�Cart and Checkout�Cart icon�Cart icon:�Catalog�Categories�Category�Category List Appearance�Category card layout�Category shown by default�Category thumbnail aspect ratio�Category thumbnail size�Center�Center align on a page�Change�Change store content�Choose Product�Choose product�Choose product properties to display in widget�Choose the main store page�Choose widgets to show�Click the connect button to get rights to update the product catalog�Color settings�Complete Setup�Complete setup and start selling�Configuration�Congratulations!�Connect�Connect Your Store�Connect your %s store�Connect your store�Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again.�Contact Support�Contact us�Content�Copying products and categories.�Create Cart Page�Create Category Page�Create Product Page�Create Search Page�Create Store�Create Store Page�Create a landing page featuring one of your products.�Create a new %s account which you will use to manage your store and inventory. The registration is free.�Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website.�Create new account�Create store�Current Page�Current URL slug: /<span data-ec-store-slug>%s</span>�Customer Single Sign-On�Customers�Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers.�Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout.�Customize design�Customize store appearance�Customize store page address�Customize widget�Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand.�Cyan bluish gray�Dashboard�Default category�Default category ID�Default product_ID�Default view mode on product pages�Default view mode on search results�Deleted products synchronized: %1$s out of %2$s�Demo Store�Demo store�Design�Design and content�Detect automatically�Disconnect store�Display a buy button�Display breadcrumbs�Display cart icon�Display categories menu�Display categories navigation bar�Display category page�Display footer menu�Display product page with description and a buy button�Display product with a buy button�Display search box�Display search page with filters on a side�Display shopping bag link and summary�Display shopping cart�Display shopping cart and checkout page�Display sign in link�Display sort by link�Display the shopping cart icon on site pages�Displayed product�Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site.�Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop.�Displays a list of random products.�Displays a random product from your store to attract customer attention.�Displays a simple search box for your customers to find a product in your store�Displays storefront: product listing and checkout�Displays the latest added products from your store. Show new products to returning customers to drive repeat sales.�Do not show�Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid.�Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site.�Done�Download <a href="%s">import log</a>�Download log file�Draft�E.g. How to set up shipping�Ecwid Badge�Ecwid Ecommerce�Ecwid Ecommerce Shopping Cart�Ecwid Menu Item�Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center�Ecwid e-commerce widgets�Ecwid ecommerce solution�Ecwid free shopping cart�Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">More details.</a>�Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up.�Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href="%s">TemplateMonster themes</a>�Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">More details.</a>�Ecwid shopping cart�Ecwid shopping cart widget�Edit�Edit Appearance�Edit Category�Edit Product�Edit Store�Edit URL Slug�Edit page�Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page.�Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space.�Enter your Store ID�Enter your Store ID here:�Extensions for your Store�Feature a specific store category on a separate page of your site.�Feature your products in the sidebar�Filters�Filters panel position�Find your Store ID�First Page�Frequently Asked Questions�Get %s mobile app�Go to Pages�Go to Your %s Products�Greetings!�Greetings! Your %s plugin is now active.�Grid�Grid view�Help�Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars.�Help customers find your store on the website.�Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products.�Here you can create the content that will be used within the module.�Here, we will help you uploading your product catalog to %s from another shopping cart or other sources.�Hide�Highlight products, categories, and other store pages by adding them to separate website pages.�Highlight your best sellers or new products in the website sidebar.�Horizontal indent�Horizontal thumbnails�How can I add a cart widget to my site sidebar?�How can I manage my store from a mobile device?�How can we help you?�How do I add store categories to the site menu?�How do I put my products in the sitemap?�How much does Ecwid cost?�How secure is this plugin? Is my store PCI DSS compliant?�How to add a single product with the add to bag button to the site pages?�How to set up a storefront on Facebook with Ecwid?�I already have an account, sign in�I couldn’t find a WordPress theme that goes well with %s�I found a better plugin�I have a problem using this plugin�I have a problem with my %s store�I use this WordPress theme: %s�Icon�Icon and item count�Icon, label and item count�Icon, label, item count and subtotal�Icon, label, item count, subtotal and link�If you have a moment, please let us know why you are deactivating:�Image and title on mouse over�Image feed�Image gallery layout�Image only�Import�Import Your Products From Woocommerce to %s�Import completed�Import completed. <a href="%s">Run again.</a>�Import creates new products and update the existing products with matching SKUs.�Import is in Progress�Import my products from WooCommerce�Import product catalog from WooCommerce�Import product catalog from other sources�Import products to your %s store�Import summary�Import your WooCommerce catalog to %s�Import your products from WooCommerce to %s�Import your products from Woocommerce to %s�Imported <b>%s</b> products�Importing %s of %s items�Insert�Insert into page�Instant site�Integration with search on your site�Is it possible to display my store on the site home page?�Is there a WordPress theme for Ecwid?�It's a temporary deactivation. Please do not ask me again.�Item count only�Justify�Knowledge Base�L�Label and item count�Landscape 3:2�Landscape 4:3�Last Page�Last update�Latest Products�Layout�Layout:�Learn more�Left�Light green cyan�Link color�Linked product�List�List view�Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL.�Luminous vivid amber�Luminous vivid orange�M�Make your store accessible from the site menu so your customers can easily find it.�Manage Sidebar�Manage Store on iPhone, iPad or Android�Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page.�Manage store�Manage storefront�Marketing�Mobile�My Account�My Profile�My Sales�Name�Navigation�Need help importing your products from WooCommerce to %s?�Never show this message again�Next Page�Next page�No Thanks�No border�Not synchronized yet�Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The "Show on store pages" and "Show when empty" options will apply to the cart widget on site when published�Nothing found for <span class="empty-page__term">"{{ data.term }}"</span>�Number of categories per row�Number of products per page�Number of products to show�On the left�On the right�Online Store�Online Store Apps�Online store�Open control panel�Open store dashboard�Options�Orders�Other�Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target="_blank" href="%s">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans.�Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">our customer support team</a>.�Page with that name already exists.�Pale cyan blue�Pale pink�Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>�Payment�Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers.�Pick Category�Pick Product�Picture�Pill�Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target="_blank">"Billing & Plans"</a></nobr> page in your Ecwid store control panel.�Please subscribe to a paid plan to get this feature.�Plugins for Ecwid�Portrait 2:3�Portrait 3:4�Position�Preview�Previous Page�Price�Price color�Product�Product Card Large�Product Card Small�Product List Appearance�Product Page Appearance�Product SKU�Product Search�Product Search Box�Product Search and filters�Product card text align�Product catalog will be shown automatically�Product page layout�Product price�Product quantity�Product sidebar content�Product thumbnail aspect ratio�Product thumbnail size�Product title�Products�Products are successfully synchronized. The product pages are up to date.�Products synchronized: %1$s out of %2$s�Promote your store�Provide access.�Provided by <a %s>%s</a>�Publish�Publish Store Page�Publish the page to use this option�Published�Quantity�Questions?�Random Product�Random Products�Rate %s at WordPress.org�Re-connect to Enable Control Panel�Recently Viewed Products�Recommendations for Your Online Store�Rectangle�Refresh categories list�Register at %s�Report a problem with the store�Reports�Right�S�SKU�Sales�Sales channels�Save�Save and connect your %s store to the site�Save changes�Search�Search and Filters�Search products�Search the Knowledge Base�See more�Select All�Select category�Selected Product�Selected category�Sell on Facebook�Send Message�Send a message to our support team�Send message failed�Set Up Your Store�Set manually�Set up your store�Settings�Setup�Shipping & Pickup�Shop�Shopping Cart�Shopping Cart (deprecated)�Shopping Cart Floating (deprecated)�Shopping Cart Icon�Shopping Cart Mini (deprecated)�Shopping Cart Widget�Show�Show additional image on hover�Show categories�Show customers that they can use a search and filters to find desired products faster.�Show description under the image�Show minicart�Show on all pages�Show on hover�Show on store pages�Show price inside the "Buy now" button�Show price inside the «Buy now» button�Show product card border�Show product thumbnails�Show search�Show when empty�Show your store on the home page�Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again.�Small icon�Small icon and item count�Some of the items could not be imported.�Sorry we're having technical difficulties.�Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: "The Wordpress function wp_remote_post() failed to connect a remote server because of some error: "%s". Seems like HTTP POST requests are disabled on this server". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>.�Square 1:1�Start Import�Status�Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store.�Still have questions about Ecwid? Let us know!�Store�Store Categories�Store Categories Menu�Store Category Page�Store Front Page�Store Home Page�Store ID�Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the "Dashboard" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration.�Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>.�Store Link Title�Store Navigation�Store Page�Store Page Link�Store Root Categories�Store appearance�Store elements�Store management�Store page content�Store page on your site�Store root category�Store with Categories Menu�Storefront�Subject�Submit & Deactivate�Switch to draft�Synchronize products�Table�Table view�Take a few simple steps to complete store setup�Take advantage of powerful apps and extensions designed to enhance your store.�Text�Text color�Thank you for choosing %s to build your online store�The block is hidden because you don't have categories in your store. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Add categories.</a>�The category that is shown by default on the Store Front Page�The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps.�The plugin doesn't support the feature I want�The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href="%s" target="_blank">adjust the cart icon appearance</a>.�The store is not visible on your site�The store top-level categories are automatically added to this drop-down menu�Themes for Ecwid�This import will copy your WooCommerce products and categories to your %s store.�This is a demo store. Create your store to see your store products here.�This will change the label of the module in the builder for easy identification.�Title�Title on image�Title only�Title or SKU�Title under image�Title:�To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings.�To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>.�To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>�To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the "Add product" dialog.�To create sitemap for your Wordpress site we suggest using <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> or <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target="_blank" href="https://www.ecwid.com/pricing">paid Ecwid users</a>.�To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission.�To enable this feature, the plugin needs a permission to read your store product information.�To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">How to use it.</a>�To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>�To manage your store, go to <a %s>the Store Dashboard page</a>�To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission.�To show your storefront instead of the demo store, connect your existing %s account or create a new one.�To start selling, add a page to your site where the storefront will display.�Top left�Top right�Try another search.�Type in your message here�URL Slug�Update�Update your catalog�Upgrade to get this feature�Vertical indent�Vertical thumbnails�Very dark gray�Very light gray�View Store Page�View demo store page�View store page�Visit storefront�Vivid cyan blue�Vivid green cyan�Vivid red�Want to connect another %s store?�Warning: some of your online store features are disabled. Please contact your hosting provider to resolve.�We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?�We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you.�We're synchronizing your products. This may take a few minutes. Please do not reload the page.�Website�What feature do you need?�What was wrong?�What's next?�While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site.�Wholesale prices�You can add product search box, cart widget and more on the <a href="%s">"Appearance / Widgets page"</a> here in your site admin. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">More details.</a>�You can add the entire storefront, categories, products, or "Buy now" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block.�You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open "Appearance > Menus" in your WordPress control panel and add the "Store with Categories Menu" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site.�You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">More details.</a>�You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel.�You can display your store on the site main page. Adjust the "Reading" settings of your site as described in our <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">Help Center.</a>�You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href="%1$s">Appearance → Customize → %2$s</a>” menu to enable it.�You can enable filters in the store settings: (“<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Settings → Product Filters</a>”).�You can send a new request here.�You have not viewed any product yet. Open store.�You will be able to sign up through your existing Google, Facebook or PayPal profiles as well.�Your %s store has �Your %s store is connected<br /> to your WordPress website�Your %s store is now connected<br /> to your WordPress website�Your Storefront�Your WooCommerce store has �Your email has been sent�Your product�Your store Control Panel. Right here in WordPress.�Your store has been created. Preparing your store dashboard ...�Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar.�Your store is almost ready!�Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display.�Your store page�Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders.�Your store page is published. Customers can browse your store at �Your store will be shown here�Your store will be shown here!�Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data.�[%s] WordPress plugin deactivation feedback (store ID: %s)�customize appearance�gutenberg-product-blockContent�gutenberg-store-block-stubStore�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�or <a %s>Browse the Help Center�product-browser-attributesProduct SKU�product-browser-attributesProduct price�select product�selected product�vc-tabOnline store�«Buy now» button�PO-Revision-Date: 2020-10-12 12:46 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: Poedit 2.4.1 Language: es Project-Id-Version: temporary-strings X-Crowdin-Project: temporary-strings X-Crowdin-Project-ID: 295314 X-Crowdin-Language: es-ES X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po X-Crowdin-File-ID: 988 Language-Team: Spanish Last-Translator: � Elegir otro producto� ¡Muchas gracias por ponerse en contacto con nosotros! Nos pondremos en contacto con usted en breve.�Etiqueta de productos «En existencia»�%s�Blog de %s�Carrito de compras de %s�Tienda de %s�Página de la tienda de %s�El complemento %s no funciona bien con mi tema «%s»�%s producto�%s productos�%s productos y %s categorías�%s productos y categorías�Configuraciones del carrito de compras de %s�%s almacena los datos de sus productos de forma segura en la nube. Las páginas de productos se muestran sobre la marcha cuando un cliente navega por su tienda. Por lo que, básicamente, los productos no se almacenan en el sitio web, por eso la búsqueda en el sitio web no encuentra páginas de productos mientras busca en las páginas del sitio web y en las publicaciones. Esta opción habilita un modo de almacenamiento local: los productos se almacenarán tanto en la nube como en su sitio web. Los resultados de la búsqueda en el sitio web incluirán las páginas de productos, así como las páginas o publicaciones habituales de su sitio web.�%s — Configuración avanzada�(podrá confirmar los cambios antes de la importación definitiva)�2 columnas, imagen a la izquierda�2 columnas, imagen a la derecha�3 columnas, imagen a la izquierda�3 columnas, imagen a la derecha�<a %s>Tienda en línea con tecnología de %s</a>�<a %s>Volver a conectar</a>�<a href="admin.php?page=�<b>%s</b> categorías�Un «slug» es la última parte de una URL. Puede crear un «slug» personalizado para la página de su tienda. Es mejor que sea corto, ya que los clientes y los motores de búsqueda prefieren las URL cortas. Por ejemplo, utilice «/tienda» o «/productos».�Acción requerida: conecte su cuenta de %s�Añadir producto�Añadir tienda�Añadir la página de la tienda al menú�Añadir una página de categoría�Añadir página de productos�Añadir una página de búsqueda y filtros�Añadir una página de tienda�Añadir una tienda en línea a su sitio web�Añadir borde�Añadir carrito y página de pago�Añadir categorías�Añadir la página de la tienda al menú del sitio web�Añadir escaparate virtual (listado de productos)�Añadir al menú�Añada su tienda de %s al sitio web y comience a vender en minutos.�Añada su tienda a otras páginas del sitio web�Añada su escaparate virtual a la página de inicio del sitio web para que sea más notable. También puede modificar la configuración de la página de inicio del sitio web en <a href="%s" target="_blank">Configuración de WordPress > Lectura</a>.�Páginas adicionales de la tienda�Además, puede añadir controles de la tienda a la barra de herramientas de su sitio web mediante <a %s>«widgets» nativos de WordPress</a>.�Añade un «widget» de carrito para que el cliente vea los productos que se han añadido al carrito.�Añade un «widget» de carrito compacto para que el cliente vea los productos que se han añadido al carrito.�Añada un «widget» de carrito de compras en la esquina superior derecha de su sitio web.�Añade la lista de categorías raíz a la barra lateral para que sus clientes puedan desplazarse por la tienda.�Añade un bloque de categorías verticales para permitir que el cliente navegue por su tienda.�Ajuste el diseño de su tienda para que se adapte a las necesidades de su negocio.�Etiqueta de administrador�Avanzado�Configuraciones avanzadas�Después de la importación, su tienda de %s tendrá �Todos los canales de venta�Junto con el catálogo de la tienda, puede añadir otros «widgets» y textos a la página de la tienda.�Apariencia�Aplicaciones�Cantidad disponible en existencia�Regresar a la configuración de la tienda�Color del fondo�Bolsa�Cesta�Antes de que se vaya�Borde�Borde:�Abajo a la izquierda�Abajo a la derecha�Migas de pan�Explorar todos los productos.�Buscar por categoría�Importar en masa productos y categorías a su tienda de %s�Color del botón�Comprar ahora�Botón «Comprar ahora»�Botones de «Comprar ahora»�Al continuar, acepta los <a %s>Términos de servicio</a> y la <a %s>Política de privacidad</a>.�Clase CSS�ID de CSS�¿Podría compartir el nombre del complemento que ha elegido?�¿Podría compartir su opinión? ¿Qué fue lo que pasó?�Cancelar�Carrito�Carrito y pago�Icono del carrito de compras�Icono del carrito:�Catálogo�Categorías�Categoría�Apariencia de la lista de categorías�Diseño de la ficha de categoría�Categoría mostrada por defecto�Relación de aspecto de la miniatura de la categoría�Tamaño de la miniatura de la categoría�Centrado�Centrar la alineación en una página�Cambiar�Cambiar el contenido de la tienda�Elegir producto�Elegir producto�Elija las propiedades del producto para mostrarlas en el «widget»�Elegir la página principal de la tienda�Elija los «widgets» a mostrar�Haga clic en el botón «Conectar» para obtener los permisos para actualizar el catálogo de productos�Configuración de colores�Completar configuración�Complete la configuración y comience a vender�Configuración�¡Enhorabuena!�Conectar�Conecte su tienda�Conecte su tienda de %s�Conecte su tienda�Error de conexión: después de hacer clic en el botón, debe iniciar sesión y otorgar los permisos para poder utilizar nuestro complemento. Inténtelo de nuevo.�Ponerse en contacto con la asistencia�Póngase en contacto con nosotros�Contenido�Copia de productos y categorías.�Crear página del carrito�Crear página de categorías�Crear página de productos�Crear página de búsqueda�Crear tienda�Crear la página de la tienda�Cree una página de aterrizaje con uno de sus productos.�Cree una nueva cuenta de %s que utilizará para gestionar su tienda e inventario. El registro es gratuito.�Cree una nueva tienda o, si ya tiene una cuenta de %s, conéctela. El complemento le guiará a través de la configuración de la tienda y le ayudará a publicarla en su sitio web.�Crear una nueva cuenta�Crear tienda�Página actual�«Slug» actual de la dirección URL: /<span data-ec-store-slug>%s</span>�Inicio de sesión único del cliente�Clientes�Los clientes no pueden ver la página de su tienda porque está en un borrador. Publique la página para que esté disponible para sus clientes.�Los clientes van a la página del carrito para consultar los productos que han añadido al mismo y proceder con el pago.�Personalizar el diseño�Personalizar la apariencia de la tienda�Personalizar la dirección de la página de la tienda�Personalizar «widget»�Personalice la apariencia de su tienda para que se ajuste a las necesidades de su negocio. Cree la apariencia para su tienda que más se parezca a su marca.�Gris cian azulado�Panel�Categoría predeterminada�ID de categoría predeterminada�ID del producto predeterminado�Modo de vista predeterminado en las páginas de productos�Modo de vista predeterminado en los resultados de búsqueda�Productos eliminados sincronizados: %1$s de %2$s�Tienda de demostración�Tienda de demostración�Diseño�Diseño y contenido�Detectar automáticamente�Desconectar tienda�Mostrar un botón de compra�Mostrar migas de pan�Mostrar icono del carrito�Mostrar el menú de categorías�Mostrar la barra de navegación de las categorías�Mostrar la página de categorías�Mostrar el menú del pie de página�Mostrar la página de productos con la descripción y un botón de compra�Mostrar el producto con un botón de compra�Mostrar el cuadro de búsqueda�Mostrar página de búsqueda con los filtros a un lado�Mostrar enlace y resumen de la bolsa de compras�Mostrar el carrito de compras�Mostrar el carrito de compras y la página de pago�Mostrar el enlace de inicio de sesión�Mostrar «ordenar por enlace»�Muestre el icono del carrito de compras en las páginas del sitio web�Producto mostrado�Muestra un enlace a la página de la tienda en la barra lateral para que el cliente acceda rápidamente a su tienda desde cualquier página del sitio web.�Muestra una lista de productos vistos recientemente por el cliente para volver fácilmente a los productos que vieron en su tienda.�Muestra una lista de productos aleatorios.�Muestra un producto aleatorio de su tienda para atraer la atención del cliente.�Muestra un cuadro de búsqueda simple para que sus clientes encuentren un producto en su tienda.�Muestra el escaparate virtual: listado de productos y pago�Muestra los últimos productos añadidos de su tienda. Muestre nuevos productos a los clientes existentes para impulsar las ventas repetidas.�No mostrar�¿Le gusta Ecwid y quiere ayudarlo a crecer? Puede añadir este elegante distintivo «Powered by Ecwid» en su sitio web para mostrarles a sus visitantes que es un usuario orgulloso de Ecwid.�¿Le gusta su tienda de %s en línea? Apreciaríamos si comparte su opinión y vota por el complemento en el sitio de WordPress.�Hecho�Descargar <a href="%s">registro de importación</a>�Descargar archivo de registro�Borrador�Por ejemplo, cómo establecer el envío�Distintivo de Ecwid�Comercio electrónico Ecwid�Carrito de compras del comercio electrónico de Ecwid�Elemento del menú de Ecwid�Ecwid le permite subir sus productos en forma de archivo CSV. Obtenga más información sobre esta herramienta en el centro de asistencia de Ecwid�«Widget» de comercio electrónico de Ecwid�Solución de comercio electrónico de Ecwid�Carrito de compras gratuito de Ecwid�Ecwid cuenta con la certificación PCI DSS Nivel 1, que es el estándar de oro para las soluciones de comercio electrónico en todo el mundo. Esto significa que no tendrá problemas de cumplimiento bancario cuando venda en línea con Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">Más detalles.</a>�Ecwid es un carrito de compras gratuito con todas las funciones. Se puede integrar fácilmente con cualquier blog de Wordpress y se configura en menos de 5 minutos.�Ecwid es compatible con cualquier tema de WordPress. Ya sea un tema gratuito del catálogo de WordPress.org, un tema prémium de un proveedor externo o un tema personalizado; su tienda de Ecwid funcionará bien con cualquiera de ellos. Si desea un tema prémium, le recomendamos <a href="%s">temas de TemplateMonster</a>.�Ecwid ofrece aplicaciones móviles gratuitas para iOS y Android para que pueda gestionar su tienda y vender donde y cuando quiera. Escanee productos, supervise el inventario, gestione las ventas y acepte pagos utilizando su dispositivo móvil como una estación de punto de venta. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">Más detalles.</a>�Carrito de compras de Ecwid�«Widget» de carrito de compras de Ecwid�Editar�Editar apariencia�Editar categoría�Editar producto�Editar tienda�Editar «slug» de la dirección URL�Editar página�Introduzca un ID de CSS opcional que se utilizará para este módulo. Se puede utilizar un ID para crear un estilo CSS personalizado o para crear enlaces a secciones particulares de su página web.�Introduzca las clases CSS opcionales que se utilizarán para este módulo. Se puede utilizar una clase CSS para crear estilos CSS personalizados. Puede añadir varias clases separadas por un espacio.�Introduzca el ID de su tienda�Introduzca el ID de su tienda aquí:�Extensiones para su tienda�Destacar una categoría de la tienda específica en una página separada de su sitio web.�Destaque sus productos en la barra lateral�Filtros�Posición del panel de filtros�Encuentre el ID de su tienda�Primera página�Preguntas frecuentes�Descargue la aplicación móvil de %s�Ir a «Páginas»�Ir a sus productos de %s�¡Saludos!�¡Enhorabuena! Su complemento de %s ya está activo.�Cuadrícula�Vista de cuadrícula�Ayuda�Ayude a los clientes a encontrar su tienda en el sitio web. Añada el enlace de la tienda al menú del sitio web, cree páginas adicionales de la tienda y resalte los productos de la tienda en otras páginas del sitio web y en las barras laterales.�Ayude a los clientes a encontrar su tienda en el sitio web.�Aquí puede gestionar cuántos productos se mostrarán por página. Estas opciones definen valores máximos. Si no hay suficiente espacio para mostrar todas las columnas de productos, %s adaptará el número de columnas para mantener todos los productos.�Aquí puede crear el contenido que se utilizará dentro del módulo.�Aquí, le ayudaremos a subir su catálogo de productos a %s de otro carrito de compras u otras fuentes.�Ocultar�Destaque productos, categorías y otras páginas de la tienda añadiéndolas a páginas del sitio web separadas.�Destaque sus mejores ventas o nuevos productos en la barra lateral del sitio web.�Sangría horizontal�Miniaturas horizontales�¿Cómo puedo añadir un «widget» de carrito de compras a la barra lateral de mi sitio web?�¿Cómo puedo gestionar mi tienda desde un dispositivo móvil?�¿Cómo podemos ayudarle?�¿Cómo puedo añadir categorías de tiendas al menú del sitio web?�¿Cómo pongo mis productos en el mapa del sitio?�¿Cuánto cuesta Ecwid?�¿Qué tan seguro es este complemento? ¿Mi tienda cumple con el PCI DSS?�¿Cómo añadir un solo producto con el botón de «añadir a la bolsa» en las páginas del sitio web?�¿Cómo crear una tienda en Facebook con Ecwid?�Ya tengo una cuenta, iniciar sesión�No pude encontrar un tema de WordPress adecuado para %s�Encontré un mejor complemento�Tengo un problema con el uso de este complemento�Tengo un problema con mi tienda de %s�Utilizo este tema de WordPress: %s�Icono�Icono y total de artículos�Icono, etiqueta y total de artículos�Icono, etiqueta, total de artículos y subtotal�Icono, etiqueta, total de artículos, subtotal y enlace�Si tiene un momento, háganos saber por qué está desactivando:�Imagen y título al pasar el ratón por encima�Canal de imagen�Diseño de la galería de imágenes�Solo imagen�Importar�Importe sus productos de Woocommerce a %s�Importación completada�Importación completada. <a href="%s">Ejecútela de nuevo.</a>�La importación crea nuevos productos y actualiza los productos existentes con las REF correspondientes.�La importación está en progreso�Importar mis productos de WooCommerce�Importar el catálogo de productos de WooCommerce�Importar el catálogo de productos de otras fuentes�Importe los productos a su tienda de %s�Resumen de la importación�Importe su catálogo de WooCommerce a %s�Importe sus productos de WooCommerce a %s�Importe sus productos de Woocommerce a %s�<b>%s</b> productos importados�Importando %s de %s artículos�Insertar�Insertar en la página�Sitio web instantáneo�Integración con la búsqueda en su sitio web�¿Es posible mostrar mi tienda en la página de inicio del sitio web?�¿Existe algún tema de WordPress para Ecwid?�Es una desactivación temporal. No preguntarme de nuevo.�Solo el total de artículos�Justificado�Base de conocimiento�G�Etiqueta y y total de artículos�Horizontal 3:2�Horizontal 4:3�Última página�Última actualización�Últimos productos�Diseño�Diseño:�Más información�Izquierda�Cian verde claro�Color del enlace�Producto vinculado�Lista�Vista de lista�Parece que su sitio web no admite solicitudes POST remotas, las cuales son necesarias para que la API de %s funcione. Comuníquese con su proveedor de alojamiento web para habilitar cURL.�Ámbar vívido y brillante�Naranja vívido y brillante�M�Haga que su tienda sea accesible desde el menú del sitio web para que sus clientes puedan encontrarla fácilmente.�Gestionar la barra lateral�Gestione la tienda desde iPhone, iPad o Android�Gestione productos, supervise las ventas y ajuste la configuración: <nobr>todo sin</nobr> salir de esta página.�Gestionar la tienda�Gestionar escaparate virtual�Mercadotecnia�Móvil�Mi cuenta�Mi perfil�Mis ventas�Nombre�Navegación�¿Necesita ayuda para importar sus productos de WooCommerce a %s?�Nunca mostrar este mensaje otra vez�Página siguiente�Página siguiente�No, gracias�Sin borde�No se ha sincronizado todavía�Nota: cuando está habilitado, el «widget» del carrito siempre se mostrará en la vista previa para que sea más fácil personalizarlo. Las opciones «Mostrar en las páginas de la tienda» y «Mostrar cuando esté vacío» se aplicarán al «widget» del carrito en el sitio cuando se publiquen�No se ha encontrado nada en relación con <span class="empty-page__term">«{{ data.term }}»</span>�Número de categorías por fila�Número de productos por página�Número de productos para mostrar�A la izquierda�A la derecha�Tienda en línea�Aplicaciones de la tienda en línea�Tienda en línea�Abrir el panel de control�Abrir el panel de la tienda�Opciones�Pedidos�Otro�Nuestros 4 tipos de cuentas varían según la cantidad de productos, los tipos de funcionalidades y el nivel de asistencia. Para obtener más información, consulte nuestra <a target="_blank" href="%s">página de precios.</a><br /><br />Consejo profesional: también puede ahorrar dinero si se suscribe a nuestros planes anuales.�Nuestro equipo ya está trabajando en este asunto. Actualice la página en unos minutos. Si el problema persiste, comuníquese con <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">nuestro equipo de atención al cliente</a>.�Ya existe una página con ese nombre.�Azul cian pálido�Rosa pálido�Parte de los productos no se han copiado a %1$s porque alcanzó el límite de productos en su plan de precios en %1$s. Si desea importar más productos, considere <nobr><a %2$s>actualizar su plan de %1$s.</a></nobr>�Pago�Personalice la apariencia de su escaparate virtual y edite el contenido en la página de la tienda para reflejar su marca y mantenerse conectado con sus clientes.�Elegir una categoría�Elegir un producto�Imagen�Píldora�Tenga en cuenta el número máximo de productos y categorías que puede tener en su tienda de Ecwid. Esta herramienta de importación se detendrá automáticamente cuando se alcance el límite de productos de la tienda. Para conocer el límite actual de la tienda o aumentarlo, consulte la página <nobr><a %s target="_blank">«Facturación y planes»</a></nobr> ubicada en el panel de su tienda de Ecwid.�Suscríbase a un plan de pago para obtener esta función.�Complementos para Ecwid�Vertical 2:3�Vertical 3:4�Posición�Vista previa�Página anterior�Precio�Color del precio�Producto�Ficha de producto ampliada�Ficha de producto reducida�Apariencia de la lista de productos�Apariencia de la página del producto�REF del producto�Búsqueda de productos�Cuadro de búsqueda de productos�Búsqueda de productos y filtros�El texto de la ficha del producto se alinea�El catálogo de productos se mostrará automáticamente�Diseño de la página de productos�Precio del producto�Cantidad de productos�Contenido de la barra lateral de productos�Relación de aspecto de la miniatura del producto�Tamaño de la miniatura del producto�Título del producto�Productos�Los productos se sincronizaron satisfactoriamente. Las páginas de productos están actualizadas.�Productos eliminados sincronizados: %1$s de %2$s�Promocione su tienda�Otorgar acceso.�Proporcionado por <a %s>%s</a>�Publicar�Publicar la página de la tienda�Publique la página para poder utilizar esta opción�Publicada�Cantidad�¿Tiene alguna pregunta?�Producto aleatorio�Productos aleatorios�Tasa de %s en WordPress.org�Vuélvase a conectar para activar el panel de control�Productos vistos recientemente�Recomendaciones para su tienda en línea�Rectángulo�Actualizar la lista de categorías�Registrarse en %s�Informar un problema con la tienda�Informes�Derecha�P�REF�Ventas�Canales de venta�Guardar�Guarde y conecte su tienda de %s al sitio web�Guardar cambios�Buscar�Búsqueda y filtros�Buscar productos�Buscar en la base de conocimientos�Ver más�Seleccionar todo�Seleccionar categoría�Producto seleccionado�Categoría seleccionada�Vender en Facebook�Enviar mensaje�Envíe un mensaje a nuestro equipo de asistencia�Ocurrió un error al enviar el mensaje�Configure su tienda�Configurar manualmente�Configure su tienda�Configuraciones�Configuración�Envío y recogida�Tienda�Carrito de compras�Carrito de compras (descontinuado)�Carrito de compras flotante (descontinuado)�Icono del carrito de compras�Carrito de compras en miniatura (descontinuado)�«Widget» del carrito de compras�Mostrar�Mostrar imagen adicional al pasar el ratón�Mostrar categorías�Muéstreles a los clientes que pueden utilizar la búsqueda y los filtros para encontrar los productos que deseen de forma más rápida.�Mostrar descripción debajo de la imagen�Mostrar minicarrito�Mostrar en todas las páginas�Mostrar al pasar el ratón�Mostrar en las páginas de la tienda�Mostrar el precio dentro del botón de «Comprar ahora»�Mostrar el precio dentro del botón de «Comprar ahora»�Mostrar el borde de la ficha del producto�Mostrar miniaturas de los productos�Mostrar búsqueda�Mostrar cuando esté vacío�Muestre su tienda en la página de inicio�El inicio de sesión único les permite a sus clientes tener un inicio de sesión único para su sitio web de WordPress y su %s. Cuando alguien inicie sesión en su sitio web, también iniciará sesión automáticamente en su cuenta de cliente en la tienda sin necesidad de introducir su correo electrónico y contraseña nuevamente.�Icono pequeño�Icono pequeño y total de artículos�Algunos de los artículos no se pudieron importar.�Le pido disculpas por las dificultades técnicas que estamos experimentando.�Lo siento, hay un problema. Se supone que esta página muestra el panel de control de su tienda; sin embargo, este sitio web de Wordpress no parece poder conectarse al servidor de Ecwid para mostrar el panel de su tienda aquí. Es probable que esto se deba a una mala configuración del servidor; su proveedor de alojamiento web puede solucionarlo. Aquí hay una descripción más técnica del problema, la cual puede enviarle a su proveedor de alojamiento web: «La función de Wordpress wp_remote_post() no pudo conectarse a un servidor remoto debido al error: “%s”; parece que las solicitudes HTTP POST están inhabilitadas en este servidor». <br /><br />No dude en ponerse en contacto con nosotros en <a %s>wordpress@ecwid.com</a> y le ayudaremos a comunicarse con su proveedor de alojamiento web para pedirle que solucione el problema. <br /><br /> Mientras tanto, para gestionar su tienda, puede utilizar el panel de control web de Ecwid en <a %s>my.ecwid.com</a>. Su escaparate virtual está funcionando bien; puede echarle un vistazo aquí: <a %s>%s</a>.�Cuadrado 1:1�Iniciar la importación�Estado�Manténgase conectado con sus clientes. Actualice el contenido de su tienda en cualquier momento para informarles a los clientes sobre las promociones actuales y las novedades de su tienda.�¿Todavía tiene preguntas acerca de Ecwid? ¡Háganoslo saber!�Tienda�Categorías de la tienda�Menú de categorías de la tienda�Página de categorías de la tienda�Página del escaparate virtual�Página de inicio de la tienda�ID de la tienda�El ID de la tienda es un identificador único de cualquier tienda de %1$s, el cual consta de varios dígitos. Puede encontrarlo en la página «Panel» del panel de control de %1$s. El ID de la tienda se enviará en el correo electrónico de bienvenida después del registro.�El ID de la tienda es un identificador único de su cuenta de %1$s. Puede encontrarlo en su panel de control de %1$s en la <a %2$s>página del panel</a>.�Título del enlace de la tienda�Navegación en la tienda�Página de la tienda�Enlace a la página de la tienda�Categorías raíz de la tienda�Apariencia de la tienda�Elementos de la tienda�Gestión de la tienda�Contenido de la página de la tienda�Página de la tienda en su sitio web�Categoría raíz de la tienda�Tienda con menú de categorías�Escaparate virtual�Asunto�Enviar y desactivar�Cambiar al borrador�Sincronizar productos�Tabla�Vista de tabla�Siga unos sencillos pasos para completar la configuración de la tienda�Aproveche las increíbles aplicaciones y extensiones diseñadas para mejorar su tienda.�Texto�Color del texto�Gracias por elegir %s para construir su tienda en línea�El bloque está oculto porque no tiene categorías en su tienda. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Añadir categorías.</a>�La categoría que se muestra de forma predeterminada en la página del escaparate virtual�El primer paso para abrir su negocio en línea: <br />añadamos una tienda a su sitio web de WordPress en <strong>3</strong> simples pasos.�El complemento no es compatible con la función que quiero�El icono del carrito de compras muestra la cantidad de artículos en el carrito y ayuda a los clientes a realizar el pago. Además, puede <a href="%s" target="_blank">ajustar la apariencia del icono del carrito</a>.�La tienda no es visible en su sitio web�Las categorías de alto nivel de la tienda se añaden automáticamente a este menú desplegable�Temas para Ecwid�Esta importación copiará sus productos y categorías de WooCommerce a su tienda de %s.�Esto es una tienda de demostración. Cree su tienda para ver los productos de su tienda aquí.�Esto cambiará la etiqueta del módulo en el creador para una fácil identificación.�Título�Título en la imagen�Solo título�Título o REF�Título debajo de la imagen�Título:�Para añadir funciones adicionales a su tienda, arrastre y suelte los elementos de la tienda de %s en su sitio web. Una vez que haya terminado, puede volver a modificar su configuración.�Para añadir su tienda a su sitio web, introduzca el ID de su tienda de %1$s en el campo a continuación. Si aún no tiene una cuenta de %1$s, cree una gratis en el <a %2$s>sitio web de %1$s</a>.�Para permitir que %s inicie la sesión de sus clientes automáticamente en su tienda, otorgue los permisos para utilizar los datos del cliente en la tienda. <a %s>Utilice este enlace para hacerlo</a>�A fin de poder elegir un producto para insertarlo en sus publicaciones y páginas, deberá volver a conectar su sitio a su tienda de %s. Esto solo requerirá que acepte la solicitud de permisos para que el complemento pueda listar sus productos en el cuadro de diálogo «Añadir producto».�Para crear un «Mapa del sitio» para su sitio web de Wordpress, le sugerimos que utilice los  complementos <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> o <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>. Estos complementos son totalmente compatibles con Ecwid y permiten generar un mapa del sitio que contiene enlaces a categorías y páginas de productos, por lo que las páginas de la tienda se indexarán más rápido. Tenga en cuenta que esta opción solo está disponible para los <a target="_blank" href="https://www.ecwid.com/pricing">usuarios de pago de Ecwid</a>.�Para mostrar su tienda en este sitio web, debe permitir que WordPress acceda a sus productos de %1$s. Pulse «Conectar» para otorgar el permiso.�Para habilitar esta función, el complemento necesita un permiso para leer la información del producto de su tienda.�Para mostrar un solo producto en una página aparte o en una entrada de blog de su sitio web, utilice el código corto <b>[ecwid_product]</b>. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">Cómo utilizarlo</a>�Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para mejorar la apariencia de su tienda y poder gestionar la apariencia de su escaparate virtual desde aquí, habilite la opción «Apariencia de próxima generación de la lista de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para asegurarse de que su cliente puede acceder realmente a su sitio web y a la tienda, habilite el registro en las <a %s>configuraciones del sitio web</a>�Para gestionar su tienda, vaya a la <a %s>página del «Panel de su tienda»</a>�Para vender utilizando %1$s, debe permitir que WordPress acceda al complemento %1$s. El botón «Conectar» lo redirigirá a su cuenta de %1$s donde puede otorgar el permiso.�Para mostrar su escaparate virtual en lugar de la tienda de demostración, conecte su cuenta de %s existente o cree una nueva.�Para comenzar a vender, añada una página a su sitio web donde se muestre el escaparate virtual.�Arriba a la izquierda�Arriba a la derecha�Intente otra búsqueda.�Escriba su mensaje aquí�«Slug» de la dirección URL�Actualizar�Actualice su catálogo�Actualice para obtener esta función�Sangría vertical�Miniaturas verticales�Gris oscuro�Gris claro�Ver la página de la tienda�Ver la página de la tienda de demostración�Ver la página de la tienda�Visitar escaparate virtual�Azul cian vívido�Cian verde vívido�Rojo vívido�¿Desea conectar otra tienda de %s?�Advertencia: algunas de las funciones de su tienda en línea están inhabilitadas. Póngase en contacto con su proveedor de alojamiento web para resolverlo.�Notamos que tiene un WooCommerce instalado. Su tienda de WooCommerce tiene %1$s productos y %2$s categorías; ¿le gustaría importarlos a %3$s?�Notamos que tiene WooCommerce instalado. Si desea copiar fácilmente sus productos de WooCommerce a %s, esta herramienta le ayudará.�Estamos sincronizando sus productos. Esto puede tardar unos minutos. No actualice la página.�Sitio web�¿Qué función necesita?�¿Qué fue lo que pasó?�¿Qué sigue?�Mientras su tienda aún no esté conectada, se mostrará una tienda de demostración en su sitio web. Échele un vistazo para tener una idea de cómo se verá su tienda en el sitio web.�Precios al por mayor�Puede añadir un cuadro de búsqueda de productos, un «widget» de carrito y más desde la <a href="%s">«Página de apariencia y widgets»</a> que se encuentra aquí en el administrador de su sitio web. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">Más detalles.</a>�Puede añadir todo el escaparate virtual, las categorías, los productos o los botones de «Comprar ahora» a otras páginas de su sitio web. Para ello, abra una página en el editor y añada un bloque %s apropiado.�Puede añadir el menú de categorías de la tienda al menú de su sitio web para ayudar a sus clientes a navegar fácilmente por su sitio web. Simplemente abra «Apariencia > Menús» en el panel de WordPress y añada el elemento «Tienda con menú de categorías» al menú de su sitio web. Aparecerá automáticamente un menú desplegable que contendrá las categorías de su tienda en su sitio web.�Puede añadir su tienda en línea a su página empresarial de Facebook (no se necesitan complementos). Ecwid sincronizará automáticamente los productos, clientes, pedidos e inventario entre su tienda en línea de WordPress y Facebook. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">Más detalles.</a>�Puede gestionar la apariencia de su tienda en la <a %s>página de «Configuración del diseño»</a> ubicada en el panel de control de su tienda.�Puede mostrar su tienda en la página principal del sitio web. Ajuste la configuración de «Lectura» de su sitio web como se describe en nuestro <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">centro de asistencia.</a>�Puede habilitar un «widget» adicional del icono de la bolsa de compras que aparecerá en las páginas de su sitio web. Abra el menú «<a href="%1$s">Apariencia → Personalizar → %2$s</a>» para habilitarlo.�Puede habilitar los filtros en la configuración de la tienda: («<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Configuración → Filtros para los productos</a>»).�Puede enviar una nueva solicitud aquí.�Aún no ha visto ningún producto. Abra la tienda.�También podrá registrarse a través de sus perfiles existentes de Google, Facebook o PayPal.�Su tienda de %s tiene �Su tienda de %s está conectada<br /> a su sitio web de WordPress�Su tienda de %s ahora está conectada<br /> a su sitio web de WordPress�Su escaparate virtual�Su tienda de WooCommerce tiene �Se ha enviado su correo electrónico�Su producto�Panel de control de su tienda. Aquí mismo en WordPress.�Se ha creado su tienda. Preparando el panel de su tienda...�Su tienda se añade a varias páginas del sitio web. Elija la página principal. Los clientes son redirigidos a la página principal de la tienda cuando hacen clic en el icono del carrito, en los enlaces de la tienda ubicados en el menú del sitio web o en los productos que se encuentran en la barra lateral.�¡Su tienda ya está casi lista!�Su tienda no se añade a ninguna página de su sitio web. Para que los clientes puedan navegar por su tienda y realizar pedidos, cree una página donde se mostrará la tienda.�La página de su tienda�La página de su tienda está actualmente en un borrador. Una vez que esté lista, publíquela para que los clientes puedan visitar la tienda y realizar pedidos.�La página de su tienda está publicada. Los clientes pueden visitar su tienda en �Su tienda se mostrará aquí�¡Su tienda se mostrará aquí!�Su escaparate virtual (listado de productos y página de pago) está funcionando bien, pero las funciones avanzadas de la tienda, como el SEO y los «widgets» de la barra lateral, están inhabilitadas. Para habilitarlas y asegurarse de que su tienda funcione correctamente, pulse el botón de abajo para conectar su cuenta de %s. Esto tomará menos de un minuto; solo se le pedirá que inicie sesión en su cuenta y permita que este sitio web obtenga los datos de su tienda.�[%s] Comentarios sobre la desactivación del complemento de WordPress (ID de la tienda: %s)�personalizar apariencia�Contenido�Tienda�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�o <a %s>consulte el centro de asistencia�REF del producto�Precio del producto�seleccionar producto�producto seleccionado�Tienda en línea�Botón de «Comprar ahora»���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/languages/ecwid-shopping-cart-es_AR.po������������������������������������������0000644�����������������00000326062�15122273603�0017571 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Translation of Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) in German # This file is distributed under the same license as the Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) package. msgid "" msgstr "" "PO-Revision-Date: 2020-10-12 12:46\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: GlotPress/3.0.0-alpha.2\n" "Language: es\n" "Project-Id-Version: temporary-strings\n" "X-Crowdin-Project: temporary-strings\n" "X-Crowdin-Project-ID: 295314\n" "X-Crowdin-Language: es-ES\n" "X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po\n" "X-Crowdin-File-ID: 988\n" "Language-Team: Spanish\n" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:92 msgid "You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel." msgstr "Puede gestionar la apariencia de su tienda en la <a %s>página de «Configuración del diseño»</a> ubicada en el panel de control de su tienda." #: includes/integrations/elementor/class-ec-elementor-widget-store.php:55 msgid "To manage your store, go to <a %s>the Store Dashboard page</a>" msgstr "Para gestionar su tienda, vaya a la <a %s>página del «Panel de su tienda»</a>" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:39 msgid "The category that is shown by default on the Store Front Page" msgstr "La categoría que se muestra de forma predeterminada en la página del escaparate virtual" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:38 msgid "Default category" msgstr "Categoría predeterminada" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:29 msgid "Online Store" msgstr "Tienda en línea" #: includes/class-ecwid-stub-renderer.php:38 msgid "Buy Now" msgstr "Comprar ahora" #: templates/admin/welcome-terms-privacy.php:5 msgid "By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>." msgstr "Al continuar, acepta los <a %s>Términos de servicio</a> y la <a %s>Política de privacidad</a>." #: js/gutenberg/blocks.build.js:1 msgid "Display shopping cart and checkout page" msgstr "Mostrar el carrito de compras y la página de pago" #: js/gutenberg/blocks.build.js:1 msgid "Cart and Checkout" msgstr "Carrito y pago" #: js/gutenberg/blocks.build.js:1 msgid "Filters" msgstr "Filtros" #: js/gutenberg/blocks.build.js:1 msgid "You can enable filters in the store settings: (“<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Settings → Product Filters</a>”)." msgstr "Puede habilitar los filtros en la configuración de la tienda: («<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Configuración → Filtros para los productos</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Search and Filters" msgstr "Búsqueda y filtros" #: js/gutenberg/blocks.build.js:1 msgid "Display search page with filters on a side" msgstr "Mostrar página de búsqueda con los filtros a un lado" #: js/gutenberg/blocks.build.js:1 msgid "Product Search and filters" msgstr "Búsqueda de productos y filtros" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Display product page with description and a buy button" msgstr "Mostrar la página de productos con la descripción y un botón de compra" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Large" msgstr "Ficha de producto ampliada" #: js/gutenberg/blocks.build.js:1 msgid "Selected category" msgstr "Categoría seleccionada" #: js/gutenberg/blocks.build.js:1 msgid "Select category" msgstr "Seleccionar categoría" #: js/gutenberg/blocks.build.js:1 msgid "Add categories" msgstr "Añadir categorías" #: js/gutenberg/blocks.build.js:1 msgid "Display category page" msgstr "Mostrar la página de categorías" #: js/gutenberg/blocks.build.js:1 msgid "Store Category Page" msgstr "Página de categorías de la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Display shopping bag link and summary" msgstr "Mostrar enlace y resumen de la bolsa de compras" #: js/gutenberg/blocks.build.js:1 msgid "Shopping Cart Icon" msgstr "Icono del carrito de compras" #: js/gutenberg/blocks.build.js:1 msgid "The block is hidden because you don't have categories in your store. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Add categories.</a>" msgstr "El bloque está oculto porque no tiene categorías en su tienda. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Añadir categorías.</a>" #: js/gutenberg/blocks.build.js:1 msgid "Categories" msgstr "Categorías" #: js/gutenberg/blocks.build.js:1 msgid "Display categories navigation bar" msgstr "Mostrar la barra de navegación de las categorías" #: js/gutenberg/blocks.build.js:1 msgid "Store Categories Menu" msgstr "Menú de categorías de la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Product Search Box" msgstr "Cuadro de búsqueda de productos" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:25 #: js/gutenberg/blocks.build.js:1 msgid "Linked product" msgstr "Producto vinculado" #: js/gutenberg/blocks.build.js:1 msgid "Display a buy button" msgstr "Mostrar un botón de compra" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:10 #: js/gutenberg/blocks.build.js:1 msgid "Buy Now Button" msgstr "Botón «Comprar ahora»" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:52 #: js/gutenberg/blocks.build.js:1 msgid "Show price inside the «Buy now» button" msgstr "Mostrar el precio dentro del botón de «Comprar ahora»" #: js/gutenberg/blocks.build.js:1 msgctxt "gutenberg-product-block" msgid "Content" msgstr "Contenido" #: js/gutenberg/blocks.build.js:1 msgid "Change" msgstr "Cambiar" #: js/gutenberg/blocks.build.js:1 msgid "Displayed product" msgstr "Producto mostrado" #: js/gutenberg/blocks.build.js:1 msgid "Display product with a buy button" msgstr "Mostrar el producto con un botón de compra" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Small" msgstr "Ficha de producto reducida" #: js/gutenberg/blocks.build.js:1 msgid "Very dark gray" msgstr "Gris oscuro" #: js/gutenberg/blocks.build.js:1 msgid "Cyan bluish gray" msgstr "Gris cian azulado" #: js/gutenberg/blocks.build.js:1 msgid "Very light gray" msgstr "Gris claro" #: js/gutenberg/blocks.build.js:1 msgid "Vivid cyan blue" msgstr "Azul cian vívido" #: js/gutenberg/blocks.build.js:1 msgid "Pale cyan blue" msgstr "Azul cian pálido" #: js/gutenberg/blocks.build.js:1 msgid "Vivid green cyan" msgstr "Cian verde vívido" #: js/gutenberg/blocks.build.js:1 msgid "Light green cyan" msgstr "Cian verde claro" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid amber" msgstr "Ámbar vívido y brillante" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid orange" msgstr "Naranja vívido y brillante" #: js/gutenberg/blocks.build.js:1 msgid "Vivid red" msgstr "Rojo vívido" #: js/gutenberg/blocks.build.js:1 msgid "Pale pink" msgstr "Rosa pálido" #: js/gutenberg/blocks.build.js:1 msgid "Set manually" msgstr "Configurar manualmente" #: js/gutenberg/blocks.build.js:1 msgid "Detect automatically" msgstr "Detectar automáticamente" #: js/gutenberg/blocks.build.js:1 msgid "Color settings" msgstr "Configuración de colores" #: js/gutenberg/blocks.build.js:1 msgid "Store Navigation" msgstr "Navegación en la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Store Front Page" msgstr "Página del escaparate virtual" #: js/gutenberg/blocks.build.js:1 msgid "Product sidebar content" msgstr "Contenido de la barra lateral de productos" #: js/gutenberg/blocks.build.js:1 msgid "Product Page Appearance" msgstr "Apariencia de la página del producto" #: js/gutenberg/blocks.build.js:1 msgid "Product List Appearance" msgstr "Apariencia de la lista de productos" #: js/gutenberg/blocks.build.js:1 msgid "Category List Appearance" msgstr "Apariencia de la lista de categorías" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Display cart icon" msgstr "Mostrar icono del carrito" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Para mejorar la apariencia de su tienda y poder gestionar la apariencia de su escaparate virtual desde aquí, habilite la opción «Apariencia de próxima generación de la lista de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Add storefront (product listing)" msgstr "Añadir escaparate virtual (listado de productos)" #: templates/admin/storefront/main.php:21 msgid "Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers." msgstr "Los clientes no pueden ver la página de su tienda porque está en un borrador. Publique la página para que esté disponible para sus clientes." #: templates/admin/storefront/main.php:20 msgid "The store is not visible on your site" msgstr "La tienda no es visible en su sitio web" #: templates/admin/storefront/main.php:4 msgid "Your Storefront" msgstr "Su escaparate virtual" #: templates/admin/storefront/area-promo.php:30 msgid "Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars." msgstr "Ayude a los clientes a encontrar su tienda en el sitio web. Añada el enlace de la tienda al menú del sitio web, cree páginas adicionales de la tienda y resalte los productos de la tienda en otras páginas del sitio web y en las barras laterales." #: templates/admin/storefront/area-promo.php:29 msgid "Promote your store" msgstr "Promocione su tienda" #: templates/admin/storefront/area-promo.php:26 msgid "Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store." msgstr "Manténgase conectado con sus clientes. Actualice el contenido de su tienda en cualquier momento para informarles a los clientes sobre las promociones actuales y las novedades de su tienda." #: templates/admin/storefront/area-promo.php:25 msgid "Change store content" msgstr "Cambiar el contenido de la tienda" #: templates/admin/storefront/area-promo.php:22 msgid "Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand." msgstr "Personalice la apariencia de su tienda para que se ajuste a las necesidades de su negocio. Cree la apariencia para su tienda que más se parezca a su marca." #: templates/admin/storefront/area-promo.php:21 msgid "Customize store appearance" msgstr "Personalizar la apariencia de la tienda" #: templates/admin/storefront/area-promo.php:7 msgid "Add your %s store to the website and start selling in minutes." msgstr "Añada su tienda de %s al sitio web y comience a vender en minutos." #: templates/admin/storefront/area-promo.php:3 msgid "What's next?" msgstr "¿Qué sigue?" #: templates/admin/storefront/area-additional.php:224 msgid "Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar." msgstr "Su tienda se añade a varias páginas del sitio web. Elija la página principal. Los clientes son redirigidos a la página principal de la tienda cuando hacen clic en el icono del carrito, en los enlaces de la tienda ubicados en el menú del sitio web o en los productos que se encuentran en la barra lateral." #: templates/admin/storefront/area-additional.php:222 msgid "Choose the main store page" msgstr "Elegir la página principal de la tienda" #: templates/admin/storefront/area-additional.php:200 msgid "Go to Pages" msgstr "Ir a «Páginas»" #: templates/admin/storefront/area-additional.php:193 msgid "You can add the entire storefront, categories, products, or \"Buy now\" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block." msgstr "Puede añadir todo el escaparate virtual, las categorías, los productos o los botones de «Comprar ahora» a otras páginas de su sitio web. Para ello, abra una página en el editor y añada un bloque %s apropiado." #: templates/admin/storefront/area-additional.php:189 msgid "Add your store to other site pages" msgstr "Añada su tienda a otras páginas del sitio web" #: templates/admin/storefront/area-additional.php:166 msgid "Create Product Page" msgstr "Crear página de productos" #: templates/admin/storefront/area-additional.php:150 msgid "Pick Product" msgstr "Elegir un producto" #: templates/admin/storefront/area-additional.php:136 #: templates/admin/storefront/area-additional.php:138 msgid "Create a landing page featuring one of your products." msgstr "Cree una página de aterrizaje con uno de sus productos." #: templates/admin/storefront/area-additional.php:132 msgid "Add a product page" msgstr "Añadir página de productos" #: templates/admin/storefront/area-additional.php:109 msgid "Create Category Page" msgstr "Crear página de categorías" #: templates/admin/storefront/area-additional.php:93 msgid "Pick Category" msgstr "Elegir una categoría" #: templates/admin/storefront/area-additional.php:79 #: templates/admin/storefront/area-additional.php:81 msgid "Feature a specific store category on a separate page of your site." msgstr "Destacar una categoría de la tienda específica en una página separada de su sitio web." #: templates/admin/storefront/area-additional.php:75 msgid "Add a category page" msgstr "Añadir una página de categoría" #: templates/admin/storefront/area-additional.php:54 msgid "Create Search Page" msgstr "Crear página de búsqueda" #: templates/admin/storefront/area-additional.php:50 msgid "Show customers that they can use a search and filters to find desired products faster." msgstr "Muéstreles a los clientes que pueden utilizar la búsqueda y los filtros para encontrar los productos que deseen de forma más rápida." #: templates/admin/storefront/area-additional.php:48 msgid "Add a search and filters page" msgstr "Añadir una página de búsqueda y filtros" #: templates/admin/storefront/area-additional.php:27 msgid "Create Cart Page" msgstr "Crear página del carrito" #: templates/admin/storefront/area-additional.php:23 msgid "Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout." msgstr "Los clientes van a la página del carrito para consultar los productos que han añadido al mismo y proceder con el pago." #: templates/admin/storefront/area-additional.php:21 msgid "Add cart and checkout page" msgstr "Añadir carrito y página de pago" #: templates/admin/storefront/area-additional.php:4 msgid "Highlight products, categories, and other store pages by adding them to separate website pages." msgstr "Destaque productos, categorías y otras páginas de la tienda añadiéndolas a páginas del sitio web separadas." #: templates/admin/storefront/area-additional.php:3 msgid "Additional store pages" msgstr "Páginas adicionales de la tienda" #: templates/admin/storefront/draft-message.php:2 msgid "Publish the page to use this option" msgstr "Publique la página para poder utilizar esta opción" #: templates/admin/storefront/area-design.php:55 msgid "Along with the store catalog, you can add other widgets and texts to the store page." msgstr "Junto con el catálogo de la tienda, puede añadir otros «widgets» y textos a la página de la tienda." #: templates/admin/storefront/area-design.php:54 msgid "Store page content" msgstr "Contenido de la página de la tienda" #: templates/admin/storefront/area-design.php:25 #: templates/admin/storefront/area-design.php:27 msgid "Adjust your store design to fit your business needs." msgstr "Ajuste el diseño de su tienda para que se adapte a las necesidades de su negocio." #: templates/admin/storefront/area-design.php:21 msgid "Store appearance" msgstr "Apariencia de la tienda" #: templates/admin/storefront/area-design.php:4 msgid "Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers." msgstr "Personalice la apariencia de su escaparate virtual y edite el contenido en la página de la tienda para reflejar su marca y mantenerse conectado con sus clientes." #: templates/admin/storefront/area-design.php:3 msgid "Design and content" msgstr "Diseño y contenido" #: templates/admin/storefront/area-status.php:124 msgid "Create Store Page" msgstr "Crear la página de la tienda" #: templates/admin/storefront/area-status.php:121 msgid "Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display." msgstr "Su tienda no se añade a ninguna página de su sitio web. Para que los clientes puedan navegar por su tienda y realizar pedidos, cree una página donde se mostrará la tienda." #: templates/admin/storefront/area-status.php:115 msgid "Set Up Your Store" msgstr "Configure su tienda" #: templates/admin/storefront/area-status.php:109 msgid "To show your storefront instead of the demo store, connect your existing %s account or create a new one." msgstr "Para mostrar su escaparate virtual en lugar de la tienda de demostración, conecte su cuenta de %s existente o cree una nueva." #: templates/admin/storefront/area-status.php:101 msgid "Publish Store Page" msgstr "Publicar la página de la tienda" #: templates/admin/storefront/area-status.php:98 msgid "Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders." msgstr "La página de su tienda está actualmente en un borrador. Una vez que esté lista, publíquela para que los clientes puedan visitar la tienda y realizar pedidos." #: templates/admin/storefront/area-status.php:92 msgid "View Store Page" msgstr "Ver la página de la tienda" #: templates/admin/storefront/area-status.php:86 msgid "Your store page is published. Customers can browse your store at " msgstr "La página de su tienda está publicada. Los clientes pueden visitar su tienda en " #: templates/admin/storefront/area-status.php:77 msgid "View demo store page" msgstr "Ver la página de la tienda de demostración" #: templates/admin/storefront/area-status.php:46 msgid "Draft" msgstr "Borrador" #: templates/admin/storefront/area-status.php:45 msgid "Published" msgstr "Publicada" #: templates/admin/storefront/area-status.php:33 #: templates/admin/storefront/area-status.php:36 msgid "Status" msgstr "Estado" #: templates/admin/storefront/area-status.php:29 msgid "Add a store page" msgstr "Añadir una página de tienda" #: templates/admin/storefront/area-status.php:24 msgid "Connect your %s store" msgstr "Conecte su tienda de %s" #: templates/admin/storefront/area-status.php:21 msgid "Your store page" msgstr "La página de su tienda" #: templates/admin/storefront/area-status.php:10 msgid "To start selling, add a page to your site where the storefront will display." msgstr "Para comenzar a vender, añada una página a su sitio web donde se muestre el escaparate virtual." #: templates/admin/storefront/area-status.php:7 msgid "While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site." msgstr "Mientras su tienda aún no esté conectada, se mostrará una tienda de demostración en su sitio web. Échele un vistazo para tener una idea de cómo se verá su tienda en el sitio web." #: templates/admin/storefront/area-status.php:4 msgid "Store page on your site" msgstr "Página de la tienda en su sitio web" #: templates/admin/storefront/area-navigation.php:205 msgid "The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href=\"%s\" target=\"_blank\">adjust the cart icon appearance</a>." msgstr "El icono del carrito de compras muestra la cantidad de artículos en el carrito y ayuda a los clientes a realizar el pago. Además, puede <a href=\"%s\" target=\"_blank\">ajustar la apariencia del icono del carrito</a>." #: templates/admin/storefront/area-navigation.php:201 msgid "Display the shopping cart icon on site pages" msgstr "Muestre el icono del carrito de compras en las páginas del sitio web" #: templates/admin/storefront/area-navigation.php:179 msgid "Manage Sidebar" msgstr "Gestionar la barra lateral" #: templates/admin/storefront/area-navigation.php:175 msgid "Highlight your best sellers or new products in the website sidebar." msgstr "Destaque sus mejores ventas o nuevos productos en la barra lateral del sitio web." #: templates/admin/storefront/area-navigation.php:173 msgid "Feature your products in the sidebar" msgstr "Destaque sus productos en la barra lateral" #: templates/admin/storefront/area-navigation.php:151 msgid "Add Store Page to Menu" msgstr "Añadir la página de la tienda al menú" #: templates/admin/storefront/area-navigation.php:147 msgid "Make your store accessible from the site menu so your customers can easily find it." msgstr "Haga que su tienda sea accesible desde el menú del sitio web para que sus clientes puedan encontrarla fácilmente." #: templates/admin/storefront/area-navigation.php:141 msgid "Add store page to the site menu" msgstr "Añadir la página de la tienda al menú del sitio web" #: templates/admin/storefront/area-navigation.php:118 msgid "Edit URL Slug" msgstr "Editar «slug» de la dirección URL" #: templates/admin/storefront/area-navigation.php:102 msgid "Current URL slug: /<span data-ec-store-slug>%s</span>" msgstr "«Slug» actual de la dirección URL: /<span data-ec-store-slug>%s</span>" #: templates/admin/storefront/area-navigation.php:78 msgid "Save" msgstr "Guardar" #: templates/admin/storefront/area-navigation.php:69 msgid "URL Slug" msgstr "«Slug» de la dirección URL" #: templates/admin/storefront/area-navigation.php:60 #: templates/admin/storefront/area-navigation.php:113 msgid "A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use \"/shop\" or \"/products\"." msgstr "Un «slug» es la última parte de una URL. Puede crear un «slug» personalizado para la página de su tienda. Es mejor que sea corto, ya que los clientes y los motores de búsqueda prefieren las URL cortas. Por ejemplo, utilice «/tienda» o «/productos»." #: templates/admin/storefront/area-navigation.php:56 #: templates/admin/storefront/area-navigation.php:98 msgid "Customize store page address" msgstr "Personalizar la dirección de la página de la tienda" #: templates/admin/storefront/area-navigation.php:29 msgid "Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href=\"%s\" target=\"_blank\">WordPress Settings > Reading</a>" msgstr "Añada su escaparate virtual a la página de inicio del sitio web para que sea más notable. También puede modificar la configuración de la página de inicio del sitio web en <a href=\"%s\" target=\"_blank\">Configuración de WordPress > Lectura</a>." #: templates/admin/storefront/area-navigation.php:21 msgid "Show your store on the home page" msgstr "Muestre su tienda en la página de inicio" #: templates/admin/storefront/area-navigation.php:4 msgid "Help customers find your store on the website." msgstr "Ayude a los clientes a encontrar su tienda en el sitio web." #: templates/admin/storefront/area-navigation.php:3 msgid "Navigation" msgstr "Navegación" #: templates/admin/welcome-no_oauth.php:12 msgid "Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>." msgstr "El ID de la tienda es un identificador único de su cuenta de %1$s. Puede encontrarlo en su panel de control de %1$s en la <a %2$s>página del panel</a>." #: templates/admin/welcome-create.php:11 msgid "Your store has been created. Preparing your store dashboard ..." msgstr "Se ha creado su tienda. Preparando el panel de su tienda..." #: templates/admin/welcome-connect.php:8 msgid "Create store" msgstr "Crear tienda" #: templates/admin/welcome-connect.php:4 msgid "Connect Your Store" msgstr "Conecte su tienda" #: templates/admin/welcome-page.php:61 msgid "Provided by <a %s>%s</a>" msgstr "Proporcionado por <a %s>%s</a>" #: templates/admin/welcome-page.php:33 msgid "To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>." msgstr "Para añadir su tienda a su sitio web, introduzca el ID de su tienda de %1$s en el campo a continuación. Si aún no tiene una cuenta de %1$s, cree una gratis en el <a %2$s>sitio web de %1$s</a>." #: templates/admin/welcome-page.php:20 msgid "Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website." msgstr "Cree una nueva tienda o, si ya tiene una cuenta de %s, conéctela. El complemento le guiará a través de la configuración de la tienda y le ayudará a publicarla en su sitio web." #: templates/admin/welcome-page.php:12 msgid "Add an Online Store to Your Website" msgstr "Añadir una tienda en línea a su sitio web" #: includes/class-ecwid-store-page.php:566 msgid "This is a demo store. Create your store to see your store products here." msgstr "Esto es una tienda de demostración. Cree su tienda para ver los productos de su tienda aquí." #: includes/class-ecwid-admin-storefront-page.php:539 msgid "Publish" msgstr "Publicar" #: templates/admin/storefront/area-design.php:33 #: templates/admin/storefront/area-design.php:59 #: includes/class-ecwid-admin-storefront-page.php:532 msgid "Edit" msgstr "Editar" #: includes/class-ecwid-admin-storefront-page.php:525 msgid "Preview" msgstr "Vista previa" #: includes/class-ecwid-admin-storefront-page.php:516 msgid "Switch to draft" msgstr "Cambiar al borrador" #: includes/class-ecwid-admin-storefront-page.php:506 msgid "Edit page" msgstr "Editar página" #: includes/class-ecwid-admin-storefront-page.php:499 msgid "View store page" msgstr "Ver la página de la tienda" #: includes/class-ecwid-admin-storefront-page.php:286 msgid "Search products" msgstr "Buscar productos" #: includes/class-ecwid-admin-storefront-page.php:265 msgid "Category" msgstr "Categoría" #: includes/class-ecwid-admin-storefront-page.php:240 msgid "Page with that name already exists." msgstr "Ya existe una página con ese nombre." #: includes/class-ecwid-admin.php:538 msgid "My Profile" msgstr "Mi perfil" #: includes/class-ecwid-admin.php:533 msgid "Apps" msgstr "Aplicaciones" #: includes/class-ecwid-admin.php:523 msgid "Shipping & Pickup" msgstr "Envío y recogida" #: includes/class-ecwid-admin.php:518 msgid "Payment" msgstr "Pago" #: includes/class-ecwid-admin.php:513 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:88 msgid "Design" msgstr "Diseño" #: includes/class-ecwid-admin.php:509 msgid "Configuration" msgstr "Configuración" #: includes/class-ecwid-admin.php:504 msgid "All Sales Channels" msgstr "Todos los canales de venta" #: includes/class-ecwid-admin.php:499 msgid "Website" msgstr "Sitio web" #: includes/class-ecwid-admin.php:494 msgid "Mobile" msgstr "Móvil" #: includes/class-ecwid-admin.php:485 msgid "Sales channels" msgstr "Canales de venta" #: includes/class-ecwid-admin.php:480 msgid "Reports" msgstr "Informes" #: includes/class-ecwid-admin.php:475 msgid "Marketing" msgstr "Mercadotecnia" #: includes/class-ecwid-admin.php:470 msgid "Catalog" msgstr "Catálogo" #: includes/class-ecwid-admin.php:465 msgid "My Sales" msgstr "Mis ventas" #: includes/class-ecwid-admin.php:455 msgid "Store management" msgstr "Gestión de la tienda" #: includes/class-ecwid-admin.php:344 msgid "Instant site" msgstr "Sitio web instantáneo" #: includes/class-ecwid-admin.php:153 includes/class-ecwid-admin.php:154 #: includes/class-ecwid-admin.php:309 msgid "Storefront" msgstr "Escaparate virtual" #: ecwid-shopping-cart.php:1111 msgid "Manage storefront" msgstr "Gestionar escaparate virtual" #: ecwid-shopping-cart.php:1111 msgid "Customize design" msgstr "Personalizar el diseño" #: ecwid-shopping-cart.php:1103 msgid "Manage store" msgstr "Gestionar la tienda" #: templates/importer/woo-main.tpl.php:97 msgid "Start Import" msgstr "Iniciar la importación" #: templates/importer/woo-main.tpl.php:87 msgid "Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target=\"_blank\">\"Billing & Plans\"</a></nobr> page in your Ecwid store control panel." msgstr "Tenga en cuenta el número máximo de productos y categorías que puede tener en su tienda de Ecwid. Esta herramienta de importación se detendrá automáticamente cuando se alcance el límite de productos de la tienda. Para conocer el límite actual de la tienda o aumentarlo, consulte la página <nobr><a %s target=\"_blank\">«Facturación y planes»</a></nobr> ubicada en el panel de su tienda de Ecwid." #: templates/importer/woo-main.tpl.php:82 msgid "Import creates new products and update the existing products with matching SKUs." msgstr "La importación crea nuevos productos y actualiza los productos existentes con las REF correspondientes." #: templates/importer/woo-main.tpl.php:60 msgid "Copying products and categories." msgstr "Copia de productos y categorías." #: templates/importer/woo-main.tpl.php:50 msgid "Import completed. <a href=\"%s\">Run again.</a>" msgstr "Importación completada. <a href=\"%s\">Ejecútela de nuevo.</a>" #: templates/importer/woo-main.tpl.php:34 msgid "Import is in Progress" msgstr "La importación está en progreso" #: templates/importer/woo-main.tpl.php:32 msgid "Import your products from Woocommerce to %s" msgstr "Importe sus productos de Woocommerce a %s" #: templates/importer/woo-main.tpl.php:18 msgid "Update your catalog" msgstr "Actualice su catálogo" #: templates/importer/woo-main.tpl.php:4 msgid "Import Your Products From Woocommerce to %s" msgstr "Importe sus productos de Woocommerce a %s" #: templates/importer/import-no-token.tpl.php:3 msgid "Click the connect button to get rights to update the product catalog" msgstr "Haga clic en el botón «Conectar» para obtener los permisos para actualizar el catálogo de productos" #: templates/importer/woo-complete-alert.tpl.php:52 msgid "Go to Your %s Products" msgstr "Ir a sus productos de %s" #: templates/importer/woo-complete-alert.tpl.php:43 msgid "Download <a href=\"%s\">import log</a>" msgstr "Descargar <a href=\"%s\">registro de importación</a>" #: templates/importer/woo-complete-alert.tpl.php:32 msgid "Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>" msgstr "Parte de los productos no se han copiado a %1$s porque alcanzó el límite de productos en su plan de precios en %1$s. Si desea importar más productos, considere <nobr><a %2$s>actualizar su plan de %1$s.</a></nobr>" #: templates/importer/woo-complete-alert.tpl.php:21 msgid "<b>%s</b> categories" msgstr "<b>%s</b> categorías" #: templates/importer/woo-complete-alert.tpl.php:18 msgid "Imported <b>%s</b> products" msgstr "<b>%s</b> productos importados" #: templates/importer/woo-complete-alert.tpl.php:15 msgid "Import completed" msgstr "Importación completada" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:10 #: includes/widgets/class-ecwid-widget-product-browser.php:12 msgid "Online store" msgstr "Tienda en línea" #: includes/class-ecwid-store-page.php:476 msgid "%s Store Page" msgstr "Página de la tienda de %s" #: templates/advanced-settings.php:79 msgid "Integration with search on your site" msgstr "Integración con la búsqueda en su sitio web" #: templates/sync.php:130 msgid "Deleted products synchronized: %1$s out of %2$s" msgstr "Productos eliminados sincronizados: %1$s de %2$s" #: includes/class-ecwid-custom-admin-page.php:66 msgid "Themes for Ecwid" msgstr "Temas para Ecwid" #: includes/class-ecwid-custom-admin-page.php:33 msgid "Plugins for Ecwid" msgstr "Complementos para Ecwid" #: includes/class-ecwid-popup-deactivate.php:138 msgid "I use this WordPress theme: %s" msgstr "Utilizo este tema de WordPress: %s" #: includes/class-ecwid-popup-deactivate.php:132 msgid "I couldn’t find a WordPress theme that goes well with %s" msgstr "No pude encontrar un tema de WordPress adecuado para %s" #: includes/class-ecwid-product-browser.php:357 msgid "On the right" msgstr "A la derecha" #: includes/class-ecwid-product-browser.php:353 msgid "On the left" msgstr "A la izquierda" #: includes/class-ecwid-product-browser.php:349 msgid "Filters panel position" msgstr "Posición del panel de filtros" #: includes/class-ecwid-product-browser.php:209 msgid "Default product_ID" msgstr "ID del producto predeterminado" #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:73 msgid "Cart icon" msgstr "Icono del carrito de compras" #: templates/shortcode-stub-store.tpl.php:4 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:20 #: js/gutenberg/blocks.build.js:1 msgid "Store Home Page" msgstr "Página de inicio de la tienda" #: ecwid-shopping-cart.php:431 msgid "Edit Category" msgstr "Editar categoría" #: ecwid-shopping-cart.php:430 msgid "Edit Product" msgstr "Editar producto" #: includes/class-ecwid-admin.php:142 includes/class-ecwid-admin.php:143 msgid "Online Store Apps" msgstr "Aplicaciones de la tienda en línea" #. Plugin Name of the plugin msgid "Ecwid Ecommerce Shopping Cart" msgstr "Carrito de compras del comercio electrónico de Ecwid" #: includes/class-ecwid-custom-admin-page.php:58 includes/faq_entries.php:76 msgid "Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href=\"%s\">TemplateMonster themes</a>" msgstr "Ecwid es compatible con cualquier tema de WordPress. Ya sea un tema gratuito del catálogo de WordPress.org, un tema prémium de un proveedor externo o un tema personalizado; su tienda de Ecwid funcionará bien con cualquiera de ellos. Si desea un tema prémium, le recomendamos <a href=\"%s\">temas de TemplateMonster</a>." #: includes/faq_entries.php:74 msgid "Is there a WordPress theme for Ecwid?" msgstr "¿Existe algún tema de WordPress para Ecwid?" #: templates/admin-footer.php:19 msgid "<a href=\"admin.php?page=" msgstr "<a href=\"admin.php?page=" #: includes/integrations/class-ecwid-integration-gutenberg.php:113 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:25 msgid "You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href=\"%1$s\">Appearance → Customize → %2$s</a>” menu to enable it." msgstr "Puede habilitar un «widget» adicional del icono de la bolsa de compras que aparecerá en las páginas de su sitio web. Abra el menú «<a href=\"%1$s\">Apariencia → Personalizar → %2$s</a>» para habilitarlo." #: includes/integrations/class-ecwid-integration-gutenberg.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:18 msgctxt "gutenberg-store-block-stub" msgid "Store" msgstr "Tienda" #: includes/class-ecwid-product-browser.php:472 msgid "Image feed" msgstr "Canal de imagen" #: includes/class-ecwid-product-browser.php:467 msgid "Vertical thumbnails" msgstr "Miniaturas verticales" #: includes/class-ecwid-product-browser.php:462 msgid "Horizontal thumbnails" msgstr "Miniaturas horizontales" #: includes/class-ecwid-product-browser.php:452 msgid "3 columns, image on the right" msgstr "3 columnas, imagen a la derecha" #: includes/class-ecwid-product-browser.php:448 msgid "3 columns, image on the left" msgstr "3 columnas, imagen a la izquierda" #: includes/class-ecwid-product-browser.php:444 msgid "2 columns, image on the right" msgstr "2 columnas, imagen a la derecha" #: includes/class-ecwid-product-browser.php:440 msgid "2 columns, image on the left" msgstr "2 columnas, imagen a la izquierda" #: includes/class-ecwid-product-browser.php:429 msgid "Landscape 3:2" msgstr "Horizontal 3:2" #: includes/class-ecwid-product-browser.php:424 msgid "Landscape 4:3" msgstr "Horizontal 4:3" #: includes/class-ecwid-product-browser.php:419 msgid "Square 1:1" msgstr "Cuadrado 1:1" #: includes/class-ecwid-product-browser.php:414 msgid "Portrait 3:4" msgstr "Vertical 3:4" #: includes/class-ecwid-product-browser.php:409 msgid "Portrait 2:3" msgstr "Vertical 2:3" #: includes/class-ecwid-product-browser.php:399 msgid "L" msgstr "G" #: includes/class-ecwid-product-browser.php:395 msgid "M" msgstr "M" #: includes/class-ecwid-product-browser.php:391 msgid "S" msgstr "P" #: includes/class-ecwid-product-browser.php:381 msgid "Show on hover" msgstr "Mostrar al pasar el ratón" #: includes/class-ecwid-product-browser.php:377 msgid "Hide" msgstr "Ocultar" #: includes/class-ecwid-product-browser.php:373 msgid "Show" msgstr "Mostrar" #: includes/class-ecwid-product-browser.php:342 msgid "Background color" msgstr "Color del fondo" #: includes/class-ecwid-product-browser.php:335 msgid "Link color" msgstr "Color del enlace" #: includes/class-ecwid-product-browser.php:328 msgid "Price color" msgstr "Color del precio" #: includes/class-ecwid-product-browser.php:321 msgid "Text color" msgstr "Color del texto" #: includes/class-ecwid-product-browser.php:314 msgid "Button color" msgstr "Color del botón" #: includes/class-ecwid-product-browser.php:299 msgid "Wholesale prices" msgstr "Precios al por mayor" #: includes/class-ecwid-product-browser.php:292 msgid "\"In stock\" label" msgstr "Etiqueta de productos «En existencia»" #: includes/class-ecwid-product-browser.php:285 msgid "Available qty in stock" msgstr "Cantidad disponible en existencia" #: includes/class-ecwid-product-browser.php:278 msgid "Product quantity" msgstr "Cantidad de productos" #: includes/class-ecwid-product-browser.php:271 msgctxt "product-browser-attributes" msgid "Product price" msgstr "Precio del producto" #: includes/class-ecwid-product-browser.php:264 msgctxt "product-browser-attributes" msgid "Product SKU" msgstr "REF del producto" #: includes/class-ecwid-product-browser.php:257 msgid "Breadcrumbs" msgstr "Migas de pan" #: includes/class-ecwid-product-browser.php:241 msgid "Image gallery layout" msgstr "Diseño de la galería de imágenes" #: includes/integrations/class-ecwid-integration-gutenberg.php:391 #: includes/class-ecwid-product-browser.php:224 #: includes/class-ecwid-product-browser.php:233 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:212 msgid "Show description under the image" msgstr "Mostrar descripción debajo de la imagen" #: includes/class-ecwid-product-browser.php:216 msgid "Product page layout" msgstr "Diseño de la página de productos" #: includes/class-ecwid-product-browser.php:194 msgid "Display sort by link" msgstr "Mostrar «ordenar por enlace»" #: includes/class-ecwid-product-browser.php:186 #: includes/class-ecwid-product-browser.php:306 msgid "Display sign in link" msgstr "Mostrar el enlace de inicio de sesión" #: includes/class-ecwid-product-browser.php:178 msgid "Display footer menu" msgstr "Mostrar el menú del pie de página" #: includes/class-ecwid-product-browser.php:170 msgid "Display breadcrumbs" msgstr "Mostrar migas de pan" #: includes/class-ecwid-product-browser.php:163 js/gutenberg/blocks.build.js:1 msgid "Display search box" msgstr "Mostrar el cuadro de búsqueda" #: includes/class-ecwid-product-browser.php:156 msgid "Display categories menu" msgstr "Mostrar el menú de categorías" #: includes/class-ecwid-product-browser.php:148 msgid "Category thumbnail aspect ratio" msgstr "Relación de aspecto de la miniatura de la categoría" #: includes/class-ecwid-product-browser.php:140 msgid "Category thumbnail size" msgstr "Tamaño de la miniatura de la categoría" #: includes/class-ecwid-product-browser.php:131 msgid "Image only" msgstr "Solo imagen" #: includes/class-ecwid-product-browser.php:127 msgid "Title only" msgstr "Solo título" #: includes/class-ecwid-product-browser.php:123 msgid "Image and title on mouse over" msgstr "Imagen y título al pasar el ratón por encima" #: includes/class-ecwid-product-browser.php:119 msgid "Title on image" msgstr "Título en la imagen" #: includes/class-ecwid-product-browser.php:115 msgid "Title under image" msgstr "Título debajo de la imagen" #: includes/class-ecwid-product-browser.php:111 msgid "Category card layout" msgstr "Diseño de la ficha de categoría" #: includes/class-ecwid-product-browser.php:103 msgid "Show additional image on hover" msgstr "Mostrar imagen adicional al pasar el ratón" #: includes/class-ecwid-product-browser.php:95 msgid "Buy now buttons" msgstr "Botones de «Comprar ahora»" #: includes/class-ecwid-product-browser.php:87 msgid "Product SKU" msgstr "REF del producto" #: includes/class-ecwid-product-browser.php:79 msgid "Product price" msgstr "Precio del producto" #: includes/class-ecwid-product-browser.php:71 msgid "Product title" msgstr "Título del producto" #: includes/class-ecwid-product-browser.php:61 msgid "Justify" msgstr "Justificado" #: includes/class-ecwid-product-browser.php:56 msgid "Right" msgstr "Derecha" #: includes/class-ecwid-product-browser.php:51 msgid "Center" msgstr "Centrado" #: includes/class-ecwid-product-browser.php:46 msgid "Left" msgstr "Izquierda" #: includes/class-ecwid-product-browser.php:42 msgid "Product card text align" msgstr "El texto de la ficha del producto se alinea" #: includes/class-ecwid-product-browser.php:34 msgid "Show product card border" msgstr "Mostrar el borde de la ficha del producto" #: includes/class-ecwid-product-browser.php:26 msgid "Product thumbnail aspect ratio" msgstr "Relación de aspecto de la miniatura del producto" #: includes/class-ecwid-product-browser.php:18 msgid "Product thumbnail size" msgstr "Tamaño de la miniatura del producto" #: includes/class-ecwid-product-browser.php:10 msgid "Show product thumbnails" msgstr "Mostrar miniaturas de los productos" #. Author of the plugin msgid "Ecwid Ecommerce" msgstr "Comercio electrónico Ecwid" #: templates/importer/woo-summary.tpl.php:34 msgid "After import, your %s store will have " msgstr "Después de la importación, su tienda de %s tendrá " #: templates/importer/woo-summary.tpl.php:21 msgid "Your %s store has " msgstr "Su tienda de %s tiene " #: templates/importer/woo-summary.tpl.php:10 msgid "Your WooCommerce store has " msgstr "Su tienda de WooCommerce tiene " #: includes/integrations/class-ecwid-integration-elementor.php:64 #: includes/integrations/class-ecwid-integration-divibuilder.php:25 #: includes/integrations/class-ecwid-integration-gutenberg.php:94 msgid "%s Store" msgstr "Tienda de %s" #: includes/importer/class-ecwid-import-page.php:184 msgid "%s products" msgstr "%s productos" #: includes/importer/class-ecwid-import-page.php:178 msgid "%s products and %s categories" msgstr "%s productos y %s categorías" #: includes/class-ecwid-stub-renderer.php:27 #: includes/class-ecwid-admin-storefront-page.php:272 msgid "Product" msgstr "Producto" #: includes/class-ecwid-message-manager.php:278 #: includes/class-ecwid-message-manager.php:297 #: includes/class-ecwid-message-manager.php:318 msgid "Warning: some of your online store features are disabled. Please contact your hosting provider to resolve." msgstr "Advertencia: algunas de las funciones de su tienda en línea están inhabilitadas. Póngase en contacto con su proveedor de alojamiento web para resolverlo." #: templates/admin/legacy-connect.tpl.php:39 msgid "Create new account" msgstr "Crear una nueva cuenta" #: templates/admin/legacy-connect.tpl.php:33 msgid "Register at %s" msgstr "Registrarse en %s" #: includes/class-ecwid-floating-minicart.php:155 msgid "Bottom left" msgstr "Abajo a la izquierda" #: includes/class-ecwid-floating-minicart.php:154 msgid "Top left" msgstr "Arriba a la izquierda" #: includes/class-ecwid-floating-minicart.php:113 msgid "Show on all pages" msgstr "Mostrar en todas las páginas" #: includes/class-ecwid-floating-minicart.php:112 msgid "Show on store pages" msgstr "Mostrar en las páginas de la tienda" #: includes/class-ecwid-floating-minicart.php:111 msgid "Do not show" msgstr "No mostrar" #: includes/class-ecwid-customizer.php:134 msgid "Vertical indent" msgstr "Sangría vertical" #: includes/class-ecwid-customizer.php:123 msgid "Horizontal indent" msgstr "Sangría horizontal" #: includes/class-ecwid-customizer.php:97 msgid "Icon" msgstr "Icono" #: includes/class-ecwid-customizer.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:79 msgid "Border" msgstr "Borde" #: includes/class-ecwid-customizer.php:72 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:67 msgid "Layout" msgstr "Diseño" #: includes/class-ecwid-customizer.php:61 msgid "Show when empty" msgstr "Mostrar cuando esté vacío" #: includes/class-ecwid-customizer.php:49 msgid "Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The \"Show on store pages\" and \"Show when empty\" options will apply to the cart widget on site when published" msgstr "Nota: cuando está habilitado, el «widget» del carrito siempre se mostrará en la vista previa para que sea más fácil personalizarlo. Las opciones «Mostrar en las páginas de la tienda» y «Mostrar cuando esté vacío» se aplicarán al «widget» del carrito en el sitio cuando se publiquen" #: includes/class-ecwid-customizer.php:47 msgid "Display shopping cart" msgstr "Mostrar el carrito de compras" #: includes/class-ecwid-customizer.php:35 msgid "Shopping Cart Widget" msgstr "«Widget» del carrito de compras" #. Author URI of the plugin msgid "https://ecwid.to/ecwid-site" msgstr "https://ecwid.to/ecwid-site" #: templates/product-popup.php:247 msgid "selected product" msgstr "producto seleccionado" #: templates/product-popup.php:138 templates/product-popup.php:143 msgid "Selected Product" msgstr "Producto seleccionado" #: templates/product-popup.php:124 msgid " Choose another product" msgstr " Elegir otro producto" #: templates/importer/landing.tpl.php:20 msgid "Import your WooCommerce catalog to %s" msgstr "Importe su catálogo de WooCommerce a %s" #: includes/widgets/nsf-minicart-editor.tpl.php:35 msgid "Border:" msgstr "Borde:" #: includes/widgets/nsf-minicart-editor.tpl.php:19 msgid "Cart icon:" msgstr "Icono del carrito:" #: includes/widgets/nsf-minicart-editor.tpl.php:3 msgid "Layout:" msgstr "Diseño:" #: includes/class-ecwid-floating-minicart.php:145 msgid "No border" msgstr "Sin borde" #: includes/class-ecwid-floating-minicart.php:144 msgid "Pill" msgstr "Píldora" #: includes/class-ecwid-floating-minicart.php:143 msgid "Rectangle" msgstr "Rectángulo" #: includes/class-ecwid-floating-minicart.php:136 msgid "Basket" msgstr "Cesta" #: includes/class-ecwid-floating-minicart.php:134 msgid "Bag" msgstr "Bolsa" #: includes/class-ecwid-floating-minicart.php:127 msgid "Icon, label, item count, subtotal and link" msgstr "Icono, etiqueta, total de artículos, subtotal y enlace" #: includes/class-ecwid-floating-minicart.php:126 msgid "Icon, label, item count and subtotal" msgstr "Icono, etiqueta, total de artículos y subtotal" #: includes/class-ecwid-floating-minicart.php:125 msgid "Icon, label and item count" msgstr "Icono, etiqueta y total de artículos" #: includes/class-ecwid-floating-minicart.php:124 msgid "Icon and item count" msgstr "Icono y total de artículos" #: includes/class-ecwid-floating-minicart.php:123 msgid "Label and item count" msgstr "Etiqueta y y total de artículos" #: includes/class-ecwid-floating-minicart.php:122 msgid "Item count only" msgstr "Solo el total de artículos" #: includes/class-ecwid-floating-minicart.php:121 msgid "Small icon and item count" msgstr "Icono pequeño y total de artículos" #: includes/class-ecwid-floating-minicart.php:120 msgid "Small icon" msgstr "Icono pequeño" #: includes/widgets/class-ecwid-widget-minicart.php:9 msgid "Shopping Cart (deprecated)" msgstr "Carrito de compras (descontinuado)" #: includes/widgets/class-ecwid-widget-minicart-miniview.php:9 msgid "Shopping Cart Mini (deprecated)" msgstr "Carrito de compras en miniatura (descontinuado)" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:21 msgid "Shopping Cart Floating (deprecated)" msgstr "Carrito de compras flotante (descontinuado)" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:69 msgid "Displays storefront: product listing and checkout" msgstr "Muestra el escaparate virtual: listado de productos y pago" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:67 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:70 msgctxt "vc-tab" msgid "Online store" msgstr "Tienda en línea" #: includes/integrations/class-ecwid-integration-gutenberg.php:105 #: includes/gutenberg/class-ecwid-gutenberg.php:131 msgid "Your product" msgstr "Su producto" #: templates/shortcode-stub-store.tpl.php:18 #: includes/integrations/class-ecwid-integration-gutenberg.php:103 #: includes/widgets/class-ecwid-widget-product-browser.php:11 #: includes/gutenberg/class-ecwid-gutenberg.php:129 msgid "Your store will be shown here" msgstr "Su tienda se mostrará aquí" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:31 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:101 #: includes/integrations/class-ecwid-integration-gutenberg.php:101 #: includes/gutenberg/class-ecwid-gutenberg.php:127 #: js/gutenberg/blocks.build.js:1 msgid "Choose product" msgstr "Elegir producto" #: includes/integrations/class-ecwid-integration-gutenberg.php:97 #: includes/gutenberg/class-ecwid-gutenberg.php:123 msgid "%s product" msgstr "%s producto" #: templates/wp-toolbox.tpl.php:4 msgid "Take advantage of powerful apps and extensions designed to enhance your store." msgstr "Aproveche las increíbles aplicaciones y extensiones diseñadas para mejorar su tienda." #: templates/wp-toolbox.tpl.php:3 msgid "Extensions for your Store" msgstr "Extensiones para su tienda" #: templates/importer/woo-summary.tpl.php:6 msgid "Import summary" msgstr "Resumen de la importación" #: templates/importer/woo-main.tpl.php:19 msgid "This import will copy your WooCommerce products and categories to your %s store." msgstr "Esta importación copiará sus productos y categorías de WooCommerce a su tienda de %s." #: templates/importer/woo-main.tpl.php:62 msgid "Importing %s of %s items" msgstr "Importando %s de %s artículos" #: templates/importer/woo-complete-alert.tpl.php:27 msgid "Some of the items could not be imported." msgstr "Algunos de los artículos no se pudieron importar." #: templates/importer/landing.tpl.php:33 msgid "Learn more" msgstr "Más información" #: templates/importer/landing.tpl.php:33 msgid "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" msgstr "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" #: templates/importer/landing.tpl.php:31 msgid "Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center" msgstr "Ecwid le permite subir sus productos en forma de archivo CSV. Obtenga más información sobre esta herramienta en el centro de asistencia de Ecwid" #: templates/importer/landing.tpl.php:29 msgid "Import product catalog from other sources" msgstr "Importar el catálogo de productos de otras fuentes" #: templates/importer/landing.tpl.php:23 msgid "(You will be able to confirm the changes before the actual import)" msgstr "(podrá confirmar los cambios antes de la importación definitiva)" #: templates/importer/landing.tpl.php:12 msgid "We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?" msgstr "Notamos que tiene un WooCommerce instalado. Su tienda de WooCommerce tiene %1$s productos y %2$s categorías; ¿le gustaría importarlos a %3$s?" #: templates/importer/landing.tpl.php:9 msgid "Import product catalog from WooCommerce" msgstr "Importar el catálogo de productos de WooCommerce" #: templates/importer/landing.tpl.php:4 msgid "Here, we will help you uploading your product catalog to %s from another shopping cart or other sources." msgstr "Aquí, le ayudaremos a subir su catálogo de productos a %s de otro carrito de compras u otras fuentes." #: templates/importer/landing.tpl.php:1 msgid "Import products to your %s store" msgstr "Importe los productos a su tienda de %s" #: templates/dashboard-blog-posts.tpl.php:20 msgid "Knowledge Base" msgstr "Base de conocimiento" #: templates/dashboard-blog-posts.tpl.php:19 msgid "https://support.ecwid.com/hc/en-us" msgstr "https://support.ecwid.com/hc/en-us" #: templates/dashboard-blog-posts.tpl.php:14 msgid "https://www.ecwid.com/blog" msgstr "https://www.ecwid.com/blog" #: includes/importer/class-ecwid-import.php:39 msgid "Bulk import products and categories to your %s store" msgstr "Importar en masa productos y categorías a su tienda de %s" #: includes/importer/class-ecwid-import.php:38 msgid "%s products and categories" msgstr "%s productos y categorías" #: templates/importer/woo-main.tpl.php:36 #: includes/importer/class-ecwid-import-page.php:52 #: includes/importer/class-ecwid-import-page.php:53 msgid "Import your products from WooCommerce to %s" msgstr "Importe sus productos de WooCommerce a %s" #: includes/importer/class-ecwid-import-page.php:42 #: includes/importer/class-ecwid-import-page.php:43 msgid "Import" msgstr "Importar" #: templates/dashboard-blog-posts.tpl.php:15 #: includes/class-ecwid-wp-dashboard-feed.php:48 msgid "%s Blog" msgstr "Blog de %s" #: includes/class-ecwid-message-manager.php:345 msgid "No Thanks" msgstr "No, gracias" #: includes/class-ecwid-message-manager.php:343 msgid "Import my products from WooCommerce" msgstr "Importar mis productos de WooCommerce" #: includes/class-ecwid-message-manager.php:341 msgid "We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you." msgstr "Notamos que tiene WooCommerce instalado. Si desea copiar fácilmente sus productos de WooCommerce a %s, esta herramienta le ayudará." #: includes/class-ecwid-message-manager.php:340 msgid "Need help importing your products from WooCommerce to %s?" msgstr "¿Necesita ayuda para importar sus productos de WooCommerce a %s?" #: includes/class-ecwid-admin.php:213 includes/class-ecwid-admin.php:214 msgid "Customers" msgstr "Clientes" #: templates/help.php:28 msgid "or <a %s>Browse the Help Center" msgstr "o <a %s>consulte el centro de asistencia" #: templates/admin/welcome-connection-message.php:5 msgid "To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission." msgstr "Para mostrar su tienda en este sitio web, debe permitir que WordPress acceda a sus productos de %1$s. Pulse «Conectar» para otorgar el permiso." #: includes/faq_entries.php:40 msgid "Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target=\"_blank\" href=\"%s\">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans." msgstr "Nuestros 4 tipos de cuentas varían según la cantidad de productos, los tipos de funcionalidades y el nivel de asistencia. Para obtener más información, consulte nuestra <a target=\"_blank\" href=\"%s\">página de precios.</a><br /><br />Consejo profesional: también puede ahorrar dinero si se suscribe a nuestros planes anuales." #: includes/class-ecwid-popup-deactivate.php:59 msgid "[%s] WordPress plugin deactivation feedback (store ID: %s)" msgstr "[%s] Comentarios sobre la desactivación del complemento de WordPress (ID de la tienda: %s)" #: includes/class-ecwid-message-manager.php:289 msgid "Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data." msgstr "Su escaparate virtual (listado de productos y página de pago) está funcionando bien, pero las funciones avanzadas de la tienda, como el SEO y los «widgets» de la barra lateral, están inhabilitadas. Para habilitarlas y asegurarse de que su tienda funcione correctamente, pulse el botón de abajo para conectar su cuenta de %s. Esto tomará menos de un minuto; solo se le pedirá que inicie sesión en su cuenta y permita que este sitio web obtenga los datos de su tienda." #: includes/class-ecwid-message-manager.php:288 msgid "Action required: please connect your %s account" msgstr "Acción requerida: conecte su cuenta de %s" #: templates/popup/deactivate.php:24 msgid "Contact Support" msgstr "Ponerse en contacto con la asistencia" #: templates/popup/deactivate.php:1 msgid "If you have a moment, please let us know why you are deactivating:" msgstr "Si tiene un momento, háganos saber por qué está desactivando:" #: templates/admin/welcome-create.php:4 msgid "Create Store" msgstr "Crear tienda" #: templates/advanced-settings.php:1 msgid "%s — Advanced settings" msgstr "%s — Configuración avanzada" #: includes/widgets/class-ecwid-widget-random-products.php:10 msgid "Displays a list of random products." msgstr "Muestra una lista de productos aleatorios." #: includes/widgets/class-ecwid-widget-random-products.php:9 msgid "Random Products" msgstr "Productos aleatorios" #: includes/widgets/class-ecwid-widget-random-product.php:9 #: includes/widgets/class-ecwid-widget-random-product.php:64 msgid "Random Product" msgstr "Producto aleatorio" #: includes/widgets/class-ecwid-widget-random-product.php:8 msgid "Displays a random product from your store to attract customer attention." msgstr "Muestra un producto aleatorio de su tienda para atraer la atención del cliente." #: includes/widgets/class-ecwid-widget-latest-products.php:10 msgid "Displays the latest added products from your store. Show new products to returning customers to drive repeat sales." msgstr "Muestra los últimos productos añadidos de su tienda. Muestre nuevos productos a los clientes existentes para impulsar las ventas repetidas." #: includes/widgets/class-ecwid-widget-latest-products.php:9 msgid "Latest Products" msgstr "Últimos productos" #: includes/class-ecwid-popup-deactivate.php:164 msgid "Can you share your feedback? What was wrong?" msgstr "¿Podría compartir su opinión? ¿Qué fue lo que pasó?" #: includes/class-ecwid-popup-deactivate.php:161 msgid "Other" msgstr "Otro" #: includes/class-ecwid-popup-deactivate.php:155 msgid "It's a temporary deactivation. Please do not ask me again." msgstr "Es una desactivación temporal. No preguntarme de nuevo." #: includes/class-ecwid-popup-deactivate.php:152 msgid "Can you share the name of the plugin you chose?" msgstr "¿Podría compartir el nombre del complemento que ha elegido?" #: includes/class-ecwid-popup-deactivate.php:149 msgid "I found a better plugin" msgstr "Encontré un mejor complemento" #: includes/class-ecwid-popup-deactivate.php:146 msgid "What feature do you need?" msgstr "¿Qué función necesita?" #: includes/class-ecwid-popup-deactivate.php:143 msgid "The plugin doesn't support the feature I want" msgstr "El complemento no es compatible con la función que quiero" #: includes/class-ecwid-popup-deactivate.php:128 msgid "What was wrong?" msgstr "¿Qué fue lo que pasó?" #: includes/class-ecwid-popup-deactivate.php:125 msgid "I have a problem using this plugin" msgstr "Tengo un problema con el uso de este complemento" #: includes/class-ecwid-popup-deactivate.php:112 msgid "Before You Go" msgstr "Antes de que se vaya" #: templates/admin/storefront/area-navigation.php:79 #: includes/class-ecwid-popup-deactivate.php:105 msgid "Cancel" msgstr "Cancelar" #: includes/class-ecwid-popup-deactivate.php:101 msgid "Submit & Deactivate" msgstr "Enviar y desactivar" #: includes/class-ecwid-message-manager.php:244 #: includes/class-ecwid-store-page.php:568 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:51 #: ecwid-shopping-cart.php:1082 js/gutenberg/blocks.build.js:1 msgid "Set up your store" msgstr "Configure su tienda" #: templates/admin-head.php:8 includes/class-ecwid-admin.php:48 #: includes/integrations/class-ecwid-integration-gutenberg.php:45 #: includes/gutenberg/class-ecwid-gutenberg.php:69 msgid "%s" msgstr "%s" #: templates/product-popup.php:199 js/gutenberg/blocks.build.js:1 msgid "«Buy now» button" msgstr "Botón de «Comprar ahora»" #: templates/admin/simple-dashboard.php:10 msgid "%s Shopping Cart" msgstr "Carrito de compras de %s" #: templates/advanced-settings.php:42 msgid "Please subscribe to a paid plan to get this feature." msgstr "Suscríbase a un plan de pago para obtener esta función." #: templates/admin-footer.php:9 msgid "Get %s mobile app" msgstr "Descargue la aplicación móvil de %s" #: includes/class-ecwid-message-manager.php:272 msgid "Rate %s at WordPress.org" msgstr "Tasa de %s en WordPress.org" #: includes/class-ecwid-message-manager.php:268 msgid "Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site." msgstr "¿Le gusta su tienda de %s en línea? Apreciaríamos si comparte su opinión y vota por el complemento en el sitio de WordPress." #: includes/class-ecwid-message-manager.php:260 msgid "To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings." msgstr "Para añadir funciones adicionales a su tienda, arrastre y suelte los elementos de la tienda de %s en su sitio web. Una vez que haya terminado, puede volver a modificar su configuración." #: templates/sync.php:114 msgid "Provide access." msgstr "Otorgar acceso." #: templates/sync.php:113 msgid "To enable this feature, the plugin needs a permission to read your store product information." msgstr "Para habilitar esta función, el complemento necesita un permiso para leer la información del producto de su tienda." #: templates/product-popup.php:137 templates/product-popup.php:147 msgid "Choose Product" msgstr "Elegir producto" #: templates/product-popup.php:96 msgid "Try another search." msgstr "Intente otra búsqueda." #: templates/sync.php:152 msgid "Not synchronized yet" msgstr "No se ha sincronizado todavía" #: templates/sync.php:149 msgid "Last update" msgstr "Última actualización" #: templates/sync.php:145 msgid "Products are successfully synchronized. The product pages are up to date." msgstr "Los productos se sincronizaron satisfactoriamente. Las páginas de productos están actualizadas." #: templates/sync.php:138 msgid "Products synchronized: %1$s out of %2$s" msgstr "Productos eliminados sincronizados: %1$s de %2$s" #: templates/sync.php:126 msgid "We're synchronizing your products. This may take a few minutes. Please do not reload the page." msgstr "Estamos sincronizando sus productos. Esto puede tardar unos minutos. No actualice la página." #: templates/sync.php:119 msgid "Synchronize products" msgstr "Sincronizar productos" #: templates/advanced-settings.php:83 msgid "%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site." msgstr "%s almacena los datos de sus productos de forma segura en la nube. Las páginas de productos se muestran sobre la marcha cuando un cliente navega por su tienda. Por lo que, básicamente, los productos no se almacenan en el sitio web, por eso la búsqueda en el sitio web no encuentra páginas de productos mientras busca en las páginas del sitio web y en las publicaciones. Esta opción habilita un modo de almacenamiento local: los productos se almacenarán tanto en la nube como en su sitio web. Los resultados de la búsqueda en el sitio web incluirán las páginas de productos, así como las páginas o publicaciones habituales de su sitio web." #: templates/product-popup.php:243 msgid "Insert" msgstr "Insertar" #: templates/product-popup.php:242 msgid "select product" msgstr "seleccionar producto" #: templates/product-popup.php:241 templates/product-popup.php:246 msgid "customize appearance" msgstr "personalizar apariencia" #: templates/product-popup.php:224 msgid "Show price inside the \"Buy now\" button" msgstr "Mostrar el precio dentro del botón de «Comprar ahora»" #: templates/product-popup.php:229 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:62 #: js/gutenberg/blocks.build.js:1 msgid "Center align on a page" msgstr "Centrar la alineación en una página" #: templates/product-popup.php:219 js/gutenberg/blocks.build.js:1 msgid "Add border" msgstr "Añadir borde" #: templates/product-popup.php:188 js/gutenberg/blocks.build.js:1 msgid "Quantity" msgstr "Cantidad" #: templates/product-popup.php:178 js/gutenberg/blocks.build.js:1 msgid "Options" msgstr "Opciones" #: templates/product-popup.php:173 js/gutenberg/blocks.build.js:1 msgid "Picture" msgstr "Imagen" #: templates/product-popup.php:163 msgid "Choose product properties to display in widget" msgstr "Elija las propiedades del producto para mostrarlas en el «widget»" #: templates/product-popup.php:139 templates/product-popup.php:151 msgid "Customize widget" msgstr "Personalizar «widget»" #: templates/product-popup.php:97 msgid "Browse all products." msgstr "Explorar todos los productos." #: templates/product-popup.php:94 msgid "Nothing found for <span class=\"empty-page__term\">\"{{ data.term }}\"</span>" msgstr "No se ha encontrado nada en relación con <span class=\"empty-page__term\">«{{ data.term }}»</span>" #: templates/product-popup.php:80 msgid "Next page" msgstr "Página siguiente" #: templates/product-popup.php:69 msgid "Current Page" msgstr "Página actual" #: templates/product-popup.php:49 msgid "Title or SKU" msgstr "Título o REF" #: templates/product-popup.php:47 templates/product-popup.php:53 #: templates/product-popup.php:56 msgid "Search" msgstr "Buscar" #: templates/product-popup.php:29 msgid "SKU" msgstr "REF" #: templates/product-popup.php:23 msgid "Name" msgstr "Nombre" #: includes/class-ecwid-product-popup.php:150 msgid "Last Page" msgstr "Última página" #: includes/class-ecwid-product-popup.php:149 msgid "Next Page" msgstr "Página siguiente" #: includes/class-ecwid-product-popup.php:148 msgid "Previous Page" msgstr "Página anterior" #: includes/class-ecwid-product-popup.php:147 msgid "First Page" msgstr "Primera página" #: includes/class-ecwid-product-popup.php:107 msgid "Add Product" msgstr "Añadir producto" #: includes/class-ecwid-oauth.php:366 msgid "To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the \"Add product\" dialog." msgstr "A fin de poder elegir un producto para insertarlo en sus publicaciones y páginas, deberá volver a conectar su sitio a su tienda de %s. Esto solo requerirá que acepte la solicitud de permisos para que el complemento pueda listar sus productos en el cuadro de diálogo «Añadir producto»." #: templates/advanced-settings.php:54 msgid "To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>" msgstr "Para asegurarse de que su cliente puede acceder realmente a su sitio web y a la tienda, habilite el registro en las <a %s>configuraciones del sitio web</a>" #: templates/advanced-settings.php:48 msgid "To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>" msgstr "Para permitir que %s inicie la sesión de sus clientes automáticamente en su tienda, otorgue los permisos para utilizar los datos del cliente en la tienda. <a %s>Utilice este enlace para hacerlo</a>" #: templates/advanced-settings.php:39 msgid "Upgrade to get this feature" msgstr "Actualice para obtener esta función" #: templates/advanced-settings.php:32 msgid "Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again." msgstr "El inicio de sesión único les permite a sus clientes tener un inicio de sesión único para su sitio web de WordPress y su %s. Cuando alguien inicie sesión en su sitio web, también iniciará sesión automáticamente en su cuenta de cliente en la tienda sin necesidad de introducir su correo electrónico y contraseña nuevamente." #: templates/advanced-settings.php:27 msgid "Customer Single Sign-On" msgstr "Inicio de sesión único del cliente" #: includes/integrations/class-ecwid-integration-divibuilder.php:63 msgid "Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space." msgstr "Introduzca las clases CSS opcionales que se utilizarán para este módulo. Se puede utilizar una clase CSS para crear estilos CSS personalizados. Puede añadir varias clases separadas por un espacio." #: includes/integrations/class-ecwid-integration-divibuilder.php:60 msgid "CSS Class" msgstr "Clase CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:57 msgid "Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page." msgstr "Introduzca un ID de CSS opcional que se utilizará para este módulo. Se puede utilizar un ID para crear un estilo CSS personalizado o para crear enlaces a secciones particulares de su página web." #: includes/integrations/class-ecwid-integration-divibuilder.php:54 msgid "CSS ID" msgstr "ID de CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:51 msgid "This will change the label of the module in the builder for easy identification." msgstr "Esto cambiará la etiqueta del módulo en el creador para una fácil identificación." #: includes/integrations/class-ecwid-integration-divibuilder.php:49 msgid "Admin Label" msgstr "Etiqueta de administrador" #: includes/integrations/class-ecwid-integration-divibuilder.php:44 msgid "Here you can create the content that will be used within the module." msgstr "Aquí puede crear el contenido que se utilizará dentro del módulo." #: includes/integrations/class-ecwid-integration-divibuilder.php:41 msgid "Content" msgstr "Contenido" #: templates/admin-footer.php:29 msgid "<a %s>Reconnect</a>" msgstr "<a %s>Volver a conectar</a>" #: templates/help.php:15 msgid "https://support.ecwid.com/hc/en-us/search" msgstr "https://support.ecwid.com/hc/en-us/search" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:73 msgid "Browse by Category" msgstr "Buscar por categoría" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:15 msgid "Store Root Categories" msgstr "Categorías raíz de la tienda" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:14 msgid "Adds root categories list to the sidebar to let your customers navigate the store." msgstr "Añade la lista de categorías raíz a la barra lateral para que sus clientes puedan desplazarse por la tienda." #: templates/admin/welcome-connection-message.php:25 msgid "To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission." msgstr "Para vender utilizando %1$s, debe permitir que WordPress acceda al complemento %1$s. El botón «Conectar» lo redirigirá a su cuenta de %1$s donde puede otorgar el permiso." #: templates/admin-timeout.php:11 msgid "Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">our customer support team</a>." msgstr "Nuestro equipo ya está trabajando en este asunto. Actualice la página en unos minutos. Si el problema persiste, comuníquese con <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">nuestro equipo de atención al cliente</a>." #: templates/admin-timeout.php:9 msgid "Sorry we're having technical difficulties." msgstr "Le pido disculpas por las dificultades técnicas que estamos experimentando." #: includes/class-ecwid-floating-minicart.php:153 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:143 msgid "Top right" msgstr "Arriba a la derecha" #: includes/class-ecwid-floating-minicart.php:152 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:138 msgid "Bottom right" msgstr "Abajo a la derecha" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:135 #: includes/class-ecwid-customizer.php:110 msgid "Position" msgstr "Posición" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:20 msgid "Adds a shopping cart widget to the top right corner of your site." msgstr "Añada un «widget» de carrito de compras en la esquina superior derecha de su sitio web." #: templates/help.php:215 msgid "You can send a new request here." msgstr "Puede enviar una nueva solicitud aquí." #: templates/help.php:214 msgid " Thank you very much for contacting us! We will get back to you shortly." msgstr " ¡Muchas gracias por ponerse en contacto con nosotros! Nos pondremos en contacto con usted en breve." #: templates/help.php:213 msgid "Your email has been sent" msgstr "Se ha enviado su correo electrónico" #: templates/help.php:207 msgid "Send message failed" msgstr "Ocurrió un error al enviar el mensaje" #: templates/help.php:196 msgid "Send Message" msgstr "Enviar mensaje" #: templates/help.php:193 msgid "Type in your message here" msgstr "Escriba su mensaje aquí" #: templates/help.php:192 msgid "Subject" msgstr "Asunto" #: templates/help.php:186 msgid "Send a message to our support team" msgstr "Envíe un mensaje a nuestro equipo de asistencia" #: templates/help.php:177 msgid "Still have questions about Ecwid? Let us know!" msgstr "¿Todavía tiene preguntas acerca de Ecwid? ¡Háganoslo saber!" #: templates/help.php:176 msgid "Contact us" msgstr "Póngase en contacto con nosotros" #: templates/help.php:33 msgid "Frequently Asked Questions" msgstr "Preguntas frecuentes" #: templates/help.php:21 msgid "Search the Knowledge Base" msgstr "Buscar en la base de conocimientos" #: templates/help.php:17 msgid "E.g. How to set up shipping" msgstr "Por ejemplo, cómo establecer el envío" #: templates/help.php:11 msgid "How can we help you?" msgstr "¿Cómo podemos ayudarle?" #: includes/faq_entries.php:68 msgid "You can display your store on the site main page. Adjust the \"Reading\" settings of your site as described in our <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">Help Center.</a>" msgstr "Puede mostrar su tienda en la página principal del sitio web. Ajuste la configuración de «Lectura» de su sitio web como se describe en nuestro <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">centro de asistencia.</a>" #: includes/faq_entries.php:67 msgid "Is it possible to display my store on the site home page?" msgstr "¿Es posible mostrar mi tienda en la página de inicio del sitio web?" #: includes/faq_entries.php:61 msgid "To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">How to use it.</a>" msgstr "Para mostrar un solo producto en una página aparte o en una entrada de blog de su sitio web, utilice el código corto <b>[ecwid_product]</b>. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">Cómo utilizarlo</a>" #: includes/faq_entries.php:60 msgid "How to add a single product with the add to bag button to the site pages?" msgstr "¿Cómo añadir un solo producto con el botón de «añadir a la bolsa» en las páginas del sitio web?" #: includes/faq_entries.php:55 msgid "To create sitemap for your Wordpress site we suggest using <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> or <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">paid Ecwid users</a>." msgstr "Para crear un «Mapa del sitio» para su sitio web de Wordpress, le sugerimos que utilice los  complementos <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> o <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>. Estos complementos son totalmente compatibles con Ecwid y permiten generar un mapa del sitio que contiene enlaces a categorías y páginas de productos, por lo que las páginas de la tienda se indexarán más rápido. Tenga en cuenta que esta opción solo está disponible para los <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">usuarios de pago de Ecwid</a>." #: includes/faq_entries.php:54 msgid "How do I put my products in the sitemap?" msgstr "¿Cómo pongo mis productos en el mapa del sitio?" #: includes/faq_entries.php:48 msgid "You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open \"Appearance > Menus\" in your WordPress control panel and add the \"Store with Categories Menu\" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site." msgstr "Puede añadir el menú de categorías de la tienda al menú de su sitio web para ayudar a sus clientes a navegar fácilmente por su sitio web. Simplemente abra «Apariencia > Menús» en el panel de WordPress y añada el elemento «Tienda con menú de categorías» al menú de su sitio web. Aparecerá automáticamente un menú desplegable que contendrá las categorías de su tienda en su sitio web." #: includes/faq_entries.php:47 msgid "How do I add store categories to the site menu?" msgstr "¿Cómo puedo añadir categorías de tiendas al menú del sitio web?" #: includes/faq_entries.php:38 msgid "How much does Ecwid cost?" msgstr "¿Cuánto cuesta Ecwid?" #: includes/faq_entries.php:30 msgid "You can add product search box, cart widget and more on the <a href=\"%s\">\"Appearance / Widgets page\"</a> here in your site admin. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">More details.</a>" msgstr "Puede añadir un cuadro de búsqueda de productos, un «widget» de carrito y más desde la <a href=\"%s\">«Página de apariencia y widgets»</a> que se encuentra aquí en el administrador de su sitio web. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">Más detalles.</a>" #: includes/faq_entries.php:28 msgid "How can I add a cart widget to my site sidebar?" msgstr "¿Cómo puedo añadir un «widget» de carrito de compras a la barra lateral de mi sitio web?" #: includes/faq_entries.php:21 msgid "You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">More details.</a>" msgstr "Puede añadir su tienda en línea a su página empresarial de Facebook (no se necesitan complementos). Ecwid sincronizará automáticamente los productos, clientes, pedidos e inventario entre su tienda en línea de WordPress y Facebook. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">Más detalles.</a>" #: includes/faq_entries.php:20 msgid "How to set up a storefront on Facebook with Ecwid?" msgstr "¿Cómo crear una tienda en Facebook con Ecwid?" #: includes/faq_entries.php:13 msgid "Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">More details.</a>" msgstr "Ecwid ofrece aplicaciones móviles gratuitas para iOS y Android para que pueda gestionar su tienda y vender donde y cuando quiera. Escanee productos, supervise el inventario, gestione las ventas y acepte pagos utilizando su dispositivo móvil como una estación de punto de venta. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">Más detalles.</a>" #: includes/faq_entries.php:12 msgid "How can I manage my store from a mobile device?" msgstr "¿Cómo puedo gestionar mi tienda desde un dispositivo móvil?" #: includes/faq_entries.php:6 msgid "Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">More details.</a>" msgstr "Ecwid cuenta con la certificación PCI DSS Nivel 1, que es el estándar de oro para las soluciones de comercio electrónico en todo el mundo. Esto significa que no tendrá problemas de cumplimiento bancario cuando venda en línea con Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">Más detalles.</a>" #: includes/faq_entries.php:5 msgid "How secure is this plugin? Is my store PCI DSS compliant?" msgstr "¿Qué tan seguro es este complemento? ¿Mi tienda cumple con el PCI DSS?" #: includes/class-ecwid-nav-menus.php:32 msgid "Ecwid Menu Item" msgstr "Elemento del menú de Ecwid" #: includes/class-ecwid-admin.php:179 includes/class-ecwid-admin.php:180 msgid "Help" msgstr "Ayuda" #: templates/admin-footer.php:27 msgid "Want to connect another %s store?" msgstr "¿Desea conectar otra tienda de %s?" #: templates/admin-footer.php:17 msgid "Questions?" msgstr "¿Tiene alguna pregunta?" #: templates/admin-footer.php:6 msgid "Manage Store on iPhone, iPad or Android" msgstr "Gestione la tienda desde iPhone, iPad o Android" #: includes/class-ecwid-message-manager.php:254 msgid "Complete Setup" msgstr "Completar configuración" #: includes/class-ecwid-message-manager.php:253 msgid "Complete setup and start selling" msgstr "Complete la configuración y comience a vender" #: includes/class-ecwid-message-manager.php:242 msgid "Greetings! Your %s plugin is now active." msgstr "¡Enhorabuena! Su complemento de %s ya está activo." #: templates/debug.php:12 msgid "Download log file" msgstr "Descargar archivo de registro" #: templates/help.php:67 includes/oembed.php:75 includes/oembed.php:104 msgid "See more" msgstr "Ver más" #: ecwid-shopping-cart.php:1051 msgid "I have a problem with my %s store" msgstr "Tengo un problema con mi tienda de %s" #: includes/class-ecwid-message-manager.php:55 msgid "Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: \"The Wordpress function wp_remote_post() failed to connect a remote server because of some error: \"%s\". Seems like HTTP POST requests are disabled on this server\". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>." msgstr "Lo siento, hay un problema. Se supone que esta página muestra el panel de control de su tienda; sin embargo, este sitio web de Wordpress no parece poder conectarse al servidor de Ecwid para mostrar el panel de su tienda aquí. Es probable que esto se deba a una mala configuración del servidor; su proveedor de alojamiento web puede solucionarlo. Aquí hay una descripción más técnica del problema, la cual puede enviarle a su proveedor de alojamiento web: «La función de Wordpress wp_remote_post() no pudo conectarse a un servidor remoto debido al error: “%s”; parece que las solicitudes HTTP POST están inhabilitadas en este servidor». <br /><br />No dude en ponerse en contacto con nosotros en <a %s>wordpress@ecwid.com</a> y le ayudaremos a comunicarse con su proveedor de alojamiento web para pedirle que solucione el problema. <br /><br /> Mientras tanto, para gestionar su tienda, puede utilizar el panel de control web de Ecwid en <a %s>my.ecwid.com</a>. Su escaparate virtual está funcionando bien; puede echarle un vistazo aquí: <a %s>%s</a>." #: templates/store-popup.php:249 msgid "Open store dashboard" msgstr "Abrir el panel de la tienda" #: templates/store-popup.php:12 templates/store-popup.php:27 msgid "Store elements" msgstr "Elementos de la tienda" #: templates/reconnect-sso.php:10 msgid "Re-connect to Enable Control Panel" msgstr "Vuélvase a conectar para activar el panel de control" #: templates/reconnect-sso.php:8 msgid "Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page." msgstr "Gestione productos, supervise las ventas y ajuste la configuración: <nobr>todo sin</nobr> salir de esta página." #: templates/reconnect-sso.php:7 msgid "Your store Control Panel. Right here in WordPress." msgstr "Panel de control de su tienda. Aquí mismo en WordPress." #: ecwid-shopping-cart.php:2114 msgid "Orders" msgstr "Pedidos" #: includes/class-ecwid-nav-menus.php:168 ecwid-shopping-cart.php:2118 msgid "The store top-level categories are automatically added to this drop-down menu" msgstr "Las categorías de alto nivel de la tienda se añaden automáticamente a este menú desplegable" #: includes/class-ecwid-nav-menus.php:167 ecwid-shopping-cart.php:2117 msgid "Done" msgstr "Hecho" #: includes/class-ecwid-nav-menus.php:166 ecwid-shopping-cart.php:2116 msgid "Refresh categories list" msgstr "Actualizar la lista de categorías" #: includes/class-ecwid-nav-menus.php:165 msgid "Store Page" msgstr "Página de la tienda" #: includes/class-ecwid-nav-menus.php:319 msgid "Add to Menu" msgstr "Añadir al menú" #: includes/class-ecwid-nav-menus.php:316 msgid "Select All" msgstr "Seleccionar todo" #: includes/class-ecwid-nav-menus.php:369 msgid "Store with Categories Menu" msgstr "Tienda con menú de categorías" #: includes/class-ecwid-nav-menus.php:352 #: includes/class-ecwid-nav-menus.php:355 msgid "My Account" msgstr "Mi cuenta" #: includes/class-ecwid-nav-menus.php:335 #: includes/class-ecwid-floating-minicart.php:135 #: includes/class-ecwid-admin-storefront-page.php:279 msgid "Cart" msgstr "Carrito" #: includes/class-ecwid-admin.php:87 includes/class-ecwid-admin.php:88 #: includes/class-ecwid-products.php:228 ecwid-shopping-cart.php:2112 msgid "Products" msgstr "Productos" #: includes/class-ecwid-admin.php:79 includes/class-ecwid-admin.php:80 msgid "Sales" msgstr "Ventas" #: ecwid-shopping-cart.php:1119 msgid "Report a problem with the store" msgstr "Informar un problema con la tienda" #: ecwid-shopping-cart.php:1036 msgid "%s plugin doesn't work well with my \"%s\" theme" msgstr "El complemento %s no funciona bien con mi tema «%s»" #: templates/admin/welcome-connection-message.php:22 #: templates/admin/welcome-connection-message.php:28 msgid "Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL." msgstr "Parece que su sitio web no admite solicitudes POST remotas, las cuales son necesarias para que la API de %s funcione. Comuníquese con su proveedor de alojamiento web para habilitar cURL." #. Description of the plugin msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up." msgstr "Ecwid es un carrito de compras gratuito con todas las funciones. Se puede integrar fácilmente con cualquier blog de Wordpress y se configura en menos de 5 minutos." #. Plugin URI of the plugin msgid "http://www.ecwid.com?partner=wporg" msgstr "http://www.ecwid.com?partner=wporg" #: templates/store-svg.php:12 msgid "Demo Store" msgstr "Tienda de demostración" #: templates/store-svg.php:9 msgid "Your store will be shown here!" msgstr "¡Su tienda se mostrará aquí!" #: templates/product-popup.php:248 templates/store-popup.php:256 msgid "Update" msgstr "Actualizar" #: templates/store-popup.php:253 msgid "Insert into page" msgstr "Insertar en la página" #: templates/store-popup.php:246 msgid "Demo store" msgstr "Tienda de demostración" #: templates/store-popup.php:80 msgid "Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>" msgstr "Además, puede añadir controles de la tienda a la barra de herramientas de su sitio web mediante <a %s>«widgets» nativos de WordPress</a>." #: templates/store-popup.php:74 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:86 msgid "Show categories" msgstr "Mostrar categorías" #: templates/store-popup.php:66 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:94 msgid "Show minicart" msgstr "Mostrar minicarrito" #: templates/store-popup.php:58 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:78 msgid "Show search" msgstr "Mostrar búsqueda" #: templates/store-popup.php:53 msgid "Product catalog will be shown automatically" msgstr "El catálogo de productos se mostrará automáticamente" #: templates/store-popup.php:52 msgid "Choose widgets to show" msgstr "Elija los «widgets» a mostrar" #: templates/admin/welcome-create.php:7 msgid "Connect your store" msgstr "Conecte su tienda" #: templates/admin/welcome-no_oauth.php:6 #: templates/importer/import-no-token.tpl.php:6 #: includes/class-ecwid-message-manager.php:291 msgid "Connect" msgstr "Conectar" #: templates/admin/legacy-connect.tpl.php:68 msgid "Save and connect your %s store to the site" msgstr "Guarde y conecte su tienda de %s al sitio web" #: templates/admin/legacy-connect.tpl.php:59 msgid "Enter your Store ID here:" msgstr "Introduzca el ID de su tienda aquí:" #: templates/admin/legacy-connect.tpl.php:52 msgid "Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the \"Dashboard\" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration." msgstr "El ID de la tienda es un identificador único de cualquier tienda de %1$s, el cual consta de varios dígitos. Puede encontrarlo en la página «Panel» del panel de control de %1$s. El ID de la tienda se enviará en el correo electrónico de bienvenida después del registro." #: templates/admin/legacy-connect.tpl.php:50 msgid "Find your Store ID" msgstr "Encuentre el ID de su tienda" #: templates/admin/legacy-connect.tpl.php:46 msgid "You will be able to sign up through your existing Google, Facebook or PayPal profiles as well." msgstr "También podrá registrarse a través de sus perfiles existentes de Google, Facebook o PayPal." #: templates/admin/legacy-connect.tpl.php:42 msgid "I already have an account, sign in" msgstr "Ya tengo una cuenta, iniciar sesión" #: templates/admin/legacy-connect.tpl.php:35 msgid "Create a new %s account which you will use to manage your store and inventory. The registration is free." msgstr "Cree una nueva cuenta de %s que utilizará para gestionar su tienda e inventario. El registro es gratuito." #: templates/admin/legacy-connect.tpl.php:24 msgid "The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps." msgstr "El primer paso para abrir su negocio en línea: <br />añadamos una tienda a su sitio web de WordPress en <strong>3</strong> simples pasos." #: templates/admin/legacy-connect.tpl.php:21 msgid "Thank you for choosing %s to build your online store" msgstr "Gracias por elegir %s para construir su tienda en línea" #: templates/admin/simple-dashboard.php:58 msgid "Open control panel" msgstr "Abrir el panel de control" #: templates/admin/simple-dashboard.php:42 msgid "Your %s store is connected<br /> to your WordPress website" msgstr "Su tienda de %s está conectada<br /> a su sitio web de WordPress" #: templates/admin/simple-dashboard.php:39 msgid "Greetings!" msgstr "¡Saludos!" #: templates/admin/simple-dashboard.php:34 msgid "Your %s store is now connected<br /> to your WordPress website" msgstr "Su tienda de %s ahora está conectada<br /> a su sitio web de WordPress" #: templates/admin/simple-dashboard.php:31 msgid "Congratulations!" msgstr "¡Enhorabuena!" #: templates/admin/simple-dashboard.php:18 msgid "Disconnect store" msgstr "Desconectar tienda" #: templates/admin/legacy-connect.tpl.php:65 #: templates/admin/simple-dashboard.php:14 templates/store-popup.php:244 #: templates/store-svg.php:14 #: includes/integrations/class-ecwid-integration-gutenberg.php:104 #: includes/gutenberg/class-ecwid-gutenberg.php:130 msgid "Store ID" msgstr "ID de la tienda" #: templates/admin/welcome-connection-message.php:15 msgid "Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again." msgstr "Error de conexión: después de hacer clic en el botón, debe iniciar sesión y otorgar los permisos para poder utilizar nuestro complemento. Inténtelo de nuevo." #: templates/admin/legacy-connect.tpl.php:57 #: templates/admin/welcome-no_oauth.php:3 msgid "Enter your Store ID" msgstr "Introduzca el ID de su tienda" #: templates/store-popup.php:221 msgid "Default view mode on search results" msgstr "Modo de vista predeterminado en los resultados de búsqueda" #: templates/store-popup.php:214 templates/store-popup.php:232 msgid "Table" msgstr "Tabla" #: templates/store-popup.php:211 templates/store-popup.php:229 msgid "List" msgstr "Lista" #: templates/store-popup.php:208 templates/store-popup.php:226 msgid "Grid" msgstr "Cuadrícula" #: templates/store-popup.php:204 msgid "Default view mode on product pages" msgstr "Modo de vista predeterminado en las páginas de productos" #: templates/store-popup.php:184 msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products." msgstr "Aquí puede gestionar cuántos productos se mostrarán por página. Estas opciones definen valores máximos. Si no hay suficiente espacio para mostrar todas las columnas de productos, %s adaptará el número de columnas para mantener todos los productos." #: templates/store-popup.php:169 msgid "Table view" msgstr "Vista de tabla" #: templates/store-popup.php:152 msgid "List view" msgstr "Vista de lista" #: templates/store-popup.php:125 msgid "Grid view" msgstr "Vista de cuadrícula" #: templates/store-popup.php:123 msgid "Number of products per page" msgstr "Número de productos por página" #: templates/store-popup.php:191 msgid "Number of categories per row" msgstr "Número de categorías por fila" #: templates/advanced-settings.php:98 msgid "Save changes" msgstr "Guardar cambios" #: includes/class-ecwid-product-browser.php:202 msgid "Default category ID" msgstr "ID de categoría predeterminada" #: templates/store-popup.php:98 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:127 #: includes/integrations/class-ecwid-integration-gutenberg.php:427 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:56 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:248 msgid "Store root category" msgstr "Categoría raíz de la tienda" #: templates/store-popup.php:90 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:101 msgid "Category shown by default" msgstr "Categoría mostrada por defecto" #: templates/admin-message.php:47 msgid "Never show this message again" msgstr "Nunca mostrar este mensaje otra vez" #: templates/product-popup.php:194 lib/ecwid_platform.php:209 #: js/gutenberg/blocks.build.js:1 msgid "Price" msgstr "Precio" #: includes/class-ecwid-store-editor.php:75 #: includes/integrations/class-ecwid-integration-gutenberg.php:102 #: includes/gutenberg/class-ecwid-gutenberg.php:128 msgid "Edit Appearance" msgstr "Editar apariencia" #: includes/class-ecwid-store-editor.php:60 msgid "Edit Store" msgstr "Editar tienda" #: templates/store-popup.php:11 templates/store-popup.php:21 #: includes/class-ecwid-store-editor.php:52 msgid "Add Store" msgstr "Añadir tienda" #: includes/class-ecwid-message-manager.php:261 msgid "Back to Store Settings" msgstr "Regresar a la configuración de la tienda" #: includes/class-ecwid-message-manager.php:252 msgid "Your store is almost ready!" msgstr "¡Su tienda ya está casi lista!" #: includes/class-ecwid-message-manager.php:243 msgid "Take a few simple steps to complete store setup" msgstr "Siga unos sencillos pasos para completar la configuración de la tienda" #: includes/widgets/class-ecwid-widget-products-base.php:205 msgid "Number of products to show" msgstr "Número de productos para mostrar" #: includes/widgets/class-ecwid-widget-recently-viewed.php:89 msgid "Store Link Title" msgstr "Título del enlace de la tienda" #: templates/product-popup.php:183 includes/class-ecwid-product-browser.php:249 #: includes/widgets/class-ecwid-widget-products-base.php:199 #: js/gutenberg/blocks.build.js:1 msgid "Title" msgstr "Título" #: includes/widgets/class-ecwid-widget-recently-viewed.php:69 #: includes/widgets/class-ecwid-widget-recently-viewed.php:91 msgid "You have not viewed any product yet. Open store." msgstr "Aún no ha visto ningún producto. Abra la tienda." #: includes/widgets/class-ecwid-widget-recently-viewed.php:11 msgid "Recently Viewed Products" msgstr "Productos vistos recientemente" #: includes/widgets/class-ecwid-widget-recently-viewed.php:12 msgid "Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop." msgstr "Muestra una lista de productos vistos recientemente por el cliente para volver fácilmente a los productos que vieron en su tienda." #: includes/widgets/class-ecwid-widget-store-link.php:35 msgid "Text" msgstr "Texto" #: includes/themes/class-ecwid-theme-twentyseventeen.php:48 #: includes/themes/class-ecwid-theme-twentyseventeen.php:54 #: includes/themes/class-ecwid-theme-twentyfifteen.php:34 #: includes/themes/class-ecwid-theme-twentyfifteen.php:40 #: includes/themes/class-ecwid-theme-twentysixteen.php:36 #: includes/themes/class-ecwid-theme-twentysixteen.php:42 #: includes/widgets/class-ecwid-widget-store-link.php:31 msgid "Shop" msgstr "Tienda" #: includes/widgets/class-ecwid-widget-store-link.php:10 msgid "Store Page Link" msgstr "Enlace a la página de la tienda" #: includes/widgets/class-ecwid-widget-store-link.php:9 msgid "Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site." msgstr "Muestra un enlace a la página de la tienda en la barra lateral para que el cliente acceda rápidamente a su tienda desde cualquier página del sitio web." #: includes/widgets/class-ecwid-widget-vcategories.php:9 msgid "Store Categories" msgstr "Categorías de la tienda" #: includes/widgets/class-ecwid-widget-vcategories.php:8 msgid "Adds vertical categories block to let the customer navigate your store." msgstr "Añade un bloque de categorías verticales para permitir que el cliente navegue por su tienda." #: includes/class-ecwid-nav-menus.php:344 #: includes/class-ecwid-nav-menus.php:347 #: includes/widgets/class-ecwid-widget-search.php:13 msgid "Product Search" msgstr "Búsqueda de productos" #: includes/widgets/class-ecwid-widget-search.php:12 msgid "Displays a simple search box for your customers to find a product in your store" msgstr "Muestra un cuadro de búsqueda simple para que sus clientes encuentren un producto en su tienda." #: includes/widgets/class-ecwid-widget-minicart-miniview.php:8 msgid "Adds a compact cart widget for customer to see the products they added to the cart." msgstr "Añade un «widget» de carrito compacto para que el cliente vea los productos que se han añadido al carrito." #: includes/widgets/class-ecwid-widget-minicart.php:41 #: includes/widgets/class-ecwid-widget-random-product.php:67 #: includes/widgets/class-ecwid-widget-search.php:46 #: includes/widgets/nsf-minicart-editor.tpl.php:50 #: includes/widgets/class-ecwid-widget-minicart-miniview.php:41 #: includes/widgets/class-ecwid-widget-vcategories.php:39 #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:76 msgid "Title:" msgstr "Título:" #: includes/class-ecwid-nav-menus.php:338 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:20 msgid "Shopping Cart" msgstr "Carrito de compras" #: includes/widgets/class-ecwid-widget-minicart.php:8 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:19 msgid "Adds a cart widget for customer to see the products they added to the cart." msgstr "Añade un «widget» de carrito para que el cliente vea los productos que se han añadido al carrito." #: includes/widgets/class-ecwid-widget-badge.php:51 #: includes/widgets/class-ecwid-widget-badge.php:63 msgid "Ecwid e-commerce widgets" msgstr "«Widget» de comercio electrónico de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:45 #: includes/widgets/class-ecwid-widget-badge.php:57 msgid "Ecwid shopping cart" msgstr "Carrito de compras de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:39 #: includes/widgets/class-ecwid-widget-badge.php:75 msgid "Ecwid free shopping cart" msgstr "Carrito de compras gratuito de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:33 #: includes/widgets/class-ecwid-widget-badge.php:69 msgid "Ecwid ecommerce solution" msgstr "Solución de comercio electrónico de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:21 #: includes/widgets/class-ecwid-widget-badge.php:27 msgid "Ecwid shopping cart widget" msgstr "«Widget» de carrito de compras de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:14 msgid "Ecwid Badge" msgstr "Distintivo de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:13 msgid "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid." msgstr "¿Le gusta Ecwid y quiere ayudarlo a crecer? Puede añadir este elegante distintivo «Powered by Ecwid» en su sitio web para mostrarles a sus visitantes que es un usuario orgulloso de Ecwid." #: ecwid-shopping-cart.php:2791 msgid "Recommendations for Your Online Store" msgstr "Recomendaciones para su tienda en línea" #: includes/class-ecwid-admin.php:528 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:77 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:87 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:95 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:103 #: ecwid-shopping-cart.php:2056 msgid "Settings" msgstr "Configuraciones" #: includes/class-ecwid-admin.php:165 msgid "Advanced" msgstr "Avanzado" #: includes/class-ecwid-admin.php:164 msgid "Advanced settings" msgstr "Configuraciones avanzadas" #: templates/product-popup.php:206 templates/store-popup.php:14 #: templates/store-popup.php:34 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:44 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:78 #: js/gutenberg/blocks.build.js:1 msgid "Appearance" msgstr "Apariencia" #: includes/class-ecwid-admin.php:28 includes/class-ecwid-admin.php:59 #: includes/class-ecwid-admin.php:459 ecwid-shopping-cart.php:2110 msgid "Dashboard" msgstr "Panel" #: includes/class-ecwid-admin.php:57 ecwid-shopping-cart.php:2056 msgid "Setup" msgstr "Configuración" #: includes/class-ecwid-admin.php:47 msgid "%s shopping cart settings" msgstr "Configuraciones del carrito de compras de %s" #: includes/class-ecwid-nav-menus.php:132 #: includes/class-ecwid-nav-menus.php:361 #: includes/class-ecwid-nav-menus.php:364 #: includes/class-ecwid-nav-menus.php:372 includes/class-ecwid-admin.php:206 #: includes/class-ecwid-admin.php:207 includes/class-ecwid-admin.php:220 #: includes/class-ecwid-admin.php:221 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:63 #: includes/class-ecwid-admin-storefront-page.php:257 #: ecwid-shopping-cart.php:1657 msgid "Store" msgstr "Tienda" #: ecwid-shopping-cart.php:1306 msgid "<a %s>Online store powered by %s</a>" msgstr "<a %s>Tienda en línea con tecnología de %s</a>" #: includes/class-ecwid-admin.php:489 msgid "Sell on Facebook" msgstr "Vender en Facebook" #: templates/admin/simple-dashboard.php:48 ecwid-shopping-cart.php:1094 msgid "Visit storefront" msgstr "Visitar escaparate virtual" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/languages/ecwid-shopping-cart-es_CL.mo������������������������������������������0000644�����������������00000225044�15122273603�0017560 0����������������������������������������������������������������������������������������������������ustar�00�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������e�����D��5��l&������@3�����A3��H���Y3�����3�����3�����3�����3�����3�� ���3��.���3�� ���4�� ��� 4�����,4�����J4�����e4����4�����g6��B���6�����6�����6�����6�����7��$���97�����^7�����r7�����7�����7��/���r8�� ���8�� ���8�����8�����8�����8�����8�����9��#���%9�� ���I9�����T9�����o9�����~9�� ���9�� ���9��>���9��"��� :�����-:�����:��k���:��K���h;��S���;��A���<��R���J<��G���<��4���<�� ���=�����&=�����/=��&���A=�����h=��T���{=�� ���=�����=�����=�����=�����>�����>�����#>�� ���*>�����8>�����?>�� ���G>�� ���S>�� ���`>�����l>�����>��4���>�� ���>�����>�����>�����>��X���>�� ���V?�����`?��/���g?��,���?�����?�����?�����?�� ���?�� ���?�����?�� ���?����� @�����@�����,@�����A@�����[@�����{@�����@�����@�����@�����@�����@�����@��.���@�����A�����5A��D���LA�����A�����A�� ���A�� ���A�����A�����A�����A����� B����� B��x���3B�����B�� ���B�����B�� ���B�����B�����C�����C�����*C�� ���=C�����JC��5���\C��h���C�����C�����D�� ���D�� ���D��5���D�����E�� ���E��x���%E��i���E�����F�����F�����4F�����QF�����bF�����F�� ���F�����F�����G�����$G��"���7G��#���ZG��/���~G�� ���G�� ���G�����G�����G�����G�����G�����H�����H�����-H�����?H��!���WH�����yH�����H��6���H��!���H�����H��*���I��%���:I�����`I��'���vI�����I�����I��,���I�����I��q���J��s���yJ��#���J��H���K��O���ZK��1���K��s���K�� ���PL�����\L��v���L�����uM��$���zM�����M�����M�����M�� ���M�����M�����M����� N��s���N�����N�����N�����N��=��N�����P����P����Q�����R�����R����� S�����S�� ��� S�� ���.S�� ���;S�� ���FS�� ���TS�����^S�����S�����T�����T�����T��B���T��$���)U�����NU�����VU�����mU�� ���U�����U�����U�� ���U�����U�� ���U��(���U�����V�� ���V�����V�����#V��.���V�����W��D���W��h���%X�����X��_���X��C���X�����7Y�����IY��/���_Y��/���Y�����Y��/���Y��(���Z�����-Z��9���GZ��I���Z��2���Z��"���Z��:���![�����\[��"���t[��!���[�����[�����[�����[�����[��$��� \��*���1\��B���\\�����\�� ���\�����\�� ���\�����\��+���\�����]��-���,]��P���Z]�����]��#���]��'���]��)��� ^�� ���7^�����X^��%���g^��+���^��+���^�����^�����_�����_�����!_�� ���2_��$���?_��9���d_��%���_��:���_�����_�����`�����`�����&`�����(`�� ���=`�� ���K`�� ���Y`�� ���c`�����o`�����`�����`�� ���`�����`�����`�� ���`�����`�����`�� ���`�����`�����oa�����a�����a��S���a�����a��'���a��[���'b�� ���b�����b�� ���b�����b�� ���b�� ���b�����b�����b�� ���b��9���b�����c�� ���:c�� ���Dc�� ���Nc�� ���Xc�����bc�����wc��I���Jd�����d�����d�����d�� ���d�� ���d�� ���e�����e�� ��� e�����-e�����@e�����Ue�����]e�����de�����je�����if��#���Og�����sg�� ���g�����g�����lh�����th�� ���i�� ���i�����i�����%i��O��*i��4���zj�����j�� ���j�� ���j�����j�����j�� ���j�����j�� ����k����� k�����k�����'k�����:k�����Rk�� ���jk�����vk�����k�����k�����k��+���k�����k�� ��� l�����l�����*l�����Bl�����al�� ���xl�����l��I���l��'���l�����m�����m�����$m�����=m�����Em��#���Xm�� ���|m�����m�� ���m�����m�����m�����m��"���m�����m��%���n�� ���4n�����>n�����Vn�����en�����n�����n�����n�����n�����n�����n�����n��*���n�� ���n�����n�����n�����o�����o�����/o�� ���8o�����Co�����So�����do�����vo�� ���o��"���o�����o�����o�� ���o�����o�����o�����p����� p�����p�� ���"p�����0p��#���Kp�����op�����p�����p�����p�����p�����p��V���p�� ���Bq�� ���cq�����qq�� ���q�����q��&���q��(���q�����q�����r�� ���&r�����2r�� ���Br�� ��cr�� ���ns�����ys��(���s��*���s����s�� ���ow�� ���zw�����w�����w��.���$x�����Sx�����Yx�����jx�����x�����x�����x�����x�����x�����y�����z�����0z�� ���Az�����Lz�����\z�����rz�����z�����z�����z�����z�����z�����z�� ���z�����{�����{�����${�����4{�����I{�� ���O{��/���Z{��N���{�����{�� ���{��4���{�����|��=���|�����}��-���}�����}��%���~��M���~�������P�����H���h��P��������������� ����� ���"�����/�����A�����H�����ۀ������� ��4��E��>�������]��������l��%��^��*����*����y���ڊ��>���T�������h���5��L���������� ������������������,�����5�����<�����P�����l�����|�������������������������ԍ����������������� �����!��� ��j���B����������E��^���ŏ�����$�����,�����F�� ���V�����c������� ���������C����B����k���@���������������V�� ������0���!��^���R�������:���Ę��>��������>�����N�����j�� �����2�����?���Ù����������֚������������y�����A��������Q�����o������:��������J�����_�� �����"��������Þ��"���ߞ��H�����)���K�����u�������&�����(���ן���������������� �����4����G�����$��e���:��'��������Ȣ�� ���ˢ�����֢�� ����������5����� ���M�� ���Y�����f�������,�������̣�����W��B���v��!��������ۦ��!����������0���=�����n����������������*���������������(�����!���1�����S��*���p�������+����� �����!����������6���)��1���`�������C�����/����������!��������2��e�����n���&��Z�����o�����^���`��R�������������,�����5��5���O�������h����� ��� �� �����!���!��)���C�����m�����}�������������������������������� ���Ӱ������������:��������O�� ���`�����n�������`����� ����� �����=�����9���W�������������������������β�� ����� ����� �����%�����!���(�����J��5���j��(��������ɳ��%���ҳ�������!���������"�����2��C���B��(����������g���ϴ�����7�����Q��.���j�������������������������ҵ������������%�����!���Ŷ�� �����!�������������-�����J�����e�� ����������8�����j��������O������� ��������(��I���7��$���������������x���@�������'���Ѻ��5��������/�����G�������������������������6��9���U��;�����0���˼���������������,�����4�����H�����b�����u�����������������2�����!�����#���5��I���Y��+��������Ͼ��6�����/���%�����U��2���s��&��������Ϳ��E��������2�����D�������*���c��P�����`�����:���@�����{�� ��� ���������������U��3���[������������'���������������5��������D�����`��,�����+��� ��$���L��t��q�������A����h�������6��)���R�����|����������������� �����$�������������������������$����������Y�����*���?�����j�����r�����������������%������������� �� ���$��4���/�� ���d�����p������������;����������D�����g��������l��p���t��Q��������7�����K��]���c��>�����������D�����1���_�������I�����g�����/���[��$�����7����������0�����%���8��"���^������������%�����/�����7�����@���1��.���r�������#����� ����������)����������>���,��h���k��!�����%�����1�����3���N��'����������(�����)�����)��������B�����a�����������������-�����E�����-���+��8���Y������� ��������������� ����������������������� �����7�����J�����R�����[�� ���m�����w������������������������������}������������s��������*��/���E��q���u������������ ��������&�� ���-�� ���7�� ���A�����L�� ���S��A���_��#��������������� ����� ����������)����c���H������� �����!���������� ��������+��#���<�����`�����q����������������������I���������%��������(�� ���:�����G����������$���������������������������9���������� ����� ����� ����� ��� ����������*�����1�����B�����K�����f��#�����%��������������� ����� �����+���5��7���a��"���������������*�����1�����$���C�����h�� ���}��a�����0�������������/�����?�����^�� ���g��4����� ������������������������������5���-�����c��(����� �����"����������"������������������ �����"�����&�����-�����>��-���F�����t�����������������"���������������������������������2�����E��0���T��&��������������������������������� ����������#��"���6��+���Y�������/�����!����������+��������(�����<��(������������������ ��$���;��8���`��8�����)�����#�������� �����2��)���N��M��x�������$�����2�����L���-��,��z�� ��������������������?���������������!�����#��������7�����V�����u��������������3�����S�����l�� �������������������������$�����$���+�����P�����n�������������������������������������G�����W���C������������8����������Y����������:���z�����'����_��������X���&�^����U�������4����<� ���Q� ���^����l������������M�����#��������� �u���= ��� �@�� �@���U��H�����P���:�����~���:�a�����������1����E����]����v� ��������$������������ ���� ��������,���6����c������������� ����#���������������(�]���� ��� ��������0� ���I����W�����V��&����}���U�`������H�+�����������'��� �2��� �^����!����_!�A���v!�G���!�����"����"�$���6"� ���["�8���g"�;���"�5��"� ���$����3$����$����$�R���%����%���� &���-&�[��� (����e(� ���}(����(�"���(����(�"���(�H���(�)���9)����c)�(���~)����)����)����)����)����)����*��������I����������������k������R��W��y����$��%���������������������������������������#�����y���R��#��������J���Z���������?���B��^��>������������������������� ��� ��3����1�����U������>�������K��q����������������������-���������������������v���8������:���/������g��d�����������������S��?�����������������������'���������,������������j��Z��������P���������W������������S���������]����������T����������� �������6�������������������r�������������c��9����������,������������������k��������������%���������������������������������������������L���"�������a����������W��t�������������������}��.������ ��$������K������G���������~���������������0������w������������E��������7����������������������������Q��������F������������������:��\�����������������O�����X��'��*��3������1������ ���������������������u������������9�����E�����������C�����������������������������?������8��a��_���b�������L������@��&������*��I��C���J�����Y���������D������������$���������;��F���������N������G������'���������������0�����@�����^��������c�����������������u����>��:��������.�����������M��j���[��S����������������4������� ������������H�������������@���������������K�����]���������P���&�������������������%���� ��c������h��X���A��������#�����������z�������3�����(����������������������������������������������Q��������e�������������-����������i���������D����p�������!��������������(������������X��5����7���������=��������������;������N���������P������������������T��������������\������Z����������������������&����� ��������� ���`�������|�����������`������������<���������e���+�������A�����=����������������������)�������Q������������������������f��!����� ���b��a���M��{�������<��7�������������������������������������H��������6��O��s���`����������9�����*���������-��}���"���������r���������0��������������{������������������������������������l��H����������v����d��/����� ��]���t���p�����2�����������d��������g������U���������C�������w���������[���l������������������������<��������� ���o���1��� ����������V��f������N�� ��E��������������������������������� �����������������������/������,��������~�����������������������!������[����n�����������_��"�����(�������2���J��x��h���_���� ��������o������M������4��=��8������������2����� ��4������������m���������������������������5��n��I���;�����)������6��L��V������������+����+��A�������������������������Y��B��F������ �������)��������m��i�����������5���^������|���z���������������������U����������x�����������\����q������������O���������������V����������b���������������������������������������Y�������������.�����D������������������B�������G��s�������������R�����T����e���������� Choose another product� Thank you very much for contacting us! We will get back to you shortly.�"In stock" label�%s�%s Blog�%s Shopping Cart�%s Store�%s Store Page�%s plugin doesn't work well with my "%s" theme�%s product�%s products�%s products and %s categories�%s products and categories�%s shopping cart settings�%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site.�%s — Advanced settings�(You will be able to confirm the changes before the actual import)�2 columns, image on the left�2 columns, image on the right�3 columns, image on the left�3 columns, image on the right�<a %s>Online store powered by %s</a>�<a %s>Reconnect</a>�<a href="admin.php?page=�<b>%s</b> categories�A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use "/shop" or "/products".�Action required: please connect your %s account�Add Product�Add Store�Add Store Page to Menu�Add a category page�Add a product page�Add a search and filters page�Add a store page�Add an Online Store to Your Website�Add border�Add cart and checkout page�Add categories�Add store page to the site menu�Add storefront (product listing)�Add to Menu�Add your %s store to the website and start selling in minutes.�Add your store to other site pages�Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href="%s" target="_blank">WordPress Settings > Reading</a>�Additional store pages�Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>�Adds a cart widget for customer to see the products they added to the cart.�Adds a compact cart widget for customer to see the products they added to the cart.�Adds a shopping cart widget to the top right corner of your site.�Adds root categories list to the sidebar to let your customers navigate the store.�Adds vertical categories block to let the customer navigate your store.�Adjust your store design to fit your business needs.�Admin Label�Advanced�Advanced settings�After import, your %s store will have �All Sales Channels�Along with the store catalog, you can add other widgets and texts to the store page.�Appearance�Apps�Available qty in stock�Back to Store Settings�Background color�Bag�Basket�Before You Go�Border�Border:�Bottom left�Bottom right�Breadcrumbs�Browse all products.�Browse by Category�Bulk import products and categories to your %s store�Button color�Buy Now�Buy Now Button�Buy now buttons�By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>.�CSS Class�CSS ID�Can you share the name of the plugin you chose?�Can you share your feedback? What was wrong?�Cancel�Cart�Cart and Checkout�Cart icon�Cart icon:�Catalog�Categories�Category�Category List Appearance�Category card layout�Category shown by default�Category thumbnail aspect ratio�Category thumbnail size�Center�Center align on a page�Change�Change store content�Choose Product�Choose product�Choose product properties to display in widget�Choose the main store page�Choose widgets to show�Click the connect button to get rights to update the product catalog�Color settings�Complete Setup�Complete setup and start selling�Configuration�Congratulations!�Connect�Connect Your Store�Connect your %s store�Connect your store�Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again.�Contact Support�Contact us�Content�Copying products and categories.�Create Cart Page�Create Category Page�Create Product Page�Create Search Page�Create Store�Create Store Page�Create a landing page featuring one of your products.�Create a new %s account which you will use to manage your store and inventory. The registration is free.�Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website.�Create new account�Create store�Current Page�Current URL slug: /<span data-ec-store-slug>%s</span>�Customer Single Sign-On�Customers�Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers.�Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout.�Customize design�Customize store appearance�Customize store page address�Customize widget�Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand.�Cyan bluish gray�Dashboard�Default category�Default category ID�Default product_ID�Default view mode on product pages�Default view mode on search results�Deleted products synchronized: %1$s out of %2$s�Demo Store�Demo store�Design�Design and content�Detect automatically�Disconnect store�Display a buy button�Display breadcrumbs�Display cart icon�Display categories menu�Display categories navigation bar�Display category page�Display footer menu�Display product page with description and a buy button�Display product with a buy button�Display search box�Display search page with filters on a side�Display shopping bag link and summary�Display shopping cart�Display shopping cart and checkout page�Display sign in link�Display sort by link�Display the shopping cart icon on site pages�Displayed product�Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site.�Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop.�Displays a list of random products.�Displays a random product from your store to attract customer attention.�Displays a simple search box for your customers to find a product in your store�Displays storefront: product listing and checkout�Displays the latest added products from your store. Show new products to returning customers to drive repeat sales.�Do not show�Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid.�Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site.�Done�Download <a href="%s">import log</a>�Download log file�Draft�E.g. How to set up shipping�Ecwid Badge�Ecwid Ecommerce�Ecwid Ecommerce Shopping Cart�Ecwid Menu Item�Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center�Ecwid e-commerce widgets�Ecwid ecommerce solution�Ecwid free shopping cart�Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">More details.</a>�Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up.�Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href="%s">TemplateMonster themes</a>�Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">More details.</a>�Ecwid shopping cart�Ecwid shopping cart widget�Edit�Edit Appearance�Edit Category�Edit Product�Edit Store�Edit URL Slug�Edit page�Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page.�Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space.�Enter your Store ID�Enter your Store ID here:�Extensions for your Store�Feature a specific store category on a separate page of your site.�Feature your products in the sidebar�Filters�Filters panel position�Find your Store ID�First Page�Frequently Asked Questions�Get %s mobile app�Go to Pages�Go to Your %s Products�Greetings!�Greetings! Your %s plugin is now active.�Grid�Grid view�Help�Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars.�Help customers find your store on the website.�Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products.�Here you can create the content that will be used within the module.�Here, we will help you uploading your product catalog to %s from another shopping cart or other sources.�Hide�Highlight products, categories, and other store pages by adding them to separate website pages.�Highlight your best sellers or new products in the website sidebar.�Horizontal indent�Horizontal thumbnails�How can I add a cart widget to my site sidebar?�How can I manage my store from a mobile device?�How can we help you?�How do I add store categories to the site menu?�How do I put my products in the sitemap?�How much does Ecwid cost?�How secure is this plugin? Is my store PCI DSS compliant?�How to add a single product with the add to bag button to the site pages?�How to set up a storefront on Facebook with Ecwid?�I already have an account, sign in�I couldn’t find a WordPress theme that goes well with %s�I found a better plugin�I have a problem using this plugin�I have a problem with my %s store�I use this WordPress theme: %s�Icon�Icon and item count�Icon, label and item count�Icon, label, item count and subtotal�Icon, label, item count, subtotal and link�If you have a moment, please let us know why you are deactivating:�Image and title on mouse over�Image feed�Image gallery layout�Image only�Import�Import Your Products From Woocommerce to %s�Import completed�Import completed. <a href="%s">Run again.</a>�Import creates new products and update the existing products with matching SKUs.�Import is in Progress�Import my products from WooCommerce�Import product catalog from WooCommerce�Import product catalog from other sources�Import products to your %s store�Import summary�Import your WooCommerce catalog to %s�Import your products from WooCommerce to %s�Import your products from Woocommerce to %s�Imported <b>%s</b> products�Importing %s of %s items�Insert�Insert into page�Instant site�Integration with search on your site�Is it possible to display my store on the site home page?�Is there a WordPress theme for Ecwid?�It's a temporary deactivation. Please do not ask me again.�Item count only�Justify�Knowledge Base�L�Label and item count�Landscape 3:2�Landscape 4:3�Last Page�Last update�Latest Products�Layout�Layout:�Learn more�Left�Light green cyan�Link color�Linked product�List�List view�Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL.�Luminous vivid amber�Luminous vivid orange�M�Make your store accessible from the site menu so your customers can easily find it.�Manage Sidebar�Manage Store on iPhone, iPad or Android�Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page.�Manage store�Manage storefront�Marketing�Mobile�My Account�My Profile�My Sales�Name�Navigation�Need help importing your products from WooCommerce to %s?�Never show this message again�Next Page�Next page�No Thanks�No border�Not synchronized yet�Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The "Show on store pages" and "Show when empty" options will apply to the cart widget on site when published�Nothing found for <span class="empty-page__term">"{{ data.term }}"</span>�Number of categories per row�Number of products per page�Number of products to show�On the left�On the right�Online Store�Online Store Apps�Online store�Open control panel�Open store dashboard�Options�Orders�Other�Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target="_blank" href="%s">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans.�Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">our customer support team</a>.�Page with that name already exists.�Pale cyan blue�Pale pink�Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>�Payment�Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers.�Pick Category�Pick Product�Picture�Pill�Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target="_blank">"Billing & Plans"</a></nobr> page in your Ecwid store control panel.�Please subscribe to a paid plan to get this feature.�Plugins for Ecwid�Portrait 2:3�Portrait 3:4�Position�Preview�Previous Page�Price�Price color�Product�Product Card Large�Product Card Small�Product List Appearance�Product Page Appearance�Product SKU�Product Search�Product Search Box�Product Search and filters�Product card text align�Product catalog will be shown automatically�Product page layout�Product price�Product quantity�Product sidebar content�Product thumbnail aspect ratio�Product thumbnail size�Product title�Products�Products are successfully synchronized. The product pages are up to date.�Products synchronized: %1$s out of %2$s�Promote your store�Provide access.�Provided by <a %s>%s</a>�Publish�Publish Store Page�Publish the page to use this option�Published�Quantity�Questions?�Random Product�Random Products�Rate %s at WordPress.org�Re-connect to Enable Control Panel�Recently Viewed Products�Recommendations for Your Online Store�Rectangle�Refresh categories list�Register at %s�Report a problem with the store�Reports�Right�S�SKU�Sales�Sales channels�Save�Save and connect your %s store to the site�Save changes�Search�Search and Filters�Search products�Search the Knowledge Base�See more�Select All�Select category�Selected Product�Selected category�Sell on Facebook�Send Message�Send a message to our support team�Send message failed�Set Up Your Store�Set manually�Set up your store�Settings�Setup�Shipping & Pickup�Shop�Shopping Cart�Shopping Cart (deprecated)�Shopping Cart Floating (deprecated)�Shopping Cart Icon�Shopping Cart Mini (deprecated)�Shopping Cart Widget�Show�Show additional image on hover�Show categories�Show customers that they can use a search and filters to find desired products faster.�Show description under the image�Show minicart�Show on all pages�Show on hover�Show on store pages�Show price inside the "Buy now" button�Show price inside the «Buy now» button�Show product card border�Show product thumbnails�Show search�Show when empty�Show your store on the home page�Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again.�Small icon�Small icon and item count�Some of the items could not be imported.�Sorry we're having technical difficulties.�Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: "The Wordpress function wp_remote_post() failed to connect a remote server because of some error: "%s". Seems like HTTP POST requests are disabled on this server". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>.�Square 1:1�Start Import�Status�Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store.�Still have questions about Ecwid? Let us know!�Store�Store Categories�Store Categories Menu�Store Category Page�Store Front Page�Store Home Page�Store ID�Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the "Dashboard" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration.�Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>.�Store Link Title�Store Navigation�Store Page�Store Page Link�Store Root Categories�Store appearance�Store elements�Store management�Store page content�Store page on your site�Store root category�Store with Categories Menu�Storefront�Subject�Submit & Deactivate�Switch to draft�Synchronize products�Table�Table view�Take a few simple steps to complete store setup�Take advantage of powerful apps and extensions designed to enhance your store.�Text�Text color�Thank you for choosing %s to build your online store�The block is hidden because you don't have categories in your store. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Add categories.</a>�The category that is shown by default on the Store Front Page�The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps.�The plugin doesn't support the feature I want�The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href="%s" target="_blank">adjust the cart icon appearance</a>.�The store is not visible on your site�The store top-level categories are automatically added to this drop-down menu�Themes for Ecwid�This import will copy your WooCommerce products and categories to your %s store.�This is a demo store. Create your store to see your store products here.�This will change the label of the module in the builder for easy identification.�Title�Title on image�Title only�Title or SKU�Title under image�Title:�To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings.�To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>.�To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>�To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the "Add product" dialog.�To create sitemap for your Wordpress site we suggest using <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> or <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target="_blank" href="https://www.ecwid.com/pricing">paid Ecwid users</a>.�To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission.�To enable this feature, the plugin needs a permission to read your store product information.�To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">How to use it.</a>�To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>�To manage your store, go to <a %s>the Store Dashboard page</a>�To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission.�To show your storefront instead of the demo store, connect your existing %s account or create a new one.�To start selling, add a page to your site where the storefront will display.�Top left�Top right�Try another search.�Type in your message here�URL Slug�Update�Update your catalog�Upgrade to get this feature�Vertical indent�Vertical thumbnails�Very dark gray�Very light gray�View Store Page�View demo store page�View store page�Visit storefront�Vivid cyan blue�Vivid green cyan�Vivid red�Want to connect another %s store?�Warning: some of your online store features are disabled. Please contact your hosting provider to resolve.�We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?�We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you.�We're synchronizing your products. This may take a few minutes. Please do not reload the page.�Website�What feature do you need?�What was wrong?�What's next?�While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site.�Wholesale prices�You can add product search box, cart widget and more on the <a href="%s">"Appearance / Widgets page"</a> here in your site admin. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">More details.</a>�You can add the entire storefront, categories, products, or "Buy now" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block.�You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open "Appearance > Menus" in your WordPress control panel and add the "Store with Categories Menu" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site.�You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">More details.</a>�You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel.�You can display your store on the site main page. Adjust the "Reading" settings of your site as described in our <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">Help Center.</a>�You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href="%1$s">Appearance → Customize → %2$s</a>” menu to enable it.�You can enable filters in the store settings: (“<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Settings → Product Filters</a>”).�You can send a new request here.�You have not viewed any product yet. Open store.�You will be able to sign up through your existing Google, Facebook or PayPal profiles as well.�Your %s store has �Your %s store is connected<br /> to your WordPress website�Your %s store is now connected<br /> to your WordPress website�Your Storefront�Your WooCommerce store has �Your email has been sent�Your product�Your store Control Panel. Right here in WordPress.�Your store has been created. Preparing your store dashboard ...�Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar.�Your store is almost ready!�Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display.�Your store page�Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders.�Your store page is published. Customers can browse your store at �Your store will be shown here�Your store will be shown here!�Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data.�[%s] WordPress plugin deactivation feedback (store ID: %s)�customize appearance�gutenberg-product-blockContent�gutenberg-store-block-stubStore�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�or <a %s>Browse the Help Center�product-browser-attributesProduct SKU�product-browser-attributesProduct price�select product�selected product�vc-tabOnline store�«Buy now» button�PO-Revision-Date: 2020-10-12 12:46 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: Poedit 2.4.1 Language: es Project-Id-Version: temporary-strings X-Crowdin-Project: temporary-strings X-Crowdin-Project-ID: 295314 X-Crowdin-Language: es-ES X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po X-Crowdin-File-ID: 988 Language-Team: Spanish Last-Translator: � Elegir otro producto� ¡Muchas gracias por ponerse en contacto con nosotros! Nos pondremos en contacto con usted en breve.�Etiqueta de productos «En existencia»�%s�Blog de %s�Carrito de compras de %s�Tienda de %s�Página de la tienda de %s�El complemento %s no funciona bien con mi tema «%s»�%s producto�%s productos�%s productos y %s categorías�%s productos y categorías�Configuraciones del carrito de compras de %s�%s almacena los datos de sus productos de forma segura en la nube. Las páginas de productos se muestran sobre la marcha cuando un cliente navega por su tienda. Por lo que, básicamente, los productos no se almacenan en el sitio web, por eso la búsqueda en el sitio web no encuentra páginas de productos mientras busca en las páginas del sitio web y en las publicaciones. Esta opción habilita un modo de almacenamiento local: los productos se almacenarán tanto en la nube como en su sitio web. Los resultados de la búsqueda en el sitio web incluirán las páginas de productos, así como las páginas o publicaciones habituales de su sitio web.�%s — Configuración avanzada�(podrá confirmar los cambios antes de la importación definitiva)�2 columnas, imagen a la izquierda�2 columnas, imagen a la derecha�3 columnas, imagen a la izquierda�3 columnas, imagen a la derecha�<a %s>Tienda en línea con tecnología de %s</a>�<a %s>Volver a conectar</a>�<a href="admin.php?page=�<b>%s</b> categorías�Un «slug» es la última parte de una URL. Puede crear un «slug» personalizado para la página de su tienda. Es mejor que sea corto, ya que los clientes y los motores de búsqueda prefieren las URL cortas. Por ejemplo, utilice «/tienda» o «/productos».�Acción requerida: conecte su cuenta de %s�Añadir producto�Añadir tienda�Añadir la página de la tienda al menú�Añadir una página de categoría�Añadir página de productos�Añadir una página de búsqueda y filtros�Añadir una página de tienda�Añadir una tienda en línea a su sitio web�Añadir borde�Añadir carrito y página de pago�Añadir categorías�Añadir la página de la tienda al menú del sitio web�Añadir escaparate virtual (listado de productos)�Añadir al menú�Añada su tienda de %s al sitio web y comience a vender en minutos.�Añada su tienda a otras páginas del sitio web�Añada su escaparate virtual a la página de inicio del sitio web para que sea más notable. También puede modificar la configuración de la página de inicio del sitio web en <a href="%s" target="_blank">Configuración de WordPress > Lectura</a>.�Páginas adicionales de la tienda�Además, puede añadir controles de la tienda a la barra de herramientas de su sitio web mediante <a %s>«widgets» nativos de WordPress</a>.�Añade un «widget» de carrito para que el cliente vea los productos que se han añadido al carrito.�Añade un «widget» de carrito compacto para que el cliente vea los productos que se han añadido al carrito.�Añada un «widget» de carrito de compras en la esquina superior derecha de su sitio web.�Añade la lista de categorías raíz a la barra lateral para que sus clientes puedan desplazarse por la tienda.�Añade un bloque de categorías verticales para permitir que el cliente navegue por su tienda.�Ajuste el diseño de su tienda para que se adapte a las necesidades de su negocio.�Etiqueta de administrador�Avanzado�Configuraciones avanzadas�Después de la importación, su tienda de %s tendrá �Todos los canales de venta�Junto con el catálogo de la tienda, puede añadir otros «widgets» y textos a la página de la tienda.�Apariencia�Aplicaciones�Cantidad disponible en existencia�Regresar a la configuración de la tienda�Color del fondo�Bolsa�Cesta�Antes de que se vaya�Borde�Borde:�Abajo a la izquierda�Abajo a la derecha�Migas de pan�Explorar todos los productos.�Buscar por categoría�Importar en masa productos y categorías a su tienda de %s�Color del botón�Comprar ahora�Botón «Comprar ahora»�Botones de «Comprar ahora»�Al continuar, acepta los <a %s>Términos de servicio</a> y la <a %s>Política de privacidad</a>.�Clase CSS�ID de CSS�¿Podría compartir el nombre del complemento que ha elegido?�¿Podría compartir su opinión? ¿Qué fue lo que pasó?�Cancelar�Carrito�Carrito y pago�Icono del carrito de compras�Icono del carrito:�Catálogo�Categorías�Categoría�Apariencia de la lista de categorías�Diseño de la ficha de categoría�Categoría mostrada por defecto�Relación de aspecto de la miniatura de la categoría�Tamaño de la miniatura de la categoría�Centrado�Centrar la alineación en una página�Cambiar�Cambiar el contenido de la tienda�Elegir producto�Elegir producto�Elija las propiedades del producto para mostrarlas en el «widget»�Elegir la página principal de la tienda�Elija los «widgets» a mostrar�Haga clic en el botón «Conectar» para obtener los permisos para actualizar el catálogo de productos�Configuración de colores�Completar configuración�Complete la configuración y comience a vender�Configuración�¡Enhorabuena!�Conectar�Conecte su tienda�Conecte su tienda de %s�Conecte su tienda�Error de conexión: después de hacer clic en el botón, debe iniciar sesión y otorgar los permisos para poder utilizar nuestro complemento. Inténtelo de nuevo.�Ponerse en contacto con la asistencia�Póngase en contacto con nosotros�Contenido�Copia de productos y categorías.�Crear página del carrito�Crear página de categorías�Crear página de productos�Crear página de búsqueda�Crear tienda�Crear la página de la tienda�Cree una página de aterrizaje con uno de sus productos.�Cree una nueva cuenta de %s que utilizará para gestionar su tienda e inventario. El registro es gratuito.�Cree una nueva tienda o, si ya tiene una cuenta de %s, conéctela. El complemento le guiará a través de la configuración de la tienda y le ayudará a publicarla en su sitio web.�Crear una nueva cuenta�Crear tienda�Página actual�«Slug» actual de la dirección URL: /<span data-ec-store-slug>%s</span>�Inicio de sesión único del cliente�Clientes�Los clientes no pueden ver la página de su tienda porque está en un borrador. Publique la página para que esté disponible para sus clientes.�Los clientes van a la página del carrito para consultar los productos que han añadido al mismo y proceder con el pago.�Personalizar el diseño�Personalizar la apariencia de la tienda�Personalizar la dirección de la página de la tienda�Personalizar «widget»�Personalice la apariencia de su tienda para que se ajuste a las necesidades de su negocio. Cree la apariencia para su tienda que más se parezca a su marca.�Gris cian azulado�Panel�Categoría predeterminada�ID de categoría predeterminada�ID del producto predeterminado�Modo de vista predeterminado en las páginas de productos�Modo de vista predeterminado en los resultados de búsqueda�Productos eliminados sincronizados: %1$s de %2$s�Tienda de demostración�Tienda de demostración�Diseño�Diseño y contenido�Detectar automáticamente�Desconectar tienda�Mostrar un botón de compra�Mostrar migas de pan�Mostrar icono del carrito�Mostrar el menú de categorías�Mostrar la barra de navegación de las categorías�Mostrar la página de categorías�Mostrar el menú del pie de página�Mostrar la página de productos con la descripción y un botón de compra�Mostrar el producto con un botón de compra�Mostrar el cuadro de búsqueda�Mostrar página de búsqueda con los filtros a un lado�Mostrar enlace y resumen de la bolsa de compras�Mostrar el carrito de compras�Mostrar el carrito de compras y la página de pago�Mostrar el enlace de inicio de sesión�Mostrar «ordenar por enlace»�Muestre el icono del carrito de compras en las páginas del sitio web�Producto mostrado�Muestra un enlace a la página de la tienda en la barra lateral para que el cliente acceda rápidamente a su tienda desde cualquier página del sitio web.�Muestra una lista de productos vistos recientemente por el cliente para volver fácilmente a los productos que vieron en su tienda.�Muestra una lista de productos aleatorios.�Muestra un producto aleatorio de su tienda para atraer la atención del cliente.�Muestra un cuadro de búsqueda simple para que sus clientes encuentren un producto en su tienda.�Muestra el escaparate virtual: listado de productos y pago�Muestra los últimos productos añadidos de su tienda. Muestre nuevos productos a los clientes existentes para impulsar las ventas repetidas.�No mostrar�¿Le gusta Ecwid y quiere ayudarlo a crecer? Puede añadir este elegante distintivo «Powered by Ecwid» en su sitio web para mostrarles a sus visitantes que es un usuario orgulloso de Ecwid.�¿Le gusta su tienda de %s en línea? Apreciaríamos si comparte su opinión y vota por el complemento en el sitio de WordPress.�Hecho�Descargar <a href="%s">registro de importación</a>�Descargar archivo de registro�Borrador�Por ejemplo, cómo establecer el envío�Distintivo de Ecwid�Comercio electrónico Ecwid�Carrito de compras del comercio electrónico de Ecwid�Elemento del menú de Ecwid�Ecwid le permite subir sus productos en forma de archivo CSV. Obtenga más información sobre esta herramienta en el centro de asistencia de Ecwid�«Widget» de comercio electrónico de Ecwid�Solución de comercio electrónico de Ecwid�Carrito de compras gratuito de Ecwid�Ecwid cuenta con la certificación PCI DSS Nivel 1, que es el estándar de oro para las soluciones de comercio electrónico en todo el mundo. Esto significa que no tendrá problemas de cumplimiento bancario cuando venda en línea con Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">Más detalles.</a>�Ecwid es un carrito de compras gratuito con todas las funciones. Se puede integrar fácilmente con cualquier blog de Wordpress y se configura en menos de 5 minutos.�Ecwid es compatible con cualquier tema de WordPress. Ya sea un tema gratuito del catálogo de WordPress.org, un tema prémium de un proveedor externo o un tema personalizado; su tienda de Ecwid funcionará bien con cualquiera de ellos. Si desea un tema prémium, le recomendamos <a href="%s">temas de TemplateMonster</a>.�Ecwid ofrece aplicaciones móviles gratuitas para iOS y Android para que pueda gestionar su tienda y vender donde y cuando quiera. Escanee productos, supervise el inventario, gestione las ventas y acepte pagos utilizando su dispositivo móvil como una estación de punto de venta. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">Más detalles.</a>�Carrito de compras de Ecwid�«Widget» de carrito de compras de Ecwid�Editar�Editar apariencia�Editar categoría�Editar producto�Editar tienda�Editar «slug» de la dirección URL�Editar página�Introduzca un ID de CSS opcional que se utilizará para este módulo. Se puede utilizar un ID para crear un estilo CSS personalizado o para crear enlaces a secciones particulares de su página web.�Introduzca las clases CSS opcionales que se utilizarán para este módulo. Se puede utilizar una clase CSS para crear estilos CSS personalizados. Puede añadir varias clases separadas por un espacio.�Introduzca el ID de su tienda�Introduzca el ID de su tienda aquí:�Extensiones para su tienda�Destacar una categoría de la tienda específica en una página separada de su sitio web.�Destaque sus productos en la barra lateral�Filtros�Posición del panel de filtros�Encuentre el ID de su tienda�Primera página�Preguntas frecuentes�Descargue la aplicación móvil de %s�Ir a «Páginas»�Ir a sus productos de %s�¡Saludos!�¡Enhorabuena! Su complemento de %s ya está activo.�Cuadrícula�Vista de cuadrícula�Ayuda�Ayude a los clientes a encontrar su tienda en el sitio web. Añada el enlace de la tienda al menú del sitio web, cree páginas adicionales de la tienda y resalte los productos de la tienda en otras páginas del sitio web y en las barras laterales.�Ayude a los clientes a encontrar su tienda en el sitio web.�Aquí puede gestionar cuántos productos se mostrarán por página. Estas opciones definen valores máximos. Si no hay suficiente espacio para mostrar todas las columnas de productos, %s adaptará el número de columnas para mantener todos los productos.�Aquí puede crear el contenido que se utilizará dentro del módulo.�Aquí, le ayudaremos a subir su catálogo de productos a %s de otro carrito de compras u otras fuentes.�Ocultar�Destaque productos, categorías y otras páginas de la tienda añadiéndolas a páginas del sitio web separadas.�Destaque sus mejores ventas o nuevos productos en la barra lateral del sitio web.�Sangría horizontal�Miniaturas horizontales�¿Cómo puedo añadir un «widget» de carrito de compras a la barra lateral de mi sitio web?�¿Cómo puedo gestionar mi tienda desde un dispositivo móvil?�¿Cómo podemos ayudarle?�¿Cómo puedo añadir categorías de tiendas al menú del sitio web?�¿Cómo pongo mis productos en el mapa del sitio?�¿Cuánto cuesta Ecwid?�¿Qué tan seguro es este complemento? ¿Mi tienda cumple con el PCI DSS?�¿Cómo añadir un solo producto con el botón de «añadir a la bolsa» en las páginas del sitio web?�¿Cómo crear una tienda en Facebook con Ecwid?�Ya tengo una cuenta, iniciar sesión�No pude encontrar un tema de WordPress adecuado para %s�Encontré un mejor complemento�Tengo un problema con el uso de este complemento�Tengo un problema con mi tienda de %s�Utilizo este tema de WordPress: %s�Icono�Icono y total de artículos�Icono, etiqueta y total de artículos�Icono, etiqueta, total de artículos y subtotal�Icono, etiqueta, total de artículos, subtotal y enlace�Si tiene un momento, háganos saber por qué está desactivando:�Imagen y título al pasar el ratón por encima�Canal de imagen�Diseño de la galería de imágenes�Solo imagen�Importar�Importe sus productos de Woocommerce a %s�Importación completada�Importación completada. <a href="%s">Ejecútela de nuevo.</a>�La importación crea nuevos productos y actualiza los productos existentes con las REF correspondientes.�La importación está en progreso�Importar mis productos de WooCommerce�Importar el catálogo de productos de WooCommerce�Importar el catálogo de productos de otras fuentes�Importe los productos a su tienda de %s�Resumen de la importación�Importe su catálogo de WooCommerce a %s�Importe sus productos de WooCommerce a %s�Importe sus productos de Woocommerce a %s�<b>%s</b> productos importados�Importando %s de %s artículos�Insertar�Insertar en la página�Sitio web instantáneo�Integración con la búsqueda en su sitio web�¿Es posible mostrar mi tienda en la página de inicio del sitio web?�¿Existe algún tema de WordPress para Ecwid?�Es una desactivación temporal. No preguntarme de nuevo.�Solo el total de artículos�Justificado�Base de conocimiento�G�Etiqueta y y total de artículos�Horizontal 3:2�Horizontal 4:3�Última página�Última actualización�Últimos productos�Diseño�Diseño:�Más información�Izquierda�Cian verde claro�Color del enlace�Producto vinculado�Lista�Vista de lista�Parece que su sitio web no admite solicitudes POST remotas, las cuales son necesarias para que la API de %s funcione. Comuníquese con su proveedor de alojamiento web para habilitar cURL.�Ámbar vívido y brillante�Naranja vívido y brillante�M�Haga que su tienda sea accesible desde el menú del sitio web para que sus clientes puedan encontrarla fácilmente.�Gestionar la barra lateral�Gestione la tienda desde iPhone, iPad o Android�Gestione productos, supervise las ventas y ajuste la configuración: <nobr>todo sin</nobr> salir de esta página.�Gestionar la tienda�Gestionar escaparate virtual�Mercadotecnia�Móvil�Mi cuenta�Mi perfil�Mis ventas�Nombre�Navegación�¿Necesita ayuda para importar sus productos de WooCommerce a %s?�Nunca mostrar este mensaje otra vez�Página siguiente�Página siguiente�No, gracias�Sin borde�No se ha sincronizado todavía�Nota: cuando está habilitado, el «widget» del carrito siempre se mostrará en la vista previa para que sea más fácil personalizarlo. Las opciones «Mostrar en las páginas de la tienda» y «Mostrar cuando esté vacío» se aplicarán al «widget» del carrito en el sitio cuando se publiquen�No se ha encontrado nada en relación con <span class="empty-page__term">«{{ data.term }}»</span>�Número de categorías por fila�Número de productos por página�Número de productos para mostrar�A la izquierda�A la derecha�Tienda en línea�Aplicaciones de la tienda en línea�Tienda en línea�Abrir el panel de control�Abrir el panel de la tienda�Opciones�Pedidos�Otro�Nuestros 4 tipos de cuentas varían según la cantidad de productos, los tipos de funcionalidades y el nivel de asistencia. Para obtener más información, consulte nuestra <a target="_blank" href="%s">página de precios.</a><br /><br />Consejo profesional: también puede ahorrar dinero si se suscribe a nuestros planes anuales.�Nuestro equipo ya está trabajando en este asunto. Actualice la página en unos minutos. Si el problema persiste, comuníquese con <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">nuestro equipo de atención al cliente</a>.�Ya existe una página con ese nombre.�Azul cian pálido�Rosa pálido�Parte de los productos no se han copiado a %1$s porque alcanzó el límite de productos en su plan de precios en %1$s. Si desea importar más productos, considere <nobr><a %2$s>actualizar su plan de %1$s.</a></nobr>�Pago�Personalice la apariencia de su escaparate virtual y edite el contenido en la página de la tienda para reflejar su marca y mantenerse conectado con sus clientes.�Elegir una categoría�Elegir un producto�Imagen�Píldora�Tenga en cuenta el número máximo de productos y categorías que puede tener en su tienda de Ecwid. Esta herramienta de importación se detendrá automáticamente cuando se alcance el límite de productos de la tienda. Para conocer el límite actual de la tienda o aumentarlo, consulte la página <nobr><a %s target="_blank">«Facturación y planes»</a></nobr> ubicada en el panel de su tienda de Ecwid.�Suscríbase a un plan de pago para obtener esta función.�Complementos para Ecwid�Vertical 2:3�Vertical 3:4�Posición�Vista previa�Página anterior�Precio�Color del precio�Producto�Ficha de producto ampliada�Ficha de producto reducida�Apariencia de la lista de productos�Apariencia de la página del producto�REF del producto�Búsqueda de productos�Cuadro de búsqueda de productos�Búsqueda de productos y filtros�El texto de la ficha del producto se alinea�El catálogo de productos se mostrará automáticamente�Diseño de la página de productos�Precio del producto�Cantidad de productos�Contenido de la barra lateral de productos�Relación de aspecto de la miniatura del producto�Tamaño de la miniatura del producto�Título del producto�Productos�Los productos se sincronizaron satisfactoriamente. Las páginas de productos están actualizadas.�Productos eliminados sincronizados: %1$s de %2$s�Promocione su tienda�Otorgar acceso.�Proporcionado por <a %s>%s</a>�Publicar�Publicar la página de la tienda�Publique la página para poder utilizar esta opción�Publicada�Cantidad�¿Tiene alguna pregunta?�Producto aleatorio�Productos aleatorios�Tasa de %s en WordPress.org�Vuélvase a conectar para activar el panel de control�Productos vistos recientemente�Recomendaciones para su tienda en línea�Rectángulo�Actualizar la lista de categorías�Registrarse en %s�Informar un problema con la tienda�Informes�Derecha�P�REF�Ventas�Canales de venta�Guardar�Guarde y conecte su tienda de %s al sitio web�Guardar cambios�Buscar�Búsqueda y filtros�Buscar productos�Buscar en la base de conocimientos�Ver más�Seleccionar todo�Seleccionar categoría�Producto seleccionado�Categoría seleccionada�Vender en Facebook�Enviar mensaje�Envíe un mensaje a nuestro equipo de asistencia�Ocurrió un error al enviar el mensaje�Configure su tienda�Configurar manualmente�Configure su tienda�Configuraciones�Configuración�Envío y recogida�Tienda�Carrito de compras�Carrito de compras (descontinuado)�Carrito de compras flotante (descontinuado)�Icono del carrito de compras�Carrito de compras en miniatura (descontinuado)�«Widget» del carrito de compras�Mostrar�Mostrar imagen adicional al pasar el ratón�Mostrar categorías�Muéstreles a los clientes que pueden utilizar la búsqueda y los filtros para encontrar los productos que deseen de forma más rápida.�Mostrar descripción debajo de la imagen�Mostrar minicarrito�Mostrar en todas las páginas�Mostrar al pasar el ratón�Mostrar en las páginas de la tienda�Mostrar el precio dentro del botón de «Comprar ahora»�Mostrar el precio dentro del botón de «Comprar ahora»�Mostrar el borde de la ficha del producto�Mostrar miniaturas de los productos�Mostrar búsqueda�Mostrar cuando esté vacío�Muestre su tienda en la página de inicio�El inicio de sesión único les permite a sus clientes tener un inicio de sesión único para su sitio web de WordPress y su %s. Cuando alguien inicie sesión en su sitio web, también iniciará sesión automáticamente en su cuenta de cliente en la tienda sin necesidad de introducir su correo electrónico y contraseña nuevamente.�Icono pequeño�Icono pequeño y total de artículos�Algunos de los artículos no se pudieron importar.�Le pido disculpas por las dificultades técnicas que estamos experimentando.�Lo siento, hay un problema. Se supone que esta página muestra el panel de control de su tienda; sin embargo, este sitio web de Wordpress no parece poder conectarse al servidor de Ecwid para mostrar el panel de su tienda aquí. Es probable que esto se deba a una mala configuración del servidor; su proveedor de alojamiento web puede solucionarlo. Aquí hay una descripción más técnica del problema, la cual puede enviarle a su proveedor de alojamiento web: «La función de Wordpress wp_remote_post() no pudo conectarse a un servidor remoto debido al error: “%s”; parece que las solicitudes HTTP POST están inhabilitadas en este servidor». <br /><br />No dude en ponerse en contacto con nosotros en <a %s>wordpress@ecwid.com</a> y le ayudaremos a comunicarse con su proveedor de alojamiento web para pedirle que solucione el problema. <br /><br /> Mientras tanto, para gestionar su tienda, puede utilizar el panel de control web de Ecwid en <a %s>my.ecwid.com</a>. Su escaparate virtual está funcionando bien; puede echarle un vistazo aquí: <a %s>%s</a>.�Cuadrado 1:1�Iniciar la importación�Estado�Manténgase conectado con sus clientes. Actualice el contenido de su tienda en cualquier momento para informarles a los clientes sobre las promociones actuales y las novedades de su tienda.�¿Todavía tiene preguntas acerca de Ecwid? ¡Háganoslo saber!�Tienda�Categorías de la tienda�Menú de categorías de la tienda�Página de categorías de la tienda�Página del escaparate virtual�Página de inicio de la tienda�ID de la tienda�El ID de la tienda es un identificador único de cualquier tienda de %1$s, el cual consta de varios dígitos. Puede encontrarlo en la página «Panel» del panel de control de %1$s. El ID de la tienda se enviará en el correo electrónico de bienvenida después del registro.�El ID de la tienda es un identificador único de su cuenta de %1$s. Puede encontrarlo en su panel de control de %1$s en la <a %2$s>página del panel</a>.�Título del enlace de la tienda�Navegación en la tienda�Página de la tienda�Enlace a la página de la tienda�Categorías raíz de la tienda�Apariencia de la tienda�Elementos de la tienda�Gestión de la tienda�Contenido de la página de la tienda�Página de la tienda en su sitio web�Categoría raíz de la tienda�Tienda con menú de categorías�Escaparate virtual�Asunto�Enviar y desactivar�Cambiar al borrador�Sincronizar productos�Tabla�Vista de tabla�Siga unos sencillos pasos para completar la configuración de la tienda�Aproveche las increíbles aplicaciones y extensiones diseñadas para mejorar su tienda.�Texto�Color del texto�Gracias por elegir %s para construir su tienda en línea�El bloque está oculto porque no tiene categorías en su tienda. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Añadir categorías.</a>�La categoría que se muestra de forma predeterminada en la página del escaparate virtual�El primer paso para abrir su negocio en línea: <br />añadamos una tienda a su sitio web de WordPress en <strong>3</strong> simples pasos.�El complemento no es compatible con la función que quiero�El icono del carrito de compras muestra la cantidad de artículos en el carrito y ayuda a los clientes a realizar el pago. Además, puede <a href="%s" target="_blank">ajustar la apariencia del icono del carrito</a>.�La tienda no es visible en su sitio web�Las categorías de alto nivel de la tienda se añaden automáticamente a este menú desplegable�Temas para Ecwid�Esta importación copiará sus productos y categorías de WooCommerce a su tienda de %s.�Esto es una tienda de demostración. Cree su tienda para ver los productos de su tienda aquí.�Esto cambiará la etiqueta del módulo en el creador para una fácil identificación.�Título�Título en la imagen�Solo título�Título o REF�Título debajo de la imagen�Título:�Para añadir funciones adicionales a su tienda, arrastre y suelte los elementos de la tienda de %s en su sitio web. Una vez que haya terminado, puede volver a modificar su configuración.�Para añadir su tienda a su sitio web, introduzca el ID de su tienda de %1$s en el campo a continuación. Si aún no tiene una cuenta de %1$s, cree una gratis en el <a %2$s>sitio web de %1$s</a>.�Para permitir que %s inicie la sesión de sus clientes automáticamente en su tienda, otorgue los permisos para utilizar los datos del cliente en la tienda. <a %s>Utilice este enlace para hacerlo</a>�A fin de poder elegir un producto para insertarlo en sus publicaciones y páginas, deberá volver a conectar su sitio a su tienda de %s. Esto solo requerirá que acepte la solicitud de permisos para que el complemento pueda listar sus productos en el cuadro de diálogo «Añadir producto».�Para crear un «Mapa del sitio» para su sitio web de Wordpress, le sugerimos que utilice los  complementos <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> o <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>. Estos complementos son totalmente compatibles con Ecwid y permiten generar un mapa del sitio que contiene enlaces a categorías y páginas de productos, por lo que las páginas de la tienda se indexarán más rápido. Tenga en cuenta que esta opción solo está disponible para los <a target="_blank" href="https://www.ecwid.com/pricing">usuarios de pago de Ecwid</a>.�Para mostrar su tienda en este sitio web, debe permitir que WordPress acceda a sus productos de %1$s. Pulse «Conectar» para otorgar el permiso.�Para habilitar esta función, el complemento necesita un permiso para leer la información del producto de su tienda.�Para mostrar un solo producto en una página aparte o en una entrada de blog de su sitio web, utilice el código corto <b>[ecwid_product]</b>. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">Cómo utilizarlo</a>�Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para mejorar la apariencia de su tienda y poder gestionar la apariencia de su escaparate virtual desde aquí, habilite la opción «Apariencia de próxima generación de la lista de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para asegurarse de que su cliente puede acceder realmente a su sitio web y a la tienda, habilite el registro en las <a %s>configuraciones del sitio web</a>�Para gestionar su tienda, vaya a la <a %s>página del «Panel de su tienda»</a>�Para vender utilizando %1$s, debe permitir que WordPress acceda al complemento %1$s. El botón «Conectar» lo redirigirá a su cuenta de %1$s donde puede otorgar el permiso.�Para mostrar su escaparate virtual en lugar de la tienda de demostración, conecte su cuenta de %s existente o cree una nueva.�Para comenzar a vender, añada una página a su sitio web donde se muestre el escaparate virtual.�Arriba a la izquierda�Arriba a la derecha�Intente otra búsqueda.�Escriba su mensaje aquí�«Slug» de la dirección URL�Actualizar�Actualice su catálogo�Actualice para obtener esta función�Sangría vertical�Miniaturas verticales�Gris oscuro�Gris claro�Ver la página de la tienda�Ver la página de la tienda de demostración�Ver la página de la tienda�Visitar escaparate virtual�Azul cian vívido�Cian verde vívido�Rojo vívido�¿Desea conectar otra tienda de %s?�Advertencia: algunas de las funciones de su tienda en línea están inhabilitadas. Póngase en contacto con su proveedor de alojamiento web para resolverlo.�Notamos que tiene un WooCommerce instalado. Su tienda de WooCommerce tiene %1$s productos y %2$s categorías; ¿le gustaría importarlos a %3$s?�Notamos que tiene WooCommerce instalado. Si desea copiar fácilmente sus productos de WooCommerce a %s, esta herramienta le ayudará.�Estamos sincronizando sus productos. Esto puede tardar unos minutos. No actualice la página.�Sitio web�¿Qué función necesita?�¿Qué fue lo que pasó?�¿Qué sigue?�Mientras su tienda aún no esté conectada, se mostrará una tienda de demostración en su sitio web. Échele un vistazo para tener una idea de cómo se verá su tienda en el sitio web.�Precios al por mayor�Puede añadir un cuadro de búsqueda de productos, un «widget» de carrito y más desde la <a href="%s">«Página de apariencia y widgets»</a> que se encuentra aquí en el administrador de su sitio web. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">Más detalles.</a>�Puede añadir todo el escaparate virtual, las categorías, los productos o los botones de «Comprar ahora» a otras páginas de su sitio web. Para ello, abra una página en el editor y añada un bloque %s apropiado.�Puede añadir el menú de categorías de la tienda al menú de su sitio web para ayudar a sus clientes a navegar fácilmente por su sitio web. Simplemente abra «Apariencia > Menús» en el panel de WordPress y añada el elemento «Tienda con menú de categorías» al menú de su sitio web. Aparecerá automáticamente un menú desplegable que contendrá las categorías de su tienda en su sitio web.�Puede añadir su tienda en línea a su página empresarial de Facebook (no se necesitan complementos). Ecwid sincronizará automáticamente los productos, clientes, pedidos e inventario entre su tienda en línea de WordPress y Facebook. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">Más detalles.</a>�Puede gestionar la apariencia de su tienda en la <a %s>página de «Configuración del diseño»</a> ubicada en el panel de control de su tienda.�Puede mostrar su tienda en la página principal del sitio web. Ajuste la configuración de «Lectura» de su sitio web como se describe en nuestro <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">centro de asistencia.</a>�Puede habilitar un «widget» adicional del icono de la bolsa de compras que aparecerá en las páginas de su sitio web. Abra el menú «<a href="%1$s">Apariencia → Personalizar → %2$s</a>» para habilitarlo.�Puede habilitar los filtros en la configuración de la tienda: («<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Configuración → Filtros para los productos</a>»).�Puede enviar una nueva solicitud aquí.�Aún no ha visto ningún producto. Abra la tienda.�También podrá registrarse a través de sus perfiles existentes de Google, Facebook o PayPal.�Su tienda de %s tiene �Su tienda de %s está conectada<br /> a su sitio web de WordPress�Su tienda de %s ahora está conectada<br /> a su sitio web de WordPress�Su escaparate virtual�Su tienda de WooCommerce tiene �Se ha enviado su correo electrónico�Su producto�Panel de control de su tienda. Aquí mismo en WordPress.�Se ha creado su tienda. Preparando el panel de su tienda...�Su tienda se añade a varias páginas del sitio web. Elija la página principal. Los clientes son redirigidos a la página principal de la tienda cuando hacen clic en el icono del carrito, en los enlaces de la tienda ubicados en el menú del sitio web o en los productos que se encuentran en la barra lateral.�¡Su tienda ya está casi lista!�Su tienda no se añade a ninguna página de su sitio web. Para que los clientes puedan navegar por su tienda y realizar pedidos, cree una página donde se mostrará la tienda.�La página de su tienda�La página de su tienda está actualmente en un borrador. Una vez que esté lista, publíquela para que los clientes puedan visitar la tienda y realizar pedidos.�La página de su tienda está publicada. Los clientes pueden visitar su tienda en �Su tienda se mostrará aquí�¡Su tienda se mostrará aquí!�Su escaparate virtual (listado de productos y página de pago) está funcionando bien, pero las funciones avanzadas de la tienda, como el SEO y los «widgets» de la barra lateral, están inhabilitadas. Para habilitarlas y asegurarse de que su tienda funcione correctamente, pulse el botón de abajo para conectar su cuenta de %s. Esto tomará menos de un minuto; solo se le pedirá que inicie sesión en su cuenta y permita que este sitio web obtenga los datos de su tienda.�[%s] Comentarios sobre la desactivación del complemento de WordPress (ID de la tienda: %s)�personalizar apariencia�Contenido�Tienda�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�o <a %s>consulte el centro de asistencia�REF del producto�Precio del producto�seleccionar producto�producto seleccionado�Tienda en línea�Botón de «Comprar ahora»���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/languages/ecwid-shopping-cart-es_CL.po������������������������������������������0000644�����������������00000326062�15122273603�0017565 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Translation of Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) in German # This file is distributed under the same license as the Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) package. msgid "" msgstr "" "PO-Revision-Date: 2020-10-12 12:46\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: GlotPress/3.0.0-alpha.2\n" "Language: es\n" "Project-Id-Version: temporary-strings\n" "X-Crowdin-Project: temporary-strings\n" "X-Crowdin-Project-ID: 295314\n" "X-Crowdin-Language: es-ES\n" "X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po\n" "X-Crowdin-File-ID: 988\n" "Language-Team: Spanish\n" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:92 msgid "You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel." msgstr "Puede gestionar la apariencia de su tienda en la <a %s>página de «Configuración del diseño»</a> ubicada en el panel de control de su tienda." #: includes/integrations/elementor/class-ec-elementor-widget-store.php:55 msgid "To manage your store, go to <a %s>the Store Dashboard page</a>" msgstr "Para gestionar su tienda, vaya a la <a %s>página del «Panel de su tienda»</a>" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:39 msgid "The category that is shown by default on the Store Front Page" msgstr "La categoría que se muestra de forma predeterminada en la página del escaparate virtual" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:38 msgid "Default category" msgstr "Categoría predeterminada" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:29 msgid "Online Store" msgstr "Tienda en línea" #: includes/class-ecwid-stub-renderer.php:38 msgid "Buy Now" msgstr "Comprar ahora" #: templates/admin/welcome-terms-privacy.php:5 msgid "By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>." msgstr "Al continuar, acepta los <a %s>Términos de servicio</a> y la <a %s>Política de privacidad</a>." #: js/gutenberg/blocks.build.js:1 msgid "Display shopping cart and checkout page" msgstr "Mostrar el carrito de compras y la página de pago" #: js/gutenberg/blocks.build.js:1 msgid "Cart and Checkout" msgstr "Carrito y pago" #: js/gutenberg/blocks.build.js:1 msgid "Filters" msgstr "Filtros" #: js/gutenberg/blocks.build.js:1 msgid "You can enable filters in the store settings: (“<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Settings → Product Filters</a>”)." msgstr "Puede habilitar los filtros en la configuración de la tienda: («<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Configuración → Filtros para los productos</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Search and Filters" msgstr "Búsqueda y filtros" #: js/gutenberg/blocks.build.js:1 msgid "Display search page with filters on a side" msgstr "Mostrar página de búsqueda con los filtros a un lado" #: js/gutenberg/blocks.build.js:1 msgid "Product Search and filters" msgstr "Búsqueda de productos y filtros" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Display product page with description and a buy button" msgstr "Mostrar la página de productos con la descripción y un botón de compra" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Large" msgstr "Ficha de producto ampliada" #: js/gutenberg/blocks.build.js:1 msgid "Selected category" msgstr "Categoría seleccionada" #: js/gutenberg/blocks.build.js:1 msgid "Select category" msgstr "Seleccionar categoría" #: js/gutenberg/blocks.build.js:1 msgid "Add categories" msgstr "Añadir categorías" #: js/gutenberg/blocks.build.js:1 msgid "Display category page" msgstr "Mostrar la página de categorías" #: js/gutenberg/blocks.build.js:1 msgid "Store Category Page" msgstr "Página de categorías de la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Display shopping bag link and summary" msgstr "Mostrar enlace y resumen de la bolsa de compras" #: js/gutenberg/blocks.build.js:1 msgid "Shopping Cart Icon" msgstr "Icono del carrito de compras" #: js/gutenberg/blocks.build.js:1 msgid "The block is hidden because you don't have categories in your store. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Add categories.</a>" msgstr "El bloque está oculto porque no tiene categorías en su tienda. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Añadir categorías.</a>" #: js/gutenberg/blocks.build.js:1 msgid "Categories" msgstr "Categorías" #: js/gutenberg/blocks.build.js:1 msgid "Display categories navigation bar" msgstr "Mostrar la barra de navegación de las categorías" #: js/gutenberg/blocks.build.js:1 msgid "Store Categories Menu" msgstr "Menú de categorías de la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Product Search Box" msgstr "Cuadro de búsqueda de productos" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:25 #: js/gutenberg/blocks.build.js:1 msgid "Linked product" msgstr "Producto vinculado" #: js/gutenberg/blocks.build.js:1 msgid "Display a buy button" msgstr "Mostrar un botón de compra" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:10 #: js/gutenberg/blocks.build.js:1 msgid "Buy Now Button" msgstr "Botón «Comprar ahora»" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:52 #: js/gutenberg/blocks.build.js:1 msgid "Show price inside the «Buy now» button" msgstr "Mostrar el precio dentro del botón de «Comprar ahora»" #: js/gutenberg/blocks.build.js:1 msgctxt "gutenberg-product-block" msgid "Content" msgstr "Contenido" #: js/gutenberg/blocks.build.js:1 msgid "Change" msgstr "Cambiar" #: js/gutenberg/blocks.build.js:1 msgid "Displayed product" msgstr "Producto mostrado" #: js/gutenberg/blocks.build.js:1 msgid "Display product with a buy button" msgstr "Mostrar el producto con un botón de compra" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Small" msgstr "Ficha de producto reducida" #: js/gutenberg/blocks.build.js:1 msgid "Very dark gray" msgstr "Gris oscuro" #: js/gutenberg/blocks.build.js:1 msgid "Cyan bluish gray" msgstr "Gris cian azulado" #: js/gutenberg/blocks.build.js:1 msgid "Very light gray" msgstr "Gris claro" #: js/gutenberg/blocks.build.js:1 msgid "Vivid cyan blue" msgstr "Azul cian vívido" #: js/gutenberg/blocks.build.js:1 msgid "Pale cyan blue" msgstr "Azul cian pálido" #: js/gutenberg/blocks.build.js:1 msgid "Vivid green cyan" msgstr "Cian verde vívido" #: js/gutenberg/blocks.build.js:1 msgid "Light green cyan" msgstr "Cian verde claro" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid amber" msgstr "Ámbar vívido y brillante" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid orange" msgstr "Naranja vívido y brillante" #: js/gutenberg/blocks.build.js:1 msgid "Vivid red" msgstr "Rojo vívido" #: js/gutenberg/blocks.build.js:1 msgid "Pale pink" msgstr "Rosa pálido" #: js/gutenberg/blocks.build.js:1 msgid "Set manually" msgstr "Configurar manualmente" #: js/gutenberg/blocks.build.js:1 msgid "Detect automatically" msgstr "Detectar automáticamente" #: js/gutenberg/blocks.build.js:1 msgid "Color settings" msgstr "Configuración de colores" #: js/gutenberg/blocks.build.js:1 msgid "Store Navigation" msgstr "Navegación en la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Store Front Page" msgstr "Página del escaparate virtual" #: js/gutenberg/blocks.build.js:1 msgid "Product sidebar content" msgstr "Contenido de la barra lateral de productos" #: js/gutenberg/blocks.build.js:1 msgid "Product Page Appearance" msgstr "Apariencia de la página del producto" #: js/gutenberg/blocks.build.js:1 msgid "Product List Appearance" msgstr "Apariencia de la lista de productos" #: js/gutenberg/blocks.build.js:1 msgid "Category List Appearance" msgstr "Apariencia de la lista de categorías" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Display cart icon" msgstr "Mostrar icono del carrito" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Para mejorar la apariencia de su tienda y poder gestionar la apariencia de su escaparate virtual desde aquí, habilite la opción «Apariencia de próxima generación de la lista de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Add storefront (product listing)" msgstr "Añadir escaparate virtual (listado de productos)" #: templates/admin/storefront/main.php:21 msgid "Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers." msgstr "Los clientes no pueden ver la página de su tienda porque está en un borrador. Publique la página para que esté disponible para sus clientes." #: templates/admin/storefront/main.php:20 msgid "The store is not visible on your site" msgstr "La tienda no es visible en su sitio web" #: templates/admin/storefront/main.php:4 msgid "Your Storefront" msgstr "Su escaparate virtual" #: templates/admin/storefront/area-promo.php:30 msgid "Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars." msgstr "Ayude a los clientes a encontrar su tienda en el sitio web. Añada el enlace de la tienda al menú del sitio web, cree páginas adicionales de la tienda y resalte los productos de la tienda en otras páginas del sitio web y en las barras laterales." #: templates/admin/storefront/area-promo.php:29 msgid "Promote your store" msgstr "Promocione su tienda" #: templates/admin/storefront/area-promo.php:26 msgid "Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store." msgstr "Manténgase conectado con sus clientes. Actualice el contenido de su tienda en cualquier momento para informarles a los clientes sobre las promociones actuales y las novedades de su tienda." #: templates/admin/storefront/area-promo.php:25 msgid "Change store content" msgstr "Cambiar el contenido de la tienda" #: templates/admin/storefront/area-promo.php:22 msgid "Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand." msgstr "Personalice la apariencia de su tienda para que se ajuste a las necesidades de su negocio. Cree la apariencia para su tienda que más se parezca a su marca." #: templates/admin/storefront/area-promo.php:21 msgid "Customize store appearance" msgstr "Personalizar la apariencia de la tienda" #: templates/admin/storefront/area-promo.php:7 msgid "Add your %s store to the website and start selling in minutes." msgstr "Añada su tienda de %s al sitio web y comience a vender en minutos." #: templates/admin/storefront/area-promo.php:3 msgid "What's next?" msgstr "¿Qué sigue?" #: templates/admin/storefront/area-additional.php:224 msgid "Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar." msgstr "Su tienda se añade a varias páginas del sitio web. Elija la página principal. Los clientes son redirigidos a la página principal de la tienda cuando hacen clic en el icono del carrito, en los enlaces de la tienda ubicados en el menú del sitio web o en los productos que se encuentran en la barra lateral." #: templates/admin/storefront/area-additional.php:222 msgid "Choose the main store page" msgstr "Elegir la página principal de la tienda" #: templates/admin/storefront/area-additional.php:200 msgid "Go to Pages" msgstr "Ir a «Páginas»" #: templates/admin/storefront/area-additional.php:193 msgid "You can add the entire storefront, categories, products, or \"Buy now\" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block." msgstr "Puede añadir todo el escaparate virtual, las categorías, los productos o los botones de «Comprar ahora» a otras páginas de su sitio web. Para ello, abra una página en el editor y añada un bloque %s apropiado." #: templates/admin/storefront/area-additional.php:189 msgid "Add your store to other site pages" msgstr "Añada su tienda a otras páginas del sitio web" #: templates/admin/storefront/area-additional.php:166 msgid "Create Product Page" msgstr "Crear página de productos" #: templates/admin/storefront/area-additional.php:150 msgid "Pick Product" msgstr "Elegir un producto" #: templates/admin/storefront/area-additional.php:136 #: templates/admin/storefront/area-additional.php:138 msgid "Create a landing page featuring one of your products." msgstr "Cree una página de aterrizaje con uno de sus productos." #: templates/admin/storefront/area-additional.php:132 msgid "Add a product page" msgstr "Añadir página de productos" #: templates/admin/storefront/area-additional.php:109 msgid "Create Category Page" msgstr "Crear página de categorías" #: templates/admin/storefront/area-additional.php:93 msgid "Pick Category" msgstr "Elegir una categoría" #: templates/admin/storefront/area-additional.php:79 #: templates/admin/storefront/area-additional.php:81 msgid "Feature a specific store category on a separate page of your site." msgstr "Destacar una categoría de la tienda específica en una página separada de su sitio web." #: templates/admin/storefront/area-additional.php:75 msgid "Add a category page" msgstr "Añadir una página de categoría" #: templates/admin/storefront/area-additional.php:54 msgid "Create Search Page" msgstr "Crear página de búsqueda" #: templates/admin/storefront/area-additional.php:50 msgid "Show customers that they can use a search and filters to find desired products faster." msgstr "Muéstreles a los clientes que pueden utilizar la búsqueda y los filtros para encontrar los productos que deseen de forma más rápida." #: templates/admin/storefront/area-additional.php:48 msgid "Add a search and filters page" msgstr "Añadir una página de búsqueda y filtros" #: templates/admin/storefront/area-additional.php:27 msgid "Create Cart Page" msgstr "Crear página del carrito" #: templates/admin/storefront/area-additional.php:23 msgid "Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout." msgstr "Los clientes van a la página del carrito para consultar los productos que han añadido al mismo y proceder con el pago." #: templates/admin/storefront/area-additional.php:21 msgid "Add cart and checkout page" msgstr "Añadir carrito y página de pago" #: templates/admin/storefront/area-additional.php:4 msgid "Highlight products, categories, and other store pages by adding them to separate website pages." msgstr "Destaque productos, categorías y otras páginas de la tienda añadiéndolas a páginas del sitio web separadas." #: templates/admin/storefront/area-additional.php:3 msgid "Additional store pages" msgstr "Páginas adicionales de la tienda" #: templates/admin/storefront/draft-message.php:2 msgid "Publish the page to use this option" msgstr "Publique la página para poder utilizar esta opción" #: templates/admin/storefront/area-design.php:55 msgid "Along with the store catalog, you can add other widgets and texts to the store page." msgstr "Junto con el catálogo de la tienda, puede añadir otros «widgets» y textos a la página de la tienda." #: templates/admin/storefront/area-design.php:54 msgid "Store page content" msgstr "Contenido de la página de la tienda" #: templates/admin/storefront/area-design.php:25 #: templates/admin/storefront/area-design.php:27 msgid "Adjust your store design to fit your business needs." msgstr "Ajuste el diseño de su tienda para que se adapte a las necesidades de su negocio." #: templates/admin/storefront/area-design.php:21 msgid "Store appearance" msgstr "Apariencia de la tienda" #: templates/admin/storefront/area-design.php:4 msgid "Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers." msgstr "Personalice la apariencia de su escaparate virtual y edite el contenido en la página de la tienda para reflejar su marca y mantenerse conectado con sus clientes." #: templates/admin/storefront/area-design.php:3 msgid "Design and content" msgstr "Diseño y contenido" #: templates/admin/storefront/area-status.php:124 msgid "Create Store Page" msgstr "Crear la página de la tienda" #: templates/admin/storefront/area-status.php:121 msgid "Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display." msgstr "Su tienda no se añade a ninguna página de su sitio web. Para que los clientes puedan navegar por su tienda y realizar pedidos, cree una página donde se mostrará la tienda." #: templates/admin/storefront/area-status.php:115 msgid "Set Up Your Store" msgstr "Configure su tienda" #: templates/admin/storefront/area-status.php:109 msgid "To show your storefront instead of the demo store, connect your existing %s account or create a new one." msgstr "Para mostrar su escaparate virtual en lugar de la tienda de demostración, conecte su cuenta de %s existente o cree una nueva." #: templates/admin/storefront/area-status.php:101 msgid "Publish Store Page" msgstr "Publicar la página de la tienda" #: templates/admin/storefront/area-status.php:98 msgid "Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders." msgstr "La página de su tienda está actualmente en un borrador. Una vez que esté lista, publíquela para que los clientes puedan visitar la tienda y realizar pedidos." #: templates/admin/storefront/area-status.php:92 msgid "View Store Page" msgstr "Ver la página de la tienda" #: templates/admin/storefront/area-status.php:86 msgid "Your store page is published. Customers can browse your store at " msgstr "La página de su tienda está publicada. Los clientes pueden visitar su tienda en " #: templates/admin/storefront/area-status.php:77 msgid "View demo store page" msgstr "Ver la página de la tienda de demostración" #: templates/admin/storefront/area-status.php:46 msgid "Draft" msgstr "Borrador" #: templates/admin/storefront/area-status.php:45 msgid "Published" msgstr "Publicada" #: templates/admin/storefront/area-status.php:33 #: templates/admin/storefront/area-status.php:36 msgid "Status" msgstr "Estado" #: templates/admin/storefront/area-status.php:29 msgid "Add a store page" msgstr "Añadir una página de tienda" #: templates/admin/storefront/area-status.php:24 msgid "Connect your %s store" msgstr "Conecte su tienda de %s" #: templates/admin/storefront/area-status.php:21 msgid "Your store page" msgstr "La página de su tienda" #: templates/admin/storefront/area-status.php:10 msgid "To start selling, add a page to your site where the storefront will display." msgstr "Para comenzar a vender, añada una página a su sitio web donde se muestre el escaparate virtual." #: templates/admin/storefront/area-status.php:7 msgid "While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site." msgstr "Mientras su tienda aún no esté conectada, se mostrará una tienda de demostración en su sitio web. Échele un vistazo para tener una idea de cómo se verá su tienda en el sitio web." #: templates/admin/storefront/area-status.php:4 msgid "Store page on your site" msgstr "Página de la tienda en su sitio web" #: templates/admin/storefront/area-navigation.php:205 msgid "The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href=\"%s\" target=\"_blank\">adjust the cart icon appearance</a>." msgstr "El icono del carrito de compras muestra la cantidad de artículos en el carrito y ayuda a los clientes a realizar el pago. Además, puede <a href=\"%s\" target=\"_blank\">ajustar la apariencia del icono del carrito</a>." #: templates/admin/storefront/area-navigation.php:201 msgid "Display the shopping cart icon on site pages" msgstr "Muestre el icono del carrito de compras en las páginas del sitio web" #: templates/admin/storefront/area-navigation.php:179 msgid "Manage Sidebar" msgstr "Gestionar la barra lateral" #: templates/admin/storefront/area-navigation.php:175 msgid "Highlight your best sellers or new products in the website sidebar." msgstr "Destaque sus mejores ventas o nuevos productos en la barra lateral del sitio web." #: templates/admin/storefront/area-navigation.php:173 msgid "Feature your products in the sidebar" msgstr "Destaque sus productos en la barra lateral" #: templates/admin/storefront/area-navigation.php:151 msgid "Add Store Page to Menu" msgstr "Añadir la página de la tienda al menú" #: templates/admin/storefront/area-navigation.php:147 msgid "Make your store accessible from the site menu so your customers can easily find it." msgstr "Haga que su tienda sea accesible desde el menú del sitio web para que sus clientes puedan encontrarla fácilmente." #: templates/admin/storefront/area-navigation.php:141 msgid "Add store page to the site menu" msgstr "Añadir la página de la tienda al menú del sitio web" #: templates/admin/storefront/area-navigation.php:118 msgid "Edit URL Slug" msgstr "Editar «slug» de la dirección URL" #: templates/admin/storefront/area-navigation.php:102 msgid "Current URL slug: /<span data-ec-store-slug>%s</span>" msgstr "«Slug» actual de la dirección URL: /<span data-ec-store-slug>%s</span>" #: templates/admin/storefront/area-navigation.php:78 msgid "Save" msgstr "Guardar" #: templates/admin/storefront/area-navigation.php:69 msgid "URL Slug" msgstr "«Slug» de la dirección URL" #: templates/admin/storefront/area-navigation.php:60 #: templates/admin/storefront/area-navigation.php:113 msgid "A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use \"/shop\" or \"/products\"." msgstr "Un «slug» es la última parte de una URL. Puede crear un «slug» personalizado para la página de su tienda. Es mejor que sea corto, ya que los clientes y los motores de búsqueda prefieren las URL cortas. Por ejemplo, utilice «/tienda» o «/productos»." #: templates/admin/storefront/area-navigation.php:56 #: templates/admin/storefront/area-navigation.php:98 msgid "Customize store page address" msgstr "Personalizar la dirección de la página de la tienda" #: templates/admin/storefront/area-navigation.php:29 msgid "Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href=\"%s\" target=\"_blank\">WordPress Settings > Reading</a>" msgstr "Añada su escaparate virtual a la página de inicio del sitio web para que sea más notable. También puede modificar la configuración de la página de inicio del sitio web en <a href=\"%s\" target=\"_blank\">Configuración de WordPress > Lectura</a>." #: templates/admin/storefront/area-navigation.php:21 msgid "Show your store on the home page" msgstr "Muestre su tienda en la página de inicio" #: templates/admin/storefront/area-navigation.php:4 msgid "Help customers find your store on the website." msgstr "Ayude a los clientes a encontrar su tienda en el sitio web." #: templates/admin/storefront/area-navigation.php:3 msgid "Navigation" msgstr "Navegación" #: templates/admin/welcome-no_oauth.php:12 msgid "Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>." msgstr "El ID de la tienda es un identificador único de su cuenta de %1$s. Puede encontrarlo en su panel de control de %1$s en la <a %2$s>página del panel</a>." #: templates/admin/welcome-create.php:11 msgid "Your store has been created. Preparing your store dashboard ..." msgstr "Se ha creado su tienda. Preparando el panel de su tienda..." #: templates/admin/welcome-connect.php:8 msgid "Create store" msgstr "Crear tienda" #: templates/admin/welcome-connect.php:4 msgid "Connect Your Store" msgstr "Conecte su tienda" #: templates/admin/welcome-page.php:61 msgid "Provided by <a %s>%s</a>" msgstr "Proporcionado por <a %s>%s</a>" #: templates/admin/welcome-page.php:33 msgid "To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>." msgstr "Para añadir su tienda a su sitio web, introduzca el ID de su tienda de %1$s en el campo a continuación. Si aún no tiene una cuenta de %1$s, cree una gratis en el <a %2$s>sitio web de %1$s</a>." #: templates/admin/welcome-page.php:20 msgid "Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website." msgstr "Cree una nueva tienda o, si ya tiene una cuenta de %s, conéctela. El complemento le guiará a través de la configuración de la tienda y le ayudará a publicarla en su sitio web." #: templates/admin/welcome-page.php:12 msgid "Add an Online Store to Your Website" msgstr "Añadir una tienda en línea a su sitio web" #: includes/class-ecwid-store-page.php:566 msgid "This is a demo store. Create your store to see your store products here." msgstr "Esto es una tienda de demostración. Cree su tienda para ver los productos de su tienda aquí." #: includes/class-ecwid-admin-storefront-page.php:539 msgid "Publish" msgstr "Publicar" #: templates/admin/storefront/area-design.php:33 #: templates/admin/storefront/area-design.php:59 #: includes/class-ecwid-admin-storefront-page.php:532 msgid "Edit" msgstr "Editar" #: includes/class-ecwid-admin-storefront-page.php:525 msgid "Preview" msgstr "Vista previa" #: includes/class-ecwid-admin-storefront-page.php:516 msgid "Switch to draft" msgstr "Cambiar al borrador" #: includes/class-ecwid-admin-storefront-page.php:506 msgid "Edit page" msgstr "Editar página" #: includes/class-ecwid-admin-storefront-page.php:499 msgid "View store page" msgstr "Ver la página de la tienda" #: includes/class-ecwid-admin-storefront-page.php:286 msgid "Search products" msgstr "Buscar productos" #: includes/class-ecwid-admin-storefront-page.php:265 msgid "Category" msgstr "Categoría" #: includes/class-ecwid-admin-storefront-page.php:240 msgid "Page with that name already exists." msgstr "Ya existe una página con ese nombre." #: includes/class-ecwid-admin.php:538 msgid "My Profile" msgstr "Mi perfil" #: includes/class-ecwid-admin.php:533 msgid "Apps" msgstr "Aplicaciones" #: includes/class-ecwid-admin.php:523 msgid "Shipping & Pickup" msgstr "Envío y recogida" #: includes/class-ecwid-admin.php:518 msgid "Payment" msgstr "Pago" #: includes/class-ecwid-admin.php:513 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:88 msgid "Design" msgstr "Diseño" #: includes/class-ecwid-admin.php:509 msgid "Configuration" msgstr "Configuración" #: includes/class-ecwid-admin.php:504 msgid "All Sales Channels" msgstr "Todos los canales de venta" #: includes/class-ecwid-admin.php:499 msgid "Website" msgstr "Sitio web" #: includes/class-ecwid-admin.php:494 msgid "Mobile" msgstr "Móvil" #: includes/class-ecwid-admin.php:485 msgid "Sales channels" msgstr "Canales de venta" #: includes/class-ecwid-admin.php:480 msgid "Reports" msgstr "Informes" #: includes/class-ecwid-admin.php:475 msgid "Marketing" msgstr "Mercadotecnia" #: includes/class-ecwid-admin.php:470 msgid "Catalog" msgstr "Catálogo" #: includes/class-ecwid-admin.php:465 msgid "My Sales" msgstr "Mis ventas" #: includes/class-ecwid-admin.php:455 msgid "Store management" msgstr "Gestión de la tienda" #: includes/class-ecwid-admin.php:344 msgid "Instant site" msgstr "Sitio web instantáneo" #: includes/class-ecwid-admin.php:153 includes/class-ecwid-admin.php:154 #: includes/class-ecwid-admin.php:309 msgid "Storefront" msgstr "Escaparate virtual" #: ecwid-shopping-cart.php:1111 msgid "Manage storefront" msgstr "Gestionar escaparate virtual" #: ecwid-shopping-cart.php:1111 msgid "Customize design" msgstr "Personalizar el diseño" #: ecwid-shopping-cart.php:1103 msgid "Manage store" msgstr "Gestionar la tienda" #: templates/importer/woo-main.tpl.php:97 msgid "Start Import" msgstr "Iniciar la importación" #: templates/importer/woo-main.tpl.php:87 msgid "Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target=\"_blank\">\"Billing & Plans\"</a></nobr> page in your Ecwid store control panel." msgstr "Tenga en cuenta el número máximo de productos y categorías que puede tener en su tienda de Ecwid. Esta herramienta de importación se detendrá automáticamente cuando se alcance el límite de productos de la tienda. Para conocer el límite actual de la tienda o aumentarlo, consulte la página <nobr><a %s target=\"_blank\">«Facturación y planes»</a></nobr> ubicada en el panel de su tienda de Ecwid." #: templates/importer/woo-main.tpl.php:82 msgid "Import creates new products and update the existing products with matching SKUs." msgstr "La importación crea nuevos productos y actualiza los productos existentes con las REF correspondientes." #: templates/importer/woo-main.tpl.php:60 msgid "Copying products and categories." msgstr "Copia de productos y categorías." #: templates/importer/woo-main.tpl.php:50 msgid "Import completed. <a href=\"%s\">Run again.</a>" msgstr "Importación completada. <a href=\"%s\">Ejecútela de nuevo.</a>" #: templates/importer/woo-main.tpl.php:34 msgid "Import is in Progress" msgstr "La importación está en progreso" #: templates/importer/woo-main.tpl.php:32 msgid "Import your products from Woocommerce to %s" msgstr "Importe sus productos de Woocommerce a %s" #: templates/importer/woo-main.tpl.php:18 msgid "Update your catalog" msgstr "Actualice su catálogo" #: templates/importer/woo-main.tpl.php:4 msgid "Import Your Products From Woocommerce to %s" msgstr "Importe sus productos de Woocommerce a %s" #: templates/importer/import-no-token.tpl.php:3 msgid "Click the connect button to get rights to update the product catalog" msgstr "Haga clic en el botón «Conectar» para obtener los permisos para actualizar el catálogo de productos" #: templates/importer/woo-complete-alert.tpl.php:52 msgid "Go to Your %s Products" msgstr "Ir a sus productos de %s" #: templates/importer/woo-complete-alert.tpl.php:43 msgid "Download <a href=\"%s\">import log</a>" msgstr "Descargar <a href=\"%s\">registro de importación</a>" #: templates/importer/woo-complete-alert.tpl.php:32 msgid "Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>" msgstr "Parte de los productos no se han copiado a %1$s porque alcanzó el límite de productos en su plan de precios en %1$s. Si desea importar más productos, considere <nobr><a %2$s>actualizar su plan de %1$s.</a></nobr>" #: templates/importer/woo-complete-alert.tpl.php:21 msgid "<b>%s</b> categories" msgstr "<b>%s</b> categorías" #: templates/importer/woo-complete-alert.tpl.php:18 msgid "Imported <b>%s</b> products" msgstr "<b>%s</b> productos importados" #: templates/importer/woo-complete-alert.tpl.php:15 msgid "Import completed" msgstr "Importación completada" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:10 #: includes/widgets/class-ecwid-widget-product-browser.php:12 msgid "Online store" msgstr "Tienda en línea" #: includes/class-ecwid-store-page.php:476 msgid "%s Store Page" msgstr "Página de la tienda de %s" #: templates/advanced-settings.php:79 msgid "Integration with search on your site" msgstr "Integración con la búsqueda en su sitio web" #: templates/sync.php:130 msgid "Deleted products synchronized: %1$s out of %2$s" msgstr "Productos eliminados sincronizados: %1$s de %2$s" #: includes/class-ecwid-custom-admin-page.php:66 msgid "Themes for Ecwid" msgstr "Temas para Ecwid" #: includes/class-ecwid-custom-admin-page.php:33 msgid "Plugins for Ecwid" msgstr "Complementos para Ecwid" #: includes/class-ecwid-popup-deactivate.php:138 msgid "I use this WordPress theme: %s" msgstr "Utilizo este tema de WordPress: %s" #: includes/class-ecwid-popup-deactivate.php:132 msgid "I couldn’t find a WordPress theme that goes well with %s" msgstr "No pude encontrar un tema de WordPress adecuado para %s" #: includes/class-ecwid-product-browser.php:357 msgid "On the right" msgstr "A la derecha" #: includes/class-ecwid-product-browser.php:353 msgid "On the left" msgstr "A la izquierda" #: includes/class-ecwid-product-browser.php:349 msgid "Filters panel position" msgstr "Posición del panel de filtros" #: includes/class-ecwid-product-browser.php:209 msgid "Default product_ID" msgstr "ID del producto predeterminado" #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:73 msgid "Cart icon" msgstr "Icono del carrito de compras" #: templates/shortcode-stub-store.tpl.php:4 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:20 #: js/gutenberg/blocks.build.js:1 msgid "Store Home Page" msgstr "Página de inicio de la tienda" #: ecwid-shopping-cart.php:431 msgid "Edit Category" msgstr "Editar categoría" #: ecwid-shopping-cart.php:430 msgid "Edit Product" msgstr "Editar producto" #: includes/class-ecwid-admin.php:142 includes/class-ecwid-admin.php:143 msgid "Online Store Apps" msgstr "Aplicaciones de la tienda en línea" #. Plugin Name of the plugin msgid "Ecwid Ecommerce Shopping Cart" msgstr "Carrito de compras del comercio electrónico de Ecwid" #: includes/class-ecwid-custom-admin-page.php:58 includes/faq_entries.php:76 msgid "Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href=\"%s\">TemplateMonster themes</a>" msgstr "Ecwid es compatible con cualquier tema de WordPress. Ya sea un tema gratuito del catálogo de WordPress.org, un tema prémium de un proveedor externo o un tema personalizado; su tienda de Ecwid funcionará bien con cualquiera de ellos. Si desea un tema prémium, le recomendamos <a href=\"%s\">temas de TemplateMonster</a>." #: includes/faq_entries.php:74 msgid "Is there a WordPress theme for Ecwid?" msgstr "¿Existe algún tema de WordPress para Ecwid?" #: templates/admin-footer.php:19 msgid "<a href=\"admin.php?page=" msgstr "<a href=\"admin.php?page=" #: includes/integrations/class-ecwid-integration-gutenberg.php:113 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:25 msgid "You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href=\"%1$s\">Appearance → Customize → %2$s</a>” menu to enable it." msgstr "Puede habilitar un «widget» adicional del icono de la bolsa de compras que aparecerá en las páginas de su sitio web. Abra el menú «<a href=\"%1$s\">Apariencia → Personalizar → %2$s</a>» para habilitarlo." #: includes/integrations/class-ecwid-integration-gutenberg.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:18 msgctxt "gutenberg-store-block-stub" msgid "Store" msgstr "Tienda" #: includes/class-ecwid-product-browser.php:472 msgid "Image feed" msgstr "Canal de imagen" #: includes/class-ecwid-product-browser.php:467 msgid "Vertical thumbnails" msgstr "Miniaturas verticales" #: includes/class-ecwid-product-browser.php:462 msgid "Horizontal thumbnails" msgstr "Miniaturas horizontales" #: includes/class-ecwid-product-browser.php:452 msgid "3 columns, image on the right" msgstr "3 columnas, imagen a la derecha" #: includes/class-ecwid-product-browser.php:448 msgid "3 columns, image on the left" msgstr "3 columnas, imagen a la izquierda" #: includes/class-ecwid-product-browser.php:444 msgid "2 columns, image on the right" msgstr "2 columnas, imagen a la derecha" #: includes/class-ecwid-product-browser.php:440 msgid "2 columns, image on the left" msgstr "2 columnas, imagen a la izquierda" #: includes/class-ecwid-product-browser.php:429 msgid "Landscape 3:2" msgstr "Horizontal 3:2" #: includes/class-ecwid-product-browser.php:424 msgid "Landscape 4:3" msgstr "Horizontal 4:3" #: includes/class-ecwid-product-browser.php:419 msgid "Square 1:1" msgstr "Cuadrado 1:1" #: includes/class-ecwid-product-browser.php:414 msgid "Portrait 3:4" msgstr "Vertical 3:4" #: includes/class-ecwid-product-browser.php:409 msgid "Portrait 2:3" msgstr "Vertical 2:3" #: includes/class-ecwid-product-browser.php:399 msgid "L" msgstr "G" #: includes/class-ecwid-product-browser.php:395 msgid "M" msgstr "M" #: includes/class-ecwid-product-browser.php:391 msgid "S" msgstr "P" #: includes/class-ecwid-product-browser.php:381 msgid "Show on hover" msgstr "Mostrar al pasar el ratón" #: includes/class-ecwid-product-browser.php:377 msgid "Hide" msgstr "Ocultar" #: includes/class-ecwid-product-browser.php:373 msgid "Show" msgstr "Mostrar" #: includes/class-ecwid-product-browser.php:342 msgid "Background color" msgstr "Color del fondo" #: includes/class-ecwid-product-browser.php:335 msgid "Link color" msgstr "Color del enlace" #: includes/class-ecwid-product-browser.php:328 msgid "Price color" msgstr "Color del precio" #: includes/class-ecwid-product-browser.php:321 msgid "Text color" msgstr "Color del texto" #: includes/class-ecwid-product-browser.php:314 msgid "Button color" msgstr "Color del botón" #: includes/class-ecwid-product-browser.php:299 msgid "Wholesale prices" msgstr "Precios al por mayor" #: includes/class-ecwid-product-browser.php:292 msgid "\"In stock\" label" msgstr "Etiqueta de productos «En existencia»" #: includes/class-ecwid-product-browser.php:285 msgid "Available qty in stock" msgstr "Cantidad disponible en existencia" #: includes/class-ecwid-product-browser.php:278 msgid "Product quantity" msgstr "Cantidad de productos" #: includes/class-ecwid-product-browser.php:271 msgctxt "product-browser-attributes" msgid "Product price" msgstr "Precio del producto" #: includes/class-ecwid-product-browser.php:264 msgctxt "product-browser-attributes" msgid "Product SKU" msgstr "REF del producto" #: includes/class-ecwid-product-browser.php:257 msgid "Breadcrumbs" msgstr "Migas de pan" #: includes/class-ecwid-product-browser.php:241 msgid "Image gallery layout" msgstr "Diseño de la galería de imágenes" #: includes/integrations/class-ecwid-integration-gutenberg.php:391 #: includes/class-ecwid-product-browser.php:224 #: includes/class-ecwid-product-browser.php:233 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:212 msgid "Show description under the image" msgstr "Mostrar descripción debajo de la imagen" #: includes/class-ecwid-product-browser.php:216 msgid "Product page layout" msgstr "Diseño de la página de productos" #: includes/class-ecwid-product-browser.php:194 msgid "Display sort by link" msgstr "Mostrar «ordenar por enlace»" #: includes/class-ecwid-product-browser.php:186 #: includes/class-ecwid-product-browser.php:306 msgid "Display sign in link" msgstr "Mostrar el enlace de inicio de sesión" #: includes/class-ecwid-product-browser.php:178 msgid "Display footer menu" msgstr "Mostrar el menú del pie de página" #: includes/class-ecwid-product-browser.php:170 msgid "Display breadcrumbs" msgstr "Mostrar migas de pan" #: includes/class-ecwid-product-browser.php:163 js/gutenberg/blocks.build.js:1 msgid "Display search box" msgstr "Mostrar el cuadro de búsqueda" #: includes/class-ecwid-product-browser.php:156 msgid "Display categories menu" msgstr "Mostrar el menú de categorías" #: includes/class-ecwid-product-browser.php:148 msgid "Category thumbnail aspect ratio" msgstr "Relación de aspecto de la miniatura de la categoría" #: includes/class-ecwid-product-browser.php:140 msgid "Category thumbnail size" msgstr "Tamaño de la miniatura de la categoría" #: includes/class-ecwid-product-browser.php:131 msgid "Image only" msgstr "Solo imagen" #: includes/class-ecwid-product-browser.php:127 msgid "Title only" msgstr "Solo título" #: includes/class-ecwid-product-browser.php:123 msgid "Image and title on mouse over" msgstr "Imagen y título al pasar el ratón por encima" #: includes/class-ecwid-product-browser.php:119 msgid "Title on image" msgstr "Título en la imagen" #: includes/class-ecwid-product-browser.php:115 msgid "Title under image" msgstr "Título debajo de la imagen" #: includes/class-ecwid-product-browser.php:111 msgid "Category card layout" msgstr "Diseño de la ficha de categoría" #: includes/class-ecwid-product-browser.php:103 msgid "Show additional image on hover" msgstr "Mostrar imagen adicional al pasar el ratón" #: includes/class-ecwid-product-browser.php:95 msgid "Buy now buttons" msgstr "Botones de «Comprar ahora»" #: includes/class-ecwid-product-browser.php:87 msgid "Product SKU" msgstr "REF del producto" #: includes/class-ecwid-product-browser.php:79 msgid "Product price" msgstr "Precio del producto" #: includes/class-ecwid-product-browser.php:71 msgid "Product title" msgstr "Título del producto" #: includes/class-ecwid-product-browser.php:61 msgid "Justify" msgstr "Justificado" #: includes/class-ecwid-product-browser.php:56 msgid "Right" msgstr "Derecha" #: includes/class-ecwid-product-browser.php:51 msgid "Center" msgstr "Centrado" #: includes/class-ecwid-product-browser.php:46 msgid "Left" msgstr "Izquierda" #: includes/class-ecwid-product-browser.php:42 msgid "Product card text align" msgstr "El texto de la ficha del producto se alinea" #: includes/class-ecwid-product-browser.php:34 msgid "Show product card border" msgstr "Mostrar el borde de la ficha del producto" #: includes/class-ecwid-product-browser.php:26 msgid "Product thumbnail aspect ratio" msgstr "Relación de aspecto de la miniatura del producto" #: includes/class-ecwid-product-browser.php:18 msgid "Product thumbnail size" msgstr "Tamaño de la miniatura del producto" #: includes/class-ecwid-product-browser.php:10 msgid "Show product thumbnails" msgstr "Mostrar miniaturas de los productos" #. Author of the plugin msgid "Ecwid Ecommerce" msgstr "Comercio electrónico Ecwid" #: templates/importer/woo-summary.tpl.php:34 msgid "After import, your %s store will have " msgstr "Después de la importación, su tienda de %s tendrá " #: templates/importer/woo-summary.tpl.php:21 msgid "Your %s store has " msgstr "Su tienda de %s tiene " #: templates/importer/woo-summary.tpl.php:10 msgid "Your WooCommerce store has " msgstr "Su tienda de WooCommerce tiene " #: includes/integrations/class-ecwid-integration-elementor.php:64 #: includes/integrations/class-ecwid-integration-divibuilder.php:25 #: includes/integrations/class-ecwid-integration-gutenberg.php:94 msgid "%s Store" msgstr "Tienda de %s" #: includes/importer/class-ecwid-import-page.php:184 msgid "%s products" msgstr "%s productos" #: includes/importer/class-ecwid-import-page.php:178 msgid "%s products and %s categories" msgstr "%s productos y %s categorías" #: includes/class-ecwid-stub-renderer.php:27 #: includes/class-ecwid-admin-storefront-page.php:272 msgid "Product" msgstr "Producto" #: includes/class-ecwid-message-manager.php:278 #: includes/class-ecwid-message-manager.php:297 #: includes/class-ecwid-message-manager.php:318 msgid "Warning: some of your online store features are disabled. Please contact your hosting provider to resolve." msgstr "Advertencia: algunas de las funciones de su tienda en línea están inhabilitadas. Póngase en contacto con su proveedor de alojamiento web para resolverlo." #: templates/admin/legacy-connect.tpl.php:39 msgid "Create new account" msgstr "Crear una nueva cuenta" #: templates/admin/legacy-connect.tpl.php:33 msgid "Register at %s" msgstr "Registrarse en %s" #: includes/class-ecwid-floating-minicart.php:155 msgid "Bottom left" msgstr "Abajo a la izquierda" #: includes/class-ecwid-floating-minicart.php:154 msgid "Top left" msgstr "Arriba a la izquierda" #: includes/class-ecwid-floating-minicart.php:113 msgid "Show on all pages" msgstr "Mostrar en todas las páginas" #: includes/class-ecwid-floating-minicart.php:112 msgid "Show on store pages" msgstr "Mostrar en las páginas de la tienda" #: includes/class-ecwid-floating-minicart.php:111 msgid "Do not show" msgstr "No mostrar" #: includes/class-ecwid-customizer.php:134 msgid "Vertical indent" msgstr "Sangría vertical" #: includes/class-ecwid-customizer.php:123 msgid "Horizontal indent" msgstr "Sangría horizontal" #: includes/class-ecwid-customizer.php:97 msgid "Icon" msgstr "Icono" #: includes/class-ecwid-customizer.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:79 msgid "Border" msgstr "Borde" #: includes/class-ecwid-customizer.php:72 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:67 msgid "Layout" msgstr "Diseño" #: includes/class-ecwid-customizer.php:61 msgid "Show when empty" msgstr "Mostrar cuando esté vacío" #: includes/class-ecwid-customizer.php:49 msgid "Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The \"Show on store pages\" and \"Show when empty\" options will apply to the cart widget on site when published" msgstr "Nota: cuando está habilitado, el «widget» del carrito siempre se mostrará en la vista previa para que sea más fácil personalizarlo. Las opciones «Mostrar en las páginas de la tienda» y «Mostrar cuando esté vacío» se aplicarán al «widget» del carrito en el sitio cuando se publiquen" #: includes/class-ecwid-customizer.php:47 msgid "Display shopping cart" msgstr "Mostrar el carrito de compras" #: includes/class-ecwid-customizer.php:35 msgid "Shopping Cart Widget" msgstr "«Widget» del carrito de compras" #. Author URI of the plugin msgid "https://ecwid.to/ecwid-site" msgstr "https://ecwid.to/ecwid-site" #: templates/product-popup.php:247 msgid "selected product" msgstr "producto seleccionado" #: templates/product-popup.php:138 templates/product-popup.php:143 msgid "Selected Product" msgstr "Producto seleccionado" #: templates/product-popup.php:124 msgid " Choose another product" msgstr " Elegir otro producto" #: templates/importer/landing.tpl.php:20 msgid "Import your WooCommerce catalog to %s" msgstr "Importe su catálogo de WooCommerce a %s" #: includes/widgets/nsf-minicart-editor.tpl.php:35 msgid "Border:" msgstr "Borde:" #: includes/widgets/nsf-minicart-editor.tpl.php:19 msgid "Cart icon:" msgstr "Icono del carrito:" #: includes/widgets/nsf-minicart-editor.tpl.php:3 msgid "Layout:" msgstr "Diseño:" #: includes/class-ecwid-floating-minicart.php:145 msgid "No border" msgstr "Sin borde" #: includes/class-ecwid-floating-minicart.php:144 msgid "Pill" msgstr "Píldora" #: includes/class-ecwid-floating-minicart.php:143 msgid "Rectangle" msgstr "Rectángulo" #: includes/class-ecwid-floating-minicart.php:136 msgid "Basket" msgstr "Cesta" #: includes/class-ecwid-floating-minicart.php:134 msgid "Bag" msgstr "Bolsa" #: includes/class-ecwid-floating-minicart.php:127 msgid "Icon, label, item count, subtotal and link" msgstr "Icono, etiqueta, total de artículos, subtotal y enlace" #: includes/class-ecwid-floating-minicart.php:126 msgid "Icon, label, item count and subtotal" msgstr "Icono, etiqueta, total de artículos y subtotal" #: includes/class-ecwid-floating-minicart.php:125 msgid "Icon, label and item count" msgstr "Icono, etiqueta y total de artículos" #: includes/class-ecwid-floating-minicart.php:124 msgid "Icon and item count" msgstr "Icono y total de artículos" #: includes/class-ecwid-floating-minicart.php:123 msgid "Label and item count" msgstr "Etiqueta y y total de artículos" #: includes/class-ecwid-floating-minicart.php:122 msgid "Item count only" msgstr "Solo el total de artículos" #: includes/class-ecwid-floating-minicart.php:121 msgid "Small icon and item count" msgstr "Icono pequeño y total de artículos" #: includes/class-ecwid-floating-minicart.php:120 msgid "Small icon" msgstr "Icono pequeño" #: includes/widgets/class-ecwid-widget-minicart.php:9 msgid "Shopping Cart (deprecated)" msgstr "Carrito de compras (descontinuado)" #: includes/widgets/class-ecwid-widget-minicart-miniview.php:9 msgid "Shopping Cart Mini (deprecated)" msgstr "Carrito de compras en miniatura (descontinuado)" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:21 msgid "Shopping Cart Floating (deprecated)" msgstr "Carrito de compras flotante (descontinuado)" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:69 msgid "Displays storefront: product listing and checkout" msgstr "Muestra el escaparate virtual: listado de productos y pago" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:67 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:70 msgctxt "vc-tab" msgid "Online store" msgstr "Tienda en línea" #: includes/integrations/class-ecwid-integration-gutenberg.php:105 #: includes/gutenberg/class-ecwid-gutenberg.php:131 msgid "Your product" msgstr "Su producto" #: templates/shortcode-stub-store.tpl.php:18 #: includes/integrations/class-ecwid-integration-gutenberg.php:103 #: includes/widgets/class-ecwid-widget-product-browser.php:11 #: includes/gutenberg/class-ecwid-gutenberg.php:129 msgid "Your store will be shown here" msgstr "Su tienda se mostrará aquí" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:31 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:101 #: includes/integrations/class-ecwid-integration-gutenberg.php:101 #: includes/gutenberg/class-ecwid-gutenberg.php:127 #: js/gutenberg/blocks.build.js:1 msgid "Choose product" msgstr "Elegir producto" #: includes/integrations/class-ecwid-integration-gutenberg.php:97 #: includes/gutenberg/class-ecwid-gutenberg.php:123 msgid "%s product" msgstr "%s producto" #: templates/wp-toolbox.tpl.php:4 msgid "Take advantage of powerful apps and extensions designed to enhance your store." msgstr "Aproveche las increíbles aplicaciones y extensiones diseñadas para mejorar su tienda." #: templates/wp-toolbox.tpl.php:3 msgid "Extensions for your Store" msgstr "Extensiones para su tienda" #: templates/importer/woo-summary.tpl.php:6 msgid "Import summary" msgstr "Resumen de la importación" #: templates/importer/woo-main.tpl.php:19 msgid "This import will copy your WooCommerce products and categories to your %s store." msgstr "Esta importación copiará sus productos y categorías de WooCommerce a su tienda de %s." #: templates/importer/woo-main.tpl.php:62 msgid "Importing %s of %s items" msgstr "Importando %s de %s artículos" #: templates/importer/woo-complete-alert.tpl.php:27 msgid "Some of the items could not be imported." msgstr "Algunos de los artículos no se pudieron importar." #: templates/importer/landing.tpl.php:33 msgid "Learn more" msgstr "Más información" #: templates/importer/landing.tpl.php:33 msgid "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" msgstr "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" #: templates/importer/landing.tpl.php:31 msgid "Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center" msgstr "Ecwid le permite subir sus productos en forma de archivo CSV. Obtenga más información sobre esta herramienta en el centro de asistencia de Ecwid" #: templates/importer/landing.tpl.php:29 msgid "Import product catalog from other sources" msgstr "Importar el catálogo de productos de otras fuentes" #: templates/importer/landing.tpl.php:23 msgid "(You will be able to confirm the changes before the actual import)" msgstr "(podrá confirmar los cambios antes de la importación definitiva)" #: templates/importer/landing.tpl.php:12 msgid "We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?" msgstr "Notamos que tiene un WooCommerce instalado. Su tienda de WooCommerce tiene %1$s productos y %2$s categorías; ¿le gustaría importarlos a %3$s?" #: templates/importer/landing.tpl.php:9 msgid "Import product catalog from WooCommerce" msgstr "Importar el catálogo de productos de WooCommerce" #: templates/importer/landing.tpl.php:4 msgid "Here, we will help you uploading your product catalog to %s from another shopping cart or other sources." msgstr "Aquí, le ayudaremos a subir su catálogo de productos a %s de otro carrito de compras u otras fuentes." #: templates/importer/landing.tpl.php:1 msgid "Import products to your %s store" msgstr "Importe los productos a su tienda de %s" #: templates/dashboard-blog-posts.tpl.php:20 msgid "Knowledge Base" msgstr "Base de conocimiento" #: templates/dashboard-blog-posts.tpl.php:19 msgid "https://support.ecwid.com/hc/en-us" msgstr "https://support.ecwid.com/hc/en-us" #: templates/dashboard-blog-posts.tpl.php:14 msgid "https://www.ecwid.com/blog" msgstr "https://www.ecwid.com/blog" #: includes/importer/class-ecwid-import.php:39 msgid "Bulk import products and categories to your %s store" msgstr "Importar en masa productos y categorías a su tienda de %s" #: includes/importer/class-ecwid-import.php:38 msgid "%s products and categories" msgstr "%s productos y categorías" #: templates/importer/woo-main.tpl.php:36 #: includes/importer/class-ecwid-import-page.php:52 #: includes/importer/class-ecwid-import-page.php:53 msgid "Import your products from WooCommerce to %s" msgstr "Importe sus productos de WooCommerce a %s" #: includes/importer/class-ecwid-import-page.php:42 #: includes/importer/class-ecwid-import-page.php:43 msgid "Import" msgstr "Importar" #: templates/dashboard-blog-posts.tpl.php:15 #: includes/class-ecwid-wp-dashboard-feed.php:48 msgid "%s Blog" msgstr "Blog de %s" #: includes/class-ecwid-message-manager.php:345 msgid "No Thanks" msgstr "No, gracias" #: includes/class-ecwid-message-manager.php:343 msgid "Import my products from WooCommerce" msgstr "Importar mis productos de WooCommerce" #: includes/class-ecwid-message-manager.php:341 msgid "We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you." msgstr "Notamos que tiene WooCommerce instalado. Si desea copiar fácilmente sus productos de WooCommerce a %s, esta herramienta le ayudará." #: includes/class-ecwid-message-manager.php:340 msgid "Need help importing your products from WooCommerce to %s?" msgstr "¿Necesita ayuda para importar sus productos de WooCommerce a %s?" #: includes/class-ecwid-admin.php:213 includes/class-ecwid-admin.php:214 msgid "Customers" msgstr "Clientes" #: templates/help.php:28 msgid "or <a %s>Browse the Help Center" msgstr "o <a %s>consulte el centro de asistencia" #: templates/admin/welcome-connection-message.php:5 msgid "To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission." msgstr "Para mostrar su tienda en este sitio web, debe permitir que WordPress acceda a sus productos de %1$s. Pulse «Conectar» para otorgar el permiso." #: includes/faq_entries.php:40 msgid "Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target=\"_blank\" href=\"%s\">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans." msgstr "Nuestros 4 tipos de cuentas varían según la cantidad de productos, los tipos de funcionalidades y el nivel de asistencia. Para obtener más información, consulte nuestra <a target=\"_blank\" href=\"%s\">página de precios.</a><br /><br />Consejo profesional: también puede ahorrar dinero si se suscribe a nuestros planes anuales." #: includes/class-ecwid-popup-deactivate.php:59 msgid "[%s] WordPress plugin deactivation feedback (store ID: %s)" msgstr "[%s] Comentarios sobre la desactivación del complemento de WordPress (ID de la tienda: %s)" #: includes/class-ecwid-message-manager.php:289 msgid "Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data." msgstr "Su escaparate virtual (listado de productos y página de pago) está funcionando bien, pero las funciones avanzadas de la tienda, como el SEO y los «widgets» de la barra lateral, están inhabilitadas. Para habilitarlas y asegurarse de que su tienda funcione correctamente, pulse el botón de abajo para conectar su cuenta de %s. Esto tomará menos de un minuto; solo se le pedirá que inicie sesión en su cuenta y permita que este sitio web obtenga los datos de su tienda." #: includes/class-ecwid-message-manager.php:288 msgid "Action required: please connect your %s account" msgstr "Acción requerida: conecte su cuenta de %s" #: templates/popup/deactivate.php:24 msgid "Contact Support" msgstr "Ponerse en contacto con la asistencia" #: templates/popup/deactivate.php:1 msgid "If you have a moment, please let us know why you are deactivating:" msgstr "Si tiene un momento, háganos saber por qué está desactivando:" #: templates/admin/welcome-create.php:4 msgid "Create Store" msgstr "Crear tienda" #: templates/advanced-settings.php:1 msgid "%s — Advanced settings" msgstr "%s — Configuración avanzada" #: includes/widgets/class-ecwid-widget-random-products.php:10 msgid "Displays a list of random products." msgstr "Muestra una lista de productos aleatorios." #: includes/widgets/class-ecwid-widget-random-products.php:9 msgid "Random Products" msgstr "Productos aleatorios" #: includes/widgets/class-ecwid-widget-random-product.php:9 #: includes/widgets/class-ecwid-widget-random-product.php:64 msgid "Random Product" msgstr "Producto aleatorio" #: includes/widgets/class-ecwid-widget-random-product.php:8 msgid "Displays a random product from your store to attract customer attention." msgstr "Muestra un producto aleatorio de su tienda para atraer la atención del cliente." #: includes/widgets/class-ecwid-widget-latest-products.php:10 msgid "Displays the latest added products from your store. Show new products to returning customers to drive repeat sales." msgstr "Muestra los últimos productos añadidos de su tienda. Muestre nuevos productos a los clientes existentes para impulsar las ventas repetidas." #: includes/widgets/class-ecwid-widget-latest-products.php:9 msgid "Latest Products" msgstr "Últimos productos" #: includes/class-ecwid-popup-deactivate.php:164 msgid "Can you share your feedback? What was wrong?" msgstr "¿Podría compartir su opinión? ¿Qué fue lo que pasó?" #: includes/class-ecwid-popup-deactivate.php:161 msgid "Other" msgstr "Otro" #: includes/class-ecwid-popup-deactivate.php:155 msgid "It's a temporary deactivation. Please do not ask me again." msgstr "Es una desactivación temporal. No preguntarme de nuevo." #: includes/class-ecwid-popup-deactivate.php:152 msgid "Can you share the name of the plugin you chose?" msgstr "¿Podría compartir el nombre del complemento que ha elegido?" #: includes/class-ecwid-popup-deactivate.php:149 msgid "I found a better plugin" msgstr "Encontré un mejor complemento" #: includes/class-ecwid-popup-deactivate.php:146 msgid "What feature do you need?" msgstr "¿Qué función necesita?" #: includes/class-ecwid-popup-deactivate.php:143 msgid "The plugin doesn't support the feature I want" msgstr "El complemento no es compatible con la función que quiero" #: includes/class-ecwid-popup-deactivate.php:128 msgid "What was wrong?" msgstr "¿Qué fue lo que pasó?" #: includes/class-ecwid-popup-deactivate.php:125 msgid "I have a problem using this plugin" msgstr "Tengo un problema con el uso de este complemento" #: includes/class-ecwid-popup-deactivate.php:112 msgid "Before You Go" msgstr "Antes de que se vaya" #: templates/admin/storefront/area-navigation.php:79 #: includes/class-ecwid-popup-deactivate.php:105 msgid "Cancel" msgstr "Cancelar" #: includes/class-ecwid-popup-deactivate.php:101 msgid "Submit & Deactivate" msgstr "Enviar y desactivar" #: includes/class-ecwid-message-manager.php:244 #: includes/class-ecwid-store-page.php:568 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:51 #: ecwid-shopping-cart.php:1082 js/gutenberg/blocks.build.js:1 msgid "Set up your store" msgstr "Configure su tienda" #: templates/admin-head.php:8 includes/class-ecwid-admin.php:48 #: includes/integrations/class-ecwid-integration-gutenberg.php:45 #: includes/gutenberg/class-ecwid-gutenberg.php:69 msgid "%s" msgstr "%s" #: templates/product-popup.php:199 js/gutenberg/blocks.build.js:1 msgid "«Buy now» button" msgstr "Botón de «Comprar ahora»" #: templates/admin/simple-dashboard.php:10 msgid "%s Shopping Cart" msgstr "Carrito de compras de %s" #: templates/advanced-settings.php:42 msgid "Please subscribe to a paid plan to get this feature." msgstr "Suscríbase a un plan de pago para obtener esta función." #: templates/admin-footer.php:9 msgid "Get %s mobile app" msgstr "Descargue la aplicación móvil de %s" #: includes/class-ecwid-message-manager.php:272 msgid "Rate %s at WordPress.org" msgstr "Tasa de %s en WordPress.org" #: includes/class-ecwid-message-manager.php:268 msgid "Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site." msgstr "¿Le gusta su tienda de %s en línea? Apreciaríamos si comparte su opinión y vota por el complemento en el sitio de WordPress." #: includes/class-ecwid-message-manager.php:260 msgid "To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings." msgstr "Para añadir funciones adicionales a su tienda, arrastre y suelte los elementos de la tienda de %s en su sitio web. Una vez que haya terminado, puede volver a modificar su configuración." #: templates/sync.php:114 msgid "Provide access." msgstr "Otorgar acceso." #: templates/sync.php:113 msgid "To enable this feature, the plugin needs a permission to read your store product information." msgstr "Para habilitar esta función, el complemento necesita un permiso para leer la información del producto de su tienda." #: templates/product-popup.php:137 templates/product-popup.php:147 msgid "Choose Product" msgstr "Elegir producto" #: templates/product-popup.php:96 msgid "Try another search." msgstr "Intente otra búsqueda." #: templates/sync.php:152 msgid "Not synchronized yet" msgstr "No se ha sincronizado todavía" #: templates/sync.php:149 msgid "Last update" msgstr "Última actualización" #: templates/sync.php:145 msgid "Products are successfully synchronized. The product pages are up to date." msgstr "Los productos se sincronizaron satisfactoriamente. Las páginas de productos están actualizadas." #: templates/sync.php:138 msgid "Products synchronized: %1$s out of %2$s" msgstr "Productos eliminados sincronizados: %1$s de %2$s" #: templates/sync.php:126 msgid "We're synchronizing your products. This may take a few minutes. Please do not reload the page." msgstr "Estamos sincronizando sus productos. Esto puede tardar unos minutos. No actualice la página." #: templates/sync.php:119 msgid "Synchronize products" msgstr "Sincronizar productos" #: templates/advanced-settings.php:83 msgid "%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site." msgstr "%s almacena los datos de sus productos de forma segura en la nube. Las páginas de productos se muestran sobre la marcha cuando un cliente navega por su tienda. Por lo que, básicamente, los productos no se almacenan en el sitio web, por eso la búsqueda en el sitio web no encuentra páginas de productos mientras busca en las páginas del sitio web y en las publicaciones. Esta opción habilita un modo de almacenamiento local: los productos se almacenarán tanto en la nube como en su sitio web. Los resultados de la búsqueda en el sitio web incluirán las páginas de productos, así como las páginas o publicaciones habituales de su sitio web." #: templates/product-popup.php:243 msgid "Insert" msgstr "Insertar" #: templates/product-popup.php:242 msgid "select product" msgstr "seleccionar producto" #: templates/product-popup.php:241 templates/product-popup.php:246 msgid "customize appearance" msgstr "personalizar apariencia" #: templates/product-popup.php:224 msgid "Show price inside the \"Buy now\" button" msgstr "Mostrar el precio dentro del botón de «Comprar ahora»" #: templates/product-popup.php:229 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:62 #: js/gutenberg/blocks.build.js:1 msgid "Center align on a page" msgstr "Centrar la alineación en una página" #: templates/product-popup.php:219 js/gutenberg/blocks.build.js:1 msgid "Add border" msgstr "Añadir borde" #: templates/product-popup.php:188 js/gutenberg/blocks.build.js:1 msgid "Quantity" msgstr "Cantidad" #: templates/product-popup.php:178 js/gutenberg/blocks.build.js:1 msgid "Options" msgstr "Opciones" #: templates/product-popup.php:173 js/gutenberg/blocks.build.js:1 msgid "Picture" msgstr "Imagen" #: templates/product-popup.php:163 msgid "Choose product properties to display in widget" msgstr "Elija las propiedades del producto para mostrarlas en el «widget»" #: templates/product-popup.php:139 templates/product-popup.php:151 msgid "Customize widget" msgstr "Personalizar «widget»" #: templates/product-popup.php:97 msgid "Browse all products." msgstr "Explorar todos los productos." #: templates/product-popup.php:94 msgid "Nothing found for <span class=\"empty-page__term\">\"{{ data.term }}\"</span>" msgstr "No se ha encontrado nada en relación con <span class=\"empty-page__term\">«{{ data.term }}»</span>" #: templates/product-popup.php:80 msgid "Next page" msgstr "Página siguiente" #: templates/product-popup.php:69 msgid "Current Page" msgstr "Página actual" #: templates/product-popup.php:49 msgid "Title or SKU" msgstr "Título o REF" #: templates/product-popup.php:47 templates/product-popup.php:53 #: templates/product-popup.php:56 msgid "Search" msgstr "Buscar" #: templates/product-popup.php:29 msgid "SKU" msgstr "REF" #: templates/product-popup.php:23 msgid "Name" msgstr "Nombre" #: includes/class-ecwid-product-popup.php:150 msgid "Last Page" msgstr "Última página" #: includes/class-ecwid-product-popup.php:149 msgid "Next Page" msgstr "Página siguiente" #: includes/class-ecwid-product-popup.php:148 msgid "Previous Page" msgstr "Página anterior" #: includes/class-ecwid-product-popup.php:147 msgid "First Page" msgstr "Primera página" #: includes/class-ecwid-product-popup.php:107 msgid "Add Product" msgstr "Añadir producto" #: includes/class-ecwid-oauth.php:366 msgid "To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the \"Add product\" dialog." msgstr "A fin de poder elegir un producto para insertarlo en sus publicaciones y páginas, deberá volver a conectar su sitio a su tienda de %s. Esto solo requerirá que acepte la solicitud de permisos para que el complemento pueda listar sus productos en el cuadro de diálogo «Añadir producto»." #: templates/advanced-settings.php:54 msgid "To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>" msgstr "Para asegurarse de que su cliente puede acceder realmente a su sitio web y a la tienda, habilite el registro en las <a %s>configuraciones del sitio web</a>" #: templates/advanced-settings.php:48 msgid "To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>" msgstr "Para permitir que %s inicie la sesión de sus clientes automáticamente en su tienda, otorgue los permisos para utilizar los datos del cliente en la tienda. <a %s>Utilice este enlace para hacerlo</a>" #: templates/advanced-settings.php:39 msgid "Upgrade to get this feature" msgstr "Actualice para obtener esta función" #: templates/advanced-settings.php:32 msgid "Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again." msgstr "El inicio de sesión único les permite a sus clientes tener un inicio de sesión único para su sitio web de WordPress y su %s. Cuando alguien inicie sesión en su sitio web, también iniciará sesión automáticamente en su cuenta de cliente en la tienda sin necesidad de introducir su correo electrónico y contraseña nuevamente." #: templates/advanced-settings.php:27 msgid "Customer Single Sign-On" msgstr "Inicio de sesión único del cliente" #: includes/integrations/class-ecwid-integration-divibuilder.php:63 msgid "Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space." msgstr "Introduzca las clases CSS opcionales que se utilizarán para este módulo. Se puede utilizar una clase CSS para crear estilos CSS personalizados. Puede añadir varias clases separadas por un espacio." #: includes/integrations/class-ecwid-integration-divibuilder.php:60 msgid "CSS Class" msgstr "Clase CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:57 msgid "Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page." msgstr "Introduzca un ID de CSS opcional que se utilizará para este módulo. Se puede utilizar un ID para crear un estilo CSS personalizado o para crear enlaces a secciones particulares de su página web." #: includes/integrations/class-ecwid-integration-divibuilder.php:54 msgid "CSS ID" msgstr "ID de CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:51 msgid "This will change the label of the module in the builder for easy identification." msgstr "Esto cambiará la etiqueta del módulo en el creador para una fácil identificación." #: includes/integrations/class-ecwid-integration-divibuilder.php:49 msgid "Admin Label" msgstr "Etiqueta de administrador" #: includes/integrations/class-ecwid-integration-divibuilder.php:44 msgid "Here you can create the content that will be used within the module." msgstr "Aquí puede crear el contenido que se utilizará dentro del módulo." #: includes/integrations/class-ecwid-integration-divibuilder.php:41 msgid "Content" msgstr "Contenido" #: templates/admin-footer.php:29 msgid "<a %s>Reconnect</a>" msgstr "<a %s>Volver a conectar</a>" #: templates/help.php:15 msgid "https://support.ecwid.com/hc/en-us/search" msgstr "https://support.ecwid.com/hc/en-us/search" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:73 msgid "Browse by Category" msgstr "Buscar por categoría" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:15 msgid "Store Root Categories" msgstr "Categorías raíz de la tienda" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:14 msgid "Adds root categories list to the sidebar to let your customers navigate the store." msgstr "Añade la lista de categorías raíz a la barra lateral para que sus clientes puedan desplazarse por la tienda." #: templates/admin/welcome-connection-message.php:25 msgid "To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission." msgstr "Para vender utilizando %1$s, debe permitir que WordPress acceda al complemento %1$s. El botón «Conectar» lo redirigirá a su cuenta de %1$s donde puede otorgar el permiso." #: templates/admin-timeout.php:11 msgid "Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">our customer support team</a>." msgstr "Nuestro equipo ya está trabajando en este asunto. Actualice la página en unos minutos. Si el problema persiste, comuníquese con <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">nuestro equipo de atención al cliente</a>." #: templates/admin-timeout.php:9 msgid "Sorry we're having technical difficulties." msgstr "Le pido disculpas por las dificultades técnicas que estamos experimentando." #: includes/class-ecwid-floating-minicart.php:153 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:143 msgid "Top right" msgstr "Arriba a la derecha" #: includes/class-ecwid-floating-minicart.php:152 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:138 msgid "Bottom right" msgstr "Abajo a la derecha" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:135 #: includes/class-ecwid-customizer.php:110 msgid "Position" msgstr "Posición" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:20 msgid "Adds a shopping cart widget to the top right corner of your site." msgstr "Añada un «widget» de carrito de compras en la esquina superior derecha de su sitio web." #: templates/help.php:215 msgid "You can send a new request here." msgstr "Puede enviar una nueva solicitud aquí." #: templates/help.php:214 msgid " Thank you very much for contacting us! We will get back to you shortly." msgstr " ¡Muchas gracias por ponerse en contacto con nosotros! Nos pondremos en contacto con usted en breve." #: templates/help.php:213 msgid "Your email has been sent" msgstr "Se ha enviado su correo electrónico" #: templates/help.php:207 msgid "Send message failed" msgstr "Ocurrió un error al enviar el mensaje" #: templates/help.php:196 msgid "Send Message" msgstr "Enviar mensaje" #: templates/help.php:193 msgid "Type in your message here" msgstr "Escriba su mensaje aquí" #: templates/help.php:192 msgid "Subject" msgstr "Asunto" #: templates/help.php:186 msgid "Send a message to our support team" msgstr "Envíe un mensaje a nuestro equipo de asistencia" #: templates/help.php:177 msgid "Still have questions about Ecwid? Let us know!" msgstr "¿Todavía tiene preguntas acerca de Ecwid? ¡Háganoslo saber!" #: templates/help.php:176 msgid "Contact us" msgstr "Póngase en contacto con nosotros" #: templates/help.php:33 msgid "Frequently Asked Questions" msgstr "Preguntas frecuentes" #: templates/help.php:21 msgid "Search the Knowledge Base" msgstr "Buscar en la base de conocimientos" #: templates/help.php:17 msgid "E.g. How to set up shipping" msgstr "Por ejemplo, cómo establecer el envío" #: templates/help.php:11 msgid "How can we help you?" msgstr "¿Cómo podemos ayudarle?" #: includes/faq_entries.php:68 msgid "You can display your store on the site main page. Adjust the \"Reading\" settings of your site as described in our <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">Help Center.</a>" msgstr "Puede mostrar su tienda en la página principal del sitio web. Ajuste la configuración de «Lectura» de su sitio web como se describe en nuestro <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">centro de asistencia.</a>" #: includes/faq_entries.php:67 msgid "Is it possible to display my store on the site home page?" msgstr "¿Es posible mostrar mi tienda en la página de inicio del sitio web?" #: includes/faq_entries.php:61 msgid "To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">How to use it.</a>" msgstr "Para mostrar un solo producto en una página aparte o en una entrada de blog de su sitio web, utilice el código corto <b>[ecwid_product]</b>. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">Cómo utilizarlo</a>" #: includes/faq_entries.php:60 msgid "How to add a single product with the add to bag button to the site pages?" msgstr "¿Cómo añadir un solo producto con el botón de «añadir a la bolsa» en las páginas del sitio web?" #: includes/faq_entries.php:55 msgid "To create sitemap for your Wordpress site we suggest using <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> or <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">paid Ecwid users</a>." msgstr "Para crear un «Mapa del sitio» para su sitio web de Wordpress, le sugerimos que utilice los  complementos <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> o <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>. Estos complementos son totalmente compatibles con Ecwid y permiten generar un mapa del sitio que contiene enlaces a categorías y páginas de productos, por lo que las páginas de la tienda se indexarán más rápido. Tenga en cuenta que esta opción solo está disponible para los <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">usuarios de pago de Ecwid</a>." #: includes/faq_entries.php:54 msgid "How do I put my products in the sitemap?" msgstr "¿Cómo pongo mis productos en el mapa del sitio?" #: includes/faq_entries.php:48 msgid "You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open \"Appearance > Menus\" in your WordPress control panel and add the \"Store with Categories Menu\" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site." msgstr "Puede añadir el menú de categorías de la tienda al menú de su sitio web para ayudar a sus clientes a navegar fácilmente por su sitio web. Simplemente abra «Apariencia > Menús» en el panel de WordPress y añada el elemento «Tienda con menú de categorías» al menú de su sitio web. Aparecerá automáticamente un menú desplegable que contendrá las categorías de su tienda en su sitio web." #: includes/faq_entries.php:47 msgid "How do I add store categories to the site menu?" msgstr "¿Cómo puedo añadir categorías de tiendas al menú del sitio web?" #: includes/faq_entries.php:38 msgid "How much does Ecwid cost?" msgstr "¿Cuánto cuesta Ecwid?" #: includes/faq_entries.php:30 msgid "You can add product search box, cart widget and more on the <a href=\"%s\">\"Appearance / Widgets page\"</a> here in your site admin. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">More details.</a>" msgstr "Puede añadir un cuadro de búsqueda de productos, un «widget» de carrito y más desde la <a href=\"%s\">«Página de apariencia y widgets»</a> que se encuentra aquí en el administrador de su sitio web. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">Más detalles.</a>" #: includes/faq_entries.php:28 msgid "How can I add a cart widget to my site sidebar?" msgstr "¿Cómo puedo añadir un «widget» de carrito de compras a la barra lateral de mi sitio web?" #: includes/faq_entries.php:21 msgid "You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">More details.</a>" msgstr "Puede añadir su tienda en línea a su página empresarial de Facebook (no se necesitan complementos). Ecwid sincronizará automáticamente los productos, clientes, pedidos e inventario entre su tienda en línea de WordPress y Facebook. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">Más detalles.</a>" #: includes/faq_entries.php:20 msgid "How to set up a storefront on Facebook with Ecwid?" msgstr "¿Cómo crear una tienda en Facebook con Ecwid?" #: includes/faq_entries.php:13 msgid "Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">More details.</a>" msgstr "Ecwid ofrece aplicaciones móviles gratuitas para iOS y Android para que pueda gestionar su tienda y vender donde y cuando quiera. Escanee productos, supervise el inventario, gestione las ventas y acepte pagos utilizando su dispositivo móvil como una estación de punto de venta. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">Más detalles.</a>" #: includes/faq_entries.php:12 msgid "How can I manage my store from a mobile device?" msgstr "¿Cómo puedo gestionar mi tienda desde un dispositivo móvil?" #: includes/faq_entries.php:6 msgid "Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">More details.</a>" msgstr "Ecwid cuenta con la certificación PCI DSS Nivel 1, que es el estándar de oro para las soluciones de comercio electrónico en todo el mundo. Esto significa que no tendrá problemas de cumplimiento bancario cuando venda en línea con Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">Más detalles.</a>" #: includes/faq_entries.php:5 msgid "How secure is this plugin? Is my store PCI DSS compliant?" msgstr "¿Qué tan seguro es este complemento? ¿Mi tienda cumple con el PCI DSS?" #: includes/class-ecwid-nav-menus.php:32 msgid "Ecwid Menu Item" msgstr "Elemento del menú de Ecwid" #: includes/class-ecwid-admin.php:179 includes/class-ecwid-admin.php:180 msgid "Help" msgstr "Ayuda" #: templates/admin-footer.php:27 msgid "Want to connect another %s store?" msgstr "¿Desea conectar otra tienda de %s?" #: templates/admin-footer.php:17 msgid "Questions?" msgstr "¿Tiene alguna pregunta?" #: templates/admin-footer.php:6 msgid "Manage Store on iPhone, iPad or Android" msgstr "Gestione la tienda desde iPhone, iPad o Android" #: includes/class-ecwid-message-manager.php:254 msgid "Complete Setup" msgstr "Completar configuración" #: includes/class-ecwid-message-manager.php:253 msgid "Complete setup and start selling" msgstr "Complete la configuración y comience a vender" #: includes/class-ecwid-message-manager.php:242 msgid "Greetings! Your %s plugin is now active." msgstr "¡Enhorabuena! Su complemento de %s ya está activo." #: templates/debug.php:12 msgid "Download log file" msgstr "Descargar archivo de registro" #: templates/help.php:67 includes/oembed.php:75 includes/oembed.php:104 msgid "See more" msgstr "Ver más" #: ecwid-shopping-cart.php:1051 msgid "I have a problem with my %s store" msgstr "Tengo un problema con mi tienda de %s" #: includes/class-ecwid-message-manager.php:55 msgid "Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: \"The Wordpress function wp_remote_post() failed to connect a remote server because of some error: \"%s\". Seems like HTTP POST requests are disabled on this server\". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>." msgstr "Lo siento, hay un problema. Se supone que esta página muestra el panel de control de su tienda; sin embargo, este sitio web de Wordpress no parece poder conectarse al servidor de Ecwid para mostrar el panel de su tienda aquí. Es probable que esto se deba a una mala configuración del servidor; su proveedor de alojamiento web puede solucionarlo. Aquí hay una descripción más técnica del problema, la cual puede enviarle a su proveedor de alojamiento web: «La función de Wordpress wp_remote_post() no pudo conectarse a un servidor remoto debido al error: “%s”; parece que las solicitudes HTTP POST están inhabilitadas en este servidor». <br /><br />No dude en ponerse en contacto con nosotros en <a %s>wordpress@ecwid.com</a> y le ayudaremos a comunicarse con su proveedor de alojamiento web para pedirle que solucione el problema. <br /><br /> Mientras tanto, para gestionar su tienda, puede utilizar el panel de control web de Ecwid en <a %s>my.ecwid.com</a>. Su escaparate virtual está funcionando bien; puede echarle un vistazo aquí: <a %s>%s</a>." #: templates/store-popup.php:249 msgid "Open store dashboard" msgstr "Abrir el panel de la tienda" #: templates/store-popup.php:12 templates/store-popup.php:27 msgid "Store elements" msgstr "Elementos de la tienda" #: templates/reconnect-sso.php:10 msgid "Re-connect to Enable Control Panel" msgstr "Vuélvase a conectar para activar el panel de control" #: templates/reconnect-sso.php:8 msgid "Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page." msgstr "Gestione productos, supervise las ventas y ajuste la configuración: <nobr>todo sin</nobr> salir de esta página." #: templates/reconnect-sso.php:7 msgid "Your store Control Panel. Right here in WordPress." msgstr "Panel de control de su tienda. Aquí mismo en WordPress." #: ecwid-shopping-cart.php:2114 msgid "Orders" msgstr "Pedidos" #: includes/class-ecwid-nav-menus.php:168 ecwid-shopping-cart.php:2118 msgid "The store top-level categories are automatically added to this drop-down menu" msgstr "Las categorías de alto nivel de la tienda se añaden automáticamente a este menú desplegable" #: includes/class-ecwid-nav-menus.php:167 ecwid-shopping-cart.php:2117 msgid "Done" msgstr "Hecho" #: includes/class-ecwid-nav-menus.php:166 ecwid-shopping-cart.php:2116 msgid "Refresh categories list" msgstr "Actualizar la lista de categorías" #: includes/class-ecwid-nav-menus.php:165 msgid "Store Page" msgstr "Página de la tienda" #: includes/class-ecwid-nav-menus.php:319 msgid "Add to Menu" msgstr "Añadir al menú" #: includes/class-ecwid-nav-menus.php:316 msgid "Select All" msgstr "Seleccionar todo" #: includes/class-ecwid-nav-menus.php:369 msgid "Store with Categories Menu" msgstr "Tienda con menú de categorías" #: includes/class-ecwid-nav-menus.php:352 #: includes/class-ecwid-nav-menus.php:355 msgid "My Account" msgstr "Mi cuenta" #: includes/class-ecwid-nav-menus.php:335 #: includes/class-ecwid-floating-minicart.php:135 #: includes/class-ecwid-admin-storefront-page.php:279 msgid "Cart" msgstr "Carrito" #: includes/class-ecwid-admin.php:87 includes/class-ecwid-admin.php:88 #: includes/class-ecwid-products.php:228 ecwid-shopping-cart.php:2112 msgid "Products" msgstr "Productos" #: includes/class-ecwid-admin.php:79 includes/class-ecwid-admin.php:80 msgid "Sales" msgstr "Ventas" #: ecwid-shopping-cart.php:1119 msgid "Report a problem with the store" msgstr "Informar un problema con la tienda" #: ecwid-shopping-cart.php:1036 msgid "%s plugin doesn't work well with my \"%s\" theme" msgstr "El complemento %s no funciona bien con mi tema «%s»" #: templates/admin/welcome-connection-message.php:22 #: templates/admin/welcome-connection-message.php:28 msgid "Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL." msgstr "Parece que su sitio web no admite solicitudes POST remotas, las cuales son necesarias para que la API de %s funcione. Comuníquese con su proveedor de alojamiento web para habilitar cURL." #. Description of the plugin msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up." msgstr "Ecwid es un carrito de compras gratuito con todas las funciones. Se puede integrar fácilmente con cualquier blog de Wordpress y se configura en menos de 5 minutos." #. Plugin URI of the plugin msgid "http://www.ecwid.com?partner=wporg" msgstr "http://www.ecwid.com?partner=wporg" #: templates/store-svg.php:12 msgid "Demo Store" msgstr "Tienda de demostración" #: templates/store-svg.php:9 msgid "Your store will be shown here!" msgstr "¡Su tienda se mostrará aquí!" #: templates/product-popup.php:248 templates/store-popup.php:256 msgid "Update" msgstr "Actualizar" #: templates/store-popup.php:253 msgid "Insert into page" msgstr "Insertar en la página" #: templates/store-popup.php:246 msgid "Demo store" msgstr "Tienda de demostración" #: templates/store-popup.php:80 msgid "Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>" msgstr "Además, puede añadir controles de la tienda a la barra de herramientas de su sitio web mediante <a %s>«widgets» nativos de WordPress</a>." #: templates/store-popup.php:74 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:86 msgid "Show categories" msgstr "Mostrar categorías" #: templates/store-popup.php:66 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:94 msgid "Show minicart" msgstr "Mostrar minicarrito" #: templates/store-popup.php:58 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:78 msgid "Show search" msgstr "Mostrar búsqueda" #: templates/store-popup.php:53 msgid "Product catalog will be shown automatically" msgstr "El catálogo de productos se mostrará automáticamente" #: templates/store-popup.php:52 msgid "Choose widgets to show" msgstr "Elija los «widgets» a mostrar" #: templates/admin/welcome-create.php:7 msgid "Connect your store" msgstr "Conecte su tienda" #: templates/admin/welcome-no_oauth.php:6 #: templates/importer/import-no-token.tpl.php:6 #: includes/class-ecwid-message-manager.php:291 msgid "Connect" msgstr "Conectar" #: templates/admin/legacy-connect.tpl.php:68 msgid "Save and connect your %s store to the site" msgstr "Guarde y conecte su tienda de %s al sitio web" #: templates/admin/legacy-connect.tpl.php:59 msgid "Enter your Store ID here:" msgstr "Introduzca el ID de su tienda aquí:" #: templates/admin/legacy-connect.tpl.php:52 msgid "Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the \"Dashboard\" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration." msgstr "El ID de la tienda es un identificador único de cualquier tienda de %1$s, el cual consta de varios dígitos. Puede encontrarlo en la página «Panel» del panel de control de %1$s. El ID de la tienda se enviará en el correo electrónico de bienvenida después del registro." #: templates/admin/legacy-connect.tpl.php:50 msgid "Find your Store ID" msgstr "Encuentre el ID de su tienda" #: templates/admin/legacy-connect.tpl.php:46 msgid "You will be able to sign up through your existing Google, Facebook or PayPal profiles as well." msgstr "También podrá registrarse a través de sus perfiles existentes de Google, Facebook o PayPal." #: templates/admin/legacy-connect.tpl.php:42 msgid "I already have an account, sign in" msgstr "Ya tengo una cuenta, iniciar sesión" #: templates/admin/legacy-connect.tpl.php:35 msgid "Create a new %s account which you will use to manage your store and inventory. The registration is free." msgstr "Cree una nueva cuenta de %s que utilizará para gestionar su tienda e inventario. El registro es gratuito." #: templates/admin/legacy-connect.tpl.php:24 msgid "The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps." msgstr "El primer paso para abrir su negocio en línea: <br />añadamos una tienda a su sitio web de WordPress en <strong>3</strong> simples pasos." #: templates/admin/legacy-connect.tpl.php:21 msgid "Thank you for choosing %s to build your online store" msgstr "Gracias por elegir %s para construir su tienda en línea" #: templates/admin/simple-dashboard.php:58 msgid "Open control panel" msgstr "Abrir el panel de control" #: templates/admin/simple-dashboard.php:42 msgid "Your %s store is connected<br /> to your WordPress website" msgstr "Su tienda de %s está conectada<br /> a su sitio web de WordPress" #: templates/admin/simple-dashboard.php:39 msgid "Greetings!" msgstr "¡Saludos!" #: templates/admin/simple-dashboard.php:34 msgid "Your %s store is now connected<br /> to your WordPress website" msgstr "Su tienda de %s ahora está conectada<br /> a su sitio web de WordPress" #: templates/admin/simple-dashboard.php:31 msgid "Congratulations!" msgstr "¡Enhorabuena!" #: templates/admin/simple-dashboard.php:18 msgid "Disconnect store" msgstr "Desconectar tienda" #: templates/admin/legacy-connect.tpl.php:65 #: templates/admin/simple-dashboard.php:14 templates/store-popup.php:244 #: templates/store-svg.php:14 #: includes/integrations/class-ecwid-integration-gutenberg.php:104 #: includes/gutenberg/class-ecwid-gutenberg.php:130 msgid "Store ID" msgstr "ID de la tienda" #: templates/admin/welcome-connection-message.php:15 msgid "Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again." msgstr "Error de conexión: después de hacer clic en el botón, debe iniciar sesión y otorgar los permisos para poder utilizar nuestro complemento. Inténtelo de nuevo." #: templates/admin/legacy-connect.tpl.php:57 #: templates/admin/welcome-no_oauth.php:3 msgid "Enter your Store ID" msgstr "Introduzca el ID de su tienda" #: templates/store-popup.php:221 msgid "Default view mode on search results" msgstr "Modo de vista predeterminado en los resultados de búsqueda" #: templates/store-popup.php:214 templates/store-popup.php:232 msgid "Table" msgstr "Tabla" #: templates/store-popup.php:211 templates/store-popup.php:229 msgid "List" msgstr "Lista" #: templates/store-popup.php:208 templates/store-popup.php:226 msgid "Grid" msgstr "Cuadrícula" #: templates/store-popup.php:204 msgid "Default view mode on product pages" msgstr "Modo de vista predeterminado en las páginas de productos" #: templates/store-popup.php:184 msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products." msgstr "Aquí puede gestionar cuántos productos se mostrarán por página. Estas opciones definen valores máximos. Si no hay suficiente espacio para mostrar todas las columnas de productos, %s adaptará el número de columnas para mantener todos los productos." #: templates/store-popup.php:169 msgid "Table view" msgstr "Vista de tabla" #: templates/store-popup.php:152 msgid "List view" msgstr "Vista de lista" #: templates/store-popup.php:125 msgid "Grid view" msgstr "Vista de cuadrícula" #: templates/store-popup.php:123 msgid "Number of products per page" msgstr "Número de productos por página" #: templates/store-popup.php:191 msgid "Number of categories per row" msgstr "Número de categorías por fila" #: templates/advanced-settings.php:98 msgid "Save changes" msgstr "Guardar cambios" #: includes/class-ecwid-product-browser.php:202 msgid "Default category ID" msgstr "ID de categoría predeterminada" #: templates/store-popup.php:98 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:127 #: includes/integrations/class-ecwid-integration-gutenberg.php:427 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:56 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:248 msgid "Store root category" msgstr "Categoría raíz de la tienda" #: templates/store-popup.php:90 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:101 msgid "Category shown by default" msgstr "Categoría mostrada por defecto" #: templates/admin-message.php:47 msgid "Never show this message again" msgstr "Nunca mostrar este mensaje otra vez" #: templates/product-popup.php:194 lib/ecwid_platform.php:209 #: js/gutenberg/blocks.build.js:1 msgid "Price" msgstr "Precio" #: includes/class-ecwid-store-editor.php:75 #: includes/integrations/class-ecwid-integration-gutenberg.php:102 #: includes/gutenberg/class-ecwid-gutenberg.php:128 msgid "Edit Appearance" msgstr "Editar apariencia" #: includes/class-ecwid-store-editor.php:60 msgid "Edit Store" msgstr "Editar tienda" #: templates/store-popup.php:11 templates/store-popup.php:21 #: includes/class-ecwid-store-editor.php:52 msgid "Add Store" msgstr "Añadir tienda" #: includes/class-ecwid-message-manager.php:261 msgid "Back to Store Settings" msgstr "Regresar a la configuración de la tienda" #: includes/class-ecwid-message-manager.php:252 msgid "Your store is almost ready!" msgstr "¡Su tienda ya está casi lista!" #: includes/class-ecwid-message-manager.php:243 msgid "Take a few simple steps to complete store setup" msgstr "Siga unos sencillos pasos para completar la configuración de la tienda" #: includes/widgets/class-ecwid-widget-products-base.php:205 msgid "Number of products to show" msgstr "Número de productos para mostrar" #: includes/widgets/class-ecwid-widget-recently-viewed.php:89 msgid "Store Link Title" msgstr "Título del enlace de la tienda" #: templates/product-popup.php:183 includes/class-ecwid-product-browser.php:249 #: includes/widgets/class-ecwid-widget-products-base.php:199 #: js/gutenberg/blocks.build.js:1 msgid "Title" msgstr "Título" #: includes/widgets/class-ecwid-widget-recently-viewed.php:69 #: includes/widgets/class-ecwid-widget-recently-viewed.php:91 msgid "You have not viewed any product yet. Open store." msgstr "Aún no ha visto ningún producto. Abra la tienda." #: includes/widgets/class-ecwid-widget-recently-viewed.php:11 msgid "Recently Viewed Products" msgstr "Productos vistos recientemente" #: includes/widgets/class-ecwid-widget-recently-viewed.php:12 msgid "Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop." msgstr "Muestra una lista de productos vistos recientemente por el cliente para volver fácilmente a los productos que vieron en su tienda." #: includes/widgets/class-ecwid-widget-store-link.php:35 msgid "Text" msgstr "Texto" #: includes/themes/class-ecwid-theme-twentyseventeen.php:48 #: includes/themes/class-ecwid-theme-twentyseventeen.php:54 #: includes/themes/class-ecwid-theme-twentyfifteen.php:34 #: includes/themes/class-ecwid-theme-twentyfifteen.php:40 #: includes/themes/class-ecwid-theme-twentysixteen.php:36 #: includes/themes/class-ecwid-theme-twentysixteen.php:42 #: includes/widgets/class-ecwid-widget-store-link.php:31 msgid "Shop" msgstr "Tienda" #: includes/widgets/class-ecwid-widget-store-link.php:10 msgid "Store Page Link" msgstr "Enlace a la página de la tienda" #: includes/widgets/class-ecwid-widget-store-link.php:9 msgid "Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site." msgstr "Muestra un enlace a la página de la tienda en la barra lateral para que el cliente acceda rápidamente a su tienda desde cualquier página del sitio web." #: includes/widgets/class-ecwid-widget-vcategories.php:9 msgid "Store Categories" msgstr "Categorías de la tienda" #: includes/widgets/class-ecwid-widget-vcategories.php:8 msgid "Adds vertical categories block to let the customer navigate your store." msgstr "Añade un bloque de categorías verticales para permitir que el cliente navegue por su tienda." #: includes/class-ecwid-nav-menus.php:344 #: includes/class-ecwid-nav-menus.php:347 #: includes/widgets/class-ecwid-widget-search.php:13 msgid "Product Search" msgstr "Búsqueda de productos" #: includes/widgets/class-ecwid-widget-search.php:12 msgid "Displays a simple search box for your customers to find a product in your store" msgstr "Muestra un cuadro de búsqueda simple para que sus clientes encuentren un producto en su tienda." #: includes/widgets/class-ecwid-widget-minicart-miniview.php:8 msgid "Adds a compact cart widget for customer to see the products they added to the cart." msgstr "Añade un «widget» de carrito compacto para que el cliente vea los productos que se han añadido al carrito." #: includes/widgets/class-ecwid-widget-minicart.php:41 #: includes/widgets/class-ecwid-widget-random-product.php:67 #: includes/widgets/class-ecwid-widget-search.php:46 #: includes/widgets/nsf-minicart-editor.tpl.php:50 #: includes/widgets/class-ecwid-widget-minicart-miniview.php:41 #: includes/widgets/class-ecwid-widget-vcategories.php:39 #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:76 msgid "Title:" msgstr "Título:" #: includes/class-ecwid-nav-menus.php:338 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:20 msgid "Shopping Cart" msgstr "Carrito de compras" #: includes/widgets/class-ecwid-widget-minicart.php:8 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:19 msgid "Adds a cart widget for customer to see the products they added to the cart." msgstr "Añade un «widget» de carrito para que el cliente vea los productos que se han añadido al carrito." #: includes/widgets/class-ecwid-widget-badge.php:51 #: includes/widgets/class-ecwid-widget-badge.php:63 msgid "Ecwid e-commerce widgets" msgstr "«Widget» de comercio electrónico de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:45 #: includes/widgets/class-ecwid-widget-badge.php:57 msgid "Ecwid shopping cart" msgstr "Carrito de compras de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:39 #: includes/widgets/class-ecwid-widget-badge.php:75 msgid "Ecwid free shopping cart" msgstr "Carrito de compras gratuito de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:33 #: includes/widgets/class-ecwid-widget-badge.php:69 msgid "Ecwid ecommerce solution" msgstr "Solución de comercio electrónico de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:21 #: includes/widgets/class-ecwid-widget-badge.php:27 msgid "Ecwid shopping cart widget" msgstr "«Widget» de carrito de compras de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:14 msgid "Ecwid Badge" msgstr "Distintivo de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:13 msgid "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid." msgstr "¿Le gusta Ecwid y quiere ayudarlo a crecer? Puede añadir este elegante distintivo «Powered by Ecwid» en su sitio web para mostrarles a sus visitantes que es un usuario orgulloso de Ecwid." #: ecwid-shopping-cart.php:2791 msgid "Recommendations for Your Online Store" msgstr "Recomendaciones para su tienda en línea" #: includes/class-ecwid-admin.php:528 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:77 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:87 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:95 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:103 #: ecwid-shopping-cart.php:2056 msgid "Settings" msgstr "Configuraciones" #: includes/class-ecwid-admin.php:165 msgid "Advanced" msgstr "Avanzado" #: includes/class-ecwid-admin.php:164 msgid "Advanced settings" msgstr "Configuraciones avanzadas" #: templates/product-popup.php:206 templates/store-popup.php:14 #: templates/store-popup.php:34 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:44 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:78 #: js/gutenberg/blocks.build.js:1 msgid "Appearance" msgstr "Apariencia" #: includes/class-ecwid-admin.php:28 includes/class-ecwid-admin.php:59 #: includes/class-ecwid-admin.php:459 ecwid-shopping-cart.php:2110 msgid "Dashboard" msgstr "Panel" #: includes/class-ecwid-admin.php:57 ecwid-shopping-cart.php:2056 msgid "Setup" msgstr "Configuración" #: includes/class-ecwid-admin.php:47 msgid "%s shopping cart settings" msgstr "Configuraciones del carrito de compras de %s" #: includes/class-ecwid-nav-menus.php:132 #: includes/class-ecwid-nav-menus.php:361 #: includes/class-ecwid-nav-menus.php:364 #: includes/class-ecwid-nav-menus.php:372 includes/class-ecwid-admin.php:206 #: includes/class-ecwid-admin.php:207 includes/class-ecwid-admin.php:220 #: includes/class-ecwid-admin.php:221 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:63 #: includes/class-ecwid-admin-storefront-page.php:257 #: ecwid-shopping-cart.php:1657 msgid "Store" msgstr "Tienda" #: ecwid-shopping-cart.php:1306 msgid "<a %s>Online store powered by %s</a>" msgstr "<a %s>Tienda en línea con tecnología de %s</a>" #: includes/class-ecwid-admin.php:489 msgid "Sell on Facebook" msgstr "Vender en Facebook" #: templates/admin/simple-dashboard.php:48 ecwid-shopping-cart.php:1094 msgid "Visit storefront" msgstr "Visitar escaparate virtual" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/languages/ecwid-shopping-cart-es_CO.mo������������������������������������������0000644�����������������00000225044�15122273603�0017563 0����������������������������������������������������������������������������������������������������ustar�00�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������e�����D��5��l&������@3�����A3��H���Y3�����3�����3�����3�����3�����3�� ���3��.���3�� ���4�� ��� 4�����,4�����J4�����e4����4�����g6��B���6�����6�����6�����6�����7��$���97�����^7�����r7�����7�����7��/���r8�� ���8�� ���8�����8�����8�����8�����8�����9��#���%9�� ���I9�����T9�����o9�����~9�� ���9�� ���9��>���9��"��� :�����-:�����:��k���:��K���h;��S���;��A���<��R���J<��G���<��4���<�� ���=�����&=�����/=��&���A=�����h=��T���{=�� ���=�����=�����=�����=�����>�����>�����#>�� ���*>�����8>�����?>�� ���G>�� ���S>�� ���`>�����l>�����>��4���>�� ���>�����>�����>�����>��X���>�� ���V?�����`?��/���g?��,���?�����?�����?�����?�� ���?�� ���?�����?�� ���?����� @�����@�����,@�����A@�����[@�����{@�����@�����@�����@�����@�����@�����@��.���@�����A�����5A��D���LA�����A�����A�� ���A�� ���A�����A�����A�����A����� B����� B��x���3B�����B�� ���B�����B�� ���B�����B�����C�����C�����*C�� ���=C�����JC��5���\C��h���C�����C�����D�� ���D�� ���D��5���D�����E�� ���E��x���%E��i���E�����F�����F�����4F�����QF�����bF�����F�� ���F�����F�����G�����$G��"���7G��#���ZG��/���~G�� ���G�� ���G�����G�����G�����G�����G�����H�����H�����-H�����?H��!���WH�����yH�����H��6���H��!���H�����H��*���I��%���:I�����`I��'���vI�����I�����I��,���I�����I��q���J��s���yJ��#���J��H���K��O���ZK��1���K��s���K�� ���PL�����\L��v���L�����uM��$���zM�����M�����M�����M�� ���M�����M�����M����� N��s���N�����N�����N�����N��=��N�����P����P����Q�����R�����R����� S�����S�� ��� S�� ���.S�� ���;S�� ���FS�� ���TS�����^S�����S�����T�����T�����T��B���T��$���)U�����NU�����VU�����mU�� ���U�����U�����U�� ���U�����U�� ���U��(���U�����V�� ���V�����V�����#V��.���V�����W��D���W��h���%X�����X��_���X��C���X�����7Y�����IY��/���_Y��/���Y�����Y��/���Y��(���Z�����-Z��9���GZ��I���Z��2���Z��"���Z��:���![�����\[��"���t[��!���[�����[�����[�����[�����[��$��� \��*���1\��B���\\�����\�� ���\�����\�� ���\�����\��+���\�����]��-���,]��P���Z]�����]��#���]��'���]��)��� ^�� ���7^�����X^��%���g^��+���^��+���^�����^�����_�����_�����!_�� ���2_��$���?_��9���d_��%���_��:���_�����_�����`�����`�����&`�����(`�� ���=`�� ���K`�� ���Y`�� ���c`�����o`�����`�����`�� ���`�����`�����`�� ���`�����`�����`�� ���`�����`�����oa�����a�����a��S���a�����a��'���a��[���'b�� ���b�����b�� ���b�����b�� ���b�� ���b�����b�����b�� ���b��9���b�����c�� ���:c�� ���Dc�� ���Nc�� ���Xc�����bc�����wc��I���Jd�����d�����d�����d�� ���d�� ���d�� ���e�����e�� ��� e�����-e�����@e�����Ue�����]e�����de�����je�����if��#���Og�����sg�� ���g�����g�����lh�����th�� ���i�� ���i�����i�����%i��O��*i��4���zj�����j�� ���j�� ���j�����j�����j�� ���j�����j�� ����k����� k�����k�����'k�����:k�����Rk�� ���jk�����vk�����k�����k�����k��+���k�����k�� ��� l�����l�����*l�����Bl�����al�� ���xl�����l��I���l��'���l�����m�����m�����$m�����=m�����Em��#���Xm�� ���|m�����m�� ���m�����m�����m�����m��"���m�����m��%���n�� ���4n�����>n�����Vn�����en�����n�����n�����n�����n�����n�����n�����n��*���n�� ���n�����n�����n�����o�����o�����/o�� ���8o�����Co�����So�����do�����vo�� ���o��"���o�����o�����o�� ���o�����o�����o�����p����� p�����p�� ���"p�����0p��#���Kp�����op�����p�����p�����p�����p�����p��V���p�� ���Bq�� ���cq�����qq�� ���q�����q��&���q��(���q�����q�����r�� ���&r�����2r�� ���Br�� ��cr�� ���ns�����ys��(���s��*���s����s�� ���ow�� ���zw�����w�����w��.���$x�����Sx�����Yx�����jx�����x�����x�����x�����x�����x�����y�����z�����0z�� ���Az�����Lz�����\z�����rz�����z�����z�����z�����z�����z�����z�� ���z�����{�����{�����${�����4{�����I{�� ���O{��/���Z{��N���{�����{�� ���{��4���{�����|��=���|�����}��-���}�����}��%���~��M���~�������P�����H���h��P��������������� ����� ���"�����/�����A�����H�����ۀ������� ��4��E��>�������]��������l��%��^��*����*����y���ڊ��>���T�������h���5��L���������� ������������������,�����5�����<�����P�����l�����|�������������������������ԍ����������������� �����!��� ��j���B����������E��^���ŏ�����$�����,�����F�� ���V�����c������� ���������C����B����k���@���������������V�� ������0���!��^���R�������:���Ę��>��������>�����N�����j�� �����2�����?���Ù����������֚������������y�����A��������Q�����o������:��������J�����_�� �����"��������Þ��"���ߞ��H�����)���K�����u�������&�����(���ן���������������� �����4����G�����$��e���:��'��������Ȣ�� ���ˢ�����֢�� ����������5����� ���M�� ���Y�����f�������,�������̣�����W��B���v��!��������ۦ��!����������0���=�����n����������������*���������������(�����!���1�����S��*���p�������+����� �����!����������6���)��1���`�������C�����/����������!��������2��e�����n���&��Z�����o�����^���`��R�������������,�����5��5���O�������h����� ��� �� �����!���!��)���C�����m�����}�������������������������������� ���Ӱ������������:��������O�� ���`�����n�������`����� ����� �����=�����9���W�������������������������β�� ����� ����� �����%�����!���(�����J��5���j��(��������ɳ��%���ҳ�������!���������"�����2��C���B��(����������g���ϴ�����7�����Q��.���j�������������������������ҵ������������%�����!���Ŷ�� �����!�������������-�����J�����e�� ����������8�����j��������O������� ��������(��I���7��$���������������x���@�������'���Ѻ��5��������/�����G�������������������������6��9���U��;�����0���˼���������������,�����4�����H�����b�����u�����������������2�����!�����#���5��I���Y��+��������Ͼ��6�����/���%�����U��2���s��&��������Ϳ��E��������2�����D�������*���c��P�����`�����:���@�����{�� ��� ���������������U��3���[������������'���������������5��������D�����`��,�����+��� ��$���L��t��q�������A����h�������6��)���R�����|����������������� �����$�������������������������$����������Y�����*���?�����j�����r�����������������%������������� �� ���$��4���/�� ���d�����p������������;����������D�����g��������l��p���t��Q��������7�����K��]���c��>�����������D�����1���_�������I�����g�����/���[��$�����7����������0�����%���8��"���^������������%�����/�����7�����@���1��.���r�������#����� ����������)����������>���,��h���k��!�����%�����1�����3���N��'����������(�����)�����)��������B�����a�����������������-�����E�����-���+��8���Y������� ��������������� ����������������������� �����7�����J�����R�����[�� ���m�����w������������������������������}������������s��������*��/���E��q���u������������ ��������&�� ���-�� ���7�� ���A�����L�� ���S��A���_��#��������������� ����� ����������)����c���H������� �����!���������� ��������+��#���<�����`�����q����������������������I���������%��������(�� ���:�����G����������$���������������������������9���������� ����� ����� ����� ��� ����������*�����1�����B�����K�����f��#�����%��������������� ����� �����+���5��7���a��"���������������*�����1�����$���C�����h�� ���}��a�����0�������������/�����?�����^�� ���g��4����� ������������������������������5���-�����c��(����� �����"����������"������������������ �����"�����&�����-�����>��-���F�����t�����������������"���������������������������������2�����E��0���T��&��������������������������������� ����������#��"���6��+���Y�������/�����!����������+��������(�����<��(������������������ ��$���;��8���`��8�����)�����#�������� �����2��)���N��M��x�������$�����2�����L���-��,��z�� ��������������������?���������������!�����#��������7�����V�����u��������������3�����S�����l�� �������������������������$�����$���+�����P�����n�������������������������������������G�����W���C������������8����������Y����������:���z�����'����_��������X���&�^����U�������4����<� ���Q� ���^����l������������M�����#��������� �u���= ��� �@�� �@���U��H�����P���:�����~���:�a�����������1����E����]����v� ��������$������������ ���� ��������,���6����c������������� ����#���������������(�]���� ��� ��������0� ���I����W�����V��&����}���U�`������H�+�����������'��� �2��� �^����!����_!�A���v!�G���!�����"����"�$���6"� ���["�8���g"�;���"�5��"� ���$����3$����$����$�R���%����%���� &���-&�[��� (����e(� ���}(����(�"���(����(�"���(�H���(�)���9)����c)�(���~)����)����)����)����)����)����*��������I����������������k������R��W��y����$��%���������������������������������������#�����y���R��#��������J���Z���������?���B��^��>������������������������� ��� ��3����1�����U������>�������K��q����������������������-���������������������v���8������:���/������g��d�����������������S��?�����������������������'���������,������������j��Z��������P���������W������������S���������]����������T����������� �������6�������������������r�������������c��9����������,������������������k��������������%���������������������������������������������L���"�������a����������W��t�������������������}��.������ ��$������K������G���������~���������������0������w������������E��������7����������������������������Q��������F������������������:��\�����������������O�����X��'��*��3������1������ ���������������������u������������9�����E�����������C�����������������������������?������8��a��_���b�������L������@��&������*��I��C���J�����Y���������D������������$���������;��F���������N������G������'���������������0�����@�����^��������c�����������������u����>��:��������.�����������M��j���[��S����������������4������� ������������H�������������@���������������K�����]���������P���&�������������������%���� ��c������h��X���A��������#�����������z�������3�����(����������������������������������������������Q��������e�������������-����������i���������D����p�������!��������������(������������X��5����7���������=��������������;������N���������P������������������T��������������\������Z����������������������&����� ��������� ���`�������|�����������`������������<���������e���+�������A�����=����������������������)�������Q������������������������f��!����� ���b��a���M��{�������<��7�������������������������������������H��������6��O��s���`����������9�����*���������-��}���"���������r���������0��������������{������������������������������������l��H����������v����d��/����� ��]���t���p�����2�����������d��������g������U���������C�������w���������[���l������������������������<��������� ���o���1��� ����������V��f������N�� ��E��������������������������������� �����������������������/������,��������~�����������������������!������[����n�����������_��"�����(�������2���J��x��h���_���� ��������o������M������4��=��8������������2����� ��4������������m���������������������������5��n��I���;�����)������6��L��V������������+����+��A�������������������������Y��B��F������ �������)��������m��i�����������5���^������|���z���������������������U����������x�����������\����q������������O���������������V����������b���������������������������������������Y�������������.�����D������������������B�������G��s�������������R�����T����e���������� Choose another product� Thank you very much for contacting us! We will get back to you shortly.�"In stock" label�%s�%s Blog�%s Shopping Cart�%s Store�%s Store Page�%s plugin doesn't work well with my "%s" theme�%s product�%s products�%s products and %s categories�%s products and categories�%s shopping cart settings�%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site.�%s — Advanced settings�(You will be able to confirm the changes before the actual import)�2 columns, image on the left�2 columns, image on the right�3 columns, image on the left�3 columns, image on the right�<a %s>Online store powered by %s</a>�<a %s>Reconnect</a>�<a href="admin.php?page=�<b>%s</b> categories�A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use "/shop" or "/products".�Action required: please connect your %s account�Add Product�Add Store�Add Store Page to Menu�Add a category page�Add a product page�Add a search and filters page�Add a store page�Add an Online Store to Your Website�Add border�Add cart and checkout page�Add categories�Add store page to the site menu�Add storefront (product listing)�Add to Menu�Add your %s store to the website and start selling in minutes.�Add your store to other site pages�Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href="%s" target="_blank">WordPress Settings > Reading</a>�Additional store pages�Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>�Adds a cart widget for customer to see the products they added to the cart.�Adds a compact cart widget for customer to see the products they added to the cart.�Adds a shopping cart widget to the top right corner of your site.�Adds root categories list to the sidebar to let your customers navigate the store.�Adds vertical categories block to let the customer navigate your store.�Adjust your store design to fit your business needs.�Admin Label�Advanced�Advanced settings�After import, your %s store will have �All Sales Channels�Along with the store catalog, you can add other widgets and texts to the store page.�Appearance�Apps�Available qty in stock�Back to Store Settings�Background color�Bag�Basket�Before You Go�Border�Border:�Bottom left�Bottom right�Breadcrumbs�Browse all products.�Browse by Category�Bulk import products and categories to your %s store�Button color�Buy Now�Buy Now Button�Buy now buttons�By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>.�CSS Class�CSS ID�Can you share the name of the plugin you chose?�Can you share your feedback? What was wrong?�Cancel�Cart�Cart and Checkout�Cart icon�Cart icon:�Catalog�Categories�Category�Category List Appearance�Category card layout�Category shown by default�Category thumbnail aspect ratio�Category thumbnail size�Center�Center align on a page�Change�Change store content�Choose Product�Choose product�Choose product properties to display in widget�Choose the main store page�Choose widgets to show�Click the connect button to get rights to update the product catalog�Color settings�Complete Setup�Complete setup and start selling�Configuration�Congratulations!�Connect�Connect Your Store�Connect your %s store�Connect your store�Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again.�Contact Support�Contact us�Content�Copying products and categories.�Create Cart Page�Create Category Page�Create Product Page�Create Search Page�Create Store�Create Store Page�Create a landing page featuring one of your products.�Create a new %s account which you will use to manage your store and inventory. The registration is free.�Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website.�Create new account�Create store�Current Page�Current URL slug: /<span data-ec-store-slug>%s</span>�Customer Single Sign-On�Customers�Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers.�Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout.�Customize design�Customize store appearance�Customize store page address�Customize widget�Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand.�Cyan bluish gray�Dashboard�Default category�Default category ID�Default product_ID�Default view mode on product pages�Default view mode on search results�Deleted products synchronized: %1$s out of %2$s�Demo Store�Demo store�Design�Design and content�Detect automatically�Disconnect store�Display a buy button�Display breadcrumbs�Display cart icon�Display categories menu�Display categories navigation bar�Display category page�Display footer menu�Display product page with description and a buy button�Display product with a buy button�Display search box�Display search page with filters on a side�Display shopping bag link and summary�Display shopping cart�Display shopping cart and checkout page�Display sign in link�Display sort by link�Display the shopping cart icon on site pages�Displayed product�Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site.�Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop.�Displays a list of random products.�Displays a random product from your store to attract customer attention.�Displays a simple search box for your customers to find a product in your store�Displays storefront: product listing and checkout�Displays the latest added products from your store. Show new products to returning customers to drive repeat sales.�Do not show�Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid.�Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site.�Done�Download <a href="%s">import log</a>�Download log file�Draft�E.g. How to set up shipping�Ecwid Badge�Ecwid Ecommerce�Ecwid Ecommerce Shopping Cart�Ecwid Menu Item�Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center�Ecwid e-commerce widgets�Ecwid ecommerce solution�Ecwid free shopping cart�Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">More details.</a>�Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up.�Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href="%s">TemplateMonster themes</a>�Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">More details.</a>�Ecwid shopping cart�Ecwid shopping cart widget�Edit�Edit Appearance�Edit Category�Edit Product�Edit Store�Edit URL Slug�Edit page�Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page.�Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space.�Enter your Store ID�Enter your Store ID here:�Extensions for your Store�Feature a specific store category on a separate page of your site.�Feature your products in the sidebar�Filters�Filters panel position�Find your Store ID�First Page�Frequently Asked Questions�Get %s mobile app�Go to Pages�Go to Your %s Products�Greetings!�Greetings! Your %s plugin is now active.�Grid�Grid view�Help�Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars.�Help customers find your store on the website.�Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products.�Here you can create the content that will be used within the module.�Here, we will help you uploading your product catalog to %s from another shopping cart or other sources.�Hide�Highlight products, categories, and other store pages by adding them to separate website pages.�Highlight your best sellers or new products in the website sidebar.�Horizontal indent�Horizontal thumbnails�How can I add a cart widget to my site sidebar?�How can I manage my store from a mobile device?�How can we help you?�How do I add store categories to the site menu?�How do I put my products in the sitemap?�How much does Ecwid cost?�How secure is this plugin? Is my store PCI DSS compliant?�How to add a single product with the add to bag button to the site pages?�How to set up a storefront on Facebook with Ecwid?�I already have an account, sign in�I couldn’t find a WordPress theme that goes well with %s�I found a better plugin�I have a problem using this plugin�I have a problem with my %s store�I use this WordPress theme: %s�Icon�Icon and item count�Icon, label and item count�Icon, label, item count and subtotal�Icon, label, item count, subtotal and link�If you have a moment, please let us know why you are deactivating:�Image and title on mouse over�Image feed�Image gallery layout�Image only�Import�Import Your Products From Woocommerce to %s�Import completed�Import completed. <a href="%s">Run again.</a>�Import creates new products and update the existing products with matching SKUs.�Import is in Progress�Import my products from WooCommerce�Import product catalog from WooCommerce�Import product catalog from other sources�Import products to your %s store�Import summary�Import your WooCommerce catalog to %s�Import your products from WooCommerce to %s�Import your products from Woocommerce to %s�Imported <b>%s</b> products�Importing %s of %s items�Insert�Insert into page�Instant site�Integration with search on your site�Is it possible to display my store on the site home page?�Is there a WordPress theme for Ecwid?�It's a temporary deactivation. Please do not ask me again.�Item count only�Justify�Knowledge Base�L�Label and item count�Landscape 3:2�Landscape 4:3�Last Page�Last update�Latest Products�Layout�Layout:�Learn more�Left�Light green cyan�Link color�Linked product�List�List view�Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL.�Luminous vivid amber�Luminous vivid orange�M�Make your store accessible from the site menu so your customers can easily find it.�Manage Sidebar�Manage Store on iPhone, iPad or Android�Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page.�Manage store�Manage storefront�Marketing�Mobile�My Account�My Profile�My Sales�Name�Navigation�Need help importing your products from WooCommerce to %s?�Never show this message again�Next Page�Next page�No Thanks�No border�Not synchronized yet�Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The "Show on store pages" and "Show when empty" options will apply to the cart widget on site when published�Nothing found for <span class="empty-page__term">"{{ data.term }}"</span>�Number of categories per row�Number of products per page�Number of products to show�On the left�On the right�Online Store�Online Store Apps�Online store�Open control panel�Open store dashboard�Options�Orders�Other�Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target="_blank" href="%s">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans.�Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">our customer support team</a>.�Page with that name already exists.�Pale cyan blue�Pale pink�Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>�Payment�Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers.�Pick Category�Pick Product�Picture�Pill�Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target="_blank">"Billing & Plans"</a></nobr> page in your Ecwid store control panel.�Please subscribe to a paid plan to get this feature.�Plugins for Ecwid�Portrait 2:3�Portrait 3:4�Position�Preview�Previous Page�Price�Price color�Product�Product Card Large�Product Card Small�Product List Appearance�Product Page Appearance�Product SKU�Product Search�Product Search Box�Product Search and filters�Product card text align�Product catalog will be shown automatically�Product page layout�Product price�Product quantity�Product sidebar content�Product thumbnail aspect ratio�Product thumbnail size�Product title�Products�Products are successfully synchronized. The product pages are up to date.�Products synchronized: %1$s out of %2$s�Promote your store�Provide access.�Provided by <a %s>%s</a>�Publish�Publish Store Page�Publish the page to use this option�Published�Quantity�Questions?�Random Product�Random Products�Rate %s at WordPress.org�Re-connect to Enable Control Panel�Recently Viewed Products�Recommendations for Your Online Store�Rectangle�Refresh categories list�Register at %s�Report a problem with the store�Reports�Right�S�SKU�Sales�Sales channels�Save�Save and connect your %s store to the site�Save changes�Search�Search and Filters�Search products�Search the Knowledge Base�See more�Select All�Select category�Selected Product�Selected category�Sell on Facebook�Send Message�Send a message to our support team�Send message failed�Set Up Your Store�Set manually�Set up your store�Settings�Setup�Shipping & Pickup�Shop�Shopping Cart�Shopping Cart (deprecated)�Shopping Cart Floating (deprecated)�Shopping Cart Icon�Shopping Cart Mini (deprecated)�Shopping Cart Widget�Show�Show additional image on hover�Show categories�Show customers that they can use a search and filters to find desired products faster.�Show description under the image�Show minicart�Show on all pages�Show on hover�Show on store pages�Show price inside the "Buy now" button�Show price inside the «Buy now» button�Show product card border�Show product thumbnails�Show search�Show when empty�Show your store on the home page�Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again.�Small icon�Small icon and item count�Some of the items could not be imported.�Sorry we're having technical difficulties.�Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: "The Wordpress function wp_remote_post() failed to connect a remote server because of some error: "%s". Seems like HTTP POST requests are disabled on this server". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>.�Square 1:1�Start Import�Status�Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store.�Still have questions about Ecwid? Let us know!�Store�Store Categories�Store Categories Menu�Store Category Page�Store Front Page�Store Home Page�Store ID�Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the "Dashboard" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration.�Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>.�Store Link Title�Store Navigation�Store Page�Store Page Link�Store Root Categories�Store appearance�Store elements�Store management�Store page content�Store page on your site�Store root category�Store with Categories Menu�Storefront�Subject�Submit & Deactivate�Switch to draft�Synchronize products�Table�Table view�Take a few simple steps to complete store setup�Take advantage of powerful apps and extensions designed to enhance your store.�Text�Text color�Thank you for choosing %s to build your online store�The block is hidden because you don't have categories in your store. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Add categories.</a>�The category that is shown by default on the Store Front Page�The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps.�The plugin doesn't support the feature I want�The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href="%s" target="_blank">adjust the cart icon appearance</a>.�The store is not visible on your site�The store top-level categories are automatically added to this drop-down menu�Themes for Ecwid�This import will copy your WooCommerce products and categories to your %s store.�This is a demo store. Create your store to see your store products here.�This will change the label of the module in the builder for easy identification.�Title�Title on image�Title only�Title or SKU�Title under image�Title:�To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings.�To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>.�To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>�To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the "Add product" dialog.�To create sitemap for your Wordpress site we suggest using <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> or <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target="_blank" href="https://www.ecwid.com/pricing">paid Ecwid users</a>.�To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission.�To enable this feature, the plugin needs a permission to read your store product information.�To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">How to use it.</a>�To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>�To manage your store, go to <a %s>the Store Dashboard page</a>�To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission.�To show your storefront instead of the demo store, connect your existing %s account or create a new one.�To start selling, add a page to your site where the storefront will display.�Top left�Top right�Try another search.�Type in your message here�URL Slug�Update�Update your catalog�Upgrade to get this feature�Vertical indent�Vertical thumbnails�Very dark gray�Very light gray�View Store Page�View demo store page�View store page�Visit storefront�Vivid cyan blue�Vivid green cyan�Vivid red�Want to connect another %s store?�Warning: some of your online store features are disabled. Please contact your hosting provider to resolve.�We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?�We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you.�We're synchronizing your products. This may take a few minutes. Please do not reload the page.�Website�What feature do you need?�What was wrong?�What's next?�While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site.�Wholesale prices�You can add product search box, cart widget and more on the <a href="%s">"Appearance / Widgets page"</a> here in your site admin. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">More details.</a>�You can add the entire storefront, categories, products, or "Buy now" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block.�You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open "Appearance > Menus" in your WordPress control panel and add the "Store with Categories Menu" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site.�You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">More details.</a>�You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel.�You can display your store on the site main page. Adjust the "Reading" settings of your site as described in our <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">Help Center.</a>�You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href="%1$s">Appearance → Customize → %2$s</a>” menu to enable it.�You can enable filters in the store settings: (“<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Settings → Product Filters</a>”).�You can send a new request here.�You have not viewed any product yet. Open store.�You will be able to sign up through your existing Google, Facebook or PayPal profiles as well.�Your %s store has �Your %s store is connected<br /> to your WordPress website�Your %s store is now connected<br /> to your WordPress website�Your Storefront�Your WooCommerce store has �Your email has been sent�Your product�Your store Control Panel. Right here in WordPress.�Your store has been created. Preparing your store dashboard ...�Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar.�Your store is almost ready!�Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display.�Your store page�Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders.�Your store page is published. Customers can browse your store at �Your store will be shown here�Your store will be shown here!�Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data.�[%s] WordPress plugin deactivation feedback (store ID: %s)�customize appearance�gutenberg-product-blockContent�gutenberg-store-block-stubStore�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�or <a %s>Browse the Help Center�product-browser-attributesProduct SKU�product-browser-attributesProduct price�select product�selected product�vc-tabOnline store�«Buy now» button�PO-Revision-Date: 2020-10-12 12:46 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: Poedit 2.4.1 Language: es Project-Id-Version: temporary-strings X-Crowdin-Project: temporary-strings X-Crowdin-Project-ID: 295314 X-Crowdin-Language: es-ES X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po X-Crowdin-File-ID: 988 Language-Team: Spanish Last-Translator: � Elegir otro producto� ¡Muchas gracias por ponerse en contacto con nosotros! Nos pondremos en contacto con usted en breve.�Etiqueta de productos «En existencia»�%s�Blog de %s�Carrito de compras de %s�Tienda de %s�Página de la tienda de %s�El complemento %s no funciona bien con mi tema «%s»�%s producto�%s productos�%s productos y %s categorías�%s productos y categorías�Configuraciones del carrito de compras de %s�%s almacena los datos de sus productos de forma segura en la nube. Las páginas de productos se muestran sobre la marcha cuando un cliente navega por su tienda. Por lo que, básicamente, los productos no se almacenan en el sitio web, por eso la búsqueda en el sitio web no encuentra páginas de productos mientras busca en las páginas del sitio web y en las publicaciones. Esta opción habilita un modo de almacenamiento local: los productos se almacenarán tanto en la nube como en su sitio web. Los resultados de la búsqueda en el sitio web incluirán las páginas de productos, así como las páginas o publicaciones habituales de su sitio web.�%s — Configuración avanzada�(podrá confirmar los cambios antes de la importación definitiva)�2 columnas, imagen a la izquierda�2 columnas, imagen a la derecha�3 columnas, imagen a la izquierda�3 columnas, imagen a la derecha�<a %s>Tienda en línea con tecnología de %s</a>�<a %s>Volver a conectar</a>�<a href="admin.php?page=�<b>%s</b> categorías�Un «slug» es la última parte de una URL. Puede crear un «slug» personalizado para la página de su tienda. Es mejor que sea corto, ya que los clientes y los motores de búsqueda prefieren las URL cortas. Por ejemplo, utilice «/tienda» o «/productos».�Acción requerida: conecte su cuenta de %s�Añadir producto�Añadir tienda�Añadir la página de la tienda al menú�Añadir una página de categoría�Añadir página de productos�Añadir una página de búsqueda y filtros�Añadir una página de tienda�Añadir una tienda en línea a su sitio web�Añadir borde�Añadir carrito y página de pago�Añadir categorías�Añadir la página de la tienda al menú del sitio web�Añadir escaparate virtual (listado de productos)�Añadir al menú�Añada su tienda de %s al sitio web y comience a vender en minutos.�Añada su tienda a otras páginas del sitio web�Añada su escaparate virtual a la página de inicio del sitio web para que sea más notable. También puede modificar la configuración de la página de inicio del sitio web en <a href="%s" target="_blank">Configuración de WordPress > Lectura</a>.�Páginas adicionales de la tienda�Además, puede añadir controles de la tienda a la barra de herramientas de su sitio web mediante <a %s>«widgets» nativos de WordPress</a>.�Añade un «widget» de carrito para que el cliente vea los productos que se han añadido al carrito.�Añade un «widget» de carrito compacto para que el cliente vea los productos que se han añadido al carrito.�Añada un «widget» de carrito de compras en la esquina superior derecha de su sitio web.�Añade la lista de categorías raíz a la barra lateral para que sus clientes puedan desplazarse por la tienda.�Añade un bloque de categorías verticales para permitir que el cliente navegue por su tienda.�Ajuste el diseño de su tienda para que se adapte a las necesidades de su negocio.�Etiqueta de administrador�Avanzado�Configuraciones avanzadas�Después de la importación, su tienda de %s tendrá �Todos los canales de venta�Junto con el catálogo de la tienda, puede añadir otros «widgets» y textos a la página de la tienda.�Apariencia�Aplicaciones�Cantidad disponible en existencia�Regresar a la configuración de la tienda�Color del fondo�Bolsa�Cesta�Antes de que se vaya�Borde�Borde:�Abajo a la izquierda�Abajo a la derecha�Migas de pan�Explorar todos los productos.�Buscar por categoría�Importar en masa productos y categorías a su tienda de %s�Color del botón�Comprar ahora�Botón «Comprar ahora»�Botones de «Comprar ahora»�Al continuar, acepta los <a %s>Términos de servicio</a> y la <a %s>Política de privacidad</a>.�Clase CSS�ID de CSS�¿Podría compartir el nombre del complemento que ha elegido?�¿Podría compartir su opinión? ¿Qué fue lo que pasó?�Cancelar�Carrito�Carrito y pago�Icono del carrito de compras�Icono del carrito:�Catálogo�Categorías�Categoría�Apariencia de la lista de categorías�Diseño de la ficha de categoría�Categoría mostrada por defecto�Relación de aspecto de la miniatura de la categoría�Tamaño de la miniatura de la categoría�Centrado�Centrar la alineación en una página�Cambiar�Cambiar el contenido de la tienda�Elegir producto�Elegir producto�Elija las propiedades del producto para mostrarlas en el «widget»�Elegir la página principal de la tienda�Elija los «widgets» a mostrar�Haga clic en el botón «Conectar» para obtener los permisos para actualizar el catálogo de productos�Configuración de colores�Completar configuración�Complete la configuración y comience a vender�Configuración�¡Enhorabuena!�Conectar�Conecte su tienda�Conecte su tienda de %s�Conecte su tienda�Error de conexión: después de hacer clic en el botón, debe iniciar sesión y otorgar los permisos para poder utilizar nuestro complemento. Inténtelo de nuevo.�Ponerse en contacto con la asistencia�Póngase en contacto con nosotros�Contenido�Copia de productos y categorías.�Crear página del carrito�Crear página de categorías�Crear página de productos�Crear página de búsqueda�Crear tienda�Crear la página de la tienda�Cree una página de aterrizaje con uno de sus productos.�Cree una nueva cuenta de %s que utilizará para gestionar su tienda e inventario. El registro es gratuito.�Cree una nueva tienda o, si ya tiene una cuenta de %s, conéctela. El complemento le guiará a través de la configuración de la tienda y le ayudará a publicarla en su sitio web.�Crear una nueva cuenta�Crear tienda�Página actual�«Slug» actual de la dirección URL: /<span data-ec-store-slug>%s</span>�Inicio de sesión único del cliente�Clientes�Los clientes no pueden ver la página de su tienda porque está en un borrador. Publique la página para que esté disponible para sus clientes.�Los clientes van a la página del carrito para consultar los productos que han añadido al mismo y proceder con el pago.�Personalizar el diseño�Personalizar la apariencia de la tienda�Personalizar la dirección de la página de la tienda�Personalizar «widget»�Personalice la apariencia de su tienda para que se ajuste a las necesidades de su negocio. Cree la apariencia para su tienda que más se parezca a su marca.�Gris cian azulado�Panel�Categoría predeterminada�ID de categoría predeterminada�ID del producto predeterminado�Modo de vista predeterminado en las páginas de productos�Modo de vista predeterminado en los resultados de búsqueda�Productos eliminados sincronizados: %1$s de %2$s�Tienda de demostración�Tienda de demostración�Diseño�Diseño y contenido�Detectar automáticamente�Desconectar tienda�Mostrar un botón de compra�Mostrar migas de pan�Mostrar icono del carrito�Mostrar el menú de categorías�Mostrar la barra de navegación de las categorías�Mostrar la página de categorías�Mostrar el menú del pie de página�Mostrar la página de productos con la descripción y un botón de compra�Mostrar el producto con un botón de compra�Mostrar el cuadro de búsqueda�Mostrar página de búsqueda con los filtros a un lado�Mostrar enlace y resumen de la bolsa de compras�Mostrar el carrito de compras�Mostrar el carrito de compras y la página de pago�Mostrar el enlace de inicio de sesión�Mostrar «ordenar por enlace»�Muestre el icono del carrito de compras en las páginas del sitio web�Producto mostrado�Muestra un enlace a la página de la tienda en la barra lateral para que el cliente acceda rápidamente a su tienda desde cualquier página del sitio web.�Muestra una lista de productos vistos recientemente por el cliente para volver fácilmente a los productos que vieron en su tienda.�Muestra una lista de productos aleatorios.�Muestra un producto aleatorio de su tienda para atraer la atención del cliente.�Muestra un cuadro de búsqueda simple para que sus clientes encuentren un producto en su tienda.�Muestra el escaparate virtual: listado de productos y pago�Muestra los últimos productos añadidos de su tienda. Muestre nuevos productos a los clientes existentes para impulsar las ventas repetidas.�No mostrar�¿Le gusta Ecwid y quiere ayudarlo a crecer? Puede añadir este elegante distintivo «Powered by Ecwid» en su sitio web para mostrarles a sus visitantes que es un usuario orgulloso de Ecwid.�¿Le gusta su tienda de %s en línea? Apreciaríamos si comparte su opinión y vota por el complemento en el sitio de WordPress.�Hecho�Descargar <a href="%s">registro de importación</a>�Descargar archivo de registro�Borrador�Por ejemplo, cómo establecer el envío�Distintivo de Ecwid�Comercio electrónico Ecwid�Carrito de compras del comercio electrónico de Ecwid�Elemento del menú de Ecwid�Ecwid le permite subir sus productos en forma de archivo CSV. Obtenga más información sobre esta herramienta en el centro de asistencia de Ecwid�«Widget» de comercio electrónico de Ecwid�Solución de comercio electrónico de Ecwid�Carrito de compras gratuito de Ecwid�Ecwid cuenta con la certificación PCI DSS Nivel 1, que es el estándar de oro para las soluciones de comercio electrónico en todo el mundo. Esto significa que no tendrá problemas de cumplimiento bancario cuando venda en línea con Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">Más detalles.</a>�Ecwid es un carrito de compras gratuito con todas las funciones. Se puede integrar fácilmente con cualquier blog de Wordpress y se configura en menos de 5 minutos.�Ecwid es compatible con cualquier tema de WordPress. Ya sea un tema gratuito del catálogo de WordPress.org, un tema prémium de un proveedor externo o un tema personalizado; su tienda de Ecwid funcionará bien con cualquiera de ellos. Si desea un tema prémium, le recomendamos <a href="%s">temas de TemplateMonster</a>.�Ecwid ofrece aplicaciones móviles gratuitas para iOS y Android para que pueda gestionar su tienda y vender donde y cuando quiera. Escanee productos, supervise el inventario, gestione las ventas y acepte pagos utilizando su dispositivo móvil como una estación de punto de venta. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">Más detalles.</a>�Carrito de compras de Ecwid�«Widget» de carrito de compras de Ecwid�Editar�Editar apariencia�Editar categoría�Editar producto�Editar tienda�Editar «slug» de la dirección URL�Editar página�Introduzca un ID de CSS opcional que se utilizará para este módulo. Se puede utilizar un ID para crear un estilo CSS personalizado o para crear enlaces a secciones particulares de su página web.�Introduzca las clases CSS opcionales que se utilizarán para este módulo. Se puede utilizar una clase CSS para crear estilos CSS personalizados. Puede añadir varias clases separadas por un espacio.�Introduzca el ID de su tienda�Introduzca el ID de su tienda aquí:�Extensiones para su tienda�Destacar una categoría de la tienda específica en una página separada de su sitio web.�Destaque sus productos en la barra lateral�Filtros�Posición del panel de filtros�Encuentre el ID de su tienda�Primera página�Preguntas frecuentes�Descargue la aplicación móvil de %s�Ir a «Páginas»�Ir a sus productos de %s�¡Saludos!�¡Enhorabuena! Su complemento de %s ya está activo.�Cuadrícula�Vista de cuadrícula�Ayuda�Ayude a los clientes a encontrar su tienda en el sitio web. Añada el enlace de la tienda al menú del sitio web, cree páginas adicionales de la tienda y resalte los productos de la tienda en otras páginas del sitio web y en las barras laterales.�Ayude a los clientes a encontrar su tienda en el sitio web.�Aquí puede gestionar cuántos productos se mostrarán por página. Estas opciones definen valores máximos. Si no hay suficiente espacio para mostrar todas las columnas de productos, %s adaptará el número de columnas para mantener todos los productos.�Aquí puede crear el contenido que se utilizará dentro del módulo.�Aquí, le ayudaremos a subir su catálogo de productos a %s de otro carrito de compras u otras fuentes.�Ocultar�Destaque productos, categorías y otras páginas de la tienda añadiéndolas a páginas del sitio web separadas.�Destaque sus mejores ventas o nuevos productos en la barra lateral del sitio web.�Sangría horizontal�Miniaturas horizontales�¿Cómo puedo añadir un «widget» de carrito de compras a la barra lateral de mi sitio web?�¿Cómo puedo gestionar mi tienda desde un dispositivo móvil?�¿Cómo podemos ayudarle?�¿Cómo puedo añadir categorías de tiendas al menú del sitio web?�¿Cómo pongo mis productos en el mapa del sitio?�¿Cuánto cuesta Ecwid?�¿Qué tan seguro es este complemento? ¿Mi tienda cumple con el PCI DSS?�¿Cómo añadir un solo producto con el botón de «añadir a la bolsa» en las páginas del sitio web?�¿Cómo crear una tienda en Facebook con Ecwid?�Ya tengo una cuenta, iniciar sesión�No pude encontrar un tema de WordPress adecuado para %s�Encontré un mejor complemento�Tengo un problema con el uso de este complemento�Tengo un problema con mi tienda de %s�Utilizo este tema de WordPress: %s�Icono�Icono y total de artículos�Icono, etiqueta y total de artículos�Icono, etiqueta, total de artículos y subtotal�Icono, etiqueta, total de artículos, subtotal y enlace�Si tiene un momento, háganos saber por qué está desactivando:�Imagen y título al pasar el ratón por encima�Canal de imagen�Diseño de la galería de imágenes�Solo imagen�Importar�Importe sus productos de Woocommerce a %s�Importación completada�Importación completada. <a href="%s">Ejecútela de nuevo.</a>�La importación crea nuevos productos y actualiza los productos existentes con las REF correspondientes.�La importación está en progreso�Importar mis productos de WooCommerce�Importar el catálogo de productos de WooCommerce�Importar el catálogo de productos de otras fuentes�Importe los productos a su tienda de %s�Resumen de la importación�Importe su catálogo de WooCommerce a %s�Importe sus productos de WooCommerce a %s�Importe sus productos de Woocommerce a %s�<b>%s</b> productos importados�Importando %s de %s artículos�Insertar�Insertar en la página�Sitio web instantáneo�Integración con la búsqueda en su sitio web�¿Es posible mostrar mi tienda en la página de inicio del sitio web?�¿Existe algún tema de WordPress para Ecwid?�Es una desactivación temporal. No preguntarme de nuevo.�Solo el total de artículos�Justificado�Base de conocimiento�G�Etiqueta y y total de artículos�Horizontal 3:2�Horizontal 4:3�Última página�Última actualización�Últimos productos�Diseño�Diseño:�Más información�Izquierda�Cian verde claro�Color del enlace�Producto vinculado�Lista�Vista de lista�Parece que su sitio web no admite solicitudes POST remotas, las cuales son necesarias para que la API de %s funcione. Comuníquese con su proveedor de alojamiento web para habilitar cURL.�Ámbar vívido y brillante�Naranja vívido y brillante�M�Haga que su tienda sea accesible desde el menú del sitio web para que sus clientes puedan encontrarla fácilmente.�Gestionar la barra lateral�Gestione la tienda desde iPhone, iPad o Android�Gestione productos, supervise las ventas y ajuste la configuración: <nobr>todo sin</nobr> salir de esta página.�Gestionar la tienda�Gestionar escaparate virtual�Mercadotecnia�Móvil�Mi cuenta�Mi perfil�Mis ventas�Nombre�Navegación�¿Necesita ayuda para importar sus productos de WooCommerce a %s?�Nunca mostrar este mensaje otra vez�Página siguiente�Página siguiente�No, gracias�Sin borde�No se ha sincronizado todavía�Nota: cuando está habilitado, el «widget» del carrito siempre se mostrará en la vista previa para que sea más fácil personalizarlo. Las opciones «Mostrar en las páginas de la tienda» y «Mostrar cuando esté vacío» se aplicarán al «widget» del carrito en el sitio cuando se publiquen�No se ha encontrado nada en relación con <span class="empty-page__term">«{{ data.term }}»</span>�Número de categorías por fila�Número de productos por página�Número de productos para mostrar�A la izquierda�A la derecha�Tienda en línea�Aplicaciones de la tienda en línea�Tienda en línea�Abrir el panel de control�Abrir el panel de la tienda�Opciones�Pedidos�Otro�Nuestros 4 tipos de cuentas varían según la cantidad de productos, los tipos de funcionalidades y el nivel de asistencia. Para obtener más información, consulte nuestra <a target="_blank" href="%s">página de precios.</a><br /><br />Consejo profesional: también puede ahorrar dinero si se suscribe a nuestros planes anuales.�Nuestro equipo ya está trabajando en este asunto. Actualice la página en unos minutos. Si el problema persiste, comuníquese con <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">nuestro equipo de atención al cliente</a>.�Ya existe una página con ese nombre.�Azul cian pálido�Rosa pálido�Parte de los productos no se han copiado a %1$s porque alcanzó el límite de productos en su plan de precios en %1$s. Si desea importar más productos, considere <nobr><a %2$s>actualizar su plan de %1$s.</a></nobr>�Pago�Personalice la apariencia de su escaparate virtual y edite el contenido en la página de la tienda para reflejar su marca y mantenerse conectado con sus clientes.�Elegir una categoría�Elegir un producto�Imagen�Píldora�Tenga en cuenta el número máximo de productos y categorías que puede tener en su tienda de Ecwid. Esta herramienta de importación se detendrá automáticamente cuando se alcance el límite de productos de la tienda. Para conocer el límite actual de la tienda o aumentarlo, consulte la página <nobr><a %s target="_blank">«Facturación y planes»</a></nobr> ubicada en el panel de su tienda de Ecwid.�Suscríbase a un plan de pago para obtener esta función.�Complementos para Ecwid�Vertical 2:3�Vertical 3:4�Posición�Vista previa�Página anterior�Precio�Color del precio�Producto�Ficha de producto ampliada�Ficha de producto reducida�Apariencia de la lista de productos�Apariencia de la página del producto�REF del producto�Búsqueda de productos�Cuadro de búsqueda de productos�Búsqueda de productos y filtros�El texto de la ficha del producto se alinea�El catálogo de productos se mostrará automáticamente�Diseño de la página de productos�Precio del producto�Cantidad de productos�Contenido de la barra lateral de productos�Relación de aspecto de la miniatura del producto�Tamaño de la miniatura del producto�Título del producto�Productos�Los productos se sincronizaron satisfactoriamente. Las páginas de productos están actualizadas.�Productos eliminados sincronizados: %1$s de %2$s�Promocione su tienda�Otorgar acceso.�Proporcionado por <a %s>%s</a>�Publicar�Publicar la página de la tienda�Publique la página para poder utilizar esta opción�Publicada�Cantidad�¿Tiene alguna pregunta?�Producto aleatorio�Productos aleatorios�Tasa de %s en WordPress.org�Vuélvase a conectar para activar el panel de control�Productos vistos recientemente�Recomendaciones para su tienda en línea�Rectángulo�Actualizar la lista de categorías�Registrarse en %s�Informar un problema con la tienda�Informes�Derecha�P�REF�Ventas�Canales de venta�Guardar�Guarde y conecte su tienda de %s al sitio web�Guardar cambios�Buscar�Búsqueda y filtros�Buscar productos�Buscar en la base de conocimientos�Ver más�Seleccionar todo�Seleccionar categoría�Producto seleccionado�Categoría seleccionada�Vender en Facebook�Enviar mensaje�Envíe un mensaje a nuestro equipo de asistencia�Ocurrió un error al enviar el mensaje�Configure su tienda�Configurar manualmente�Configure su tienda�Configuraciones�Configuración�Envío y recogida�Tienda�Carrito de compras�Carrito de compras (descontinuado)�Carrito de compras flotante (descontinuado)�Icono del carrito de compras�Carrito de compras en miniatura (descontinuado)�«Widget» del carrito de compras�Mostrar�Mostrar imagen adicional al pasar el ratón�Mostrar categorías�Muéstreles a los clientes que pueden utilizar la búsqueda y los filtros para encontrar los productos que deseen de forma más rápida.�Mostrar descripción debajo de la imagen�Mostrar minicarrito�Mostrar en todas las páginas�Mostrar al pasar el ratón�Mostrar en las páginas de la tienda�Mostrar el precio dentro del botón de «Comprar ahora»�Mostrar el precio dentro del botón de «Comprar ahora»�Mostrar el borde de la ficha del producto�Mostrar miniaturas de los productos�Mostrar búsqueda�Mostrar cuando esté vacío�Muestre su tienda en la página de inicio�El inicio de sesión único les permite a sus clientes tener un inicio de sesión único para su sitio web de WordPress y su %s. Cuando alguien inicie sesión en su sitio web, también iniciará sesión automáticamente en su cuenta de cliente en la tienda sin necesidad de introducir su correo electrónico y contraseña nuevamente.�Icono pequeño�Icono pequeño y total de artículos�Algunos de los artículos no se pudieron importar.�Le pido disculpas por las dificultades técnicas que estamos experimentando.�Lo siento, hay un problema. Se supone que esta página muestra el panel de control de su tienda; sin embargo, este sitio web de Wordpress no parece poder conectarse al servidor de Ecwid para mostrar el panel de su tienda aquí. Es probable que esto se deba a una mala configuración del servidor; su proveedor de alojamiento web puede solucionarlo. Aquí hay una descripción más técnica del problema, la cual puede enviarle a su proveedor de alojamiento web: «La función de Wordpress wp_remote_post() no pudo conectarse a un servidor remoto debido al error: “%s”; parece que las solicitudes HTTP POST están inhabilitadas en este servidor». <br /><br />No dude en ponerse en contacto con nosotros en <a %s>wordpress@ecwid.com</a> y le ayudaremos a comunicarse con su proveedor de alojamiento web para pedirle que solucione el problema. <br /><br /> Mientras tanto, para gestionar su tienda, puede utilizar el panel de control web de Ecwid en <a %s>my.ecwid.com</a>. Su escaparate virtual está funcionando bien; puede echarle un vistazo aquí: <a %s>%s</a>.�Cuadrado 1:1�Iniciar la importación�Estado�Manténgase conectado con sus clientes. Actualice el contenido de su tienda en cualquier momento para informarles a los clientes sobre las promociones actuales y las novedades de su tienda.�¿Todavía tiene preguntas acerca de Ecwid? ¡Háganoslo saber!�Tienda�Categorías de la tienda�Menú de categorías de la tienda�Página de categorías de la tienda�Página del escaparate virtual�Página de inicio de la tienda�ID de la tienda�El ID de la tienda es un identificador único de cualquier tienda de %1$s, el cual consta de varios dígitos. Puede encontrarlo en la página «Panel» del panel de control de %1$s. El ID de la tienda se enviará en el correo electrónico de bienvenida después del registro.�El ID de la tienda es un identificador único de su cuenta de %1$s. Puede encontrarlo en su panel de control de %1$s en la <a %2$s>página del panel</a>.�Título del enlace de la tienda�Navegación en la tienda�Página de la tienda�Enlace a la página de la tienda�Categorías raíz de la tienda�Apariencia de la tienda�Elementos de la tienda�Gestión de la tienda�Contenido de la página de la tienda�Página de la tienda en su sitio web�Categoría raíz de la tienda�Tienda con menú de categorías�Escaparate virtual�Asunto�Enviar y desactivar�Cambiar al borrador�Sincronizar productos�Tabla�Vista de tabla�Siga unos sencillos pasos para completar la configuración de la tienda�Aproveche las increíbles aplicaciones y extensiones diseñadas para mejorar su tienda.�Texto�Color del texto�Gracias por elegir %s para construir su tienda en línea�El bloque está oculto porque no tiene categorías en su tienda. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Añadir categorías.</a>�La categoría que se muestra de forma predeterminada en la página del escaparate virtual�El primer paso para abrir su negocio en línea: <br />añadamos una tienda a su sitio web de WordPress en <strong>3</strong> simples pasos.�El complemento no es compatible con la función que quiero�El icono del carrito de compras muestra la cantidad de artículos en el carrito y ayuda a los clientes a realizar el pago. Además, puede <a href="%s" target="_blank">ajustar la apariencia del icono del carrito</a>.�La tienda no es visible en su sitio web�Las categorías de alto nivel de la tienda se añaden automáticamente a este menú desplegable�Temas para Ecwid�Esta importación copiará sus productos y categorías de WooCommerce a su tienda de %s.�Esto es una tienda de demostración. Cree su tienda para ver los productos de su tienda aquí.�Esto cambiará la etiqueta del módulo en el creador para una fácil identificación.�Título�Título en la imagen�Solo título�Título o REF�Título debajo de la imagen�Título:�Para añadir funciones adicionales a su tienda, arrastre y suelte los elementos de la tienda de %s en su sitio web. Una vez que haya terminado, puede volver a modificar su configuración.�Para añadir su tienda a su sitio web, introduzca el ID de su tienda de %1$s en el campo a continuación. Si aún no tiene una cuenta de %1$s, cree una gratis en el <a %2$s>sitio web de %1$s</a>.�Para permitir que %s inicie la sesión de sus clientes automáticamente en su tienda, otorgue los permisos para utilizar los datos del cliente en la tienda. <a %s>Utilice este enlace para hacerlo</a>�A fin de poder elegir un producto para insertarlo en sus publicaciones y páginas, deberá volver a conectar su sitio a su tienda de %s. Esto solo requerirá que acepte la solicitud de permisos para que el complemento pueda listar sus productos en el cuadro de diálogo «Añadir producto».�Para crear un «Mapa del sitio» para su sitio web de Wordpress, le sugerimos que utilice los  complementos <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> o <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>. Estos complementos son totalmente compatibles con Ecwid y permiten generar un mapa del sitio que contiene enlaces a categorías y páginas de productos, por lo que las páginas de la tienda se indexarán más rápido. Tenga en cuenta que esta opción solo está disponible para los <a target="_blank" href="https://www.ecwid.com/pricing">usuarios de pago de Ecwid</a>.�Para mostrar su tienda en este sitio web, debe permitir que WordPress acceda a sus productos de %1$s. Pulse «Conectar» para otorgar el permiso.�Para habilitar esta función, el complemento necesita un permiso para leer la información del producto de su tienda.�Para mostrar un solo producto en una página aparte o en una entrada de blog de su sitio web, utilice el código corto <b>[ecwid_product]</b>. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">Cómo utilizarlo</a>�Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para mejorar la apariencia de su tienda y poder gestionar la apariencia de su escaparate virtual desde aquí, habilite la opción «Apariencia de próxima generación de la lista de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para asegurarse de que su cliente puede acceder realmente a su sitio web y a la tienda, habilite el registro en las <a %s>configuraciones del sitio web</a>�Para gestionar su tienda, vaya a la <a %s>página del «Panel de su tienda»</a>�Para vender utilizando %1$s, debe permitir que WordPress acceda al complemento %1$s. El botón «Conectar» lo redirigirá a su cuenta de %1$s donde puede otorgar el permiso.�Para mostrar su escaparate virtual en lugar de la tienda de demostración, conecte su cuenta de %s existente o cree una nueva.�Para comenzar a vender, añada una página a su sitio web donde se muestre el escaparate virtual.�Arriba a la izquierda�Arriba a la derecha�Intente otra búsqueda.�Escriba su mensaje aquí�«Slug» de la dirección URL�Actualizar�Actualice su catálogo�Actualice para obtener esta función�Sangría vertical�Miniaturas verticales�Gris oscuro�Gris claro�Ver la página de la tienda�Ver la página de la tienda de demostración�Ver la página de la tienda�Visitar escaparate virtual�Azul cian vívido�Cian verde vívido�Rojo vívido�¿Desea conectar otra tienda de %s?�Advertencia: algunas de las funciones de su tienda en línea están inhabilitadas. Póngase en contacto con su proveedor de alojamiento web para resolverlo.�Notamos que tiene un WooCommerce instalado. Su tienda de WooCommerce tiene %1$s productos y %2$s categorías; ¿le gustaría importarlos a %3$s?�Notamos que tiene WooCommerce instalado. Si desea copiar fácilmente sus productos de WooCommerce a %s, esta herramienta le ayudará.�Estamos sincronizando sus productos. Esto puede tardar unos minutos. No actualice la página.�Sitio web�¿Qué función necesita?�¿Qué fue lo que pasó?�¿Qué sigue?�Mientras su tienda aún no esté conectada, se mostrará una tienda de demostración en su sitio web. Échele un vistazo para tener una idea de cómo se verá su tienda en el sitio web.�Precios al por mayor�Puede añadir un cuadro de búsqueda de productos, un «widget» de carrito y más desde la <a href="%s">«Página de apariencia y widgets»</a> que se encuentra aquí en el administrador de su sitio web. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">Más detalles.</a>�Puede añadir todo el escaparate virtual, las categorías, los productos o los botones de «Comprar ahora» a otras páginas de su sitio web. Para ello, abra una página en el editor y añada un bloque %s apropiado.�Puede añadir el menú de categorías de la tienda al menú de su sitio web para ayudar a sus clientes a navegar fácilmente por su sitio web. Simplemente abra «Apariencia > Menús» en el panel de WordPress y añada el elemento «Tienda con menú de categorías» al menú de su sitio web. Aparecerá automáticamente un menú desplegable que contendrá las categorías de su tienda en su sitio web.�Puede añadir su tienda en línea a su página empresarial de Facebook (no se necesitan complementos). Ecwid sincronizará automáticamente los productos, clientes, pedidos e inventario entre su tienda en línea de WordPress y Facebook. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">Más detalles.</a>�Puede gestionar la apariencia de su tienda en la <a %s>página de «Configuración del diseño»</a> ubicada en el panel de control de su tienda.�Puede mostrar su tienda en la página principal del sitio web. Ajuste la configuración de «Lectura» de su sitio web como se describe en nuestro <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">centro de asistencia.</a>�Puede habilitar un «widget» adicional del icono de la bolsa de compras que aparecerá en las páginas de su sitio web. Abra el menú «<a href="%1$s">Apariencia → Personalizar → %2$s</a>» para habilitarlo.�Puede habilitar los filtros en la configuración de la tienda: («<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Configuración → Filtros para los productos</a>»).�Puede enviar una nueva solicitud aquí.�Aún no ha visto ningún producto. Abra la tienda.�También podrá registrarse a través de sus perfiles existentes de Google, Facebook o PayPal.�Su tienda de %s tiene �Su tienda de %s está conectada<br /> a su sitio web de WordPress�Su tienda de %s ahora está conectada<br /> a su sitio web de WordPress�Su escaparate virtual�Su tienda de WooCommerce tiene �Se ha enviado su correo electrónico�Su producto�Panel de control de su tienda. Aquí mismo en WordPress.�Se ha creado su tienda. Preparando el panel de su tienda...�Su tienda se añade a varias páginas del sitio web. Elija la página principal. Los clientes son redirigidos a la página principal de la tienda cuando hacen clic en el icono del carrito, en los enlaces de la tienda ubicados en el menú del sitio web o en los productos que se encuentran en la barra lateral.�¡Su tienda ya está casi lista!�Su tienda no se añade a ninguna página de su sitio web. Para que los clientes puedan navegar por su tienda y realizar pedidos, cree una página donde se mostrará la tienda.�La página de su tienda�La página de su tienda está actualmente en un borrador. Una vez que esté lista, publíquela para que los clientes puedan visitar la tienda y realizar pedidos.�La página de su tienda está publicada. Los clientes pueden visitar su tienda en �Su tienda se mostrará aquí�¡Su tienda se mostrará aquí!�Su escaparate virtual (listado de productos y página de pago) está funcionando bien, pero las funciones avanzadas de la tienda, como el SEO y los «widgets» de la barra lateral, están inhabilitadas. Para habilitarlas y asegurarse de que su tienda funcione correctamente, pulse el botón de abajo para conectar su cuenta de %s. Esto tomará menos de un minuto; solo se le pedirá que inicie sesión en su cuenta y permita que este sitio web obtenga los datos de su tienda.�[%s] Comentarios sobre la desactivación del complemento de WordPress (ID de la tienda: %s)�personalizar apariencia�Contenido�Tienda�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�o <a %s>consulte el centro de asistencia�REF del producto�Precio del producto�seleccionar producto�producto seleccionado�Tienda en línea�Botón de «Comprar ahora»���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/languages/ecwid-shopping-cart-es_CO.po������������������������������������������0000644�����������������00000326062�15122273603�0017570 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Translation of Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) in German # This file is distributed under the same license as the Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) package. msgid "" msgstr "" "PO-Revision-Date: 2020-10-12 12:46\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: GlotPress/3.0.0-alpha.2\n" "Language: es\n" "Project-Id-Version: temporary-strings\n" "X-Crowdin-Project: temporary-strings\n" "X-Crowdin-Project-ID: 295314\n" "X-Crowdin-Language: es-ES\n" "X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po\n" "X-Crowdin-File-ID: 988\n" "Language-Team: Spanish\n" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:92 msgid "You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel." msgstr "Puede gestionar la apariencia de su tienda en la <a %s>página de «Configuración del diseño»</a> ubicada en el panel de control de su tienda." #: includes/integrations/elementor/class-ec-elementor-widget-store.php:55 msgid "To manage your store, go to <a %s>the Store Dashboard page</a>" msgstr "Para gestionar su tienda, vaya a la <a %s>página del «Panel de su tienda»</a>" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:39 msgid "The category that is shown by default on the Store Front Page" msgstr "La categoría que se muestra de forma predeterminada en la página del escaparate virtual" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:38 msgid "Default category" msgstr "Categoría predeterminada" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:29 msgid "Online Store" msgstr "Tienda en línea" #: includes/class-ecwid-stub-renderer.php:38 msgid "Buy Now" msgstr "Comprar ahora" #: templates/admin/welcome-terms-privacy.php:5 msgid "By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>." msgstr "Al continuar, acepta los <a %s>Términos de servicio</a> y la <a %s>Política de privacidad</a>." #: js/gutenberg/blocks.build.js:1 msgid "Display shopping cart and checkout page" msgstr "Mostrar el carrito de compras y la página de pago" #: js/gutenberg/blocks.build.js:1 msgid "Cart and Checkout" msgstr "Carrito y pago" #: js/gutenberg/blocks.build.js:1 msgid "Filters" msgstr "Filtros" #: js/gutenberg/blocks.build.js:1 msgid "You can enable filters in the store settings: (“<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Settings → Product Filters</a>”)." msgstr "Puede habilitar los filtros en la configuración de la tienda: («<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Configuración → Filtros para los productos</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Search and Filters" msgstr "Búsqueda y filtros" #: js/gutenberg/blocks.build.js:1 msgid "Display search page with filters on a side" msgstr "Mostrar página de búsqueda con los filtros a un lado" #: js/gutenberg/blocks.build.js:1 msgid "Product Search and filters" msgstr "Búsqueda de productos y filtros" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Display product page with description and a buy button" msgstr "Mostrar la página de productos con la descripción y un botón de compra" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Large" msgstr "Ficha de producto ampliada" #: js/gutenberg/blocks.build.js:1 msgid "Selected category" msgstr "Categoría seleccionada" #: js/gutenberg/blocks.build.js:1 msgid "Select category" msgstr "Seleccionar categoría" #: js/gutenberg/blocks.build.js:1 msgid "Add categories" msgstr "Añadir categorías" #: js/gutenberg/blocks.build.js:1 msgid "Display category page" msgstr "Mostrar la página de categorías" #: js/gutenberg/blocks.build.js:1 msgid "Store Category Page" msgstr "Página de categorías de la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Display shopping bag link and summary" msgstr "Mostrar enlace y resumen de la bolsa de compras" #: js/gutenberg/blocks.build.js:1 msgid "Shopping Cart Icon" msgstr "Icono del carrito de compras" #: js/gutenberg/blocks.build.js:1 msgid "The block is hidden because you don't have categories in your store. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Add categories.</a>" msgstr "El bloque está oculto porque no tiene categorías en su tienda. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Añadir categorías.</a>" #: js/gutenberg/blocks.build.js:1 msgid "Categories" msgstr "Categorías" #: js/gutenberg/blocks.build.js:1 msgid "Display categories navigation bar" msgstr "Mostrar la barra de navegación de las categorías" #: js/gutenberg/blocks.build.js:1 msgid "Store Categories Menu" msgstr "Menú de categorías de la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Product Search Box" msgstr "Cuadro de búsqueda de productos" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:25 #: js/gutenberg/blocks.build.js:1 msgid "Linked product" msgstr "Producto vinculado" #: js/gutenberg/blocks.build.js:1 msgid "Display a buy button" msgstr "Mostrar un botón de compra" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:10 #: js/gutenberg/blocks.build.js:1 msgid "Buy Now Button" msgstr "Botón «Comprar ahora»" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:52 #: js/gutenberg/blocks.build.js:1 msgid "Show price inside the «Buy now» button" msgstr "Mostrar el precio dentro del botón de «Comprar ahora»" #: js/gutenberg/blocks.build.js:1 msgctxt "gutenberg-product-block" msgid "Content" msgstr "Contenido" #: js/gutenberg/blocks.build.js:1 msgid "Change" msgstr "Cambiar" #: js/gutenberg/blocks.build.js:1 msgid "Displayed product" msgstr "Producto mostrado" #: js/gutenberg/blocks.build.js:1 msgid "Display product with a buy button" msgstr "Mostrar el producto con un botón de compra" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Small" msgstr "Ficha de producto reducida" #: js/gutenberg/blocks.build.js:1 msgid "Very dark gray" msgstr "Gris oscuro" #: js/gutenberg/blocks.build.js:1 msgid "Cyan bluish gray" msgstr "Gris cian azulado" #: js/gutenberg/blocks.build.js:1 msgid "Very light gray" msgstr "Gris claro" #: js/gutenberg/blocks.build.js:1 msgid "Vivid cyan blue" msgstr "Azul cian vívido" #: js/gutenberg/blocks.build.js:1 msgid "Pale cyan blue" msgstr "Azul cian pálido" #: js/gutenberg/blocks.build.js:1 msgid "Vivid green cyan" msgstr "Cian verde vívido" #: js/gutenberg/blocks.build.js:1 msgid "Light green cyan" msgstr "Cian verde claro" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid amber" msgstr "Ámbar vívido y brillante" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid orange" msgstr "Naranja vívido y brillante" #: js/gutenberg/blocks.build.js:1 msgid "Vivid red" msgstr "Rojo vívido" #: js/gutenberg/blocks.build.js:1 msgid "Pale pink" msgstr "Rosa pálido" #: js/gutenberg/blocks.build.js:1 msgid "Set manually" msgstr "Configurar manualmente" #: js/gutenberg/blocks.build.js:1 msgid "Detect automatically" msgstr "Detectar automáticamente" #: js/gutenberg/blocks.build.js:1 msgid "Color settings" msgstr "Configuración de colores" #: js/gutenberg/blocks.build.js:1 msgid "Store Navigation" msgstr "Navegación en la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Store Front Page" msgstr "Página del escaparate virtual" #: js/gutenberg/blocks.build.js:1 msgid "Product sidebar content" msgstr "Contenido de la barra lateral de productos" #: js/gutenberg/blocks.build.js:1 msgid "Product Page Appearance" msgstr "Apariencia de la página del producto" #: js/gutenberg/blocks.build.js:1 msgid "Product List Appearance" msgstr "Apariencia de la lista de productos" #: js/gutenberg/blocks.build.js:1 msgid "Category List Appearance" msgstr "Apariencia de la lista de categorías" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Display cart icon" msgstr "Mostrar icono del carrito" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Para mejorar la apariencia de su tienda y poder gestionar la apariencia de su escaparate virtual desde aquí, habilite la opción «Apariencia de próxima generación de la lista de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Add storefront (product listing)" msgstr "Añadir escaparate virtual (listado de productos)" #: templates/admin/storefront/main.php:21 msgid "Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers." msgstr "Los clientes no pueden ver la página de su tienda porque está en un borrador. Publique la página para que esté disponible para sus clientes." #: templates/admin/storefront/main.php:20 msgid "The store is not visible on your site" msgstr "La tienda no es visible en su sitio web" #: templates/admin/storefront/main.php:4 msgid "Your Storefront" msgstr "Su escaparate virtual" #: templates/admin/storefront/area-promo.php:30 msgid "Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars." msgstr "Ayude a los clientes a encontrar su tienda en el sitio web. Añada el enlace de la tienda al menú del sitio web, cree páginas adicionales de la tienda y resalte los productos de la tienda en otras páginas del sitio web y en las barras laterales." #: templates/admin/storefront/area-promo.php:29 msgid "Promote your store" msgstr "Promocione su tienda" #: templates/admin/storefront/area-promo.php:26 msgid "Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store." msgstr "Manténgase conectado con sus clientes. Actualice el contenido de su tienda en cualquier momento para informarles a los clientes sobre las promociones actuales y las novedades de su tienda." #: templates/admin/storefront/area-promo.php:25 msgid "Change store content" msgstr "Cambiar el contenido de la tienda" #: templates/admin/storefront/area-promo.php:22 msgid "Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand." msgstr "Personalice la apariencia de su tienda para que se ajuste a las necesidades de su negocio. Cree la apariencia para su tienda que más se parezca a su marca." #: templates/admin/storefront/area-promo.php:21 msgid "Customize store appearance" msgstr "Personalizar la apariencia de la tienda" #: templates/admin/storefront/area-promo.php:7 msgid "Add your %s store to the website and start selling in minutes." msgstr "Añada su tienda de %s al sitio web y comience a vender en minutos." #: templates/admin/storefront/area-promo.php:3 msgid "What's next?" msgstr "¿Qué sigue?" #: templates/admin/storefront/area-additional.php:224 msgid "Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar." msgstr "Su tienda se añade a varias páginas del sitio web. Elija la página principal. Los clientes son redirigidos a la página principal de la tienda cuando hacen clic en el icono del carrito, en los enlaces de la tienda ubicados en el menú del sitio web o en los productos que se encuentran en la barra lateral." #: templates/admin/storefront/area-additional.php:222 msgid "Choose the main store page" msgstr "Elegir la página principal de la tienda" #: templates/admin/storefront/area-additional.php:200 msgid "Go to Pages" msgstr "Ir a «Páginas»" #: templates/admin/storefront/area-additional.php:193 msgid "You can add the entire storefront, categories, products, or \"Buy now\" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block." msgstr "Puede añadir todo el escaparate virtual, las categorías, los productos o los botones de «Comprar ahora» a otras páginas de su sitio web. Para ello, abra una página en el editor y añada un bloque %s apropiado." #: templates/admin/storefront/area-additional.php:189 msgid "Add your store to other site pages" msgstr "Añada su tienda a otras páginas del sitio web" #: templates/admin/storefront/area-additional.php:166 msgid "Create Product Page" msgstr "Crear página de productos" #: templates/admin/storefront/area-additional.php:150 msgid "Pick Product" msgstr "Elegir un producto" #: templates/admin/storefront/area-additional.php:136 #: templates/admin/storefront/area-additional.php:138 msgid "Create a landing page featuring one of your products." msgstr "Cree una página de aterrizaje con uno de sus productos." #: templates/admin/storefront/area-additional.php:132 msgid "Add a product page" msgstr "Añadir página de productos" #: templates/admin/storefront/area-additional.php:109 msgid "Create Category Page" msgstr "Crear página de categorías" #: templates/admin/storefront/area-additional.php:93 msgid "Pick Category" msgstr "Elegir una categoría" #: templates/admin/storefront/area-additional.php:79 #: templates/admin/storefront/area-additional.php:81 msgid "Feature a specific store category on a separate page of your site." msgstr "Destacar una categoría de la tienda específica en una página separada de su sitio web." #: templates/admin/storefront/area-additional.php:75 msgid "Add a category page" msgstr "Añadir una página de categoría" #: templates/admin/storefront/area-additional.php:54 msgid "Create Search Page" msgstr "Crear página de búsqueda" #: templates/admin/storefront/area-additional.php:50 msgid "Show customers that they can use a search and filters to find desired products faster." msgstr "Muéstreles a los clientes que pueden utilizar la búsqueda y los filtros para encontrar los productos que deseen de forma más rápida." #: templates/admin/storefront/area-additional.php:48 msgid "Add a search and filters page" msgstr "Añadir una página de búsqueda y filtros" #: templates/admin/storefront/area-additional.php:27 msgid "Create Cart Page" msgstr "Crear página del carrito" #: templates/admin/storefront/area-additional.php:23 msgid "Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout." msgstr "Los clientes van a la página del carrito para consultar los productos que han añadido al mismo y proceder con el pago." #: templates/admin/storefront/area-additional.php:21 msgid "Add cart and checkout page" msgstr "Añadir carrito y página de pago" #: templates/admin/storefront/area-additional.php:4 msgid "Highlight products, categories, and other store pages by adding them to separate website pages." msgstr "Destaque productos, categorías y otras páginas de la tienda añadiéndolas a páginas del sitio web separadas." #: templates/admin/storefront/area-additional.php:3 msgid "Additional store pages" msgstr "Páginas adicionales de la tienda" #: templates/admin/storefront/draft-message.php:2 msgid "Publish the page to use this option" msgstr "Publique la página para poder utilizar esta opción" #: templates/admin/storefront/area-design.php:55 msgid "Along with the store catalog, you can add other widgets and texts to the store page." msgstr "Junto con el catálogo de la tienda, puede añadir otros «widgets» y textos a la página de la tienda." #: templates/admin/storefront/area-design.php:54 msgid "Store page content" msgstr "Contenido de la página de la tienda" #: templates/admin/storefront/area-design.php:25 #: templates/admin/storefront/area-design.php:27 msgid "Adjust your store design to fit your business needs." msgstr "Ajuste el diseño de su tienda para que se adapte a las necesidades de su negocio." #: templates/admin/storefront/area-design.php:21 msgid "Store appearance" msgstr "Apariencia de la tienda" #: templates/admin/storefront/area-design.php:4 msgid "Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers." msgstr "Personalice la apariencia de su escaparate virtual y edite el contenido en la página de la tienda para reflejar su marca y mantenerse conectado con sus clientes." #: templates/admin/storefront/area-design.php:3 msgid "Design and content" msgstr "Diseño y contenido" #: templates/admin/storefront/area-status.php:124 msgid "Create Store Page" msgstr "Crear la página de la tienda" #: templates/admin/storefront/area-status.php:121 msgid "Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display." msgstr "Su tienda no se añade a ninguna página de su sitio web. Para que los clientes puedan navegar por su tienda y realizar pedidos, cree una página donde se mostrará la tienda." #: templates/admin/storefront/area-status.php:115 msgid "Set Up Your Store" msgstr "Configure su tienda" #: templates/admin/storefront/area-status.php:109 msgid "To show your storefront instead of the demo store, connect your existing %s account or create a new one." msgstr "Para mostrar su escaparate virtual en lugar de la tienda de demostración, conecte su cuenta de %s existente o cree una nueva." #: templates/admin/storefront/area-status.php:101 msgid "Publish Store Page" msgstr "Publicar la página de la tienda" #: templates/admin/storefront/area-status.php:98 msgid "Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders." msgstr "La página de su tienda está actualmente en un borrador. Una vez que esté lista, publíquela para que los clientes puedan visitar la tienda y realizar pedidos." #: templates/admin/storefront/area-status.php:92 msgid "View Store Page" msgstr "Ver la página de la tienda" #: templates/admin/storefront/area-status.php:86 msgid "Your store page is published. Customers can browse your store at " msgstr "La página de su tienda está publicada. Los clientes pueden visitar su tienda en " #: templates/admin/storefront/area-status.php:77 msgid "View demo store page" msgstr "Ver la página de la tienda de demostración" #: templates/admin/storefront/area-status.php:46 msgid "Draft" msgstr "Borrador" #: templates/admin/storefront/area-status.php:45 msgid "Published" msgstr "Publicada" #: templates/admin/storefront/area-status.php:33 #: templates/admin/storefront/area-status.php:36 msgid "Status" msgstr "Estado" #: templates/admin/storefront/area-status.php:29 msgid "Add a store page" msgstr "Añadir una página de tienda" #: templates/admin/storefront/area-status.php:24 msgid "Connect your %s store" msgstr "Conecte su tienda de %s" #: templates/admin/storefront/area-status.php:21 msgid "Your store page" msgstr "La página de su tienda" #: templates/admin/storefront/area-status.php:10 msgid "To start selling, add a page to your site where the storefront will display." msgstr "Para comenzar a vender, añada una página a su sitio web donde se muestre el escaparate virtual." #: templates/admin/storefront/area-status.php:7 msgid "While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site." msgstr "Mientras su tienda aún no esté conectada, se mostrará una tienda de demostración en su sitio web. Échele un vistazo para tener una idea de cómo se verá su tienda en el sitio web." #: templates/admin/storefront/area-status.php:4 msgid "Store page on your site" msgstr "Página de la tienda en su sitio web" #: templates/admin/storefront/area-navigation.php:205 msgid "The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href=\"%s\" target=\"_blank\">adjust the cart icon appearance</a>." msgstr "El icono del carrito de compras muestra la cantidad de artículos en el carrito y ayuda a los clientes a realizar el pago. Además, puede <a href=\"%s\" target=\"_blank\">ajustar la apariencia del icono del carrito</a>." #: templates/admin/storefront/area-navigation.php:201 msgid "Display the shopping cart icon on site pages" msgstr "Muestre el icono del carrito de compras en las páginas del sitio web" #: templates/admin/storefront/area-navigation.php:179 msgid "Manage Sidebar" msgstr "Gestionar la barra lateral" #: templates/admin/storefront/area-navigation.php:175 msgid "Highlight your best sellers or new products in the website sidebar." msgstr "Destaque sus mejores ventas o nuevos productos en la barra lateral del sitio web." #: templates/admin/storefront/area-navigation.php:173 msgid "Feature your products in the sidebar" msgstr "Destaque sus productos en la barra lateral" #: templates/admin/storefront/area-navigation.php:151 msgid "Add Store Page to Menu" msgstr "Añadir la página de la tienda al menú" #: templates/admin/storefront/area-navigation.php:147 msgid "Make your store accessible from the site menu so your customers can easily find it." msgstr "Haga que su tienda sea accesible desde el menú del sitio web para que sus clientes puedan encontrarla fácilmente." #: templates/admin/storefront/area-navigation.php:141 msgid "Add store page to the site menu" msgstr "Añadir la página de la tienda al menú del sitio web" #: templates/admin/storefront/area-navigation.php:118 msgid "Edit URL Slug" msgstr "Editar «slug» de la dirección URL" #: templates/admin/storefront/area-navigation.php:102 msgid "Current URL slug: /<span data-ec-store-slug>%s</span>" msgstr "«Slug» actual de la dirección URL: /<span data-ec-store-slug>%s</span>" #: templates/admin/storefront/area-navigation.php:78 msgid "Save" msgstr "Guardar" #: templates/admin/storefront/area-navigation.php:69 msgid "URL Slug" msgstr "«Slug» de la dirección URL" #: templates/admin/storefront/area-navigation.php:60 #: templates/admin/storefront/area-navigation.php:113 msgid "A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use \"/shop\" or \"/products\"." msgstr "Un «slug» es la última parte de una URL. Puede crear un «slug» personalizado para la página de su tienda. Es mejor que sea corto, ya que los clientes y los motores de búsqueda prefieren las URL cortas. Por ejemplo, utilice «/tienda» o «/productos»." #: templates/admin/storefront/area-navigation.php:56 #: templates/admin/storefront/area-navigation.php:98 msgid "Customize store page address" msgstr "Personalizar la dirección de la página de la tienda" #: templates/admin/storefront/area-navigation.php:29 msgid "Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href=\"%s\" target=\"_blank\">WordPress Settings > Reading</a>" msgstr "Añada su escaparate virtual a la página de inicio del sitio web para que sea más notable. También puede modificar la configuración de la página de inicio del sitio web en <a href=\"%s\" target=\"_blank\">Configuración de WordPress > Lectura</a>." #: templates/admin/storefront/area-navigation.php:21 msgid "Show your store on the home page" msgstr "Muestre su tienda en la página de inicio" #: templates/admin/storefront/area-navigation.php:4 msgid "Help customers find your store on the website." msgstr "Ayude a los clientes a encontrar su tienda en el sitio web." #: templates/admin/storefront/area-navigation.php:3 msgid "Navigation" msgstr "Navegación" #: templates/admin/welcome-no_oauth.php:12 msgid "Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>." msgstr "El ID de la tienda es un identificador único de su cuenta de %1$s. Puede encontrarlo en su panel de control de %1$s en la <a %2$s>página del panel</a>." #: templates/admin/welcome-create.php:11 msgid "Your store has been created. Preparing your store dashboard ..." msgstr "Se ha creado su tienda. Preparando el panel de su tienda..." #: templates/admin/welcome-connect.php:8 msgid "Create store" msgstr "Crear tienda" #: templates/admin/welcome-connect.php:4 msgid "Connect Your Store" msgstr "Conecte su tienda" #: templates/admin/welcome-page.php:61 msgid "Provided by <a %s>%s</a>" msgstr "Proporcionado por <a %s>%s</a>" #: templates/admin/welcome-page.php:33 msgid "To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>." msgstr "Para añadir su tienda a su sitio web, introduzca el ID de su tienda de %1$s en el campo a continuación. Si aún no tiene una cuenta de %1$s, cree una gratis en el <a %2$s>sitio web de %1$s</a>." #: templates/admin/welcome-page.php:20 msgid "Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website." msgstr "Cree una nueva tienda o, si ya tiene una cuenta de %s, conéctela. El complemento le guiará a través de la configuración de la tienda y le ayudará a publicarla en su sitio web." #: templates/admin/welcome-page.php:12 msgid "Add an Online Store to Your Website" msgstr "Añadir una tienda en línea a su sitio web" #: includes/class-ecwid-store-page.php:566 msgid "This is a demo store. Create your store to see your store products here." msgstr "Esto es una tienda de demostración. Cree su tienda para ver los productos de su tienda aquí." #: includes/class-ecwid-admin-storefront-page.php:539 msgid "Publish" msgstr "Publicar" #: templates/admin/storefront/area-design.php:33 #: templates/admin/storefront/area-design.php:59 #: includes/class-ecwid-admin-storefront-page.php:532 msgid "Edit" msgstr "Editar" #: includes/class-ecwid-admin-storefront-page.php:525 msgid "Preview" msgstr "Vista previa" #: includes/class-ecwid-admin-storefront-page.php:516 msgid "Switch to draft" msgstr "Cambiar al borrador" #: includes/class-ecwid-admin-storefront-page.php:506 msgid "Edit page" msgstr "Editar página" #: includes/class-ecwid-admin-storefront-page.php:499 msgid "View store page" msgstr "Ver la página de la tienda" #: includes/class-ecwid-admin-storefront-page.php:286 msgid "Search products" msgstr "Buscar productos" #: includes/class-ecwid-admin-storefront-page.php:265 msgid "Category" msgstr "Categoría" #: includes/class-ecwid-admin-storefront-page.php:240 msgid "Page with that name already exists." msgstr "Ya existe una página con ese nombre." #: includes/class-ecwid-admin.php:538 msgid "My Profile" msgstr "Mi perfil" #: includes/class-ecwid-admin.php:533 msgid "Apps" msgstr "Aplicaciones" #: includes/class-ecwid-admin.php:523 msgid "Shipping & Pickup" msgstr "Envío y recogida" #: includes/class-ecwid-admin.php:518 msgid "Payment" msgstr "Pago" #: includes/class-ecwid-admin.php:513 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:88 msgid "Design" msgstr "Diseño" #: includes/class-ecwid-admin.php:509 msgid "Configuration" msgstr "Configuración" #: includes/class-ecwid-admin.php:504 msgid "All Sales Channels" msgstr "Todos los canales de venta" #: includes/class-ecwid-admin.php:499 msgid "Website" msgstr "Sitio web" #: includes/class-ecwid-admin.php:494 msgid "Mobile" msgstr "Móvil" #: includes/class-ecwid-admin.php:485 msgid "Sales channels" msgstr "Canales de venta" #: includes/class-ecwid-admin.php:480 msgid "Reports" msgstr "Informes" #: includes/class-ecwid-admin.php:475 msgid "Marketing" msgstr "Mercadotecnia" #: includes/class-ecwid-admin.php:470 msgid "Catalog" msgstr "Catálogo" #: includes/class-ecwid-admin.php:465 msgid "My Sales" msgstr "Mis ventas" #: includes/class-ecwid-admin.php:455 msgid "Store management" msgstr "Gestión de la tienda" #: includes/class-ecwid-admin.php:344 msgid "Instant site" msgstr "Sitio web instantáneo" #: includes/class-ecwid-admin.php:153 includes/class-ecwid-admin.php:154 #: includes/class-ecwid-admin.php:309 msgid "Storefront" msgstr "Escaparate virtual" #: ecwid-shopping-cart.php:1111 msgid "Manage storefront" msgstr "Gestionar escaparate virtual" #: ecwid-shopping-cart.php:1111 msgid "Customize design" msgstr "Personalizar el diseño" #: ecwid-shopping-cart.php:1103 msgid "Manage store" msgstr "Gestionar la tienda" #: templates/importer/woo-main.tpl.php:97 msgid "Start Import" msgstr "Iniciar la importación" #: templates/importer/woo-main.tpl.php:87 msgid "Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target=\"_blank\">\"Billing & Plans\"</a></nobr> page in your Ecwid store control panel." msgstr "Tenga en cuenta el número máximo de productos y categorías que puede tener en su tienda de Ecwid. Esta herramienta de importación se detendrá automáticamente cuando se alcance el límite de productos de la tienda. Para conocer el límite actual de la tienda o aumentarlo, consulte la página <nobr><a %s target=\"_blank\">«Facturación y planes»</a></nobr> ubicada en el panel de su tienda de Ecwid." #: templates/importer/woo-main.tpl.php:82 msgid "Import creates new products and update the existing products with matching SKUs." msgstr "La importación crea nuevos productos y actualiza los productos existentes con las REF correspondientes." #: templates/importer/woo-main.tpl.php:60 msgid "Copying products and categories." msgstr "Copia de productos y categorías." #: templates/importer/woo-main.tpl.php:50 msgid "Import completed. <a href=\"%s\">Run again.</a>" msgstr "Importación completada. <a href=\"%s\">Ejecútela de nuevo.</a>" #: templates/importer/woo-main.tpl.php:34 msgid "Import is in Progress" msgstr "La importación está en progreso" #: templates/importer/woo-main.tpl.php:32 msgid "Import your products from Woocommerce to %s" msgstr "Importe sus productos de Woocommerce a %s" #: templates/importer/woo-main.tpl.php:18 msgid "Update your catalog" msgstr "Actualice su catálogo" #: templates/importer/woo-main.tpl.php:4 msgid "Import Your Products From Woocommerce to %s" msgstr "Importe sus productos de Woocommerce a %s" #: templates/importer/import-no-token.tpl.php:3 msgid "Click the connect button to get rights to update the product catalog" msgstr "Haga clic en el botón «Conectar» para obtener los permisos para actualizar el catálogo de productos" #: templates/importer/woo-complete-alert.tpl.php:52 msgid "Go to Your %s Products" msgstr "Ir a sus productos de %s" #: templates/importer/woo-complete-alert.tpl.php:43 msgid "Download <a href=\"%s\">import log</a>" msgstr "Descargar <a href=\"%s\">registro de importación</a>" #: templates/importer/woo-complete-alert.tpl.php:32 msgid "Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>" msgstr "Parte de los productos no se han copiado a %1$s porque alcanzó el límite de productos en su plan de precios en %1$s. Si desea importar más productos, considere <nobr><a %2$s>actualizar su plan de %1$s.</a></nobr>" #: templates/importer/woo-complete-alert.tpl.php:21 msgid "<b>%s</b> categories" msgstr "<b>%s</b> categorías" #: templates/importer/woo-complete-alert.tpl.php:18 msgid "Imported <b>%s</b> products" msgstr "<b>%s</b> productos importados" #: templates/importer/woo-complete-alert.tpl.php:15 msgid "Import completed" msgstr "Importación completada" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:10 #: includes/widgets/class-ecwid-widget-product-browser.php:12 msgid "Online store" msgstr "Tienda en línea" #: includes/class-ecwid-store-page.php:476 msgid "%s Store Page" msgstr "Página de la tienda de %s" #: templates/advanced-settings.php:79 msgid "Integration with search on your site" msgstr "Integración con la búsqueda en su sitio web" #: templates/sync.php:130 msgid "Deleted products synchronized: %1$s out of %2$s" msgstr "Productos eliminados sincronizados: %1$s de %2$s" #: includes/class-ecwid-custom-admin-page.php:66 msgid "Themes for Ecwid" msgstr "Temas para Ecwid" #: includes/class-ecwid-custom-admin-page.php:33 msgid "Plugins for Ecwid" msgstr "Complementos para Ecwid" #: includes/class-ecwid-popup-deactivate.php:138 msgid "I use this WordPress theme: %s" msgstr "Utilizo este tema de WordPress: %s" #: includes/class-ecwid-popup-deactivate.php:132 msgid "I couldn’t find a WordPress theme that goes well with %s" msgstr "No pude encontrar un tema de WordPress adecuado para %s" #: includes/class-ecwid-product-browser.php:357 msgid "On the right" msgstr "A la derecha" #: includes/class-ecwid-product-browser.php:353 msgid "On the left" msgstr "A la izquierda" #: includes/class-ecwid-product-browser.php:349 msgid "Filters panel position" msgstr "Posición del panel de filtros" #: includes/class-ecwid-product-browser.php:209 msgid "Default product_ID" msgstr "ID del producto predeterminado" #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:73 msgid "Cart icon" msgstr "Icono del carrito de compras" #: templates/shortcode-stub-store.tpl.php:4 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:20 #: js/gutenberg/blocks.build.js:1 msgid "Store Home Page" msgstr "Página de inicio de la tienda" #: ecwid-shopping-cart.php:431 msgid "Edit Category" msgstr "Editar categoría" #: ecwid-shopping-cart.php:430 msgid "Edit Product" msgstr "Editar producto" #: includes/class-ecwid-admin.php:142 includes/class-ecwid-admin.php:143 msgid "Online Store Apps" msgstr "Aplicaciones de la tienda en línea" #. Plugin Name of the plugin msgid "Ecwid Ecommerce Shopping Cart" msgstr "Carrito de compras del comercio electrónico de Ecwid" #: includes/class-ecwid-custom-admin-page.php:58 includes/faq_entries.php:76 msgid "Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href=\"%s\">TemplateMonster themes</a>" msgstr "Ecwid es compatible con cualquier tema de WordPress. Ya sea un tema gratuito del catálogo de WordPress.org, un tema prémium de un proveedor externo o un tema personalizado; su tienda de Ecwid funcionará bien con cualquiera de ellos. Si desea un tema prémium, le recomendamos <a href=\"%s\">temas de TemplateMonster</a>." #: includes/faq_entries.php:74 msgid "Is there a WordPress theme for Ecwid?" msgstr "¿Existe algún tema de WordPress para Ecwid?" #: templates/admin-footer.php:19 msgid "<a href=\"admin.php?page=" msgstr "<a href=\"admin.php?page=" #: includes/integrations/class-ecwid-integration-gutenberg.php:113 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:25 msgid "You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href=\"%1$s\">Appearance → Customize → %2$s</a>” menu to enable it." msgstr "Puede habilitar un «widget» adicional del icono de la bolsa de compras que aparecerá en las páginas de su sitio web. Abra el menú «<a href=\"%1$s\">Apariencia → Personalizar → %2$s</a>» para habilitarlo." #: includes/integrations/class-ecwid-integration-gutenberg.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:18 msgctxt "gutenberg-store-block-stub" msgid "Store" msgstr "Tienda" #: includes/class-ecwid-product-browser.php:472 msgid "Image feed" msgstr "Canal de imagen" #: includes/class-ecwid-product-browser.php:467 msgid "Vertical thumbnails" msgstr "Miniaturas verticales" #: includes/class-ecwid-product-browser.php:462 msgid "Horizontal thumbnails" msgstr "Miniaturas horizontales" #: includes/class-ecwid-product-browser.php:452 msgid "3 columns, image on the right" msgstr "3 columnas, imagen a la derecha" #: includes/class-ecwid-product-browser.php:448 msgid "3 columns, image on the left" msgstr "3 columnas, imagen a la izquierda" #: includes/class-ecwid-product-browser.php:444 msgid "2 columns, image on the right" msgstr "2 columnas, imagen a la derecha" #: includes/class-ecwid-product-browser.php:440 msgid "2 columns, image on the left" msgstr "2 columnas, imagen a la izquierda" #: includes/class-ecwid-product-browser.php:429 msgid "Landscape 3:2" msgstr "Horizontal 3:2" #: includes/class-ecwid-product-browser.php:424 msgid "Landscape 4:3" msgstr "Horizontal 4:3" #: includes/class-ecwid-product-browser.php:419 msgid "Square 1:1" msgstr "Cuadrado 1:1" #: includes/class-ecwid-product-browser.php:414 msgid "Portrait 3:4" msgstr "Vertical 3:4" #: includes/class-ecwid-product-browser.php:409 msgid "Portrait 2:3" msgstr "Vertical 2:3" #: includes/class-ecwid-product-browser.php:399 msgid "L" msgstr "G" #: includes/class-ecwid-product-browser.php:395 msgid "M" msgstr "M" #: includes/class-ecwid-product-browser.php:391 msgid "S" msgstr "P" #: includes/class-ecwid-product-browser.php:381 msgid "Show on hover" msgstr "Mostrar al pasar el ratón" #: includes/class-ecwid-product-browser.php:377 msgid "Hide" msgstr "Ocultar" #: includes/class-ecwid-product-browser.php:373 msgid "Show" msgstr "Mostrar" #: includes/class-ecwid-product-browser.php:342 msgid "Background color" msgstr "Color del fondo" #: includes/class-ecwid-product-browser.php:335 msgid "Link color" msgstr "Color del enlace" #: includes/class-ecwid-product-browser.php:328 msgid "Price color" msgstr "Color del precio" #: includes/class-ecwid-product-browser.php:321 msgid "Text color" msgstr "Color del texto" #: includes/class-ecwid-product-browser.php:314 msgid "Button color" msgstr "Color del botón" #: includes/class-ecwid-product-browser.php:299 msgid "Wholesale prices" msgstr "Precios al por mayor" #: includes/class-ecwid-product-browser.php:292 msgid "\"In stock\" label" msgstr "Etiqueta de productos «En existencia»" #: includes/class-ecwid-product-browser.php:285 msgid "Available qty in stock" msgstr "Cantidad disponible en existencia" #: includes/class-ecwid-product-browser.php:278 msgid "Product quantity" msgstr "Cantidad de productos" #: includes/class-ecwid-product-browser.php:271 msgctxt "product-browser-attributes" msgid "Product price" msgstr "Precio del producto" #: includes/class-ecwid-product-browser.php:264 msgctxt "product-browser-attributes" msgid "Product SKU" msgstr "REF del producto" #: includes/class-ecwid-product-browser.php:257 msgid "Breadcrumbs" msgstr "Migas de pan" #: includes/class-ecwid-product-browser.php:241 msgid "Image gallery layout" msgstr "Diseño de la galería de imágenes" #: includes/integrations/class-ecwid-integration-gutenberg.php:391 #: includes/class-ecwid-product-browser.php:224 #: includes/class-ecwid-product-browser.php:233 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:212 msgid "Show description under the image" msgstr "Mostrar descripción debajo de la imagen" #: includes/class-ecwid-product-browser.php:216 msgid "Product page layout" msgstr "Diseño de la página de productos" #: includes/class-ecwid-product-browser.php:194 msgid "Display sort by link" msgstr "Mostrar «ordenar por enlace»" #: includes/class-ecwid-product-browser.php:186 #: includes/class-ecwid-product-browser.php:306 msgid "Display sign in link" msgstr "Mostrar el enlace de inicio de sesión" #: includes/class-ecwid-product-browser.php:178 msgid "Display footer menu" msgstr "Mostrar el menú del pie de página" #: includes/class-ecwid-product-browser.php:170 msgid "Display breadcrumbs" msgstr "Mostrar migas de pan" #: includes/class-ecwid-product-browser.php:163 js/gutenberg/blocks.build.js:1 msgid "Display search box" msgstr "Mostrar el cuadro de búsqueda" #: includes/class-ecwid-product-browser.php:156 msgid "Display categories menu" msgstr "Mostrar el menú de categorías" #: includes/class-ecwid-product-browser.php:148 msgid "Category thumbnail aspect ratio" msgstr "Relación de aspecto de la miniatura de la categoría" #: includes/class-ecwid-product-browser.php:140 msgid "Category thumbnail size" msgstr "Tamaño de la miniatura de la categoría" #: includes/class-ecwid-product-browser.php:131 msgid "Image only" msgstr "Solo imagen" #: includes/class-ecwid-product-browser.php:127 msgid "Title only" msgstr "Solo título" #: includes/class-ecwid-product-browser.php:123 msgid "Image and title on mouse over" msgstr "Imagen y título al pasar el ratón por encima" #: includes/class-ecwid-product-browser.php:119 msgid "Title on image" msgstr "Título en la imagen" #: includes/class-ecwid-product-browser.php:115 msgid "Title under image" msgstr "Título debajo de la imagen" #: includes/class-ecwid-product-browser.php:111 msgid "Category card layout" msgstr "Diseño de la ficha de categoría" #: includes/class-ecwid-product-browser.php:103 msgid "Show additional image on hover" msgstr "Mostrar imagen adicional al pasar el ratón" #: includes/class-ecwid-product-browser.php:95 msgid "Buy now buttons" msgstr "Botones de «Comprar ahora»" #: includes/class-ecwid-product-browser.php:87 msgid "Product SKU" msgstr "REF del producto" #: includes/class-ecwid-product-browser.php:79 msgid "Product price" msgstr "Precio del producto" #: includes/class-ecwid-product-browser.php:71 msgid "Product title" msgstr "Título del producto" #: includes/class-ecwid-product-browser.php:61 msgid "Justify" msgstr "Justificado" #: includes/class-ecwid-product-browser.php:56 msgid "Right" msgstr "Derecha" #: includes/class-ecwid-product-browser.php:51 msgid "Center" msgstr "Centrado" #: includes/class-ecwid-product-browser.php:46 msgid "Left" msgstr "Izquierda" #: includes/class-ecwid-product-browser.php:42 msgid "Product card text align" msgstr "El texto de la ficha del producto se alinea" #: includes/class-ecwid-product-browser.php:34 msgid "Show product card border" msgstr "Mostrar el borde de la ficha del producto" #: includes/class-ecwid-product-browser.php:26 msgid "Product thumbnail aspect ratio" msgstr "Relación de aspecto de la miniatura del producto" #: includes/class-ecwid-product-browser.php:18 msgid "Product thumbnail size" msgstr "Tamaño de la miniatura del producto" #: includes/class-ecwid-product-browser.php:10 msgid "Show product thumbnails" msgstr "Mostrar miniaturas de los productos" #. Author of the plugin msgid "Ecwid Ecommerce" msgstr "Comercio electrónico Ecwid" #: templates/importer/woo-summary.tpl.php:34 msgid "After import, your %s store will have " msgstr "Después de la importación, su tienda de %s tendrá " #: templates/importer/woo-summary.tpl.php:21 msgid "Your %s store has " msgstr "Su tienda de %s tiene " #: templates/importer/woo-summary.tpl.php:10 msgid "Your WooCommerce store has " msgstr "Su tienda de WooCommerce tiene " #: includes/integrations/class-ecwid-integration-elementor.php:64 #: includes/integrations/class-ecwid-integration-divibuilder.php:25 #: includes/integrations/class-ecwid-integration-gutenberg.php:94 msgid "%s Store" msgstr "Tienda de %s" #: includes/importer/class-ecwid-import-page.php:184 msgid "%s products" msgstr "%s productos" #: includes/importer/class-ecwid-import-page.php:178 msgid "%s products and %s categories" msgstr "%s productos y %s categorías" #: includes/class-ecwid-stub-renderer.php:27 #: includes/class-ecwid-admin-storefront-page.php:272 msgid "Product" msgstr "Producto" #: includes/class-ecwid-message-manager.php:278 #: includes/class-ecwid-message-manager.php:297 #: includes/class-ecwid-message-manager.php:318 msgid "Warning: some of your online store features are disabled. Please contact your hosting provider to resolve." msgstr "Advertencia: algunas de las funciones de su tienda en línea están inhabilitadas. Póngase en contacto con su proveedor de alojamiento web para resolverlo." #: templates/admin/legacy-connect.tpl.php:39 msgid "Create new account" msgstr "Crear una nueva cuenta" #: templates/admin/legacy-connect.tpl.php:33 msgid "Register at %s" msgstr "Registrarse en %s" #: includes/class-ecwid-floating-minicart.php:155 msgid "Bottom left" msgstr "Abajo a la izquierda" #: includes/class-ecwid-floating-minicart.php:154 msgid "Top left" msgstr "Arriba a la izquierda" #: includes/class-ecwid-floating-minicart.php:113 msgid "Show on all pages" msgstr "Mostrar en todas las páginas" #: includes/class-ecwid-floating-minicart.php:112 msgid "Show on store pages" msgstr "Mostrar en las páginas de la tienda" #: includes/class-ecwid-floating-minicart.php:111 msgid "Do not show" msgstr "No mostrar" #: includes/class-ecwid-customizer.php:134 msgid "Vertical indent" msgstr "Sangría vertical" #: includes/class-ecwid-customizer.php:123 msgid "Horizontal indent" msgstr "Sangría horizontal" #: includes/class-ecwid-customizer.php:97 msgid "Icon" msgstr "Icono" #: includes/class-ecwid-customizer.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:79 msgid "Border" msgstr "Borde" #: includes/class-ecwid-customizer.php:72 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:67 msgid "Layout" msgstr "Diseño" #: includes/class-ecwid-customizer.php:61 msgid "Show when empty" msgstr "Mostrar cuando esté vacío" #: includes/class-ecwid-customizer.php:49 msgid "Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The \"Show on store pages\" and \"Show when empty\" options will apply to the cart widget on site when published" msgstr "Nota: cuando está habilitado, el «widget» del carrito siempre se mostrará en la vista previa para que sea más fácil personalizarlo. Las opciones «Mostrar en las páginas de la tienda» y «Mostrar cuando esté vacío» se aplicarán al «widget» del carrito en el sitio cuando se publiquen" #: includes/class-ecwid-customizer.php:47 msgid "Display shopping cart" msgstr "Mostrar el carrito de compras" #: includes/class-ecwid-customizer.php:35 msgid "Shopping Cart Widget" msgstr "«Widget» del carrito de compras" #. Author URI of the plugin msgid "https://ecwid.to/ecwid-site" msgstr "https://ecwid.to/ecwid-site" #: templates/product-popup.php:247 msgid "selected product" msgstr "producto seleccionado" #: templates/product-popup.php:138 templates/product-popup.php:143 msgid "Selected Product" msgstr "Producto seleccionado" #: templates/product-popup.php:124 msgid " Choose another product" msgstr " Elegir otro producto" #: templates/importer/landing.tpl.php:20 msgid "Import your WooCommerce catalog to %s" msgstr "Importe su catálogo de WooCommerce a %s" #: includes/widgets/nsf-minicart-editor.tpl.php:35 msgid "Border:" msgstr "Borde:" #: includes/widgets/nsf-minicart-editor.tpl.php:19 msgid "Cart icon:" msgstr "Icono del carrito:" #: includes/widgets/nsf-minicart-editor.tpl.php:3 msgid "Layout:" msgstr "Diseño:" #: includes/class-ecwid-floating-minicart.php:145 msgid "No border" msgstr "Sin borde" #: includes/class-ecwid-floating-minicart.php:144 msgid "Pill" msgstr "Píldora" #: includes/class-ecwid-floating-minicart.php:143 msgid "Rectangle" msgstr "Rectángulo" #: includes/class-ecwid-floating-minicart.php:136 msgid "Basket" msgstr "Cesta" #: includes/class-ecwid-floating-minicart.php:134 msgid "Bag" msgstr "Bolsa" #: includes/class-ecwid-floating-minicart.php:127 msgid "Icon, label, item count, subtotal and link" msgstr "Icono, etiqueta, total de artículos, subtotal y enlace" #: includes/class-ecwid-floating-minicart.php:126 msgid "Icon, label, item count and subtotal" msgstr "Icono, etiqueta, total de artículos y subtotal" #: includes/class-ecwid-floating-minicart.php:125 msgid "Icon, label and item count" msgstr "Icono, etiqueta y total de artículos" #: includes/class-ecwid-floating-minicart.php:124 msgid "Icon and item count" msgstr "Icono y total de artículos" #: includes/class-ecwid-floating-minicart.php:123 msgid "Label and item count" msgstr "Etiqueta y y total de artículos" #: includes/class-ecwid-floating-minicart.php:122 msgid "Item count only" msgstr "Solo el total de artículos" #: includes/class-ecwid-floating-minicart.php:121 msgid "Small icon and item count" msgstr "Icono pequeño y total de artículos" #: includes/class-ecwid-floating-minicart.php:120 msgid "Small icon" msgstr "Icono pequeño" #: includes/widgets/class-ecwid-widget-minicart.php:9 msgid "Shopping Cart (deprecated)" msgstr "Carrito de compras (descontinuado)" #: includes/widgets/class-ecwid-widget-minicart-miniview.php:9 msgid "Shopping Cart Mini (deprecated)" msgstr "Carrito de compras en miniatura (descontinuado)" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:21 msgid "Shopping Cart Floating (deprecated)" msgstr "Carrito de compras flotante (descontinuado)" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:69 msgid "Displays storefront: product listing and checkout" msgstr "Muestra el escaparate virtual: listado de productos y pago" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:67 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:70 msgctxt "vc-tab" msgid "Online store" msgstr "Tienda en línea" #: includes/integrations/class-ecwid-integration-gutenberg.php:105 #: includes/gutenberg/class-ecwid-gutenberg.php:131 msgid "Your product" msgstr "Su producto" #: templates/shortcode-stub-store.tpl.php:18 #: includes/integrations/class-ecwid-integration-gutenberg.php:103 #: includes/widgets/class-ecwid-widget-product-browser.php:11 #: includes/gutenberg/class-ecwid-gutenberg.php:129 msgid "Your store will be shown here" msgstr "Su tienda se mostrará aquí" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:31 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:101 #: includes/integrations/class-ecwid-integration-gutenberg.php:101 #: includes/gutenberg/class-ecwid-gutenberg.php:127 #: js/gutenberg/blocks.build.js:1 msgid "Choose product" msgstr "Elegir producto" #: includes/integrations/class-ecwid-integration-gutenberg.php:97 #: includes/gutenberg/class-ecwid-gutenberg.php:123 msgid "%s product" msgstr "%s producto" #: templates/wp-toolbox.tpl.php:4 msgid "Take advantage of powerful apps and extensions designed to enhance your store." msgstr "Aproveche las increíbles aplicaciones y extensiones diseñadas para mejorar su tienda." #: templates/wp-toolbox.tpl.php:3 msgid "Extensions for your Store" msgstr "Extensiones para su tienda" #: templates/importer/woo-summary.tpl.php:6 msgid "Import summary" msgstr "Resumen de la importación" #: templates/importer/woo-main.tpl.php:19 msgid "This import will copy your WooCommerce products and categories to your %s store." msgstr "Esta importación copiará sus productos y categorías de WooCommerce a su tienda de %s." #: templates/importer/woo-main.tpl.php:62 msgid "Importing %s of %s items" msgstr "Importando %s de %s artículos" #: templates/importer/woo-complete-alert.tpl.php:27 msgid "Some of the items could not be imported." msgstr "Algunos de los artículos no se pudieron importar." #: templates/importer/landing.tpl.php:33 msgid "Learn more" msgstr "Más información" #: templates/importer/landing.tpl.php:33 msgid "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" msgstr "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" #: templates/importer/landing.tpl.php:31 msgid "Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center" msgstr "Ecwid le permite subir sus productos en forma de archivo CSV. Obtenga más información sobre esta herramienta en el centro de asistencia de Ecwid" #: templates/importer/landing.tpl.php:29 msgid "Import product catalog from other sources" msgstr "Importar el catálogo de productos de otras fuentes" #: templates/importer/landing.tpl.php:23 msgid "(You will be able to confirm the changes before the actual import)" msgstr "(podrá confirmar los cambios antes de la importación definitiva)" #: templates/importer/landing.tpl.php:12 msgid "We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?" msgstr "Notamos que tiene un WooCommerce instalado. Su tienda de WooCommerce tiene %1$s productos y %2$s categorías; ¿le gustaría importarlos a %3$s?" #: templates/importer/landing.tpl.php:9 msgid "Import product catalog from WooCommerce" msgstr "Importar el catálogo de productos de WooCommerce" #: templates/importer/landing.tpl.php:4 msgid "Here, we will help you uploading your product catalog to %s from another shopping cart or other sources." msgstr "Aquí, le ayudaremos a subir su catálogo de productos a %s de otro carrito de compras u otras fuentes." #: templates/importer/landing.tpl.php:1 msgid "Import products to your %s store" msgstr "Importe los productos a su tienda de %s" #: templates/dashboard-blog-posts.tpl.php:20 msgid "Knowledge Base" msgstr "Base de conocimiento" #: templates/dashboard-blog-posts.tpl.php:19 msgid "https://support.ecwid.com/hc/en-us" msgstr "https://support.ecwid.com/hc/en-us" #: templates/dashboard-blog-posts.tpl.php:14 msgid "https://www.ecwid.com/blog" msgstr "https://www.ecwid.com/blog" #: includes/importer/class-ecwid-import.php:39 msgid "Bulk import products and categories to your %s store" msgstr "Importar en masa productos y categorías a su tienda de %s" #: includes/importer/class-ecwid-import.php:38 msgid "%s products and categories" msgstr "%s productos y categorías" #: templates/importer/woo-main.tpl.php:36 #: includes/importer/class-ecwid-import-page.php:52 #: includes/importer/class-ecwid-import-page.php:53 msgid "Import your products from WooCommerce to %s" msgstr "Importe sus productos de WooCommerce a %s" #: includes/importer/class-ecwid-import-page.php:42 #: includes/importer/class-ecwid-import-page.php:43 msgid "Import" msgstr "Importar" #: templates/dashboard-blog-posts.tpl.php:15 #: includes/class-ecwid-wp-dashboard-feed.php:48 msgid "%s Blog" msgstr "Blog de %s" #: includes/class-ecwid-message-manager.php:345 msgid "No Thanks" msgstr "No, gracias" #: includes/class-ecwid-message-manager.php:343 msgid "Import my products from WooCommerce" msgstr "Importar mis productos de WooCommerce" #: includes/class-ecwid-message-manager.php:341 msgid "We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you." msgstr "Notamos que tiene WooCommerce instalado. Si desea copiar fácilmente sus productos de WooCommerce a %s, esta herramienta le ayudará." #: includes/class-ecwid-message-manager.php:340 msgid "Need help importing your products from WooCommerce to %s?" msgstr "¿Necesita ayuda para importar sus productos de WooCommerce a %s?" #: includes/class-ecwid-admin.php:213 includes/class-ecwid-admin.php:214 msgid "Customers" msgstr "Clientes" #: templates/help.php:28 msgid "or <a %s>Browse the Help Center" msgstr "o <a %s>consulte el centro de asistencia" #: templates/admin/welcome-connection-message.php:5 msgid "To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission." msgstr "Para mostrar su tienda en este sitio web, debe permitir que WordPress acceda a sus productos de %1$s. Pulse «Conectar» para otorgar el permiso." #: includes/faq_entries.php:40 msgid "Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target=\"_blank\" href=\"%s\">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans." msgstr "Nuestros 4 tipos de cuentas varían según la cantidad de productos, los tipos de funcionalidades y el nivel de asistencia. Para obtener más información, consulte nuestra <a target=\"_blank\" href=\"%s\">página de precios.</a><br /><br />Consejo profesional: también puede ahorrar dinero si se suscribe a nuestros planes anuales." #: includes/class-ecwid-popup-deactivate.php:59 msgid "[%s] WordPress plugin deactivation feedback (store ID: %s)" msgstr "[%s] Comentarios sobre la desactivación del complemento de WordPress (ID de la tienda: %s)" #: includes/class-ecwid-message-manager.php:289 msgid "Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data." msgstr "Su escaparate virtual (listado de productos y página de pago) está funcionando bien, pero las funciones avanzadas de la tienda, como el SEO y los «widgets» de la barra lateral, están inhabilitadas. Para habilitarlas y asegurarse de que su tienda funcione correctamente, pulse el botón de abajo para conectar su cuenta de %s. Esto tomará menos de un minuto; solo se le pedirá que inicie sesión en su cuenta y permita que este sitio web obtenga los datos de su tienda." #: includes/class-ecwid-message-manager.php:288 msgid "Action required: please connect your %s account" msgstr "Acción requerida: conecte su cuenta de %s" #: templates/popup/deactivate.php:24 msgid "Contact Support" msgstr "Ponerse en contacto con la asistencia" #: templates/popup/deactivate.php:1 msgid "If you have a moment, please let us know why you are deactivating:" msgstr "Si tiene un momento, háganos saber por qué está desactivando:" #: templates/admin/welcome-create.php:4 msgid "Create Store" msgstr "Crear tienda" #: templates/advanced-settings.php:1 msgid "%s — Advanced settings" msgstr "%s — Configuración avanzada" #: includes/widgets/class-ecwid-widget-random-products.php:10 msgid "Displays a list of random products." msgstr "Muestra una lista de productos aleatorios." #: includes/widgets/class-ecwid-widget-random-products.php:9 msgid "Random Products" msgstr "Productos aleatorios" #: includes/widgets/class-ecwid-widget-random-product.php:9 #: includes/widgets/class-ecwid-widget-random-product.php:64 msgid "Random Product" msgstr "Producto aleatorio" #: includes/widgets/class-ecwid-widget-random-product.php:8 msgid "Displays a random product from your store to attract customer attention." msgstr "Muestra un producto aleatorio de su tienda para atraer la atención del cliente." #: includes/widgets/class-ecwid-widget-latest-products.php:10 msgid "Displays the latest added products from your store. Show new products to returning customers to drive repeat sales." msgstr "Muestra los últimos productos añadidos de su tienda. Muestre nuevos productos a los clientes existentes para impulsar las ventas repetidas." #: includes/widgets/class-ecwid-widget-latest-products.php:9 msgid "Latest Products" msgstr "Últimos productos" #: includes/class-ecwid-popup-deactivate.php:164 msgid "Can you share your feedback? What was wrong?" msgstr "¿Podría compartir su opinión? ¿Qué fue lo que pasó?" #: includes/class-ecwid-popup-deactivate.php:161 msgid "Other" msgstr "Otro" #: includes/class-ecwid-popup-deactivate.php:155 msgid "It's a temporary deactivation. Please do not ask me again." msgstr "Es una desactivación temporal. No preguntarme de nuevo." #: includes/class-ecwid-popup-deactivate.php:152 msgid "Can you share the name of the plugin you chose?" msgstr "¿Podría compartir el nombre del complemento que ha elegido?" #: includes/class-ecwid-popup-deactivate.php:149 msgid "I found a better plugin" msgstr "Encontré un mejor complemento" #: includes/class-ecwid-popup-deactivate.php:146 msgid "What feature do you need?" msgstr "¿Qué función necesita?" #: includes/class-ecwid-popup-deactivate.php:143 msgid "The plugin doesn't support the feature I want" msgstr "El complemento no es compatible con la función que quiero" #: includes/class-ecwid-popup-deactivate.php:128 msgid "What was wrong?" msgstr "¿Qué fue lo que pasó?" #: includes/class-ecwid-popup-deactivate.php:125 msgid "I have a problem using this plugin" msgstr "Tengo un problema con el uso de este complemento" #: includes/class-ecwid-popup-deactivate.php:112 msgid "Before You Go" msgstr "Antes de que se vaya" #: templates/admin/storefront/area-navigation.php:79 #: includes/class-ecwid-popup-deactivate.php:105 msgid "Cancel" msgstr "Cancelar" #: includes/class-ecwid-popup-deactivate.php:101 msgid "Submit & Deactivate" msgstr "Enviar y desactivar" #: includes/class-ecwid-message-manager.php:244 #: includes/class-ecwid-store-page.php:568 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:51 #: ecwid-shopping-cart.php:1082 js/gutenberg/blocks.build.js:1 msgid "Set up your store" msgstr "Configure su tienda" #: templates/admin-head.php:8 includes/class-ecwid-admin.php:48 #: includes/integrations/class-ecwid-integration-gutenberg.php:45 #: includes/gutenberg/class-ecwid-gutenberg.php:69 msgid "%s" msgstr "%s" #: templates/product-popup.php:199 js/gutenberg/blocks.build.js:1 msgid "«Buy now» button" msgstr "Botón de «Comprar ahora»" #: templates/admin/simple-dashboard.php:10 msgid "%s Shopping Cart" msgstr "Carrito de compras de %s" #: templates/advanced-settings.php:42 msgid "Please subscribe to a paid plan to get this feature." msgstr "Suscríbase a un plan de pago para obtener esta función." #: templates/admin-footer.php:9 msgid "Get %s mobile app" msgstr "Descargue la aplicación móvil de %s" #: includes/class-ecwid-message-manager.php:272 msgid "Rate %s at WordPress.org" msgstr "Tasa de %s en WordPress.org" #: includes/class-ecwid-message-manager.php:268 msgid "Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site." msgstr "¿Le gusta su tienda de %s en línea? Apreciaríamos si comparte su opinión y vota por el complemento en el sitio de WordPress." #: includes/class-ecwid-message-manager.php:260 msgid "To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings." msgstr "Para añadir funciones adicionales a su tienda, arrastre y suelte los elementos de la tienda de %s en su sitio web. Una vez que haya terminado, puede volver a modificar su configuración." #: templates/sync.php:114 msgid "Provide access." msgstr "Otorgar acceso." #: templates/sync.php:113 msgid "To enable this feature, the plugin needs a permission to read your store product information." msgstr "Para habilitar esta función, el complemento necesita un permiso para leer la información del producto de su tienda." #: templates/product-popup.php:137 templates/product-popup.php:147 msgid "Choose Product" msgstr "Elegir producto" #: templates/product-popup.php:96 msgid "Try another search." msgstr "Intente otra búsqueda." #: templates/sync.php:152 msgid "Not synchronized yet" msgstr "No se ha sincronizado todavía" #: templates/sync.php:149 msgid "Last update" msgstr "Última actualización" #: templates/sync.php:145 msgid "Products are successfully synchronized. The product pages are up to date." msgstr "Los productos se sincronizaron satisfactoriamente. Las páginas de productos están actualizadas." #: templates/sync.php:138 msgid "Products synchronized: %1$s out of %2$s" msgstr "Productos eliminados sincronizados: %1$s de %2$s" #: templates/sync.php:126 msgid "We're synchronizing your products. This may take a few minutes. Please do not reload the page." msgstr "Estamos sincronizando sus productos. Esto puede tardar unos minutos. No actualice la página." #: templates/sync.php:119 msgid "Synchronize products" msgstr "Sincronizar productos" #: templates/advanced-settings.php:83 msgid "%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site." msgstr "%s almacena los datos de sus productos de forma segura en la nube. Las páginas de productos se muestran sobre la marcha cuando un cliente navega por su tienda. Por lo que, básicamente, los productos no se almacenan en el sitio web, por eso la búsqueda en el sitio web no encuentra páginas de productos mientras busca en las páginas del sitio web y en las publicaciones. Esta opción habilita un modo de almacenamiento local: los productos se almacenarán tanto en la nube como en su sitio web. Los resultados de la búsqueda en el sitio web incluirán las páginas de productos, así como las páginas o publicaciones habituales de su sitio web." #: templates/product-popup.php:243 msgid "Insert" msgstr "Insertar" #: templates/product-popup.php:242 msgid "select product" msgstr "seleccionar producto" #: templates/product-popup.php:241 templates/product-popup.php:246 msgid "customize appearance" msgstr "personalizar apariencia" #: templates/product-popup.php:224 msgid "Show price inside the \"Buy now\" button" msgstr "Mostrar el precio dentro del botón de «Comprar ahora»" #: templates/product-popup.php:229 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:62 #: js/gutenberg/blocks.build.js:1 msgid "Center align on a page" msgstr "Centrar la alineación en una página" #: templates/product-popup.php:219 js/gutenberg/blocks.build.js:1 msgid "Add border" msgstr "Añadir borde" #: templates/product-popup.php:188 js/gutenberg/blocks.build.js:1 msgid "Quantity" msgstr "Cantidad" #: templates/product-popup.php:178 js/gutenberg/blocks.build.js:1 msgid "Options" msgstr "Opciones" #: templates/product-popup.php:173 js/gutenberg/blocks.build.js:1 msgid "Picture" msgstr "Imagen" #: templates/product-popup.php:163 msgid "Choose product properties to display in widget" msgstr "Elija las propiedades del producto para mostrarlas en el «widget»" #: templates/product-popup.php:139 templates/product-popup.php:151 msgid "Customize widget" msgstr "Personalizar «widget»" #: templates/product-popup.php:97 msgid "Browse all products." msgstr "Explorar todos los productos." #: templates/product-popup.php:94 msgid "Nothing found for <span class=\"empty-page__term\">\"{{ data.term }}\"</span>" msgstr "No se ha encontrado nada en relación con <span class=\"empty-page__term\">«{{ data.term }}»</span>" #: templates/product-popup.php:80 msgid "Next page" msgstr "Página siguiente" #: templates/product-popup.php:69 msgid "Current Page" msgstr "Página actual" #: templates/product-popup.php:49 msgid "Title or SKU" msgstr "Título o REF" #: templates/product-popup.php:47 templates/product-popup.php:53 #: templates/product-popup.php:56 msgid "Search" msgstr "Buscar" #: templates/product-popup.php:29 msgid "SKU" msgstr "REF" #: templates/product-popup.php:23 msgid "Name" msgstr "Nombre" #: includes/class-ecwid-product-popup.php:150 msgid "Last Page" msgstr "Última página" #: includes/class-ecwid-product-popup.php:149 msgid "Next Page" msgstr "Página siguiente" #: includes/class-ecwid-product-popup.php:148 msgid "Previous Page" msgstr "Página anterior" #: includes/class-ecwid-product-popup.php:147 msgid "First Page" msgstr "Primera página" #: includes/class-ecwid-product-popup.php:107 msgid "Add Product" msgstr "Añadir producto" #: includes/class-ecwid-oauth.php:366 msgid "To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the \"Add product\" dialog." msgstr "A fin de poder elegir un producto para insertarlo en sus publicaciones y páginas, deberá volver a conectar su sitio a su tienda de %s. Esto solo requerirá que acepte la solicitud de permisos para que el complemento pueda listar sus productos en el cuadro de diálogo «Añadir producto»." #: templates/advanced-settings.php:54 msgid "To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>" msgstr "Para asegurarse de que su cliente puede acceder realmente a su sitio web y a la tienda, habilite el registro en las <a %s>configuraciones del sitio web</a>" #: templates/advanced-settings.php:48 msgid "To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>" msgstr "Para permitir que %s inicie la sesión de sus clientes automáticamente en su tienda, otorgue los permisos para utilizar los datos del cliente en la tienda. <a %s>Utilice este enlace para hacerlo</a>" #: templates/advanced-settings.php:39 msgid "Upgrade to get this feature" msgstr "Actualice para obtener esta función" #: templates/advanced-settings.php:32 msgid "Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again." msgstr "El inicio de sesión único les permite a sus clientes tener un inicio de sesión único para su sitio web de WordPress y su %s. Cuando alguien inicie sesión en su sitio web, también iniciará sesión automáticamente en su cuenta de cliente en la tienda sin necesidad de introducir su correo electrónico y contraseña nuevamente." #: templates/advanced-settings.php:27 msgid "Customer Single Sign-On" msgstr "Inicio de sesión único del cliente" #: includes/integrations/class-ecwid-integration-divibuilder.php:63 msgid "Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space." msgstr "Introduzca las clases CSS opcionales que se utilizarán para este módulo. Se puede utilizar una clase CSS para crear estilos CSS personalizados. Puede añadir varias clases separadas por un espacio." #: includes/integrations/class-ecwid-integration-divibuilder.php:60 msgid "CSS Class" msgstr "Clase CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:57 msgid "Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page." msgstr "Introduzca un ID de CSS opcional que se utilizará para este módulo. Se puede utilizar un ID para crear un estilo CSS personalizado o para crear enlaces a secciones particulares de su página web." #: includes/integrations/class-ecwid-integration-divibuilder.php:54 msgid "CSS ID" msgstr "ID de CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:51 msgid "This will change the label of the module in the builder for easy identification." msgstr "Esto cambiará la etiqueta del módulo en el creador para una fácil identificación." #: includes/integrations/class-ecwid-integration-divibuilder.php:49 msgid "Admin Label" msgstr "Etiqueta de administrador" #: includes/integrations/class-ecwid-integration-divibuilder.php:44 msgid "Here you can create the content that will be used within the module." msgstr "Aquí puede crear el contenido que se utilizará dentro del módulo." #: includes/integrations/class-ecwid-integration-divibuilder.php:41 msgid "Content" msgstr "Contenido" #: templates/admin-footer.php:29 msgid "<a %s>Reconnect</a>" msgstr "<a %s>Volver a conectar</a>" #: templates/help.php:15 msgid "https://support.ecwid.com/hc/en-us/search" msgstr "https://support.ecwid.com/hc/en-us/search" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:73 msgid "Browse by Category" msgstr "Buscar por categoría" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:15 msgid "Store Root Categories" msgstr "Categorías raíz de la tienda" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:14 msgid "Adds root categories list to the sidebar to let your customers navigate the store." msgstr "Añade la lista de categorías raíz a la barra lateral para que sus clientes puedan desplazarse por la tienda." #: templates/admin/welcome-connection-message.php:25 msgid "To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission." msgstr "Para vender utilizando %1$s, debe permitir que WordPress acceda al complemento %1$s. El botón «Conectar» lo redirigirá a su cuenta de %1$s donde puede otorgar el permiso." #: templates/admin-timeout.php:11 msgid "Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">our customer support team</a>." msgstr "Nuestro equipo ya está trabajando en este asunto. Actualice la página en unos minutos. Si el problema persiste, comuníquese con <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">nuestro equipo de atención al cliente</a>." #: templates/admin-timeout.php:9 msgid "Sorry we're having technical difficulties." msgstr "Le pido disculpas por las dificultades técnicas que estamos experimentando." #: includes/class-ecwid-floating-minicart.php:153 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:143 msgid "Top right" msgstr "Arriba a la derecha" #: includes/class-ecwid-floating-minicart.php:152 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:138 msgid "Bottom right" msgstr "Abajo a la derecha" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:135 #: includes/class-ecwid-customizer.php:110 msgid "Position" msgstr "Posición" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:20 msgid "Adds a shopping cart widget to the top right corner of your site." msgstr "Añada un «widget» de carrito de compras en la esquina superior derecha de su sitio web." #: templates/help.php:215 msgid "You can send a new request here." msgstr "Puede enviar una nueva solicitud aquí." #: templates/help.php:214 msgid " Thank you very much for contacting us! We will get back to you shortly." msgstr " ¡Muchas gracias por ponerse en contacto con nosotros! Nos pondremos en contacto con usted en breve." #: templates/help.php:213 msgid "Your email has been sent" msgstr "Se ha enviado su correo electrónico" #: templates/help.php:207 msgid "Send message failed" msgstr "Ocurrió un error al enviar el mensaje" #: templates/help.php:196 msgid "Send Message" msgstr "Enviar mensaje" #: templates/help.php:193 msgid "Type in your message here" msgstr "Escriba su mensaje aquí" #: templates/help.php:192 msgid "Subject" msgstr "Asunto" #: templates/help.php:186 msgid "Send a message to our support team" msgstr "Envíe un mensaje a nuestro equipo de asistencia" #: templates/help.php:177 msgid "Still have questions about Ecwid? Let us know!" msgstr "¿Todavía tiene preguntas acerca de Ecwid? ¡Háganoslo saber!" #: templates/help.php:176 msgid "Contact us" msgstr "Póngase en contacto con nosotros" #: templates/help.php:33 msgid "Frequently Asked Questions" msgstr "Preguntas frecuentes" #: templates/help.php:21 msgid "Search the Knowledge Base" msgstr "Buscar en la base de conocimientos" #: templates/help.php:17 msgid "E.g. How to set up shipping" msgstr "Por ejemplo, cómo establecer el envío" #: templates/help.php:11 msgid "How can we help you?" msgstr "¿Cómo podemos ayudarle?" #: includes/faq_entries.php:68 msgid "You can display your store on the site main page. Adjust the \"Reading\" settings of your site as described in our <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">Help Center.</a>" msgstr "Puede mostrar su tienda en la página principal del sitio web. Ajuste la configuración de «Lectura» de su sitio web como se describe en nuestro <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">centro de asistencia.</a>" #: includes/faq_entries.php:67 msgid "Is it possible to display my store on the site home page?" msgstr "¿Es posible mostrar mi tienda en la página de inicio del sitio web?" #: includes/faq_entries.php:61 msgid "To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">How to use it.</a>" msgstr "Para mostrar un solo producto en una página aparte o en una entrada de blog de su sitio web, utilice el código corto <b>[ecwid_product]</b>. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">Cómo utilizarlo</a>" #: includes/faq_entries.php:60 msgid "How to add a single product with the add to bag button to the site pages?" msgstr "¿Cómo añadir un solo producto con el botón de «añadir a la bolsa» en las páginas del sitio web?" #: includes/faq_entries.php:55 msgid "To create sitemap for your Wordpress site we suggest using <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> or <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">paid Ecwid users</a>." msgstr "Para crear un «Mapa del sitio» para su sitio web de Wordpress, le sugerimos que utilice los  complementos <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> o <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>. Estos complementos son totalmente compatibles con Ecwid y permiten generar un mapa del sitio que contiene enlaces a categorías y páginas de productos, por lo que las páginas de la tienda se indexarán más rápido. Tenga en cuenta que esta opción solo está disponible para los <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">usuarios de pago de Ecwid</a>." #: includes/faq_entries.php:54 msgid "How do I put my products in the sitemap?" msgstr "¿Cómo pongo mis productos en el mapa del sitio?" #: includes/faq_entries.php:48 msgid "You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open \"Appearance > Menus\" in your WordPress control panel and add the \"Store with Categories Menu\" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site." msgstr "Puede añadir el menú de categorías de la tienda al menú de su sitio web para ayudar a sus clientes a navegar fácilmente por su sitio web. Simplemente abra «Apariencia > Menús» en el panel de WordPress y añada el elemento «Tienda con menú de categorías» al menú de su sitio web. Aparecerá automáticamente un menú desplegable que contendrá las categorías de su tienda en su sitio web." #: includes/faq_entries.php:47 msgid "How do I add store categories to the site menu?" msgstr "¿Cómo puedo añadir categorías de tiendas al menú del sitio web?" #: includes/faq_entries.php:38 msgid "How much does Ecwid cost?" msgstr "¿Cuánto cuesta Ecwid?" #: includes/faq_entries.php:30 msgid "You can add product search box, cart widget and more on the <a href=\"%s\">\"Appearance / Widgets page\"</a> here in your site admin. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">More details.</a>" msgstr "Puede añadir un cuadro de búsqueda de productos, un «widget» de carrito y más desde la <a href=\"%s\">«Página de apariencia y widgets»</a> que se encuentra aquí en el administrador de su sitio web. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">Más detalles.</a>" #: includes/faq_entries.php:28 msgid "How can I add a cart widget to my site sidebar?" msgstr "¿Cómo puedo añadir un «widget» de carrito de compras a la barra lateral de mi sitio web?" #: includes/faq_entries.php:21 msgid "You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">More details.</a>" msgstr "Puede añadir su tienda en línea a su página empresarial de Facebook (no se necesitan complementos). Ecwid sincronizará automáticamente los productos, clientes, pedidos e inventario entre su tienda en línea de WordPress y Facebook. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">Más detalles.</a>" #: includes/faq_entries.php:20 msgid "How to set up a storefront on Facebook with Ecwid?" msgstr "¿Cómo crear una tienda en Facebook con Ecwid?" #: includes/faq_entries.php:13 msgid "Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">More details.</a>" msgstr "Ecwid ofrece aplicaciones móviles gratuitas para iOS y Android para que pueda gestionar su tienda y vender donde y cuando quiera. Escanee productos, supervise el inventario, gestione las ventas y acepte pagos utilizando su dispositivo móvil como una estación de punto de venta. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">Más detalles.</a>" #: includes/faq_entries.php:12 msgid "How can I manage my store from a mobile device?" msgstr "¿Cómo puedo gestionar mi tienda desde un dispositivo móvil?" #: includes/faq_entries.php:6 msgid "Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">More details.</a>" msgstr "Ecwid cuenta con la certificación PCI DSS Nivel 1, que es el estándar de oro para las soluciones de comercio electrónico en todo el mundo. Esto significa que no tendrá problemas de cumplimiento bancario cuando venda en línea con Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">Más detalles.</a>" #: includes/faq_entries.php:5 msgid "How secure is this plugin? Is my store PCI DSS compliant?" msgstr "¿Qué tan seguro es este complemento? ¿Mi tienda cumple con el PCI DSS?" #: includes/class-ecwid-nav-menus.php:32 msgid "Ecwid Menu Item" msgstr "Elemento del menú de Ecwid" #: includes/class-ecwid-admin.php:179 includes/class-ecwid-admin.php:180 msgid "Help" msgstr "Ayuda" #: templates/admin-footer.php:27 msgid "Want to connect another %s store?" msgstr "¿Desea conectar otra tienda de %s?" #: templates/admin-footer.php:17 msgid "Questions?" msgstr "¿Tiene alguna pregunta?" #: templates/admin-footer.php:6 msgid "Manage Store on iPhone, iPad or Android" msgstr "Gestione la tienda desde iPhone, iPad o Android" #: includes/class-ecwid-message-manager.php:254 msgid "Complete Setup" msgstr "Completar configuración" #: includes/class-ecwid-message-manager.php:253 msgid "Complete setup and start selling" msgstr "Complete la configuración y comience a vender" #: includes/class-ecwid-message-manager.php:242 msgid "Greetings! Your %s plugin is now active." msgstr "¡Enhorabuena! Su complemento de %s ya está activo." #: templates/debug.php:12 msgid "Download log file" msgstr "Descargar archivo de registro" #: templates/help.php:67 includes/oembed.php:75 includes/oembed.php:104 msgid "See more" msgstr "Ver más" #: ecwid-shopping-cart.php:1051 msgid "I have a problem with my %s store" msgstr "Tengo un problema con mi tienda de %s" #: includes/class-ecwid-message-manager.php:55 msgid "Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: \"The Wordpress function wp_remote_post() failed to connect a remote server because of some error: \"%s\". Seems like HTTP POST requests are disabled on this server\". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>." msgstr "Lo siento, hay un problema. Se supone que esta página muestra el panel de control de su tienda; sin embargo, este sitio web de Wordpress no parece poder conectarse al servidor de Ecwid para mostrar el panel de su tienda aquí. Es probable que esto se deba a una mala configuración del servidor; su proveedor de alojamiento web puede solucionarlo. Aquí hay una descripción más técnica del problema, la cual puede enviarle a su proveedor de alojamiento web: «La función de Wordpress wp_remote_post() no pudo conectarse a un servidor remoto debido al error: “%s”; parece que las solicitudes HTTP POST están inhabilitadas en este servidor». <br /><br />No dude en ponerse en contacto con nosotros en <a %s>wordpress@ecwid.com</a> y le ayudaremos a comunicarse con su proveedor de alojamiento web para pedirle que solucione el problema. <br /><br /> Mientras tanto, para gestionar su tienda, puede utilizar el panel de control web de Ecwid en <a %s>my.ecwid.com</a>. Su escaparate virtual está funcionando bien; puede echarle un vistazo aquí: <a %s>%s</a>." #: templates/store-popup.php:249 msgid "Open store dashboard" msgstr "Abrir el panel de la tienda" #: templates/store-popup.php:12 templates/store-popup.php:27 msgid "Store elements" msgstr "Elementos de la tienda" #: templates/reconnect-sso.php:10 msgid "Re-connect to Enable Control Panel" msgstr "Vuélvase a conectar para activar el panel de control" #: templates/reconnect-sso.php:8 msgid "Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page." msgstr "Gestione productos, supervise las ventas y ajuste la configuración: <nobr>todo sin</nobr> salir de esta página." #: templates/reconnect-sso.php:7 msgid "Your store Control Panel. Right here in WordPress." msgstr "Panel de control de su tienda. Aquí mismo en WordPress." #: ecwid-shopping-cart.php:2114 msgid "Orders" msgstr "Pedidos" #: includes/class-ecwid-nav-menus.php:168 ecwid-shopping-cart.php:2118 msgid "The store top-level categories are automatically added to this drop-down menu" msgstr "Las categorías de alto nivel de la tienda se añaden automáticamente a este menú desplegable" #: includes/class-ecwid-nav-menus.php:167 ecwid-shopping-cart.php:2117 msgid "Done" msgstr "Hecho" #: includes/class-ecwid-nav-menus.php:166 ecwid-shopping-cart.php:2116 msgid "Refresh categories list" msgstr "Actualizar la lista de categorías" #: includes/class-ecwid-nav-menus.php:165 msgid "Store Page" msgstr "Página de la tienda" #: includes/class-ecwid-nav-menus.php:319 msgid "Add to Menu" msgstr "Añadir al menú" #: includes/class-ecwid-nav-menus.php:316 msgid "Select All" msgstr "Seleccionar todo" #: includes/class-ecwid-nav-menus.php:369 msgid "Store with Categories Menu" msgstr "Tienda con menú de categorías" #: includes/class-ecwid-nav-menus.php:352 #: includes/class-ecwid-nav-menus.php:355 msgid "My Account" msgstr "Mi cuenta" #: includes/class-ecwid-nav-menus.php:335 #: includes/class-ecwid-floating-minicart.php:135 #: includes/class-ecwid-admin-storefront-page.php:279 msgid "Cart" msgstr "Carrito" #: includes/class-ecwid-admin.php:87 includes/class-ecwid-admin.php:88 #: includes/class-ecwid-products.php:228 ecwid-shopping-cart.php:2112 msgid "Products" msgstr "Productos" #: includes/class-ecwid-admin.php:79 includes/class-ecwid-admin.php:80 msgid "Sales" msgstr "Ventas" #: ecwid-shopping-cart.php:1119 msgid "Report a problem with the store" msgstr "Informar un problema con la tienda" #: ecwid-shopping-cart.php:1036 msgid "%s plugin doesn't work well with my \"%s\" theme" msgstr "El complemento %s no funciona bien con mi tema «%s»" #: templates/admin/welcome-connection-message.php:22 #: templates/admin/welcome-connection-message.php:28 msgid "Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL." msgstr "Parece que su sitio web no admite solicitudes POST remotas, las cuales son necesarias para que la API de %s funcione. Comuníquese con su proveedor de alojamiento web para habilitar cURL." #. Description of the plugin msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up." msgstr "Ecwid es un carrito de compras gratuito con todas las funciones. Se puede integrar fácilmente con cualquier blog de Wordpress y se configura en menos de 5 minutos." #. Plugin URI of the plugin msgid "http://www.ecwid.com?partner=wporg" msgstr "http://www.ecwid.com?partner=wporg" #: templates/store-svg.php:12 msgid "Demo Store" msgstr "Tienda de demostración" #: templates/store-svg.php:9 msgid "Your store will be shown here!" msgstr "¡Su tienda se mostrará aquí!" #: templates/product-popup.php:248 templates/store-popup.php:256 msgid "Update" msgstr "Actualizar" #: templates/store-popup.php:253 msgid "Insert into page" msgstr "Insertar en la página" #: templates/store-popup.php:246 msgid "Demo store" msgstr "Tienda de demostración" #: templates/store-popup.php:80 msgid "Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>" msgstr "Además, puede añadir controles de la tienda a la barra de herramientas de su sitio web mediante <a %s>«widgets» nativos de WordPress</a>." #: templates/store-popup.php:74 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:86 msgid "Show categories" msgstr "Mostrar categorías" #: templates/store-popup.php:66 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:94 msgid "Show minicart" msgstr "Mostrar minicarrito" #: templates/store-popup.php:58 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:78 msgid "Show search" msgstr "Mostrar búsqueda" #: templates/store-popup.php:53 msgid "Product catalog will be shown automatically" msgstr "El catálogo de productos se mostrará automáticamente" #: templates/store-popup.php:52 msgid "Choose widgets to show" msgstr "Elija los «widgets» a mostrar" #: templates/admin/welcome-create.php:7 msgid "Connect your store" msgstr "Conecte su tienda" #: templates/admin/welcome-no_oauth.php:6 #: templates/importer/import-no-token.tpl.php:6 #: includes/class-ecwid-message-manager.php:291 msgid "Connect" msgstr "Conectar" #: templates/admin/legacy-connect.tpl.php:68 msgid "Save and connect your %s store to the site" msgstr "Guarde y conecte su tienda de %s al sitio web" #: templates/admin/legacy-connect.tpl.php:59 msgid "Enter your Store ID here:" msgstr "Introduzca el ID de su tienda aquí:" #: templates/admin/legacy-connect.tpl.php:52 msgid "Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the \"Dashboard\" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration." msgstr "El ID de la tienda es un identificador único de cualquier tienda de %1$s, el cual consta de varios dígitos. Puede encontrarlo en la página «Panel» del panel de control de %1$s. El ID de la tienda se enviará en el correo electrónico de bienvenida después del registro." #: templates/admin/legacy-connect.tpl.php:50 msgid "Find your Store ID" msgstr "Encuentre el ID de su tienda" #: templates/admin/legacy-connect.tpl.php:46 msgid "You will be able to sign up through your existing Google, Facebook or PayPal profiles as well." msgstr "También podrá registrarse a través de sus perfiles existentes de Google, Facebook o PayPal." #: templates/admin/legacy-connect.tpl.php:42 msgid "I already have an account, sign in" msgstr "Ya tengo una cuenta, iniciar sesión" #: templates/admin/legacy-connect.tpl.php:35 msgid "Create a new %s account which you will use to manage your store and inventory. The registration is free." msgstr "Cree una nueva cuenta de %s que utilizará para gestionar su tienda e inventario. El registro es gratuito." #: templates/admin/legacy-connect.tpl.php:24 msgid "The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps." msgstr "El primer paso para abrir su negocio en línea: <br />añadamos una tienda a su sitio web de WordPress en <strong>3</strong> simples pasos." #: templates/admin/legacy-connect.tpl.php:21 msgid "Thank you for choosing %s to build your online store" msgstr "Gracias por elegir %s para construir su tienda en línea" #: templates/admin/simple-dashboard.php:58 msgid "Open control panel" msgstr "Abrir el panel de control" #: templates/admin/simple-dashboard.php:42 msgid "Your %s store is connected<br /> to your WordPress website" msgstr "Su tienda de %s está conectada<br /> a su sitio web de WordPress" #: templates/admin/simple-dashboard.php:39 msgid "Greetings!" msgstr "¡Saludos!" #: templates/admin/simple-dashboard.php:34 msgid "Your %s store is now connected<br /> to your WordPress website" msgstr "Su tienda de %s ahora está conectada<br /> a su sitio web de WordPress" #: templates/admin/simple-dashboard.php:31 msgid "Congratulations!" msgstr "¡Enhorabuena!" #: templates/admin/simple-dashboard.php:18 msgid "Disconnect store" msgstr "Desconectar tienda" #: templates/admin/legacy-connect.tpl.php:65 #: templates/admin/simple-dashboard.php:14 templates/store-popup.php:244 #: templates/store-svg.php:14 #: includes/integrations/class-ecwid-integration-gutenberg.php:104 #: includes/gutenberg/class-ecwid-gutenberg.php:130 msgid "Store ID" msgstr "ID de la tienda" #: templates/admin/welcome-connection-message.php:15 msgid "Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again." msgstr "Error de conexión: después de hacer clic en el botón, debe iniciar sesión y otorgar los permisos para poder utilizar nuestro complemento. Inténtelo de nuevo." #: templates/admin/legacy-connect.tpl.php:57 #: templates/admin/welcome-no_oauth.php:3 msgid "Enter your Store ID" msgstr "Introduzca el ID de su tienda" #: templates/store-popup.php:221 msgid "Default view mode on search results" msgstr "Modo de vista predeterminado en los resultados de búsqueda" #: templates/store-popup.php:214 templates/store-popup.php:232 msgid "Table" msgstr "Tabla" #: templates/store-popup.php:211 templates/store-popup.php:229 msgid "List" msgstr "Lista" #: templates/store-popup.php:208 templates/store-popup.php:226 msgid "Grid" msgstr "Cuadrícula" #: templates/store-popup.php:204 msgid "Default view mode on product pages" msgstr "Modo de vista predeterminado en las páginas de productos" #: templates/store-popup.php:184 msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products." msgstr "Aquí puede gestionar cuántos productos se mostrarán por página. Estas opciones definen valores máximos. Si no hay suficiente espacio para mostrar todas las columnas de productos, %s adaptará el número de columnas para mantener todos los productos." #: templates/store-popup.php:169 msgid "Table view" msgstr "Vista de tabla" #: templates/store-popup.php:152 msgid "List view" msgstr "Vista de lista" #: templates/store-popup.php:125 msgid "Grid view" msgstr "Vista de cuadrícula" #: templates/store-popup.php:123 msgid "Number of products per page" msgstr "Número de productos por página" #: templates/store-popup.php:191 msgid "Number of categories per row" msgstr "Número de categorías por fila" #: templates/advanced-settings.php:98 msgid "Save changes" msgstr "Guardar cambios" #: includes/class-ecwid-product-browser.php:202 msgid "Default category ID" msgstr "ID de categoría predeterminada" #: templates/store-popup.php:98 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:127 #: includes/integrations/class-ecwid-integration-gutenberg.php:427 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:56 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:248 msgid "Store root category" msgstr "Categoría raíz de la tienda" #: templates/store-popup.php:90 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:101 msgid "Category shown by default" msgstr "Categoría mostrada por defecto" #: templates/admin-message.php:47 msgid "Never show this message again" msgstr "Nunca mostrar este mensaje otra vez" #: templates/product-popup.php:194 lib/ecwid_platform.php:209 #: js/gutenberg/blocks.build.js:1 msgid "Price" msgstr "Precio" #: includes/class-ecwid-store-editor.php:75 #: includes/integrations/class-ecwid-integration-gutenberg.php:102 #: includes/gutenberg/class-ecwid-gutenberg.php:128 msgid "Edit Appearance" msgstr "Editar apariencia" #: includes/class-ecwid-store-editor.php:60 msgid "Edit Store" msgstr "Editar tienda" #: templates/store-popup.php:11 templates/store-popup.php:21 #: includes/class-ecwid-store-editor.php:52 msgid "Add Store" msgstr "Añadir tienda" #: includes/class-ecwid-message-manager.php:261 msgid "Back to Store Settings" msgstr "Regresar a la configuración de la tienda" #: includes/class-ecwid-message-manager.php:252 msgid "Your store is almost ready!" msgstr "¡Su tienda ya está casi lista!" #: includes/class-ecwid-message-manager.php:243 msgid "Take a few simple steps to complete store setup" msgstr "Siga unos sencillos pasos para completar la configuración de la tienda" #: includes/widgets/class-ecwid-widget-products-base.php:205 msgid "Number of products to show" msgstr "Número de productos para mostrar" #: includes/widgets/class-ecwid-widget-recently-viewed.php:89 msgid "Store Link Title" msgstr "Título del enlace de la tienda" #: templates/product-popup.php:183 includes/class-ecwid-product-browser.php:249 #: includes/widgets/class-ecwid-widget-products-base.php:199 #: js/gutenberg/blocks.build.js:1 msgid "Title" msgstr "Título" #: includes/widgets/class-ecwid-widget-recently-viewed.php:69 #: includes/widgets/class-ecwid-widget-recently-viewed.php:91 msgid "You have not viewed any product yet. Open store." msgstr "Aún no ha visto ningún producto. Abra la tienda." #: includes/widgets/class-ecwid-widget-recently-viewed.php:11 msgid "Recently Viewed Products" msgstr "Productos vistos recientemente" #: includes/widgets/class-ecwid-widget-recently-viewed.php:12 msgid "Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop." msgstr "Muestra una lista de productos vistos recientemente por el cliente para volver fácilmente a los productos que vieron en su tienda." #: includes/widgets/class-ecwid-widget-store-link.php:35 msgid "Text" msgstr "Texto" #: includes/themes/class-ecwid-theme-twentyseventeen.php:48 #: includes/themes/class-ecwid-theme-twentyseventeen.php:54 #: includes/themes/class-ecwid-theme-twentyfifteen.php:34 #: includes/themes/class-ecwid-theme-twentyfifteen.php:40 #: includes/themes/class-ecwid-theme-twentysixteen.php:36 #: includes/themes/class-ecwid-theme-twentysixteen.php:42 #: includes/widgets/class-ecwid-widget-store-link.php:31 msgid "Shop" msgstr "Tienda" #: includes/widgets/class-ecwid-widget-store-link.php:10 msgid "Store Page Link" msgstr "Enlace a la página de la tienda" #: includes/widgets/class-ecwid-widget-store-link.php:9 msgid "Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site." msgstr "Muestra un enlace a la página de la tienda en la barra lateral para que el cliente acceda rápidamente a su tienda desde cualquier página del sitio web." #: includes/widgets/class-ecwid-widget-vcategories.php:9 msgid "Store Categories" msgstr "Categorías de la tienda" #: includes/widgets/class-ecwid-widget-vcategories.php:8 msgid "Adds vertical categories block to let the customer navigate your store." msgstr "Añade un bloque de categorías verticales para permitir que el cliente navegue por su tienda." #: includes/class-ecwid-nav-menus.php:344 #: includes/class-ecwid-nav-menus.php:347 #: includes/widgets/class-ecwid-widget-search.php:13 msgid "Product Search" msgstr "Búsqueda de productos" #: includes/widgets/class-ecwid-widget-search.php:12 msgid "Displays a simple search box for your customers to find a product in your store" msgstr "Muestra un cuadro de búsqueda simple para que sus clientes encuentren un producto en su tienda." #: includes/widgets/class-ecwid-widget-minicart-miniview.php:8 msgid "Adds a compact cart widget for customer to see the products they added to the cart." msgstr "Añade un «widget» de carrito compacto para que el cliente vea los productos que se han añadido al carrito." #: includes/widgets/class-ecwid-widget-minicart.php:41 #: includes/widgets/class-ecwid-widget-random-product.php:67 #: includes/widgets/class-ecwid-widget-search.php:46 #: includes/widgets/nsf-minicart-editor.tpl.php:50 #: includes/widgets/class-ecwid-widget-minicart-miniview.php:41 #: includes/widgets/class-ecwid-widget-vcategories.php:39 #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:76 msgid "Title:" msgstr "Título:" #: includes/class-ecwid-nav-menus.php:338 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:20 msgid "Shopping Cart" msgstr "Carrito de compras" #: includes/widgets/class-ecwid-widget-minicart.php:8 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:19 msgid "Adds a cart widget for customer to see the products they added to the cart." msgstr "Añade un «widget» de carrito para que el cliente vea los productos que se han añadido al carrito." #: includes/widgets/class-ecwid-widget-badge.php:51 #: includes/widgets/class-ecwid-widget-badge.php:63 msgid "Ecwid e-commerce widgets" msgstr "«Widget» de comercio electrónico de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:45 #: includes/widgets/class-ecwid-widget-badge.php:57 msgid "Ecwid shopping cart" msgstr "Carrito de compras de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:39 #: includes/widgets/class-ecwid-widget-badge.php:75 msgid "Ecwid free shopping cart" msgstr "Carrito de compras gratuito de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:33 #: includes/widgets/class-ecwid-widget-badge.php:69 msgid "Ecwid ecommerce solution" msgstr "Solución de comercio electrónico de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:21 #: includes/widgets/class-ecwid-widget-badge.php:27 msgid "Ecwid shopping cart widget" msgstr "«Widget» de carrito de compras de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:14 msgid "Ecwid Badge" msgstr "Distintivo de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:13 msgid "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid." msgstr "¿Le gusta Ecwid y quiere ayudarlo a crecer? Puede añadir este elegante distintivo «Powered by Ecwid» en su sitio web para mostrarles a sus visitantes que es un usuario orgulloso de Ecwid." #: ecwid-shopping-cart.php:2791 msgid "Recommendations for Your Online Store" msgstr "Recomendaciones para su tienda en línea" #: includes/class-ecwid-admin.php:528 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:77 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:87 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:95 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:103 #: ecwid-shopping-cart.php:2056 msgid "Settings" msgstr "Configuraciones" #: includes/class-ecwid-admin.php:165 msgid "Advanced" msgstr "Avanzado" #: includes/class-ecwid-admin.php:164 msgid "Advanced settings" msgstr "Configuraciones avanzadas" #: templates/product-popup.php:206 templates/store-popup.php:14 #: templates/store-popup.php:34 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:44 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:78 #: js/gutenberg/blocks.build.js:1 msgid "Appearance" msgstr "Apariencia" #: includes/class-ecwid-admin.php:28 includes/class-ecwid-admin.php:59 #: includes/class-ecwid-admin.php:459 ecwid-shopping-cart.php:2110 msgid "Dashboard" msgstr "Panel" #: includes/class-ecwid-admin.php:57 ecwid-shopping-cart.php:2056 msgid "Setup" msgstr "Configuración" #: includes/class-ecwid-admin.php:47 msgid "%s shopping cart settings" msgstr "Configuraciones del carrito de compras de %s" #: includes/class-ecwid-nav-menus.php:132 #: includes/class-ecwid-nav-menus.php:361 #: includes/class-ecwid-nav-menus.php:364 #: includes/class-ecwid-nav-menus.php:372 includes/class-ecwid-admin.php:206 #: includes/class-ecwid-admin.php:207 includes/class-ecwid-admin.php:220 #: includes/class-ecwid-admin.php:221 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:63 #: includes/class-ecwid-admin-storefront-page.php:257 #: ecwid-shopping-cart.php:1657 msgid "Store" msgstr "Tienda" #: ecwid-shopping-cart.php:1306 msgid "<a %s>Online store powered by %s</a>" msgstr "<a %s>Tienda en línea con tecnología de %s</a>" #: includes/class-ecwid-admin.php:489 msgid "Sell on Facebook" msgstr "Vender en Facebook" #: templates/admin/simple-dashboard.php:48 ecwid-shopping-cart.php:1094 msgid "Visit storefront" msgstr "Visitar escaparate virtual" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/languages/ecwid-shopping-cart-es_CR.mo������������������������������������������0000644�����������������00000225044�15122273603�0017566 0����������������������������������������������������������������������������������������������������ustar�00�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������e�����D��5��l&������@3�����A3��H���Y3�����3�����3�����3�����3�����3�� ���3��.���3�� ���4�� ��� 4�����,4�����J4�����e4����4�����g6��B���6�����6�����6�����6�����7��$���97�����^7�����r7�����7�����7��/���r8�� ���8�� ���8�����8�����8�����8�����8�����9��#���%9�� ���I9�����T9�����o9�����~9�� ���9�� ���9��>���9��"��� :�����-:�����:��k���:��K���h;��S���;��A���<��R���J<��G���<��4���<�� ���=�����&=�����/=��&���A=�����h=��T���{=�� ���=�����=�����=�����=�����>�����>�����#>�� ���*>�����8>�����?>�� ���G>�� ���S>�� ���`>�����l>�����>��4���>�� ���>�����>�����>�����>��X���>�� ���V?�����`?��/���g?��,���?�����?�����?�����?�� ���?�� ���?�����?�� ���?����� @�����@�����,@�����A@�����[@�����{@�����@�����@�����@�����@�����@�����@��.���@�����A�����5A��D���LA�����A�����A�� ���A�� ���A�����A�����A�����A����� B����� B��x���3B�����B�� ���B�����B�� ���B�����B�����C�����C�����*C�� ���=C�����JC��5���\C��h���C�����C�����D�� ���D�� ���D��5���D�����E�� ���E��x���%E��i���E�����F�����F�����4F�����QF�����bF�����F�� ���F�����F�����G�����$G��"���7G��#���ZG��/���~G�� ���G�� ���G�����G�����G�����G�����G�����H�����H�����-H�����?H��!���WH�����yH�����H��6���H��!���H�����H��*���I��%���:I�����`I��'���vI�����I�����I��,���I�����I��q���J��s���yJ��#���J��H���K��O���ZK��1���K��s���K�� ���PL�����\L��v���L�����uM��$���zM�����M�����M�����M�� ���M�����M�����M����� N��s���N�����N�����N�����N��=��N�����P����P����Q�����R�����R����� S�����S�� ��� S�� ���.S�� ���;S�� ���FS�� ���TS�����^S�����S�����T�����T�����T��B���T��$���)U�����NU�����VU�����mU�� ���U�����U�����U�� ���U�����U�� ���U��(���U�����V�� ���V�����V�����#V��.���V�����W��D���W��h���%X�����X��_���X��C���X�����7Y�����IY��/���_Y��/���Y�����Y��/���Y��(���Z�����-Z��9���GZ��I���Z��2���Z��"���Z��:���![�����\[��"���t[��!���[�����[�����[�����[�����[��$��� \��*���1\��B���\\�����\�� ���\�����\�� ���\�����\��+���\�����]��-���,]��P���Z]�����]��#���]��'���]��)��� ^�� ���7^�����X^��%���g^��+���^��+���^�����^�����_�����_�����!_�� ���2_��$���?_��9���d_��%���_��:���_�����_�����`�����`�����&`�����(`�� ���=`�� ���K`�� ���Y`�� ���c`�����o`�����`�����`�� ���`�����`�����`�� ���`�����`�����`�� ���`�����`�����oa�����a�����a��S���a�����a��'���a��[���'b�� ���b�����b�� ���b�����b�� ���b�� ���b�����b�����b�� ���b��9���b�����c�� ���:c�� ���Dc�� ���Nc�� ���Xc�����bc�����wc��I���Jd�����d�����d�����d�� ���d�� ���d�� ���e�����e�� ��� e�����-e�����@e�����Ue�����]e�����de�����je�����if��#���Og�����sg�� ���g�����g�����lh�����th�� ���i�� ���i�����i�����%i��O��*i��4���zj�����j�� ���j�� ���j�����j�����j�� ���j�����j�� ����k����� k�����k�����'k�����:k�����Rk�� ���jk�����vk�����k�����k�����k��+���k�����k�� ��� l�����l�����*l�����Bl�����al�� ���xl�����l��I���l��'���l�����m�����m�����$m�����=m�����Em��#���Xm�� ���|m�����m�� ���m�����m�����m�����m��"���m�����m��%���n�� ���4n�����>n�����Vn�����en�����n�����n�����n�����n�����n�����n�����n��*���n�� ���n�����n�����n�����o�����o�����/o�� ���8o�����Co�����So�����do�����vo�� ���o��"���o�����o�����o�� ���o�����o�����o�����p����� p�����p�� ���"p�����0p��#���Kp�����op�����p�����p�����p�����p�����p��V���p�� ���Bq�� ���cq�����qq�� ���q�����q��&���q��(���q�����q�����r�� ���&r�����2r�� ���Br�� ��cr�� ���ns�����ys��(���s��*���s����s�� ���ow�� ���zw�����w�����w��.���$x�����Sx�����Yx�����jx�����x�����x�����x�����x�����x�����y�����z�����0z�� ���Az�����Lz�����\z�����rz�����z�����z�����z�����z�����z�����z�� ���z�����{�����{�����${�����4{�����I{�� ���O{��/���Z{��N���{�����{�� ���{��4���{�����|��=���|�����}��-���}�����}��%���~��M���~�������P�����H���h��P��������������� ����� ���"�����/�����A�����H�����ۀ������� ��4��E��>�������]��������l��%��^��*����*����y���ڊ��>���T�������h���5��L���������� ������������������,�����5�����<�����P�����l�����|�������������������������ԍ����������������� �����!��� ��j���B����������E��^���ŏ�����$�����,�����F�� ���V�����c������� ���������C����B����k���@���������������V�� ������0���!��^���R�������:���Ę��>��������>�����N�����j�� �����2�����?���Ù����������֚������������y�����A��������Q�����o������:��������J�����_�� �����"��������Þ��"���ߞ��H�����)���K�����u�������&�����(���ן���������������� �����4����G�����$��e���:��'��������Ȣ�� ���ˢ�����֢�� ����������5����� ���M�� ���Y�����f�������,�������̣�����W��B���v��!��������ۦ��!����������0���=�����n����������������*���������������(�����!���1�����S��*���p�������+����� �����!����������6���)��1���`�������C�����/����������!��������2��e�����n���&��Z�����o�����^���`��R�������������,�����5��5���O�������h����� ��� �� �����!���!��)���C�����m�����}�������������������������������� ���Ӱ������������:��������O�� ���`�����n�������`����� ����� �����=�����9���W�������������������������β�� ����� ����� �����%�����!���(�����J��5���j��(��������ɳ��%���ҳ�������!���������"�����2��C���B��(����������g���ϴ�����7�����Q��.���j�������������������������ҵ������������%�����!���Ŷ�� �����!�������������-�����J�����e�� ����������8�����j��������O������� ��������(��I���7��$���������������x���@�������'���Ѻ��5��������/�����G�������������������������6��9���U��;�����0���˼���������������,�����4�����H�����b�����u�����������������2�����!�����#���5��I���Y��+��������Ͼ��6�����/���%�����U��2���s��&��������Ϳ��E��������2�����D�������*���c��P�����`�����:���@�����{�� ��� ���������������U��3���[������������'���������������5��������D�����`��,�����+��� ��$���L��t��q�������A����h�������6��)���R�����|����������������� �����$�������������������������$����������Y�����*���?�����j�����r�����������������%������������� �� ���$��4���/�� ���d�����p������������;����������D�����g��������l��p���t��Q��������7�����K��]���c��>�����������D�����1���_�������I�����g�����/���[��$�����7����������0�����%���8��"���^������������%�����/�����7�����@���1��.���r�������#����� ����������)����������>���,��h���k��!�����%�����1�����3���N��'����������(�����)�����)��������B�����a�����������������-�����E�����-���+��8���Y������� ��������������� ����������������������� �����7�����J�����R�����[�� ���m�����w������������������������������}������������s��������*��/���E��q���u������������ ��������&�� ���-�� ���7�� ���A�����L�� ���S��A���_��#��������������� ����� ����������)����c���H������� �����!���������� ��������+��#���<�����`�����q����������������������I���������%��������(�� ���:�����G����������$���������������������������9���������� ����� ����� ����� ��� ����������*�����1�����B�����K�����f��#�����%��������������� ����� �����+���5��7���a��"���������������*�����1�����$���C�����h�� ���}��a�����0�������������/�����?�����^�� ���g��4����� ������������������������������5���-�����c��(����� �����"����������"������������������ �����"�����&�����-�����>��-���F�����t�����������������"���������������������������������2�����E��0���T��&��������������������������������� ����������#��"���6��+���Y�������/�����!����������+��������(�����<��(������������������ ��$���;��8���`��8�����)�����#�������� �����2��)���N��M��x�������$�����2�����L���-��,��z�� ��������������������?���������������!�����#��������7�����V�����u��������������3�����S�����l�� �������������������������$�����$���+�����P�����n�������������������������������������G�����W���C������������8����������Y����������:���z�����'����_��������X���&�^����U�������4����<� ���Q� ���^����l������������M�����#��������� �u���= ��� �@�� �@���U��H�����P���:�����~���:�a�����������1����E����]����v� ��������$������������ ���� ��������,���6����c������������� ����#���������������(�]���� ��� ��������0� ���I����W�����V��&����}���U�`������H�+�����������'��� �2��� �^����!����_!�A���v!�G���!�����"����"�$���6"� ���["�8���g"�;���"�5��"� ���$����3$����$����$�R���%����%���� &���-&�[��� (����e(� ���}(����(�"���(����(�"���(�H���(�)���9)����c)�(���~)����)����)����)����)����)����*��������I����������������k������R��W��y����$��%���������������������������������������#�����y���R��#��������J���Z���������?���B��^��>������������������������� ��� ��3����1�����U������>�������K��q����������������������-���������������������v���8������:���/������g��d�����������������S��?�����������������������'���������,������������j��Z��������P���������W������������S���������]����������T����������� �������6�������������������r�������������c��9����������,������������������k��������������%���������������������������������������������L���"�������a����������W��t�������������������}��.������ ��$������K������G���������~���������������0������w������������E��������7����������������������������Q��������F������������������:��\�����������������O�����X��'��*��3������1������ ���������������������u������������9�����E�����������C�����������������������������?������8��a��_���b�������L������@��&������*��I��C���J�����Y���������D������������$���������;��F���������N������G������'���������������0�����@�����^��������c�����������������u����>��:��������.�����������M��j���[��S����������������4������� ������������H�������������@���������������K�����]���������P���&�������������������%���� ��c������h��X���A��������#�����������z�������3�����(����������������������������������������������Q��������e�������������-����������i���������D����p�������!��������������(������������X��5����7���������=��������������;������N���������P������������������T��������������\������Z����������������������&����� ��������� ���`�������|�����������`������������<���������e���+�������A�����=����������������������)�������Q������������������������f��!����� ���b��a���M��{�������<��7�������������������������������������H��������6��O��s���`����������9�����*���������-��}���"���������r���������0��������������{������������������������������������l��H����������v����d��/����� ��]���t���p�����2�����������d��������g������U���������C�������w���������[���l������������������������<��������� ���o���1��� ����������V��f������N�� ��E��������������������������������� �����������������������/������,��������~�����������������������!������[����n�����������_��"�����(�������2���J��x��h���_���� ��������o������M������4��=��8������������2����� ��4������������m���������������������������5��n��I���;�����)������6��L��V������������+����+��A�������������������������Y��B��F������ �������)��������m��i�����������5���^������|���z���������������������U����������x�����������\����q������������O���������������V����������b���������������������������������������Y�������������.�����D������������������B�������G��s�������������R�����T����e���������� Choose another product� Thank you very much for contacting us! We will get back to you shortly.�"In stock" label�%s�%s Blog�%s Shopping Cart�%s Store�%s Store Page�%s plugin doesn't work well with my "%s" theme�%s product�%s products�%s products and %s categories�%s products and categories�%s shopping cart settings�%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site.�%s — Advanced settings�(You will be able to confirm the changes before the actual import)�2 columns, image on the left�2 columns, image on the right�3 columns, image on the left�3 columns, image on the right�<a %s>Online store powered by %s</a>�<a %s>Reconnect</a>�<a href="admin.php?page=�<b>%s</b> categories�A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use "/shop" or "/products".�Action required: please connect your %s account�Add Product�Add Store�Add Store Page to Menu�Add a category page�Add a product page�Add a search and filters page�Add a store page�Add an Online Store to Your Website�Add border�Add cart and checkout page�Add categories�Add store page to the site menu�Add storefront (product listing)�Add to Menu�Add your %s store to the website and start selling in minutes.�Add your store to other site pages�Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href="%s" target="_blank">WordPress Settings > Reading</a>�Additional store pages�Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>�Adds a cart widget for customer to see the products they added to the cart.�Adds a compact cart widget for customer to see the products they added to the cart.�Adds a shopping cart widget to the top right corner of your site.�Adds root categories list to the sidebar to let your customers navigate the store.�Adds vertical categories block to let the customer navigate your store.�Adjust your store design to fit your business needs.�Admin Label�Advanced�Advanced settings�After import, your %s store will have �All Sales Channels�Along with the store catalog, you can add other widgets and texts to the store page.�Appearance�Apps�Available qty in stock�Back to Store Settings�Background color�Bag�Basket�Before You Go�Border�Border:�Bottom left�Bottom right�Breadcrumbs�Browse all products.�Browse by Category�Bulk import products and categories to your %s store�Button color�Buy Now�Buy Now Button�Buy now buttons�By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>.�CSS Class�CSS ID�Can you share the name of the plugin you chose?�Can you share your feedback? What was wrong?�Cancel�Cart�Cart and Checkout�Cart icon�Cart icon:�Catalog�Categories�Category�Category List Appearance�Category card layout�Category shown by default�Category thumbnail aspect ratio�Category thumbnail size�Center�Center align on a page�Change�Change store content�Choose Product�Choose product�Choose product properties to display in widget�Choose the main store page�Choose widgets to show�Click the connect button to get rights to update the product catalog�Color settings�Complete Setup�Complete setup and start selling�Configuration�Congratulations!�Connect�Connect Your Store�Connect your %s store�Connect your store�Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again.�Contact Support�Contact us�Content�Copying products and categories.�Create Cart Page�Create Category Page�Create Product Page�Create Search Page�Create Store�Create Store Page�Create a landing page featuring one of your products.�Create a new %s account which you will use to manage your store and inventory. The registration is free.�Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website.�Create new account�Create store�Current Page�Current URL slug: /<span data-ec-store-slug>%s</span>�Customer Single Sign-On�Customers�Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers.�Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout.�Customize design�Customize store appearance�Customize store page address�Customize widget�Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand.�Cyan bluish gray�Dashboard�Default category�Default category ID�Default product_ID�Default view mode on product pages�Default view mode on search results�Deleted products synchronized: %1$s out of %2$s�Demo Store�Demo store�Design�Design and content�Detect automatically�Disconnect store�Display a buy button�Display breadcrumbs�Display cart icon�Display categories menu�Display categories navigation bar�Display category page�Display footer menu�Display product page with description and a buy button�Display product with a buy button�Display search box�Display search page with filters on a side�Display shopping bag link and summary�Display shopping cart�Display shopping cart and checkout page�Display sign in link�Display sort by link�Display the shopping cart icon on site pages�Displayed product�Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site.�Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop.�Displays a list of random products.�Displays a random product from your store to attract customer attention.�Displays a simple search box for your customers to find a product in your store�Displays storefront: product listing and checkout�Displays the latest added products from your store. Show new products to returning customers to drive repeat sales.�Do not show�Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid.�Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site.�Done�Download <a href="%s">import log</a>�Download log file�Draft�E.g. How to set up shipping�Ecwid Badge�Ecwid Ecommerce�Ecwid Ecommerce Shopping Cart�Ecwid Menu Item�Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center�Ecwid e-commerce widgets�Ecwid ecommerce solution�Ecwid free shopping cart�Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">More details.</a>�Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up.�Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href="%s">TemplateMonster themes</a>�Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">More details.</a>�Ecwid shopping cart�Ecwid shopping cart widget�Edit�Edit Appearance�Edit Category�Edit Product�Edit Store�Edit URL Slug�Edit page�Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page.�Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space.�Enter your Store ID�Enter your Store ID here:�Extensions for your Store�Feature a specific store category on a separate page of your site.�Feature your products in the sidebar�Filters�Filters panel position�Find your Store ID�First Page�Frequently Asked Questions�Get %s mobile app�Go to Pages�Go to Your %s Products�Greetings!�Greetings! Your %s plugin is now active.�Grid�Grid view�Help�Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars.�Help customers find your store on the website.�Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products.�Here you can create the content that will be used within the module.�Here, we will help you uploading your product catalog to %s from another shopping cart or other sources.�Hide�Highlight products, categories, and other store pages by adding them to separate website pages.�Highlight your best sellers or new products in the website sidebar.�Horizontal indent�Horizontal thumbnails�How can I add a cart widget to my site sidebar?�How can I manage my store from a mobile device?�How can we help you?�How do I add store categories to the site menu?�How do I put my products in the sitemap?�How much does Ecwid cost?�How secure is this plugin? Is my store PCI DSS compliant?�How to add a single product with the add to bag button to the site pages?�How to set up a storefront on Facebook with Ecwid?�I already have an account, sign in�I couldn’t find a WordPress theme that goes well with %s�I found a better plugin�I have a problem using this plugin�I have a problem with my %s store�I use this WordPress theme: %s�Icon�Icon and item count�Icon, label and item count�Icon, label, item count and subtotal�Icon, label, item count, subtotal and link�If you have a moment, please let us know why you are deactivating:�Image and title on mouse over�Image feed�Image gallery layout�Image only�Import�Import Your Products From Woocommerce to %s�Import completed�Import completed. <a href="%s">Run again.</a>�Import creates new products and update the existing products with matching SKUs.�Import is in Progress�Import my products from WooCommerce�Import product catalog from WooCommerce�Import product catalog from other sources�Import products to your %s store�Import summary�Import your WooCommerce catalog to %s�Import your products from WooCommerce to %s�Import your products from Woocommerce to %s�Imported <b>%s</b> products�Importing %s of %s items�Insert�Insert into page�Instant site�Integration with search on your site�Is it possible to display my store on the site home page?�Is there a WordPress theme for Ecwid?�It's a temporary deactivation. Please do not ask me again.�Item count only�Justify�Knowledge Base�L�Label and item count�Landscape 3:2�Landscape 4:3�Last Page�Last update�Latest Products�Layout�Layout:�Learn more�Left�Light green cyan�Link color�Linked product�List�List view�Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL.�Luminous vivid amber�Luminous vivid orange�M�Make your store accessible from the site menu so your customers can easily find it.�Manage Sidebar�Manage Store on iPhone, iPad or Android�Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page.�Manage store�Manage storefront�Marketing�Mobile�My Account�My Profile�My Sales�Name�Navigation�Need help importing your products from WooCommerce to %s?�Never show this message again�Next Page�Next page�No Thanks�No border�Not synchronized yet�Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The "Show on store pages" and "Show when empty" options will apply to the cart widget on site when published�Nothing found for <span class="empty-page__term">"{{ data.term }}"</span>�Number of categories per row�Number of products per page�Number of products to show�On the left�On the right�Online Store�Online Store Apps�Online store�Open control panel�Open store dashboard�Options�Orders�Other�Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target="_blank" href="%s">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans.�Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">our customer support team</a>.�Page with that name already exists.�Pale cyan blue�Pale pink�Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>�Payment�Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers.�Pick Category�Pick Product�Picture�Pill�Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target="_blank">"Billing & Plans"</a></nobr> page in your Ecwid store control panel.�Please subscribe to a paid plan to get this feature.�Plugins for Ecwid�Portrait 2:3�Portrait 3:4�Position�Preview�Previous Page�Price�Price color�Product�Product Card Large�Product Card Small�Product List Appearance�Product Page Appearance�Product SKU�Product Search�Product Search Box�Product Search and filters�Product card text align�Product catalog will be shown automatically�Product page layout�Product price�Product quantity�Product sidebar content�Product thumbnail aspect ratio�Product thumbnail size�Product title�Products�Products are successfully synchronized. The product pages are up to date.�Products synchronized: %1$s out of %2$s�Promote your store�Provide access.�Provided by <a %s>%s</a>�Publish�Publish Store Page�Publish the page to use this option�Published�Quantity�Questions?�Random Product�Random Products�Rate %s at WordPress.org�Re-connect to Enable Control Panel�Recently Viewed Products�Recommendations for Your Online Store�Rectangle�Refresh categories list�Register at %s�Report a problem with the store�Reports�Right�S�SKU�Sales�Sales channels�Save�Save and connect your %s store to the site�Save changes�Search�Search and Filters�Search products�Search the Knowledge Base�See more�Select All�Select category�Selected Product�Selected category�Sell on Facebook�Send Message�Send a message to our support team�Send message failed�Set Up Your Store�Set manually�Set up your store�Settings�Setup�Shipping & Pickup�Shop�Shopping Cart�Shopping Cart (deprecated)�Shopping Cart Floating (deprecated)�Shopping Cart Icon�Shopping Cart Mini (deprecated)�Shopping Cart Widget�Show�Show additional image on hover�Show categories�Show customers that they can use a search and filters to find desired products faster.�Show description under the image�Show minicart�Show on all pages�Show on hover�Show on store pages�Show price inside the "Buy now" button�Show price inside the «Buy now» button�Show product card border�Show product thumbnails�Show search�Show when empty�Show your store on the home page�Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again.�Small icon�Small icon and item count�Some of the items could not be imported.�Sorry we're having technical difficulties.�Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: "The Wordpress function wp_remote_post() failed to connect a remote server because of some error: "%s". Seems like HTTP POST requests are disabled on this server". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>.�Square 1:1�Start Import�Status�Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store.�Still have questions about Ecwid? Let us know!�Store�Store Categories�Store Categories Menu�Store Category Page�Store Front Page�Store Home Page�Store ID�Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the "Dashboard" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration.�Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>.�Store Link Title�Store Navigation�Store Page�Store Page Link�Store Root Categories�Store appearance�Store elements�Store management�Store page content�Store page on your site�Store root category�Store with Categories Menu�Storefront�Subject�Submit & Deactivate�Switch to draft�Synchronize products�Table�Table view�Take a few simple steps to complete store setup�Take advantage of powerful apps and extensions designed to enhance your store.�Text�Text color�Thank you for choosing %s to build your online store�The block is hidden because you don't have categories in your store. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Add categories.</a>�The category that is shown by default on the Store Front Page�The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps.�The plugin doesn't support the feature I want�The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href="%s" target="_blank">adjust the cart icon appearance</a>.�The store is not visible on your site�The store top-level categories are automatically added to this drop-down menu�Themes for Ecwid�This import will copy your WooCommerce products and categories to your %s store.�This is a demo store. Create your store to see your store products here.�This will change the label of the module in the builder for easy identification.�Title�Title on image�Title only�Title or SKU�Title under image�Title:�To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings.�To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>.�To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>�To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the "Add product" dialog.�To create sitemap for your Wordpress site we suggest using <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> or <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target="_blank" href="https://www.ecwid.com/pricing">paid Ecwid users</a>.�To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission.�To enable this feature, the plugin needs a permission to read your store product information.�To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">How to use it.</a>�To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>�To manage your store, go to <a %s>the Store Dashboard page</a>�To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission.�To show your storefront instead of the demo store, connect your existing %s account or create a new one.�To start selling, add a page to your site where the storefront will display.�Top left�Top right�Try another search.�Type in your message here�URL Slug�Update�Update your catalog�Upgrade to get this feature�Vertical indent�Vertical thumbnails�Very dark gray�Very light gray�View Store Page�View demo store page�View store page�Visit storefront�Vivid cyan blue�Vivid green cyan�Vivid red�Want to connect another %s store?�Warning: some of your online store features are disabled. Please contact your hosting provider to resolve.�We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?�We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you.�We're synchronizing your products. This may take a few minutes. Please do not reload the page.�Website�What feature do you need?�What was wrong?�What's next?�While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site.�Wholesale prices�You can add product search box, cart widget and more on the <a href="%s">"Appearance / Widgets page"</a> here in your site admin. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">More details.</a>�You can add the entire storefront, categories, products, or "Buy now" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block.�You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open "Appearance > Menus" in your WordPress control panel and add the "Store with Categories Menu" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site.�You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">More details.</a>�You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel.�You can display your store on the site main page. Adjust the "Reading" settings of your site as described in our <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">Help Center.</a>�You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href="%1$s">Appearance → Customize → %2$s</a>” menu to enable it.�You can enable filters in the store settings: (“<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Settings → Product Filters</a>”).�You can send a new request here.�You have not viewed any product yet. Open store.�You will be able to sign up through your existing Google, Facebook or PayPal profiles as well.�Your %s store has �Your %s store is connected<br /> to your WordPress website�Your %s store is now connected<br /> to your WordPress website�Your Storefront�Your WooCommerce store has �Your email has been sent�Your product�Your store Control Panel. Right here in WordPress.�Your store has been created. Preparing your store dashboard ...�Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar.�Your store is almost ready!�Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display.�Your store page�Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders.�Your store page is published. Customers can browse your store at �Your store will be shown here�Your store will be shown here!�Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data.�[%s] WordPress plugin deactivation feedback (store ID: %s)�customize appearance�gutenberg-product-blockContent�gutenberg-store-block-stubStore�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�or <a %s>Browse the Help Center�product-browser-attributesProduct SKU�product-browser-attributesProduct price�select product�selected product�vc-tabOnline store�«Buy now» button�PO-Revision-Date: 2020-10-12 12:46 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: Poedit 2.4.1 Language: es Project-Id-Version: temporary-strings X-Crowdin-Project: temporary-strings X-Crowdin-Project-ID: 295314 X-Crowdin-Language: es-ES X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po X-Crowdin-File-ID: 988 Language-Team: Spanish Last-Translator: � Elegir otro producto� ¡Muchas gracias por ponerse en contacto con nosotros! Nos pondremos en contacto con usted en breve.�Etiqueta de productos «En existencia»�%s�Blog de %s�Carrito de compras de %s�Tienda de %s�Página de la tienda de %s�El complemento %s no funciona bien con mi tema «%s»�%s producto�%s productos�%s productos y %s categorías�%s productos y categorías�Configuraciones del carrito de compras de %s�%s almacena los datos de sus productos de forma segura en la nube. Las páginas de productos se muestran sobre la marcha cuando un cliente navega por su tienda. Por lo que, básicamente, los productos no se almacenan en el sitio web, por eso la búsqueda en el sitio web no encuentra páginas de productos mientras busca en las páginas del sitio web y en las publicaciones. Esta opción habilita un modo de almacenamiento local: los productos se almacenarán tanto en la nube como en su sitio web. Los resultados de la búsqueda en el sitio web incluirán las páginas de productos, así como las páginas o publicaciones habituales de su sitio web.�%s — Configuración avanzada�(podrá confirmar los cambios antes de la importación definitiva)�2 columnas, imagen a la izquierda�2 columnas, imagen a la derecha�3 columnas, imagen a la izquierda�3 columnas, imagen a la derecha�<a %s>Tienda en línea con tecnología de %s</a>�<a %s>Volver a conectar</a>�<a href="admin.php?page=�<b>%s</b> categorías�Un «slug» es la última parte de una URL. Puede crear un «slug» personalizado para la página de su tienda. Es mejor que sea corto, ya que los clientes y los motores de búsqueda prefieren las URL cortas. Por ejemplo, utilice «/tienda» o «/productos».�Acción requerida: conecte su cuenta de %s�Añadir producto�Añadir tienda�Añadir la página de la tienda al menú�Añadir una página de categoría�Añadir página de productos�Añadir una página de búsqueda y filtros�Añadir una página de tienda�Añadir una tienda en línea a su sitio web�Añadir borde�Añadir carrito y página de pago�Añadir categorías�Añadir la página de la tienda al menú del sitio web�Añadir escaparate virtual (listado de productos)�Añadir al menú�Añada su tienda de %s al sitio web y comience a vender en minutos.�Añada su tienda a otras páginas del sitio web�Añada su escaparate virtual a la página de inicio del sitio web para que sea más notable. También puede modificar la configuración de la página de inicio del sitio web en <a href="%s" target="_blank">Configuración de WordPress > Lectura</a>.�Páginas adicionales de la tienda�Además, puede añadir controles de la tienda a la barra de herramientas de su sitio web mediante <a %s>«widgets» nativos de WordPress</a>.�Añade un «widget» de carrito para que el cliente vea los productos que se han añadido al carrito.�Añade un «widget» de carrito compacto para que el cliente vea los productos que se han añadido al carrito.�Añada un «widget» de carrito de compras en la esquina superior derecha de su sitio web.�Añade la lista de categorías raíz a la barra lateral para que sus clientes puedan desplazarse por la tienda.�Añade un bloque de categorías verticales para permitir que el cliente navegue por su tienda.�Ajuste el diseño de su tienda para que se adapte a las necesidades de su negocio.�Etiqueta de administrador�Avanzado�Configuraciones avanzadas�Después de la importación, su tienda de %s tendrá �Todos los canales de venta�Junto con el catálogo de la tienda, puede añadir otros «widgets» y textos a la página de la tienda.�Apariencia�Aplicaciones�Cantidad disponible en existencia�Regresar a la configuración de la tienda�Color del fondo�Bolsa�Cesta�Antes de que se vaya�Borde�Borde:�Abajo a la izquierda�Abajo a la derecha�Migas de pan�Explorar todos los productos.�Buscar por categoría�Importar en masa productos y categorías a su tienda de %s�Color del botón�Comprar ahora�Botón «Comprar ahora»�Botones de «Comprar ahora»�Al continuar, acepta los <a %s>Términos de servicio</a> y la <a %s>Política de privacidad</a>.�Clase CSS�ID de CSS�¿Podría compartir el nombre del complemento que ha elegido?�¿Podría compartir su opinión? ¿Qué fue lo que pasó?�Cancelar�Carrito�Carrito y pago�Icono del carrito de compras�Icono del carrito:�Catálogo�Categorías�Categoría�Apariencia de la lista de categorías�Diseño de la ficha de categoría�Categoría mostrada por defecto�Relación de aspecto de la miniatura de la categoría�Tamaño de la miniatura de la categoría�Centrado�Centrar la alineación en una página�Cambiar�Cambiar el contenido de la tienda�Elegir producto�Elegir producto�Elija las propiedades del producto para mostrarlas en el «widget»�Elegir la página principal de la tienda�Elija los «widgets» a mostrar�Haga clic en el botón «Conectar» para obtener los permisos para actualizar el catálogo de productos�Configuración de colores�Completar configuración�Complete la configuración y comience a vender�Configuración�¡Enhorabuena!�Conectar�Conecte su tienda�Conecte su tienda de %s�Conecte su tienda�Error de conexión: después de hacer clic en el botón, debe iniciar sesión y otorgar los permisos para poder utilizar nuestro complemento. Inténtelo de nuevo.�Ponerse en contacto con la asistencia�Póngase en contacto con nosotros�Contenido�Copia de productos y categorías.�Crear página del carrito�Crear página de categorías�Crear página de productos�Crear página de búsqueda�Crear tienda�Crear la página de la tienda�Cree una página de aterrizaje con uno de sus productos.�Cree una nueva cuenta de %s que utilizará para gestionar su tienda e inventario. El registro es gratuito.�Cree una nueva tienda o, si ya tiene una cuenta de %s, conéctela. El complemento le guiará a través de la configuración de la tienda y le ayudará a publicarla en su sitio web.�Crear una nueva cuenta�Crear tienda�Página actual�«Slug» actual de la dirección URL: /<span data-ec-store-slug>%s</span>�Inicio de sesión único del cliente�Clientes�Los clientes no pueden ver la página de su tienda porque está en un borrador. Publique la página para que esté disponible para sus clientes.�Los clientes van a la página del carrito para consultar los productos que han añadido al mismo y proceder con el pago.�Personalizar el diseño�Personalizar la apariencia de la tienda�Personalizar la dirección de la página de la tienda�Personalizar «widget»�Personalice la apariencia de su tienda para que se ajuste a las necesidades de su negocio. Cree la apariencia para su tienda que más se parezca a su marca.�Gris cian azulado�Panel�Categoría predeterminada�ID de categoría predeterminada�ID del producto predeterminado�Modo de vista predeterminado en las páginas de productos�Modo de vista predeterminado en los resultados de búsqueda�Productos eliminados sincronizados: %1$s de %2$s�Tienda de demostración�Tienda de demostración�Diseño�Diseño y contenido�Detectar automáticamente�Desconectar tienda�Mostrar un botón de compra�Mostrar migas de pan�Mostrar icono del carrito�Mostrar el menú de categorías�Mostrar la barra de navegación de las categorías�Mostrar la página de categorías�Mostrar el menú del pie de página�Mostrar la página de productos con la descripción y un botón de compra�Mostrar el producto con un botón de compra�Mostrar el cuadro de búsqueda�Mostrar página de búsqueda con los filtros a un lado�Mostrar enlace y resumen de la bolsa de compras�Mostrar el carrito de compras�Mostrar el carrito de compras y la página de pago�Mostrar el enlace de inicio de sesión�Mostrar «ordenar por enlace»�Muestre el icono del carrito de compras en las páginas del sitio web�Producto mostrado�Muestra un enlace a la página de la tienda en la barra lateral para que el cliente acceda rápidamente a su tienda desde cualquier página del sitio web.�Muestra una lista de productos vistos recientemente por el cliente para volver fácilmente a los productos que vieron en su tienda.�Muestra una lista de productos aleatorios.�Muestra un producto aleatorio de su tienda para atraer la atención del cliente.�Muestra un cuadro de búsqueda simple para que sus clientes encuentren un producto en su tienda.�Muestra el escaparate virtual: listado de productos y pago�Muestra los últimos productos añadidos de su tienda. Muestre nuevos productos a los clientes existentes para impulsar las ventas repetidas.�No mostrar�¿Le gusta Ecwid y quiere ayudarlo a crecer? Puede añadir este elegante distintivo «Powered by Ecwid» en su sitio web para mostrarles a sus visitantes que es un usuario orgulloso de Ecwid.�¿Le gusta su tienda de %s en línea? Apreciaríamos si comparte su opinión y vota por el complemento en el sitio de WordPress.�Hecho�Descargar <a href="%s">registro de importación</a>�Descargar archivo de registro�Borrador�Por ejemplo, cómo establecer el envío�Distintivo de Ecwid�Comercio electrónico Ecwid�Carrito de compras del comercio electrónico de Ecwid�Elemento del menú de Ecwid�Ecwid le permite subir sus productos en forma de archivo CSV. Obtenga más información sobre esta herramienta en el centro de asistencia de Ecwid�«Widget» de comercio electrónico de Ecwid�Solución de comercio electrónico de Ecwid�Carrito de compras gratuito de Ecwid�Ecwid cuenta con la certificación PCI DSS Nivel 1, que es el estándar de oro para las soluciones de comercio electrónico en todo el mundo. Esto significa que no tendrá problemas de cumplimiento bancario cuando venda en línea con Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">Más detalles.</a>�Ecwid es un carrito de compras gratuito con todas las funciones. Se puede integrar fácilmente con cualquier blog de Wordpress y se configura en menos de 5 minutos.�Ecwid es compatible con cualquier tema de WordPress. Ya sea un tema gratuito del catálogo de WordPress.org, un tema prémium de un proveedor externo o un tema personalizado; su tienda de Ecwid funcionará bien con cualquiera de ellos. Si desea un tema prémium, le recomendamos <a href="%s">temas de TemplateMonster</a>.�Ecwid ofrece aplicaciones móviles gratuitas para iOS y Android para que pueda gestionar su tienda y vender donde y cuando quiera. Escanee productos, supervise el inventario, gestione las ventas y acepte pagos utilizando su dispositivo móvil como una estación de punto de venta. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">Más detalles.</a>�Carrito de compras de Ecwid�«Widget» de carrito de compras de Ecwid�Editar�Editar apariencia�Editar categoría�Editar producto�Editar tienda�Editar «slug» de la dirección URL�Editar página�Introduzca un ID de CSS opcional que se utilizará para este módulo. Se puede utilizar un ID para crear un estilo CSS personalizado o para crear enlaces a secciones particulares de su página web.�Introduzca las clases CSS opcionales que se utilizarán para este módulo. Se puede utilizar una clase CSS para crear estilos CSS personalizados. Puede añadir varias clases separadas por un espacio.�Introduzca el ID de su tienda�Introduzca el ID de su tienda aquí:�Extensiones para su tienda�Destacar una categoría de la tienda específica en una página separada de su sitio web.�Destaque sus productos en la barra lateral�Filtros�Posición del panel de filtros�Encuentre el ID de su tienda�Primera página�Preguntas frecuentes�Descargue la aplicación móvil de %s�Ir a «Páginas»�Ir a sus productos de %s�¡Saludos!�¡Enhorabuena! Su complemento de %s ya está activo.�Cuadrícula�Vista de cuadrícula�Ayuda�Ayude a los clientes a encontrar su tienda en el sitio web. Añada el enlace de la tienda al menú del sitio web, cree páginas adicionales de la tienda y resalte los productos de la tienda en otras páginas del sitio web y en las barras laterales.�Ayude a los clientes a encontrar su tienda en el sitio web.�Aquí puede gestionar cuántos productos se mostrarán por página. Estas opciones definen valores máximos. Si no hay suficiente espacio para mostrar todas las columnas de productos, %s adaptará el número de columnas para mantener todos los productos.�Aquí puede crear el contenido que se utilizará dentro del módulo.�Aquí, le ayudaremos a subir su catálogo de productos a %s de otro carrito de compras u otras fuentes.�Ocultar�Destaque productos, categorías y otras páginas de la tienda añadiéndolas a páginas del sitio web separadas.�Destaque sus mejores ventas o nuevos productos en la barra lateral del sitio web.�Sangría horizontal�Miniaturas horizontales�¿Cómo puedo añadir un «widget» de carrito de compras a la barra lateral de mi sitio web?�¿Cómo puedo gestionar mi tienda desde un dispositivo móvil?�¿Cómo podemos ayudarle?�¿Cómo puedo añadir categorías de tiendas al menú del sitio web?�¿Cómo pongo mis productos en el mapa del sitio?�¿Cuánto cuesta Ecwid?�¿Qué tan seguro es este complemento? ¿Mi tienda cumple con el PCI DSS?�¿Cómo añadir un solo producto con el botón de «añadir a la bolsa» en las páginas del sitio web?�¿Cómo crear una tienda en Facebook con Ecwid?�Ya tengo una cuenta, iniciar sesión�No pude encontrar un tema de WordPress adecuado para %s�Encontré un mejor complemento�Tengo un problema con el uso de este complemento�Tengo un problema con mi tienda de %s�Utilizo este tema de WordPress: %s�Icono�Icono y total de artículos�Icono, etiqueta y total de artículos�Icono, etiqueta, total de artículos y subtotal�Icono, etiqueta, total de artículos, subtotal y enlace�Si tiene un momento, háganos saber por qué está desactivando:�Imagen y título al pasar el ratón por encima�Canal de imagen�Diseño de la galería de imágenes�Solo imagen�Importar�Importe sus productos de Woocommerce a %s�Importación completada�Importación completada. <a href="%s">Ejecútela de nuevo.</a>�La importación crea nuevos productos y actualiza los productos existentes con las REF correspondientes.�La importación está en progreso�Importar mis productos de WooCommerce�Importar el catálogo de productos de WooCommerce�Importar el catálogo de productos de otras fuentes�Importe los productos a su tienda de %s�Resumen de la importación�Importe su catálogo de WooCommerce a %s�Importe sus productos de WooCommerce a %s�Importe sus productos de Woocommerce a %s�<b>%s</b> productos importados�Importando %s de %s artículos�Insertar�Insertar en la página�Sitio web instantáneo�Integración con la búsqueda en su sitio web�¿Es posible mostrar mi tienda en la página de inicio del sitio web?�¿Existe algún tema de WordPress para Ecwid?�Es una desactivación temporal. No preguntarme de nuevo.�Solo el total de artículos�Justificado�Base de conocimiento�G�Etiqueta y y total de artículos�Horizontal 3:2�Horizontal 4:3�Última página�Última actualización�Últimos productos�Diseño�Diseño:�Más información�Izquierda�Cian verde claro�Color del enlace�Producto vinculado�Lista�Vista de lista�Parece que su sitio web no admite solicitudes POST remotas, las cuales son necesarias para que la API de %s funcione. Comuníquese con su proveedor de alojamiento web para habilitar cURL.�Ámbar vívido y brillante�Naranja vívido y brillante�M�Haga que su tienda sea accesible desde el menú del sitio web para que sus clientes puedan encontrarla fácilmente.�Gestionar la barra lateral�Gestione la tienda desde iPhone, iPad o Android�Gestione productos, supervise las ventas y ajuste la configuración: <nobr>todo sin</nobr> salir de esta página.�Gestionar la tienda�Gestionar escaparate virtual�Mercadotecnia�Móvil�Mi cuenta�Mi perfil�Mis ventas�Nombre�Navegación�¿Necesita ayuda para importar sus productos de WooCommerce a %s?�Nunca mostrar este mensaje otra vez�Página siguiente�Página siguiente�No, gracias�Sin borde�No se ha sincronizado todavía�Nota: cuando está habilitado, el «widget» del carrito siempre se mostrará en la vista previa para que sea más fácil personalizarlo. Las opciones «Mostrar en las páginas de la tienda» y «Mostrar cuando esté vacío» se aplicarán al «widget» del carrito en el sitio cuando se publiquen�No se ha encontrado nada en relación con <span class="empty-page__term">«{{ data.term }}»</span>�Número de categorías por fila�Número de productos por página�Número de productos para mostrar�A la izquierda�A la derecha�Tienda en línea�Aplicaciones de la tienda en línea�Tienda en línea�Abrir el panel de control�Abrir el panel de la tienda�Opciones�Pedidos�Otro�Nuestros 4 tipos de cuentas varían según la cantidad de productos, los tipos de funcionalidades y el nivel de asistencia. Para obtener más información, consulte nuestra <a target="_blank" href="%s">página de precios.</a><br /><br />Consejo profesional: también puede ahorrar dinero si se suscribe a nuestros planes anuales.�Nuestro equipo ya está trabajando en este asunto. Actualice la página en unos minutos. Si el problema persiste, comuníquese con <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">nuestro equipo de atención al cliente</a>.�Ya existe una página con ese nombre.�Azul cian pálido�Rosa pálido�Parte de los productos no se han copiado a %1$s porque alcanzó el límite de productos en su plan de precios en %1$s. Si desea importar más productos, considere <nobr><a %2$s>actualizar su plan de %1$s.</a></nobr>�Pago�Personalice la apariencia de su escaparate virtual y edite el contenido en la página de la tienda para reflejar su marca y mantenerse conectado con sus clientes.�Elegir una categoría�Elegir un producto�Imagen�Píldora�Tenga en cuenta el número máximo de productos y categorías que puede tener en su tienda de Ecwid. Esta herramienta de importación se detendrá automáticamente cuando se alcance el límite de productos de la tienda. Para conocer el límite actual de la tienda o aumentarlo, consulte la página <nobr><a %s target="_blank">«Facturación y planes»</a></nobr> ubicada en el panel de su tienda de Ecwid.�Suscríbase a un plan de pago para obtener esta función.�Complementos para Ecwid�Vertical 2:3�Vertical 3:4�Posición�Vista previa�Página anterior�Precio�Color del precio�Producto�Ficha de producto ampliada�Ficha de producto reducida�Apariencia de la lista de productos�Apariencia de la página del producto�REF del producto�Búsqueda de productos�Cuadro de búsqueda de productos�Búsqueda de productos y filtros�El texto de la ficha del producto se alinea�El catálogo de productos se mostrará automáticamente�Diseño de la página de productos�Precio del producto�Cantidad de productos�Contenido de la barra lateral de productos�Relación de aspecto de la miniatura del producto�Tamaño de la miniatura del producto�Título del producto�Productos�Los productos se sincronizaron satisfactoriamente. Las páginas de productos están actualizadas.�Productos eliminados sincronizados: %1$s de %2$s�Promocione su tienda�Otorgar acceso.�Proporcionado por <a %s>%s</a>�Publicar�Publicar la página de la tienda�Publique la página para poder utilizar esta opción�Publicada�Cantidad�¿Tiene alguna pregunta?�Producto aleatorio�Productos aleatorios�Tasa de %s en WordPress.org�Vuélvase a conectar para activar el panel de control�Productos vistos recientemente�Recomendaciones para su tienda en línea�Rectángulo�Actualizar la lista de categorías�Registrarse en %s�Informar un problema con la tienda�Informes�Derecha�P�REF�Ventas�Canales de venta�Guardar�Guarde y conecte su tienda de %s al sitio web�Guardar cambios�Buscar�Búsqueda y filtros�Buscar productos�Buscar en la base de conocimientos�Ver más�Seleccionar todo�Seleccionar categoría�Producto seleccionado�Categoría seleccionada�Vender en Facebook�Enviar mensaje�Envíe un mensaje a nuestro equipo de asistencia�Ocurrió un error al enviar el mensaje�Configure su tienda�Configurar manualmente�Configure su tienda�Configuraciones�Configuración�Envío y recogida�Tienda�Carrito de compras�Carrito de compras (descontinuado)�Carrito de compras flotante (descontinuado)�Icono del carrito de compras�Carrito de compras en miniatura (descontinuado)�«Widget» del carrito de compras�Mostrar�Mostrar imagen adicional al pasar el ratón�Mostrar categorías�Muéstreles a los clientes que pueden utilizar la búsqueda y los filtros para encontrar los productos que deseen de forma más rápida.�Mostrar descripción debajo de la imagen�Mostrar minicarrito�Mostrar en todas las páginas�Mostrar al pasar el ratón�Mostrar en las páginas de la tienda�Mostrar el precio dentro del botón de «Comprar ahora»�Mostrar el precio dentro del botón de «Comprar ahora»�Mostrar el borde de la ficha del producto�Mostrar miniaturas de los productos�Mostrar búsqueda�Mostrar cuando esté vacío�Muestre su tienda en la página de inicio�El inicio de sesión único les permite a sus clientes tener un inicio de sesión único para su sitio web de WordPress y su %s. Cuando alguien inicie sesión en su sitio web, también iniciará sesión automáticamente en su cuenta de cliente en la tienda sin necesidad de introducir su correo electrónico y contraseña nuevamente.�Icono pequeño�Icono pequeño y total de artículos�Algunos de los artículos no se pudieron importar.�Le pido disculpas por las dificultades técnicas que estamos experimentando.�Lo siento, hay un problema. Se supone que esta página muestra el panel de control de su tienda; sin embargo, este sitio web de Wordpress no parece poder conectarse al servidor de Ecwid para mostrar el panel de su tienda aquí. Es probable que esto se deba a una mala configuración del servidor; su proveedor de alojamiento web puede solucionarlo. Aquí hay una descripción más técnica del problema, la cual puede enviarle a su proveedor de alojamiento web: «La función de Wordpress wp_remote_post() no pudo conectarse a un servidor remoto debido al error: “%s”; parece que las solicitudes HTTP POST están inhabilitadas en este servidor». <br /><br />No dude en ponerse en contacto con nosotros en <a %s>wordpress@ecwid.com</a> y le ayudaremos a comunicarse con su proveedor de alojamiento web para pedirle que solucione el problema. <br /><br /> Mientras tanto, para gestionar su tienda, puede utilizar el panel de control web de Ecwid en <a %s>my.ecwid.com</a>. Su escaparate virtual está funcionando bien; puede echarle un vistazo aquí: <a %s>%s</a>.�Cuadrado 1:1�Iniciar la importación�Estado�Manténgase conectado con sus clientes. Actualice el contenido de su tienda en cualquier momento para informarles a los clientes sobre las promociones actuales y las novedades de su tienda.�¿Todavía tiene preguntas acerca de Ecwid? ¡Háganoslo saber!�Tienda�Categorías de la tienda�Menú de categorías de la tienda�Página de categorías de la tienda�Página del escaparate virtual�Página de inicio de la tienda�ID de la tienda�El ID de la tienda es un identificador único de cualquier tienda de %1$s, el cual consta de varios dígitos. Puede encontrarlo en la página «Panel» del panel de control de %1$s. El ID de la tienda se enviará en el correo electrónico de bienvenida después del registro.�El ID de la tienda es un identificador único de su cuenta de %1$s. Puede encontrarlo en su panel de control de %1$s en la <a %2$s>página del panel</a>.�Título del enlace de la tienda�Navegación en la tienda�Página de la tienda�Enlace a la página de la tienda�Categorías raíz de la tienda�Apariencia de la tienda�Elementos de la tienda�Gestión de la tienda�Contenido de la página de la tienda�Página de la tienda en su sitio web�Categoría raíz de la tienda�Tienda con menú de categorías�Escaparate virtual�Asunto�Enviar y desactivar�Cambiar al borrador�Sincronizar productos�Tabla�Vista de tabla�Siga unos sencillos pasos para completar la configuración de la tienda�Aproveche las increíbles aplicaciones y extensiones diseñadas para mejorar su tienda.�Texto�Color del texto�Gracias por elegir %s para construir su tienda en línea�El bloque está oculto porque no tiene categorías en su tienda. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Añadir categorías.</a>�La categoría que se muestra de forma predeterminada en la página del escaparate virtual�El primer paso para abrir su negocio en línea: <br />añadamos una tienda a su sitio web de WordPress en <strong>3</strong> simples pasos.�El complemento no es compatible con la función que quiero�El icono del carrito de compras muestra la cantidad de artículos en el carrito y ayuda a los clientes a realizar el pago. Además, puede <a href="%s" target="_blank">ajustar la apariencia del icono del carrito</a>.�La tienda no es visible en su sitio web�Las categorías de alto nivel de la tienda se añaden automáticamente a este menú desplegable�Temas para Ecwid�Esta importación copiará sus productos y categorías de WooCommerce a su tienda de %s.�Esto es una tienda de demostración. Cree su tienda para ver los productos de su tienda aquí.�Esto cambiará la etiqueta del módulo en el creador para una fácil identificación.�Título�Título en la imagen�Solo título�Título o REF�Título debajo de la imagen�Título:�Para añadir funciones adicionales a su tienda, arrastre y suelte los elementos de la tienda de %s en su sitio web. Una vez que haya terminado, puede volver a modificar su configuración.�Para añadir su tienda a su sitio web, introduzca el ID de su tienda de %1$s en el campo a continuación. Si aún no tiene una cuenta de %1$s, cree una gratis en el <a %2$s>sitio web de %1$s</a>.�Para permitir que %s inicie la sesión de sus clientes automáticamente en su tienda, otorgue los permisos para utilizar los datos del cliente en la tienda. <a %s>Utilice este enlace para hacerlo</a>�A fin de poder elegir un producto para insertarlo en sus publicaciones y páginas, deberá volver a conectar su sitio a su tienda de %s. Esto solo requerirá que acepte la solicitud de permisos para que el complemento pueda listar sus productos en el cuadro de diálogo «Añadir producto».�Para crear un «Mapa del sitio» para su sitio web de Wordpress, le sugerimos que utilice los  complementos <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> o <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>. Estos complementos son totalmente compatibles con Ecwid y permiten generar un mapa del sitio que contiene enlaces a categorías y páginas de productos, por lo que las páginas de la tienda se indexarán más rápido. Tenga en cuenta que esta opción solo está disponible para los <a target="_blank" href="https://www.ecwid.com/pricing">usuarios de pago de Ecwid</a>.�Para mostrar su tienda en este sitio web, debe permitir que WordPress acceda a sus productos de %1$s. Pulse «Conectar» para otorgar el permiso.�Para habilitar esta función, el complemento necesita un permiso para leer la información del producto de su tienda.�Para mostrar un solo producto en una página aparte o en una entrada de blog de su sitio web, utilice el código corto <b>[ecwid_product]</b>. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">Cómo utilizarlo</a>�Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para mejorar la apariencia de su tienda y poder gestionar la apariencia de su escaparate virtual desde aquí, habilite la opción «Apariencia de próxima generación de la lista de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para asegurarse de que su cliente puede acceder realmente a su sitio web y a la tienda, habilite el registro en las <a %s>configuraciones del sitio web</a>�Para gestionar su tienda, vaya a la <a %s>página del «Panel de su tienda»</a>�Para vender utilizando %1$s, debe permitir que WordPress acceda al complemento %1$s. El botón «Conectar» lo redirigirá a su cuenta de %1$s donde puede otorgar el permiso.�Para mostrar su escaparate virtual en lugar de la tienda de demostración, conecte su cuenta de %s existente o cree una nueva.�Para comenzar a vender, añada una página a su sitio web donde se muestre el escaparate virtual.�Arriba a la izquierda�Arriba a la derecha�Intente otra búsqueda.�Escriba su mensaje aquí�«Slug» de la dirección URL�Actualizar�Actualice su catálogo�Actualice para obtener esta función�Sangría vertical�Miniaturas verticales�Gris oscuro�Gris claro�Ver la página de la tienda�Ver la página de la tienda de demostración�Ver la página de la tienda�Visitar escaparate virtual�Azul cian vívido�Cian verde vívido�Rojo vívido�¿Desea conectar otra tienda de %s?�Advertencia: algunas de las funciones de su tienda en línea están inhabilitadas. Póngase en contacto con su proveedor de alojamiento web para resolverlo.�Notamos que tiene un WooCommerce instalado. Su tienda de WooCommerce tiene %1$s productos y %2$s categorías; ¿le gustaría importarlos a %3$s?�Notamos que tiene WooCommerce instalado. Si desea copiar fácilmente sus productos de WooCommerce a %s, esta herramienta le ayudará.�Estamos sincronizando sus productos. Esto puede tardar unos minutos. No actualice la página.�Sitio web�¿Qué función necesita?�¿Qué fue lo que pasó?�¿Qué sigue?�Mientras su tienda aún no esté conectada, se mostrará una tienda de demostración en su sitio web. Échele un vistazo para tener una idea de cómo se verá su tienda en el sitio web.�Precios al por mayor�Puede añadir un cuadro de búsqueda de productos, un «widget» de carrito y más desde la <a href="%s">«Página de apariencia y widgets»</a> que se encuentra aquí en el administrador de su sitio web. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">Más detalles.</a>�Puede añadir todo el escaparate virtual, las categorías, los productos o los botones de «Comprar ahora» a otras páginas de su sitio web. Para ello, abra una página en el editor y añada un bloque %s apropiado.�Puede añadir el menú de categorías de la tienda al menú de su sitio web para ayudar a sus clientes a navegar fácilmente por su sitio web. Simplemente abra «Apariencia > Menús» en el panel de WordPress y añada el elemento «Tienda con menú de categorías» al menú de su sitio web. Aparecerá automáticamente un menú desplegable que contendrá las categorías de su tienda en su sitio web.�Puede añadir su tienda en línea a su página empresarial de Facebook (no se necesitan complementos). Ecwid sincronizará automáticamente los productos, clientes, pedidos e inventario entre su tienda en línea de WordPress y Facebook. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">Más detalles.</a>�Puede gestionar la apariencia de su tienda en la <a %s>página de «Configuración del diseño»</a> ubicada en el panel de control de su tienda.�Puede mostrar su tienda en la página principal del sitio web. Ajuste la configuración de «Lectura» de su sitio web como se describe en nuestro <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">centro de asistencia.</a>�Puede habilitar un «widget» adicional del icono de la bolsa de compras que aparecerá en las páginas de su sitio web. Abra el menú «<a href="%1$s">Apariencia → Personalizar → %2$s</a>» para habilitarlo.�Puede habilitar los filtros en la configuración de la tienda: («<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Configuración → Filtros para los productos</a>»).�Puede enviar una nueva solicitud aquí.�Aún no ha visto ningún producto. Abra la tienda.�También podrá registrarse a través de sus perfiles existentes de Google, Facebook o PayPal.�Su tienda de %s tiene �Su tienda de %s está conectada<br /> a su sitio web de WordPress�Su tienda de %s ahora está conectada<br /> a su sitio web de WordPress�Su escaparate virtual�Su tienda de WooCommerce tiene �Se ha enviado su correo electrónico�Su producto�Panel de control de su tienda. Aquí mismo en WordPress.�Se ha creado su tienda. Preparando el panel de su tienda...�Su tienda se añade a varias páginas del sitio web. Elija la página principal. Los clientes son redirigidos a la página principal de la tienda cuando hacen clic en el icono del carrito, en los enlaces de la tienda ubicados en el menú del sitio web o en los productos que se encuentran en la barra lateral.�¡Su tienda ya está casi lista!�Su tienda no se añade a ninguna página de su sitio web. Para que los clientes puedan navegar por su tienda y realizar pedidos, cree una página donde se mostrará la tienda.�La página de su tienda�La página de su tienda está actualmente en un borrador. Una vez que esté lista, publíquela para que los clientes puedan visitar la tienda y realizar pedidos.�La página de su tienda está publicada. Los clientes pueden visitar su tienda en �Su tienda se mostrará aquí�¡Su tienda se mostrará aquí!�Su escaparate virtual (listado de productos y página de pago) está funcionando bien, pero las funciones avanzadas de la tienda, como el SEO y los «widgets» de la barra lateral, están inhabilitadas. Para habilitarlas y asegurarse de que su tienda funcione correctamente, pulse el botón de abajo para conectar su cuenta de %s. Esto tomará menos de un minuto; solo se le pedirá que inicie sesión en su cuenta y permita que este sitio web obtenga los datos de su tienda.�[%s] Comentarios sobre la desactivación del complemento de WordPress (ID de la tienda: %s)�personalizar apariencia�Contenido�Tienda�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�o <a %s>consulte el centro de asistencia�REF del producto�Precio del producto�seleccionar producto�producto seleccionado�Tienda en línea�Botón de «Comprar ahora»���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/languages/ecwid-shopping-cart-es_CR.po������������������������������������������0000644�����������������00000326062�15122273603�0017573 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Translation of Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) in German # This file is distributed under the same license as the Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) package. msgid "" msgstr "" "PO-Revision-Date: 2020-10-12 12:46\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: GlotPress/3.0.0-alpha.2\n" "Language: es\n" "Project-Id-Version: temporary-strings\n" "X-Crowdin-Project: temporary-strings\n" "X-Crowdin-Project-ID: 295314\n" "X-Crowdin-Language: es-ES\n" "X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po\n" "X-Crowdin-File-ID: 988\n" "Language-Team: Spanish\n" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:92 msgid "You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel." msgstr "Puede gestionar la apariencia de su tienda en la <a %s>página de «Configuración del diseño»</a> ubicada en el panel de control de su tienda." #: includes/integrations/elementor/class-ec-elementor-widget-store.php:55 msgid "To manage your store, go to <a %s>the Store Dashboard page</a>" msgstr "Para gestionar su tienda, vaya a la <a %s>página del «Panel de su tienda»</a>" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:39 msgid "The category that is shown by default on the Store Front Page" msgstr "La categoría que se muestra de forma predeterminada en la página del escaparate virtual" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:38 msgid "Default category" msgstr "Categoría predeterminada" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:29 msgid "Online Store" msgstr "Tienda en línea" #: includes/class-ecwid-stub-renderer.php:38 msgid "Buy Now" msgstr "Comprar ahora" #: templates/admin/welcome-terms-privacy.php:5 msgid "By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>." msgstr "Al continuar, acepta los <a %s>Términos de servicio</a> y la <a %s>Política de privacidad</a>." #: js/gutenberg/blocks.build.js:1 msgid "Display shopping cart and checkout page" msgstr "Mostrar el carrito de compras y la página de pago" #: js/gutenberg/blocks.build.js:1 msgid "Cart and Checkout" msgstr "Carrito y pago" #: js/gutenberg/blocks.build.js:1 msgid "Filters" msgstr "Filtros" #: js/gutenberg/blocks.build.js:1 msgid "You can enable filters in the store settings: (“<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Settings → Product Filters</a>”)." msgstr "Puede habilitar los filtros en la configuración de la tienda: («<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Configuración → Filtros para los productos</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Search and Filters" msgstr "Búsqueda y filtros" #: js/gutenberg/blocks.build.js:1 msgid "Display search page with filters on a side" msgstr "Mostrar página de búsqueda con los filtros a un lado" #: js/gutenberg/blocks.build.js:1 msgid "Product Search and filters" msgstr "Búsqueda de productos y filtros" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Display product page with description and a buy button" msgstr "Mostrar la página de productos con la descripción y un botón de compra" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Large" msgstr "Ficha de producto ampliada" #: js/gutenberg/blocks.build.js:1 msgid "Selected category" msgstr "Categoría seleccionada" #: js/gutenberg/blocks.build.js:1 msgid "Select category" msgstr "Seleccionar categoría" #: js/gutenberg/blocks.build.js:1 msgid "Add categories" msgstr "Añadir categorías" #: js/gutenberg/blocks.build.js:1 msgid "Display category page" msgstr "Mostrar la página de categorías" #: js/gutenberg/blocks.build.js:1 msgid "Store Category Page" msgstr "Página de categorías de la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Display shopping bag link and summary" msgstr "Mostrar enlace y resumen de la bolsa de compras" #: js/gutenberg/blocks.build.js:1 msgid "Shopping Cart Icon" msgstr "Icono del carrito de compras" #: js/gutenberg/blocks.build.js:1 msgid "The block is hidden because you don't have categories in your store. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Add categories.</a>" msgstr "El bloque está oculto porque no tiene categorías en su tienda. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Añadir categorías.</a>" #: js/gutenberg/blocks.build.js:1 msgid "Categories" msgstr "Categorías" #: js/gutenberg/blocks.build.js:1 msgid "Display categories navigation bar" msgstr "Mostrar la barra de navegación de las categorías" #: js/gutenberg/blocks.build.js:1 msgid "Store Categories Menu" msgstr "Menú de categorías de la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Product Search Box" msgstr "Cuadro de búsqueda de productos" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:25 #: js/gutenberg/blocks.build.js:1 msgid "Linked product" msgstr "Producto vinculado" #: js/gutenberg/blocks.build.js:1 msgid "Display a buy button" msgstr "Mostrar un botón de compra" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:10 #: js/gutenberg/blocks.build.js:1 msgid "Buy Now Button" msgstr "Botón «Comprar ahora»" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:52 #: js/gutenberg/blocks.build.js:1 msgid "Show price inside the «Buy now» button" msgstr "Mostrar el precio dentro del botón de «Comprar ahora»" #: js/gutenberg/blocks.build.js:1 msgctxt "gutenberg-product-block" msgid "Content" msgstr "Contenido" #: js/gutenberg/blocks.build.js:1 msgid "Change" msgstr "Cambiar" #: js/gutenberg/blocks.build.js:1 msgid "Displayed product" msgstr "Producto mostrado" #: js/gutenberg/blocks.build.js:1 msgid "Display product with a buy button" msgstr "Mostrar el producto con un botón de compra" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Small" msgstr "Ficha de producto reducida" #: js/gutenberg/blocks.build.js:1 msgid "Very dark gray" msgstr "Gris oscuro" #: js/gutenberg/blocks.build.js:1 msgid "Cyan bluish gray" msgstr "Gris cian azulado" #: js/gutenberg/blocks.build.js:1 msgid "Very light gray" msgstr "Gris claro" #: js/gutenberg/blocks.build.js:1 msgid "Vivid cyan blue" msgstr "Azul cian vívido" #: js/gutenberg/blocks.build.js:1 msgid "Pale cyan blue" msgstr "Azul cian pálido" #: js/gutenberg/blocks.build.js:1 msgid "Vivid green cyan" msgstr "Cian verde vívido" #: js/gutenberg/blocks.build.js:1 msgid "Light green cyan" msgstr "Cian verde claro" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid amber" msgstr "Ámbar vívido y brillante" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid orange" msgstr "Naranja vívido y brillante" #: js/gutenberg/blocks.build.js:1 msgid "Vivid red" msgstr "Rojo vívido" #: js/gutenberg/blocks.build.js:1 msgid "Pale pink" msgstr "Rosa pálido" #: js/gutenberg/blocks.build.js:1 msgid "Set manually" msgstr "Configurar manualmente" #: js/gutenberg/blocks.build.js:1 msgid "Detect automatically" msgstr "Detectar automáticamente" #: js/gutenberg/blocks.build.js:1 msgid "Color settings" msgstr "Configuración de colores" #: js/gutenberg/blocks.build.js:1 msgid "Store Navigation" msgstr "Navegación en la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Store Front Page" msgstr "Página del escaparate virtual" #: js/gutenberg/blocks.build.js:1 msgid "Product sidebar content" msgstr "Contenido de la barra lateral de productos" #: js/gutenberg/blocks.build.js:1 msgid "Product Page Appearance" msgstr "Apariencia de la página del producto" #: js/gutenberg/blocks.build.js:1 msgid "Product List Appearance" msgstr "Apariencia de la lista de productos" #: js/gutenberg/blocks.build.js:1 msgid "Category List Appearance" msgstr "Apariencia de la lista de categorías" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Display cart icon" msgstr "Mostrar icono del carrito" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Para mejorar la apariencia de su tienda y poder gestionar la apariencia de su escaparate virtual desde aquí, habilite la opción «Apariencia de próxima generación de la lista de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Add storefront (product listing)" msgstr "Añadir escaparate virtual (listado de productos)" #: templates/admin/storefront/main.php:21 msgid "Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers." msgstr "Los clientes no pueden ver la página de su tienda porque está en un borrador. Publique la página para que esté disponible para sus clientes." #: templates/admin/storefront/main.php:20 msgid "The store is not visible on your site" msgstr "La tienda no es visible en su sitio web" #: templates/admin/storefront/main.php:4 msgid "Your Storefront" msgstr "Su escaparate virtual" #: templates/admin/storefront/area-promo.php:30 msgid "Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars." msgstr "Ayude a los clientes a encontrar su tienda en el sitio web. Añada el enlace de la tienda al menú del sitio web, cree páginas adicionales de la tienda y resalte los productos de la tienda en otras páginas del sitio web y en las barras laterales." #: templates/admin/storefront/area-promo.php:29 msgid "Promote your store" msgstr "Promocione su tienda" #: templates/admin/storefront/area-promo.php:26 msgid "Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store." msgstr "Manténgase conectado con sus clientes. Actualice el contenido de su tienda en cualquier momento para informarles a los clientes sobre las promociones actuales y las novedades de su tienda." #: templates/admin/storefront/area-promo.php:25 msgid "Change store content" msgstr "Cambiar el contenido de la tienda" #: templates/admin/storefront/area-promo.php:22 msgid "Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand." msgstr "Personalice la apariencia de su tienda para que se ajuste a las necesidades de su negocio. Cree la apariencia para su tienda que más se parezca a su marca." #: templates/admin/storefront/area-promo.php:21 msgid "Customize store appearance" msgstr "Personalizar la apariencia de la tienda" #: templates/admin/storefront/area-promo.php:7 msgid "Add your %s store to the website and start selling in minutes." msgstr "Añada su tienda de %s al sitio web y comience a vender en minutos." #: templates/admin/storefront/area-promo.php:3 msgid "What's next?" msgstr "¿Qué sigue?" #: templates/admin/storefront/area-additional.php:224 msgid "Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar." msgstr "Su tienda se añade a varias páginas del sitio web. Elija la página principal. Los clientes son redirigidos a la página principal de la tienda cuando hacen clic en el icono del carrito, en los enlaces de la tienda ubicados en el menú del sitio web o en los productos que se encuentran en la barra lateral." #: templates/admin/storefront/area-additional.php:222 msgid "Choose the main store page" msgstr "Elegir la página principal de la tienda" #: templates/admin/storefront/area-additional.php:200 msgid "Go to Pages" msgstr "Ir a «Páginas»" #: templates/admin/storefront/area-additional.php:193 msgid "You can add the entire storefront, categories, products, or \"Buy now\" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block." msgstr "Puede añadir todo el escaparate virtual, las categorías, los productos o los botones de «Comprar ahora» a otras páginas de su sitio web. Para ello, abra una página en el editor y añada un bloque %s apropiado." #: templates/admin/storefront/area-additional.php:189 msgid "Add your store to other site pages" msgstr "Añada su tienda a otras páginas del sitio web" #: templates/admin/storefront/area-additional.php:166 msgid "Create Product Page" msgstr "Crear página de productos" #: templates/admin/storefront/area-additional.php:150 msgid "Pick Product" msgstr "Elegir un producto" #: templates/admin/storefront/area-additional.php:136 #: templates/admin/storefront/area-additional.php:138 msgid "Create a landing page featuring one of your products." msgstr "Cree una página de aterrizaje con uno de sus productos." #: templates/admin/storefront/area-additional.php:132 msgid "Add a product page" msgstr "Añadir página de productos" #: templates/admin/storefront/area-additional.php:109 msgid "Create Category Page" msgstr "Crear página de categorías" #: templates/admin/storefront/area-additional.php:93 msgid "Pick Category" msgstr "Elegir una categoría" #: templates/admin/storefront/area-additional.php:79 #: templates/admin/storefront/area-additional.php:81 msgid "Feature a specific store category on a separate page of your site." msgstr "Destacar una categoría de la tienda específica en una página separada de su sitio web." #: templates/admin/storefront/area-additional.php:75 msgid "Add a category page" msgstr "Añadir una página de categoría" #: templates/admin/storefront/area-additional.php:54 msgid "Create Search Page" msgstr "Crear página de búsqueda" #: templates/admin/storefront/area-additional.php:50 msgid "Show customers that they can use a search and filters to find desired products faster." msgstr "Muéstreles a los clientes que pueden utilizar la búsqueda y los filtros para encontrar los productos que deseen de forma más rápida." #: templates/admin/storefront/area-additional.php:48 msgid "Add a search and filters page" msgstr "Añadir una página de búsqueda y filtros" #: templates/admin/storefront/area-additional.php:27 msgid "Create Cart Page" msgstr "Crear página del carrito" #: templates/admin/storefront/area-additional.php:23 msgid "Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout." msgstr "Los clientes van a la página del carrito para consultar los productos que han añadido al mismo y proceder con el pago." #: templates/admin/storefront/area-additional.php:21 msgid "Add cart and checkout page" msgstr "Añadir carrito y página de pago" #: templates/admin/storefront/area-additional.php:4 msgid "Highlight products, categories, and other store pages by adding them to separate website pages." msgstr "Destaque productos, categorías y otras páginas de la tienda añadiéndolas a páginas del sitio web separadas." #: templates/admin/storefront/area-additional.php:3 msgid "Additional store pages" msgstr "Páginas adicionales de la tienda" #: templates/admin/storefront/draft-message.php:2 msgid "Publish the page to use this option" msgstr "Publique la página para poder utilizar esta opción" #: templates/admin/storefront/area-design.php:55 msgid "Along with the store catalog, you can add other widgets and texts to the store page." msgstr "Junto con el catálogo de la tienda, puede añadir otros «widgets» y textos a la página de la tienda." #: templates/admin/storefront/area-design.php:54 msgid "Store page content" msgstr "Contenido de la página de la tienda" #: templates/admin/storefront/area-design.php:25 #: templates/admin/storefront/area-design.php:27 msgid "Adjust your store design to fit your business needs." msgstr "Ajuste el diseño de su tienda para que se adapte a las necesidades de su negocio." #: templates/admin/storefront/area-design.php:21 msgid "Store appearance" msgstr "Apariencia de la tienda" #: templates/admin/storefront/area-design.php:4 msgid "Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers." msgstr "Personalice la apariencia de su escaparate virtual y edite el contenido en la página de la tienda para reflejar su marca y mantenerse conectado con sus clientes." #: templates/admin/storefront/area-design.php:3 msgid "Design and content" msgstr "Diseño y contenido" #: templates/admin/storefront/area-status.php:124 msgid "Create Store Page" msgstr "Crear la página de la tienda" #: templates/admin/storefront/area-status.php:121 msgid "Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display." msgstr "Su tienda no se añade a ninguna página de su sitio web. Para que los clientes puedan navegar por su tienda y realizar pedidos, cree una página donde se mostrará la tienda." #: templates/admin/storefront/area-status.php:115 msgid "Set Up Your Store" msgstr "Configure su tienda" #: templates/admin/storefront/area-status.php:109 msgid "To show your storefront instead of the demo store, connect your existing %s account or create a new one." msgstr "Para mostrar su escaparate virtual en lugar de la tienda de demostración, conecte su cuenta de %s existente o cree una nueva." #: templates/admin/storefront/area-status.php:101 msgid "Publish Store Page" msgstr "Publicar la página de la tienda" #: templates/admin/storefront/area-status.php:98 msgid "Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders." msgstr "La página de su tienda está actualmente en un borrador. Una vez que esté lista, publíquela para que los clientes puedan visitar la tienda y realizar pedidos." #: templates/admin/storefront/area-status.php:92 msgid "View Store Page" msgstr "Ver la página de la tienda" #: templates/admin/storefront/area-status.php:86 msgid "Your store page is published. Customers can browse your store at " msgstr "La página de su tienda está publicada. Los clientes pueden visitar su tienda en " #: templates/admin/storefront/area-status.php:77 msgid "View demo store page" msgstr "Ver la página de la tienda de demostración" #: templates/admin/storefront/area-status.php:46 msgid "Draft" msgstr "Borrador" #: templates/admin/storefront/area-status.php:45 msgid "Published" msgstr "Publicada" #: templates/admin/storefront/area-status.php:33 #: templates/admin/storefront/area-status.php:36 msgid "Status" msgstr "Estado" #: templates/admin/storefront/area-status.php:29 msgid "Add a store page" msgstr "Añadir una página de tienda" #: templates/admin/storefront/area-status.php:24 msgid "Connect your %s store" msgstr "Conecte su tienda de %s" #: templates/admin/storefront/area-status.php:21 msgid "Your store page" msgstr "La página de su tienda" #: templates/admin/storefront/area-status.php:10 msgid "To start selling, add a page to your site where the storefront will display." msgstr "Para comenzar a vender, añada una página a su sitio web donde se muestre el escaparate virtual." #: templates/admin/storefront/area-status.php:7 msgid "While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site." msgstr "Mientras su tienda aún no esté conectada, se mostrará una tienda de demostración en su sitio web. Échele un vistazo para tener una idea de cómo se verá su tienda en el sitio web." #: templates/admin/storefront/area-status.php:4 msgid "Store page on your site" msgstr "Página de la tienda en su sitio web" #: templates/admin/storefront/area-navigation.php:205 msgid "The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href=\"%s\" target=\"_blank\">adjust the cart icon appearance</a>." msgstr "El icono del carrito de compras muestra la cantidad de artículos en el carrito y ayuda a los clientes a realizar el pago. Además, puede <a href=\"%s\" target=\"_blank\">ajustar la apariencia del icono del carrito</a>." #: templates/admin/storefront/area-navigation.php:201 msgid "Display the shopping cart icon on site pages" msgstr "Muestre el icono del carrito de compras en las páginas del sitio web" #: templates/admin/storefront/area-navigation.php:179 msgid "Manage Sidebar" msgstr "Gestionar la barra lateral" #: templates/admin/storefront/area-navigation.php:175 msgid "Highlight your best sellers or new products in the website sidebar." msgstr "Destaque sus mejores ventas o nuevos productos en la barra lateral del sitio web." #: templates/admin/storefront/area-navigation.php:173 msgid "Feature your products in the sidebar" msgstr "Destaque sus productos en la barra lateral" #: templates/admin/storefront/area-navigation.php:151 msgid "Add Store Page to Menu" msgstr "Añadir la página de la tienda al menú" #: templates/admin/storefront/area-navigation.php:147 msgid "Make your store accessible from the site menu so your customers can easily find it." msgstr "Haga que su tienda sea accesible desde el menú del sitio web para que sus clientes puedan encontrarla fácilmente." #: templates/admin/storefront/area-navigation.php:141 msgid "Add store page to the site menu" msgstr "Añadir la página de la tienda al menú del sitio web" #: templates/admin/storefront/area-navigation.php:118 msgid "Edit URL Slug" msgstr "Editar «slug» de la dirección URL" #: templates/admin/storefront/area-navigation.php:102 msgid "Current URL slug: /<span data-ec-store-slug>%s</span>" msgstr "«Slug» actual de la dirección URL: /<span data-ec-store-slug>%s</span>" #: templates/admin/storefront/area-navigation.php:78 msgid "Save" msgstr "Guardar" #: templates/admin/storefront/area-navigation.php:69 msgid "URL Slug" msgstr "«Slug» de la dirección URL" #: templates/admin/storefront/area-navigation.php:60 #: templates/admin/storefront/area-navigation.php:113 msgid "A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use \"/shop\" or \"/products\"." msgstr "Un «slug» es la última parte de una URL. Puede crear un «slug» personalizado para la página de su tienda. Es mejor que sea corto, ya que los clientes y los motores de búsqueda prefieren las URL cortas. Por ejemplo, utilice «/tienda» o «/productos»." #: templates/admin/storefront/area-navigation.php:56 #: templates/admin/storefront/area-navigation.php:98 msgid "Customize store page address" msgstr "Personalizar la dirección de la página de la tienda" #: templates/admin/storefront/area-navigation.php:29 msgid "Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href=\"%s\" target=\"_blank\">WordPress Settings > Reading</a>" msgstr "Añada su escaparate virtual a la página de inicio del sitio web para que sea más notable. También puede modificar la configuración de la página de inicio del sitio web en <a href=\"%s\" target=\"_blank\">Configuración de WordPress > Lectura</a>." #: templates/admin/storefront/area-navigation.php:21 msgid "Show your store on the home page" msgstr "Muestre su tienda en la página de inicio" #: templates/admin/storefront/area-navigation.php:4 msgid "Help customers find your store on the website." msgstr "Ayude a los clientes a encontrar su tienda en el sitio web." #: templates/admin/storefront/area-navigation.php:3 msgid "Navigation" msgstr "Navegación" #: templates/admin/welcome-no_oauth.php:12 msgid "Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>." msgstr "El ID de la tienda es un identificador único de su cuenta de %1$s. Puede encontrarlo en su panel de control de %1$s en la <a %2$s>página del panel</a>." #: templates/admin/welcome-create.php:11 msgid "Your store has been created. Preparing your store dashboard ..." msgstr "Se ha creado su tienda. Preparando el panel de su tienda..." #: templates/admin/welcome-connect.php:8 msgid "Create store" msgstr "Crear tienda" #: templates/admin/welcome-connect.php:4 msgid "Connect Your Store" msgstr "Conecte su tienda" #: templates/admin/welcome-page.php:61 msgid "Provided by <a %s>%s</a>" msgstr "Proporcionado por <a %s>%s</a>" #: templates/admin/welcome-page.php:33 msgid "To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>." msgstr "Para añadir su tienda a su sitio web, introduzca el ID de su tienda de %1$s en el campo a continuación. Si aún no tiene una cuenta de %1$s, cree una gratis en el <a %2$s>sitio web de %1$s</a>." #: templates/admin/welcome-page.php:20 msgid "Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website." msgstr "Cree una nueva tienda o, si ya tiene una cuenta de %s, conéctela. El complemento le guiará a través de la configuración de la tienda y le ayudará a publicarla en su sitio web." #: templates/admin/welcome-page.php:12 msgid "Add an Online Store to Your Website" msgstr "Añadir una tienda en línea a su sitio web" #: includes/class-ecwid-store-page.php:566 msgid "This is a demo store. Create your store to see your store products here." msgstr "Esto es una tienda de demostración. Cree su tienda para ver los productos de su tienda aquí." #: includes/class-ecwid-admin-storefront-page.php:539 msgid "Publish" msgstr "Publicar" #: templates/admin/storefront/area-design.php:33 #: templates/admin/storefront/area-design.php:59 #: includes/class-ecwid-admin-storefront-page.php:532 msgid "Edit" msgstr "Editar" #: includes/class-ecwid-admin-storefront-page.php:525 msgid "Preview" msgstr "Vista previa" #: includes/class-ecwid-admin-storefront-page.php:516 msgid "Switch to draft" msgstr "Cambiar al borrador" #: includes/class-ecwid-admin-storefront-page.php:506 msgid "Edit page" msgstr "Editar página" #: includes/class-ecwid-admin-storefront-page.php:499 msgid "View store page" msgstr "Ver la página de la tienda" #: includes/class-ecwid-admin-storefront-page.php:286 msgid "Search products" msgstr "Buscar productos" #: includes/class-ecwid-admin-storefront-page.php:265 msgid "Category" msgstr "Categoría" #: includes/class-ecwid-admin-storefront-page.php:240 msgid "Page with that name already exists." msgstr "Ya existe una página con ese nombre." #: includes/class-ecwid-admin.php:538 msgid "My Profile" msgstr "Mi perfil" #: includes/class-ecwid-admin.php:533 msgid "Apps" msgstr "Aplicaciones" #: includes/class-ecwid-admin.php:523 msgid "Shipping & Pickup" msgstr "Envío y recogida" #: includes/class-ecwid-admin.php:518 msgid "Payment" msgstr "Pago" #: includes/class-ecwid-admin.php:513 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:88 msgid "Design" msgstr "Diseño" #: includes/class-ecwid-admin.php:509 msgid "Configuration" msgstr "Configuración" #: includes/class-ecwid-admin.php:504 msgid "All Sales Channels" msgstr "Todos los canales de venta" #: includes/class-ecwid-admin.php:499 msgid "Website" msgstr "Sitio web" #: includes/class-ecwid-admin.php:494 msgid "Mobile" msgstr "Móvil" #: includes/class-ecwid-admin.php:485 msgid "Sales channels" msgstr "Canales de venta" #: includes/class-ecwid-admin.php:480 msgid "Reports" msgstr "Informes" #: includes/class-ecwid-admin.php:475 msgid "Marketing" msgstr "Mercadotecnia" #: includes/class-ecwid-admin.php:470 msgid "Catalog" msgstr "Catálogo" #: includes/class-ecwid-admin.php:465 msgid "My Sales" msgstr "Mis ventas" #: includes/class-ecwid-admin.php:455 msgid "Store management" msgstr "Gestión de la tienda" #: includes/class-ecwid-admin.php:344 msgid "Instant site" msgstr "Sitio web instantáneo" #: includes/class-ecwid-admin.php:153 includes/class-ecwid-admin.php:154 #: includes/class-ecwid-admin.php:309 msgid "Storefront" msgstr "Escaparate virtual" #: ecwid-shopping-cart.php:1111 msgid "Manage storefront" msgstr "Gestionar escaparate virtual" #: ecwid-shopping-cart.php:1111 msgid "Customize design" msgstr "Personalizar el diseño" #: ecwid-shopping-cart.php:1103 msgid "Manage store" msgstr "Gestionar la tienda" #: templates/importer/woo-main.tpl.php:97 msgid "Start Import" msgstr "Iniciar la importación" #: templates/importer/woo-main.tpl.php:87 msgid "Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target=\"_blank\">\"Billing & Plans\"</a></nobr> page in your Ecwid store control panel." msgstr "Tenga en cuenta el número máximo de productos y categorías que puede tener en su tienda de Ecwid. Esta herramienta de importación se detendrá automáticamente cuando se alcance el límite de productos de la tienda. Para conocer el límite actual de la tienda o aumentarlo, consulte la página <nobr><a %s target=\"_blank\">«Facturación y planes»</a></nobr> ubicada en el panel de su tienda de Ecwid." #: templates/importer/woo-main.tpl.php:82 msgid "Import creates new products and update the existing products with matching SKUs." msgstr "La importación crea nuevos productos y actualiza los productos existentes con las REF correspondientes." #: templates/importer/woo-main.tpl.php:60 msgid "Copying products and categories." msgstr "Copia de productos y categorías." #: templates/importer/woo-main.tpl.php:50 msgid "Import completed. <a href=\"%s\">Run again.</a>" msgstr "Importación completada. <a href=\"%s\">Ejecútela de nuevo.</a>" #: templates/importer/woo-main.tpl.php:34 msgid "Import is in Progress" msgstr "La importación está en progreso" #: templates/importer/woo-main.tpl.php:32 msgid "Import your products from Woocommerce to %s" msgstr "Importe sus productos de Woocommerce a %s" #: templates/importer/woo-main.tpl.php:18 msgid "Update your catalog" msgstr "Actualice su catálogo" #: templates/importer/woo-main.tpl.php:4 msgid "Import Your Products From Woocommerce to %s" msgstr "Importe sus productos de Woocommerce a %s" #: templates/importer/import-no-token.tpl.php:3 msgid "Click the connect button to get rights to update the product catalog" msgstr "Haga clic en el botón «Conectar» para obtener los permisos para actualizar el catálogo de productos" #: templates/importer/woo-complete-alert.tpl.php:52 msgid "Go to Your %s Products" msgstr "Ir a sus productos de %s" #: templates/importer/woo-complete-alert.tpl.php:43 msgid "Download <a href=\"%s\">import log</a>" msgstr "Descargar <a href=\"%s\">registro de importación</a>" #: templates/importer/woo-complete-alert.tpl.php:32 msgid "Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>" msgstr "Parte de los productos no se han copiado a %1$s porque alcanzó el límite de productos en su plan de precios en %1$s. Si desea importar más productos, considere <nobr><a %2$s>actualizar su plan de %1$s.</a></nobr>" #: templates/importer/woo-complete-alert.tpl.php:21 msgid "<b>%s</b> categories" msgstr "<b>%s</b> categorías" #: templates/importer/woo-complete-alert.tpl.php:18 msgid "Imported <b>%s</b> products" msgstr "<b>%s</b> productos importados" #: templates/importer/woo-complete-alert.tpl.php:15 msgid "Import completed" msgstr "Importación completada" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:10 #: includes/widgets/class-ecwid-widget-product-browser.php:12 msgid "Online store" msgstr "Tienda en línea" #: includes/class-ecwid-store-page.php:476 msgid "%s Store Page" msgstr "Página de la tienda de %s" #: templates/advanced-settings.php:79 msgid "Integration with search on your site" msgstr "Integración con la búsqueda en su sitio web" #: templates/sync.php:130 msgid "Deleted products synchronized: %1$s out of %2$s" msgstr "Productos eliminados sincronizados: %1$s de %2$s" #: includes/class-ecwid-custom-admin-page.php:66 msgid "Themes for Ecwid" msgstr "Temas para Ecwid" #: includes/class-ecwid-custom-admin-page.php:33 msgid "Plugins for Ecwid" msgstr "Complementos para Ecwid" #: includes/class-ecwid-popup-deactivate.php:138 msgid "I use this WordPress theme: %s" msgstr "Utilizo este tema de WordPress: %s" #: includes/class-ecwid-popup-deactivate.php:132 msgid "I couldn’t find a WordPress theme that goes well with %s" msgstr "No pude encontrar un tema de WordPress adecuado para %s" #: includes/class-ecwid-product-browser.php:357 msgid "On the right" msgstr "A la derecha" #: includes/class-ecwid-product-browser.php:353 msgid "On the left" msgstr "A la izquierda" #: includes/class-ecwid-product-browser.php:349 msgid "Filters panel position" msgstr "Posición del panel de filtros" #: includes/class-ecwid-product-browser.php:209 msgid "Default product_ID" msgstr "ID del producto predeterminado" #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:73 msgid "Cart icon" msgstr "Icono del carrito de compras" #: templates/shortcode-stub-store.tpl.php:4 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:20 #: js/gutenberg/blocks.build.js:1 msgid "Store Home Page" msgstr "Página de inicio de la tienda" #: ecwid-shopping-cart.php:431 msgid "Edit Category" msgstr "Editar categoría" #: ecwid-shopping-cart.php:430 msgid "Edit Product" msgstr "Editar producto" #: includes/class-ecwid-admin.php:142 includes/class-ecwid-admin.php:143 msgid "Online Store Apps" msgstr "Aplicaciones de la tienda en línea" #. Plugin Name of the plugin msgid "Ecwid Ecommerce Shopping Cart" msgstr "Carrito de compras del comercio electrónico de Ecwid" #: includes/class-ecwid-custom-admin-page.php:58 includes/faq_entries.php:76 msgid "Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href=\"%s\">TemplateMonster themes</a>" msgstr "Ecwid es compatible con cualquier tema de WordPress. Ya sea un tema gratuito del catálogo de WordPress.org, un tema prémium de un proveedor externo o un tema personalizado; su tienda de Ecwid funcionará bien con cualquiera de ellos. Si desea un tema prémium, le recomendamos <a href=\"%s\">temas de TemplateMonster</a>." #: includes/faq_entries.php:74 msgid "Is there a WordPress theme for Ecwid?" msgstr "¿Existe algún tema de WordPress para Ecwid?" #: templates/admin-footer.php:19 msgid "<a href=\"admin.php?page=" msgstr "<a href=\"admin.php?page=" #: includes/integrations/class-ecwid-integration-gutenberg.php:113 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:25 msgid "You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href=\"%1$s\">Appearance → Customize → %2$s</a>” menu to enable it." msgstr "Puede habilitar un «widget» adicional del icono de la bolsa de compras que aparecerá en las páginas de su sitio web. Abra el menú «<a href=\"%1$s\">Apariencia → Personalizar → %2$s</a>» para habilitarlo." #: includes/integrations/class-ecwid-integration-gutenberg.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:18 msgctxt "gutenberg-store-block-stub" msgid "Store" msgstr "Tienda" #: includes/class-ecwid-product-browser.php:472 msgid "Image feed" msgstr "Canal de imagen" #: includes/class-ecwid-product-browser.php:467 msgid "Vertical thumbnails" msgstr "Miniaturas verticales" #: includes/class-ecwid-product-browser.php:462 msgid "Horizontal thumbnails" msgstr "Miniaturas horizontales" #: includes/class-ecwid-product-browser.php:452 msgid "3 columns, image on the right" msgstr "3 columnas, imagen a la derecha" #: includes/class-ecwid-product-browser.php:448 msgid "3 columns, image on the left" msgstr "3 columnas, imagen a la izquierda" #: includes/class-ecwid-product-browser.php:444 msgid "2 columns, image on the right" msgstr "2 columnas, imagen a la derecha" #: includes/class-ecwid-product-browser.php:440 msgid "2 columns, image on the left" msgstr "2 columnas, imagen a la izquierda" #: includes/class-ecwid-product-browser.php:429 msgid "Landscape 3:2" msgstr "Horizontal 3:2" #: includes/class-ecwid-product-browser.php:424 msgid "Landscape 4:3" msgstr "Horizontal 4:3" #: includes/class-ecwid-product-browser.php:419 msgid "Square 1:1" msgstr "Cuadrado 1:1" #: includes/class-ecwid-product-browser.php:414 msgid "Portrait 3:4" msgstr "Vertical 3:4" #: includes/class-ecwid-product-browser.php:409 msgid "Portrait 2:3" msgstr "Vertical 2:3" #: includes/class-ecwid-product-browser.php:399 msgid "L" msgstr "G" #: includes/class-ecwid-product-browser.php:395 msgid "M" msgstr "M" #: includes/class-ecwid-product-browser.php:391 msgid "S" msgstr "P" #: includes/class-ecwid-product-browser.php:381 msgid "Show on hover" msgstr "Mostrar al pasar el ratón" #: includes/class-ecwid-product-browser.php:377 msgid "Hide" msgstr "Ocultar" #: includes/class-ecwid-product-browser.php:373 msgid "Show" msgstr "Mostrar" #: includes/class-ecwid-product-browser.php:342 msgid "Background color" msgstr "Color del fondo" #: includes/class-ecwid-product-browser.php:335 msgid "Link color" msgstr "Color del enlace" #: includes/class-ecwid-product-browser.php:328 msgid "Price color" msgstr "Color del precio" #: includes/class-ecwid-product-browser.php:321 msgid "Text color" msgstr "Color del texto" #: includes/class-ecwid-product-browser.php:314 msgid "Button color" msgstr "Color del botón" #: includes/class-ecwid-product-browser.php:299 msgid "Wholesale prices" msgstr "Precios al por mayor" #: includes/class-ecwid-product-browser.php:292 msgid "\"In stock\" label" msgstr "Etiqueta de productos «En existencia»" #: includes/class-ecwid-product-browser.php:285 msgid "Available qty in stock" msgstr "Cantidad disponible en existencia" #: includes/class-ecwid-product-browser.php:278 msgid "Product quantity" msgstr "Cantidad de productos" #: includes/class-ecwid-product-browser.php:271 msgctxt "product-browser-attributes" msgid "Product price" msgstr "Precio del producto" #: includes/class-ecwid-product-browser.php:264 msgctxt "product-browser-attributes" msgid "Product SKU" msgstr "REF del producto" #: includes/class-ecwid-product-browser.php:257 msgid "Breadcrumbs" msgstr "Migas de pan" #: includes/class-ecwid-product-browser.php:241 msgid "Image gallery layout" msgstr "Diseño de la galería de imágenes" #: includes/integrations/class-ecwid-integration-gutenberg.php:391 #: includes/class-ecwid-product-browser.php:224 #: includes/class-ecwid-product-browser.php:233 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:212 msgid "Show description under the image" msgstr "Mostrar descripción debajo de la imagen" #: includes/class-ecwid-product-browser.php:216 msgid "Product page layout" msgstr "Diseño de la página de productos" #: includes/class-ecwid-product-browser.php:194 msgid "Display sort by link" msgstr "Mostrar «ordenar por enlace»" #: includes/class-ecwid-product-browser.php:186 #: includes/class-ecwid-product-browser.php:306 msgid "Display sign in link" msgstr "Mostrar el enlace de inicio de sesión" #: includes/class-ecwid-product-browser.php:178 msgid "Display footer menu" msgstr "Mostrar el menú del pie de página" #: includes/class-ecwid-product-browser.php:170 msgid "Display breadcrumbs" msgstr "Mostrar migas de pan" #: includes/class-ecwid-product-browser.php:163 js/gutenberg/blocks.build.js:1 msgid "Display search box" msgstr "Mostrar el cuadro de búsqueda" #: includes/class-ecwid-product-browser.php:156 msgid "Display categories menu" msgstr "Mostrar el menú de categorías" #: includes/class-ecwid-product-browser.php:148 msgid "Category thumbnail aspect ratio" msgstr "Relación de aspecto de la miniatura de la categoría" #: includes/class-ecwid-product-browser.php:140 msgid "Category thumbnail size" msgstr "Tamaño de la miniatura de la categoría" #: includes/class-ecwid-product-browser.php:131 msgid "Image only" msgstr "Solo imagen" #: includes/class-ecwid-product-browser.php:127 msgid "Title only" msgstr "Solo título" #: includes/class-ecwid-product-browser.php:123 msgid "Image and title on mouse over" msgstr "Imagen y título al pasar el ratón por encima" #: includes/class-ecwid-product-browser.php:119 msgid "Title on image" msgstr "Título en la imagen" #: includes/class-ecwid-product-browser.php:115 msgid "Title under image" msgstr "Título debajo de la imagen" #: includes/class-ecwid-product-browser.php:111 msgid "Category card layout" msgstr "Diseño de la ficha de categoría" #: includes/class-ecwid-product-browser.php:103 msgid "Show additional image on hover" msgstr "Mostrar imagen adicional al pasar el ratón" #: includes/class-ecwid-product-browser.php:95 msgid "Buy now buttons" msgstr "Botones de «Comprar ahora»" #: includes/class-ecwid-product-browser.php:87 msgid "Product SKU" msgstr "REF del producto" #: includes/class-ecwid-product-browser.php:79 msgid "Product price" msgstr "Precio del producto" #: includes/class-ecwid-product-browser.php:71 msgid "Product title" msgstr "Título del producto" #: includes/class-ecwid-product-browser.php:61 msgid "Justify" msgstr "Justificado" #: includes/class-ecwid-product-browser.php:56 msgid "Right" msgstr "Derecha" #: includes/class-ecwid-product-browser.php:51 msgid "Center" msgstr "Centrado" #: includes/class-ecwid-product-browser.php:46 msgid "Left" msgstr "Izquierda" #: includes/class-ecwid-product-browser.php:42 msgid "Product card text align" msgstr "El texto de la ficha del producto se alinea" #: includes/class-ecwid-product-browser.php:34 msgid "Show product card border" msgstr "Mostrar el borde de la ficha del producto" #: includes/class-ecwid-product-browser.php:26 msgid "Product thumbnail aspect ratio" msgstr "Relación de aspecto de la miniatura del producto" #: includes/class-ecwid-product-browser.php:18 msgid "Product thumbnail size" msgstr "Tamaño de la miniatura del producto" #: includes/class-ecwid-product-browser.php:10 msgid "Show product thumbnails" msgstr "Mostrar miniaturas de los productos" #. Author of the plugin msgid "Ecwid Ecommerce" msgstr "Comercio electrónico Ecwid" #: templates/importer/woo-summary.tpl.php:34 msgid "After import, your %s store will have " msgstr "Después de la importación, su tienda de %s tendrá " #: templates/importer/woo-summary.tpl.php:21 msgid "Your %s store has " msgstr "Su tienda de %s tiene " #: templates/importer/woo-summary.tpl.php:10 msgid "Your WooCommerce store has " msgstr "Su tienda de WooCommerce tiene " #: includes/integrations/class-ecwid-integration-elementor.php:64 #: includes/integrations/class-ecwid-integration-divibuilder.php:25 #: includes/integrations/class-ecwid-integration-gutenberg.php:94 msgid "%s Store" msgstr "Tienda de %s" #: includes/importer/class-ecwid-import-page.php:184 msgid "%s products" msgstr "%s productos" #: includes/importer/class-ecwid-import-page.php:178 msgid "%s products and %s categories" msgstr "%s productos y %s categorías" #: includes/class-ecwid-stub-renderer.php:27 #: includes/class-ecwid-admin-storefront-page.php:272 msgid "Product" msgstr "Producto" #: includes/class-ecwid-message-manager.php:278 #: includes/class-ecwid-message-manager.php:297 #: includes/class-ecwid-message-manager.php:318 msgid "Warning: some of your online store features are disabled. Please contact your hosting provider to resolve." msgstr "Advertencia: algunas de las funciones de su tienda en línea están inhabilitadas. Póngase en contacto con su proveedor de alojamiento web para resolverlo." #: templates/admin/legacy-connect.tpl.php:39 msgid "Create new account" msgstr "Crear una nueva cuenta" #: templates/admin/legacy-connect.tpl.php:33 msgid "Register at %s" msgstr "Registrarse en %s" #: includes/class-ecwid-floating-minicart.php:155 msgid "Bottom left" msgstr "Abajo a la izquierda" #: includes/class-ecwid-floating-minicart.php:154 msgid "Top left" msgstr "Arriba a la izquierda" #: includes/class-ecwid-floating-minicart.php:113 msgid "Show on all pages" msgstr "Mostrar en todas las páginas" #: includes/class-ecwid-floating-minicart.php:112 msgid "Show on store pages" msgstr "Mostrar en las páginas de la tienda" #: includes/class-ecwid-floating-minicart.php:111 msgid "Do not show" msgstr "No mostrar" #: includes/class-ecwid-customizer.php:134 msgid "Vertical indent" msgstr "Sangría vertical" #: includes/class-ecwid-customizer.php:123 msgid "Horizontal indent" msgstr "Sangría horizontal" #: includes/class-ecwid-customizer.php:97 msgid "Icon" msgstr "Icono" #: includes/class-ecwid-customizer.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:79 msgid "Border" msgstr "Borde" #: includes/class-ecwid-customizer.php:72 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:67 msgid "Layout" msgstr "Diseño" #: includes/class-ecwid-customizer.php:61 msgid "Show when empty" msgstr "Mostrar cuando esté vacío" #: includes/class-ecwid-customizer.php:49 msgid "Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The \"Show on store pages\" and \"Show when empty\" options will apply to the cart widget on site when published" msgstr "Nota: cuando está habilitado, el «widget» del carrito siempre se mostrará en la vista previa para que sea más fácil personalizarlo. Las opciones «Mostrar en las páginas de la tienda» y «Mostrar cuando esté vacío» se aplicarán al «widget» del carrito en el sitio cuando se publiquen" #: includes/class-ecwid-customizer.php:47 msgid "Display shopping cart" msgstr "Mostrar el carrito de compras" #: includes/class-ecwid-customizer.php:35 msgid "Shopping Cart Widget" msgstr "«Widget» del carrito de compras" #. Author URI of the plugin msgid "https://ecwid.to/ecwid-site" msgstr "https://ecwid.to/ecwid-site" #: templates/product-popup.php:247 msgid "selected product" msgstr "producto seleccionado" #: templates/product-popup.php:138 templates/product-popup.php:143 msgid "Selected Product" msgstr "Producto seleccionado" #: templates/product-popup.php:124 msgid " Choose another product" msgstr " Elegir otro producto" #: templates/importer/landing.tpl.php:20 msgid "Import your WooCommerce catalog to %s" msgstr "Importe su catálogo de WooCommerce a %s" #: includes/widgets/nsf-minicart-editor.tpl.php:35 msgid "Border:" msgstr "Borde:" #: includes/widgets/nsf-minicart-editor.tpl.php:19 msgid "Cart icon:" msgstr "Icono del carrito:" #: includes/widgets/nsf-minicart-editor.tpl.php:3 msgid "Layout:" msgstr "Diseño:" #: includes/class-ecwid-floating-minicart.php:145 msgid "No border" msgstr "Sin borde" #: includes/class-ecwid-floating-minicart.php:144 msgid "Pill" msgstr "Píldora" #: includes/class-ecwid-floating-minicart.php:143 msgid "Rectangle" msgstr "Rectángulo" #: includes/class-ecwid-floating-minicart.php:136 msgid "Basket" msgstr "Cesta" #: includes/class-ecwid-floating-minicart.php:134 msgid "Bag" msgstr "Bolsa" #: includes/class-ecwid-floating-minicart.php:127 msgid "Icon, label, item count, subtotal and link" msgstr "Icono, etiqueta, total de artículos, subtotal y enlace" #: includes/class-ecwid-floating-minicart.php:126 msgid "Icon, label, item count and subtotal" msgstr "Icono, etiqueta, total de artículos y subtotal" #: includes/class-ecwid-floating-minicart.php:125 msgid "Icon, label and item count" msgstr "Icono, etiqueta y total de artículos" #: includes/class-ecwid-floating-minicart.php:124 msgid "Icon and item count" msgstr "Icono y total de artículos" #: includes/class-ecwid-floating-minicart.php:123 msgid "Label and item count" msgstr "Etiqueta y y total de artículos" #: includes/class-ecwid-floating-minicart.php:122 msgid "Item count only" msgstr "Solo el total de artículos" #: includes/class-ecwid-floating-minicart.php:121 msgid "Small icon and item count" msgstr "Icono pequeño y total de artículos" #: includes/class-ecwid-floating-minicart.php:120 msgid "Small icon" msgstr "Icono pequeño" #: includes/widgets/class-ecwid-widget-minicart.php:9 msgid "Shopping Cart (deprecated)" msgstr "Carrito de compras (descontinuado)" #: includes/widgets/class-ecwid-widget-minicart-miniview.php:9 msgid "Shopping Cart Mini (deprecated)" msgstr "Carrito de compras en miniatura (descontinuado)" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:21 msgid "Shopping Cart Floating (deprecated)" msgstr "Carrito de compras flotante (descontinuado)" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:69 msgid "Displays storefront: product listing and checkout" msgstr "Muestra el escaparate virtual: listado de productos y pago" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:67 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:70 msgctxt "vc-tab" msgid "Online store" msgstr "Tienda en línea" #: includes/integrations/class-ecwid-integration-gutenberg.php:105 #: includes/gutenberg/class-ecwid-gutenberg.php:131 msgid "Your product" msgstr "Su producto" #: templates/shortcode-stub-store.tpl.php:18 #: includes/integrations/class-ecwid-integration-gutenberg.php:103 #: includes/widgets/class-ecwid-widget-product-browser.php:11 #: includes/gutenberg/class-ecwid-gutenberg.php:129 msgid "Your store will be shown here" msgstr "Su tienda se mostrará aquí" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:31 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:101 #: includes/integrations/class-ecwid-integration-gutenberg.php:101 #: includes/gutenberg/class-ecwid-gutenberg.php:127 #: js/gutenberg/blocks.build.js:1 msgid "Choose product" msgstr "Elegir producto" #: includes/integrations/class-ecwid-integration-gutenberg.php:97 #: includes/gutenberg/class-ecwid-gutenberg.php:123 msgid "%s product" msgstr "%s producto" #: templates/wp-toolbox.tpl.php:4 msgid "Take advantage of powerful apps and extensions designed to enhance your store." msgstr "Aproveche las increíbles aplicaciones y extensiones diseñadas para mejorar su tienda." #: templates/wp-toolbox.tpl.php:3 msgid "Extensions for your Store" msgstr "Extensiones para su tienda" #: templates/importer/woo-summary.tpl.php:6 msgid "Import summary" msgstr "Resumen de la importación" #: templates/importer/woo-main.tpl.php:19 msgid "This import will copy your WooCommerce products and categories to your %s store." msgstr "Esta importación copiará sus productos y categorías de WooCommerce a su tienda de %s." #: templates/importer/woo-main.tpl.php:62 msgid "Importing %s of %s items" msgstr "Importando %s de %s artículos" #: templates/importer/woo-complete-alert.tpl.php:27 msgid "Some of the items could not be imported." msgstr "Algunos de los artículos no se pudieron importar." #: templates/importer/landing.tpl.php:33 msgid "Learn more" msgstr "Más información" #: templates/importer/landing.tpl.php:33 msgid "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" msgstr "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" #: templates/importer/landing.tpl.php:31 msgid "Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center" msgstr "Ecwid le permite subir sus productos en forma de archivo CSV. Obtenga más información sobre esta herramienta en el centro de asistencia de Ecwid" #: templates/importer/landing.tpl.php:29 msgid "Import product catalog from other sources" msgstr "Importar el catálogo de productos de otras fuentes" #: templates/importer/landing.tpl.php:23 msgid "(You will be able to confirm the changes before the actual import)" msgstr "(podrá confirmar los cambios antes de la importación definitiva)" #: templates/importer/landing.tpl.php:12 msgid "We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?" msgstr "Notamos que tiene un WooCommerce instalado. Su tienda de WooCommerce tiene %1$s productos y %2$s categorías; ¿le gustaría importarlos a %3$s?" #: templates/importer/landing.tpl.php:9 msgid "Import product catalog from WooCommerce" msgstr "Importar el catálogo de productos de WooCommerce" #: templates/importer/landing.tpl.php:4 msgid "Here, we will help you uploading your product catalog to %s from another shopping cart or other sources." msgstr "Aquí, le ayudaremos a subir su catálogo de productos a %s de otro carrito de compras u otras fuentes." #: templates/importer/landing.tpl.php:1 msgid "Import products to your %s store" msgstr "Importe los productos a su tienda de %s" #: templates/dashboard-blog-posts.tpl.php:20 msgid "Knowledge Base" msgstr "Base de conocimiento" #: templates/dashboard-blog-posts.tpl.php:19 msgid "https://support.ecwid.com/hc/en-us" msgstr "https://support.ecwid.com/hc/en-us" #: templates/dashboard-blog-posts.tpl.php:14 msgid "https://www.ecwid.com/blog" msgstr "https://www.ecwid.com/blog" #: includes/importer/class-ecwid-import.php:39 msgid "Bulk import products and categories to your %s store" msgstr "Importar en masa productos y categorías a su tienda de %s" #: includes/importer/class-ecwid-import.php:38 msgid "%s products and categories" msgstr "%s productos y categorías" #: templates/importer/woo-main.tpl.php:36 #: includes/importer/class-ecwid-import-page.php:52 #: includes/importer/class-ecwid-import-page.php:53 msgid "Import your products from WooCommerce to %s" msgstr "Importe sus productos de WooCommerce a %s" #: includes/importer/class-ecwid-import-page.php:42 #: includes/importer/class-ecwid-import-page.php:43 msgid "Import" msgstr "Importar" #: templates/dashboard-blog-posts.tpl.php:15 #: includes/class-ecwid-wp-dashboard-feed.php:48 msgid "%s Blog" msgstr "Blog de %s" #: includes/class-ecwid-message-manager.php:345 msgid "No Thanks" msgstr "No, gracias" #: includes/class-ecwid-message-manager.php:343 msgid "Import my products from WooCommerce" msgstr "Importar mis productos de WooCommerce" #: includes/class-ecwid-message-manager.php:341 msgid "We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you." msgstr "Notamos que tiene WooCommerce instalado. Si desea copiar fácilmente sus productos de WooCommerce a %s, esta herramienta le ayudará." #: includes/class-ecwid-message-manager.php:340 msgid "Need help importing your products from WooCommerce to %s?" msgstr "¿Necesita ayuda para importar sus productos de WooCommerce a %s?" #: includes/class-ecwid-admin.php:213 includes/class-ecwid-admin.php:214 msgid "Customers" msgstr "Clientes" #: templates/help.php:28 msgid "or <a %s>Browse the Help Center" msgstr "o <a %s>consulte el centro de asistencia" #: templates/admin/welcome-connection-message.php:5 msgid "To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission." msgstr "Para mostrar su tienda en este sitio web, debe permitir que WordPress acceda a sus productos de %1$s. Pulse «Conectar» para otorgar el permiso." #: includes/faq_entries.php:40 msgid "Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target=\"_blank\" href=\"%s\">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans." msgstr "Nuestros 4 tipos de cuentas varían según la cantidad de productos, los tipos de funcionalidades y el nivel de asistencia. Para obtener más información, consulte nuestra <a target=\"_blank\" href=\"%s\">página de precios.</a><br /><br />Consejo profesional: también puede ahorrar dinero si se suscribe a nuestros planes anuales." #: includes/class-ecwid-popup-deactivate.php:59 msgid "[%s] WordPress plugin deactivation feedback (store ID: %s)" msgstr "[%s] Comentarios sobre la desactivación del complemento de WordPress (ID de la tienda: %s)" #: includes/class-ecwid-message-manager.php:289 msgid "Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data." msgstr "Su escaparate virtual (listado de productos y página de pago) está funcionando bien, pero las funciones avanzadas de la tienda, como el SEO y los «widgets» de la barra lateral, están inhabilitadas. Para habilitarlas y asegurarse de que su tienda funcione correctamente, pulse el botón de abajo para conectar su cuenta de %s. Esto tomará menos de un minuto; solo se le pedirá que inicie sesión en su cuenta y permita que este sitio web obtenga los datos de su tienda." #: includes/class-ecwid-message-manager.php:288 msgid "Action required: please connect your %s account" msgstr "Acción requerida: conecte su cuenta de %s" #: templates/popup/deactivate.php:24 msgid "Contact Support" msgstr "Ponerse en contacto con la asistencia" #: templates/popup/deactivate.php:1 msgid "If you have a moment, please let us know why you are deactivating:" msgstr "Si tiene un momento, háganos saber por qué está desactivando:" #: templates/admin/welcome-create.php:4 msgid "Create Store" msgstr "Crear tienda" #: templates/advanced-settings.php:1 msgid "%s — Advanced settings" msgstr "%s — Configuración avanzada" #: includes/widgets/class-ecwid-widget-random-products.php:10 msgid "Displays a list of random products." msgstr "Muestra una lista de productos aleatorios." #: includes/widgets/class-ecwid-widget-random-products.php:9 msgid "Random Products" msgstr "Productos aleatorios" #: includes/widgets/class-ecwid-widget-random-product.php:9 #: includes/widgets/class-ecwid-widget-random-product.php:64 msgid "Random Product" msgstr "Producto aleatorio" #: includes/widgets/class-ecwid-widget-random-product.php:8 msgid "Displays a random product from your store to attract customer attention." msgstr "Muestra un producto aleatorio de su tienda para atraer la atención del cliente." #: includes/widgets/class-ecwid-widget-latest-products.php:10 msgid "Displays the latest added products from your store. Show new products to returning customers to drive repeat sales." msgstr "Muestra los últimos productos añadidos de su tienda. Muestre nuevos productos a los clientes existentes para impulsar las ventas repetidas." #: includes/widgets/class-ecwid-widget-latest-products.php:9 msgid "Latest Products" msgstr "Últimos productos" #: includes/class-ecwid-popup-deactivate.php:164 msgid "Can you share your feedback? What was wrong?" msgstr "¿Podría compartir su opinión? ¿Qué fue lo que pasó?" #: includes/class-ecwid-popup-deactivate.php:161 msgid "Other" msgstr "Otro" #: includes/class-ecwid-popup-deactivate.php:155 msgid "It's a temporary deactivation. Please do not ask me again." msgstr "Es una desactivación temporal. No preguntarme de nuevo." #: includes/class-ecwid-popup-deactivate.php:152 msgid "Can you share the name of the plugin you chose?" msgstr "¿Podría compartir el nombre del complemento que ha elegido?" #: includes/class-ecwid-popup-deactivate.php:149 msgid "I found a better plugin" msgstr "Encontré un mejor complemento" #: includes/class-ecwid-popup-deactivate.php:146 msgid "What feature do you need?" msgstr "¿Qué función necesita?" #: includes/class-ecwid-popup-deactivate.php:143 msgid "The plugin doesn't support the feature I want" msgstr "El complemento no es compatible con la función que quiero" #: includes/class-ecwid-popup-deactivate.php:128 msgid "What was wrong?" msgstr "¿Qué fue lo que pasó?" #: includes/class-ecwid-popup-deactivate.php:125 msgid "I have a problem using this plugin" msgstr "Tengo un problema con el uso de este complemento" #: includes/class-ecwid-popup-deactivate.php:112 msgid "Before You Go" msgstr "Antes de que se vaya" #: templates/admin/storefront/area-navigation.php:79 #: includes/class-ecwid-popup-deactivate.php:105 msgid "Cancel" msgstr "Cancelar" #: includes/class-ecwid-popup-deactivate.php:101 msgid "Submit & Deactivate" msgstr "Enviar y desactivar" #: includes/class-ecwid-message-manager.php:244 #: includes/class-ecwid-store-page.php:568 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:51 #: ecwid-shopping-cart.php:1082 js/gutenberg/blocks.build.js:1 msgid "Set up your store" msgstr "Configure su tienda" #: templates/admin-head.php:8 includes/class-ecwid-admin.php:48 #: includes/integrations/class-ecwid-integration-gutenberg.php:45 #: includes/gutenberg/class-ecwid-gutenberg.php:69 msgid "%s" msgstr "%s" #: templates/product-popup.php:199 js/gutenberg/blocks.build.js:1 msgid "«Buy now» button" msgstr "Botón de «Comprar ahora»" #: templates/admin/simple-dashboard.php:10 msgid "%s Shopping Cart" msgstr "Carrito de compras de %s" #: templates/advanced-settings.php:42 msgid "Please subscribe to a paid plan to get this feature." msgstr "Suscríbase a un plan de pago para obtener esta función." #: templates/admin-footer.php:9 msgid "Get %s mobile app" msgstr "Descargue la aplicación móvil de %s" #: includes/class-ecwid-message-manager.php:272 msgid "Rate %s at WordPress.org" msgstr "Tasa de %s en WordPress.org" #: includes/class-ecwid-message-manager.php:268 msgid "Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site." msgstr "¿Le gusta su tienda de %s en línea? Apreciaríamos si comparte su opinión y vota por el complemento en el sitio de WordPress." #: includes/class-ecwid-message-manager.php:260 msgid "To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings." msgstr "Para añadir funciones adicionales a su tienda, arrastre y suelte los elementos de la tienda de %s en su sitio web. Una vez que haya terminado, puede volver a modificar su configuración." #: templates/sync.php:114 msgid "Provide access." msgstr "Otorgar acceso." #: templates/sync.php:113 msgid "To enable this feature, the plugin needs a permission to read your store product information." msgstr "Para habilitar esta función, el complemento necesita un permiso para leer la información del producto de su tienda." #: templates/product-popup.php:137 templates/product-popup.php:147 msgid "Choose Product" msgstr "Elegir producto" #: templates/product-popup.php:96 msgid "Try another search." msgstr "Intente otra búsqueda." #: templates/sync.php:152 msgid "Not synchronized yet" msgstr "No se ha sincronizado todavía" #: templates/sync.php:149 msgid "Last update" msgstr "Última actualización" #: templates/sync.php:145 msgid "Products are successfully synchronized. The product pages are up to date." msgstr "Los productos se sincronizaron satisfactoriamente. Las páginas de productos están actualizadas." #: templates/sync.php:138 msgid "Products synchronized: %1$s out of %2$s" msgstr "Productos eliminados sincronizados: %1$s de %2$s" #: templates/sync.php:126 msgid "We're synchronizing your products. This may take a few minutes. Please do not reload the page." msgstr "Estamos sincronizando sus productos. Esto puede tardar unos minutos. No actualice la página." #: templates/sync.php:119 msgid "Synchronize products" msgstr "Sincronizar productos" #: templates/advanced-settings.php:83 msgid "%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site." msgstr "%s almacena los datos de sus productos de forma segura en la nube. Las páginas de productos se muestran sobre la marcha cuando un cliente navega por su tienda. Por lo que, básicamente, los productos no se almacenan en el sitio web, por eso la búsqueda en el sitio web no encuentra páginas de productos mientras busca en las páginas del sitio web y en las publicaciones. Esta opción habilita un modo de almacenamiento local: los productos se almacenarán tanto en la nube como en su sitio web. Los resultados de la búsqueda en el sitio web incluirán las páginas de productos, así como las páginas o publicaciones habituales de su sitio web." #: templates/product-popup.php:243 msgid "Insert" msgstr "Insertar" #: templates/product-popup.php:242 msgid "select product" msgstr "seleccionar producto" #: templates/product-popup.php:241 templates/product-popup.php:246 msgid "customize appearance" msgstr "personalizar apariencia" #: templates/product-popup.php:224 msgid "Show price inside the \"Buy now\" button" msgstr "Mostrar el precio dentro del botón de «Comprar ahora»" #: templates/product-popup.php:229 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:62 #: js/gutenberg/blocks.build.js:1 msgid "Center align on a page" msgstr "Centrar la alineación en una página" #: templates/product-popup.php:219 js/gutenberg/blocks.build.js:1 msgid "Add border" msgstr "Añadir borde" #: templates/product-popup.php:188 js/gutenberg/blocks.build.js:1 msgid "Quantity" msgstr "Cantidad" #: templates/product-popup.php:178 js/gutenberg/blocks.build.js:1 msgid "Options" msgstr "Opciones" #: templates/product-popup.php:173 js/gutenberg/blocks.build.js:1 msgid "Picture" msgstr "Imagen" #: templates/product-popup.php:163 msgid "Choose product properties to display in widget" msgstr "Elija las propiedades del producto para mostrarlas en el «widget»" #: templates/product-popup.php:139 templates/product-popup.php:151 msgid "Customize widget" msgstr "Personalizar «widget»" #: templates/product-popup.php:97 msgid "Browse all products." msgstr "Explorar todos los productos." #: templates/product-popup.php:94 msgid "Nothing found for <span class=\"empty-page__term\">\"{{ data.term }}\"</span>" msgstr "No se ha encontrado nada en relación con <span class=\"empty-page__term\">«{{ data.term }}»</span>" #: templates/product-popup.php:80 msgid "Next page" msgstr "Página siguiente" #: templates/product-popup.php:69 msgid "Current Page" msgstr "Página actual" #: templates/product-popup.php:49 msgid "Title or SKU" msgstr "Título o REF" #: templates/product-popup.php:47 templates/product-popup.php:53 #: templates/product-popup.php:56 msgid "Search" msgstr "Buscar" #: templates/product-popup.php:29 msgid "SKU" msgstr "REF" #: templates/product-popup.php:23 msgid "Name" msgstr "Nombre" #: includes/class-ecwid-product-popup.php:150 msgid "Last Page" msgstr "Última página" #: includes/class-ecwid-product-popup.php:149 msgid "Next Page" msgstr "Página siguiente" #: includes/class-ecwid-product-popup.php:148 msgid "Previous Page" msgstr "Página anterior" #: includes/class-ecwid-product-popup.php:147 msgid "First Page" msgstr "Primera página" #: includes/class-ecwid-product-popup.php:107 msgid "Add Product" msgstr "Añadir producto" #: includes/class-ecwid-oauth.php:366 msgid "To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the \"Add product\" dialog." msgstr "A fin de poder elegir un producto para insertarlo en sus publicaciones y páginas, deberá volver a conectar su sitio a su tienda de %s. Esto solo requerirá que acepte la solicitud de permisos para que el complemento pueda listar sus productos en el cuadro de diálogo «Añadir producto»." #: templates/advanced-settings.php:54 msgid "To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>" msgstr "Para asegurarse de que su cliente puede acceder realmente a su sitio web y a la tienda, habilite el registro en las <a %s>configuraciones del sitio web</a>" #: templates/advanced-settings.php:48 msgid "To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>" msgstr "Para permitir que %s inicie la sesión de sus clientes automáticamente en su tienda, otorgue los permisos para utilizar los datos del cliente en la tienda. <a %s>Utilice este enlace para hacerlo</a>" #: templates/advanced-settings.php:39 msgid "Upgrade to get this feature" msgstr "Actualice para obtener esta función" #: templates/advanced-settings.php:32 msgid "Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again." msgstr "El inicio de sesión único les permite a sus clientes tener un inicio de sesión único para su sitio web de WordPress y su %s. Cuando alguien inicie sesión en su sitio web, también iniciará sesión automáticamente en su cuenta de cliente en la tienda sin necesidad de introducir su correo electrónico y contraseña nuevamente." #: templates/advanced-settings.php:27 msgid "Customer Single Sign-On" msgstr "Inicio de sesión único del cliente" #: includes/integrations/class-ecwid-integration-divibuilder.php:63 msgid "Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space." msgstr "Introduzca las clases CSS opcionales que se utilizarán para este módulo. Se puede utilizar una clase CSS para crear estilos CSS personalizados. Puede añadir varias clases separadas por un espacio." #: includes/integrations/class-ecwid-integration-divibuilder.php:60 msgid "CSS Class" msgstr "Clase CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:57 msgid "Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page." msgstr "Introduzca un ID de CSS opcional que se utilizará para este módulo. Se puede utilizar un ID para crear un estilo CSS personalizado o para crear enlaces a secciones particulares de su página web." #: includes/integrations/class-ecwid-integration-divibuilder.php:54 msgid "CSS ID" msgstr "ID de CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:51 msgid "This will change the label of the module in the builder for easy identification." msgstr "Esto cambiará la etiqueta del módulo en el creador para una fácil identificación." #: includes/integrations/class-ecwid-integration-divibuilder.php:49 msgid "Admin Label" msgstr "Etiqueta de administrador" #: includes/integrations/class-ecwid-integration-divibuilder.php:44 msgid "Here you can create the content that will be used within the module." msgstr "Aquí puede crear el contenido que se utilizará dentro del módulo." #: includes/integrations/class-ecwid-integration-divibuilder.php:41 msgid "Content" msgstr "Contenido" #: templates/admin-footer.php:29 msgid "<a %s>Reconnect</a>" msgstr "<a %s>Volver a conectar</a>" #: templates/help.php:15 msgid "https://support.ecwid.com/hc/en-us/search" msgstr "https://support.ecwid.com/hc/en-us/search" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:73 msgid "Browse by Category" msgstr "Buscar por categoría" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:15 msgid "Store Root Categories" msgstr "Categorías raíz de la tienda" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:14 msgid "Adds root categories list to the sidebar to let your customers navigate the store." msgstr "Añade la lista de categorías raíz a la barra lateral para que sus clientes puedan desplazarse por la tienda." #: templates/admin/welcome-connection-message.php:25 msgid "To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission." msgstr "Para vender utilizando %1$s, debe permitir que WordPress acceda al complemento %1$s. El botón «Conectar» lo redirigirá a su cuenta de %1$s donde puede otorgar el permiso." #: templates/admin-timeout.php:11 msgid "Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">our customer support team</a>." msgstr "Nuestro equipo ya está trabajando en este asunto. Actualice la página en unos minutos. Si el problema persiste, comuníquese con <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">nuestro equipo de atención al cliente</a>." #: templates/admin-timeout.php:9 msgid "Sorry we're having technical difficulties." msgstr "Le pido disculpas por las dificultades técnicas que estamos experimentando." #: includes/class-ecwid-floating-minicart.php:153 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:143 msgid "Top right" msgstr "Arriba a la derecha" #: includes/class-ecwid-floating-minicart.php:152 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:138 msgid "Bottom right" msgstr "Abajo a la derecha" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:135 #: includes/class-ecwid-customizer.php:110 msgid "Position" msgstr "Posición" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:20 msgid "Adds a shopping cart widget to the top right corner of your site." msgstr "Añada un «widget» de carrito de compras en la esquina superior derecha de su sitio web." #: templates/help.php:215 msgid "You can send a new request here." msgstr "Puede enviar una nueva solicitud aquí." #: templates/help.php:214 msgid " Thank you very much for contacting us! We will get back to you shortly." msgstr " ¡Muchas gracias por ponerse en contacto con nosotros! Nos pondremos en contacto con usted en breve." #: templates/help.php:213 msgid "Your email has been sent" msgstr "Se ha enviado su correo electrónico" #: templates/help.php:207 msgid "Send message failed" msgstr "Ocurrió un error al enviar el mensaje" #: templates/help.php:196 msgid "Send Message" msgstr "Enviar mensaje" #: templates/help.php:193 msgid "Type in your message here" msgstr "Escriba su mensaje aquí" #: templates/help.php:192 msgid "Subject" msgstr "Asunto" #: templates/help.php:186 msgid "Send a message to our support team" msgstr "Envíe un mensaje a nuestro equipo de asistencia" #: templates/help.php:177 msgid "Still have questions about Ecwid? Let us know!" msgstr "¿Todavía tiene preguntas acerca de Ecwid? ¡Háganoslo saber!" #: templates/help.php:176 msgid "Contact us" msgstr "Póngase en contacto con nosotros" #: templates/help.php:33 msgid "Frequently Asked Questions" msgstr "Preguntas frecuentes" #: templates/help.php:21 msgid "Search the Knowledge Base" msgstr "Buscar en la base de conocimientos" #: templates/help.php:17 msgid "E.g. How to set up shipping" msgstr "Por ejemplo, cómo establecer el envío" #: templates/help.php:11 msgid "How can we help you?" msgstr "¿Cómo podemos ayudarle?" #: includes/faq_entries.php:68 msgid "You can display your store on the site main page. Adjust the \"Reading\" settings of your site as described in our <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">Help Center.</a>" msgstr "Puede mostrar su tienda en la página principal del sitio web. Ajuste la configuración de «Lectura» de su sitio web como se describe en nuestro <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">centro de asistencia.</a>" #: includes/faq_entries.php:67 msgid "Is it possible to display my store on the site home page?" msgstr "¿Es posible mostrar mi tienda en la página de inicio del sitio web?" #: includes/faq_entries.php:61 msgid "To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">How to use it.</a>" msgstr "Para mostrar un solo producto en una página aparte o en una entrada de blog de su sitio web, utilice el código corto <b>[ecwid_product]</b>. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">Cómo utilizarlo</a>" #: includes/faq_entries.php:60 msgid "How to add a single product with the add to bag button to the site pages?" msgstr "¿Cómo añadir un solo producto con el botón de «añadir a la bolsa» en las páginas del sitio web?" #: includes/faq_entries.php:55 msgid "To create sitemap for your Wordpress site we suggest using <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> or <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">paid Ecwid users</a>." msgstr "Para crear un «Mapa del sitio» para su sitio web de Wordpress, le sugerimos que utilice los  complementos <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> o <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>. Estos complementos son totalmente compatibles con Ecwid y permiten generar un mapa del sitio que contiene enlaces a categorías y páginas de productos, por lo que las páginas de la tienda se indexarán más rápido. Tenga en cuenta que esta opción solo está disponible para los <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">usuarios de pago de Ecwid</a>." #: includes/faq_entries.php:54 msgid "How do I put my products in the sitemap?" msgstr "¿Cómo pongo mis productos en el mapa del sitio?" #: includes/faq_entries.php:48 msgid "You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open \"Appearance > Menus\" in your WordPress control panel and add the \"Store with Categories Menu\" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site." msgstr "Puede añadir el menú de categorías de la tienda al menú de su sitio web para ayudar a sus clientes a navegar fácilmente por su sitio web. Simplemente abra «Apariencia > Menús» en el panel de WordPress y añada el elemento «Tienda con menú de categorías» al menú de su sitio web. Aparecerá automáticamente un menú desplegable que contendrá las categorías de su tienda en su sitio web." #: includes/faq_entries.php:47 msgid "How do I add store categories to the site menu?" msgstr "¿Cómo puedo añadir categorías de tiendas al menú del sitio web?" #: includes/faq_entries.php:38 msgid "How much does Ecwid cost?" msgstr "¿Cuánto cuesta Ecwid?" #: includes/faq_entries.php:30 msgid "You can add product search box, cart widget and more on the <a href=\"%s\">\"Appearance / Widgets page\"</a> here in your site admin. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">More details.</a>" msgstr "Puede añadir un cuadro de búsqueda de productos, un «widget» de carrito y más desde la <a href=\"%s\">«Página de apariencia y widgets»</a> que se encuentra aquí en el administrador de su sitio web. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">Más detalles.</a>" #: includes/faq_entries.php:28 msgid "How can I add a cart widget to my site sidebar?" msgstr "¿Cómo puedo añadir un «widget» de carrito de compras a la barra lateral de mi sitio web?" #: includes/faq_entries.php:21 msgid "You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">More details.</a>" msgstr "Puede añadir su tienda en línea a su página empresarial de Facebook (no se necesitan complementos). Ecwid sincronizará automáticamente los productos, clientes, pedidos e inventario entre su tienda en línea de WordPress y Facebook. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">Más detalles.</a>" #: includes/faq_entries.php:20 msgid "How to set up a storefront on Facebook with Ecwid?" msgstr "¿Cómo crear una tienda en Facebook con Ecwid?" #: includes/faq_entries.php:13 msgid "Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">More details.</a>" msgstr "Ecwid ofrece aplicaciones móviles gratuitas para iOS y Android para que pueda gestionar su tienda y vender donde y cuando quiera. Escanee productos, supervise el inventario, gestione las ventas y acepte pagos utilizando su dispositivo móvil como una estación de punto de venta. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">Más detalles.</a>" #: includes/faq_entries.php:12 msgid "How can I manage my store from a mobile device?" msgstr "¿Cómo puedo gestionar mi tienda desde un dispositivo móvil?" #: includes/faq_entries.php:6 msgid "Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">More details.</a>" msgstr "Ecwid cuenta con la certificación PCI DSS Nivel 1, que es el estándar de oro para las soluciones de comercio electrónico en todo el mundo. Esto significa que no tendrá problemas de cumplimiento bancario cuando venda en línea con Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">Más detalles.</a>" #: includes/faq_entries.php:5 msgid "How secure is this plugin? Is my store PCI DSS compliant?" msgstr "¿Qué tan seguro es este complemento? ¿Mi tienda cumple con el PCI DSS?" #: includes/class-ecwid-nav-menus.php:32 msgid "Ecwid Menu Item" msgstr "Elemento del menú de Ecwid" #: includes/class-ecwid-admin.php:179 includes/class-ecwid-admin.php:180 msgid "Help" msgstr "Ayuda" #: templates/admin-footer.php:27 msgid "Want to connect another %s store?" msgstr "¿Desea conectar otra tienda de %s?" #: templates/admin-footer.php:17 msgid "Questions?" msgstr "¿Tiene alguna pregunta?" #: templates/admin-footer.php:6 msgid "Manage Store on iPhone, iPad or Android" msgstr "Gestione la tienda desde iPhone, iPad o Android" #: includes/class-ecwid-message-manager.php:254 msgid "Complete Setup" msgstr "Completar configuración" #: includes/class-ecwid-message-manager.php:253 msgid "Complete setup and start selling" msgstr "Complete la configuración y comience a vender" #: includes/class-ecwid-message-manager.php:242 msgid "Greetings! Your %s plugin is now active." msgstr "¡Enhorabuena! Su complemento de %s ya está activo." #: templates/debug.php:12 msgid "Download log file" msgstr "Descargar archivo de registro" #: templates/help.php:67 includes/oembed.php:75 includes/oembed.php:104 msgid "See more" msgstr "Ver más" #: ecwid-shopping-cart.php:1051 msgid "I have a problem with my %s store" msgstr "Tengo un problema con mi tienda de %s" #: includes/class-ecwid-message-manager.php:55 msgid "Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: \"The Wordpress function wp_remote_post() failed to connect a remote server because of some error: \"%s\". Seems like HTTP POST requests are disabled on this server\". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>." msgstr "Lo siento, hay un problema. Se supone que esta página muestra el panel de control de su tienda; sin embargo, este sitio web de Wordpress no parece poder conectarse al servidor de Ecwid para mostrar el panel de su tienda aquí. Es probable que esto se deba a una mala configuración del servidor; su proveedor de alojamiento web puede solucionarlo. Aquí hay una descripción más técnica del problema, la cual puede enviarle a su proveedor de alojamiento web: «La función de Wordpress wp_remote_post() no pudo conectarse a un servidor remoto debido al error: “%s”; parece que las solicitudes HTTP POST están inhabilitadas en este servidor». <br /><br />No dude en ponerse en contacto con nosotros en <a %s>wordpress@ecwid.com</a> y le ayudaremos a comunicarse con su proveedor de alojamiento web para pedirle que solucione el problema. <br /><br /> Mientras tanto, para gestionar su tienda, puede utilizar el panel de control web de Ecwid en <a %s>my.ecwid.com</a>. Su escaparate virtual está funcionando bien; puede echarle un vistazo aquí: <a %s>%s</a>." #: templates/store-popup.php:249 msgid "Open store dashboard" msgstr "Abrir el panel de la tienda" #: templates/store-popup.php:12 templates/store-popup.php:27 msgid "Store elements" msgstr "Elementos de la tienda" #: templates/reconnect-sso.php:10 msgid "Re-connect to Enable Control Panel" msgstr "Vuélvase a conectar para activar el panel de control" #: templates/reconnect-sso.php:8 msgid "Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page." msgstr "Gestione productos, supervise las ventas y ajuste la configuración: <nobr>todo sin</nobr> salir de esta página." #: templates/reconnect-sso.php:7 msgid "Your store Control Panel. Right here in WordPress." msgstr "Panel de control de su tienda. Aquí mismo en WordPress." #: ecwid-shopping-cart.php:2114 msgid "Orders" msgstr "Pedidos" #: includes/class-ecwid-nav-menus.php:168 ecwid-shopping-cart.php:2118 msgid "The store top-level categories are automatically added to this drop-down menu" msgstr "Las categorías de alto nivel de la tienda se añaden automáticamente a este menú desplegable" #: includes/class-ecwid-nav-menus.php:167 ecwid-shopping-cart.php:2117 msgid "Done" msgstr "Hecho" #: includes/class-ecwid-nav-menus.php:166 ecwid-shopping-cart.php:2116 msgid "Refresh categories list" msgstr "Actualizar la lista de categorías" #: includes/class-ecwid-nav-menus.php:165 msgid "Store Page" msgstr "Página de la tienda" #: includes/class-ecwid-nav-menus.php:319 msgid "Add to Menu" msgstr "Añadir al menú" #: includes/class-ecwid-nav-menus.php:316 msgid "Select All" msgstr "Seleccionar todo" #: includes/class-ecwid-nav-menus.php:369 msgid "Store with Categories Menu" msgstr "Tienda con menú de categorías" #: includes/class-ecwid-nav-menus.php:352 #: includes/class-ecwid-nav-menus.php:355 msgid "My Account" msgstr "Mi cuenta" #: includes/class-ecwid-nav-menus.php:335 #: includes/class-ecwid-floating-minicart.php:135 #: includes/class-ecwid-admin-storefront-page.php:279 msgid "Cart" msgstr "Carrito" #: includes/class-ecwid-admin.php:87 includes/class-ecwid-admin.php:88 #: includes/class-ecwid-products.php:228 ecwid-shopping-cart.php:2112 msgid "Products" msgstr "Productos" #: includes/class-ecwid-admin.php:79 includes/class-ecwid-admin.php:80 msgid "Sales" msgstr "Ventas" #: ecwid-shopping-cart.php:1119 msgid "Report a problem with the store" msgstr "Informar un problema con la tienda" #: ecwid-shopping-cart.php:1036 msgid "%s plugin doesn't work well with my \"%s\" theme" msgstr "El complemento %s no funciona bien con mi tema «%s»" #: templates/admin/welcome-connection-message.php:22 #: templates/admin/welcome-connection-message.php:28 msgid "Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL." msgstr "Parece que su sitio web no admite solicitudes POST remotas, las cuales son necesarias para que la API de %s funcione. Comuníquese con su proveedor de alojamiento web para habilitar cURL." #. Description of the plugin msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up." msgstr "Ecwid es un carrito de compras gratuito con todas las funciones. Se puede integrar fácilmente con cualquier blog de Wordpress y se configura en menos de 5 minutos." #. Plugin URI of the plugin msgid "http://www.ecwid.com?partner=wporg" msgstr "http://www.ecwid.com?partner=wporg" #: templates/store-svg.php:12 msgid "Demo Store" msgstr "Tienda de demostración" #: templates/store-svg.php:9 msgid "Your store will be shown here!" msgstr "¡Su tienda se mostrará aquí!" #: templates/product-popup.php:248 templates/store-popup.php:256 msgid "Update" msgstr "Actualizar" #: templates/store-popup.php:253 msgid "Insert into page" msgstr "Insertar en la página" #: templates/store-popup.php:246 msgid "Demo store" msgstr "Tienda de demostración" #: templates/store-popup.php:80 msgid "Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>" msgstr "Además, puede añadir controles de la tienda a la barra de herramientas de su sitio web mediante <a %s>«widgets» nativos de WordPress</a>." #: templates/store-popup.php:74 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:86 msgid "Show categories" msgstr "Mostrar categorías" #: templates/store-popup.php:66 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:94 msgid "Show minicart" msgstr "Mostrar minicarrito" #: templates/store-popup.php:58 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:78 msgid "Show search" msgstr "Mostrar búsqueda" #: templates/store-popup.php:53 msgid "Product catalog will be shown automatically" msgstr "El catálogo de productos se mostrará automáticamente" #: templates/store-popup.php:52 msgid "Choose widgets to show" msgstr "Elija los «widgets» a mostrar" #: templates/admin/welcome-create.php:7 msgid "Connect your store" msgstr "Conecte su tienda" #: templates/admin/welcome-no_oauth.php:6 #: templates/importer/import-no-token.tpl.php:6 #: includes/class-ecwid-message-manager.php:291 msgid "Connect" msgstr "Conectar" #: templates/admin/legacy-connect.tpl.php:68 msgid "Save and connect your %s store to the site" msgstr "Guarde y conecte su tienda de %s al sitio web" #: templates/admin/legacy-connect.tpl.php:59 msgid "Enter your Store ID here:" msgstr "Introduzca el ID de su tienda aquí:" #: templates/admin/legacy-connect.tpl.php:52 msgid "Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the \"Dashboard\" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration." msgstr "El ID de la tienda es un identificador único de cualquier tienda de %1$s, el cual consta de varios dígitos. Puede encontrarlo en la página «Panel» del panel de control de %1$s. El ID de la tienda se enviará en el correo electrónico de bienvenida después del registro." #: templates/admin/legacy-connect.tpl.php:50 msgid "Find your Store ID" msgstr "Encuentre el ID de su tienda" #: templates/admin/legacy-connect.tpl.php:46 msgid "You will be able to sign up through your existing Google, Facebook or PayPal profiles as well." msgstr "También podrá registrarse a través de sus perfiles existentes de Google, Facebook o PayPal." #: templates/admin/legacy-connect.tpl.php:42 msgid "I already have an account, sign in" msgstr "Ya tengo una cuenta, iniciar sesión" #: templates/admin/legacy-connect.tpl.php:35 msgid "Create a new %s account which you will use to manage your store and inventory. The registration is free." msgstr "Cree una nueva cuenta de %s que utilizará para gestionar su tienda e inventario. El registro es gratuito." #: templates/admin/legacy-connect.tpl.php:24 msgid "The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps." msgstr "El primer paso para abrir su negocio en línea: <br />añadamos una tienda a su sitio web de WordPress en <strong>3</strong> simples pasos." #: templates/admin/legacy-connect.tpl.php:21 msgid "Thank you for choosing %s to build your online store" msgstr "Gracias por elegir %s para construir su tienda en línea" #: templates/admin/simple-dashboard.php:58 msgid "Open control panel" msgstr "Abrir el panel de control" #: templates/admin/simple-dashboard.php:42 msgid "Your %s store is connected<br /> to your WordPress website" msgstr "Su tienda de %s está conectada<br /> a su sitio web de WordPress" #: templates/admin/simple-dashboard.php:39 msgid "Greetings!" msgstr "¡Saludos!" #: templates/admin/simple-dashboard.php:34 msgid "Your %s store is now connected<br /> to your WordPress website" msgstr "Su tienda de %s ahora está conectada<br /> a su sitio web de WordPress" #: templates/admin/simple-dashboard.php:31 msgid "Congratulations!" msgstr "¡Enhorabuena!" #: templates/admin/simple-dashboard.php:18 msgid "Disconnect store" msgstr "Desconectar tienda" #: templates/admin/legacy-connect.tpl.php:65 #: templates/admin/simple-dashboard.php:14 templates/store-popup.php:244 #: templates/store-svg.php:14 #: includes/integrations/class-ecwid-integration-gutenberg.php:104 #: includes/gutenberg/class-ecwid-gutenberg.php:130 msgid "Store ID" msgstr "ID de la tienda" #: templates/admin/welcome-connection-message.php:15 msgid "Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again." msgstr "Error de conexión: después de hacer clic en el botón, debe iniciar sesión y otorgar los permisos para poder utilizar nuestro complemento. Inténtelo de nuevo." #: templates/admin/legacy-connect.tpl.php:57 #: templates/admin/welcome-no_oauth.php:3 msgid "Enter your Store ID" msgstr "Introduzca el ID de su tienda" #: templates/store-popup.php:221 msgid "Default view mode on search results" msgstr "Modo de vista predeterminado en los resultados de búsqueda" #: templates/store-popup.php:214 templates/store-popup.php:232 msgid "Table" msgstr "Tabla" #: templates/store-popup.php:211 templates/store-popup.php:229 msgid "List" msgstr "Lista" #: templates/store-popup.php:208 templates/store-popup.php:226 msgid "Grid" msgstr "Cuadrícula" #: templates/store-popup.php:204 msgid "Default view mode on product pages" msgstr "Modo de vista predeterminado en las páginas de productos" #: templates/store-popup.php:184 msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products." msgstr "Aquí puede gestionar cuántos productos se mostrarán por página. Estas opciones definen valores máximos. Si no hay suficiente espacio para mostrar todas las columnas de productos, %s adaptará el número de columnas para mantener todos los productos." #: templates/store-popup.php:169 msgid "Table view" msgstr "Vista de tabla" #: templates/store-popup.php:152 msgid "List view" msgstr "Vista de lista" #: templates/store-popup.php:125 msgid "Grid view" msgstr "Vista de cuadrícula" #: templates/store-popup.php:123 msgid "Number of products per page" msgstr "Número de productos por página" #: templates/store-popup.php:191 msgid "Number of categories per row" msgstr "Número de categorías por fila" #: templates/advanced-settings.php:98 msgid "Save changes" msgstr "Guardar cambios" #: includes/class-ecwid-product-browser.php:202 msgid "Default category ID" msgstr "ID de categoría predeterminada" #: templates/store-popup.php:98 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:127 #: includes/integrations/class-ecwid-integration-gutenberg.php:427 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:56 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:248 msgid "Store root category" msgstr "Categoría raíz de la tienda" #: templates/store-popup.php:90 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:101 msgid "Category shown by default" msgstr "Categoría mostrada por defecto" #: templates/admin-message.php:47 msgid "Never show this message again" msgstr "Nunca mostrar este mensaje otra vez" #: templates/product-popup.php:194 lib/ecwid_platform.php:209 #: js/gutenberg/blocks.build.js:1 msgid "Price" msgstr "Precio" #: includes/class-ecwid-store-editor.php:75 #: includes/integrations/class-ecwid-integration-gutenberg.php:102 #: includes/gutenberg/class-ecwid-gutenberg.php:128 msgid "Edit Appearance" msgstr "Editar apariencia" #: includes/class-ecwid-store-editor.php:60 msgid "Edit Store" msgstr "Editar tienda" #: templates/store-popup.php:11 templates/store-popup.php:21 #: includes/class-ecwid-store-editor.php:52 msgid "Add Store" msgstr "Añadir tienda" #: includes/class-ecwid-message-manager.php:261 msgid "Back to Store Settings" msgstr "Regresar a la configuración de la tienda" #: includes/class-ecwid-message-manager.php:252 msgid "Your store is almost ready!" msgstr "¡Su tienda ya está casi lista!" #: includes/class-ecwid-message-manager.php:243 msgid "Take a few simple steps to complete store setup" msgstr "Siga unos sencillos pasos para completar la configuración de la tienda" #: includes/widgets/class-ecwid-widget-products-base.php:205 msgid "Number of products to show" msgstr "Número de productos para mostrar" #: includes/widgets/class-ecwid-widget-recently-viewed.php:89 msgid "Store Link Title" msgstr "Título del enlace de la tienda" #: templates/product-popup.php:183 includes/class-ecwid-product-browser.php:249 #: includes/widgets/class-ecwid-widget-products-base.php:199 #: js/gutenberg/blocks.build.js:1 msgid "Title" msgstr "Título" #: includes/widgets/class-ecwid-widget-recently-viewed.php:69 #: includes/widgets/class-ecwid-widget-recently-viewed.php:91 msgid "You have not viewed any product yet. Open store." msgstr "Aún no ha visto ningún producto. Abra la tienda." #: includes/widgets/class-ecwid-widget-recently-viewed.php:11 msgid "Recently Viewed Products" msgstr "Productos vistos recientemente" #: includes/widgets/class-ecwid-widget-recently-viewed.php:12 msgid "Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop." msgstr "Muestra una lista de productos vistos recientemente por el cliente para volver fácilmente a los productos que vieron en su tienda." #: includes/widgets/class-ecwid-widget-store-link.php:35 msgid "Text" msgstr "Texto" #: includes/themes/class-ecwid-theme-twentyseventeen.php:48 #: includes/themes/class-ecwid-theme-twentyseventeen.php:54 #: includes/themes/class-ecwid-theme-twentyfifteen.php:34 #: includes/themes/class-ecwid-theme-twentyfifteen.php:40 #: includes/themes/class-ecwid-theme-twentysixteen.php:36 #: includes/themes/class-ecwid-theme-twentysixteen.php:42 #: includes/widgets/class-ecwid-widget-store-link.php:31 msgid "Shop" msgstr "Tienda" #: includes/widgets/class-ecwid-widget-store-link.php:10 msgid "Store Page Link" msgstr "Enlace a la página de la tienda" #: includes/widgets/class-ecwid-widget-store-link.php:9 msgid "Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site." msgstr "Muestra un enlace a la página de la tienda en la barra lateral para que el cliente acceda rápidamente a su tienda desde cualquier página del sitio web." #: includes/widgets/class-ecwid-widget-vcategories.php:9 msgid "Store Categories" msgstr "Categorías de la tienda" #: includes/widgets/class-ecwid-widget-vcategories.php:8 msgid "Adds vertical categories block to let the customer navigate your store." msgstr "Añade un bloque de categorías verticales para permitir que el cliente navegue por su tienda." #: includes/class-ecwid-nav-menus.php:344 #: includes/class-ecwid-nav-menus.php:347 #: includes/widgets/class-ecwid-widget-search.php:13 msgid "Product Search" msgstr "Búsqueda de productos" #: includes/widgets/class-ecwid-widget-search.php:12 msgid "Displays a simple search box for your customers to find a product in your store" msgstr "Muestra un cuadro de búsqueda simple para que sus clientes encuentren un producto en su tienda." #: includes/widgets/class-ecwid-widget-minicart-miniview.php:8 msgid "Adds a compact cart widget for customer to see the products they added to the cart." msgstr "Añade un «widget» de carrito compacto para que el cliente vea los productos que se han añadido al carrito." #: includes/widgets/class-ecwid-widget-minicart.php:41 #: includes/widgets/class-ecwid-widget-random-product.php:67 #: includes/widgets/class-ecwid-widget-search.php:46 #: includes/widgets/nsf-minicart-editor.tpl.php:50 #: includes/widgets/class-ecwid-widget-minicart-miniview.php:41 #: includes/widgets/class-ecwid-widget-vcategories.php:39 #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:76 msgid "Title:" msgstr "Título:" #: includes/class-ecwid-nav-menus.php:338 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:20 msgid "Shopping Cart" msgstr "Carrito de compras" #: includes/widgets/class-ecwid-widget-minicart.php:8 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:19 msgid "Adds a cart widget for customer to see the products they added to the cart." msgstr "Añade un «widget» de carrito para que el cliente vea los productos que se han añadido al carrito." #: includes/widgets/class-ecwid-widget-badge.php:51 #: includes/widgets/class-ecwid-widget-badge.php:63 msgid "Ecwid e-commerce widgets" msgstr "«Widget» de comercio electrónico de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:45 #: includes/widgets/class-ecwid-widget-badge.php:57 msgid "Ecwid shopping cart" msgstr "Carrito de compras de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:39 #: includes/widgets/class-ecwid-widget-badge.php:75 msgid "Ecwid free shopping cart" msgstr "Carrito de compras gratuito de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:33 #: includes/widgets/class-ecwid-widget-badge.php:69 msgid "Ecwid ecommerce solution" msgstr "Solución de comercio electrónico de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:21 #: includes/widgets/class-ecwid-widget-badge.php:27 msgid "Ecwid shopping cart widget" msgstr "«Widget» de carrito de compras de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:14 msgid "Ecwid Badge" msgstr "Distintivo de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:13 msgid "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid." msgstr "¿Le gusta Ecwid y quiere ayudarlo a crecer? Puede añadir este elegante distintivo «Powered by Ecwid» en su sitio web para mostrarles a sus visitantes que es un usuario orgulloso de Ecwid." #: ecwid-shopping-cart.php:2791 msgid "Recommendations for Your Online Store" msgstr "Recomendaciones para su tienda en línea" #: includes/class-ecwid-admin.php:528 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:77 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:87 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:95 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:103 #: ecwid-shopping-cart.php:2056 msgid "Settings" msgstr "Configuraciones" #: includes/class-ecwid-admin.php:165 msgid "Advanced" msgstr "Avanzado" #: includes/class-ecwid-admin.php:164 msgid "Advanced settings" msgstr "Configuraciones avanzadas" #: templates/product-popup.php:206 templates/store-popup.php:14 #: templates/store-popup.php:34 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:44 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:78 #: js/gutenberg/blocks.build.js:1 msgid "Appearance" msgstr "Apariencia" #: includes/class-ecwid-admin.php:28 includes/class-ecwid-admin.php:59 #: includes/class-ecwid-admin.php:459 ecwid-shopping-cart.php:2110 msgid "Dashboard" msgstr "Panel" #: includes/class-ecwid-admin.php:57 ecwid-shopping-cart.php:2056 msgid "Setup" msgstr "Configuración" #: includes/class-ecwid-admin.php:47 msgid "%s shopping cart settings" msgstr "Configuraciones del carrito de compras de %s" #: includes/class-ecwid-nav-menus.php:132 #: includes/class-ecwid-nav-menus.php:361 #: includes/class-ecwid-nav-menus.php:364 #: includes/class-ecwid-nav-menus.php:372 includes/class-ecwid-admin.php:206 #: includes/class-ecwid-admin.php:207 includes/class-ecwid-admin.php:220 #: includes/class-ecwid-admin.php:221 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:63 #: includes/class-ecwid-admin-storefront-page.php:257 #: ecwid-shopping-cart.php:1657 msgid "Store" msgstr "Tienda" #: ecwid-shopping-cart.php:1306 msgid "<a %s>Online store powered by %s</a>" msgstr "<a %s>Tienda en línea con tecnología de %s</a>" #: includes/class-ecwid-admin.php:489 msgid "Sell on Facebook" msgstr "Vender en Facebook" #: templates/admin/simple-dashboard.php:48 ecwid-shopping-cart.php:1094 msgid "Visit storefront" msgstr "Visitar escaparate virtual" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/languages/ecwid-shopping-cart-es_ES.mo������������������������������������������0000644�����������������00000225044�15122273603�0017571 0����������������������������������������������������������������������������������������������������ustar�00�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������e�����D��5��l&������@3�����A3��H���Y3�����3�����3�����3�����3�����3�� ���3��.���3�� ���4�� ��� 4�����,4�����J4�����e4����4�����g6��B���6�����6�����6�����6�����7��$���97�����^7�����r7�����7�����7��/���r8�� ���8�� ���8�����8�����8�����8�����8�����9��#���%9�� ���I9�����T9�����o9�����~9�� ���9�� ���9��>���9��"��� :�����-:�����:��k���:��K���h;��S���;��A���<��R���J<��G���<��4���<�� ���=�����&=�����/=��&���A=�����h=��T���{=�� ���=�����=�����=�����=�����>�����>�����#>�� ���*>�����8>�����?>�� ���G>�� ���S>�� ���`>�����l>�����>��4���>�� ���>�����>�����>�����>��X���>�� ���V?�����`?��/���g?��,���?�����?�����?�����?�� ���?�� ���?�����?�� ���?����� @�����@�����,@�����A@�����[@�����{@�����@�����@�����@�����@�����@�����@��.���@�����A�����5A��D���LA�����A�����A�� ���A�� ���A�����A�����A�����A����� B����� B��x���3B�����B�� ���B�����B�� ���B�����B�����C�����C�����*C�� ���=C�����JC��5���\C��h���C�����C�����D�� ���D�� ���D��5���D�����E�� ���E��x���%E��i���E�����F�����F�����4F�����QF�����bF�����F�� ���F�����F�����G�����$G��"���7G��#���ZG��/���~G�� ���G�� ���G�����G�����G�����G�����G�����H�����H�����-H�����?H��!���WH�����yH�����H��6���H��!���H�����H��*���I��%���:I�����`I��'���vI�����I�����I��,���I�����I��q���J��s���yJ��#���J��H���K��O���ZK��1���K��s���K�� ���PL�����\L��v���L�����uM��$���zM�����M�����M�����M�� ���M�����M�����M����� N��s���N�����N�����N�����N��=��N�����P����P����Q�����R�����R����� S�����S�� ��� S�� ���.S�� ���;S�� ���FS�� ���TS�����^S�����S�����T�����T�����T��B���T��$���)U�����NU�����VU�����mU�� ���U�����U�����U�� ���U�����U�� ���U��(���U�����V�� ���V�����V�����#V��.���V�����W��D���W��h���%X�����X��_���X��C���X�����7Y�����IY��/���_Y��/���Y�����Y��/���Y��(���Z�����-Z��9���GZ��I���Z��2���Z��"���Z��:���![�����\[��"���t[��!���[�����[�����[�����[�����[��$��� \��*���1\��B���\\�����\�� ���\�����\�� ���\�����\��+���\�����]��-���,]��P���Z]�����]��#���]��'���]��)��� ^�� ���7^�����X^��%���g^��+���^��+���^�����^�����_�����_�����!_�� ���2_��$���?_��9���d_��%���_��:���_�����_�����`�����`�����&`�����(`�� ���=`�� ���K`�� ���Y`�� ���c`�����o`�����`�����`�� ���`�����`�����`�� ���`�����`�����`�� ���`�����`�����oa�����a�����a��S���a�����a��'���a��[���'b�� ���b�����b�� ���b�����b�� ���b�� ���b�����b�����b�� ���b��9���b�����c�� ���:c�� ���Dc�� ���Nc�� ���Xc�����bc�����wc��I���Jd�����d�����d�����d�� ���d�� ���d�� ���e�����e�� ��� e�����-e�����@e�����Ue�����]e�����de�����je�����if��#���Og�����sg�� ���g�����g�����lh�����th�� ���i�� ���i�����i�����%i��O��*i��4���zj�����j�� ���j�� ���j�����j�����j�� ���j�����j�� ����k����� k�����k�����'k�����:k�����Rk�� ���jk�����vk�����k�����k�����k��+���k�����k�� ��� l�����l�����*l�����Bl�����al�� ���xl�����l��I���l��'���l�����m�����m�����$m�����=m�����Em��#���Xm�� ���|m�����m�� ���m�����m�����m�����m��"���m�����m��%���n�� ���4n�����>n�����Vn�����en�����n�����n�����n�����n�����n�����n�����n��*���n�� ���n�����n�����n�����o�����o�����/o�� ���8o�����Co�����So�����do�����vo�� ���o��"���o�����o�����o�� ���o�����o�����o�����p����� p�����p�� ���"p�����0p��#���Kp�����op�����p�����p�����p�����p�����p��V���p�� ���Bq�� ���cq�����qq�� ���q�����q��&���q��(���q�����q�����r�� ���&r�����2r�� ���Br�� ��cr�� ���ns�����ys��(���s��*���s����s�� ���ow�� ���zw�����w�����w��.���$x�����Sx�����Yx�����jx�����x�����x�����x�����x�����x�����y�����z�����0z�� ���Az�����Lz�����\z�����rz�����z�����z�����z�����z�����z�����z�� ���z�����{�����{�����${�����4{�����I{�� ���O{��/���Z{��N���{�����{�� ���{��4���{�����|��=���|�����}��-���}�����}��%���~��M���~�������P�����H���h��P��������������� ����� ���"�����/�����A�����H�����ۀ������� ��4��E��>�������]��������l��%��^��*����*����y���ڊ��>���T�������h���5��L���������� ������������������,�����5�����<�����P�����l�����|�������������������������ԍ����������������� �����!��� ��j���B����������E��^���ŏ�����$�����,�����F�� ���V�����c������� ���������C����B����k���@���������������V�� ������0���!��^���R�������:���Ę��>��������>�����N�����j�� �����2�����?���Ù����������֚������������y�����A��������Q�����o������:��������J�����_�� �����"��������Þ��"���ߞ��H�����)���K�����u�������&�����(���ן���������������� �����4����G�����$��e���:��'��������Ȣ�� ���ˢ�����֢�� ����������5����� ���M�� ���Y�����f�������,�������̣�����W��B���v��!��������ۦ��!����������0���=�����n����������������*���������������(�����!���1�����S��*���p�������+����� �����!����������6���)��1���`�������C�����/����������!��������2��e�����n���&��Z�����o�����^���`��R�������������,�����5��5���O�������h����� ��� �� �����!���!��)���C�����m�����}�������������������������������� ���Ӱ������������:��������O�� ���`�����n�������`����� ����� �����=�����9���W�������������������������β�� ����� ����� �����%�����!���(�����J��5���j��(��������ɳ��%���ҳ�������!���������"�����2��C���B��(����������g���ϴ�����7�����Q��.���j�������������������������ҵ������������%�����!���Ŷ�� �����!�������������-�����J�����e�� ����������8�����j��������O������� ��������(��I���7��$���������������x���@�������'���Ѻ��5��������/�����G�������������������������6��9���U��;�����0���˼���������������,�����4�����H�����b�����u�����������������2�����!�����#���5��I���Y��+��������Ͼ��6�����/���%�����U��2���s��&��������Ϳ��E��������2�����D�������*���c��P�����`�����:���@�����{�� ��� ���������������U��3���[������������'���������������5��������D�����`��,�����+��� ��$���L��t��q�������A����h�������6��)���R�����|����������������� �����$�������������������������$����������Y�����*���?�����j�����r�����������������%������������� �� ���$��4���/�� ���d�����p������������;����������D�����g��������l��p���t��Q��������7�����K��]���c��>�����������D�����1���_�������I�����g�����/���[��$�����7����������0�����%���8��"���^������������%�����/�����7�����@���1��.���r�������#����� ����������)����������>���,��h���k��!�����%�����1�����3���N��'����������(�����)�����)��������B�����a�����������������-�����E�����-���+��8���Y������� ��������������� ����������������������� �����7�����J�����R�����[�� ���m�����w������������������������������}������������s��������*��/���E��q���u������������ ��������&�� ���-�� ���7�� ���A�����L�� ���S��A���_��#��������������� ����� ����������)����c���H������� �����!���������� ��������+��#���<�����`�����q����������������������I���������%��������(�� ���:�����G����������$���������������������������9���������� ����� ����� ����� ��� ����������*�����1�����B�����K�����f��#�����%��������������� ����� �����+���5��7���a��"���������������*�����1�����$���C�����h�� ���}��a�����0�������������/�����?�����^�� ���g��4����� ������������������������������5���-�����c��(����� �����"����������"������������������ �����"�����&�����-�����>��-���F�����t�����������������"���������������������������������2�����E��0���T��&��������������������������������� ����������#��"���6��+���Y�������/�����!����������+��������(�����<��(������������������ ��$���;��8���`��8�����)�����#�������� �����2��)���N��M��x�������$�����2�����L���-��,��z�� ��������������������?���������������!�����#��������7�����V�����u��������������3�����S�����l�� �������������������������$�����$���+�����P�����n�������������������������������������G�����W���C������������8����������Y����������:���z�����'����_��������X���&�^����U�������4����<� ���Q� ���^����l������������M�����#��������� �u���= ��� �@�� �@���U��H�����P���:�����~���:�a�����������1����E����]����v� ��������$������������ ���� ��������,���6����c������������� ����#���������������(�]���� ��� ��������0� ���I����W�����V��&����}���U�`������H�+�����������'��� �2��� �^����!����_!�A���v!�G���!�����"����"�$���6"� ���["�8���g"�;���"�5��"� ���$����3$����$����$�R���%����%���� &���-&�[��� (����e(� ���}(����(�"���(����(�"���(�H���(�)���9)����c)�(���~)����)����)����)����)����)����*��������I����������������k������R��W��y����$��%���������������������������������������#�����y���R��#��������J���Z���������?���B��^��>������������������������� ��� ��3����1�����U������>�������K��q����������������������-���������������������v���8������:���/������g��d�����������������S��?�����������������������'���������,������������j��Z��������P���������W������������S���������]����������T����������� �������6�������������������r�������������c��9����������,������������������k��������������%���������������������������������������������L���"�������a����������W��t�������������������}��.������ ��$������K������G���������~���������������0������w������������E��������7����������������������������Q��������F������������������:��\�����������������O�����X��'��*��3������1������ ���������������������u������������9�����E�����������C�����������������������������?������8��a��_���b�������L������@��&������*��I��C���J�����Y���������D������������$���������;��F���������N������G������'���������������0�����@�����^��������c�����������������u����>��:��������.�����������M��j���[��S����������������4������� ������������H�������������@���������������K�����]���������P���&�������������������%���� ��c������h��X���A��������#�����������z�������3�����(����������������������������������������������Q��������e�������������-����������i���������D����p�������!��������������(������������X��5����7���������=��������������;������N���������P������������������T��������������\������Z����������������������&����� ��������� ���`�������|�����������`������������<���������e���+�������A�����=����������������������)�������Q������������������������f��!����� ���b��a���M��{�������<��7�������������������������������������H��������6��O��s���`����������9�����*���������-��}���"���������r���������0��������������{������������������������������������l��H����������v����d��/����� ��]���t���p�����2�����������d��������g������U���������C�������w���������[���l������������������������<��������� ���o���1��� ����������V��f������N�� ��E��������������������������������� �����������������������/������,��������~�����������������������!������[����n�����������_��"�����(�������2���J��x��h���_���� ��������o������M������4��=��8������������2����� ��4������������m���������������������������5��n��I���;�����)������6��L��V������������+����+��A�������������������������Y��B��F������ �������)��������m��i�����������5���^������|���z���������������������U����������x�����������\����q������������O���������������V����������b���������������������������������������Y�������������.�����D������������������B�������G��s�������������R�����T����e���������� Choose another product� Thank you very much for contacting us! We will get back to you shortly.�"In stock" label�%s�%s Blog�%s Shopping Cart�%s Store�%s Store Page�%s plugin doesn't work well with my "%s" theme�%s product�%s products�%s products and %s categories�%s products and categories�%s shopping cart settings�%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site.�%s — Advanced settings�(You will be able to confirm the changes before the actual import)�2 columns, image on the left�2 columns, image on the right�3 columns, image on the left�3 columns, image on the right�<a %s>Online store powered by %s</a>�<a %s>Reconnect</a>�<a href="admin.php?page=�<b>%s</b> categories�A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use "/shop" or "/products".�Action required: please connect your %s account�Add Product�Add Store�Add Store Page to Menu�Add a category page�Add a product page�Add a search and filters page�Add a store page�Add an Online Store to Your Website�Add border�Add cart and checkout page�Add categories�Add store page to the site menu�Add storefront (product listing)�Add to Menu�Add your %s store to the website and start selling in minutes.�Add your store to other site pages�Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href="%s" target="_blank">WordPress Settings > Reading</a>�Additional store pages�Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>�Adds a cart widget for customer to see the products they added to the cart.�Adds a compact cart widget for customer to see the products they added to the cart.�Adds a shopping cart widget to the top right corner of your site.�Adds root categories list to the sidebar to let your customers navigate the store.�Adds vertical categories block to let the customer navigate your store.�Adjust your store design to fit your business needs.�Admin Label�Advanced�Advanced settings�After import, your %s store will have �All Sales Channels�Along with the store catalog, you can add other widgets and texts to the store page.�Appearance�Apps�Available qty in stock�Back to Store Settings�Background color�Bag�Basket�Before You Go�Border�Border:�Bottom left�Bottom right�Breadcrumbs�Browse all products.�Browse by Category�Bulk import products and categories to your %s store�Button color�Buy Now�Buy Now Button�Buy now buttons�By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>.�CSS Class�CSS ID�Can you share the name of the plugin you chose?�Can you share your feedback? What was wrong?�Cancel�Cart�Cart and Checkout�Cart icon�Cart icon:�Catalog�Categories�Category�Category List Appearance�Category card layout�Category shown by default�Category thumbnail aspect ratio�Category thumbnail size�Center�Center align on a page�Change�Change store content�Choose Product�Choose product�Choose product properties to display in widget�Choose the main store page�Choose widgets to show�Click the connect button to get rights to update the product catalog�Color settings�Complete Setup�Complete setup and start selling�Configuration�Congratulations!�Connect�Connect Your Store�Connect your %s store�Connect your store�Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again.�Contact Support�Contact us�Content�Copying products and categories.�Create Cart Page�Create Category Page�Create Product Page�Create Search Page�Create Store�Create Store Page�Create a landing page featuring one of your products.�Create a new %s account which you will use to manage your store and inventory. The registration is free.�Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website.�Create new account�Create store�Current Page�Current URL slug: /<span data-ec-store-slug>%s</span>�Customer Single Sign-On�Customers�Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers.�Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout.�Customize design�Customize store appearance�Customize store page address�Customize widget�Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand.�Cyan bluish gray�Dashboard�Default category�Default category ID�Default product_ID�Default view mode on product pages�Default view mode on search results�Deleted products synchronized: %1$s out of %2$s�Demo Store�Demo store�Design�Design and content�Detect automatically�Disconnect store�Display a buy button�Display breadcrumbs�Display cart icon�Display categories menu�Display categories navigation bar�Display category page�Display footer menu�Display product page with description and a buy button�Display product with a buy button�Display search box�Display search page with filters on a side�Display shopping bag link and summary�Display shopping cart�Display shopping cart and checkout page�Display sign in link�Display sort by link�Display the shopping cart icon on site pages�Displayed product�Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site.�Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop.�Displays a list of random products.�Displays a random product from your store to attract customer attention.�Displays a simple search box for your customers to find a product in your store�Displays storefront: product listing and checkout�Displays the latest added products from your store. Show new products to returning customers to drive repeat sales.�Do not show�Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid.�Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site.�Done�Download <a href="%s">import log</a>�Download log file�Draft�E.g. How to set up shipping�Ecwid Badge�Ecwid Ecommerce�Ecwid Ecommerce Shopping Cart�Ecwid Menu Item�Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center�Ecwid e-commerce widgets�Ecwid ecommerce solution�Ecwid free shopping cart�Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">More details.</a>�Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up.�Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href="%s">TemplateMonster themes</a>�Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">More details.</a>�Ecwid shopping cart�Ecwid shopping cart widget�Edit�Edit Appearance�Edit Category�Edit Product�Edit Store�Edit URL Slug�Edit page�Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page.�Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space.�Enter your Store ID�Enter your Store ID here:�Extensions for your Store�Feature a specific store category on a separate page of your site.�Feature your products in the sidebar�Filters�Filters panel position�Find your Store ID�First Page�Frequently Asked Questions�Get %s mobile app�Go to Pages�Go to Your %s Products�Greetings!�Greetings! Your %s plugin is now active.�Grid�Grid view�Help�Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars.�Help customers find your store on the website.�Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products.�Here you can create the content that will be used within the module.�Here, we will help you uploading your product catalog to %s from another shopping cart or other sources.�Hide�Highlight products, categories, and other store pages by adding them to separate website pages.�Highlight your best sellers or new products in the website sidebar.�Horizontal indent�Horizontal thumbnails�How can I add a cart widget to my site sidebar?�How can I manage my store from a mobile device?�How can we help you?�How do I add store categories to the site menu?�How do I put my products in the sitemap?�How much does Ecwid cost?�How secure is this plugin? Is my store PCI DSS compliant?�How to add a single product with the add to bag button to the site pages?�How to set up a storefront on Facebook with Ecwid?�I already have an account, sign in�I couldn’t find a WordPress theme that goes well with %s�I found a better plugin�I have a problem using this plugin�I have a problem with my %s store�I use this WordPress theme: %s�Icon�Icon and item count�Icon, label and item count�Icon, label, item count and subtotal�Icon, label, item count, subtotal and link�If you have a moment, please let us know why you are deactivating:�Image and title on mouse over�Image feed�Image gallery layout�Image only�Import�Import Your Products From Woocommerce to %s�Import completed�Import completed. <a href="%s">Run again.</a>�Import creates new products and update the existing products with matching SKUs.�Import is in Progress�Import my products from WooCommerce�Import product catalog from WooCommerce�Import product catalog from other sources�Import products to your %s store�Import summary�Import your WooCommerce catalog to %s�Import your products from WooCommerce to %s�Import your products from Woocommerce to %s�Imported <b>%s</b> products�Importing %s of %s items�Insert�Insert into page�Instant site�Integration with search on your site�Is it possible to display my store on the site home page?�Is there a WordPress theme for Ecwid?�It's a temporary deactivation. Please do not ask me again.�Item count only�Justify�Knowledge Base�L�Label and item count�Landscape 3:2�Landscape 4:3�Last Page�Last update�Latest Products�Layout�Layout:�Learn more�Left�Light green cyan�Link color�Linked product�List�List view�Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL.�Luminous vivid amber�Luminous vivid orange�M�Make your store accessible from the site menu so your customers can easily find it.�Manage Sidebar�Manage Store on iPhone, iPad or Android�Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page.�Manage store�Manage storefront�Marketing�Mobile�My Account�My Profile�My Sales�Name�Navigation�Need help importing your products from WooCommerce to %s?�Never show this message again�Next Page�Next page�No Thanks�No border�Not synchronized yet�Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The "Show on store pages" and "Show when empty" options will apply to the cart widget on site when published�Nothing found for <span class="empty-page__term">"{{ data.term }}"</span>�Number of categories per row�Number of products per page�Number of products to show�On the left�On the right�Online Store�Online Store Apps�Online store�Open control panel�Open store dashboard�Options�Orders�Other�Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target="_blank" href="%s">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans.�Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">our customer support team</a>.�Page with that name already exists.�Pale cyan blue�Pale pink�Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>�Payment�Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers.�Pick Category�Pick Product�Picture�Pill�Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target="_blank">"Billing & Plans"</a></nobr> page in your Ecwid store control panel.�Please subscribe to a paid plan to get this feature.�Plugins for Ecwid�Portrait 2:3�Portrait 3:4�Position�Preview�Previous Page�Price�Price color�Product�Product Card Large�Product Card Small�Product List Appearance�Product Page Appearance�Product SKU�Product Search�Product Search Box�Product Search and filters�Product card text align�Product catalog will be shown automatically�Product page layout�Product price�Product quantity�Product sidebar content�Product thumbnail aspect ratio�Product thumbnail size�Product title�Products�Products are successfully synchronized. The product pages are up to date.�Products synchronized: %1$s out of %2$s�Promote your store�Provide access.�Provided by <a %s>%s</a>�Publish�Publish Store Page�Publish the page to use this option�Published�Quantity�Questions?�Random Product�Random Products�Rate %s at WordPress.org�Re-connect to Enable Control Panel�Recently Viewed Products�Recommendations for Your Online Store�Rectangle�Refresh categories list�Register at %s�Report a problem with the store�Reports�Right�S�SKU�Sales�Sales channels�Save�Save and connect your %s store to the site�Save changes�Search�Search and Filters�Search products�Search the Knowledge Base�See more�Select All�Select category�Selected Product�Selected category�Sell on Facebook�Send Message�Send a message to our support team�Send message failed�Set Up Your Store�Set manually�Set up your store�Settings�Setup�Shipping & Pickup�Shop�Shopping Cart�Shopping Cart (deprecated)�Shopping Cart Floating (deprecated)�Shopping Cart Icon�Shopping Cart Mini (deprecated)�Shopping Cart Widget�Show�Show additional image on hover�Show categories�Show customers that they can use a search and filters to find desired products faster.�Show description under the image�Show minicart�Show on all pages�Show on hover�Show on store pages�Show price inside the "Buy now" button�Show price inside the «Buy now» button�Show product card border�Show product thumbnails�Show search�Show when empty�Show your store on the home page�Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again.�Small icon�Small icon and item count�Some of the items could not be imported.�Sorry we're having technical difficulties.�Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: "The Wordpress function wp_remote_post() failed to connect a remote server because of some error: "%s". Seems like HTTP POST requests are disabled on this server". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>.�Square 1:1�Start Import�Status�Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store.�Still have questions about Ecwid? Let us know!�Store�Store Categories�Store Categories Menu�Store Category Page�Store Front Page�Store Home Page�Store ID�Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the "Dashboard" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration.�Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>.�Store Link Title�Store Navigation�Store Page�Store Page Link�Store Root Categories�Store appearance�Store elements�Store management�Store page content�Store page on your site�Store root category�Store with Categories Menu�Storefront�Subject�Submit & Deactivate�Switch to draft�Synchronize products�Table�Table view�Take a few simple steps to complete store setup�Take advantage of powerful apps and extensions designed to enhance your store.�Text�Text color�Thank you for choosing %s to build your online store�The block is hidden because you don't have categories in your store. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Add categories.</a>�The category that is shown by default on the Store Front Page�The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps.�The plugin doesn't support the feature I want�The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href="%s" target="_blank">adjust the cart icon appearance</a>.�The store is not visible on your site�The store top-level categories are automatically added to this drop-down menu�Themes for Ecwid�This import will copy your WooCommerce products and categories to your %s store.�This is a demo store. Create your store to see your store products here.�This will change the label of the module in the builder for easy identification.�Title�Title on image�Title only�Title or SKU�Title under image�Title:�To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings.�To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>.�To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>�To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the "Add product" dialog.�To create sitemap for your Wordpress site we suggest using <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> or <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target="_blank" href="https://www.ecwid.com/pricing">paid Ecwid users</a>.�To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission.�To enable this feature, the plugin needs a permission to read your store product information.�To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">How to use it.</a>�To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>�To manage your store, go to <a %s>the Store Dashboard page</a>�To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission.�To show your storefront instead of the demo store, connect your existing %s account or create a new one.�To start selling, add a page to your site where the storefront will display.�Top left�Top right�Try another search.�Type in your message here�URL Slug�Update�Update your catalog�Upgrade to get this feature�Vertical indent�Vertical thumbnails�Very dark gray�Very light gray�View Store Page�View demo store page�View store page�Visit storefront�Vivid cyan blue�Vivid green cyan�Vivid red�Want to connect another %s store?�Warning: some of your online store features are disabled. Please contact your hosting provider to resolve.�We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?�We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you.�We're synchronizing your products. This may take a few minutes. Please do not reload the page.�Website�What feature do you need?�What was wrong?�What's next?�While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site.�Wholesale prices�You can add product search box, cart widget and more on the <a href="%s">"Appearance / Widgets page"</a> here in your site admin. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">More details.</a>�You can add the entire storefront, categories, products, or "Buy now" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block.�You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open "Appearance > Menus" in your WordPress control panel and add the "Store with Categories Menu" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site.�You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">More details.</a>�You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel.�You can display your store on the site main page. Adjust the "Reading" settings of your site as described in our <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">Help Center.</a>�You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href="%1$s">Appearance → Customize → %2$s</a>” menu to enable it.�You can enable filters in the store settings: (“<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Settings → Product Filters</a>”).�You can send a new request here.�You have not viewed any product yet. Open store.�You will be able to sign up through your existing Google, Facebook or PayPal profiles as well.�Your %s store has �Your %s store is connected<br /> to your WordPress website�Your %s store is now connected<br /> to your WordPress website�Your Storefront�Your WooCommerce store has �Your email has been sent�Your product�Your store Control Panel. Right here in WordPress.�Your store has been created. Preparing your store dashboard ...�Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar.�Your store is almost ready!�Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display.�Your store page�Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders.�Your store page is published. Customers can browse your store at �Your store will be shown here�Your store will be shown here!�Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data.�[%s] WordPress plugin deactivation feedback (store ID: %s)�customize appearance�gutenberg-product-blockContent�gutenberg-store-block-stubStore�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�or <a %s>Browse the Help Center�product-browser-attributesProduct SKU�product-browser-attributesProduct price�select product�selected product�vc-tabOnline store�«Buy now» button�PO-Revision-Date: 2020-10-12 12:46 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: Poedit 2.4.1 Language: es Project-Id-Version: temporary-strings X-Crowdin-Project: temporary-strings X-Crowdin-Project-ID: 295314 X-Crowdin-Language: es-ES X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po X-Crowdin-File-ID: 988 Language-Team: Spanish Last-Translator: � Elegir otro producto� ¡Muchas gracias por ponerse en contacto con nosotros! Nos pondremos en contacto con usted en breve.�Etiqueta de productos «En existencia»�%s�Blog de %s�Carrito de compras de %s�Tienda de %s�Página de la tienda de %s�El complemento %s no funciona bien con mi tema «%s»�%s producto�%s productos�%s productos y %s categorías�%s productos y categorías�Configuraciones del carrito de compras de %s�%s almacena los datos de sus productos de forma segura en la nube. Las páginas de productos se muestran sobre la marcha cuando un cliente navega por su tienda. Por lo que, básicamente, los productos no se almacenan en el sitio web, por eso la búsqueda en el sitio web no encuentra páginas de productos mientras busca en las páginas del sitio web y en las publicaciones. Esta opción habilita un modo de almacenamiento local: los productos se almacenarán tanto en la nube como en su sitio web. Los resultados de la búsqueda en el sitio web incluirán las páginas de productos, así como las páginas o publicaciones habituales de su sitio web.�%s — Configuración avanzada�(podrá confirmar los cambios antes de la importación definitiva)�2 columnas, imagen a la izquierda�2 columnas, imagen a la derecha�3 columnas, imagen a la izquierda�3 columnas, imagen a la derecha�<a %s>Tienda en línea con tecnología de %s</a>�<a %s>Volver a conectar</a>�<a href="admin.php?page=�<b>%s</b> categorías�Un «slug» es la última parte de una URL. Puede crear un «slug» personalizado para la página de su tienda. Es mejor que sea corto, ya que los clientes y los motores de búsqueda prefieren las URL cortas. Por ejemplo, utilice «/tienda» o «/productos».�Acción requerida: conecte su cuenta de %s�Añadir producto�Añadir tienda�Añadir la página de la tienda al menú�Añadir una página de categoría�Añadir página de productos�Añadir una página de búsqueda y filtros�Añadir una página de tienda�Añadir una tienda en línea a su sitio web�Añadir borde�Añadir carrito y página de pago�Añadir categorías�Añadir la página de la tienda al menú del sitio web�Añadir escaparate virtual (listado de productos)�Añadir al menú�Añada su tienda de %s al sitio web y comience a vender en minutos.�Añada su tienda a otras páginas del sitio web�Añada su escaparate virtual a la página de inicio del sitio web para que sea más notable. También puede modificar la configuración de la página de inicio del sitio web en <a href="%s" target="_blank">Configuración de WordPress > Lectura</a>.�Páginas adicionales de la tienda�Además, puede añadir controles de la tienda a la barra de herramientas de su sitio web mediante <a %s>«widgets» nativos de WordPress</a>.�Añade un «widget» de carrito para que el cliente vea los productos que se han añadido al carrito.�Añade un «widget» de carrito compacto para que el cliente vea los productos que se han añadido al carrito.�Añada un «widget» de carrito de compras en la esquina superior derecha de su sitio web.�Añade la lista de categorías raíz a la barra lateral para que sus clientes puedan desplazarse por la tienda.�Añade un bloque de categorías verticales para permitir que el cliente navegue por su tienda.�Ajuste el diseño de su tienda para que se adapte a las necesidades de su negocio.�Etiqueta de administrador�Avanzado�Configuraciones avanzadas�Después de la importación, su tienda de %s tendrá �Todos los canales de venta�Junto con el catálogo de la tienda, puede añadir otros «widgets» y textos a la página de la tienda.�Apariencia�Aplicaciones�Cantidad disponible en existencia�Regresar a la configuración de la tienda�Color del fondo�Bolsa�Cesta�Antes de que se vaya�Borde�Borde:�Abajo a la izquierda�Abajo a la derecha�Migas de pan�Explorar todos los productos.�Buscar por categoría�Importar en masa productos y categorías a su tienda de %s�Color del botón�Comprar ahora�Botón «Comprar ahora»�Botones de «Comprar ahora»�Al continuar, acepta los <a %s>Términos de servicio</a> y la <a %s>Política de privacidad</a>.�Clase CSS�ID de CSS�¿Podría compartir el nombre del complemento que ha elegido?�¿Podría compartir su opinión? ¿Qué fue lo que pasó?�Cancelar�Carrito�Carrito y pago�Icono del carrito de compras�Icono del carrito:�Catálogo�Categorías�Categoría�Apariencia de la lista de categorías�Diseño de la ficha de categoría�Categoría mostrada por defecto�Relación de aspecto de la miniatura de la categoría�Tamaño de la miniatura de la categoría�Centrado�Centrar la alineación en una página�Cambiar�Cambiar el contenido de la tienda�Elegir producto�Elegir producto�Elija las propiedades del producto para mostrarlas en el «widget»�Elegir la página principal de la tienda�Elija los «widgets» a mostrar�Haga clic en el botón «Conectar» para obtener los permisos para actualizar el catálogo de productos�Configuración de colores�Completar configuración�Complete la configuración y comience a vender�Configuración�¡Enhorabuena!�Conectar�Conecte su tienda�Conecte su tienda de %s�Conecte su tienda�Error de conexión: después de hacer clic en el botón, debe iniciar sesión y otorgar los permisos para poder utilizar nuestro complemento. Inténtelo de nuevo.�Ponerse en contacto con la asistencia�Póngase en contacto con nosotros�Contenido�Copia de productos y categorías.�Crear página del carrito�Crear página de categorías�Crear página de productos�Crear página de búsqueda�Crear tienda�Crear la página de la tienda�Cree una página de aterrizaje con uno de sus productos.�Cree una nueva cuenta de %s que utilizará para gestionar su tienda e inventario. El registro es gratuito.�Cree una nueva tienda o, si ya tiene una cuenta de %s, conéctela. El complemento le guiará a través de la configuración de la tienda y le ayudará a publicarla en su sitio web.�Crear una nueva cuenta�Crear tienda�Página actual�«Slug» actual de la dirección URL: /<span data-ec-store-slug>%s</span>�Inicio de sesión único del cliente�Clientes�Los clientes no pueden ver la página de su tienda porque está en un borrador. Publique la página para que esté disponible para sus clientes.�Los clientes van a la página del carrito para consultar los productos que han añadido al mismo y proceder con el pago.�Personalizar el diseño�Personalizar la apariencia de la tienda�Personalizar la dirección de la página de la tienda�Personalizar «widget»�Personalice la apariencia de su tienda para que se ajuste a las necesidades de su negocio. Cree la apariencia para su tienda que más se parezca a su marca.�Gris cian azulado�Panel�Categoría predeterminada�ID de categoría predeterminada�ID del producto predeterminado�Modo de vista predeterminado en las páginas de productos�Modo de vista predeterminado en los resultados de búsqueda�Productos eliminados sincronizados: %1$s de %2$s�Tienda de demostración�Tienda de demostración�Diseño�Diseño y contenido�Detectar automáticamente�Desconectar tienda�Mostrar un botón de compra�Mostrar migas de pan�Mostrar icono del carrito�Mostrar el menú de categorías�Mostrar la barra de navegación de las categorías�Mostrar la página de categorías�Mostrar el menú del pie de página�Mostrar la página de productos con la descripción y un botón de compra�Mostrar el producto con un botón de compra�Mostrar el cuadro de búsqueda�Mostrar página de búsqueda con los filtros a un lado�Mostrar enlace y resumen de la bolsa de compras�Mostrar el carrito de compras�Mostrar el carrito de compras y la página de pago�Mostrar el enlace de inicio de sesión�Mostrar «ordenar por enlace»�Muestre el icono del carrito de compras en las páginas del sitio web�Producto mostrado�Muestra un enlace a la página de la tienda en la barra lateral para que el cliente acceda rápidamente a su tienda desde cualquier página del sitio web.�Muestra una lista de productos vistos recientemente por el cliente para volver fácilmente a los productos que vieron en su tienda.�Muestra una lista de productos aleatorios.�Muestra un producto aleatorio de su tienda para atraer la atención del cliente.�Muestra un cuadro de búsqueda simple para que sus clientes encuentren un producto en su tienda.�Muestra el escaparate virtual: listado de productos y pago�Muestra los últimos productos añadidos de su tienda. Muestre nuevos productos a los clientes existentes para impulsar las ventas repetidas.�No mostrar�¿Le gusta Ecwid y quiere ayudarlo a crecer? Puede añadir este elegante distintivo «Powered by Ecwid» en su sitio web para mostrarles a sus visitantes que es un usuario orgulloso de Ecwid.�¿Le gusta su tienda de %s en línea? Apreciaríamos si comparte su opinión y vota por el complemento en el sitio de WordPress.�Hecho�Descargar <a href="%s">registro de importación</a>�Descargar archivo de registro�Borrador�Por ejemplo, cómo establecer el envío�Distintivo de Ecwid�Comercio electrónico Ecwid�Carrito de compras del comercio electrónico de Ecwid�Elemento del menú de Ecwid�Ecwid le permite subir sus productos en forma de archivo CSV. Obtenga más información sobre esta herramienta en el centro de asistencia de Ecwid�«Widget» de comercio electrónico de Ecwid�Solución de comercio electrónico de Ecwid�Carrito de compras gratuito de Ecwid�Ecwid cuenta con la certificación PCI DSS Nivel 1, que es el estándar de oro para las soluciones de comercio electrónico en todo el mundo. Esto significa que no tendrá problemas de cumplimiento bancario cuando venda en línea con Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">Más detalles.</a>�Ecwid es un carrito de compras gratuito con todas las funciones. Se puede integrar fácilmente con cualquier blog de Wordpress y se configura en menos de 5 minutos.�Ecwid es compatible con cualquier tema de WordPress. Ya sea un tema gratuito del catálogo de WordPress.org, un tema prémium de un proveedor externo o un tema personalizado; su tienda de Ecwid funcionará bien con cualquiera de ellos. Si desea un tema prémium, le recomendamos <a href="%s">temas de TemplateMonster</a>.�Ecwid ofrece aplicaciones móviles gratuitas para iOS y Android para que pueda gestionar su tienda y vender donde y cuando quiera. Escanee productos, supervise el inventario, gestione las ventas y acepte pagos utilizando su dispositivo móvil como una estación de punto de venta. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">Más detalles.</a>�Carrito de compras de Ecwid�«Widget» de carrito de compras de Ecwid�Editar�Editar apariencia�Editar categoría�Editar producto�Editar tienda�Editar «slug» de la dirección URL�Editar página�Introduzca un ID de CSS opcional que se utilizará para este módulo. Se puede utilizar un ID para crear un estilo CSS personalizado o para crear enlaces a secciones particulares de su página web.�Introduzca las clases CSS opcionales que se utilizarán para este módulo. Se puede utilizar una clase CSS para crear estilos CSS personalizados. Puede añadir varias clases separadas por un espacio.�Introduzca el ID de su tienda�Introduzca el ID de su tienda aquí:�Extensiones para su tienda�Destacar una categoría de la tienda específica en una página separada de su sitio web.�Destaque sus productos en la barra lateral�Filtros�Posición del panel de filtros�Encuentre el ID de su tienda�Primera página�Preguntas frecuentes�Descargue la aplicación móvil de %s�Ir a «Páginas»�Ir a sus productos de %s�¡Saludos!�¡Enhorabuena! Su complemento de %s ya está activo.�Cuadrícula�Vista de cuadrícula�Ayuda�Ayude a los clientes a encontrar su tienda en el sitio web. Añada el enlace de la tienda al menú del sitio web, cree páginas adicionales de la tienda y resalte los productos de la tienda en otras páginas del sitio web y en las barras laterales.�Ayude a los clientes a encontrar su tienda en el sitio web.�Aquí puede gestionar cuántos productos se mostrarán por página. Estas opciones definen valores máximos. Si no hay suficiente espacio para mostrar todas las columnas de productos, %s adaptará el número de columnas para mantener todos los productos.�Aquí puede crear el contenido que se utilizará dentro del módulo.�Aquí, le ayudaremos a subir su catálogo de productos a %s de otro carrito de compras u otras fuentes.�Ocultar�Destaque productos, categorías y otras páginas de la tienda añadiéndolas a páginas del sitio web separadas.�Destaque sus mejores ventas o nuevos productos en la barra lateral del sitio web.�Sangría horizontal�Miniaturas horizontales�¿Cómo puedo añadir un «widget» de carrito de compras a la barra lateral de mi sitio web?�¿Cómo puedo gestionar mi tienda desde un dispositivo móvil?�¿Cómo podemos ayudarle?�¿Cómo puedo añadir categorías de tiendas al menú del sitio web?�¿Cómo pongo mis productos en el mapa del sitio?�¿Cuánto cuesta Ecwid?�¿Qué tan seguro es este complemento? ¿Mi tienda cumple con el PCI DSS?�¿Cómo añadir un solo producto con el botón de «añadir a la bolsa» en las páginas del sitio web?�¿Cómo crear una tienda en Facebook con Ecwid?�Ya tengo una cuenta, iniciar sesión�No pude encontrar un tema de WordPress adecuado para %s�Encontré un mejor complemento�Tengo un problema con el uso de este complemento�Tengo un problema con mi tienda de %s�Utilizo este tema de WordPress: %s�Icono�Icono y total de artículos�Icono, etiqueta y total de artículos�Icono, etiqueta, total de artículos y subtotal�Icono, etiqueta, total de artículos, subtotal y enlace�Si tiene un momento, háganos saber por qué está desactivando:�Imagen y título al pasar el ratón por encima�Canal de imagen�Diseño de la galería de imágenes�Solo imagen�Importar�Importe sus productos de Woocommerce a %s�Importación completada�Importación completada. <a href="%s">Ejecútela de nuevo.</a>�La importación crea nuevos productos y actualiza los productos existentes con las REF correspondientes.�La importación está en progreso�Importar mis productos de WooCommerce�Importar el catálogo de productos de WooCommerce�Importar el catálogo de productos de otras fuentes�Importe los productos a su tienda de %s�Resumen de la importación�Importe su catálogo de WooCommerce a %s�Importe sus productos de WooCommerce a %s�Importe sus productos de Woocommerce a %s�<b>%s</b> productos importados�Importando %s de %s artículos�Insertar�Insertar en la página�Sitio web instantáneo�Integración con la búsqueda en su sitio web�¿Es posible mostrar mi tienda en la página de inicio del sitio web?�¿Existe algún tema de WordPress para Ecwid?�Es una desactivación temporal. No preguntarme de nuevo.�Solo el total de artículos�Justificado�Base de conocimiento�G�Etiqueta y y total de artículos�Horizontal 3:2�Horizontal 4:3�Última página�Última actualización�Últimos productos�Diseño�Diseño:�Más información�Izquierda�Cian verde claro�Color del enlace�Producto vinculado�Lista�Vista de lista�Parece que su sitio web no admite solicitudes POST remotas, las cuales son necesarias para que la API de %s funcione. Comuníquese con su proveedor de alojamiento web para habilitar cURL.�Ámbar vívido y brillante�Naranja vívido y brillante�M�Haga que su tienda sea accesible desde el menú del sitio web para que sus clientes puedan encontrarla fácilmente.�Gestionar la barra lateral�Gestione la tienda desde iPhone, iPad o Android�Gestione productos, supervise las ventas y ajuste la configuración: <nobr>todo sin</nobr> salir de esta página.�Gestionar la tienda�Gestionar escaparate virtual�Mercadotecnia�Móvil�Mi cuenta�Mi perfil�Mis ventas�Nombre�Navegación�¿Necesita ayuda para importar sus productos de WooCommerce a %s?�Nunca mostrar este mensaje otra vez�Página siguiente�Página siguiente�No, gracias�Sin borde�No se ha sincronizado todavía�Nota: cuando está habilitado, el «widget» del carrito siempre se mostrará en la vista previa para que sea más fácil personalizarlo. Las opciones «Mostrar en las páginas de la tienda» y «Mostrar cuando esté vacío» se aplicarán al «widget» del carrito en el sitio cuando se publiquen�No se ha encontrado nada en relación con <span class="empty-page__term">«{{ data.term }}»</span>�Número de categorías por fila�Número de productos por página�Número de productos para mostrar�A la izquierda�A la derecha�Tienda en línea�Aplicaciones de la tienda en línea�Tienda en línea�Abrir el panel de control�Abrir el panel de la tienda�Opciones�Pedidos�Otro�Nuestros 4 tipos de cuentas varían según la cantidad de productos, los tipos de funcionalidades y el nivel de asistencia. Para obtener más información, consulte nuestra <a target="_blank" href="%s">página de precios.</a><br /><br />Consejo profesional: también puede ahorrar dinero si se suscribe a nuestros planes anuales.�Nuestro equipo ya está trabajando en este asunto. Actualice la página en unos minutos. Si el problema persiste, comuníquese con <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">nuestro equipo de atención al cliente</a>.�Ya existe una página con ese nombre.�Azul cian pálido�Rosa pálido�Parte de los productos no se han copiado a %1$s porque alcanzó el límite de productos en su plan de precios en %1$s. Si desea importar más productos, considere <nobr><a %2$s>actualizar su plan de %1$s.</a></nobr>�Pago�Personalice la apariencia de su escaparate virtual y edite el contenido en la página de la tienda para reflejar su marca y mantenerse conectado con sus clientes.�Elegir una categoría�Elegir un producto�Imagen�Píldora�Tenga en cuenta el número máximo de productos y categorías que puede tener en su tienda de Ecwid. Esta herramienta de importación se detendrá automáticamente cuando se alcance el límite de productos de la tienda. Para conocer el límite actual de la tienda o aumentarlo, consulte la página <nobr><a %s target="_blank">«Facturación y planes»</a></nobr> ubicada en el panel de su tienda de Ecwid.�Suscríbase a un plan de pago para obtener esta función.�Complementos para Ecwid�Vertical 2:3�Vertical 3:4�Posición�Vista previa�Página anterior�Precio�Color del precio�Producto�Ficha de producto ampliada�Ficha de producto reducida�Apariencia de la lista de productos�Apariencia de la página del producto�REF del producto�Búsqueda de productos�Cuadro de búsqueda de productos�Búsqueda de productos y filtros�El texto de la ficha del producto se alinea�El catálogo de productos se mostrará automáticamente�Diseño de la página de productos�Precio del producto�Cantidad de productos�Contenido de la barra lateral de productos�Relación de aspecto de la miniatura del producto�Tamaño de la miniatura del producto�Título del producto�Productos�Los productos se sincronizaron satisfactoriamente. Las páginas de productos están actualizadas.�Productos eliminados sincronizados: %1$s de %2$s�Promocione su tienda�Otorgar acceso.�Proporcionado por <a %s>%s</a>�Publicar�Publicar la página de la tienda�Publique la página para poder utilizar esta opción�Publicada�Cantidad�¿Tiene alguna pregunta?�Producto aleatorio�Productos aleatorios�Tasa de %s en WordPress.org�Vuélvase a conectar para activar el panel de control�Productos vistos recientemente�Recomendaciones para su tienda en línea�Rectángulo�Actualizar la lista de categorías�Registrarse en %s�Informar un problema con la tienda�Informes�Derecha�P�REF�Ventas�Canales de venta�Guardar�Guarde y conecte su tienda de %s al sitio web�Guardar cambios�Buscar�Búsqueda y filtros�Buscar productos�Buscar en la base de conocimientos�Ver más�Seleccionar todo�Seleccionar categoría�Producto seleccionado�Categoría seleccionada�Vender en Facebook�Enviar mensaje�Envíe un mensaje a nuestro equipo de asistencia�Ocurrió un error al enviar el mensaje�Configure su tienda�Configurar manualmente�Configure su tienda�Configuraciones�Configuración�Envío y recogida�Tienda�Carrito de compras�Carrito de compras (descontinuado)�Carrito de compras flotante (descontinuado)�Icono del carrito de compras�Carrito de compras en miniatura (descontinuado)�«Widget» del carrito de compras�Mostrar�Mostrar imagen adicional al pasar el ratón�Mostrar categorías�Muéstreles a los clientes que pueden utilizar la búsqueda y los filtros para encontrar los productos que deseen de forma más rápida.�Mostrar descripción debajo de la imagen�Mostrar minicarrito�Mostrar en todas las páginas�Mostrar al pasar el ratón�Mostrar en las páginas de la tienda�Mostrar el precio dentro del botón de «Comprar ahora»�Mostrar el precio dentro del botón de «Comprar ahora»�Mostrar el borde de la ficha del producto�Mostrar miniaturas de los productos�Mostrar búsqueda�Mostrar cuando esté vacío�Muestre su tienda en la página de inicio�El inicio de sesión único les permite a sus clientes tener un inicio de sesión único para su sitio web de WordPress y su %s. Cuando alguien inicie sesión en su sitio web, también iniciará sesión automáticamente en su cuenta de cliente en la tienda sin necesidad de introducir su correo electrónico y contraseña nuevamente.�Icono pequeño�Icono pequeño y total de artículos�Algunos de los artículos no se pudieron importar.�Le pido disculpas por las dificultades técnicas que estamos experimentando.�Lo siento, hay un problema. Se supone que esta página muestra el panel de control de su tienda; sin embargo, este sitio web de Wordpress no parece poder conectarse al servidor de Ecwid para mostrar el panel de su tienda aquí. Es probable que esto se deba a una mala configuración del servidor; su proveedor de alojamiento web puede solucionarlo. Aquí hay una descripción más técnica del problema, la cual puede enviarle a su proveedor de alojamiento web: «La función de Wordpress wp_remote_post() no pudo conectarse a un servidor remoto debido al error: “%s”; parece que las solicitudes HTTP POST están inhabilitadas en este servidor». <br /><br />No dude en ponerse en contacto con nosotros en <a %s>wordpress@ecwid.com</a> y le ayudaremos a comunicarse con su proveedor de alojamiento web para pedirle que solucione el problema. <br /><br /> Mientras tanto, para gestionar su tienda, puede utilizar el panel de control web de Ecwid en <a %s>my.ecwid.com</a>. Su escaparate virtual está funcionando bien; puede echarle un vistazo aquí: <a %s>%s</a>.�Cuadrado 1:1�Iniciar la importación�Estado�Manténgase conectado con sus clientes. Actualice el contenido de su tienda en cualquier momento para informarles a los clientes sobre las promociones actuales y las novedades de su tienda.�¿Todavía tiene preguntas acerca de Ecwid? ¡Háganoslo saber!�Tienda�Categorías de la tienda�Menú de categorías de la tienda�Página de categorías de la tienda�Página del escaparate virtual�Página de inicio de la tienda�ID de la tienda�El ID de la tienda es un identificador único de cualquier tienda de %1$s, el cual consta de varios dígitos. Puede encontrarlo en la página «Panel» del panel de control de %1$s. El ID de la tienda se enviará en el correo electrónico de bienvenida después del registro.�El ID de la tienda es un identificador único de su cuenta de %1$s. Puede encontrarlo en su panel de control de %1$s en la <a %2$s>página del panel</a>.�Título del enlace de la tienda�Navegación en la tienda�Página de la tienda�Enlace a la página de la tienda�Categorías raíz de la tienda�Apariencia de la tienda�Elementos de la tienda�Gestión de la tienda�Contenido de la página de la tienda�Página de la tienda en su sitio web�Categoría raíz de la tienda�Tienda con menú de categorías�Escaparate virtual�Asunto�Enviar y desactivar�Cambiar al borrador�Sincronizar productos�Tabla�Vista de tabla�Siga unos sencillos pasos para completar la configuración de la tienda�Aproveche las increíbles aplicaciones y extensiones diseñadas para mejorar su tienda.�Texto�Color del texto�Gracias por elegir %s para construir su tienda en línea�El bloque está oculto porque no tiene categorías en su tienda. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Añadir categorías.</a>�La categoría que se muestra de forma predeterminada en la página del escaparate virtual�El primer paso para abrir su negocio en línea: <br />añadamos una tienda a su sitio web de WordPress en <strong>3</strong> simples pasos.�El complemento no es compatible con la función que quiero�El icono del carrito de compras muestra la cantidad de artículos en el carrito y ayuda a los clientes a realizar el pago. Además, puede <a href="%s" target="_blank">ajustar la apariencia del icono del carrito</a>.�La tienda no es visible en su sitio web�Las categorías de alto nivel de la tienda se añaden automáticamente a este menú desplegable�Temas para Ecwid�Esta importación copiará sus productos y categorías de WooCommerce a su tienda de %s.�Esto es una tienda de demostración. Cree su tienda para ver los productos de su tienda aquí.�Esto cambiará la etiqueta del módulo en el creador para una fácil identificación.�Título�Título en la imagen�Solo título�Título o REF�Título debajo de la imagen�Título:�Para añadir funciones adicionales a su tienda, arrastre y suelte los elementos de la tienda de %s en su sitio web. Una vez que haya terminado, puede volver a modificar su configuración.�Para añadir su tienda a su sitio web, introduzca el ID de su tienda de %1$s en el campo a continuación. Si aún no tiene una cuenta de %1$s, cree una gratis en el <a %2$s>sitio web de %1$s</a>.�Para permitir que %s inicie la sesión de sus clientes automáticamente en su tienda, otorgue los permisos para utilizar los datos del cliente en la tienda. <a %s>Utilice este enlace para hacerlo</a>�A fin de poder elegir un producto para insertarlo en sus publicaciones y páginas, deberá volver a conectar su sitio a su tienda de %s. Esto solo requerirá que acepte la solicitud de permisos para que el complemento pueda listar sus productos en el cuadro de diálogo «Añadir producto».�Para crear un «Mapa del sitio» para su sitio web de Wordpress, le sugerimos que utilice los  complementos <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> o <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>. Estos complementos son totalmente compatibles con Ecwid y permiten generar un mapa del sitio que contiene enlaces a categorías y páginas de productos, por lo que las páginas de la tienda se indexarán más rápido. Tenga en cuenta que esta opción solo está disponible para los <a target="_blank" href="https://www.ecwid.com/pricing">usuarios de pago de Ecwid</a>.�Para mostrar su tienda en este sitio web, debe permitir que WordPress acceda a sus productos de %1$s. Pulse «Conectar» para otorgar el permiso.�Para habilitar esta función, el complemento necesita un permiso para leer la información del producto de su tienda.�Para mostrar un solo producto en una página aparte o en una entrada de blog de su sitio web, utilice el código corto <b>[ecwid_product]</b>. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">Cómo utilizarlo</a>�Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para mejorar la apariencia de su tienda y poder gestionar la apariencia de su escaparate virtual desde aquí, habilite la opción «Apariencia de próxima generación de la lista de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para asegurarse de que su cliente puede acceder realmente a su sitio web y a la tienda, habilite el registro en las <a %s>configuraciones del sitio web</a>�Para gestionar su tienda, vaya a la <a %s>página del «Panel de su tienda»</a>�Para vender utilizando %1$s, debe permitir que WordPress acceda al complemento %1$s. El botón «Conectar» lo redirigirá a su cuenta de %1$s donde puede otorgar el permiso.�Para mostrar su escaparate virtual en lugar de la tienda de demostración, conecte su cuenta de %s existente o cree una nueva.�Para comenzar a vender, añada una página a su sitio web donde se muestre el escaparate virtual.�Arriba a la izquierda�Arriba a la derecha�Intente otra búsqueda.�Escriba su mensaje aquí�«Slug» de la dirección URL�Actualizar�Actualice su catálogo�Actualice para obtener esta función�Sangría vertical�Miniaturas verticales�Gris oscuro�Gris claro�Ver la página de la tienda�Ver la página de la tienda de demostración�Ver la página de la tienda�Visitar escaparate virtual�Azul cian vívido�Cian verde vívido�Rojo vívido�¿Desea conectar otra tienda de %s?�Advertencia: algunas de las funciones de su tienda en línea están inhabilitadas. Póngase en contacto con su proveedor de alojamiento web para resolverlo.�Notamos que tiene un WooCommerce instalado. Su tienda de WooCommerce tiene %1$s productos y %2$s categorías; ¿le gustaría importarlos a %3$s?�Notamos que tiene WooCommerce instalado. Si desea copiar fácilmente sus productos de WooCommerce a %s, esta herramienta le ayudará.�Estamos sincronizando sus productos. Esto puede tardar unos minutos. No actualice la página.�Sitio web�¿Qué función necesita?�¿Qué fue lo que pasó?�¿Qué sigue?�Mientras su tienda aún no esté conectada, se mostrará una tienda de demostración en su sitio web. Échele un vistazo para tener una idea de cómo se verá su tienda en el sitio web.�Precios al por mayor�Puede añadir un cuadro de búsqueda de productos, un «widget» de carrito y más desde la <a href="%s">«Página de apariencia y widgets»</a> que se encuentra aquí en el administrador de su sitio web. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">Más detalles.</a>�Puede añadir todo el escaparate virtual, las categorías, los productos o los botones de «Comprar ahora» a otras páginas de su sitio web. Para ello, abra una página en el editor y añada un bloque %s apropiado.�Puede añadir el menú de categorías de la tienda al menú de su sitio web para ayudar a sus clientes a navegar fácilmente por su sitio web. Simplemente abra «Apariencia > Menús» en el panel de WordPress y añada el elemento «Tienda con menú de categorías» al menú de su sitio web. Aparecerá automáticamente un menú desplegable que contendrá las categorías de su tienda en su sitio web.�Puede añadir su tienda en línea a su página empresarial de Facebook (no se necesitan complementos). Ecwid sincronizará automáticamente los productos, clientes, pedidos e inventario entre su tienda en línea de WordPress y Facebook. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">Más detalles.</a>�Puede gestionar la apariencia de su tienda en la <a %s>página de «Configuración del diseño»</a> ubicada en el panel de control de su tienda.�Puede mostrar su tienda en la página principal del sitio web. Ajuste la configuración de «Lectura» de su sitio web como se describe en nuestro <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">centro de asistencia.</a>�Puede habilitar un «widget» adicional del icono de la bolsa de compras que aparecerá en las páginas de su sitio web. Abra el menú «<a href="%1$s">Apariencia → Personalizar → %2$s</a>» para habilitarlo.�Puede habilitar los filtros en la configuración de la tienda: («<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Configuración → Filtros para los productos</a>»).�Puede enviar una nueva solicitud aquí.�Aún no ha visto ningún producto. Abra la tienda.�También podrá registrarse a través de sus perfiles existentes de Google, Facebook o PayPal.�Su tienda de %s tiene �Su tienda de %s está conectada<br /> a su sitio web de WordPress�Su tienda de %s ahora está conectada<br /> a su sitio web de WordPress�Su escaparate virtual�Su tienda de WooCommerce tiene �Se ha enviado su correo electrónico�Su producto�Panel de control de su tienda. Aquí mismo en WordPress.�Se ha creado su tienda. Preparando el panel de su tienda...�Su tienda se añade a varias páginas del sitio web. Elija la página principal. Los clientes son redirigidos a la página principal de la tienda cuando hacen clic en el icono del carrito, en los enlaces de la tienda ubicados en el menú del sitio web o en los productos que se encuentran en la barra lateral.�¡Su tienda ya está casi lista!�Su tienda no se añade a ninguna página de su sitio web. Para que los clientes puedan navegar por su tienda y realizar pedidos, cree una página donde se mostrará la tienda.�La página de su tienda�La página de su tienda está actualmente en un borrador. Una vez que esté lista, publíquela para que los clientes puedan visitar la tienda y realizar pedidos.�La página de su tienda está publicada. Los clientes pueden visitar su tienda en �Su tienda se mostrará aquí�¡Su tienda se mostrará aquí!�Su escaparate virtual (listado de productos y página de pago) está funcionando bien, pero las funciones avanzadas de la tienda, como el SEO y los «widgets» de la barra lateral, están inhabilitadas. Para habilitarlas y asegurarse de que su tienda funcione correctamente, pulse el botón de abajo para conectar su cuenta de %s. Esto tomará menos de un minuto; solo se le pedirá que inicie sesión en su cuenta y permita que este sitio web obtenga los datos de su tienda.�[%s] Comentarios sobre la desactivación del complemento de WordPress (ID de la tienda: %s)�personalizar apariencia�Contenido�Tienda�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�o <a %s>consulte el centro de asistencia�REF del producto�Precio del producto�seleccionar producto�producto seleccionado�Tienda en línea�Botón de «Comprar ahora»���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/languages/ecwid-shopping-cart-es_ES.po������������������������������������������0000644�����������������00000326062�15122273603�0017576 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Translation of Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) in German # This file is distributed under the same license as the Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) package. msgid "" msgstr "" "PO-Revision-Date: 2020-10-12 12:46\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: GlotPress/3.0.0-alpha.2\n" "Language: es\n" "Project-Id-Version: temporary-strings\n" "X-Crowdin-Project: temporary-strings\n" "X-Crowdin-Project-ID: 295314\n" "X-Crowdin-Language: es-ES\n" "X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po\n" "X-Crowdin-File-ID: 988\n" "Language-Team: Spanish\n" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:92 msgid "You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel." msgstr "Puede gestionar la apariencia de su tienda en la <a %s>página de «Configuración del diseño»</a> ubicada en el panel de control de su tienda." #: includes/integrations/elementor/class-ec-elementor-widget-store.php:55 msgid "To manage your store, go to <a %s>the Store Dashboard page</a>" msgstr "Para gestionar su tienda, vaya a la <a %s>página del «Panel de su tienda»</a>" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:39 msgid "The category that is shown by default on the Store Front Page" msgstr "La categoría que se muestra de forma predeterminada en la página del escaparate virtual" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:38 msgid "Default category" msgstr "Categoría predeterminada" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:29 msgid "Online Store" msgstr "Tienda en línea" #: includes/class-ecwid-stub-renderer.php:38 msgid "Buy Now" msgstr "Comprar ahora" #: templates/admin/welcome-terms-privacy.php:5 msgid "By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>." msgstr "Al continuar, acepta los <a %s>Términos de servicio</a> y la <a %s>Política de privacidad</a>." #: js/gutenberg/blocks.build.js:1 msgid "Display shopping cart and checkout page" msgstr "Mostrar el carrito de compras y la página de pago" #: js/gutenberg/blocks.build.js:1 msgid "Cart and Checkout" msgstr "Carrito y pago" #: js/gutenberg/blocks.build.js:1 msgid "Filters" msgstr "Filtros" #: js/gutenberg/blocks.build.js:1 msgid "You can enable filters in the store settings: (“<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Settings → Product Filters</a>”)." msgstr "Puede habilitar los filtros en la configuración de la tienda: («<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Configuración → Filtros para los productos</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Search and Filters" msgstr "Búsqueda y filtros" #: js/gutenberg/blocks.build.js:1 msgid "Display search page with filters on a side" msgstr "Mostrar página de búsqueda con los filtros a un lado" #: js/gutenberg/blocks.build.js:1 msgid "Product Search and filters" msgstr "Búsqueda de productos y filtros" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Display product page with description and a buy button" msgstr "Mostrar la página de productos con la descripción y un botón de compra" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Large" msgstr "Ficha de producto ampliada" #: js/gutenberg/blocks.build.js:1 msgid "Selected category" msgstr "Categoría seleccionada" #: js/gutenberg/blocks.build.js:1 msgid "Select category" msgstr "Seleccionar categoría" #: js/gutenberg/blocks.build.js:1 msgid "Add categories" msgstr "Añadir categorías" #: js/gutenberg/blocks.build.js:1 msgid "Display category page" msgstr "Mostrar la página de categorías" #: js/gutenberg/blocks.build.js:1 msgid "Store Category Page" msgstr "Página de categorías de la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Display shopping bag link and summary" msgstr "Mostrar enlace y resumen de la bolsa de compras" #: js/gutenberg/blocks.build.js:1 msgid "Shopping Cart Icon" msgstr "Icono del carrito de compras" #: js/gutenberg/blocks.build.js:1 msgid "The block is hidden because you don't have categories in your store. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Add categories.</a>" msgstr "El bloque está oculto porque no tiene categorías en su tienda. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Añadir categorías.</a>" #: js/gutenberg/blocks.build.js:1 msgid "Categories" msgstr "Categorías" #: js/gutenberg/blocks.build.js:1 msgid "Display categories navigation bar" msgstr "Mostrar la barra de navegación de las categorías" #: js/gutenberg/blocks.build.js:1 msgid "Store Categories Menu" msgstr "Menú de categorías de la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Product Search Box" msgstr "Cuadro de búsqueda de productos" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:25 #: js/gutenberg/blocks.build.js:1 msgid "Linked product" msgstr "Producto vinculado" #: js/gutenberg/blocks.build.js:1 msgid "Display a buy button" msgstr "Mostrar un botón de compra" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:10 #: js/gutenberg/blocks.build.js:1 msgid "Buy Now Button" msgstr "Botón «Comprar ahora»" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:52 #: js/gutenberg/blocks.build.js:1 msgid "Show price inside the «Buy now» button" msgstr "Mostrar el precio dentro del botón de «Comprar ahora»" #: js/gutenberg/blocks.build.js:1 msgctxt "gutenberg-product-block" msgid "Content" msgstr "Contenido" #: js/gutenberg/blocks.build.js:1 msgid "Change" msgstr "Cambiar" #: js/gutenberg/blocks.build.js:1 msgid "Displayed product" msgstr "Producto mostrado" #: js/gutenberg/blocks.build.js:1 msgid "Display product with a buy button" msgstr "Mostrar el producto con un botón de compra" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Small" msgstr "Ficha de producto reducida" #: js/gutenberg/blocks.build.js:1 msgid "Very dark gray" msgstr "Gris oscuro" #: js/gutenberg/blocks.build.js:1 msgid "Cyan bluish gray" msgstr "Gris cian azulado" #: js/gutenberg/blocks.build.js:1 msgid "Very light gray" msgstr "Gris claro" #: js/gutenberg/blocks.build.js:1 msgid "Vivid cyan blue" msgstr "Azul cian vívido" #: js/gutenberg/blocks.build.js:1 msgid "Pale cyan blue" msgstr "Azul cian pálido" #: js/gutenberg/blocks.build.js:1 msgid "Vivid green cyan" msgstr "Cian verde vívido" #: js/gutenberg/blocks.build.js:1 msgid "Light green cyan" msgstr "Cian verde claro" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid amber" msgstr "Ámbar vívido y brillante" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid orange" msgstr "Naranja vívido y brillante" #: js/gutenberg/blocks.build.js:1 msgid "Vivid red" msgstr "Rojo vívido" #: js/gutenberg/blocks.build.js:1 msgid "Pale pink" msgstr "Rosa pálido" #: js/gutenberg/blocks.build.js:1 msgid "Set manually" msgstr "Configurar manualmente" #: js/gutenberg/blocks.build.js:1 msgid "Detect automatically" msgstr "Detectar automáticamente" #: js/gutenberg/blocks.build.js:1 msgid "Color settings" msgstr "Configuración de colores" #: js/gutenberg/blocks.build.js:1 msgid "Store Navigation" msgstr "Navegación en la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Store Front Page" msgstr "Página del escaparate virtual" #: js/gutenberg/blocks.build.js:1 msgid "Product sidebar content" msgstr "Contenido de la barra lateral de productos" #: js/gutenberg/blocks.build.js:1 msgid "Product Page Appearance" msgstr "Apariencia de la página del producto" #: js/gutenberg/blocks.build.js:1 msgid "Product List Appearance" msgstr "Apariencia de la lista de productos" #: js/gutenberg/blocks.build.js:1 msgid "Category List Appearance" msgstr "Apariencia de la lista de categorías" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Display cart icon" msgstr "Mostrar icono del carrito" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Para mejorar la apariencia de su tienda y poder gestionar la apariencia de su escaparate virtual desde aquí, habilite la opción «Apariencia de próxima generación de la lista de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Add storefront (product listing)" msgstr "Añadir escaparate virtual (listado de productos)" #: templates/admin/storefront/main.php:21 msgid "Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers." msgstr "Los clientes no pueden ver la página de su tienda porque está en un borrador. Publique la página para que esté disponible para sus clientes." #: templates/admin/storefront/main.php:20 msgid "The store is not visible on your site" msgstr "La tienda no es visible en su sitio web" #: templates/admin/storefront/main.php:4 msgid "Your Storefront" msgstr "Su escaparate virtual" #: templates/admin/storefront/area-promo.php:30 msgid "Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars." msgstr "Ayude a los clientes a encontrar su tienda en el sitio web. Añada el enlace de la tienda al menú del sitio web, cree páginas adicionales de la tienda y resalte los productos de la tienda en otras páginas del sitio web y en las barras laterales." #: templates/admin/storefront/area-promo.php:29 msgid "Promote your store" msgstr "Promocione su tienda" #: templates/admin/storefront/area-promo.php:26 msgid "Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store." msgstr "Manténgase conectado con sus clientes. Actualice el contenido de su tienda en cualquier momento para informarles a los clientes sobre las promociones actuales y las novedades de su tienda." #: templates/admin/storefront/area-promo.php:25 msgid "Change store content" msgstr "Cambiar el contenido de la tienda" #: templates/admin/storefront/area-promo.php:22 msgid "Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand." msgstr "Personalice la apariencia de su tienda para que se ajuste a las necesidades de su negocio. Cree la apariencia para su tienda que más se parezca a su marca." #: templates/admin/storefront/area-promo.php:21 msgid "Customize store appearance" msgstr "Personalizar la apariencia de la tienda" #: templates/admin/storefront/area-promo.php:7 msgid "Add your %s store to the website and start selling in minutes." msgstr "Añada su tienda de %s al sitio web y comience a vender en minutos." #: templates/admin/storefront/area-promo.php:3 msgid "What's next?" msgstr "¿Qué sigue?" #: templates/admin/storefront/area-additional.php:224 msgid "Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar." msgstr "Su tienda se añade a varias páginas del sitio web. Elija la página principal. Los clientes son redirigidos a la página principal de la tienda cuando hacen clic en el icono del carrito, en los enlaces de la tienda ubicados en el menú del sitio web o en los productos que se encuentran en la barra lateral." #: templates/admin/storefront/area-additional.php:222 msgid "Choose the main store page" msgstr "Elegir la página principal de la tienda" #: templates/admin/storefront/area-additional.php:200 msgid "Go to Pages" msgstr "Ir a «Páginas»" #: templates/admin/storefront/area-additional.php:193 msgid "You can add the entire storefront, categories, products, or \"Buy now\" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block." msgstr "Puede añadir todo el escaparate virtual, las categorías, los productos o los botones de «Comprar ahora» a otras páginas de su sitio web. Para ello, abra una página en el editor y añada un bloque %s apropiado." #: templates/admin/storefront/area-additional.php:189 msgid "Add your store to other site pages" msgstr "Añada su tienda a otras páginas del sitio web" #: templates/admin/storefront/area-additional.php:166 msgid "Create Product Page" msgstr "Crear página de productos" #: templates/admin/storefront/area-additional.php:150 msgid "Pick Product" msgstr "Elegir un producto" #: templates/admin/storefront/area-additional.php:136 #: templates/admin/storefront/area-additional.php:138 msgid "Create a landing page featuring one of your products." msgstr "Cree una página de aterrizaje con uno de sus productos." #: templates/admin/storefront/area-additional.php:132 msgid "Add a product page" msgstr "Añadir página de productos" #: templates/admin/storefront/area-additional.php:109 msgid "Create Category Page" msgstr "Crear página de categorías" #: templates/admin/storefront/area-additional.php:93 msgid "Pick Category" msgstr "Elegir una categoría" #: templates/admin/storefront/area-additional.php:79 #: templates/admin/storefront/area-additional.php:81 msgid "Feature a specific store category on a separate page of your site." msgstr "Destacar una categoría de la tienda específica en una página separada de su sitio web." #: templates/admin/storefront/area-additional.php:75 msgid "Add a category page" msgstr "Añadir una página de categoría" #: templates/admin/storefront/area-additional.php:54 msgid "Create Search Page" msgstr "Crear página de búsqueda" #: templates/admin/storefront/area-additional.php:50 msgid "Show customers that they can use a search and filters to find desired products faster." msgstr "Muéstreles a los clientes que pueden utilizar la búsqueda y los filtros para encontrar los productos que deseen de forma más rápida." #: templates/admin/storefront/area-additional.php:48 msgid "Add a search and filters page" msgstr "Añadir una página de búsqueda y filtros" #: templates/admin/storefront/area-additional.php:27 msgid "Create Cart Page" msgstr "Crear página del carrito" #: templates/admin/storefront/area-additional.php:23 msgid "Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout." msgstr "Los clientes van a la página del carrito para consultar los productos que han añadido al mismo y proceder con el pago." #: templates/admin/storefront/area-additional.php:21 msgid "Add cart and checkout page" msgstr "Añadir carrito y página de pago" #: templates/admin/storefront/area-additional.php:4 msgid "Highlight products, categories, and other store pages by adding them to separate website pages." msgstr "Destaque productos, categorías y otras páginas de la tienda añadiéndolas a páginas del sitio web separadas." #: templates/admin/storefront/area-additional.php:3 msgid "Additional store pages" msgstr "Páginas adicionales de la tienda" #: templates/admin/storefront/draft-message.php:2 msgid "Publish the page to use this option" msgstr "Publique la página para poder utilizar esta opción" #: templates/admin/storefront/area-design.php:55 msgid "Along with the store catalog, you can add other widgets and texts to the store page." msgstr "Junto con el catálogo de la tienda, puede añadir otros «widgets» y textos a la página de la tienda." #: templates/admin/storefront/area-design.php:54 msgid "Store page content" msgstr "Contenido de la página de la tienda" #: templates/admin/storefront/area-design.php:25 #: templates/admin/storefront/area-design.php:27 msgid "Adjust your store design to fit your business needs." msgstr "Ajuste el diseño de su tienda para que se adapte a las necesidades de su negocio." #: templates/admin/storefront/area-design.php:21 msgid "Store appearance" msgstr "Apariencia de la tienda" #: templates/admin/storefront/area-design.php:4 msgid "Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers." msgstr "Personalice la apariencia de su escaparate virtual y edite el contenido en la página de la tienda para reflejar su marca y mantenerse conectado con sus clientes." #: templates/admin/storefront/area-design.php:3 msgid "Design and content" msgstr "Diseño y contenido" #: templates/admin/storefront/area-status.php:124 msgid "Create Store Page" msgstr "Crear la página de la tienda" #: templates/admin/storefront/area-status.php:121 msgid "Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display." msgstr "Su tienda no se añade a ninguna página de su sitio web. Para que los clientes puedan navegar por su tienda y realizar pedidos, cree una página donde se mostrará la tienda." #: templates/admin/storefront/area-status.php:115 msgid "Set Up Your Store" msgstr "Configure su tienda" #: templates/admin/storefront/area-status.php:109 msgid "To show your storefront instead of the demo store, connect your existing %s account or create a new one." msgstr "Para mostrar su escaparate virtual en lugar de la tienda de demostración, conecte su cuenta de %s existente o cree una nueva." #: templates/admin/storefront/area-status.php:101 msgid "Publish Store Page" msgstr "Publicar la página de la tienda" #: templates/admin/storefront/area-status.php:98 msgid "Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders." msgstr "La página de su tienda está actualmente en un borrador. Una vez que esté lista, publíquela para que los clientes puedan visitar la tienda y realizar pedidos." #: templates/admin/storefront/area-status.php:92 msgid "View Store Page" msgstr "Ver la página de la tienda" #: templates/admin/storefront/area-status.php:86 msgid "Your store page is published. Customers can browse your store at " msgstr "La página de su tienda está publicada. Los clientes pueden visitar su tienda en " #: templates/admin/storefront/area-status.php:77 msgid "View demo store page" msgstr "Ver la página de la tienda de demostración" #: templates/admin/storefront/area-status.php:46 msgid "Draft" msgstr "Borrador" #: templates/admin/storefront/area-status.php:45 msgid "Published" msgstr "Publicada" #: templates/admin/storefront/area-status.php:33 #: templates/admin/storefront/area-status.php:36 msgid "Status" msgstr "Estado" #: templates/admin/storefront/area-status.php:29 msgid "Add a store page" msgstr "Añadir una página de tienda" #: templates/admin/storefront/area-status.php:24 msgid "Connect your %s store" msgstr "Conecte su tienda de %s" #: templates/admin/storefront/area-status.php:21 msgid "Your store page" msgstr "La página de su tienda" #: templates/admin/storefront/area-status.php:10 msgid "To start selling, add a page to your site where the storefront will display." msgstr "Para comenzar a vender, añada una página a su sitio web donde se muestre el escaparate virtual." #: templates/admin/storefront/area-status.php:7 msgid "While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site." msgstr "Mientras su tienda aún no esté conectada, se mostrará una tienda de demostración en su sitio web. Échele un vistazo para tener una idea de cómo se verá su tienda en el sitio web." #: templates/admin/storefront/area-status.php:4 msgid "Store page on your site" msgstr "Página de la tienda en su sitio web" #: templates/admin/storefront/area-navigation.php:205 msgid "The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href=\"%s\" target=\"_blank\">adjust the cart icon appearance</a>." msgstr "El icono del carrito de compras muestra la cantidad de artículos en el carrito y ayuda a los clientes a realizar el pago. Además, puede <a href=\"%s\" target=\"_blank\">ajustar la apariencia del icono del carrito</a>." #: templates/admin/storefront/area-navigation.php:201 msgid "Display the shopping cart icon on site pages" msgstr "Muestre el icono del carrito de compras en las páginas del sitio web" #: templates/admin/storefront/area-navigation.php:179 msgid "Manage Sidebar" msgstr "Gestionar la barra lateral" #: templates/admin/storefront/area-navigation.php:175 msgid "Highlight your best sellers or new products in the website sidebar." msgstr "Destaque sus mejores ventas o nuevos productos en la barra lateral del sitio web." #: templates/admin/storefront/area-navigation.php:173 msgid "Feature your products in the sidebar" msgstr "Destaque sus productos en la barra lateral" #: templates/admin/storefront/area-navigation.php:151 msgid "Add Store Page to Menu" msgstr "Añadir la página de la tienda al menú" #: templates/admin/storefront/area-navigation.php:147 msgid "Make your store accessible from the site menu so your customers can easily find it." msgstr "Haga que su tienda sea accesible desde el menú del sitio web para que sus clientes puedan encontrarla fácilmente." #: templates/admin/storefront/area-navigation.php:141 msgid "Add store page to the site menu" msgstr "Añadir la página de la tienda al menú del sitio web" #: templates/admin/storefront/area-navigation.php:118 msgid "Edit URL Slug" msgstr "Editar «slug» de la dirección URL" #: templates/admin/storefront/area-navigation.php:102 msgid "Current URL slug: /<span data-ec-store-slug>%s</span>" msgstr "«Slug» actual de la dirección URL: /<span data-ec-store-slug>%s</span>" #: templates/admin/storefront/area-navigation.php:78 msgid "Save" msgstr "Guardar" #: templates/admin/storefront/area-navigation.php:69 msgid "URL Slug" msgstr "«Slug» de la dirección URL" #: templates/admin/storefront/area-navigation.php:60 #: templates/admin/storefront/area-navigation.php:113 msgid "A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use \"/shop\" or \"/products\"." msgstr "Un «slug» es la última parte de una URL. Puede crear un «slug» personalizado para la página de su tienda. Es mejor que sea corto, ya que los clientes y los motores de búsqueda prefieren las URL cortas. Por ejemplo, utilice «/tienda» o «/productos»." #: templates/admin/storefront/area-navigation.php:56 #: templates/admin/storefront/area-navigation.php:98 msgid "Customize store page address" msgstr "Personalizar la dirección de la página de la tienda" #: templates/admin/storefront/area-navigation.php:29 msgid "Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href=\"%s\" target=\"_blank\">WordPress Settings > Reading</a>" msgstr "Añada su escaparate virtual a la página de inicio del sitio web para que sea más notable. También puede modificar la configuración de la página de inicio del sitio web en <a href=\"%s\" target=\"_blank\">Configuración de WordPress > Lectura</a>." #: templates/admin/storefront/area-navigation.php:21 msgid "Show your store on the home page" msgstr "Muestre su tienda en la página de inicio" #: templates/admin/storefront/area-navigation.php:4 msgid "Help customers find your store on the website." msgstr "Ayude a los clientes a encontrar su tienda en el sitio web." #: templates/admin/storefront/area-navigation.php:3 msgid "Navigation" msgstr "Navegación" #: templates/admin/welcome-no_oauth.php:12 msgid "Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>." msgstr "El ID de la tienda es un identificador único de su cuenta de %1$s. Puede encontrarlo en su panel de control de %1$s en la <a %2$s>página del panel</a>." #: templates/admin/welcome-create.php:11 msgid "Your store has been created. Preparing your store dashboard ..." msgstr "Se ha creado su tienda. Preparando el panel de su tienda..." #: templates/admin/welcome-connect.php:8 msgid "Create store" msgstr "Crear tienda" #: templates/admin/welcome-connect.php:4 msgid "Connect Your Store" msgstr "Conecte su tienda" #: templates/admin/welcome-page.php:61 msgid "Provided by <a %s>%s</a>" msgstr "Proporcionado por <a %s>%s</a>" #: templates/admin/welcome-page.php:33 msgid "To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>." msgstr "Para añadir su tienda a su sitio web, introduzca el ID de su tienda de %1$s en el campo a continuación. Si aún no tiene una cuenta de %1$s, cree una gratis en el <a %2$s>sitio web de %1$s</a>." #: templates/admin/welcome-page.php:20 msgid "Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website." msgstr "Cree una nueva tienda o, si ya tiene una cuenta de %s, conéctela. El complemento le guiará a través de la configuración de la tienda y le ayudará a publicarla en su sitio web." #: templates/admin/welcome-page.php:12 msgid "Add an Online Store to Your Website" msgstr "Añadir una tienda en línea a su sitio web" #: includes/class-ecwid-store-page.php:566 msgid "This is a demo store. Create your store to see your store products here." msgstr "Esto es una tienda de demostración. Cree su tienda para ver los productos de su tienda aquí." #: includes/class-ecwid-admin-storefront-page.php:539 msgid "Publish" msgstr "Publicar" #: templates/admin/storefront/area-design.php:33 #: templates/admin/storefront/area-design.php:59 #: includes/class-ecwid-admin-storefront-page.php:532 msgid "Edit" msgstr "Editar" #: includes/class-ecwid-admin-storefront-page.php:525 msgid "Preview" msgstr "Vista previa" #: includes/class-ecwid-admin-storefront-page.php:516 msgid "Switch to draft" msgstr "Cambiar al borrador" #: includes/class-ecwid-admin-storefront-page.php:506 msgid "Edit page" msgstr "Editar página" #: includes/class-ecwid-admin-storefront-page.php:499 msgid "View store page" msgstr "Ver la página de la tienda" #: includes/class-ecwid-admin-storefront-page.php:286 msgid "Search products" msgstr "Buscar productos" #: includes/class-ecwid-admin-storefront-page.php:265 msgid "Category" msgstr "Categoría" #: includes/class-ecwid-admin-storefront-page.php:240 msgid "Page with that name already exists." msgstr "Ya existe una página con ese nombre." #: includes/class-ecwid-admin.php:538 msgid "My Profile" msgstr "Mi perfil" #: includes/class-ecwid-admin.php:533 msgid "Apps" msgstr "Aplicaciones" #: includes/class-ecwid-admin.php:523 msgid "Shipping & Pickup" msgstr "Envío y recogida" #: includes/class-ecwid-admin.php:518 msgid "Payment" msgstr "Pago" #: includes/class-ecwid-admin.php:513 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:88 msgid "Design" msgstr "Diseño" #: includes/class-ecwid-admin.php:509 msgid "Configuration" msgstr "Configuración" #: includes/class-ecwid-admin.php:504 msgid "All Sales Channels" msgstr "Todos los canales de venta" #: includes/class-ecwid-admin.php:499 msgid "Website" msgstr "Sitio web" #: includes/class-ecwid-admin.php:494 msgid "Mobile" msgstr "Móvil" #: includes/class-ecwid-admin.php:485 msgid "Sales channels" msgstr "Canales de venta" #: includes/class-ecwid-admin.php:480 msgid "Reports" msgstr "Informes" #: includes/class-ecwid-admin.php:475 msgid "Marketing" msgstr "Mercadotecnia" #: includes/class-ecwid-admin.php:470 msgid "Catalog" msgstr "Catálogo" #: includes/class-ecwid-admin.php:465 msgid "My Sales" msgstr "Mis ventas" #: includes/class-ecwid-admin.php:455 msgid "Store management" msgstr "Gestión de la tienda" #: includes/class-ecwid-admin.php:344 msgid "Instant site" msgstr "Sitio web instantáneo" #: includes/class-ecwid-admin.php:153 includes/class-ecwid-admin.php:154 #: includes/class-ecwid-admin.php:309 msgid "Storefront" msgstr "Escaparate virtual" #: ecwid-shopping-cart.php:1111 msgid "Manage storefront" msgstr "Gestionar escaparate virtual" #: ecwid-shopping-cart.php:1111 msgid "Customize design" msgstr "Personalizar el diseño" #: ecwid-shopping-cart.php:1103 msgid "Manage store" msgstr "Gestionar la tienda" #: templates/importer/woo-main.tpl.php:97 msgid "Start Import" msgstr "Iniciar la importación" #: templates/importer/woo-main.tpl.php:87 msgid "Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target=\"_blank\">\"Billing & Plans\"</a></nobr> page in your Ecwid store control panel." msgstr "Tenga en cuenta el número máximo de productos y categorías que puede tener en su tienda de Ecwid. Esta herramienta de importación se detendrá automáticamente cuando se alcance el límite de productos de la tienda. Para conocer el límite actual de la tienda o aumentarlo, consulte la página <nobr><a %s target=\"_blank\">«Facturación y planes»</a></nobr> ubicada en el panel de su tienda de Ecwid." #: templates/importer/woo-main.tpl.php:82 msgid "Import creates new products and update the existing products with matching SKUs." msgstr "La importación crea nuevos productos y actualiza los productos existentes con las REF correspondientes." #: templates/importer/woo-main.tpl.php:60 msgid "Copying products and categories." msgstr "Copia de productos y categorías." #: templates/importer/woo-main.tpl.php:50 msgid "Import completed. <a href=\"%s\">Run again.</a>" msgstr "Importación completada. <a href=\"%s\">Ejecútela de nuevo.</a>" #: templates/importer/woo-main.tpl.php:34 msgid "Import is in Progress" msgstr "La importación está en progreso" #: templates/importer/woo-main.tpl.php:32 msgid "Import your products from Woocommerce to %s" msgstr "Importe sus productos de Woocommerce a %s" #: templates/importer/woo-main.tpl.php:18 msgid "Update your catalog" msgstr "Actualice su catálogo" #: templates/importer/woo-main.tpl.php:4 msgid "Import Your Products From Woocommerce to %s" msgstr "Importe sus productos de Woocommerce a %s" #: templates/importer/import-no-token.tpl.php:3 msgid "Click the connect button to get rights to update the product catalog" msgstr "Haga clic en el botón «Conectar» para obtener los permisos para actualizar el catálogo de productos" #: templates/importer/woo-complete-alert.tpl.php:52 msgid "Go to Your %s Products" msgstr "Ir a sus productos de %s" #: templates/importer/woo-complete-alert.tpl.php:43 msgid "Download <a href=\"%s\">import log</a>" msgstr "Descargar <a href=\"%s\">registro de importación</a>" #: templates/importer/woo-complete-alert.tpl.php:32 msgid "Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>" msgstr "Parte de los productos no se han copiado a %1$s porque alcanzó el límite de productos en su plan de precios en %1$s. Si desea importar más productos, considere <nobr><a %2$s>actualizar su plan de %1$s.</a></nobr>" #: templates/importer/woo-complete-alert.tpl.php:21 msgid "<b>%s</b> categories" msgstr "<b>%s</b> categorías" #: templates/importer/woo-complete-alert.tpl.php:18 msgid "Imported <b>%s</b> products" msgstr "<b>%s</b> productos importados" #: templates/importer/woo-complete-alert.tpl.php:15 msgid "Import completed" msgstr "Importación completada" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:10 #: includes/widgets/class-ecwid-widget-product-browser.php:12 msgid "Online store" msgstr "Tienda en línea" #: includes/class-ecwid-store-page.php:476 msgid "%s Store Page" msgstr "Página de la tienda de %s" #: templates/advanced-settings.php:79 msgid "Integration with search on your site" msgstr "Integración con la búsqueda en su sitio web" #: templates/sync.php:130 msgid "Deleted products synchronized: %1$s out of %2$s" msgstr "Productos eliminados sincronizados: %1$s de %2$s" #: includes/class-ecwid-custom-admin-page.php:66 msgid "Themes for Ecwid" msgstr "Temas para Ecwid" #: includes/class-ecwid-custom-admin-page.php:33 msgid "Plugins for Ecwid" msgstr "Complementos para Ecwid" #: includes/class-ecwid-popup-deactivate.php:138 msgid "I use this WordPress theme: %s" msgstr "Utilizo este tema de WordPress: %s" #: includes/class-ecwid-popup-deactivate.php:132 msgid "I couldn’t find a WordPress theme that goes well with %s" msgstr "No pude encontrar un tema de WordPress adecuado para %s" #: includes/class-ecwid-product-browser.php:357 msgid "On the right" msgstr "A la derecha" #: includes/class-ecwid-product-browser.php:353 msgid "On the left" msgstr "A la izquierda" #: includes/class-ecwid-product-browser.php:349 msgid "Filters panel position" msgstr "Posición del panel de filtros" #: includes/class-ecwid-product-browser.php:209 msgid "Default product_ID" msgstr "ID del producto predeterminado" #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:73 msgid "Cart icon" msgstr "Icono del carrito de compras" #: templates/shortcode-stub-store.tpl.php:4 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:20 #: js/gutenberg/blocks.build.js:1 msgid "Store Home Page" msgstr "Página de inicio de la tienda" #: ecwid-shopping-cart.php:431 msgid "Edit Category" msgstr "Editar categoría" #: ecwid-shopping-cart.php:430 msgid "Edit Product" msgstr "Editar producto" #: includes/class-ecwid-admin.php:142 includes/class-ecwid-admin.php:143 msgid "Online Store Apps" msgstr "Aplicaciones de la tienda en línea" #. Plugin Name of the plugin msgid "Ecwid Ecommerce Shopping Cart" msgstr "Carrito de compras del comercio electrónico de Ecwid" #: includes/class-ecwid-custom-admin-page.php:58 includes/faq_entries.php:76 msgid "Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href=\"%s\">TemplateMonster themes</a>" msgstr "Ecwid es compatible con cualquier tema de WordPress. Ya sea un tema gratuito del catálogo de WordPress.org, un tema prémium de un proveedor externo o un tema personalizado; su tienda de Ecwid funcionará bien con cualquiera de ellos. Si desea un tema prémium, le recomendamos <a href=\"%s\">temas de TemplateMonster</a>." #: includes/faq_entries.php:74 msgid "Is there a WordPress theme for Ecwid?" msgstr "¿Existe algún tema de WordPress para Ecwid?" #: templates/admin-footer.php:19 msgid "<a href=\"admin.php?page=" msgstr "<a href=\"admin.php?page=" #: includes/integrations/class-ecwid-integration-gutenberg.php:113 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:25 msgid "You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href=\"%1$s\">Appearance → Customize → %2$s</a>” menu to enable it." msgstr "Puede habilitar un «widget» adicional del icono de la bolsa de compras que aparecerá en las páginas de su sitio web. Abra el menú «<a href=\"%1$s\">Apariencia → Personalizar → %2$s</a>» para habilitarlo." #: includes/integrations/class-ecwid-integration-gutenberg.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:18 msgctxt "gutenberg-store-block-stub" msgid "Store" msgstr "Tienda" #: includes/class-ecwid-product-browser.php:472 msgid "Image feed" msgstr "Canal de imagen" #: includes/class-ecwid-product-browser.php:467 msgid "Vertical thumbnails" msgstr "Miniaturas verticales" #: includes/class-ecwid-product-browser.php:462 msgid "Horizontal thumbnails" msgstr "Miniaturas horizontales" #: includes/class-ecwid-product-browser.php:452 msgid "3 columns, image on the right" msgstr "3 columnas, imagen a la derecha" #: includes/class-ecwid-product-browser.php:448 msgid "3 columns, image on the left" msgstr "3 columnas, imagen a la izquierda" #: includes/class-ecwid-product-browser.php:444 msgid "2 columns, image on the right" msgstr "2 columnas, imagen a la derecha" #: includes/class-ecwid-product-browser.php:440 msgid "2 columns, image on the left" msgstr "2 columnas, imagen a la izquierda" #: includes/class-ecwid-product-browser.php:429 msgid "Landscape 3:2" msgstr "Horizontal 3:2" #: includes/class-ecwid-product-browser.php:424 msgid "Landscape 4:3" msgstr "Horizontal 4:3" #: includes/class-ecwid-product-browser.php:419 msgid "Square 1:1" msgstr "Cuadrado 1:1" #: includes/class-ecwid-product-browser.php:414 msgid "Portrait 3:4" msgstr "Vertical 3:4" #: includes/class-ecwid-product-browser.php:409 msgid "Portrait 2:3" msgstr "Vertical 2:3" #: includes/class-ecwid-product-browser.php:399 msgid "L" msgstr "G" #: includes/class-ecwid-product-browser.php:395 msgid "M" msgstr "M" #: includes/class-ecwid-product-browser.php:391 msgid "S" msgstr "P" #: includes/class-ecwid-product-browser.php:381 msgid "Show on hover" msgstr "Mostrar al pasar el ratón" #: includes/class-ecwid-product-browser.php:377 msgid "Hide" msgstr "Ocultar" #: includes/class-ecwid-product-browser.php:373 msgid "Show" msgstr "Mostrar" #: includes/class-ecwid-product-browser.php:342 msgid "Background color" msgstr "Color del fondo" #: includes/class-ecwid-product-browser.php:335 msgid "Link color" msgstr "Color del enlace" #: includes/class-ecwid-product-browser.php:328 msgid "Price color" msgstr "Color del precio" #: includes/class-ecwid-product-browser.php:321 msgid "Text color" msgstr "Color del texto" #: includes/class-ecwid-product-browser.php:314 msgid "Button color" msgstr "Color del botón" #: includes/class-ecwid-product-browser.php:299 msgid "Wholesale prices" msgstr "Precios al por mayor" #: includes/class-ecwid-product-browser.php:292 msgid "\"In stock\" label" msgstr "Etiqueta de productos «En existencia»" #: includes/class-ecwid-product-browser.php:285 msgid "Available qty in stock" msgstr "Cantidad disponible en existencia" #: includes/class-ecwid-product-browser.php:278 msgid "Product quantity" msgstr "Cantidad de productos" #: includes/class-ecwid-product-browser.php:271 msgctxt "product-browser-attributes" msgid "Product price" msgstr "Precio del producto" #: includes/class-ecwid-product-browser.php:264 msgctxt "product-browser-attributes" msgid "Product SKU" msgstr "REF del producto" #: includes/class-ecwid-product-browser.php:257 msgid "Breadcrumbs" msgstr "Migas de pan" #: includes/class-ecwid-product-browser.php:241 msgid "Image gallery layout" msgstr "Diseño de la galería de imágenes" #: includes/integrations/class-ecwid-integration-gutenberg.php:391 #: includes/class-ecwid-product-browser.php:224 #: includes/class-ecwid-product-browser.php:233 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:212 msgid "Show description under the image" msgstr "Mostrar descripción debajo de la imagen" #: includes/class-ecwid-product-browser.php:216 msgid "Product page layout" msgstr "Diseño de la página de productos" #: includes/class-ecwid-product-browser.php:194 msgid "Display sort by link" msgstr "Mostrar «ordenar por enlace»" #: includes/class-ecwid-product-browser.php:186 #: includes/class-ecwid-product-browser.php:306 msgid "Display sign in link" msgstr "Mostrar el enlace de inicio de sesión" #: includes/class-ecwid-product-browser.php:178 msgid "Display footer menu" msgstr "Mostrar el menú del pie de página" #: includes/class-ecwid-product-browser.php:170 msgid "Display breadcrumbs" msgstr "Mostrar migas de pan" #: includes/class-ecwid-product-browser.php:163 js/gutenberg/blocks.build.js:1 msgid "Display search box" msgstr "Mostrar el cuadro de búsqueda" #: includes/class-ecwid-product-browser.php:156 msgid "Display categories menu" msgstr "Mostrar el menú de categorías" #: includes/class-ecwid-product-browser.php:148 msgid "Category thumbnail aspect ratio" msgstr "Relación de aspecto de la miniatura de la categoría" #: includes/class-ecwid-product-browser.php:140 msgid "Category thumbnail size" msgstr "Tamaño de la miniatura de la categoría" #: includes/class-ecwid-product-browser.php:131 msgid "Image only" msgstr "Solo imagen" #: includes/class-ecwid-product-browser.php:127 msgid "Title only" msgstr "Solo título" #: includes/class-ecwid-product-browser.php:123 msgid "Image and title on mouse over" msgstr "Imagen y título al pasar el ratón por encima" #: includes/class-ecwid-product-browser.php:119 msgid "Title on image" msgstr "Título en la imagen" #: includes/class-ecwid-product-browser.php:115 msgid "Title under image" msgstr "Título debajo de la imagen" #: includes/class-ecwid-product-browser.php:111 msgid "Category card layout" msgstr "Diseño de la ficha de categoría" #: includes/class-ecwid-product-browser.php:103 msgid "Show additional image on hover" msgstr "Mostrar imagen adicional al pasar el ratón" #: includes/class-ecwid-product-browser.php:95 msgid "Buy now buttons" msgstr "Botones de «Comprar ahora»" #: includes/class-ecwid-product-browser.php:87 msgid "Product SKU" msgstr "REF del producto" #: includes/class-ecwid-product-browser.php:79 msgid "Product price" msgstr "Precio del producto" #: includes/class-ecwid-product-browser.php:71 msgid "Product title" msgstr "Título del producto" #: includes/class-ecwid-product-browser.php:61 msgid "Justify" msgstr "Justificado" #: includes/class-ecwid-product-browser.php:56 msgid "Right" msgstr "Derecha" #: includes/class-ecwid-product-browser.php:51 msgid "Center" msgstr "Centrado" #: includes/class-ecwid-product-browser.php:46 msgid "Left" msgstr "Izquierda" #: includes/class-ecwid-product-browser.php:42 msgid "Product card text align" msgstr "El texto de la ficha del producto se alinea" #: includes/class-ecwid-product-browser.php:34 msgid "Show product card border" msgstr "Mostrar el borde de la ficha del producto" #: includes/class-ecwid-product-browser.php:26 msgid "Product thumbnail aspect ratio" msgstr "Relación de aspecto de la miniatura del producto" #: includes/class-ecwid-product-browser.php:18 msgid "Product thumbnail size" msgstr "Tamaño de la miniatura del producto" #: includes/class-ecwid-product-browser.php:10 msgid "Show product thumbnails" msgstr "Mostrar miniaturas de los productos" #. Author of the plugin msgid "Ecwid Ecommerce" msgstr "Comercio electrónico Ecwid" #: templates/importer/woo-summary.tpl.php:34 msgid "After import, your %s store will have " msgstr "Después de la importación, su tienda de %s tendrá " #: templates/importer/woo-summary.tpl.php:21 msgid "Your %s store has " msgstr "Su tienda de %s tiene " #: templates/importer/woo-summary.tpl.php:10 msgid "Your WooCommerce store has " msgstr "Su tienda de WooCommerce tiene " #: includes/integrations/class-ecwid-integration-elementor.php:64 #: includes/integrations/class-ecwid-integration-divibuilder.php:25 #: includes/integrations/class-ecwid-integration-gutenberg.php:94 msgid "%s Store" msgstr "Tienda de %s" #: includes/importer/class-ecwid-import-page.php:184 msgid "%s products" msgstr "%s productos" #: includes/importer/class-ecwid-import-page.php:178 msgid "%s products and %s categories" msgstr "%s productos y %s categorías" #: includes/class-ecwid-stub-renderer.php:27 #: includes/class-ecwid-admin-storefront-page.php:272 msgid "Product" msgstr "Producto" #: includes/class-ecwid-message-manager.php:278 #: includes/class-ecwid-message-manager.php:297 #: includes/class-ecwid-message-manager.php:318 msgid "Warning: some of your online store features are disabled. Please contact your hosting provider to resolve." msgstr "Advertencia: algunas de las funciones de su tienda en línea están inhabilitadas. Póngase en contacto con su proveedor de alojamiento web para resolverlo." #: templates/admin/legacy-connect.tpl.php:39 msgid "Create new account" msgstr "Crear una nueva cuenta" #: templates/admin/legacy-connect.tpl.php:33 msgid "Register at %s" msgstr "Registrarse en %s" #: includes/class-ecwid-floating-minicart.php:155 msgid "Bottom left" msgstr "Abajo a la izquierda" #: includes/class-ecwid-floating-minicart.php:154 msgid "Top left" msgstr "Arriba a la izquierda" #: includes/class-ecwid-floating-minicart.php:113 msgid "Show on all pages" msgstr "Mostrar en todas las páginas" #: includes/class-ecwid-floating-minicart.php:112 msgid "Show on store pages" msgstr "Mostrar en las páginas de la tienda" #: includes/class-ecwid-floating-minicart.php:111 msgid "Do not show" msgstr "No mostrar" #: includes/class-ecwid-customizer.php:134 msgid "Vertical indent" msgstr "Sangría vertical" #: includes/class-ecwid-customizer.php:123 msgid "Horizontal indent" msgstr "Sangría horizontal" #: includes/class-ecwid-customizer.php:97 msgid "Icon" msgstr "Icono" #: includes/class-ecwid-customizer.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:79 msgid "Border" msgstr "Borde" #: includes/class-ecwid-customizer.php:72 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:67 msgid "Layout" msgstr "Diseño" #: includes/class-ecwid-customizer.php:61 msgid "Show when empty" msgstr "Mostrar cuando esté vacío" #: includes/class-ecwid-customizer.php:49 msgid "Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The \"Show on store pages\" and \"Show when empty\" options will apply to the cart widget on site when published" msgstr "Nota: cuando está habilitado, el «widget» del carrito siempre se mostrará en la vista previa para que sea más fácil personalizarlo. Las opciones «Mostrar en las páginas de la tienda» y «Mostrar cuando esté vacío» se aplicarán al «widget» del carrito en el sitio cuando se publiquen" #: includes/class-ecwid-customizer.php:47 msgid "Display shopping cart" msgstr "Mostrar el carrito de compras" #: includes/class-ecwid-customizer.php:35 msgid "Shopping Cart Widget" msgstr "«Widget» del carrito de compras" #. Author URI of the plugin msgid "https://ecwid.to/ecwid-site" msgstr "https://ecwid.to/ecwid-site" #: templates/product-popup.php:247 msgid "selected product" msgstr "producto seleccionado" #: templates/product-popup.php:138 templates/product-popup.php:143 msgid "Selected Product" msgstr "Producto seleccionado" #: templates/product-popup.php:124 msgid " Choose another product" msgstr " Elegir otro producto" #: templates/importer/landing.tpl.php:20 msgid "Import your WooCommerce catalog to %s" msgstr "Importe su catálogo de WooCommerce a %s" #: includes/widgets/nsf-minicart-editor.tpl.php:35 msgid "Border:" msgstr "Borde:" #: includes/widgets/nsf-minicart-editor.tpl.php:19 msgid "Cart icon:" msgstr "Icono del carrito:" #: includes/widgets/nsf-minicart-editor.tpl.php:3 msgid "Layout:" msgstr "Diseño:" #: includes/class-ecwid-floating-minicart.php:145 msgid "No border" msgstr "Sin borde" #: includes/class-ecwid-floating-minicart.php:144 msgid "Pill" msgstr "Píldora" #: includes/class-ecwid-floating-minicart.php:143 msgid "Rectangle" msgstr "Rectángulo" #: includes/class-ecwid-floating-minicart.php:136 msgid "Basket" msgstr "Cesta" #: includes/class-ecwid-floating-minicart.php:134 msgid "Bag" msgstr "Bolsa" #: includes/class-ecwid-floating-minicart.php:127 msgid "Icon, label, item count, subtotal and link" msgstr "Icono, etiqueta, total de artículos, subtotal y enlace" #: includes/class-ecwid-floating-minicart.php:126 msgid "Icon, label, item count and subtotal" msgstr "Icono, etiqueta, total de artículos y subtotal" #: includes/class-ecwid-floating-minicart.php:125 msgid "Icon, label and item count" msgstr "Icono, etiqueta y total de artículos" #: includes/class-ecwid-floating-minicart.php:124 msgid "Icon and item count" msgstr "Icono y total de artículos" #: includes/class-ecwid-floating-minicart.php:123 msgid "Label and item count" msgstr "Etiqueta y y total de artículos" #: includes/class-ecwid-floating-minicart.php:122 msgid "Item count only" msgstr "Solo el total de artículos" #: includes/class-ecwid-floating-minicart.php:121 msgid "Small icon and item count" msgstr "Icono pequeño y total de artículos" #: includes/class-ecwid-floating-minicart.php:120 msgid "Small icon" msgstr "Icono pequeño" #: includes/widgets/class-ecwid-widget-minicart.php:9 msgid "Shopping Cart (deprecated)" msgstr "Carrito de compras (descontinuado)" #: includes/widgets/class-ecwid-widget-minicart-miniview.php:9 msgid "Shopping Cart Mini (deprecated)" msgstr "Carrito de compras en miniatura (descontinuado)" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:21 msgid "Shopping Cart Floating (deprecated)" msgstr "Carrito de compras flotante (descontinuado)" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:69 msgid "Displays storefront: product listing and checkout" msgstr "Muestra el escaparate virtual: listado de productos y pago" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:67 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:70 msgctxt "vc-tab" msgid "Online store" msgstr "Tienda en línea" #: includes/integrations/class-ecwid-integration-gutenberg.php:105 #: includes/gutenberg/class-ecwid-gutenberg.php:131 msgid "Your product" msgstr "Su producto" #: templates/shortcode-stub-store.tpl.php:18 #: includes/integrations/class-ecwid-integration-gutenberg.php:103 #: includes/widgets/class-ecwid-widget-product-browser.php:11 #: includes/gutenberg/class-ecwid-gutenberg.php:129 msgid "Your store will be shown here" msgstr "Su tienda se mostrará aquí" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:31 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:101 #: includes/integrations/class-ecwid-integration-gutenberg.php:101 #: includes/gutenberg/class-ecwid-gutenberg.php:127 #: js/gutenberg/blocks.build.js:1 msgid "Choose product" msgstr "Elegir producto" #: includes/integrations/class-ecwid-integration-gutenberg.php:97 #: includes/gutenberg/class-ecwid-gutenberg.php:123 msgid "%s product" msgstr "%s producto" #: templates/wp-toolbox.tpl.php:4 msgid "Take advantage of powerful apps and extensions designed to enhance your store." msgstr "Aproveche las increíbles aplicaciones y extensiones diseñadas para mejorar su tienda." #: templates/wp-toolbox.tpl.php:3 msgid "Extensions for your Store" msgstr "Extensiones para su tienda" #: templates/importer/woo-summary.tpl.php:6 msgid "Import summary" msgstr "Resumen de la importación" #: templates/importer/woo-main.tpl.php:19 msgid "This import will copy your WooCommerce products and categories to your %s store." msgstr "Esta importación copiará sus productos y categorías de WooCommerce a su tienda de %s." #: templates/importer/woo-main.tpl.php:62 msgid "Importing %s of %s items" msgstr "Importando %s de %s artículos" #: templates/importer/woo-complete-alert.tpl.php:27 msgid "Some of the items could not be imported." msgstr "Algunos de los artículos no se pudieron importar." #: templates/importer/landing.tpl.php:33 msgid "Learn more" msgstr "Más información" #: templates/importer/landing.tpl.php:33 msgid "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" msgstr "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" #: templates/importer/landing.tpl.php:31 msgid "Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center" msgstr "Ecwid le permite subir sus productos en forma de archivo CSV. Obtenga más información sobre esta herramienta en el centro de asistencia de Ecwid" #: templates/importer/landing.tpl.php:29 msgid "Import product catalog from other sources" msgstr "Importar el catálogo de productos de otras fuentes" #: templates/importer/landing.tpl.php:23 msgid "(You will be able to confirm the changes before the actual import)" msgstr "(podrá confirmar los cambios antes de la importación definitiva)" #: templates/importer/landing.tpl.php:12 msgid "We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?" msgstr "Notamos que tiene un WooCommerce instalado. Su tienda de WooCommerce tiene %1$s productos y %2$s categorías; ¿le gustaría importarlos a %3$s?" #: templates/importer/landing.tpl.php:9 msgid "Import product catalog from WooCommerce" msgstr "Importar el catálogo de productos de WooCommerce" #: templates/importer/landing.tpl.php:4 msgid "Here, we will help you uploading your product catalog to %s from another shopping cart or other sources." msgstr "Aquí, le ayudaremos a subir su catálogo de productos a %s de otro carrito de compras u otras fuentes." #: templates/importer/landing.tpl.php:1 msgid "Import products to your %s store" msgstr "Importe los productos a su tienda de %s" #: templates/dashboard-blog-posts.tpl.php:20 msgid "Knowledge Base" msgstr "Base de conocimiento" #: templates/dashboard-blog-posts.tpl.php:19 msgid "https://support.ecwid.com/hc/en-us" msgstr "https://support.ecwid.com/hc/en-us" #: templates/dashboard-blog-posts.tpl.php:14 msgid "https://www.ecwid.com/blog" msgstr "https://www.ecwid.com/blog" #: includes/importer/class-ecwid-import.php:39 msgid "Bulk import products and categories to your %s store" msgstr "Importar en masa productos y categorías a su tienda de %s" #: includes/importer/class-ecwid-import.php:38 msgid "%s products and categories" msgstr "%s productos y categorías" #: templates/importer/woo-main.tpl.php:36 #: includes/importer/class-ecwid-import-page.php:52 #: includes/importer/class-ecwid-import-page.php:53 msgid "Import your products from WooCommerce to %s" msgstr "Importe sus productos de WooCommerce a %s" #: includes/importer/class-ecwid-import-page.php:42 #: includes/importer/class-ecwid-import-page.php:43 msgid "Import" msgstr "Importar" #: templates/dashboard-blog-posts.tpl.php:15 #: includes/class-ecwid-wp-dashboard-feed.php:48 msgid "%s Blog" msgstr "Blog de %s" #: includes/class-ecwid-message-manager.php:345 msgid "No Thanks" msgstr "No, gracias" #: includes/class-ecwid-message-manager.php:343 msgid "Import my products from WooCommerce" msgstr "Importar mis productos de WooCommerce" #: includes/class-ecwid-message-manager.php:341 msgid "We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you." msgstr "Notamos que tiene WooCommerce instalado. Si desea copiar fácilmente sus productos de WooCommerce a %s, esta herramienta le ayudará." #: includes/class-ecwid-message-manager.php:340 msgid "Need help importing your products from WooCommerce to %s?" msgstr "¿Necesita ayuda para importar sus productos de WooCommerce a %s?" #: includes/class-ecwid-admin.php:213 includes/class-ecwid-admin.php:214 msgid "Customers" msgstr "Clientes" #: templates/help.php:28 msgid "or <a %s>Browse the Help Center" msgstr "o <a %s>consulte el centro de asistencia" #: templates/admin/welcome-connection-message.php:5 msgid "To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission." msgstr "Para mostrar su tienda en este sitio web, debe permitir que WordPress acceda a sus productos de %1$s. Pulse «Conectar» para otorgar el permiso." #: includes/faq_entries.php:40 msgid "Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target=\"_blank\" href=\"%s\">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans." msgstr "Nuestros 4 tipos de cuentas varían según la cantidad de productos, los tipos de funcionalidades y el nivel de asistencia. Para obtener más información, consulte nuestra <a target=\"_blank\" href=\"%s\">página de precios.</a><br /><br />Consejo profesional: también puede ahorrar dinero si se suscribe a nuestros planes anuales." #: includes/class-ecwid-popup-deactivate.php:59 msgid "[%s] WordPress plugin deactivation feedback (store ID: %s)" msgstr "[%s] Comentarios sobre la desactivación del complemento de WordPress (ID de la tienda: %s)" #: includes/class-ecwid-message-manager.php:289 msgid "Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data." msgstr "Su escaparate virtual (listado de productos y página de pago) está funcionando bien, pero las funciones avanzadas de la tienda, como el SEO y los «widgets» de la barra lateral, están inhabilitadas. Para habilitarlas y asegurarse de que su tienda funcione correctamente, pulse el botón de abajo para conectar su cuenta de %s. Esto tomará menos de un minuto; solo se le pedirá que inicie sesión en su cuenta y permita que este sitio web obtenga los datos de su tienda." #: includes/class-ecwid-message-manager.php:288 msgid "Action required: please connect your %s account" msgstr "Acción requerida: conecte su cuenta de %s" #: templates/popup/deactivate.php:24 msgid "Contact Support" msgstr "Ponerse en contacto con la asistencia" #: templates/popup/deactivate.php:1 msgid "If you have a moment, please let us know why you are deactivating:" msgstr "Si tiene un momento, háganos saber por qué está desactivando:" #: templates/admin/welcome-create.php:4 msgid "Create Store" msgstr "Crear tienda" #: templates/advanced-settings.php:1 msgid "%s — Advanced settings" msgstr "%s — Configuración avanzada" #: includes/widgets/class-ecwid-widget-random-products.php:10 msgid "Displays a list of random products." msgstr "Muestra una lista de productos aleatorios." #: includes/widgets/class-ecwid-widget-random-products.php:9 msgid "Random Products" msgstr "Productos aleatorios" #: includes/widgets/class-ecwid-widget-random-product.php:9 #: includes/widgets/class-ecwid-widget-random-product.php:64 msgid "Random Product" msgstr "Producto aleatorio" #: includes/widgets/class-ecwid-widget-random-product.php:8 msgid "Displays a random product from your store to attract customer attention." msgstr "Muestra un producto aleatorio de su tienda para atraer la atención del cliente." #: includes/widgets/class-ecwid-widget-latest-products.php:10 msgid "Displays the latest added products from your store. Show new products to returning customers to drive repeat sales." msgstr "Muestra los últimos productos añadidos de su tienda. Muestre nuevos productos a los clientes existentes para impulsar las ventas repetidas." #: includes/widgets/class-ecwid-widget-latest-products.php:9 msgid "Latest Products" msgstr "Últimos productos" #: includes/class-ecwid-popup-deactivate.php:164 msgid "Can you share your feedback? What was wrong?" msgstr "¿Podría compartir su opinión? ¿Qué fue lo que pasó?" #: includes/class-ecwid-popup-deactivate.php:161 msgid "Other" msgstr "Otro" #: includes/class-ecwid-popup-deactivate.php:155 msgid "It's a temporary deactivation. Please do not ask me again." msgstr "Es una desactivación temporal. No preguntarme de nuevo." #: includes/class-ecwid-popup-deactivate.php:152 msgid "Can you share the name of the plugin you chose?" msgstr "¿Podría compartir el nombre del complemento que ha elegido?" #: includes/class-ecwid-popup-deactivate.php:149 msgid "I found a better plugin" msgstr "Encontré un mejor complemento" #: includes/class-ecwid-popup-deactivate.php:146 msgid "What feature do you need?" msgstr "¿Qué función necesita?" #: includes/class-ecwid-popup-deactivate.php:143 msgid "The plugin doesn't support the feature I want" msgstr "El complemento no es compatible con la función que quiero" #: includes/class-ecwid-popup-deactivate.php:128 msgid "What was wrong?" msgstr "¿Qué fue lo que pasó?" #: includes/class-ecwid-popup-deactivate.php:125 msgid "I have a problem using this plugin" msgstr "Tengo un problema con el uso de este complemento" #: includes/class-ecwid-popup-deactivate.php:112 msgid "Before You Go" msgstr "Antes de que se vaya" #: templates/admin/storefront/area-navigation.php:79 #: includes/class-ecwid-popup-deactivate.php:105 msgid "Cancel" msgstr "Cancelar" #: includes/class-ecwid-popup-deactivate.php:101 msgid "Submit & Deactivate" msgstr "Enviar y desactivar" #: includes/class-ecwid-message-manager.php:244 #: includes/class-ecwid-store-page.php:568 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:51 #: ecwid-shopping-cart.php:1082 js/gutenberg/blocks.build.js:1 msgid "Set up your store" msgstr "Configure su tienda" #: templates/admin-head.php:8 includes/class-ecwid-admin.php:48 #: includes/integrations/class-ecwid-integration-gutenberg.php:45 #: includes/gutenberg/class-ecwid-gutenberg.php:69 msgid "%s" msgstr "%s" #: templates/product-popup.php:199 js/gutenberg/blocks.build.js:1 msgid "«Buy now» button" msgstr "Botón de «Comprar ahora»" #: templates/admin/simple-dashboard.php:10 msgid "%s Shopping Cart" msgstr "Carrito de compras de %s" #: templates/advanced-settings.php:42 msgid "Please subscribe to a paid plan to get this feature." msgstr "Suscríbase a un plan de pago para obtener esta función." #: templates/admin-footer.php:9 msgid "Get %s mobile app" msgstr "Descargue la aplicación móvil de %s" #: includes/class-ecwid-message-manager.php:272 msgid "Rate %s at WordPress.org" msgstr "Tasa de %s en WordPress.org" #: includes/class-ecwid-message-manager.php:268 msgid "Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site." msgstr "¿Le gusta su tienda de %s en línea? Apreciaríamos si comparte su opinión y vota por el complemento en el sitio de WordPress." #: includes/class-ecwid-message-manager.php:260 msgid "To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings." msgstr "Para añadir funciones adicionales a su tienda, arrastre y suelte los elementos de la tienda de %s en su sitio web. Una vez que haya terminado, puede volver a modificar su configuración." #: templates/sync.php:114 msgid "Provide access." msgstr "Otorgar acceso." #: templates/sync.php:113 msgid "To enable this feature, the plugin needs a permission to read your store product information." msgstr "Para habilitar esta función, el complemento necesita un permiso para leer la información del producto de su tienda." #: templates/product-popup.php:137 templates/product-popup.php:147 msgid "Choose Product" msgstr "Elegir producto" #: templates/product-popup.php:96 msgid "Try another search." msgstr "Intente otra búsqueda." #: templates/sync.php:152 msgid "Not synchronized yet" msgstr "No se ha sincronizado todavía" #: templates/sync.php:149 msgid "Last update" msgstr "Última actualización" #: templates/sync.php:145 msgid "Products are successfully synchronized. The product pages are up to date." msgstr "Los productos se sincronizaron satisfactoriamente. Las páginas de productos están actualizadas." #: templates/sync.php:138 msgid "Products synchronized: %1$s out of %2$s" msgstr "Productos eliminados sincronizados: %1$s de %2$s" #: templates/sync.php:126 msgid "We're synchronizing your products. This may take a few minutes. Please do not reload the page." msgstr "Estamos sincronizando sus productos. Esto puede tardar unos minutos. No actualice la página." #: templates/sync.php:119 msgid "Synchronize products" msgstr "Sincronizar productos" #: templates/advanced-settings.php:83 msgid "%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site." msgstr "%s almacena los datos de sus productos de forma segura en la nube. Las páginas de productos se muestran sobre la marcha cuando un cliente navega por su tienda. Por lo que, básicamente, los productos no se almacenan en el sitio web, por eso la búsqueda en el sitio web no encuentra páginas de productos mientras busca en las páginas del sitio web y en las publicaciones. Esta opción habilita un modo de almacenamiento local: los productos se almacenarán tanto en la nube como en su sitio web. Los resultados de la búsqueda en el sitio web incluirán las páginas de productos, así como las páginas o publicaciones habituales de su sitio web." #: templates/product-popup.php:243 msgid "Insert" msgstr "Insertar" #: templates/product-popup.php:242 msgid "select product" msgstr "seleccionar producto" #: templates/product-popup.php:241 templates/product-popup.php:246 msgid "customize appearance" msgstr "personalizar apariencia" #: templates/product-popup.php:224 msgid "Show price inside the \"Buy now\" button" msgstr "Mostrar el precio dentro del botón de «Comprar ahora»" #: templates/product-popup.php:229 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:62 #: js/gutenberg/blocks.build.js:1 msgid "Center align on a page" msgstr "Centrar la alineación en una página" #: templates/product-popup.php:219 js/gutenberg/blocks.build.js:1 msgid "Add border" msgstr "Añadir borde" #: templates/product-popup.php:188 js/gutenberg/blocks.build.js:1 msgid "Quantity" msgstr "Cantidad" #: templates/product-popup.php:178 js/gutenberg/blocks.build.js:1 msgid "Options" msgstr "Opciones" #: templates/product-popup.php:173 js/gutenberg/blocks.build.js:1 msgid "Picture" msgstr "Imagen" #: templates/product-popup.php:163 msgid "Choose product properties to display in widget" msgstr "Elija las propiedades del producto para mostrarlas en el «widget»" #: templates/product-popup.php:139 templates/product-popup.php:151 msgid "Customize widget" msgstr "Personalizar «widget»" #: templates/product-popup.php:97 msgid "Browse all products." msgstr "Explorar todos los productos." #: templates/product-popup.php:94 msgid "Nothing found for <span class=\"empty-page__term\">\"{{ data.term }}\"</span>" msgstr "No se ha encontrado nada en relación con <span class=\"empty-page__term\">«{{ data.term }}»</span>" #: templates/product-popup.php:80 msgid "Next page" msgstr "Página siguiente" #: templates/product-popup.php:69 msgid "Current Page" msgstr "Página actual" #: templates/product-popup.php:49 msgid "Title or SKU" msgstr "Título o REF" #: templates/product-popup.php:47 templates/product-popup.php:53 #: templates/product-popup.php:56 msgid "Search" msgstr "Buscar" #: templates/product-popup.php:29 msgid "SKU" msgstr "REF" #: templates/product-popup.php:23 msgid "Name" msgstr "Nombre" #: includes/class-ecwid-product-popup.php:150 msgid "Last Page" msgstr "Última página" #: includes/class-ecwid-product-popup.php:149 msgid "Next Page" msgstr "Página siguiente" #: includes/class-ecwid-product-popup.php:148 msgid "Previous Page" msgstr "Página anterior" #: includes/class-ecwid-product-popup.php:147 msgid "First Page" msgstr "Primera página" #: includes/class-ecwid-product-popup.php:107 msgid "Add Product" msgstr "Añadir producto" #: includes/class-ecwid-oauth.php:366 msgid "To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the \"Add product\" dialog." msgstr "A fin de poder elegir un producto para insertarlo en sus publicaciones y páginas, deberá volver a conectar su sitio a su tienda de %s. Esto solo requerirá que acepte la solicitud de permisos para que el complemento pueda listar sus productos en el cuadro de diálogo «Añadir producto»." #: templates/advanced-settings.php:54 msgid "To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>" msgstr "Para asegurarse de que su cliente puede acceder realmente a su sitio web y a la tienda, habilite el registro en las <a %s>configuraciones del sitio web</a>" #: templates/advanced-settings.php:48 msgid "To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>" msgstr "Para permitir que %s inicie la sesión de sus clientes automáticamente en su tienda, otorgue los permisos para utilizar los datos del cliente en la tienda. <a %s>Utilice este enlace para hacerlo</a>" #: templates/advanced-settings.php:39 msgid "Upgrade to get this feature" msgstr "Actualice para obtener esta función" #: templates/advanced-settings.php:32 msgid "Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again." msgstr "El inicio de sesión único les permite a sus clientes tener un inicio de sesión único para su sitio web de WordPress y su %s. Cuando alguien inicie sesión en su sitio web, también iniciará sesión automáticamente en su cuenta de cliente en la tienda sin necesidad de introducir su correo electrónico y contraseña nuevamente." #: templates/advanced-settings.php:27 msgid "Customer Single Sign-On" msgstr "Inicio de sesión único del cliente" #: includes/integrations/class-ecwid-integration-divibuilder.php:63 msgid "Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space." msgstr "Introduzca las clases CSS opcionales que se utilizarán para este módulo. Se puede utilizar una clase CSS para crear estilos CSS personalizados. Puede añadir varias clases separadas por un espacio." #: includes/integrations/class-ecwid-integration-divibuilder.php:60 msgid "CSS Class" msgstr "Clase CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:57 msgid "Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page." msgstr "Introduzca un ID de CSS opcional que se utilizará para este módulo. Se puede utilizar un ID para crear un estilo CSS personalizado o para crear enlaces a secciones particulares de su página web." #: includes/integrations/class-ecwid-integration-divibuilder.php:54 msgid "CSS ID" msgstr "ID de CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:51 msgid "This will change the label of the module in the builder for easy identification." msgstr "Esto cambiará la etiqueta del módulo en el creador para una fácil identificación." #: includes/integrations/class-ecwid-integration-divibuilder.php:49 msgid "Admin Label" msgstr "Etiqueta de administrador" #: includes/integrations/class-ecwid-integration-divibuilder.php:44 msgid "Here you can create the content that will be used within the module." msgstr "Aquí puede crear el contenido que se utilizará dentro del módulo." #: includes/integrations/class-ecwid-integration-divibuilder.php:41 msgid "Content" msgstr "Contenido" #: templates/admin-footer.php:29 msgid "<a %s>Reconnect</a>" msgstr "<a %s>Volver a conectar</a>" #: templates/help.php:15 msgid "https://support.ecwid.com/hc/en-us/search" msgstr "https://support.ecwid.com/hc/en-us/search" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:73 msgid "Browse by Category" msgstr "Buscar por categoría" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:15 msgid "Store Root Categories" msgstr "Categorías raíz de la tienda" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:14 msgid "Adds root categories list to the sidebar to let your customers navigate the store." msgstr "Añade la lista de categorías raíz a la barra lateral para que sus clientes puedan desplazarse por la tienda." #: templates/admin/welcome-connection-message.php:25 msgid "To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission." msgstr "Para vender utilizando %1$s, debe permitir que WordPress acceda al complemento %1$s. El botón «Conectar» lo redirigirá a su cuenta de %1$s donde puede otorgar el permiso." #: templates/admin-timeout.php:11 msgid "Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">our customer support team</a>." msgstr "Nuestro equipo ya está trabajando en este asunto. Actualice la página en unos minutos. Si el problema persiste, comuníquese con <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">nuestro equipo de atención al cliente</a>." #: templates/admin-timeout.php:9 msgid "Sorry we're having technical difficulties." msgstr "Le pido disculpas por las dificultades técnicas que estamos experimentando." #: includes/class-ecwid-floating-minicart.php:153 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:143 msgid "Top right" msgstr "Arriba a la derecha" #: includes/class-ecwid-floating-minicart.php:152 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:138 msgid "Bottom right" msgstr "Abajo a la derecha" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:135 #: includes/class-ecwid-customizer.php:110 msgid "Position" msgstr "Posición" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:20 msgid "Adds a shopping cart widget to the top right corner of your site." msgstr "Añada un «widget» de carrito de compras en la esquina superior derecha de su sitio web." #: templates/help.php:215 msgid "You can send a new request here." msgstr "Puede enviar una nueva solicitud aquí." #: templates/help.php:214 msgid " Thank you very much for contacting us! We will get back to you shortly." msgstr " ¡Muchas gracias por ponerse en contacto con nosotros! Nos pondremos en contacto con usted en breve." #: templates/help.php:213 msgid "Your email has been sent" msgstr "Se ha enviado su correo electrónico" #: templates/help.php:207 msgid "Send message failed" msgstr "Ocurrió un error al enviar el mensaje" #: templates/help.php:196 msgid "Send Message" msgstr "Enviar mensaje" #: templates/help.php:193 msgid "Type in your message here" msgstr "Escriba su mensaje aquí" #: templates/help.php:192 msgid "Subject" msgstr "Asunto" #: templates/help.php:186 msgid "Send a message to our support team" msgstr "Envíe un mensaje a nuestro equipo de asistencia" #: templates/help.php:177 msgid "Still have questions about Ecwid? Let us know!" msgstr "¿Todavía tiene preguntas acerca de Ecwid? ¡Háganoslo saber!" #: templates/help.php:176 msgid "Contact us" msgstr "Póngase en contacto con nosotros" #: templates/help.php:33 msgid "Frequently Asked Questions" msgstr "Preguntas frecuentes" #: templates/help.php:21 msgid "Search the Knowledge Base" msgstr "Buscar en la base de conocimientos" #: templates/help.php:17 msgid "E.g. How to set up shipping" msgstr "Por ejemplo, cómo establecer el envío" #: templates/help.php:11 msgid "How can we help you?" msgstr "¿Cómo podemos ayudarle?" #: includes/faq_entries.php:68 msgid "You can display your store on the site main page. Adjust the \"Reading\" settings of your site as described in our <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">Help Center.</a>" msgstr "Puede mostrar su tienda en la página principal del sitio web. Ajuste la configuración de «Lectura» de su sitio web como se describe en nuestro <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">centro de asistencia.</a>" #: includes/faq_entries.php:67 msgid "Is it possible to display my store on the site home page?" msgstr "¿Es posible mostrar mi tienda en la página de inicio del sitio web?" #: includes/faq_entries.php:61 msgid "To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">How to use it.</a>" msgstr "Para mostrar un solo producto en una página aparte o en una entrada de blog de su sitio web, utilice el código corto <b>[ecwid_product]</b>. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">Cómo utilizarlo</a>" #: includes/faq_entries.php:60 msgid "How to add a single product with the add to bag button to the site pages?" msgstr "¿Cómo añadir un solo producto con el botón de «añadir a la bolsa» en las páginas del sitio web?" #: includes/faq_entries.php:55 msgid "To create sitemap for your Wordpress site we suggest using <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> or <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">paid Ecwid users</a>." msgstr "Para crear un «Mapa del sitio» para su sitio web de Wordpress, le sugerimos que utilice los  complementos <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> o <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>. Estos complementos son totalmente compatibles con Ecwid y permiten generar un mapa del sitio que contiene enlaces a categorías y páginas de productos, por lo que las páginas de la tienda se indexarán más rápido. Tenga en cuenta que esta opción solo está disponible para los <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">usuarios de pago de Ecwid</a>." #: includes/faq_entries.php:54 msgid "How do I put my products in the sitemap?" msgstr "¿Cómo pongo mis productos en el mapa del sitio?" #: includes/faq_entries.php:48 msgid "You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open \"Appearance > Menus\" in your WordPress control panel and add the \"Store with Categories Menu\" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site." msgstr "Puede añadir el menú de categorías de la tienda al menú de su sitio web para ayudar a sus clientes a navegar fácilmente por su sitio web. Simplemente abra «Apariencia > Menús» en el panel de WordPress y añada el elemento «Tienda con menú de categorías» al menú de su sitio web. Aparecerá automáticamente un menú desplegable que contendrá las categorías de su tienda en su sitio web." #: includes/faq_entries.php:47 msgid "How do I add store categories to the site menu?" msgstr "¿Cómo puedo añadir categorías de tiendas al menú del sitio web?" #: includes/faq_entries.php:38 msgid "How much does Ecwid cost?" msgstr "¿Cuánto cuesta Ecwid?" #: includes/faq_entries.php:30 msgid "You can add product search box, cart widget and more on the <a href=\"%s\">\"Appearance / Widgets page\"</a> here in your site admin. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">More details.</a>" msgstr "Puede añadir un cuadro de búsqueda de productos, un «widget» de carrito y más desde la <a href=\"%s\">«Página de apariencia y widgets»</a> que se encuentra aquí en el administrador de su sitio web. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">Más detalles.</a>" #: includes/faq_entries.php:28 msgid "How can I add a cart widget to my site sidebar?" msgstr "¿Cómo puedo añadir un «widget» de carrito de compras a la barra lateral de mi sitio web?" #: includes/faq_entries.php:21 msgid "You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">More details.</a>" msgstr "Puede añadir su tienda en línea a su página empresarial de Facebook (no se necesitan complementos). Ecwid sincronizará automáticamente los productos, clientes, pedidos e inventario entre su tienda en línea de WordPress y Facebook. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">Más detalles.</a>" #: includes/faq_entries.php:20 msgid "How to set up a storefront on Facebook with Ecwid?" msgstr "¿Cómo crear una tienda en Facebook con Ecwid?" #: includes/faq_entries.php:13 msgid "Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">More details.</a>" msgstr "Ecwid ofrece aplicaciones móviles gratuitas para iOS y Android para que pueda gestionar su tienda y vender donde y cuando quiera. Escanee productos, supervise el inventario, gestione las ventas y acepte pagos utilizando su dispositivo móvil como una estación de punto de venta. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">Más detalles.</a>" #: includes/faq_entries.php:12 msgid "How can I manage my store from a mobile device?" msgstr "¿Cómo puedo gestionar mi tienda desde un dispositivo móvil?" #: includes/faq_entries.php:6 msgid "Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">More details.</a>" msgstr "Ecwid cuenta con la certificación PCI DSS Nivel 1, que es el estándar de oro para las soluciones de comercio electrónico en todo el mundo. Esto significa que no tendrá problemas de cumplimiento bancario cuando venda en línea con Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">Más detalles.</a>" #: includes/faq_entries.php:5 msgid "How secure is this plugin? Is my store PCI DSS compliant?" msgstr "¿Qué tan seguro es este complemento? ¿Mi tienda cumple con el PCI DSS?" #: includes/class-ecwid-nav-menus.php:32 msgid "Ecwid Menu Item" msgstr "Elemento del menú de Ecwid" #: includes/class-ecwid-admin.php:179 includes/class-ecwid-admin.php:180 msgid "Help" msgstr "Ayuda" #: templates/admin-footer.php:27 msgid "Want to connect another %s store?" msgstr "¿Desea conectar otra tienda de %s?" #: templates/admin-footer.php:17 msgid "Questions?" msgstr "¿Tiene alguna pregunta?" #: templates/admin-footer.php:6 msgid "Manage Store on iPhone, iPad or Android" msgstr "Gestione la tienda desde iPhone, iPad o Android" #: includes/class-ecwid-message-manager.php:254 msgid "Complete Setup" msgstr "Completar configuración" #: includes/class-ecwid-message-manager.php:253 msgid "Complete setup and start selling" msgstr "Complete la configuración y comience a vender" #: includes/class-ecwid-message-manager.php:242 msgid "Greetings! Your %s plugin is now active." msgstr "¡Enhorabuena! Su complemento de %s ya está activo." #: templates/debug.php:12 msgid "Download log file" msgstr "Descargar archivo de registro" #: templates/help.php:67 includes/oembed.php:75 includes/oembed.php:104 msgid "See more" msgstr "Ver más" #: ecwid-shopping-cart.php:1051 msgid "I have a problem with my %s store" msgstr "Tengo un problema con mi tienda de %s" #: includes/class-ecwid-message-manager.php:55 msgid "Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: \"The Wordpress function wp_remote_post() failed to connect a remote server because of some error: \"%s\". Seems like HTTP POST requests are disabled on this server\". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>." msgstr "Lo siento, hay un problema. Se supone que esta página muestra el panel de control de su tienda; sin embargo, este sitio web de Wordpress no parece poder conectarse al servidor de Ecwid para mostrar el panel de su tienda aquí. Es probable que esto se deba a una mala configuración del servidor; su proveedor de alojamiento web puede solucionarlo. Aquí hay una descripción más técnica del problema, la cual puede enviarle a su proveedor de alojamiento web: «La función de Wordpress wp_remote_post() no pudo conectarse a un servidor remoto debido al error: “%s”; parece que las solicitudes HTTP POST están inhabilitadas en este servidor». <br /><br />No dude en ponerse en contacto con nosotros en <a %s>wordpress@ecwid.com</a> y le ayudaremos a comunicarse con su proveedor de alojamiento web para pedirle que solucione el problema. <br /><br /> Mientras tanto, para gestionar su tienda, puede utilizar el panel de control web de Ecwid en <a %s>my.ecwid.com</a>. Su escaparate virtual está funcionando bien; puede echarle un vistazo aquí: <a %s>%s</a>." #: templates/store-popup.php:249 msgid "Open store dashboard" msgstr "Abrir el panel de la tienda" #: templates/store-popup.php:12 templates/store-popup.php:27 msgid "Store elements" msgstr "Elementos de la tienda" #: templates/reconnect-sso.php:10 msgid "Re-connect to Enable Control Panel" msgstr "Vuélvase a conectar para activar el panel de control" #: templates/reconnect-sso.php:8 msgid "Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page." msgstr "Gestione productos, supervise las ventas y ajuste la configuración: <nobr>todo sin</nobr> salir de esta página." #: templates/reconnect-sso.php:7 msgid "Your store Control Panel. Right here in WordPress." msgstr "Panel de control de su tienda. Aquí mismo en WordPress." #: ecwid-shopping-cart.php:2114 msgid "Orders" msgstr "Pedidos" #: includes/class-ecwid-nav-menus.php:168 ecwid-shopping-cart.php:2118 msgid "The store top-level categories are automatically added to this drop-down menu" msgstr "Las categorías de alto nivel de la tienda se añaden automáticamente a este menú desplegable" #: includes/class-ecwid-nav-menus.php:167 ecwid-shopping-cart.php:2117 msgid "Done" msgstr "Hecho" #: includes/class-ecwid-nav-menus.php:166 ecwid-shopping-cart.php:2116 msgid "Refresh categories list" msgstr "Actualizar la lista de categorías" #: includes/class-ecwid-nav-menus.php:165 msgid "Store Page" msgstr "Página de la tienda" #: includes/class-ecwid-nav-menus.php:319 msgid "Add to Menu" msgstr "Añadir al menú" #: includes/class-ecwid-nav-menus.php:316 msgid "Select All" msgstr "Seleccionar todo" #: includes/class-ecwid-nav-menus.php:369 msgid "Store with Categories Menu" msgstr "Tienda con menú de categorías" #: includes/class-ecwid-nav-menus.php:352 #: includes/class-ecwid-nav-menus.php:355 msgid "My Account" msgstr "Mi cuenta" #: includes/class-ecwid-nav-menus.php:335 #: includes/class-ecwid-floating-minicart.php:135 #: includes/class-ecwid-admin-storefront-page.php:279 msgid "Cart" msgstr "Carrito" #: includes/class-ecwid-admin.php:87 includes/class-ecwid-admin.php:88 #: includes/class-ecwid-products.php:228 ecwid-shopping-cart.php:2112 msgid "Products" msgstr "Productos" #: includes/class-ecwid-admin.php:79 includes/class-ecwid-admin.php:80 msgid "Sales" msgstr "Ventas" #: ecwid-shopping-cart.php:1119 msgid "Report a problem with the store" msgstr "Informar un problema con la tienda" #: ecwid-shopping-cart.php:1036 msgid "%s plugin doesn't work well with my \"%s\" theme" msgstr "El complemento %s no funciona bien con mi tema «%s»" #: templates/admin/welcome-connection-message.php:22 #: templates/admin/welcome-connection-message.php:28 msgid "Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL." msgstr "Parece que su sitio web no admite solicitudes POST remotas, las cuales son necesarias para que la API de %s funcione. Comuníquese con su proveedor de alojamiento web para habilitar cURL." #. Description of the plugin msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up." msgstr "Ecwid es un carrito de compras gratuito con todas las funciones. Se puede integrar fácilmente con cualquier blog de Wordpress y se configura en menos de 5 minutos." #. Plugin URI of the plugin msgid "http://www.ecwid.com?partner=wporg" msgstr "http://www.ecwid.com?partner=wporg" #: templates/store-svg.php:12 msgid "Demo Store" msgstr "Tienda de demostración" #: templates/store-svg.php:9 msgid "Your store will be shown here!" msgstr "¡Su tienda se mostrará aquí!" #: templates/product-popup.php:248 templates/store-popup.php:256 msgid "Update" msgstr "Actualizar" #: templates/store-popup.php:253 msgid "Insert into page" msgstr "Insertar en la página" #: templates/store-popup.php:246 msgid "Demo store" msgstr "Tienda de demostración" #: templates/store-popup.php:80 msgid "Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>" msgstr "Además, puede añadir controles de la tienda a la barra de herramientas de su sitio web mediante <a %s>«widgets» nativos de WordPress</a>." #: templates/store-popup.php:74 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:86 msgid "Show categories" msgstr "Mostrar categorías" #: templates/store-popup.php:66 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:94 msgid "Show minicart" msgstr "Mostrar minicarrito" #: templates/store-popup.php:58 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:78 msgid "Show search" msgstr "Mostrar búsqueda" #: templates/store-popup.php:53 msgid "Product catalog will be shown automatically" msgstr "El catálogo de productos se mostrará automáticamente" #: templates/store-popup.php:52 msgid "Choose widgets to show" msgstr "Elija los «widgets» a mostrar" #: templates/admin/welcome-create.php:7 msgid "Connect your store" msgstr "Conecte su tienda" #: templates/admin/welcome-no_oauth.php:6 #: templates/importer/import-no-token.tpl.php:6 #: includes/class-ecwid-message-manager.php:291 msgid "Connect" msgstr "Conectar" #: templates/admin/legacy-connect.tpl.php:68 msgid "Save and connect your %s store to the site" msgstr "Guarde y conecte su tienda de %s al sitio web" #: templates/admin/legacy-connect.tpl.php:59 msgid "Enter your Store ID here:" msgstr "Introduzca el ID de su tienda aquí:" #: templates/admin/legacy-connect.tpl.php:52 msgid "Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the \"Dashboard\" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration." msgstr "El ID de la tienda es un identificador único de cualquier tienda de %1$s, el cual consta de varios dígitos. Puede encontrarlo en la página «Panel» del panel de control de %1$s. El ID de la tienda se enviará en el correo electrónico de bienvenida después del registro." #: templates/admin/legacy-connect.tpl.php:50 msgid "Find your Store ID" msgstr "Encuentre el ID de su tienda" #: templates/admin/legacy-connect.tpl.php:46 msgid "You will be able to sign up through your existing Google, Facebook or PayPal profiles as well." msgstr "También podrá registrarse a través de sus perfiles existentes de Google, Facebook o PayPal." #: templates/admin/legacy-connect.tpl.php:42 msgid "I already have an account, sign in" msgstr "Ya tengo una cuenta, iniciar sesión" #: templates/admin/legacy-connect.tpl.php:35 msgid "Create a new %s account which you will use to manage your store and inventory. The registration is free." msgstr "Cree una nueva cuenta de %s que utilizará para gestionar su tienda e inventario. El registro es gratuito." #: templates/admin/legacy-connect.tpl.php:24 msgid "The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps." msgstr "El primer paso para abrir su negocio en línea: <br />añadamos una tienda a su sitio web de WordPress en <strong>3</strong> simples pasos." #: templates/admin/legacy-connect.tpl.php:21 msgid "Thank you for choosing %s to build your online store" msgstr "Gracias por elegir %s para construir su tienda en línea" #: templates/admin/simple-dashboard.php:58 msgid "Open control panel" msgstr "Abrir el panel de control" #: templates/admin/simple-dashboard.php:42 msgid "Your %s store is connected<br /> to your WordPress website" msgstr "Su tienda de %s está conectada<br /> a su sitio web de WordPress" #: templates/admin/simple-dashboard.php:39 msgid "Greetings!" msgstr "¡Saludos!" #: templates/admin/simple-dashboard.php:34 msgid "Your %s store is now connected<br /> to your WordPress website" msgstr "Su tienda de %s ahora está conectada<br /> a su sitio web de WordPress" #: templates/admin/simple-dashboard.php:31 msgid "Congratulations!" msgstr "¡Enhorabuena!" #: templates/admin/simple-dashboard.php:18 msgid "Disconnect store" msgstr "Desconectar tienda" #: templates/admin/legacy-connect.tpl.php:65 #: templates/admin/simple-dashboard.php:14 templates/store-popup.php:244 #: templates/store-svg.php:14 #: includes/integrations/class-ecwid-integration-gutenberg.php:104 #: includes/gutenberg/class-ecwid-gutenberg.php:130 msgid "Store ID" msgstr "ID de la tienda" #: templates/admin/welcome-connection-message.php:15 msgid "Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again." msgstr "Error de conexión: después de hacer clic en el botón, debe iniciar sesión y otorgar los permisos para poder utilizar nuestro complemento. Inténtelo de nuevo." #: templates/admin/legacy-connect.tpl.php:57 #: templates/admin/welcome-no_oauth.php:3 msgid "Enter your Store ID" msgstr "Introduzca el ID de su tienda" #: templates/store-popup.php:221 msgid "Default view mode on search results" msgstr "Modo de vista predeterminado en los resultados de búsqueda" #: templates/store-popup.php:214 templates/store-popup.php:232 msgid "Table" msgstr "Tabla" #: templates/store-popup.php:211 templates/store-popup.php:229 msgid "List" msgstr "Lista" #: templates/store-popup.php:208 templates/store-popup.php:226 msgid "Grid" msgstr "Cuadrícula" #: templates/store-popup.php:204 msgid "Default view mode on product pages" msgstr "Modo de vista predeterminado en las páginas de productos" #: templates/store-popup.php:184 msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products." msgstr "Aquí puede gestionar cuántos productos se mostrarán por página. Estas opciones definen valores máximos. Si no hay suficiente espacio para mostrar todas las columnas de productos, %s adaptará el número de columnas para mantener todos los productos." #: templates/store-popup.php:169 msgid "Table view" msgstr "Vista de tabla" #: templates/store-popup.php:152 msgid "List view" msgstr "Vista de lista" #: templates/store-popup.php:125 msgid "Grid view" msgstr "Vista de cuadrícula" #: templates/store-popup.php:123 msgid "Number of products per page" msgstr "Número de productos por página" #: templates/store-popup.php:191 msgid "Number of categories per row" msgstr "Número de categorías por fila" #: templates/advanced-settings.php:98 msgid "Save changes" msgstr "Guardar cambios" #: includes/class-ecwid-product-browser.php:202 msgid "Default category ID" msgstr "ID de categoría predeterminada" #: templates/store-popup.php:98 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:127 #: includes/integrations/class-ecwid-integration-gutenberg.php:427 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:56 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:248 msgid "Store root category" msgstr "Categoría raíz de la tienda" #: templates/store-popup.php:90 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:101 msgid "Category shown by default" msgstr "Categoría mostrada por defecto" #: templates/admin-message.php:47 msgid "Never show this message again" msgstr "Nunca mostrar este mensaje otra vez" #: templates/product-popup.php:194 lib/ecwid_platform.php:209 #: js/gutenberg/blocks.build.js:1 msgid "Price" msgstr "Precio" #: includes/class-ecwid-store-editor.php:75 #: includes/integrations/class-ecwid-integration-gutenberg.php:102 #: includes/gutenberg/class-ecwid-gutenberg.php:128 msgid "Edit Appearance" msgstr "Editar apariencia" #: includes/class-ecwid-store-editor.php:60 msgid "Edit Store" msgstr "Editar tienda" #: templates/store-popup.php:11 templates/store-popup.php:21 #: includes/class-ecwid-store-editor.php:52 msgid "Add Store" msgstr "Añadir tienda" #: includes/class-ecwid-message-manager.php:261 msgid "Back to Store Settings" msgstr "Regresar a la configuración de la tienda" #: includes/class-ecwid-message-manager.php:252 msgid "Your store is almost ready!" msgstr "¡Su tienda ya está casi lista!" #: includes/class-ecwid-message-manager.php:243 msgid "Take a few simple steps to complete store setup" msgstr "Siga unos sencillos pasos para completar la configuración de la tienda" #: includes/widgets/class-ecwid-widget-products-base.php:205 msgid "Number of products to show" msgstr "Número de productos para mostrar" #: includes/widgets/class-ecwid-widget-recently-viewed.php:89 msgid "Store Link Title" msgstr "Título del enlace de la tienda" #: templates/product-popup.php:183 includes/class-ecwid-product-browser.php:249 #: includes/widgets/class-ecwid-widget-products-base.php:199 #: js/gutenberg/blocks.build.js:1 msgid "Title" msgstr "Título" #: includes/widgets/class-ecwid-widget-recently-viewed.php:69 #: includes/widgets/class-ecwid-widget-recently-viewed.php:91 msgid "You have not viewed any product yet. Open store." msgstr "Aún no ha visto ningún producto. Abra la tienda." #: includes/widgets/class-ecwid-widget-recently-viewed.php:11 msgid "Recently Viewed Products" msgstr "Productos vistos recientemente" #: includes/widgets/class-ecwid-widget-recently-viewed.php:12 msgid "Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop." msgstr "Muestra una lista de productos vistos recientemente por el cliente para volver fácilmente a los productos que vieron en su tienda." #: includes/widgets/class-ecwid-widget-store-link.php:35 msgid "Text" msgstr "Texto" #: includes/themes/class-ecwid-theme-twentyseventeen.php:48 #: includes/themes/class-ecwid-theme-twentyseventeen.php:54 #: includes/themes/class-ecwid-theme-twentyfifteen.php:34 #: includes/themes/class-ecwid-theme-twentyfifteen.php:40 #: includes/themes/class-ecwid-theme-twentysixteen.php:36 #: includes/themes/class-ecwid-theme-twentysixteen.php:42 #: includes/widgets/class-ecwid-widget-store-link.php:31 msgid "Shop" msgstr "Tienda" #: includes/widgets/class-ecwid-widget-store-link.php:10 msgid "Store Page Link" msgstr "Enlace a la página de la tienda" #: includes/widgets/class-ecwid-widget-store-link.php:9 msgid "Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site." msgstr "Muestra un enlace a la página de la tienda en la barra lateral para que el cliente acceda rápidamente a su tienda desde cualquier página del sitio web." #: includes/widgets/class-ecwid-widget-vcategories.php:9 msgid "Store Categories" msgstr "Categorías de la tienda" #: includes/widgets/class-ecwid-widget-vcategories.php:8 msgid "Adds vertical categories block to let the customer navigate your store." msgstr "Añade un bloque de categorías verticales para permitir que el cliente navegue por su tienda." #: includes/class-ecwid-nav-menus.php:344 #: includes/class-ecwid-nav-menus.php:347 #: includes/widgets/class-ecwid-widget-search.php:13 msgid "Product Search" msgstr "Búsqueda de productos" #: includes/widgets/class-ecwid-widget-search.php:12 msgid "Displays a simple search box for your customers to find a product in your store" msgstr "Muestra un cuadro de búsqueda simple para que sus clientes encuentren un producto en su tienda." #: includes/widgets/class-ecwid-widget-minicart-miniview.php:8 msgid "Adds a compact cart widget for customer to see the products they added to the cart." msgstr "Añade un «widget» de carrito compacto para que el cliente vea los productos que se han añadido al carrito." #: includes/widgets/class-ecwid-widget-minicart.php:41 #: includes/widgets/class-ecwid-widget-random-product.php:67 #: includes/widgets/class-ecwid-widget-search.php:46 #: includes/widgets/nsf-minicart-editor.tpl.php:50 #: includes/widgets/class-ecwid-widget-minicart-miniview.php:41 #: includes/widgets/class-ecwid-widget-vcategories.php:39 #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:76 msgid "Title:" msgstr "Título:" #: includes/class-ecwid-nav-menus.php:338 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:20 msgid "Shopping Cart" msgstr "Carrito de compras" #: includes/widgets/class-ecwid-widget-minicart.php:8 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:19 msgid "Adds a cart widget for customer to see the products they added to the cart." msgstr "Añade un «widget» de carrito para que el cliente vea los productos que se han añadido al carrito." #: includes/widgets/class-ecwid-widget-badge.php:51 #: includes/widgets/class-ecwid-widget-badge.php:63 msgid "Ecwid e-commerce widgets" msgstr "«Widget» de comercio electrónico de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:45 #: includes/widgets/class-ecwid-widget-badge.php:57 msgid "Ecwid shopping cart" msgstr "Carrito de compras de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:39 #: includes/widgets/class-ecwid-widget-badge.php:75 msgid "Ecwid free shopping cart" msgstr "Carrito de compras gratuito de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:33 #: includes/widgets/class-ecwid-widget-badge.php:69 msgid "Ecwid ecommerce solution" msgstr "Solución de comercio electrónico de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:21 #: includes/widgets/class-ecwid-widget-badge.php:27 msgid "Ecwid shopping cart widget" msgstr "«Widget» de carrito de compras de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:14 msgid "Ecwid Badge" msgstr "Distintivo de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:13 msgid "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid." msgstr "¿Le gusta Ecwid y quiere ayudarlo a crecer? Puede añadir este elegante distintivo «Powered by Ecwid» en su sitio web para mostrarles a sus visitantes que es un usuario orgulloso de Ecwid." #: ecwid-shopping-cart.php:2791 msgid "Recommendations for Your Online Store" msgstr "Recomendaciones para su tienda en línea" #: includes/class-ecwid-admin.php:528 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:77 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:87 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:95 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:103 #: ecwid-shopping-cart.php:2056 msgid "Settings" msgstr "Configuraciones" #: includes/class-ecwid-admin.php:165 msgid "Advanced" msgstr "Avanzado" #: includes/class-ecwid-admin.php:164 msgid "Advanced settings" msgstr "Configuraciones avanzadas" #: templates/product-popup.php:206 templates/store-popup.php:14 #: templates/store-popup.php:34 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:44 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:78 #: js/gutenberg/blocks.build.js:1 msgid "Appearance" msgstr "Apariencia" #: includes/class-ecwid-admin.php:28 includes/class-ecwid-admin.php:59 #: includes/class-ecwid-admin.php:459 ecwid-shopping-cart.php:2110 msgid "Dashboard" msgstr "Panel" #: includes/class-ecwid-admin.php:57 ecwid-shopping-cart.php:2056 msgid "Setup" msgstr "Configuración" #: includes/class-ecwid-admin.php:47 msgid "%s shopping cart settings" msgstr "Configuraciones del carrito de compras de %s" #: includes/class-ecwid-nav-menus.php:132 #: includes/class-ecwid-nav-menus.php:361 #: includes/class-ecwid-nav-menus.php:364 #: includes/class-ecwid-nav-menus.php:372 includes/class-ecwid-admin.php:206 #: includes/class-ecwid-admin.php:207 includes/class-ecwid-admin.php:220 #: includes/class-ecwid-admin.php:221 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:63 #: includes/class-ecwid-admin-storefront-page.php:257 #: ecwid-shopping-cart.php:1657 msgid "Store" msgstr "Tienda" #: ecwid-shopping-cart.php:1306 msgid "<a %s>Online store powered by %s</a>" msgstr "<a %s>Tienda en línea con tecnología de %s</a>" #: includes/class-ecwid-admin.php:489 msgid "Sell on Facebook" msgstr "Vender en Facebook" #: templates/admin/simple-dashboard.php:48 ecwid-shopping-cart.php:1094 msgid "Visit storefront" msgstr "Visitar escaparate virtual" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/languages/ecwid-shopping-cart-es_GT.mo������������������������������������������0000644�����������������00000225044�15122273603�0017574 0����������������������������������������������������������������������������������������������������ustar�00�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������e�����D��5��l&������@3�����A3��H���Y3�����3�����3�����3�����3�����3�� ���3��.���3�� ���4�� ��� 4�����,4�����J4�����e4����4�����g6��B���6�����6�����6�����6�����7��$���97�����^7�����r7�����7�����7��/���r8�� ���8�� ���8�����8�����8�����8�����8�����9��#���%9�� ���I9�����T9�����o9�����~9�� ���9�� ���9��>���9��"��� :�����-:�����:��k���:��K���h;��S���;��A���<��R���J<��G���<��4���<�� ���=�����&=�����/=��&���A=�����h=��T���{=�� ���=�����=�����=�����=�����>�����>�����#>�� ���*>�����8>�����?>�� ���G>�� ���S>�� ���`>�����l>�����>��4���>�� ���>�����>�����>�����>��X���>�� ���V?�����`?��/���g?��,���?�����?�����?�����?�� ���?�� ���?�����?�� ���?����� @�����@�����,@�����A@�����[@�����{@�����@�����@�����@�����@�����@�����@��.���@�����A�����5A��D���LA�����A�����A�� ���A�� ���A�����A�����A�����A����� B����� B��x���3B�����B�� ���B�����B�� ���B�����B�����C�����C�����*C�� ���=C�����JC��5���\C��h���C�����C�����D�� ���D�� ���D��5���D�����E�� ���E��x���%E��i���E�����F�����F�����4F�����QF�����bF�����F�� ���F�����F�����G�����$G��"���7G��#���ZG��/���~G�� ���G�� ���G�����G�����G�����G�����G�����H�����H�����-H�����?H��!���WH�����yH�����H��6���H��!���H�����H��*���I��%���:I�����`I��'���vI�����I�����I��,���I�����I��q���J��s���yJ��#���J��H���K��O���ZK��1���K��s���K�� ���PL�����\L��v���L�����uM��$���zM�����M�����M�����M�� ���M�����M�����M����� N��s���N�����N�����N�����N��=��N�����P����P����Q�����R�����R����� S�����S�� ��� S�� ���.S�� ���;S�� ���FS�� ���TS�����^S�����S�����T�����T�����T��B���T��$���)U�����NU�����VU�����mU�� ���U�����U�����U�� ���U�����U�� ���U��(���U�����V�� ���V�����V�����#V��.���V�����W��D���W��h���%X�����X��_���X��C���X�����7Y�����IY��/���_Y��/���Y�����Y��/���Y��(���Z�����-Z��9���GZ��I���Z��2���Z��"���Z��:���![�����\[��"���t[��!���[�����[�����[�����[�����[��$��� \��*���1\��B���\\�����\�� ���\�����\�� ���\�����\��+���\�����]��-���,]��P���Z]�����]��#���]��'���]��)��� ^�� ���7^�����X^��%���g^��+���^��+���^�����^�����_�����_�����!_�� ���2_��$���?_��9���d_��%���_��:���_�����_�����`�����`�����&`�����(`�� ���=`�� ���K`�� ���Y`�� ���c`�����o`�����`�����`�� ���`�����`�����`�� ���`�����`�����`�� ���`�����`�����oa�����a�����a��S���a�����a��'���a��[���'b�� ���b�����b�� ���b�����b�� ���b�� ���b�����b�����b�� ���b��9���b�����c�� ���:c�� ���Dc�� ���Nc�� ���Xc�����bc�����wc��I���Jd�����d�����d�����d�� ���d�� ���d�� ���e�����e�� ��� e�����-e�����@e�����Ue�����]e�����de�����je�����if��#���Og�����sg�� ���g�����g�����lh�����th�� ���i�� ���i�����i�����%i��O��*i��4���zj�����j�� ���j�� ���j�����j�����j�� ���j�����j�� ����k����� k�����k�����'k�����:k�����Rk�� ���jk�����vk�����k�����k�����k��+���k�����k�� ��� l�����l�����*l�����Bl�����al�� ���xl�����l��I���l��'���l�����m�����m�����$m�����=m�����Em��#���Xm�� ���|m�����m�� ���m�����m�����m�����m��"���m�����m��%���n�� ���4n�����>n�����Vn�����en�����n�����n�����n�����n�����n�����n�����n��*���n�� ���n�����n�����n�����o�����o�����/o�� ���8o�����Co�����So�����do�����vo�� ���o��"���o�����o�����o�� ���o�����o�����o�����p����� p�����p�� ���"p�����0p��#���Kp�����op�����p�����p�����p�����p�����p��V���p�� ���Bq�� ���cq�����qq�� ���q�����q��&���q��(���q�����q�����r�� ���&r�����2r�� ���Br�� ��cr�� ���ns�����ys��(���s��*���s����s�� ���ow�� ���zw�����w�����w��.���$x�����Sx�����Yx�����jx�����x�����x�����x�����x�����x�����y�����z�����0z�� ���Az�����Lz�����\z�����rz�����z�����z�����z�����z�����z�����z�� ���z�����{�����{�����${�����4{�����I{�� ���O{��/���Z{��N���{�����{�� ���{��4���{�����|��=���|�����}��-���}�����}��%���~��M���~�������P�����H���h��P��������������� ����� ���"�����/�����A�����H�����ۀ������� ��4��E��>�������]��������l��%��^��*����*����y���ڊ��>���T�������h���5��L���������� ������������������,�����5�����<�����P�����l�����|�������������������������ԍ����������������� �����!��� ��j���B����������E��^���ŏ�����$�����,�����F�� ���V�����c������� ���������C����B����k���@���������������V�� ������0���!��^���R�������:���Ę��>��������>�����N�����j�� �����2�����?���Ù����������֚������������y�����A��������Q�����o������:��������J�����_�� �����"��������Þ��"���ߞ��H�����)���K�����u�������&�����(���ן���������������� �����4����G�����$��e���:��'��������Ȣ�� ���ˢ�����֢�� ����������5����� ���M�� ���Y�����f�������,�������̣�����W��B���v��!��������ۦ��!����������0���=�����n����������������*���������������(�����!���1�����S��*���p�������+����� �����!����������6���)��1���`�������C�����/����������!��������2��e�����n���&��Z�����o�����^���`��R�������������,�����5��5���O�������h����� ��� �� �����!���!��)���C�����m�����}�������������������������������� ���Ӱ������������:��������O�� ���`�����n�������`����� ����� �����=�����9���W�������������������������β�� ����� ����� �����%�����!���(�����J��5���j��(��������ɳ��%���ҳ�������!���������"�����2��C���B��(����������g���ϴ�����7�����Q��.���j�������������������������ҵ������������%�����!���Ŷ�� �����!�������������-�����J�����e�� ����������8�����j��������O������� ��������(��I���7��$���������������x���@�������'���Ѻ��5��������/�����G�������������������������6��9���U��;�����0���˼���������������,�����4�����H�����b�����u�����������������2�����!�����#���5��I���Y��+��������Ͼ��6�����/���%�����U��2���s��&��������Ϳ��E��������2�����D�������*���c��P�����`�����:���@�����{�� ��� ���������������U��3���[������������'���������������5��������D�����`��,�����+��� ��$���L��t��q�������A����h�������6��)���R�����|����������������� �����$�������������������������$����������Y�����*���?�����j�����r�����������������%������������� �� ���$��4���/�� ���d�����p������������;����������D�����g��������l��p���t��Q��������7�����K��]���c��>�����������D�����1���_�������I�����g�����/���[��$�����7����������0�����%���8��"���^������������%�����/�����7�����@���1��.���r�������#����� ����������)����������>���,��h���k��!�����%�����1�����3���N��'����������(�����)�����)��������B�����a�����������������-�����E�����-���+��8���Y������� ��������������� ����������������������� �����7�����J�����R�����[�� ���m�����w������������������������������}������������s��������*��/���E��q���u������������ ��������&�� ���-�� ���7�� ���A�����L�� ���S��A���_��#��������������� ����� ����������)����c���H������� �����!���������� ��������+��#���<�����`�����q����������������������I���������%��������(�� ���:�����G����������$���������������������������9���������� ����� ����� ����� ��� ����������*�����1�����B�����K�����f��#�����%��������������� ����� �����+���5��7���a��"���������������*�����1�����$���C�����h�� ���}��a�����0�������������/�����?�����^�� ���g��4����� ������������������������������5���-�����c��(����� �����"����������"������������������ �����"�����&�����-�����>��-���F�����t�����������������"���������������������������������2�����E��0���T��&��������������������������������� ����������#��"���6��+���Y�������/�����!����������+��������(�����<��(������������������ ��$���;��8���`��8�����)�����#�������� �����2��)���N��M��x�������$�����2�����L���-��,��z�� ��������������������?���������������!�����#��������7�����V�����u��������������3�����S�����l�� �������������������������$�����$���+�����P�����n�������������������������������������G�����W���C������������8����������Y����������:���z�����'����_��������X���&�^����U�������4����<� ���Q� ���^����l������������M�����#��������� �u���= ��� �@�� �@���U��H�����P���:�����~���:�a�����������1����E����]����v� ��������$������������ ���� ��������,���6����c������������� ����#���������������(�]���� ��� ��������0� ���I����W�����V��&����}���U�`������H�+�����������'��� �2��� �^����!����_!�A���v!�G���!�����"����"�$���6"� ���["�8���g"�;���"�5��"� ���$����3$����$����$�R���%����%���� &���-&�[��� (����e(� ���}(����(�"���(����(�"���(�H���(�)���9)����c)�(���~)����)����)����)����)����)����*��������I����������������k������R��W��y����$��%���������������������������������������#�����y���R��#��������J���Z���������?���B��^��>������������������������� ��� ��3����1�����U������>�������K��q����������������������-���������������������v���8������:���/������g��d�����������������S��?�����������������������'���������,������������j��Z��������P���������W������������S���������]����������T����������� �������6�������������������r�������������c��9����������,������������������k��������������%���������������������������������������������L���"�������a����������W��t�������������������}��.������ ��$������K������G���������~���������������0������w������������E��������7����������������������������Q��������F������������������:��\�����������������O�����X��'��*��3������1������ ���������������������u������������9�����E�����������C�����������������������������?������8��a��_���b�������L������@��&������*��I��C���J�����Y���������D������������$���������;��F���������N������G������'���������������0�����@�����^��������c�����������������u����>��:��������.�����������M��j���[��S����������������4������� ������������H�������������@���������������K�����]���������P���&�������������������%���� ��c������h��X���A��������#�����������z�������3�����(����������������������������������������������Q��������e�������������-����������i���������D����p�������!��������������(������������X��5����7���������=��������������;������N���������P������������������T��������������\������Z����������������������&����� ��������� ���`�������|�����������`������������<���������e���+�������A�����=����������������������)�������Q������������������������f��!����� ���b��a���M��{�������<��7�������������������������������������H��������6��O��s���`����������9�����*���������-��}���"���������r���������0��������������{������������������������������������l��H����������v����d��/����� ��]���t���p�����2�����������d��������g������U���������C�������w���������[���l������������������������<��������� ���o���1��� ����������V��f������N�� ��E��������������������������������� �����������������������/������,��������~�����������������������!������[����n�����������_��"�����(�������2���J��x��h���_���� ��������o������M������4��=��8������������2����� ��4������������m���������������������������5��n��I���;�����)������6��L��V������������+����+��A�������������������������Y��B��F������ �������)��������m��i�����������5���^������|���z���������������������U����������x�����������\����q������������O���������������V����������b���������������������������������������Y�������������.�����D������������������B�������G��s�������������R�����T����e���������� Choose another product� Thank you very much for contacting us! We will get back to you shortly.�"In stock" label�%s�%s Blog�%s Shopping Cart�%s Store�%s Store Page�%s plugin doesn't work well with my "%s" theme�%s product�%s products�%s products and %s categories�%s products and categories�%s shopping cart settings�%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site.�%s — Advanced settings�(You will be able to confirm the changes before the actual import)�2 columns, image on the left�2 columns, image on the right�3 columns, image on the left�3 columns, image on the right�<a %s>Online store powered by %s</a>�<a %s>Reconnect</a>�<a href="admin.php?page=�<b>%s</b> categories�A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use "/shop" or "/products".�Action required: please connect your %s account�Add Product�Add Store�Add Store Page to Menu�Add a category page�Add a product page�Add a search and filters page�Add a store page�Add an Online Store to Your Website�Add border�Add cart and checkout page�Add categories�Add store page to the site menu�Add storefront (product listing)�Add to Menu�Add your %s store to the website and start selling in minutes.�Add your store to other site pages�Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href="%s" target="_blank">WordPress Settings > Reading</a>�Additional store pages�Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>�Adds a cart widget for customer to see the products they added to the cart.�Adds a compact cart widget for customer to see the products they added to the cart.�Adds a shopping cart widget to the top right corner of your site.�Adds root categories list to the sidebar to let your customers navigate the store.�Adds vertical categories block to let the customer navigate your store.�Adjust your store design to fit your business needs.�Admin Label�Advanced�Advanced settings�After import, your %s store will have �All Sales Channels�Along with the store catalog, you can add other widgets and texts to the store page.�Appearance�Apps�Available qty in stock�Back to Store Settings�Background color�Bag�Basket�Before You Go�Border�Border:�Bottom left�Bottom right�Breadcrumbs�Browse all products.�Browse by Category�Bulk import products and categories to your %s store�Button color�Buy Now�Buy Now Button�Buy now buttons�By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>.�CSS Class�CSS ID�Can you share the name of the plugin you chose?�Can you share your feedback? What was wrong?�Cancel�Cart�Cart and Checkout�Cart icon�Cart icon:�Catalog�Categories�Category�Category List Appearance�Category card layout�Category shown by default�Category thumbnail aspect ratio�Category thumbnail size�Center�Center align on a page�Change�Change store content�Choose Product�Choose product�Choose product properties to display in widget�Choose the main store page�Choose widgets to show�Click the connect button to get rights to update the product catalog�Color settings�Complete Setup�Complete setup and start selling�Configuration�Congratulations!�Connect�Connect Your Store�Connect your %s store�Connect your store�Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again.�Contact Support�Contact us�Content�Copying products and categories.�Create Cart Page�Create Category Page�Create Product Page�Create Search Page�Create Store�Create Store Page�Create a landing page featuring one of your products.�Create a new %s account which you will use to manage your store and inventory. The registration is free.�Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website.�Create new account�Create store�Current Page�Current URL slug: /<span data-ec-store-slug>%s</span>�Customer Single Sign-On�Customers�Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers.�Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout.�Customize design�Customize store appearance�Customize store page address�Customize widget�Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand.�Cyan bluish gray�Dashboard�Default category�Default category ID�Default product_ID�Default view mode on product pages�Default view mode on search results�Deleted products synchronized: %1$s out of %2$s�Demo Store�Demo store�Design�Design and content�Detect automatically�Disconnect store�Display a buy button�Display breadcrumbs�Display cart icon�Display categories menu�Display categories navigation bar�Display category page�Display footer menu�Display product page with description and a buy button�Display product with a buy button�Display search box�Display search page with filters on a side�Display shopping bag link and summary�Display shopping cart�Display shopping cart and checkout page�Display sign in link�Display sort by link�Display the shopping cart icon on site pages�Displayed product�Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site.�Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop.�Displays a list of random products.�Displays a random product from your store to attract customer attention.�Displays a simple search box for your customers to find a product in your store�Displays storefront: product listing and checkout�Displays the latest added products from your store. Show new products to returning customers to drive repeat sales.�Do not show�Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid.�Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site.�Done�Download <a href="%s">import log</a>�Download log file�Draft�E.g. How to set up shipping�Ecwid Badge�Ecwid Ecommerce�Ecwid Ecommerce Shopping Cart�Ecwid Menu Item�Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center�Ecwid e-commerce widgets�Ecwid ecommerce solution�Ecwid free shopping cart�Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">More details.</a>�Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up.�Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href="%s">TemplateMonster themes</a>�Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">More details.</a>�Ecwid shopping cart�Ecwid shopping cart widget�Edit�Edit Appearance�Edit Category�Edit Product�Edit Store�Edit URL Slug�Edit page�Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page.�Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space.�Enter your Store ID�Enter your Store ID here:�Extensions for your Store�Feature a specific store category on a separate page of your site.�Feature your products in the sidebar�Filters�Filters panel position�Find your Store ID�First Page�Frequently Asked Questions�Get %s mobile app�Go to Pages�Go to Your %s Products�Greetings!�Greetings! Your %s plugin is now active.�Grid�Grid view�Help�Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars.�Help customers find your store on the website.�Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products.�Here you can create the content that will be used within the module.�Here, we will help you uploading your product catalog to %s from another shopping cart or other sources.�Hide�Highlight products, categories, and other store pages by adding them to separate website pages.�Highlight your best sellers or new products in the website sidebar.�Horizontal indent�Horizontal thumbnails�How can I add a cart widget to my site sidebar?�How can I manage my store from a mobile device?�How can we help you?�How do I add store categories to the site menu?�How do I put my products in the sitemap?�How much does Ecwid cost?�How secure is this plugin? Is my store PCI DSS compliant?�How to add a single product with the add to bag button to the site pages?�How to set up a storefront on Facebook with Ecwid?�I already have an account, sign in�I couldn’t find a WordPress theme that goes well with %s�I found a better plugin�I have a problem using this plugin�I have a problem with my %s store�I use this WordPress theme: %s�Icon�Icon and item count�Icon, label and item count�Icon, label, item count and subtotal�Icon, label, item count, subtotal and link�If you have a moment, please let us know why you are deactivating:�Image and title on mouse over�Image feed�Image gallery layout�Image only�Import�Import Your Products From Woocommerce to %s�Import completed�Import completed. <a href="%s">Run again.</a>�Import creates new products and update the existing products with matching SKUs.�Import is in Progress�Import my products from WooCommerce�Import product catalog from WooCommerce�Import product catalog from other sources�Import products to your %s store�Import summary�Import your WooCommerce catalog to %s�Import your products from WooCommerce to %s�Import your products from Woocommerce to %s�Imported <b>%s</b> products�Importing %s of %s items�Insert�Insert into page�Instant site�Integration with search on your site�Is it possible to display my store on the site home page?�Is there a WordPress theme for Ecwid?�It's a temporary deactivation. Please do not ask me again.�Item count only�Justify�Knowledge Base�L�Label and item count�Landscape 3:2�Landscape 4:3�Last Page�Last update�Latest Products�Layout�Layout:�Learn more�Left�Light green cyan�Link color�Linked product�List�List view�Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL.�Luminous vivid amber�Luminous vivid orange�M�Make your store accessible from the site menu so your customers can easily find it.�Manage Sidebar�Manage Store on iPhone, iPad or Android�Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page.�Manage store�Manage storefront�Marketing�Mobile�My Account�My Profile�My Sales�Name�Navigation�Need help importing your products from WooCommerce to %s?�Never show this message again�Next Page�Next page�No Thanks�No border�Not synchronized yet�Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The "Show on store pages" and "Show when empty" options will apply to the cart widget on site when published�Nothing found for <span class="empty-page__term">"{{ data.term }}"</span>�Number of categories per row�Number of products per page�Number of products to show�On the left�On the right�Online Store�Online Store Apps�Online store�Open control panel�Open store dashboard�Options�Orders�Other�Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target="_blank" href="%s">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans.�Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">our customer support team</a>.�Page with that name already exists.�Pale cyan blue�Pale pink�Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>�Payment�Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers.�Pick Category�Pick Product�Picture�Pill�Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target="_blank">"Billing & Plans"</a></nobr> page in your Ecwid store control panel.�Please subscribe to a paid plan to get this feature.�Plugins for Ecwid�Portrait 2:3�Portrait 3:4�Position�Preview�Previous Page�Price�Price color�Product�Product Card Large�Product Card Small�Product List Appearance�Product Page Appearance�Product SKU�Product Search�Product Search Box�Product Search and filters�Product card text align�Product catalog will be shown automatically�Product page layout�Product price�Product quantity�Product sidebar content�Product thumbnail aspect ratio�Product thumbnail size�Product title�Products�Products are successfully synchronized. The product pages are up to date.�Products synchronized: %1$s out of %2$s�Promote your store�Provide access.�Provided by <a %s>%s</a>�Publish�Publish Store Page�Publish the page to use this option�Published�Quantity�Questions?�Random Product�Random Products�Rate %s at WordPress.org�Re-connect to Enable Control Panel�Recently Viewed Products�Recommendations for Your Online Store�Rectangle�Refresh categories list�Register at %s�Report a problem with the store�Reports�Right�S�SKU�Sales�Sales channels�Save�Save and connect your %s store to the site�Save changes�Search�Search and Filters�Search products�Search the Knowledge Base�See more�Select All�Select category�Selected Product�Selected category�Sell on Facebook�Send Message�Send a message to our support team�Send message failed�Set Up Your Store�Set manually�Set up your store�Settings�Setup�Shipping & Pickup�Shop�Shopping Cart�Shopping Cart (deprecated)�Shopping Cart Floating (deprecated)�Shopping Cart Icon�Shopping Cart Mini (deprecated)�Shopping Cart Widget�Show�Show additional image on hover�Show categories�Show customers that they can use a search and filters to find desired products faster.�Show description under the image�Show minicart�Show on all pages�Show on hover�Show on store pages�Show price inside the "Buy now" button�Show price inside the «Buy now» button�Show product card border�Show product thumbnails�Show search�Show when empty�Show your store on the home page�Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again.�Small icon�Small icon and item count�Some of the items could not be imported.�Sorry we're having technical difficulties.�Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: "The Wordpress function wp_remote_post() failed to connect a remote server because of some error: "%s". Seems like HTTP POST requests are disabled on this server". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>.�Square 1:1�Start Import�Status�Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store.�Still have questions about Ecwid? Let us know!�Store�Store Categories�Store Categories Menu�Store Category Page�Store Front Page�Store Home Page�Store ID�Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the "Dashboard" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration.�Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>.�Store Link Title�Store Navigation�Store Page�Store Page Link�Store Root Categories�Store appearance�Store elements�Store management�Store page content�Store page on your site�Store root category�Store with Categories Menu�Storefront�Subject�Submit & Deactivate�Switch to draft�Synchronize products�Table�Table view�Take a few simple steps to complete store setup�Take advantage of powerful apps and extensions designed to enhance your store.�Text�Text color�Thank you for choosing %s to build your online store�The block is hidden because you don't have categories in your store. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Add categories.</a>�The category that is shown by default on the Store Front Page�The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps.�The plugin doesn't support the feature I want�The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href="%s" target="_blank">adjust the cart icon appearance</a>.�The store is not visible on your site�The store top-level categories are automatically added to this drop-down menu�Themes for Ecwid�This import will copy your WooCommerce products and categories to your %s store.�This is a demo store. Create your store to see your store products here.�This will change the label of the module in the builder for easy identification.�Title�Title on image�Title only�Title or SKU�Title under image�Title:�To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings.�To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>.�To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>�To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the "Add product" dialog.�To create sitemap for your Wordpress site we suggest using <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> or <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target="_blank" href="https://www.ecwid.com/pricing">paid Ecwid users</a>.�To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission.�To enable this feature, the plugin needs a permission to read your store product information.�To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">How to use it.</a>�To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>�To manage your store, go to <a %s>the Store Dashboard page</a>�To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission.�To show your storefront instead of the demo store, connect your existing %s account or create a new one.�To start selling, add a page to your site where the storefront will display.�Top left�Top right�Try another search.�Type in your message here�URL Slug�Update�Update your catalog�Upgrade to get this feature�Vertical indent�Vertical thumbnails�Very dark gray�Very light gray�View Store Page�View demo store page�View store page�Visit storefront�Vivid cyan blue�Vivid green cyan�Vivid red�Want to connect another %s store?�Warning: some of your online store features are disabled. Please contact your hosting provider to resolve.�We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?�We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you.�We're synchronizing your products. This may take a few minutes. Please do not reload the page.�Website�What feature do you need?�What was wrong?�What's next?�While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site.�Wholesale prices�You can add product search box, cart widget and more on the <a href="%s">"Appearance / Widgets page"</a> here in your site admin. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">More details.</a>�You can add the entire storefront, categories, products, or "Buy now" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block.�You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open "Appearance > Menus" in your WordPress control panel and add the "Store with Categories Menu" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site.�You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">More details.</a>�You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel.�You can display your store on the site main page. Adjust the "Reading" settings of your site as described in our <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">Help Center.</a>�You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href="%1$s">Appearance → Customize → %2$s</a>” menu to enable it.�You can enable filters in the store settings: (“<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Settings → Product Filters</a>”).�You can send a new request here.�You have not viewed any product yet. Open store.�You will be able to sign up through your existing Google, Facebook or PayPal profiles as well.�Your %s store has �Your %s store is connected<br /> to your WordPress website�Your %s store is now connected<br /> to your WordPress website�Your Storefront�Your WooCommerce store has �Your email has been sent�Your product�Your store Control Panel. Right here in WordPress.�Your store has been created. Preparing your store dashboard ...�Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar.�Your store is almost ready!�Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display.�Your store page�Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders.�Your store page is published. Customers can browse your store at �Your store will be shown here�Your store will be shown here!�Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data.�[%s] WordPress plugin deactivation feedback (store ID: %s)�customize appearance�gutenberg-product-blockContent�gutenberg-store-block-stubStore�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�or <a %s>Browse the Help Center�product-browser-attributesProduct SKU�product-browser-attributesProduct price�select product�selected product�vc-tabOnline store�«Buy now» button�PO-Revision-Date: 2020-10-12 12:46 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: Poedit 2.4.1 Language: es Project-Id-Version: temporary-strings X-Crowdin-Project: temporary-strings X-Crowdin-Project-ID: 295314 X-Crowdin-Language: es-ES X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po X-Crowdin-File-ID: 988 Language-Team: Spanish Last-Translator: � Elegir otro producto� ¡Muchas gracias por ponerse en contacto con nosotros! Nos pondremos en contacto con usted en breve.�Etiqueta de productos «En existencia»�%s�Blog de %s�Carrito de compras de %s�Tienda de %s�Página de la tienda de %s�El complemento %s no funciona bien con mi tema «%s»�%s producto�%s productos�%s productos y %s categorías�%s productos y categorías�Configuraciones del carrito de compras de %s�%s almacena los datos de sus productos de forma segura en la nube. Las páginas de productos se muestran sobre la marcha cuando un cliente navega por su tienda. Por lo que, básicamente, los productos no se almacenan en el sitio web, por eso la búsqueda en el sitio web no encuentra páginas de productos mientras busca en las páginas del sitio web y en las publicaciones. Esta opción habilita un modo de almacenamiento local: los productos se almacenarán tanto en la nube como en su sitio web. Los resultados de la búsqueda en el sitio web incluirán las páginas de productos, así como las páginas o publicaciones habituales de su sitio web.�%s — Configuración avanzada�(podrá confirmar los cambios antes de la importación definitiva)�2 columnas, imagen a la izquierda�2 columnas, imagen a la derecha�3 columnas, imagen a la izquierda�3 columnas, imagen a la derecha�<a %s>Tienda en línea con tecnología de %s</a>�<a %s>Volver a conectar</a>�<a href="admin.php?page=�<b>%s</b> categorías�Un «slug» es la última parte de una URL. Puede crear un «slug» personalizado para la página de su tienda. Es mejor que sea corto, ya que los clientes y los motores de búsqueda prefieren las URL cortas. Por ejemplo, utilice «/tienda» o «/productos».�Acción requerida: conecte su cuenta de %s�Añadir producto�Añadir tienda�Añadir la página de la tienda al menú�Añadir una página de categoría�Añadir página de productos�Añadir una página de búsqueda y filtros�Añadir una página de tienda�Añadir una tienda en línea a su sitio web�Añadir borde�Añadir carrito y página de pago�Añadir categorías�Añadir la página de la tienda al menú del sitio web�Añadir escaparate virtual (listado de productos)�Añadir al menú�Añada su tienda de %s al sitio web y comience a vender en minutos.�Añada su tienda a otras páginas del sitio web�Añada su escaparate virtual a la página de inicio del sitio web para que sea más notable. También puede modificar la configuración de la página de inicio del sitio web en <a href="%s" target="_blank">Configuración de WordPress > Lectura</a>.�Páginas adicionales de la tienda�Además, puede añadir controles de la tienda a la barra de herramientas de su sitio web mediante <a %s>«widgets» nativos de WordPress</a>.�Añade un «widget» de carrito para que el cliente vea los productos que se han añadido al carrito.�Añade un «widget» de carrito compacto para que el cliente vea los productos que se han añadido al carrito.�Añada un «widget» de carrito de compras en la esquina superior derecha de su sitio web.�Añade la lista de categorías raíz a la barra lateral para que sus clientes puedan desplazarse por la tienda.�Añade un bloque de categorías verticales para permitir que el cliente navegue por su tienda.�Ajuste el diseño de su tienda para que se adapte a las necesidades de su negocio.�Etiqueta de administrador�Avanzado�Configuraciones avanzadas�Después de la importación, su tienda de %s tendrá �Todos los canales de venta�Junto con el catálogo de la tienda, puede añadir otros «widgets» y textos a la página de la tienda.�Apariencia�Aplicaciones�Cantidad disponible en existencia�Regresar a la configuración de la tienda�Color del fondo�Bolsa�Cesta�Antes de que se vaya�Borde�Borde:�Abajo a la izquierda�Abajo a la derecha�Migas de pan�Explorar todos los productos.�Buscar por categoría�Importar en masa productos y categorías a su tienda de %s�Color del botón�Comprar ahora�Botón «Comprar ahora»�Botones de «Comprar ahora»�Al continuar, acepta los <a %s>Términos de servicio</a> y la <a %s>Política de privacidad</a>.�Clase CSS�ID de CSS�¿Podría compartir el nombre del complemento que ha elegido?�¿Podría compartir su opinión? ¿Qué fue lo que pasó?�Cancelar�Carrito�Carrito y pago�Icono del carrito de compras�Icono del carrito:�Catálogo�Categorías�Categoría�Apariencia de la lista de categorías�Diseño de la ficha de categoría�Categoría mostrada por defecto�Relación de aspecto de la miniatura de la categoría�Tamaño de la miniatura de la categoría�Centrado�Centrar la alineación en una página�Cambiar�Cambiar el contenido de la tienda�Elegir producto�Elegir producto�Elija las propiedades del producto para mostrarlas en el «widget»�Elegir la página principal de la tienda�Elija los «widgets» a mostrar�Haga clic en el botón «Conectar» para obtener los permisos para actualizar el catálogo de productos�Configuración de colores�Completar configuración�Complete la configuración y comience a vender�Configuración�¡Enhorabuena!�Conectar�Conecte su tienda�Conecte su tienda de %s�Conecte su tienda�Error de conexión: después de hacer clic en el botón, debe iniciar sesión y otorgar los permisos para poder utilizar nuestro complemento. Inténtelo de nuevo.�Ponerse en contacto con la asistencia�Póngase en contacto con nosotros�Contenido�Copia de productos y categorías.�Crear página del carrito�Crear página de categorías�Crear página de productos�Crear página de búsqueda�Crear tienda�Crear la página de la tienda�Cree una página de aterrizaje con uno de sus productos.�Cree una nueva cuenta de %s que utilizará para gestionar su tienda e inventario. El registro es gratuito.�Cree una nueva tienda o, si ya tiene una cuenta de %s, conéctela. El complemento le guiará a través de la configuración de la tienda y le ayudará a publicarla en su sitio web.�Crear una nueva cuenta�Crear tienda�Página actual�«Slug» actual de la dirección URL: /<span data-ec-store-slug>%s</span>�Inicio de sesión único del cliente�Clientes�Los clientes no pueden ver la página de su tienda porque está en un borrador. Publique la página para que esté disponible para sus clientes.�Los clientes van a la página del carrito para consultar los productos que han añadido al mismo y proceder con el pago.�Personalizar el diseño�Personalizar la apariencia de la tienda�Personalizar la dirección de la página de la tienda�Personalizar «widget»�Personalice la apariencia de su tienda para que se ajuste a las necesidades de su negocio. Cree la apariencia para su tienda que más se parezca a su marca.�Gris cian azulado�Panel�Categoría predeterminada�ID de categoría predeterminada�ID del producto predeterminado�Modo de vista predeterminado en las páginas de productos�Modo de vista predeterminado en los resultados de búsqueda�Productos eliminados sincronizados: %1$s de %2$s�Tienda de demostración�Tienda de demostración�Diseño�Diseño y contenido�Detectar automáticamente�Desconectar tienda�Mostrar un botón de compra�Mostrar migas de pan�Mostrar icono del carrito�Mostrar el menú de categorías�Mostrar la barra de navegación de las categorías�Mostrar la página de categorías�Mostrar el menú del pie de página�Mostrar la página de productos con la descripción y un botón de compra�Mostrar el producto con un botón de compra�Mostrar el cuadro de búsqueda�Mostrar página de búsqueda con los filtros a un lado�Mostrar enlace y resumen de la bolsa de compras�Mostrar el carrito de compras�Mostrar el carrito de compras y la página de pago�Mostrar el enlace de inicio de sesión�Mostrar «ordenar por enlace»�Muestre el icono del carrito de compras en las páginas del sitio web�Producto mostrado�Muestra un enlace a la página de la tienda en la barra lateral para que el cliente acceda rápidamente a su tienda desde cualquier página del sitio web.�Muestra una lista de productos vistos recientemente por el cliente para volver fácilmente a los productos que vieron en su tienda.�Muestra una lista de productos aleatorios.�Muestra un producto aleatorio de su tienda para atraer la atención del cliente.�Muestra un cuadro de búsqueda simple para que sus clientes encuentren un producto en su tienda.�Muestra el escaparate virtual: listado de productos y pago�Muestra los últimos productos añadidos de su tienda. Muestre nuevos productos a los clientes existentes para impulsar las ventas repetidas.�No mostrar�¿Le gusta Ecwid y quiere ayudarlo a crecer? Puede añadir este elegante distintivo «Powered by Ecwid» en su sitio web para mostrarles a sus visitantes que es un usuario orgulloso de Ecwid.�¿Le gusta su tienda de %s en línea? Apreciaríamos si comparte su opinión y vota por el complemento en el sitio de WordPress.�Hecho�Descargar <a href="%s">registro de importación</a>�Descargar archivo de registro�Borrador�Por ejemplo, cómo establecer el envío�Distintivo de Ecwid�Comercio electrónico Ecwid�Carrito de compras del comercio electrónico de Ecwid�Elemento del menú de Ecwid�Ecwid le permite subir sus productos en forma de archivo CSV. Obtenga más información sobre esta herramienta en el centro de asistencia de Ecwid�«Widget» de comercio electrónico de Ecwid�Solución de comercio electrónico de Ecwid�Carrito de compras gratuito de Ecwid�Ecwid cuenta con la certificación PCI DSS Nivel 1, que es el estándar de oro para las soluciones de comercio electrónico en todo el mundo. Esto significa que no tendrá problemas de cumplimiento bancario cuando venda en línea con Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">Más detalles.</a>�Ecwid es un carrito de compras gratuito con todas las funciones. Se puede integrar fácilmente con cualquier blog de Wordpress y se configura en menos de 5 minutos.�Ecwid es compatible con cualquier tema de WordPress. Ya sea un tema gratuito del catálogo de WordPress.org, un tema prémium de un proveedor externo o un tema personalizado; su tienda de Ecwid funcionará bien con cualquiera de ellos. Si desea un tema prémium, le recomendamos <a href="%s">temas de TemplateMonster</a>.�Ecwid ofrece aplicaciones móviles gratuitas para iOS y Android para que pueda gestionar su tienda y vender donde y cuando quiera. Escanee productos, supervise el inventario, gestione las ventas y acepte pagos utilizando su dispositivo móvil como una estación de punto de venta. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">Más detalles.</a>�Carrito de compras de Ecwid�«Widget» de carrito de compras de Ecwid�Editar�Editar apariencia�Editar categoría�Editar producto�Editar tienda�Editar «slug» de la dirección URL�Editar página�Introduzca un ID de CSS opcional que se utilizará para este módulo. Se puede utilizar un ID para crear un estilo CSS personalizado o para crear enlaces a secciones particulares de su página web.�Introduzca las clases CSS opcionales que se utilizarán para este módulo. Se puede utilizar una clase CSS para crear estilos CSS personalizados. Puede añadir varias clases separadas por un espacio.�Introduzca el ID de su tienda�Introduzca el ID de su tienda aquí:�Extensiones para su tienda�Destacar una categoría de la tienda específica en una página separada de su sitio web.�Destaque sus productos en la barra lateral�Filtros�Posición del panel de filtros�Encuentre el ID de su tienda�Primera página�Preguntas frecuentes�Descargue la aplicación móvil de %s�Ir a «Páginas»�Ir a sus productos de %s�¡Saludos!�¡Enhorabuena! Su complemento de %s ya está activo.�Cuadrícula�Vista de cuadrícula�Ayuda�Ayude a los clientes a encontrar su tienda en el sitio web. Añada el enlace de la tienda al menú del sitio web, cree páginas adicionales de la tienda y resalte los productos de la tienda en otras páginas del sitio web y en las barras laterales.�Ayude a los clientes a encontrar su tienda en el sitio web.�Aquí puede gestionar cuántos productos se mostrarán por página. Estas opciones definen valores máximos. Si no hay suficiente espacio para mostrar todas las columnas de productos, %s adaptará el número de columnas para mantener todos los productos.�Aquí puede crear el contenido que se utilizará dentro del módulo.�Aquí, le ayudaremos a subir su catálogo de productos a %s de otro carrito de compras u otras fuentes.�Ocultar�Destaque productos, categorías y otras páginas de la tienda añadiéndolas a páginas del sitio web separadas.�Destaque sus mejores ventas o nuevos productos en la barra lateral del sitio web.�Sangría horizontal�Miniaturas horizontales�¿Cómo puedo añadir un «widget» de carrito de compras a la barra lateral de mi sitio web?�¿Cómo puedo gestionar mi tienda desde un dispositivo móvil?�¿Cómo podemos ayudarle?�¿Cómo puedo añadir categorías de tiendas al menú del sitio web?�¿Cómo pongo mis productos en el mapa del sitio?�¿Cuánto cuesta Ecwid?�¿Qué tan seguro es este complemento? ¿Mi tienda cumple con el PCI DSS?�¿Cómo añadir un solo producto con el botón de «añadir a la bolsa» en las páginas del sitio web?�¿Cómo crear una tienda en Facebook con Ecwid?�Ya tengo una cuenta, iniciar sesión�No pude encontrar un tema de WordPress adecuado para %s�Encontré un mejor complemento�Tengo un problema con el uso de este complemento�Tengo un problema con mi tienda de %s�Utilizo este tema de WordPress: %s�Icono�Icono y total de artículos�Icono, etiqueta y total de artículos�Icono, etiqueta, total de artículos y subtotal�Icono, etiqueta, total de artículos, subtotal y enlace�Si tiene un momento, háganos saber por qué está desactivando:�Imagen y título al pasar el ratón por encima�Canal de imagen�Diseño de la galería de imágenes�Solo imagen�Importar�Importe sus productos de Woocommerce a %s�Importación completada�Importación completada. <a href="%s">Ejecútela de nuevo.</a>�La importación crea nuevos productos y actualiza los productos existentes con las REF correspondientes.�La importación está en progreso�Importar mis productos de WooCommerce�Importar el catálogo de productos de WooCommerce�Importar el catálogo de productos de otras fuentes�Importe los productos a su tienda de %s�Resumen de la importación�Importe su catálogo de WooCommerce a %s�Importe sus productos de WooCommerce a %s�Importe sus productos de Woocommerce a %s�<b>%s</b> productos importados�Importando %s de %s artículos�Insertar�Insertar en la página�Sitio web instantáneo�Integración con la búsqueda en su sitio web�¿Es posible mostrar mi tienda en la página de inicio del sitio web?�¿Existe algún tema de WordPress para Ecwid?�Es una desactivación temporal. No preguntarme de nuevo.�Solo el total de artículos�Justificado�Base de conocimiento�G�Etiqueta y y total de artículos�Horizontal 3:2�Horizontal 4:3�Última página�Última actualización�Últimos productos�Diseño�Diseño:�Más información�Izquierda�Cian verde claro�Color del enlace�Producto vinculado�Lista�Vista de lista�Parece que su sitio web no admite solicitudes POST remotas, las cuales son necesarias para que la API de %s funcione. Comuníquese con su proveedor de alojamiento web para habilitar cURL.�Ámbar vívido y brillante�Naranja vívido y brillante�M�Haga que su tienda sea accesible desde el menú del sitio web para que sus clientes puedan encontrarla fácilmente.�Gestionar la barra lateral�Gestione la tienda desde iPhone, iPad o Android�Gestione productos, supervise las ventas y ajuste la configuración: <nobr>todo sin</nobr> salir de esta página.�Gestionar la tienda�Gestionar escaparate virtual�Mercadotecnia�Móvil�Mi cuenta�Mi perfil�Mis ventas�Nombre�Navegación�¿Necesita ayuda para importar sus productos de WooCommerce a %s?�Nunca mostrar este mensaje otra vez�Página siguiente�Página siguiente�No, gracias�Sin borde�No se ha sincronizado todavía�Nota: cuando está habilitado, el «widget» del carrito siempre se mostrará en la vista previa para que sea más fácil personalizarlo. Las opciones «Mostrar en las páginas de la tienda» y «Mostrar cuando esté vacío» se aplicarán al «widget» del carrito en el sitio cuando se publiquen�No se ha encontrado nada en relación con <span class="empty-page__term">«{{ data.term }}»</span>�Número de categorías por fila�Número de productos por página�Número de productos para mostrar�A la izquierda�A la derecha�Tienda en línea�Aplicaciones de la tienda en línea�Tienda en línea�Abrir el panel de control�Abrir el panel de la tienda�Opciones�Pedidos�Otro�Nuestros 4 tipos de cuentas varían según la cantidad de productos, los tipos de funcionalidades y el nivel de asistencia. Para obtener más información, consulte nuestra <a target="_blank" href="%s">página de precios.</a><br /><br />Consejo profesional: también puede ahorrar dinero si se suscribe a nuestros planes anuales.�Nuestro equipo ya está trabajando en este asunto. Actualice la página en unos minutos. Si el problema persiste, comuníquese con <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">nuestro equipo de atención al cliente</a>.�Ya existe una página con ese nombre.�Azul cian pálido�Rosa pálido�Parte de los productos no se han copiado a %1$s porque alcanzó el límite de productos en su plan de precios en %1$s. Si desea importar más productos, considere <nobr><a %2$s>actualizar su plan de %1$s.</a></nobr>�Pago�Personalice la apariencia de su escaparate virtual y edite el contenido en la página de la tienda para reflejar su marca y mantenerse conectado con sus clientes.�Elegir una categoría�Elegir un producto�Imagen�Píldora�Tenga en cuenta el número máximo de productos y categorías que puede tener en su tienda de Ecwid. Esta herramienta de importación se detendrá automáticamente cuando se alcance el límite de productos de la tienda. Para conocer el límite actual de la tienda o aumentarlo, consulte la página <nobr><a %s target="_blank">«Facturación y planes»</a></nobr> ubicada en el panel de su tienda de Ecwid.�Suscríbase a un plan de pago para obtener esta función.�Complementos para Ecwid�Vertical 2:3�Vertical 3:4�Posición�Vista previa�Página anterior�Precio�Color del precio�Producto�Ficha de producto ampliada�Ficha de producto reducida�Apariencia de la lista de productos�Apariencia de la página del producto�REF del producto�Búsqueda de productos�Cuadro de búsqueda de productos�Búsqueda de productos y filtros�El texto de la ficha del producto se alinea�El catálogo de productos se mostrará automáticamente�Diseño de la página de productos�Precio del producto�Cantidad de productos�Contenido de la barra lateral de productos�Relación de aspecto de la miniatura del producto�Tamaño de la miniatura del producto�Título del producto�Productos�Los productos se sincronizaron satisfactoriamente. Las páginas de productos están actualizadas.�Productos eliminados sincronizados: %1$s de %2$s�Promocione su tienda�Otorgar acceso.�Proporcionado por <a %s>%s</a>�Publicar�Publicar la página de la tienda�Publique la página para poder utilizar esta opción�Publicada�Cantidad�¿Tiene alguna pregunta?�Producto aleatorio�Productos aleatorios�Tasa de %s en WordPress.org�Vuélvase a conectar para activar el panel de control�Productos vistos recientemente�Recomendaciones para su tienda en línea�Rectángulo�Actualizar la lista de categorías�Registrarse en %s�Informar un problema con la tienda�Informes�Derecha�P�REF�Ventas�Canales de venta�Guardar�Guarde y conecte su tienda de %s al sitio web�Guardar cambios�Buscar�Búsqueda y filtros�Buscar productos�Buscar en la base de conocimientos�Ver más�Seleccionar todo�Seleccionar categoría�Producto seleccionado�Categoría seleccionada�Vender en Facebook�Enviar mensaje�Envíe un mensaje a nuestro equipo de asistencia�Ocurrió un error al enviar el mensaje�Configure su tienda�Configurar manualmente�Configure su tienda�Configuraciones�Configuración�Envío y recogida�Tienda�Carrito de compras�Carrito de compras (descontinuado)�Carrito de compras flotante (descontinuado)�Icono del carrito de compras�Carrito de compras en miniatura (descontinuado)�«Widget» del carrito de compras�Mostrar�Mostrar imagen adicional al pasar el ratón�Mostrar categorías�Muéstreles a los clientes que pueden utilizar la búsqueda y los filtros para encontrar los productos que deseen de forma más rápida.�Mostrar descripción debajo de la imagen�Mostrar minicarrito�Mostrar en todas las páginas�Mostrar al pasar el ratón�Mostrar en las páginas de la tienda�Mostrar el precio dentro del botón de «Comprar ahora»�Mostrar el precio dentro del botón de «Comprar ahora»�Mostrar el borde de la ficha del producto�Mostrar miniaturas de los productos�Mostrar búsqueda�Mostrar cuando esté vacío�Muestre su tienda en la página de inicio�El inicio de sesión único les permite a sus clientes tener un inicio de sesión único para su sitio web de WordPress y su %s. Cuando alguien inicie sesión en su sitio web, también iniciará sesión automáticamente en su cuenta de cliente en la tienda sin necesidad de introducir su correo electrónico y contraseña nuevamente.�Icono pequeño�Icono pequeño y total de artículos�Algunos de los artículos no se pudieron importar.�Le pido disculpas por las dificultades técnicas que estamos experimentando.�Lo siento, hay un problema. Se supone que esta página muestra el panel de control de su tienda; sin embargo, este sitio web de Wordpress no parece poder conectarse al servidor de Ecwid para mostrar el panel de su tienda aquí. Es probable que esto se deba a una mala configuración del servidor; su proveedor de alojamiento web puede solucionarlo. Aquí hay una descripción más técnica del problema, la cual puede enviarle a su proveedor de alojamiento web: «La función de Wordpress wp_remote_post() no pudo conectarse a un servidor remoto debido al error: “%s”; parece que las solicitudes HTTP POST están inhabilitadas en este servidor». <br /><br />No dude en ponerse en contacto con nosotros en <a %s>wordpress@ecwid.com</a> y le ayudaremos a comunicarse con su proveedor de alojamiento web para pedirle que solucione el problema. <br /><br /> Mientras tanto, para gestionar su tienda, puede utilizar el panel de control web de Ecwid en <a %s>my.ecwid.com</a>. Su escaparate virtual está funcionando bien; puede echarle un vistazo aquí: <a %s>%s</a>.�Cuadrado 1:1�Iniciar la importación�Estado�Manténgase conectado con sus clientes. Actualice el contenido de su tienda en cualquier momento para informarles a los clientes sobre las promociones actuales y las novedades de su tienda.�¿Todavía tiene preguntas acerca de Ecwid? ¡Háganoslo saber!�Tienda�Categorías de la tienda�Menú de categorías de la tienda�Página de categorías de la tienda�Página del escaparate virtual�Página de inicio de la tienda�ID de la tienda�El ID de la tienda es un identificador único de cualquier tienda de %1$s, el cual consta de varios dígitos. Puede encontrarlo en la página «Panel» del panel de control de %1$s. El ID de la tienda se enviará en el correo electrónico de bienvenida después del registro.�El ID de la tienda es un identificador único de su cuenta de %1$s. Puede encontrarlo en su panel de control de %1$s en la <a %2$s>página del panel</a>.�Título del enlace de la tienda�Navegación en la tienda�Página de la tienda�Enlace a la página de la tienda�Categorías raíz de la tienda�Apariencia de la tienda�Elementos de la tienda�Gestión de la tienda�Contenido de la página de la tienda�Página de la tienda en su sitio web�Categoría raíz de la tienda�Tienda con menú de categorías�Escaparate virtual�Asunto�Enviar y desactivar�Cambiar al borrador�Sincronizar productos�Tabla�Vista de tabla�Siga unos sencillos pasos para completar la configuración de la tienda�Aproveche las increíbles aplicaciones y extensiones diseñadas para mejorar su tienda.�Texto�Color del texto�Gracias por elegir %s para construir su tienda en línea�El bloque está oculto porque no tiene categorías en su tienda. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Añadir categorías.</a>�La categoría que se muestra de forma predeterminada en la página del escaparate virtual�El primer paso para abrir su negocio en línea: <br />añadamos una tienda a su sitio web de WordPress en <strong>3</strong> simples pasos.�El complemento no es compatible con la función que quiero�El icono del carrito de compras muestra la cantidad de artículos en el carrito y ayuda a los clientes a realizar el pago. Además, puede <a href="%s" target="_blank">ajustar la apariencia del icono del carrito</a>.�La tienda no es visible en su sitio web�Las categorías de alto nivel de la tienda se añaden automáticamente a este menú desplegable�Temas para Ecwid�Esta importación copiará sus productos y categorías de WooCommerce a su tienda de %s.�Esto es una tienda de demostración. Cree su tienda para ver los productos de su tienda aquí.�Esto cambiará la etiqueta del módulo en el creador para una fácil identificación.�Título�Título en la imagen�Solo título�Título o REF�Título debajo de la imagen�Título:�Para añadir funciones adicionales a su tienda, arrastre y suelte los elementos de la tienda de %s en su sitio web. Una vez que haya terminado, puede volver a modificar su configuración.�Para añadir su tienda a su sitio web, introduzca el ID de su tienda de %1$s en el campo a continuación. Si aún no tiene una cuenta de %1$s, cree una gratis en el <a %2$s>sitio web de %1$s</a>.�Para permitir que %s inicie la sesión de sus clientes automáticamente en su tienda, otorgue los permisos para utilizar los datos del cliente en la tienda. <a %s>Utilice este enlace para hacerlo</a>�A fin de poder elegir un producto para insertarlo en sus publicaciones y páginas, deberá volver a conectar su sitio a su tienda de %s. Esto solo requerirá que acepte la solicitud de permisos para que el complemento pueda listar sus productos en el cuadro de diálogo «Añadir producto».�Para crear un «Mapa del sitio» para su sitio web de Wordpress, le sugerimos que utilice los  complementos <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> o <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>. Estos complementos son totalmente compatibles con Ecwid y permiten generar un mapa del sitio que contiene enlaces a categorías y páginas de productos, por lo que las páginas de la tienda se indexarán más rápido. Tenga en cuenta que esta opción solo está disponible para los <a target="_blank" href="https://www.ecwid.com/pricing">usuarios de pago de Ecwid</a>.�Para mostrar su tienda en este sitio web, debe permitir que WordPress acceda a sus productos de %1$s. Pulse «Conectar» para otorgar el permiso.�Para habilitar esta función, el complemento necesita un permiso para leer la información del producto de su tienda.�Para mostrar un solo producto en una página aparte o en una entrada de blog de su sitio web, utilice el código corto <b>[ecwid_product]</b>. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">Cómo utilizarlo</a>�Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para mejorar la apariencia de su tienda y poder gestionar la apariencia de su escaparate virtual desde aquí, habilite la opción «Apariencia de próxima generación de la lista de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para asegurarse de que su cliente puede acceder realmente a su sitio web y a la tienda, habilite el registro en las <a %s>configuraciones del sitio web</a>�Para gestionar su tienda, vaya a la <a %s>página del «Panel de su tienda»</a>�Para vender utilizando %1$s, debe permitir que WordPress acceda al complemento %1$s. El botón «Conectar» lo redirigirá a su cuenta de %1$s donde puede otorgar el permiso.�Para mostrar su escaparate virtual en lugar de la tienda de demostración, conecte su cuenta de %s existente o cree una nueva.�Para comenzar a vender, añada una página a su sitio web donde se muestre el escaparate virtual.�Arriba a la izquierda�Arriba a la derecha�Intente otra búsqueda.�Escriba su mensaje aquí�«Slug» de la dirección URL�Actualizar�Actualice su catálogo�Actualice para obtener esta función�Sangría vertical�Miniaturas verticales�Gris oscuro�Gris claro�Ver la página de la tienda�Ver la página de la tienda de demostración�Ver la página de la tienda�Visitar escaparate virtual�Azul cian vívido�Cian verde vívido�Rojo vívido�¿Desea conectar otra tienda de %s?�Advertencia: algunas de las funciones de su tienda en línea están inhabilitadas. Póngase en contacto con su proveedor de alojamiento web para resolverlo.�Notamos que tiene un WooCommerce instalado. Su tienda de WooCommerce tiene %1$s productos y %2$s categorías; ¿le gustaría importarlos a %3$s?�Notamos que tiene WooCommerce instalado. Si desea copiar fácilmente sus productos de WooCommerce a %s, esta herramienta le ayudará.�Estamos sincronizando sus productos. Esto puede tardar unos minutos. No actualice la página.�Sitio web�¿Qué función necesita?�¿Qué fue lo que pasó?�¿Qué sigue?�Mientras su tienda aún no esté conectada, se mostrará una tienda de demostración en su sitio web. Échele un vistazo para tener una idea de cómo se verá su tienda en el sitio web.�Precios al por mayor�Puede añadir un cuadro de búsqueda de productos, un «widget» de carrito y más desde la <a href="%s">«Página de apariencia y widgets»</a> que se encuentra aquí en el administrador de su sitio web. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">Más detalles.</a>�Puede añadir todo el escaparate virtual, las categorías, los productos o los botones de «Comprar ahora» a otras páginas de su sitio web. Para ello, abra una página en el editor y añada un bloque %s apropiado.�Puede añadir el menú de categorías de la tienda al menú de su sitio web para ayudar a sus clientes a navegar fácilmente por su sitio web. Simplemente abra «Apariencia > Menús» en el panel de WordPress y añada el elemento «Tienda con menú de categorías» al menú de su sitio web. Aparecerá automáticamente un menú desplegable que contendrá las categorías de su tienda en su sitio web.�Puede añadir su tienda en línea a su página empresarial de Facebook (no se necesitan complementos). Ecwid sincronizará automáticamente los productos, clientes, pedidos e inventario entre su tienda en línea de WordPress y Facebook. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">Más detalles.</a>�Puede gestionar la apariencia de su tienda en la <a %s>página de «Configuración del diseño»</a> ubicada en el panel de control de su tienda.�Puede mostrar su tienda en la página principal del sitio web. Ajuste la configuración de «Lectura» de su sitio web como se describe en nuestro <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">centro de asistencia.</a>�Puede habilitar un «widget» adicional del icono de la bolsa de compras que aparecerá en las páginas de su sitio web. Abra el menú «<a href="%1$s">Apariencia → Personalizar → %2$s</a>» para habilitarlo.�Puede habilitar los filtros en la configuración de la tienda: («<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Configuración → Filtros para los productos</a>»).�Puede enviar una nueva solicitud aquí.�Aún no ha visto ningún producto. Abra la tienda.�También podrá registrarse a través de sus perfiles existentes de Google, Facebook o PayPal.�Su tienda de %s tiene �Su tienda de %s está conectada<br /> a su sitio web de WordPress�Su tienda de %s ahora está conectada<br /> a su sitio web de WordPress�Su escaparate virtual�Su tienda de WooCommerce tiene �Se ha enviado su correo electrónico�Su producto�Panel de control de su tienda. Aquí mismo en WordPress.�Se ha creado su tienda. Preparando el panel de su tienda...�Su tienda se añade a varias páginas del sitio web. Elija la página principal. Los clientes son redirigidos a la página principal de la tienda cuando hacen clic en el icono del carrito, en los enlaces de la tienda ubicados en el menú del sitio web o en los productos que se encuentran en la barra lateral.�¡Su tienda ya está casi lista!�Su tienda no se añade a ninguna página de su sitio web. Para que los clientes puedan navegar por su tienda y realizar pedidos, cree una página donde se mostrará la tienda.�La página de su tienda�La página de su tienda está actualmente en un borrador. Una vez que esté lista, publíquela para que los clientes puedan visitar la tienda y realizar pedidos.�La página de su tienda está publicada. Los clientes pueden visitar su tienda en �Su tienda se mostrará aquí�¡Su tienda se mostrará aquí!�Su escaparate virtual (listado de productos y página de pago) está funcionando bien, pero las funciones avanzadas de la tienda, como el SEO y los «widgets» de la barra lateral, están inhabilitadas. Para habilitarlas y asegurarse de que su tienda funcione correctamente, pulse el botón de abajo para conectar su cuenta de %s. Esto tomará menos de un minuto; solo se le pedirá que inicie sesión en su cuenta y permita que este sitio web obtenga los datos de su tienda.�[%s] Comentarios sobre la desactivación del complemento de WordPress (ID de la tienda: %s)�personalizar apariencia�Contenido�Tienda�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�o <a %s>consulte el centro de asistencia�REF del producto�Precio del producto�seleccionar producto�producto seleccionado�Tienda en línea�Botón de «Comprar ahora»���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/languages/ecwid-shopping-cart-es_GT.po������������������������������������������0000644�����������������00000326062�15122273603�0017601 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Translation of Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) in German # This file is distributed under the same license as the Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) package. msgid "" msgstr "" "PO-Revision-Date: 2020-10-12 12:46\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: GlotPress/3.0.0-alpha.2\n" "Language: es\n" "Project-Id-Version: temporary-strings\n" "X-Crowdin-Project: temporary-strings\n" "X-Crowdin-Project-ID: 295314\n" "X-Crowdin-Language: es-ES\n" "X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po\n" "X-Crowdin-File-ID: 988\n" "Language-Team: Spanish\n" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:92 msgid "You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel." msgstr "Puede gestionar la apariencia de su tienda en la <a %s>página de «Configuración del diseño»</a> ubicada en el panel de control de su tienda." #: includes/integrations/elementor/class-ec-elementor-widget-store.php:55 msgid "To manage your store, go to <a %s>the Store Dashboard page</a>" msgstr "Para gestionar su tienda, vaya a la <a %s>página del «Panel de su tienda»</a>" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:39 msgid "The category that is shown by default on the Store Front Page" msgstr "La categoría que se muestra de forma predeterminada en la página del escaparate virtual" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:38 msgid "Default category" msgstr "Categoría predeterminada" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:29 msgid "Online Store" msgstr "Tienda en línea" #: includes/class-ecwid-stub-renderer.php:38 msgid "Buy Now" msgstr "Comprar ahora" #: templates/admin/welcome-terms-privacy.php:5 msgid "By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>." msgstr "Al continuar, acepta los <a %s>Términos de servicio</a> y la <a %s>Política de privacidad</a>." #: js/gutenberg/blocks.build.js:1 msgid "Display shopping cart and checkout page" msgstr "Mostrar el carrito de compras y la página de pago" #: js/gutenberg/blocks.build.js:1 msgid "Cart and Checkout" msgstr "Carrito y pago" #: js/gutenberg/blocks.build.js:1 msgid "Filters" msgstr "Filtros" #: js/gutenberg/blocks.build.js:1 msgid "You can enable filters in the store settings: (“<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Settings → Product Filters</a>”)." msgstr "Puede habilitar los filtros en la configuración de la tienda: («<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Configuración → Filtros para los productos</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Search and Filters" msgstr "Búsqueda y filtros" #: js/gutenberg/blocks.build.js:1 msgid "Display search page with filters on a side" msgstr "Mostrar página de búsqueda con los filtros a un lado" #: js/gutenberg/blocks.build.js:1 msgid "Product Search and filters" msgstr "Búsqueda de productos y filtros" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Display product page with description and a buy button" msgstr "Mostrar la página de productos con la descripción y un botón de compra" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Large" msgstr "Ficha de producto ampliada" #: js/gutenberg/blocks.build.js:1 msgid "Selected category" msgstr "Categoría seleccionada" #: js/gutenberg/blocks.build.js:1 msgid "Select category" msgstr "Seleccionar categoría" #: js/gutenberg/blocks.build.js:1 msgid "Add categories" msgstr "Añadir categorías" #: js/gutenberg/blocks.build.js:1 msgid "Display category page" msgstr "Mostrar la página de categorías" #: js/gutenberg/blocks.build.js:1 msgid "Store Category Page" msgstr "Página de categorías de la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Display shopping bag link and summary" msgstr "Mostrar enlace y resumen de la bolsa de compras" #: js/gutenberg/blocks.build.js:1 msgid "Shopping Cart Icon" msgstr "Icono del carrito de compras" #: js/gutenberg/blocks.build.js:1 msgid "The block is hidden because you don't have categories in your store. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Add categories.</a>" msgstr "El bloque está oculto porque no tiene categorías en su tienda. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Añadir categorías.</a>" #: js/gutenberg/blocks.build.js:1 msgid "Categories" msgstr "Categorías" #: js/gutenberg/blocks.build.js:1 msgid "Display categories navigation bar" msgstr "Mostrar la barra de navegación de las categorías" #: js/gutenberg/blocks.build.js:1 msgid "Store Categories Menu" msgstr "Menú de categorías de la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Product Search Box" msgstr "Cuadro de búsqueda de productos" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:25 #: js/gutenberg/blocks.build.js:1 msgid "Linked product" msgstr "Producto vinculado" #: js/gutenberg/blocks.build.js:1 msgid "Display a buy button" msgstr "Mostrar un botón de compra" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:10 #: js/gutenberg/blocks.build.js:1 msgid "Buy Now Button" msgstr "Botón «Comprar ahora»" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:52 #: js/gutenberg/blocks.build.js:1 msgid "Show price inside the «Buy now» button" msgstr "Mostrar el precio dentro del botón de «Comprar ahora»" #: js/gutenberg/blocks.build.js:1 msgctxt "gutenberg-product-block" msgid "Content" msgstr "Contenido" #: js/gutenberg/blocks.build.js:1 msgid "Change" msgstr "Cambiar" #: js/gutenberg/blocks.build.js:1 msgid "Displayed product" msgstr "Producto mostrado" #: js/gutenberg/blocks.build.js:1 msgid "Display product with a buy button" msgstr "Mostrar el producto con un botón de compra" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Small" msgstr "Ficha de producto reducida" #: js/gutenberg/blocks.build.js:1 msgid "Very dark gray" msgstr "Gris oscuro" #: js/gutenberg/blocks.build.js:1 msgid "Cyan bluish gray" msgstr "Gris cian azulado" #: js/gutenberg/blocks.build.js:1 msgid "Very light gray" msgstr "Gris claro" #: js/gutenberg/blocks.build.js:1 msgid "Vivid cyan blue" msgstr "Azul cian vívido" #: js/gutenberg/blocks.build.js:1 msgid "Pale cyan blue" msgstr "Azul cian pálido" #: js/gutenberg/blocks.build.js:1 msgid "Vivid green cyan" msgstr "Cian verde vívido" #: js/gutenberg/blocks.build.js:1 msgid "Light green cyan" msgstr "Cian verde claro" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid amber" msgstr "Ámbar vívido y brillante" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid orange" msgstr "Naranja vívido y brillante" #: js/gutenberg/blocks.build.js:1 msgid "Vivid red" msgstr "Rojo vívido" #: js/gutenberg/blocks.build.js:1 msgid "Pale pink" msgstr "Rosa pálido" #: js/gutenberg/blocks.build.js:1 msgid "Set manually" msgstr "Configurar manualmente" #: js/gutenberg/blocks.build.js:1 msgid "Detect automatically" msgstr "Detectar automáticamente" #: js/gutenberg/blocks.build.js:1 msgid "Color settings" msgstr "Configuración de colores" #: js/gutenberg/blocks.build.js:1 msgid "Store Navigation" msgstr "Navegación en la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Store Front Page" msgstr "Página del escaparate virtual" #: js/gutenberg/blocks.build.js:1 msgid "Product sidebar content" msgstr "Contenido de la barra lateral de productos" #: js/gutenberg/blocks.build.js:1 msgid "Product Page Appearance" msgstr "Apariencia de la página del producto" #: js/gutenberg/blocks.build.js:1 msgid "Product List Appearance" msgstr "Apariencia de la lista de productos" #: js/gutenberg/blocks.build.js:1 msgid "Category List Appearance" msgstr "Apariencia de la lista de categorías" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Display cart icon" msgstr "Mostrar icono del carrito" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Para mejorar la apariencia de su tienda y poder gestionar la apariencia de su escaparate virtual desde aquí, habilite la opción «Apariencia de próxima generación de la lista de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Add storefront (product listing)" msgstr "Añadir escaparate virtual (listado de productos)" #: templates/admin/storefront/main.php:21 msgid "Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers." msgstr "Los clientes no pueden ver la página de su tienda porque está en un borrador. Publique la página para que esté disponible para sus clientes." #: templates/admin/storefront/main.php:20 msgid "The store is not visible on your site" msgstr "La tienda no es visible en su sitio web" #: templates/admin/storefront/main.php:4 msgid "Your Storefront" msgstr "Su escaparate virtual" #: templates/admin/storefront/area-promo.php:30 msgid "Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars." msgstr "Ayude a los clientes a encontrar su tienda en el sitio web. Añada el enlace de la tienda al menú del sitio web, cree páginas adicionales de la tienda y resalte los productos de la tienda en otras páginas del sitio web y en las barras laterales." #: templates/admin/storefront/area-promo.php:29 msgid "Promote your store" msgstr "Promocione su tienda" #: templates/admin/storefront/area-promo.php:26 msgid "Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store." msgstr "Manténgase conectado con sus clientes. Actualice el contenido de su tienda en cualquier momento para informarles a los clientes sobre las promociones actuales y las novedades de su tienda." #: templates/admin/storefront/area-promo.php:25 msgid "Change store content" msgstr "Cambiar el contenido de la tienda" #: templates/admin/storefront/area-promo.php:22 msgid "Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand." msgstr "Personalice la apariencia de su tienda para que se ajuste a las necesidades de su negocio. Cree la apariencia para su tienda que más se parezca a su marca." #: templates/admin/storefront/area-promo.php:21 msgid "Customize store appearance" msgstr "Personalizar la apariencia de la tienda" #: templates/admin/storefront/area-promo.php:7 msgid "Add your %s store to the website and start selling in minutes." msgstr "Añada su tienda de %s al sitio web y comience a vender en minutos." #: templates/admin/storefront/area-promo.php:3 msgid "What's next?" msgstr "¿Qué sigue?" #: templates/admin/storefront/area-additional.php:224 msgid "Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar." msgstr "Su tienda se añade a varias páginas del sitio web. Elija la página principal. Los clientes son redirigidos a la página principal de la tienda cuando hacen clic en el icono del carrito, en los enlaces de la tienda ubicados en el menú del sitio web o en los productos que se encuentran en la barra lateral." #: templates/admin/storefront/area-additional.php:222 msgid "Choose the main store page" msgstr "Elegir la página principal de la tienda" #: templates/admin/storefront/area-additional.php:200 msgid "Go to Pages" msgstr "Ir a «Páginas»" #: templates/admin/storefront/area-additional.php:193 msgid "You can add the entire storefront, categories, products, or \"Buy now\" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block." msgstr "Puede añadir todo el escaparate virtual, las categorías, los productos o los botones de «Comprar ahora» a otras páginas de su sitio web. Para ello, abra una página en el editor y añada un bloque %s apropiado." #: templates/admin/storefront/area-additional.php:189 msgid "Add your store to other site pages" msgstr "Añada su tienda a otras páginas del sitio web" #: templates/admin/storefront/area-additional.php:166 msgid "Create Product Page" msgstr "Crear página de productos" #: templates/admin/storefront/area-additional.php:150 msgid "Pick Product" msgstr "Elegir un producto" #: templates/admin/storefront/area-additional.php:136 #: templates/admin/storefront/area-additional.php:138 msgid "Create a landing page featuring one of your products." msgstr "Cree una página de aterrizaje con uno de sus productos." #: templates/admin/storefront/area-additional.php:132 msgid "Add a product page" msgstr "Añadir página de productos" #: templates/admin/storefront/area-additional.php:109 msgid "Create Category Page" msgstr "Crear página de categorías" #: templates/admin/storefront/area-additional.php:93 msgid "Pick Category" msgstr "Elegir una categoría" #: templates/admin/storefront/area-additional.php:79 #: templates/admin/storefront/area-additional.php:81 msgid "Feature a specific store category on a separate page of your site." msgstr "Destacar una categoría de la tienda específica en una página separada de su sitio web." #: templates/admin/storefront/area-additional.php:75 msgid "Add a category page" msgstr "Añadir una página de categoría" #: templates/admin/storefront/area-additional.php:54 msgid "Create Search Page" msgstr "Crear página de búsqueda" #: templates/admin/storefront/area-additional.php:50 msgid "Show customers that they can use a search and filters to find desired products faster." msgstr "Muéstreles a los clientes que pueden utilizar la búsqueda y los filtros para encontrar los productos que deseen de forma más rápida." #: templates/admin/storefront/area-additional.php:48 msgid "Add a search and filters page" msgstr "Añadir una página de búsqueda y filtros" #: templates/admin/storefront/area-additional.php:27 msgid "Create Cart Page" msgstr "Crear página del carrito" #: templates/admin/storefront/area-additional.php:23 msgid "Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout." msgstr "Los clientes van a la página del carrito para consultar los productos que han añadido al mismo y proceder con el pago." #: templates/admin/storefront/area-additional.php:21 msgid "Add cart and checkout page" msgstr "Añadir carrito y página de pago" #: templates/admin/storefront/area-additional.php:4 msgid "Highlight products, categories, and other store pages by adding them to separate website pages." msgstr "Destaque productos, categorías y otras páginas de la tienda añadiéndolas a páginas del sitio web separadas." #: templates/admin/storefront/area-additional.php:3 msgid "Additional store pages" msgstr "Páginas adicionales de la tienda" #: templates/admin/storefront/draft-message.php:2 msgid "Publish the page to use this option" msgstr "Publique la página para poder utilizar esta opción" #: templates/admin/storefront/area-design.php:55 msgid "Along with the store catalog, you can add other widgets and texts to the store page." msgstr "Junto con el catálogo de la tienda, puede añadir otros «widgets» y textos a la página de la tienda." #: templates/admin/storefront/area-design.php:54 msgid "Store page content" msgstr "Contenido de la página de la tienda" #: templates/admin/storefront/area-design.php:25 #: templates/admin/storefront/area-design.php:27 msgid "Adjust your store design to fit your business needs." msgstr "Ajuste el diseño de su tienda para que se adapte a las necesidades de su negocio." #: templates/admin/storefront/area-design.php:21 msgid "Store appearance" msgstr "Apariencia de la tienda" #: templates/admin/storefront/area-design.php:4 msgid "Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers." msgstr "Personalice la apariencia de su escaparate virtual y edite el contenido en la página de la tienda para reflejar su marca y mantenerse conectado con sus clientes." #: templates/admin/storefront/area-design.php:3 msgid "Design and content" msgstr "Diseño y contenido" #: templates/admin/storefront/area-status.php:124 msgid "Create Store Page" msgstr "Crear la página de la tienda" #: templates/admin/storefront/area-status.php:121 msgid "Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display." msgstr "Su tienda no se añade a ninguna página de su sitio web. Para que los clientes puedan navegar por su tienda y realizar pedidos, cree una página donde se mostrará la tienda." #: templates/admin/storefront/area-status.php:115 msgid "Set Up Your Store" msgstr "Configure su tienda" #: templates/admin/storefront/area-status.php:109 msgid "To show your storefront instead of the demo store, connect your existing %s account or create a new one." msgstr "Para mostrar su escaparate virtual en lugar de la tienda de demostración, conecte su cuenta de %s existente o cree una nueva." #: templates/admin/storefront/area-status.php:101 msgid "Publish Store Page" msgstr "Publicar la página de la tienda" #: templates/admin/storefront/area-status.php:98 msgid "Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders." msgstr "La página de su tienda está actualmente en un borrador. Una vez que esté lista, publíquela para que los clientes puedan visitar la tienda y realizar pedidos." #: templates/admin/storefront/area-status.php:92 msgid "View Store Page" msgstr "Ver la página de la tienda" #: templates/admin/storefront/area-status.php:86 msgid "Your store page is published. Customers can browse your store at " msgstr "La página de su tienda está publicada. Los clientes pueden visitar su tienda en " #: templates/admin/storefront/area-status.php:77 msgid "View demo store page" msgstr "Ver la página de la tienda de demostración" #: templates/admin/storefront/area-status.php:46 msgid "Draft" msgstr "Borrador" #: templates/admin/storefront/area-status.php:45 msgid "Published" msgstr "Publicada" #: templates/admin/storefront/area-status.php:33 #: templates/admin/storefront/area-status.php:36 msgid "Status" msgstr "Estado" #: templates/admin/storefront/area-status.php:29 msgid "Add a store page" msgstr "Añadir una página de tienda" #: templates/admin/storefront/area-status.php:24 msgid "Connect your %s store" msgstr "Conecte su tienda de %s" #: templates/admin/storefront/area-status.php:21 msgid "Your store page" msgstr "La página de su tienda" #: templates/admin/storefront/area-status.php:10 msgid "To start selling, add a page to your site where the storefront will display." msgstr "Para comenzar a vender, añada una página a su sitio web donde se muestre el escaparate virtual." #: templates/admin/storefront/area-status.php:7 msgid "While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site." msgstr "Mientras su tienda aún no esté conectada, se mostrará una tienda de demostración en su sitio web. Échele un vistazo para tener una idea de cómo se verá su tienda en el sitio web." #: templates/admin/storefront/area-status.php:4 msgid "Store page on your site" msgstr "Página de la tienda en su sitio web" #: templates/admin/storefront/area-navigation.php:205 msgid "The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href=\"%s\" target=\"_blank\">adjust the cart icon appearance</a>." msgstr "El icono del carrito de compras muestra la cantidad de artículos en el carrito y ayuda a los clientes a realizar el pago. Además, puede <a href=\"%s\" target=\"_blank\">ajustar la apariencia del icono del carrito</a>." #: templates/admin/storefront/area-navigation.php:201 msgid "Display the shopping cart icon on site pages" msgstr "Muestre el icono del carrito de compras en las páginas del sitio web" #: templates/admin/storefront/area-navigation.php:179 msgid "Manage Sidebar" msgstr "Gestionar la barra lateral" #: templates/admin/storefront/area-navigation.php:175 msgid "Highlight your best sellers or new products in the website sidebar." msgstr "Destaque sus mejores ventas o nuevos productos en la barra lateral del sitio web." #: templates/admin/storefront/area-navigation.php:173 msgid "Feature your products in the sidebar" msgstr "Destaque sus productos en la barra lateral" #: templates/admin/storefront/area-navigation.php:151 msgid "Add Store Page to Menu" msgstr "Añadir la página de la tienda al menú" #: templates/admin/storefront/area-navigation.php:147 msgid "Make your store accessible from the site menu so your customers can easily find it." msgstr "Haga que su tienda sea accesible desde el menú del sitio web para que sus clientes puedan encontrarla fácilmente." #: templates/admin/storefront/area-navigation.php:141 msgid "Add store page to the site menu" msgstr "Añadir la página de la tienda al menú del sitio web" #: templates/admin/storefront/area-navigation.php:118 msgid "Edit URL Slug" msgstr "Editar «slug» de la dirección URL" #: templates/admin/storefront/area-navigation.php:102 msgid "Current URL slug: /<span data-ec-store-slug>%s</span>" msgstr "«Slug» actual de la dirección URL: /<span data-ec-store-slug>%s</span>" #: templates/admin/storefront/area-navigation.php:78 msgid "Save" msgstr "Guardar" #: templates/admin/storefront/area-navigation.php:69 msgid "URL Slug" msgstr "«Slug» de la dirección URL" #: templates/admin/storefront/area-navigation.php:60 #: templates/admin/storefront/area-navigation.php:113 msgid "A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use \"/shop\" or \"/products\"." msgstr "Un «slug» es la última parte de una URL. Puede crear un «slug» personalizado para la página de su tienda. Es mejor que sea corto, ya que los clientes y los motores de búsqueda prefieren las URL cortas. Por ejemplo, utilice «/tienda» o «/productos»." #: templates/admin/storefront/area-navigation.php:56 #: templates/admin/storefront/area-navigation.php:98 msgid "Customize store page address" msgstr "Personalizar la dirección de la página de la tienda" #: templates/admin/storefront/area-navigation.php:29 msgid "Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href=\"%s\" target=\"_blank\">WordPress Settings > Reading</a>" msgstr "Añada su escaparate virtual a la página de inicio del sitio web para que sea más notable. También puede modificar la configuración de la página de inicio del sitio web en <a href=\"%s\" target=\"_blank\">Configuración de WordPress > Lectura</a>." #: templates/admin/storefront/area-navigation.php:21 msgid "Show your store on the home page" msgstr "Muestre su tienda en la página de inicio" #: templates/admin/storefront/area-navigation.php:4 msgid "Help customers find your store on the website." msgstr "Ayude a los clientes a encontrar su tienda en el sitio web." #: templates/admin/storefront/area-navigation.php:3 msgid "Navigation" msgstr "Navegación" #: templates/admin/welcome-no_oauth.php:12 msgid "Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>." msgstr "El ID de la tienda es un identificador único de su cuenta de %1$s. Puede encontrarlo en su panel de control de %1$s en la <a %2$s>página del panel</a>." #: templates/admin/welcome-create.php:11 msgid "Your store has been created. Preparing your store dashboard ..." msgstr "Se ha creado su tienda. Preparando el panel de su tienda..." #: templates/admin/welcome-connect.php:8 msgid "Create store" msgstr "Crear tienda" #: templates/admin/welcome-connect.php:4 msgid "Connect Your Store" msgstr "Conecte su tienda" #: templates/admin/welcome-page.php:61 msgid "Provided by <a %s>%s</a>" msgstr "Proporcionado por <a %s>%s</a>" #: templates/admin/welcome-page.php:33 msgid "To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>." msgstr "Para añadir su tienda a su sitio web, introduzca el ID de su tienda de %1$s en el campo a continuación. Si aún no tiene una cuenta de %1$s, cree una gratis en el <a %2$s>sitio web de %1$s</a>." #: templates/admin/welcome-page.php:20 msgid "Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website." msgstr "Cree una nueva tienda o, si ya tiene una cuenta de %s, conéctela. El complemento le guiará a través de la configuración de la tienda y le ayudará a publicarla en su sitio web." #: templates/admin/welcome-page.php:12 msgid "Add an Online Store to Your Website" msgstr "Añadir una tienda en línea a su sitio web" #: includes/class-ecwid-store-page.php:566 msgid "This is a demo store. Create your store to see your store products here." msgstr "Esto es una tienda de demostración. Cree su tienda para ver los productos de su tienda aquí." #: includes/class-ecwid-admin-storefront-page.php:539 msgid "Publish" msgstr "Publicar" #: templates/admin/storefront/area-design.php:33 #: templates/admin/storefront/area-design.php:59 #: includes/class-ecwid-admin-storefront-page.php:532 msgid "Edit" msgstr "Editar" #: includes/class-ecwid-admin-storefront-page.php:525 msgid "Preview" msgstr "Vista previa" #: includes/class-ecwid-admin-storefront-page.php:516 msgid "Switch to draft" msgstr "Cambiar al borrador" #: includes/class-ecwid-admin-storefront-page.php:506 msgid "Edit page" msgstr "Editar página" #: includes/class-ecwid-admin-storefront-page.php:499 msgid "View store page" msgstr "Ver la página de la tienda" #: includes/class-ecwid-admin-storefront-page.php:286 msgid "Search products" msgstr "Buscar productos" #: includes/class-ecwid-admin-storefront-page.php:265 msgid "Category" msgstr "Categoría" #: includes/class-ecwid-admin-storefront-page.php:240 msgid "Page with that name already exists." msgstr "Ya existe una página con ese nombre." #: includes/class-ecwid-admin.php:538 msgid "My Profile" msgstr "Mi perfil" #: includes/class-ecwid-admin.php:533 msgid "Apps" msgstr "Aplicaciones" #: includes/class-ecwid-admin.php:523 msgid "Shipping & Pickup" msgstr "Envío y recogida" #: includes/class-ecwid-admin.php:518 msgid "Payment" msgstr "Pago" #: includes/class-ecwid-admin.php:513 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:88 msgid "Design" msgstr "Diseño" #: includes/class-ecwid-admin.php:509 msgid "Configuration" msgstr "Configuración" #: includes/class-ecwid-admin.php:504 msgid "All Sales Channels" msgstr "Todos los canales de venta" #: includes/class-ecwid-admin.php:499 msgid "Website" msgstr "Sitio web" #: includes/class-ecwid-admin.php:494 msgid "Mobile" msgstr "Móvil" #: includes/class-ecwid-admin.php:485 msgid "Sales channels" msgstr "Canales de venta" #: includes/class-ecwid-admin.php:480 msgid "Reports" msgstr "Informes" #: includes/class-ecwid-admin.php:475 msgid "Marketing" msgstr "Mercadotecnia" #: includes/class-ecwid-admin.php:470 msgid "Catalog" msgstr "Catálogo" #: includes/class-ecwid-admin.php:465 msgid "My Sales" msgstr "Mis ventas" #: includes/class-ecwid-admin.php:455 msgid "Store management" msgstr "Gestión de la tienda" #: includes/class-ecwid-admin.php:344 msgid "Instant site" msgstr "Sitio web instantáneo" #: includes/class-ecwid-admin.php:153 includes/class-ecwid-admin.php:154 #: includes/class-ecwid-admin.php:309 msgid "Storefront" msgstr "Escaparate virtual" #: ecwid-shopping-cart.php:1111 msgid "Manage storefront" msgstr "Gestionar escaparate virtual" #: ecwid-shopping-cart.php:1111 msgid "Customize design" msgstr "Personalizar el diseño" #: ecwid-shopping-cart.php:1103 msgid "Manage store" msgstr "Gestionar la tienda" #: templates/importer/woo-main.tpl.php:97 msgid "Start Import" msgstr "Iniciar la importación" #: templates/importer/woo-main.tpl.php:87 msgid "Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target=\"_blank\">\"Billing & Plans\"</a></nobr> page in your Ecwid store control panel." msgstr "Tenga en cuenta el número máximo de productos y categorías que puede tener en su tienda de Ecwid. Esta herramienta de importación se detendrá automáticamente cuando se alcance el límite de productos de la tienda. Para conocer el límite actual de la tienda o aumentarlo, consulte la página <nobr><a %s target=\"_blank\">«Facturación y planes»</a></nobr> ubicada en el panel de su tienda de Ecwid." #: templates/importer/woo-main.tpl.php:82 msgid "Import creates new products and update the existing products with matching SKUs." msgstr "La importación crea nuevos productos y actualiza los productos existentes con las REF correspondientes." #: templates/importer/woo-main.tpl.php:60 msgid "Copying products and categories." msgstr "Copia de productos y categorías." #: templates/importer/woo-main.tpl.php:50 msgid "Import completed. <a href=\"%s\">Run again.</a>" msgstr "Importación completada. <a href=\"%s\">Ejecútela de nuevo.</a>" #: templates/importer/woo-main.tpl.php:34 msgid "Import is in Progress" msgstr "La importación está en progreso" #: templates/importer/woo-main.tpl.php:32 msgid "Import your products from Woocommerce to %s" msgstr "Importe sus productos de Woocommerce a %s" #: templates/importer/woo-main.tpl.php:18 msgid "Update your catalog" msgstr "Actualice su catálogo" #: templates/importer/woo-main.tpl.php:4 msgid "Import Your Products From Woocommerce to %s" msgstr "Importe sus productos de Woocommerce a %s" #: templates/importer/import-no-token.tpl.php:3 msgid "Click the connect button to get rights to update the product catalog" msgstr "Haga clic en el botón «Conectar» para obtener los permisos para actualizar el catálogo de productos" #: templates/importer/woo-complete-alert.tpl.php:52 msgid "Go to Your %s Products" msgstr "Ir a sus productos de %s" #: templates/importer/woo-complete-alert.tpl.php:43 msgid "Download <a href=\"%s\">import log</a>" msgstr "Descargar <a href=\"%s\">registro de importación</a>" #: templates/importer/woo-complete-alert.tpl.php:32 msgid "Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>" msgstr "Parte de los productos no se han copiado a %1$s porque alcanzó el límite de productos en su plan de precios en %1$s. Si desea importar más productos, considere <nobr><a %2$s>actualizar su plan de %1$s.</a></nobr>" #: templates/importer/woo-complete-alert.tpl.php:21 msgid "<b>%s</b> categories" msgstr "<b>%s</b> categorías" #: templates/importer/woo-complete-alert.tpl.php:18 msgid "Imported <b>%s</b> products" msgstr "<b>%s</b> productos importados" #: templates/importer/woo-complete-alert.tpl.php:15 msgid "Import completed" msgstr "Importación completada" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:10 #: includes/widgets/class-ecwid-widget-product-browser.php:12 msgid "Online store" msgstr "Tienda en línea" #: includes/class-ecwid-store-page.php:476 msgid "%s Store Page" msgstr "Página de la tienda de %s" #: templates/advanced-settings.php:79 msgid "Integration with search on your site" msgstr "Integración con la búsqueda en su sitio web" #: templates/sync.php:130 msgid "Deleted products synchronized: %1$s out of %2$s" msgstr "Productos eliminados sincronizados: %1$s de %2$s" #: includes/class-ecwid-custom-admin-page.php:66 msgid "Themes for Ecwid" msgstr "Temas para Ecwid" #: includes/class-ecwid-custom-admin-page.php:33 msgid "Plugins for Ecwid" msgstr "Complementos para Ecwid" #: includes/class-ecwid-popup-deactivate.php:138 msgid "I use this WordPress theme: %s" msgstr "Utilizo este tema de WordPress: %s" #: includes/class-ecwid-popup-deactivate.php:132 msgid "I couldn’t find a WordPress theme that goes well with %s" msgstr "No pude encontrar un tema de WordPress adecuado para %s" #: includes/class-ecwid-product-browser.php:357 msgid "On the right" msgstr "A la derecha" #: includes/class-ecwid-product-browser.php:353 msgid "On the left" msgstr "A la izquierda" #: includes/class-ecwid-product-browser.php:349 msgid "Filters panel position" msgstr "Posición del panel de filtros" #: includes/class-ecwid-product-browser.php:209 msgid "Default product_ID" msgstr "ID del producto predeterminado" #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:73 msgid "Cart icon" msgstr "Icono del carrito de compras" #: templates/shortcode-stub-store.tpl.php:4 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:20 #: js/gutenberg/blocks.build.js:1 msgid "Store Home Page" msgstr "Página de inicio de la tienda" #: ecwid-shopping-cart.php:431 msgid "Edit Category" msgstr "Editar categoría" #: ecwid-shopping-cart.php:430 msgid "Edit Product" msgstr "Editar producto" #: includes/class-ecwid-admin.php:142 includes/class-ecwid-admin.php:143 msgid "Online Store Apps" msgstr "Aplicaciones de la tienda en línea" #. Plugin Name of the plugin msgid "Ecwid Ecommerce Shopping Cart" msgstr "Carrito de compras del comercio electrónico de Ecwid" #: includes/class-ecwid-custom-admin-page.php:58 includes/faq_entries.php:76 msgid "Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href=\"%s\">TemplateMonster themes</a>" msgstr "Ecwid es compatible con cualquier tema de WordPress. Ya sea un tema gratuito del catálogo de WordPress.org, un tema prémium de un proveedor externo o un tema personalizado; su tienda de Ecwid funcionará bien con cualquiera de ellos. Si desea un tema prémium, le recomendamos <a href=\"%s\">temas de TemplateMonster</a>." #: includes/faq_entries.php:74 msgid "Is there a WordPress theme for Ecwid?" msgstr "¿Existe algún tema de WordPress para Ecwid?" #: templates/admin-footer.php:19 msgid "<a href=\"admin.php?page=" msgstr "<a href=\"admin.php?page=" #: includes/integrations/class-ecwid-integration-gutenberg.php:113 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:25 msgid "You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href=\"%1$s\">Appearance → Customize → %2$s</a>” menu to enable it." msgstr "Puede habilitar un «widget» adicional del icono de la bolsa de compras que aparecerá en las páginas de su sitio web. Abra el menú «<a href=\"%1$s\">Apariencia → Personalizar → %2$s</a>» para habilitarlo." #: includes/integrations/class-ecwid-integration-gutenberg.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:18 msgctxt "gutenberg-store-block-stub" msgid "Store" msgstr "Tienda" #: includes/class-ecwid-product-browser.php:472 msgid "Image feed" msgstr "Canal de imagen" #: includes/class-ecwid-product-browser.php:467 msgid "Vertical thumbnails" msgstr "Miniaturas verticales" #: includes/class-ecwid-product-browser.php:462 msgid "Horizontal thumbnails" msgstr "Miniaturas horizontales" #: includes/class-ecwid-product-browser.php:452 msgid "3 columns, image on the right" msgstr "3 columnas, imagen a la derecha" #: includes/class-ecwid-product-browser.php:448 msgid "3 columns, image on the left" msgstr "3 columnas, imagen a la izquierda" #: includes/class-ecwid-product-browser.php:444 msgid "2 columns, image on the right" msgstr "2 columnas, imagen a la derecha" #: includes/class-ecwid-product-browser.php:440 msgid "2 columns, image on the left" msgstr "2 columnas, imagen a la izquierda" #: includes/class-ecwid-product-browser.php:429 msgid "Landscape 3:2" msgstr "Horizontal 3:2" #: includes/class-ecwid-product-browser.php:424 msgid "Landscape 4:3" msgstr "Horizontal 4:3" #: includes/class-ecwid-product-browser.php:419 msgid "Square 1:1" msgstr "Cuadrado 1:1" #: includes/class-ecwid-product-browser.php:414 msgid "Portrait 3:4" msgstr "Vertical 3:4" #: includes/class-ecwid-product-browser.php:409 msgid "Portrait 2:3" msgstr "Vertical 2:3" #: includes/class-ecwid-product-browser.php:399 msgid "L" msgstr "G" #: includes/class-ecwid-product-browser.php:395 msgid "M" msgstr "M" #: includes/class-ecwid-product-browser.php:391 msgid "S" msgstr "P" #: includes/class-ecwid-product-browser.php:381 msgid "Show on hover" msgstr "Mostrar al pasar el ratón" #: includes/class-ecwid-product-browser.php:377 msgid "Hide" msgstr "Ocultar" #: includes/class-ecwid-product-browser.php:373 msgid "Show" msgstr "Mostrar" #: includes/class-ecwid-product-browser.php:342 msgid "Background color" msgstr "Color del fondo" #: includes/class-ecwid-product-browser.php:335 msgid "Link color" msgstr "Color del enlace" #: includes/class-ecwid-product-browser.php:328 msgid "Price color" msgstr "Color del precio" #: includes/class-ecwid-product-browser.php:321 msgid "Text color" msgstr "Color del texto" #: includes/class-ecwid-product-browser.php:314 msgid "Button color" msgstr "Color del botón" #: includes/class-ecwid-product-browser.php:299 msgid "Wholesale prices" msgstr "Precios al por mayor" #: includes/class-ecwid-product-browser.php:292 msgid "\"In stock\" label" msgstr "Etiqueta de productos «En existencia»" #: includes/class-ecwid-product-browser.php:285 msgid "Available qty in stock" msgstr "Cantidad disponible en existencia" #: includes/class-ecwid-product-browser.php:278 msgid "Product quantity" msgstr "Cantidad de productos" #: includes/class-ecwid-product-browser.php:271 msgctxt "product-browser-attributes" msgid "Product price" msgstr "Precio del producto" #: includes/class-ecwid-product-browser.php:264 msgctxt "product-browser-attributes" msgid "Product SKU" msgstr "REF del producto" #: includes/class-ecwid-product-browser.php:257 msgid "Breadcrumbs" msgstr "Migas de pan" #: includes/class-ecwid-product-browser.php:241 msgid "Image gallery layout" msgstr "Diseño de la galería de imágenes" #: includes/integrations/class-ecwid-integration-gutenberg.php:391 #: includes/class-ecwid-product-browser.php:224 #: includes/class-ecwid-product-browser.php:233 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:212 msgid "Show description under the image" msgstr "Mostrar descripción debajo de la imagen" #: includes/class-ecwid-product-browser.php:216 msgid "Product page layout" msgstr "Diseño de la página de productos" #: includes/class-ecwid-product-browser.php:194 msgid "Display sort by link" msgstr "Mostrar «ordenar por enlace»" #: includes/class-ecwid-product-browser.php:186 #: includes/class-ecwid-product-browser.php:306 msgid "Display sign in link" msgstr "Mostrar el enlace de inicio de sesión" #: includes/class-ecwid-product-browser.php:178 msgid "Display footer menu" msgstr "Mostrar el menú del pie de página" #: includes/class-ecwid-product-browser.php:170 msgid "Display breadcrumbs" msgstr "Mostrar migas de pan" #: includes/class-ecwid-product-browser.php:163 js/gutenberg/blocks.build.js:1 msgid "Display search box" msgstr "Mostrar el cuadro de búsqueda" #: includes/class-ecwid-product-browser.php:156 msgid "Display categories menu" msgstr "Mostrar el menú de categorías" #: includes/class-ecwid-product-browser.php:148 msgid "Category thumbnail aspect ratio" msgstr "Relación de aspecto de la miniatura de la categoría" #: includes/class-ecwid-product-browser.php:140 msgid "Category thumbnail size" msgstr "Tamaño de la miniatura de la categoría" #: includes/class-ecwid-product-browser.php:131 msgid "Image only" msgstr "Solo imagen" #: includes/class-ecwid-product-browser.php:127 msgid "Title only" msgstr "Solo título" #: includes/class-ecwid-product-browser.php:123 msgid "Image and title on mouse over" msgstr "Imagen y título al pasar el ratón por encima" #: includes/class-ecwid-product-browser.php:119 msgid "Title on image" msgstr "Título en la imagen" #: includes/class-ecwid-product-browser.php:115 msgid "Title under image" msgstr "Título debajo de la imagen" #: includes/class-ecwid-product-browser.php:111 msgid "Category card layout" msgstr "Diseño de la ficha de categoría" #: includes/class-ecwid-product-browser.php:103 msgid "Show additional image on hover" msgstr "Mostrar imagen adicional al pasar el ratón" #: includes/class-ecwid-product-browser.php:95 msgid "Buy now buttons" msgstr "Botones de «Comprar ahora»" #: includes/class-ecwid-product-browser.php:87 msgid "Product SKU" msgstr "REF del producto" #: includes/class-ecwid-product-browser.php:79 msgid "Product price" msgstr "Precio del producto" #: includes/class-ecwid-product-browser.php:71 msgid "Product title" msgstr "Título del producto" #: includes/class-ecwid-product-browser.php:61 msgid "Justify" msgstr "Justificado" #: includes/class-ecwid-product-browser.php:56 msgid "Right" msgstr "Derecha" #: includes/class-ecwid-product-browser.php:51 msgid "Center" msgstr "Centrado" #: includes/class-ecwid-product-browser.php:46 msgid "Left" msgstr "Izquierda" #: includes/class-ecwid-product-browser.php:42 msgid "Product card text align" msgstr "El texto de la ficha del producto se alinea" #: includes/class-ecwid-product-browser.php:34 msgid "Show product card border" msgstr "Mostrar el borde de la ficha del producto" #: includes/class-ecwid-product-browser.php:26 msgid "Product thumbnail aspect ratio" msgstr "Relación de aspecto de la miniatura del producto" #: includes/class-ecwid-product-browser.php:18 msgid "Product thumbnail size" msgstr "Tamaño de la miniatura del producto" #: includes/class-ecwid-product-browser.php:10 msgid "Show product thumbnails" msgstr "Mostrar miniaturas de los productos" #. Author of the plugin msgid "Ecwid Ecommerce" msgstr "Comercio electrónico Ecwid" #: templates/importer/woo-summary.tpl.php:34 msgid "After import, your %s store will have " msgstr "Después de la importación, su tienda de %s tendrá " #: templates/importer/woo-summary.tpl.php:21 msgid "Your %s store has " msgstr "Su tienda de %s tiene " #: templates/importer/woo-summary.tpl.php:10 msgid "Your WooCommerce store has " msgstr "Su tienda de WooCommerce tiene " #: includes/integrations/class-ecwid-integration-elementor.php:64 #: includes/integrations/class-ecwid-integration-divibuilder.php:25 #: includes/integrations/class-ecwid-integration-gutenberg.php:94 msgid "%s Store" msgstr "Tienda de %s" #: includes/importer/class-ecwid-import-page.php:184 msgid "%s products" msgstr "%s productos" #: includes/importer/class-ecwid-import-page.php:178 msgid "%s products and %s categories" msgstr "%s productos y %s categorías" #: includes/class-ecwid-stub-renderer.php:27 #: includes/class-ecwid-admin-storefront-page.php:272 msgid "Product" msgstr "Producto" #: includes/class-ecwid-message-manager.php:278 #: includes/class-ecwid-message-manager.php:297 #: includes/class-ecwid-message-manager.php:318 msgid "Warning: some of your online store features are disabled. Please contact your hosting provider to resolve." msgstr "Advertencia: algunas de las funciones de su tienda en línea están inhabilitadas. Póngase en contacto con su proveedor de alojamiento web para resolverlo." #: templates/admin/legacy-connect.tpl.php:39 msgid "Create new account" msgstr "Crear una nueva cuenta" #: templates/admin/legacy-connect.tpl.php:33 msgid "Register at %s" msgstr "Registrarse en %s" #: includes/class-ecwid-floating-minicart.php:155 msgid "Bottom left" msgstr "Abajo a la izquierda" #: includes/class-ecwid-floating-minicart.php:154 msgid "Top left" msgstr "Arriba a la izquierda" #: includes/class-ecwid-floating-minicart.php:113 msgid "Show on all pages" msgstr "Mostrar en todas las páginas" #: includes/class-ecwid-floating-minicart.php:112 msgid "Show on store pages" msgstr "Mostrar en las páginas de la tienda" #: includes/class-ecwid-floating-minicart.php:111 msgid "Do not show" msgstr "No mostrar" #: includes/class-ecwid-customizer.php:134 msgid "Vertical indent" msgstr "Sangría vertical" #: includes/class-ecwid-customizer.php:123 msgid "Horizontal indent" msgstr "Sangría horizontal" #: includes/class-ecwid-customizer.php:97 msgid "Icon" msgstr "Icono" #: includes/class-ecwid-customizer.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:79 msgid "Border" msgstr "Borde" #: includes/class-ecwid-customizer.php:72 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:67 msgid "Layout" msgstr "Diseño" #: includes/class-ecwid-customizer.php:61 msgid "Show when empty" msgstr "Mostrar cuando esté vacío" #: includes/class-ecwid-customizer.php:49 msgid "Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The \"Show on store pages\" and \"Show when empty\" options will apply to the cart widget on site when published" msgstr "Nota: cuando está habilitado, el «widget» del carrito siempre se mostrará en la vista previa para que sea más fácil personalizarlo. Las opciones «Mostrar en las páginas de la tienda» y «Mostrar cuando esté vacío» se aplicarán al «widget» del carrito en el sitio cuando se publiquen" #: includes/class-ecwid-customizer.php:47 msgid "Display shopping cart" msgstr "Mostrar el carrito de compras" #: includes/class-ecwid-customizer.php:35 msgid "Shopping Cart Widget" msgstr "«Widget» del carrito de compras" #. Author URI of the plugin msgid "https://ecwid.to/ecwid-site" msgstr "https://ecwid.to/ecwid-site" #: templates/product-popup.php:247 msgid "selected product" msgstr "producto seleccionado" #: templates/product-popup.php:138 templates/product-popup.php:143 msgid "Selected Product" msgstr "Producto seleccionado" #: templates/product-popup.php:124 msgid " Choose another product" msgstr " Elegir otro producto" #: templates/importer/landing.tpl.php:20 msgid "Import your WooCommerce catalog to %s" msgstr "Importe su catálogo de WooCommerce a %s" #: includes/widgets/nsf-minicart-editor.tpl.php:35 msgid "Border:" msgstr "Borde:" #: includes/widgets/nsf-minicart-editor.tpl.php:19 msgid "Cart icon:" msgstr "Icono del carrito:" #: includes/widgets/nsf-minicart-editor.tpl.php:3 msgid "Layout:" msgstr "Diseño:" #: includes/class-ecwid-floating-minicart.php:145 msgid "No border" msgstr "Sin borde" #: includes/class-ecwid-floating-minicart.php:144 msgid "Pill" msgstr "Píldora" #: includes/class-ecwid-floating-minicart.php:143 msgid "Rectangle" msgstr "Rectángulo" #: includes/class-ecwid-floating-minicart.php:136 msgid "Basket" msgstr "Cesta" #: includes/class-ecwid-floating-minicart.php:134 msgid "Bag" msgstr "Bolsa" #: includes/class-ecwid-floating-minicart.php:127 msgid "Icon, label, item count, subtotal and link" msgstr "Icono, etiqueta, total de artículos, subtotal y enlace" #: includes/class-ecwid-floating-minicart.php:126 msgid "Icon, label, item count and subtotal" msgstr "Icono, etiqueta, total de artículos y subtotal" #: includes/class-ecwid-floating-minicart.php:125 msgid "Icon, label and item count" msgstr "Icono, etiqueta y total de artículos" #: includes/class-ecwid-floating-minicart.php:124 msgid "Icon and item count" msgstr "Icono y total de artículos" #: includes/class-ecwid-floating-minicart.php:123 msgid "Label and item count" msgstr "Etiqueta y y total de artículos" #: includes/class-ecwid-floating-minicart.php:122 msgid "Item count only" msgstr "Solo el total de artículos" #: includes/class-ecwid-floating-minicart.php:121 msgid "Small icon and item count" msgstr "Icono pequeño y total de artículos" #: includes/class-ecwid-floating-minicart.php:120 msgid "Small icon" msgstr "Icono pequeño" #: includes/widgets/class-ecwid-widget-minicart.php:9 msgid "Shopping Cart (deprecated)" msgstr "Carrito de compras (descontinuado)" #: includes/widgets/class-ecwid-widget-minicart-miniview.php:9 msgid "Shopping Cart Mini (deprecated)" msgstr "Carrito de compras en miniatura (descontinuado)" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:21 msgid "Shopping Cart Floating (deprecated)" msgstr "Carrito de compras flotante (descontinuado)" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:69 msgid "Displays storefront: product listing and checkout" msgstr "Muestra el escaparate virtual: listado de productos y pago" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:67 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:70 msgctxt "vc-tab" msgid "Online store" msgstr "Tienda en línea" #: includes/integrations/class-ecwid-integration-gutenberg.php:105 #: includes/gutenberg/class-ecwid-gutenberg.php:131 msgid "Your product" msgstr "Su producto" #: templates/shortcode-stub-store.tpl.php:18 #: includes/integrations/class-ecwid-integration-gutenberg.php:103 #: includes/widgets/class-ecwid-widget-product-browser.php:11 #: includes/gutenberg/class-ecwid-gutenberg.php:129 msgid "Your store will be shown here" msgstr "Su tienda se mostrará aquí" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:31 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:101 #: includes/integrations/class-ecwid-integration-gutenberg.php:101 #: includes/gutenberg/class-ecwid-gutenberg.php:127 #: js/gutenberg/blocks.build.js:1 msgid "Choose product" msgstr "Elegir producto" #: includes/integrations/class-ecwid-integration-gutenberg.php:97 #: includes/gutenberg/class-ecwid-gutenberg.php:123 msgid "%s product" msgstr "%s producto" #: templates/wp-toolbox.tpl.php:4 msgid "Take advantage of powerful apps and extensions designed to enhance your store." msgstr "Aproveche las increíbles aplicaciones y extensiones diseñadas para mejorar su tienda." #: templates/wp-toolbox.tpl.php:3 msgid "Extensions for your Store" msgstr "Extensiones para su tienda" #: templates/importer/woo-summary.tpl.php:6 msgid "Import summary" msgstr "Resumen de la importación" #: templates/importer/woo-main.tpl.php:19 msgid "This import will copy your WooCommerce products and categories to your %s store." msgstr "Esta importación copiará sus productos y categorías de WooCommerce a su tienda de %s." #: templates/importer/woo-main.tpl.php:62 msgid "Importing %s of %s items" msgstr "Importando %s de %s artículos" #: templates/importer/woo-complete-alert.tpl.php:27 msgid "Some of the items could not be imported." msgstr "Algunos de los artículos no se pudieron importar." #: templates/importer/landing.tpl.php:33 msgid "Learn more" msgstr "Más información" #: templates/importer/landing.tpl.php:33 msgid "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" msgstr "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" #: templates/importer/landing.tpl.php:31 msgid "Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center" msgstr "Ecwid le permite subir sus productos en forma de archivo CSV. Obtenga más información sobre esta herramienta en el centro de asistencia de Ecwid" #: templates/importer/landing.tpl.php:29 msgid "Import product catalog from other sources" msgstr "Importar el catálogo de productos de otras fuentes" #: templates/importer/landing.tpl.php:23 msgid "(You will be able to confirm the changes before the actual import)" msgstr "(podrá confirmar los cambios antes de la importación definitiva)" #: templates/importer/landing.tpl.php:12 msgid "We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?" msgstr "Notamos que tiene un WooCommerce instalado. Su tienda de WooCommerce tiene %1$s productos y %2$s categorías; ¿le gustaría importarlos a %3$s?" #: templates/importer/landing.tpl.php:9 msgid "Import product catalog from WooCommerce" msgstr "Importar el catálogo de productos de WooCommerce" #: templates/importer/landing.tpl.php:4 msgid "Here, we will help you uploading your product catalog to %s from another shopping cart or other sources." msgstr "Aquí, le ayudaremos a subir su catálogo de productos a %s de otro carrito de compras u otras fuentes." #: templates/importer/landing.tpl.php:1 msgid "Import products to your %s store" msgstr "Importe los productos a su tienda de %s" #: templates/dashboard-blog-posts.tpl.php:20 msgid "Knowledge Base" msgstr "Base de conocimiento" #: templates/dashboard-blog-posts.tpl.php:19 msgid "https://support.ecwid.com/hc/en-us" msgstr "https://support.ecwid.com/hc/en-us" #: templates/dashboard-blog-posts.tpl.php:14 msgid "https://www.ecwid.com/blog" msgstr "https://www.ecwid.com/blog" #: includes/importer/class-ecwid-import.php:39 msgid "Bulk import products and categories to your %s store" msgstr "Importar en masa productos y categorías a su tienda de %s" #: includes/importer/class-ecwid-import.php:38 msgid "%s products and categories" msgstr "%s productos y categorías" #: templates/importer/woo-main.tpl.php:36 #: includes/importer/class-ecwid-import-page.php:52 #: includes/importer/class-ecwid-import-page.php:53 msgid "Import your products from WooCommerce to %s" msgstr "Importe sus productos de WooCommerce a %s" #: includes/importer/class-ecwid-import-page.php:42 #: includes/importer/class-ecwid-import-page.php:43 msgid "Import" msgstr "Importar" #: templates/dashboard-blog-posts.tpl.php:15 #: includes/class-ecwid-wp-dashboard-feed.php:48 msgid "%s Blog" msgstr "Blog de %s" #: includes/class-ecwid-message-manager.php:345 msgid "No Thanks" msgstr "No, gracias" #: includes/class-ecwid-message-manager.php:343 msgid "Import my products from WooCommerce" msgstr "Importar mis productos de WooCommerce" #: includes/class-ecwid-message-manager.php:341 msgid "We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you." msgstr "Notamos que tiene WooCommerce instalado. Si desea copiar fácilmente sus productos de WooCommerce a %s, esta herramienta le ayudará." #: includes/class-ecwid-message-manager.php:340 msgid "Need help importing your products from WooCommerce to %s?" msgstr "¿Necesita ayuda para importar sus productos de WooCommerce a %s?" #: includes/class-ecwid-admin.php:213 includes/class-ecwid-admin.php:214 msgid "Customers" msgstr "Clientes" #: templates/help.php:28 msgid "or <a %s>Browse the Help Center" msgstr "o <a %s>consulte el centro de asistencia" #: templates/admin/welcome-connection-message.php:5 msgid "To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission." msgstr "Para mostrar su tienda en este sitio web, debe permitir que WordPress acceda a sus productos de %1$s. Pulse «Conectar» para otorgar el permiso." #: includes/faq_entries.php:40 msgid "Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target=\"_blank\" href=\"%s\">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans." msgstr "Nuestros 4 tipos de cuentas varían según la cantidad de productos, los tipos de funcionalidades y el nivel de asistencia. Para obtener más información, consulte nuestra <a target=\"_blank\" href=\"%s\">página de precios.</a><br /><br />Consejo profesional: también puede ahorrar dinero si se suscribe a nuestros planes anuales." #: includes/class-ecwid-popup-deactivate.php:59 msgid "[%s] WordPress plugin deactivation feedback (store ID: %s)" msgstr "[%s] Comentarios sobre la desactivación del complemento de WordPress (ID de la tienda: %s)" #: includes/class-ecwid-message-manager.php:289 msgid "Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data." msgstr "Su escaparate virtual (listado de productos y página de pago) está funcionando bien, pero las funciones avanzadas de la tienda, como el SEO y los «widgets» de la barra lateral, están inhabilitadas. Para habilitarlas y asegurarse de que su tienda funcione correctamente, pulse el botón de abajo para conectar su cuenta de %s. Esto tomará menos de un minuto; solo se le pedirá que inicie sesión en su cuenta y permita que este sitio web obtenga los datos de su tienda." #: includes/class-ecwid-message-manager.php:288 msgid "Action required: please connect your %s account" msgstr "Acción requerida: conecte su cuenta de %s" #: templates/popup/deactivate.php:24 msgid "Contact Support" msgstr "Ponerse en contacto con la asistencia" #: templates/popup/deactivate.php:1 msgid "If you have a moment, please let us know why you are deactivating:" msgstr "Si tiene un momento, háganos saber por qué está desactivando:" #: templates/admin/welcome-create.php:4 msgid "Create Store" msgstr "Crear tienda" #: templates/advanced-settings.php:1 msgid "%s — Advanced settings" msgstr "%s — Configuración avanzada" #: includes/widgets/class-ecwid-widget-random-products.php:10 msgid "Displays a list of random products." msgstr "Muestra una lista de productos aleatorios." #: includes/widgets/class-ecwid-widget-random-products.php:9 msgid "Random Products" msgstr "Productos aleatorios" #: includes/widgets/class-ecwid-widget-random-product.php:9 #: includes/widgets/class-ecwid-widget-random-product.php:64 msgid "Random Product" msgstr "Producto aleatorio" #: includes/widgets/class-ecwid-widget-random-product.php:8 msgid "Displays a random product from your store to attract customer attention." msgstr "Muestra un producto aleatorio de su tienda para atraer la atención del cliente." #: includes/widgets/class-ecwid-widget-latest-products.php:10 msgid "Displays the latest added products from your store. Show new products to returning customers to drive repeat sales." msgstr "Muestra los últimos productos añadidos de su tienda. Muestre nuevos productos a los clientes existentes para impulsar las ventas repetidas." #: includes/widgets/class-ecwid-widget-latest-products.php:9 msgid "Latest Products" msgstr "Últimos productos" #: includes/class-ecwid-popup-deactivate.php:164 msgid "Can you share your feedback? What was wrong?" msgstr "¿Podría compartir su opinión? ¿Qué fue lo que pasó?" #: includes/class-ecwid-popup-deactivate.php:161 msgid "Other" msgstr "Otro" #: includes/class-ecwid-popup-deactivate.php:155 msgid "It's a temporary deactivation. Please do not ask me again." msgstr "Es una desactivación temporal. No preguntarme de nuevo." #: includes/class-ecwid-popup-deactivate.php:152 msgid "Can you share the name of the plugin you chose?" msgstr "¿Podría compartir el nombre del complemento que ha elegido?" #: includes/class-ecwid-popup-deactivate.php:149 msgid "I found a better plugin" msgstr "Encontré un mejor complemento" #: includes/class-ecwid-popup-deactivate.php:146 msgid "What feature do you need?" msgstr "¿Qué función necesita?" #: includes/class-ecwid-popup-deactivate.php:143 msgid "The plugin doesn't support the feature I want" msgstr "El complemento no es compatible con la función que quiero" #: includes/class-ecwid-popup-deactivate.php:128 msgid "What was wrong?" msgstr "¿Qué fue lo que pasó?" #: includes/class-ecwid-popup-deactivate.php:125 msgid "I have a problem using this plugin" msgstr "Tengo un problema con el uso de este complemento" #: includes/class-ecwid-popup-deactivate.php:112 msgid "Before You Go" msgstr "Antes de que se vaya" #: templates/admin/storefront/area-navigation.php:79 #: includes/class-ecwid-popup-deactivate.php:105 msgid "Cancel" msgstr "Cancelar" #: includes/class-ecwid-popup-deactivate.php:101 msgid "Submit & Deactivate" msgstr "Enviar y desactivar" #: includes/class-ecwid-message-manager.php:244 #: includes/class-ecwid-store-page.php:568 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:51 #: ecwid-shopping-cart.php:1082 js/gutenberg/blocks.build.js:1 msgid "Set up your store" msgstr "Configure su tienda" #: templates/admin-head.php:8 includes/class-ecwid-admin.php:48 #: includes/integrations/class-ecwid-integration-gutenberg.php:45 #: includes/gutenberg/class-ecwid-gutenberg.php:69 msgid "%s" msgstr "%s" #: templates/product-popup.php:199 js/gutenberg/blocks.build.js:1 msgid "«Buy now» button" msgstr "Botón de «Comprar ahora»" #: templates/admin/simple-dashboard.php:10 msgid "%s Shopping Cart" msgstr "Carrito de compras de %s" #: templates/advanced-settings.php:42 msgid "Please subscribe to a paid plan to get this feature." msgstr "Suscríbase a un plan de pago para obtener esta función." #: templates/admin-footer.php:9 msgid "Get %s mobile app" msgstr "Descargue la aplicación móvil de %s" #: includes/class-ecwid-message-manager.php:272 msgid "Rate %s at WordPress.org" msgstr "Tasa de %s en WordPress.org" #: includes/class-ecwid-message-manager.php:268 msgid "Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site." msgstr "¿Le gusta su tienda de %s en línea? Apreciaríamos si comparte su opinión y vota por el complemento en el sitio de WordPress." #: includes/class-ecwid-message-manager.php:260 msgid "To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings." msgstr "Para añadir funciones adicionales a su tienda, arrastre y suelte los elementos de la tienda de %s en su sitio web. Una vez que haya terminado, puede volver a modificar su configuración." #: templates/sync.php:114 msgid "Provide access." msgstr "Otorgar acceso." #: templates/sync.php:113 msgid "To enable this feature, the plugin needs a permission to read your store product information." msgstr "Para habilitar esta función, el complemento necesita un permiso para leer la información del producto de su tienda." #: templates/product-popup.php:137 templates/product-popup.php:147 msgid "Choose Product" msgstr "Elegir producto" #: templates/product-popup.php:96 msgid "Try another search." msgstr "Intente otra búsqueda." #: templates/sync.php:152 msgid "Not synchronized yet" msgstr "No se ha sincronizado todavía" #: templates/sync.php:149 msgid "Last update" msgstr "Última actualización" #: templates/sync.php:145 msgid "Products are successfully synchronized. The product pages are up to date." msgstr "Los productos se sincronizaron satisfactoriamente. Las páginas de productos están actualizadas." #: templates/sync.php:138 msgid "Products synchronized: %1$s out of %2$s" msgstr "Productos eliminados sincronizados: %1$s de %2$s" #: templates/sync.php:126 msgid "We're synchronizing your products. This may take a few minutes. Please do not reload the page." msgstr "Estamos sincronizando sus productos. Esto puede tardar unos minutos. No actualice la página." #: templates/sync.php:119 msgid "Synchronize products" msgstr "Sincronizar productos" #: templates/advanced-settings.php:83 msgid "%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site." msgstr "%s almacena los datos de sus productos de forma segura en la nube. Las páginas de productos se muestran sobre la marcha cuando un cliente navega por su tienda. Por lo que, básicamente, los productos no se almacenan en el sitio web, por eso la búsqueda en el sitio web no encuentra páginas de productos mientras busca en las páginas del sitio web y en las publicaciones. Esta opción habilita un modo de almacenamiento local: los productos se almacenarán tanto en la nube como en su sitio web. Los resultados de la búsqueda en el sitio web incluirán las páginas de productos, así como las páginas o publicaciones habituales de su sitio web." #: templates/product-popup.php:243 msgid "Insert" msgstr "Insertar" #: templates/product-popup.php:242 msgid "select product" msgstr "seleccionar producto" #: templates/product-popup.php:241 templates/product-popup.php:246 msgid "customize appearance" msgstr "personalizar apariencia" #: templates/product-popup.php:224 msgid "Show price inside the \"Buy now\" button" msgstr "Mostrar el precio dentro del botón de «Comprar ahora»" #: templates/product-popup.php:229 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:62 #: js/gutenberg/blocks.build.js:1 msgid "Center align on a page" msgstr "Centrar la alineación en una página" #: templates/product-popup.php:219 js/gutenberg/blocks.build.js:1 msgid "Add border" msgstr "Añadir borde" #: templates/product-popup.php:188 js/gutenberg/blocks.build.js:1 msgid "Quantity" msgstr "Cantidad" #: templates/product-popup.php:178 js/gutenberg/blocks.build.js:1 msgid "Options" msgstr "Opciones" #: templates/product-popup.php:173 js/gutenberg/blocks.build.js:1 msgid "Picture" msgstr "Imagen" #: templates/product-popup.php:163 msgid "Choose product properties to display in widget" msgstr "Elija las propiedades del producto para mostrarlas en el «widget»" #: templates/product-popup.php:139 templates/product-popup.php:151 msgid "Customize widget" msgstr "Personalizar «widget»" #: templates/product-popup.php:97 msgid "Browse all products." msgstr "Explorar todos los productos." #: templates/product-popup.php:94 msgid "Nothing found for <span class=\"empty-page__term\">\"{{ data.term }}\"</span>" msgstr "No se ha encontrado nada en relación con <span class=\"empty-page__term\">«{{ data.term }}»</span>" #: templates/product-popup.php:80 msgid "Next page" msgstr "Página siguiente" #: templates/product-popup.php:69 msgid "Current Page" msgstr "Página actual" #: templates/product-popup.php:49 msgid "Title or SKU" msgstr "Título o REF" #: templates/product-popup.php:47 templates/product-popup.php:53 #: templates/product-popup.php:56 msgid "Search" msgstr "Buscar" #: templates/product-popup.php:29 msgid "SKU" msgstr "REF" #: templates/product-popup.php:23 msgid "Name" msgstr "Nombre" #: includes/class-ecwid-product-popup.php:150 msgid "Last Page" msgstr "Última página" #: includes/class-ecwid-product-popup.php:149 msgid "Next Page" msgstr "Página siguiente" #: includes/class-ecwid-product-popup.php:148 msgid "Previous Page" msgstr "Página anterior" #: includes/class-ecwid-product-popup.php:147 msgid "First Page" msgstr "Primera página" #: includes/class-ecwid-product-popup.php:107 msgid "Add Product" msgstr "Añadir producto" #: includes/class-ecwid-oauth.php:366 msgid "To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the \"Add product\" dialog." msgstr "A fin de poder elegir un producto para insertarlo en sus publicaciones y páginas, deberá volver a conectar su sitio a su tienda de %s. Esto solo requerirá que acepte la solicitud de permisos para que el complemento pueda listar sus productos en el cuadro de diálogo «Añadir producto»." #: templates/advanced-settings.php:54 msgid "To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>" msgstr "Para asegurarse de que su cliente puede acceder realmente a su sitio web y a la tienda, habilite el registro en las <a %s>configuraciones del sitio web</a>" #: templates/advanced-settings.php:48 msgid "To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>" msgstr "Para permitir que %s inicie la sesión de sus clientes automáticamente en su tienda, otorgue los permisos para utilizar los datos del cliente en la tienda. <a %s>Utilice este enlace para hacerlo</a>" #: templates/advanced-settings.php:39 msgid "Upgrade to get this feature" msgstr "Actualice para obtener esta función" #: templates/advanced-settings.php:32 msgid "Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again." msgstr "El inicio de sesión único les permite a sus clientes tener un inicio de sesión único para su sitio web de WordPress y su %s. Cuando alguien inicie sesión en su sitio web, también iniciará sesión automáticamente en su cuenta de cliente en la tienda sin necesidad de introducir su correo electrónico y contraseña nuevamente." #: templates/advanced-settings.php:27 msgid "Customer Single Sign-On" msgstr "Inicio de sesión único del cliente" #: includes/integrations/class-ecwid-integration-divibuilder.php:63 msgid "Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space." msgstr "Introduzca las clases CSS opcionales que se utilizarán para este módulo. Se puede utilizar una clase CSS para crear estilos CSS personalizados. Puede añadir varias clases separadas por un espacio." #: includes/integrations/class-ecwid-integration-divibuilder.php:60 msgid "CSS Class" msgstr "Clase CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:57 msgid "Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page." msgstr "Introduzca un ID de CSS opcional que se utilizará para este módulo. Se puede utilizar un ID para crear un estilo CSS personalizado o para crear enlaces a secciones particulares de su página web." #: includes/integrations/class-ecwid-integration-divibuilder.php:54 msgid "CSS ID" msgstr "ID de CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:51 msgid "This will change the label of the module in the builder for easy identification." msgstr "Esto cambiará la etiqueta del módulo en el creador para una fácil identificación." #: includes/integrations/class-ecwid-integration-divibuilder.php:49 msgid "Admin Label" msgstr "Etiqueta de administrador" #: includes/integrations/class-ecwid-integration-divibuilder.php:44 msgid "Here you can create the content that will be used within the module." msgstr "Aquí puede crear el contenido que se utilizará dentro del módulo." #: includes/integrations/class-ecwid-integration-divibuilder.php:41 msgid "Content" msgstr "Contenido" #: templates/admin-footer.php:29 msgid "<a %s>Reconnect</a>" msgstr "<a %s>Volver a conectar</a>" #: templates/help.php:15 msgid "https://support.ecwid.com/hc/en-us/search" msgstr "https://support.ecwid.com/hc/en-us/search" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:73 msgid "Browse by Category" msgstr "Buscar por categoría" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:15 msgid "Store Root Categories" msgstr "Categorías raíz de la tienda" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:14 msgid "Adds root categories list to the sidebar to let your customers navigate the store." msgstr "Añade la lista de categorías raíz a la barra lateral para que sus clientes puedan desplazarse por la tienda." #: templates/admin/welcome-connection-message.php:25 msgid "To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission." msgstr "Para vender utilizando %1$s, debe permitir que WordPress acceda al complemento %1$s. El botón «Conectar» lo redirigirá a su cuenta de %1$s donde puede otorgar el permiso." #: templates/admin-timeout.php:11 msgid "Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">our customer support team</a>." msgstr "Nuestro equipo ya está trabajando en este asunto. Actualice la página en unos minutos. Si el problema persiste, comuníquese con <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">nuestro equipo de atención al cliente</a>." #: templates/admin-timeout.php:9 msgid "Sorry we're having technical difficulties." msgstr "Le pido disculpas por las dificultades técnicas que estamos experimentando." #: includes/class-ecwid-floating-minicart.php:153 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:143 msgid "Top right" msgstr "Arriba a la derecha" #: includes/class-ecwid-floating-minicart.php:152 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:138 msgid "Bottom right" msgstr "Abajo a la derecha" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:135 #: includes/class-ecwid-customizer.php:110 msgid "Position" msgstr "Posición" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:20 msgid "Adds a shopping cart widget to the top right corner of your site." msgstr "Añada un «widget» de carrito de compras en la esquina superior derecha de su sitio web." #: templates/help.php:215 msgid "You can send a new request here." msgstr "Puede enviar una nueva solicitud aquí." #: templates/help.php:214 msgid " Thank you very much for contacting us! We will get back to you shortly." msgstr " ¡Muchas gracias por ponerse en contacto con nosotros! Nos pondremos en contacto con usted en breve." #: templates/help.php:213 msgid "Your email has been sent" msgstr "Se ha enviado su correo electrónico" #: templates/help.php:207 msgid "Send message failed" msgstr "Ocurrió un error al enviar el mensaje" #: templates/help.php:196 msgid "Send Message" msgstr "Enviar mensaje" #: templates/help.php:193 msgid "Type in your message here" msgstr "Escriba su mensaje aquí" #: templates/help.php:192 msgid "Subject" msgstr "Asunto" #: templates/help.php:186 msgid "Send a message to our support team" msgstr "Envíe un mensaje a nuestro equipo de asistencia" #: templates/help.php:177 msgid "Still have questions about Ecwid? Let us know!" msgstr "¿Todavía tiene preguntas acerca de Ecwid? ¡Háganoslo saber!" #: templates/help.php:176 msgid "Contact us" msgstr "Póngase en contacto con nosotros" #: templates/help.php:33 msgid "Frequently Asked Questions" msgstr "Preguntas frecuentes" #: templates/help.php:21 msgid "Search the Knowledge Base" msgstr "Buscar en la base de conocimientos" #: templates/help.php:17 msgid "E.g. How to set up shipping" msgstr "Por ejemplo, cómo establecer el envío" #: templates/help.php:11 msgid "How can we help you?" msgstr "¿Cómo podemos ayudarle?" #: includes/faq_entries.php:68 msgid "You can display your store on the site main page. Adjust the \"Reading\" settings of your site as described in our <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">Help Center.</a>" msgstr "Puede mostrar su tienda en la página principal del sitio web. Ajuste la configuración de «Lectura» de su sitio web como se describe en nuestro <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">centro de asistencia.</a>" #: includes/faq_entries.php:67 msgid "Is it possible to display my store on the site home page?" msgstr "¿Es posible mostrar mi tienda en la página de inicio del sitio web?" #: includes/faq_entries.php:61 msgid "To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">How to use it.</a>" msgstr "Para mostrar un solo producto en una página aparte o en una entrada de blog de su sitio web, utilice el código corto <b>[ecwid_product]</b>. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">Cómo utilizarlo</a>" #: includes/faq_entries.php:60 msgid "How to add a single product with the add to bag button to the site pages?" msgstr "¿Cómo añadir un solo producto con el botón de «añadir a la bolsa» en las páginas del sitio web?" #: includes/faq_entries.php:55 msgid "To create sitemap for your Wordpress site we suggest using <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> or <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">paid Ecwid users</a>." msgstr "Para crear un «Mapa del sitio» para su sitio web de Wordpress, le sugerimos que utilice los  complementos <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> o <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>. Estos complementos son totalmente compatibles con Ecwid y permiten generar un mapa del sitio que contiene enlaces a categorías y páginas de productos, por lo que las páginas de la tienda se indexarán más rápido. Tenga en cuenta que esta opción solo está disponible para los <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">usuarios de pago de Ecwid</a>." #: includes/faq_entries.php:54 msgid "How do I put my products in the sitemap?" msgstr "¿Cómo pongo mis productos en el mapa del sitio?" #: includes/faq_entries.php:48 msgid "You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open \"Appearance > Menus\" in your WordPress control panel and add the \"Store with Categories Menu\" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site." msgstr "Puede añadir el menú de categorías de la tienda al menú de su sitio web para ayudar a sus clientes a navegar fácilmente por su sitio web. Simplemente abra «Apariencia > Menús» en el panel de WordPress y añada el elemento «Tienda con menú de categorías» al menú de su sitio web. Aparecerá automáticamente un menú desplegable que contendrá las categorías de su tienda en su sitio web." #: includes/faq_entries.php:47 msgid "How do I add store categories to the site menu?" msgstr "¿Cómo puedo añadir categorías de tiendas al menú del sitio web?" #: includes/faq_entries.php:38 msgid "How much does Ecwid cost?" msgstr "¿Cuánto cuesta Ecwid?" #: includes/faq_entries.php:30 msgid "You can add product search box, cart widget and more on the <a href=\"%s\">\"Appearance / Widgets page\"</a> here in your site admin. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">More details.</a>" msgstr "Puede añadir un cuadro de búsqueda de productos, un «widget» de carrito y más desde la <a href=\"%s\">«Página de apariencia y widgets»</a> que se encuentra aquí en el administrador de su sitio web. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">Más detalles.</a>" #: includes/faq_entries.php:28 msgid "How can I add a cart widget to my site sidebar?" msgstr "¿Cómo puedo añadir un «widget» de carrito de compras a la barra lateral de mi sitio web?" #: includes/faq_entries.php:21 msgid "You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">More details.</a>" msgstr "Puede añadir su tienda en línea a su página empresarial de Facebook (no se necesitan complementos). Ecwid sincronizará automáticamente los productos, clientes, pedidos e inventario entre su tienda en línea de WordPress y Facebook. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">Más detalles.</a>" #: includes/faq_entries.php:20 msgid "How to set up a storefront on Facebook with Ecwid?" msgstr "¿Cómo crear una tienda en Facebook con Ecwid?" #: includes/faq_entries.php:13 msgid "Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">More details.</a>" msgstr "Ecwid ofrece aplicaciones móviles gratuitas para iOS y Android para que pueda gestionar su tienda y vender donde y cuando quiera. Escanee productos, supervise el inventario, gestione las ventas y acepte pagos utilizando su dispositivo móvil como una estación de punto de venta. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">Más detalles.</a>" #: includes/faq_entries.php:12 msgid "How can I manage my store from a mobile device?" msgstr "¿Cómo puedo gestionar mi tienda desde un dispositivo móvil?" #: includes/faq_entries.php:6 msgid "Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">More details.</a>" msgstr "Ecwid cuenta con la certificación PCI DSS Nivel 1, que es el estándar de oro para las soluciones de comercio electrónico en todo el mundo. Esto significa que no tendrá problemas de cumplimiento bancario cuando venda en línea con Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">Más detalles.</a>" #: includes/faq_entries.php:5 msgid "How secure is this plugin? Is my store PCI DSS compliant?" msgstr "¿Qué tan seguro es este complemento? ¿Mi tienda cumple con el PCI DSS?" #: includes/class-ecwid-nav-menus.php:32 msgid "Ecwid Menu Item" msgstr "Elemento del menú de Ecwid" #: includes/class-ecwid-admin.php:179 includes/class-ecwid-admin.php:180 msgid "Help" msgstr "Ayuda" #: templates/admin-footer.php:27 msgid "Want to connect another %s store?" msgstr "¿Desea conectar otra tienda de %s?" #: templates/admin-footer.php:17 msgid "Questions?" msgstr "¿Tiene alguna pregunta?" #: templates/admin-footer.php:6 msgid "Manage Store on iPhone, iPad or Android" msgstr "Gestione la tienda desde iPhone, iPad o Android" #: includes/class-ecwid-message-manager.php:254 msgid "Complete Setup" msgstr "Completar configuración" #: includes/class-ecwid-message-manager.php:253 msgid "Complete setup and start selling" msgstr "Complete la configuración y comience a vender" #: includes/class-ecwid-message-manager.php:242 msgid "Greetings! Your %s plugin is now active." msgstr "¡Enhorabuena! Su complemento de %s ya está activo." #: templates/debug.php:12 msgid "Download log file" msgstr "Descargar archivo de registro" #: templates/help.php:67 includes/oembed.php:75 includes/oembed.php:104 msgid "See more" msgstr "Ver más" #: ecwid-shopping-cart.php:1051 msgid "I have a problem with my %s store" msgstr "Tengo un problema con mi tienda de %s" #: includes/class-ecwid-message-manager.php:55 msgid "Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: \"The Wordpress function wp_remote_post() failed to connect a remote server because of some error: \"%s\". Seems like HTTP POST requests are disabled on this server\". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>." msgstr "Lo siento, hay un problema. Se supone que esta página muestra el panel de control de su tienda; sin embargo, este sitio web de Wordpress no parece poder conectarse al servidor de Ecwid para mostrar el panel de su tienda aquí. Es probable que esto se deba a una mala configuración del servidor; su proveedor de alojamiento web puede solucionarlo. Aquí hay una descripción más técnica del problema, la cual puede enviarle a su proveedor de alojamiento web: «La función de Wordpress wp_remote_post() no pudo conectarse a un servidor remoto debido al error: “%s”; parece que las solicitudes HTTP POST están inhabilitadas en este servidor». <br /><br />No dude en ponerse en contacto con nosotros en <a %s>wordpress@ecwid.com</a> y le ayudaremos a comunicarse con su proveedor de alojamiento web para pedirle que solucione el problema. <br /><br /> Mientras tanto, para gestionar su tienda, puede utilizar el panel de control web de Ecwid en <a %s>my.ecwid.com</a>. Su escaparate virtual está funcionando bien; puede echarle un vistazo aquí: <a %s>%s</a>." #: templates/store-popup.php:249 msgid "Open store dashboard" msgstr "Abrir el panel de la tienda" #: templates/store-popup.php:12 templates/store-popup.php:27 msgid "Store elements" msgstr "Elementos de la tienda" #: templates/reconnect-sso.php:10 msgid "Re-connect to Enable Control Panel" msgstr "Vuélvase a conectar para activar el panel de control" #: templates/reconnect-sso.php:8 msgid "Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page." msgstr "Gestione productos, supervise las ventas y ajuste la configuración: <nobr>todo sin</nobr> salir de esta página." #: templates/reconnect-sso.php:7 msgid "Your store Control Panel. Right here in WordPress." msgstr "Panel de control de su tienda. Aquí mismo en WordPress." #: ecwid-shopping-cart.php:2114 msgid "Orders" msgstr "Pedidos" #: includes/class-ecwid-nav-menus.php:168 ecwid-shopping-cart.php:2118 msgid "The store top-level categories are automatically added to this drop-down menu" msgstr "Las categorías de alto nivel de la tienda se añaden automáticamente a este menú desplegable" #: includes/class-ecwid-nav-menus.php:167 ecwid-shopping-cart.php:2117 msgid "Done" msgstr "Hecho" #: includes/class-ecwid-nav-menus.php:166 ecwid-shopping-cart.php:2116 msgid "Refresh categories list" msgstr "Actualizar la lista de categorías" #: includes/class-ecwid-nav-menus.php:165 msgid "Store Page" msgstr "Página de la tienda" #: includes/class-ecwid-nav-menus.php:319 msgid "Add to Menu" msgstr "Añadir al menú" #: includes/class-ecwid-nav-menus.php:316 msgid "Select All" msgstr "Seleccionar todo" #: includes/class-ecwid-nav-menus.php:369 msgid "Store with Categories Menu" msgstr "Tienda con menú de categorías" #: includes/class-ecwid-nav-menus.php:352 #: includes/class-ecwid-nav-menus.php:355 msgid "My Account" msgstr "Mi cuenta" #: includes/class-ecwid-nav-menus.php:335 #: includes/class-ecwid-floating-minicart.php:135 #: includes/class-ecwid-admin-storefront-page.php:279 msgid "Cart" msgstr "Carrito" #: includes/class-ecwid-admin.php:87 includes/class-ecwid-admin.php:88 #: includes/class-ecwid-products.php:228 ecwid-shopping-cart.php:2112 msgid "Products" msgstr "Productos" #: includes/class-ecwid-admin.php:79 includes/class-ecwid-admin.php:80 msgid "Sales" msgstr "Ventas" #: ecwid-shopping-cart.php:1119 msgid "Report a problem with the store" msgstr "Informar un problema con la tienda" #: ecwid-shopping-cart.php:1036 msgid "%s plugin doesn't work well with my \"%s\" theme" msgstr "El complemento %s no funciona bien con mi tema «%s»" #: templates/admin/welcome-connection-message.php:22 #: templates/admin/welcome-connection-message.php:28 msgid "Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL." msgstr "Parece que su sitio web no admite solicitudes POST remotas, las cuales son necesarias para que la API de %s funcione. Comuníquese con su proveedor de alojamiento web para habilitar cURL." #. Description of the plugin msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up." msgstr "Ecwid es un carrito de compras gratuito con todas las funciones. Se puede integrar fácilmente con cualquier blog de Wordpress y se configura en menos de 5 minutos." #. Plugin URI of the plugin msgid "http://www.ecwid.com?partner=wporg" msgstr "http://www.ecwid.com?partner=wporg" #: templates/store-svg.php:12 msgid "Demo Store" msgstr "Tienda de demostración" #: templates/store-svg.php:9 msgid "Your store will be shown here!" msgstr "¡Su tienda se mostrará aquí!" #: templates/product-popup.php:248 templates/store-popup.php:256 msgid "Update" msgstr "Actualizar" #: templates/store-popup.php:253 msgid "Insert into page" msgstr "Insertar en la página" #: templates/store-popup.php:246 msgid "Demo store" msgstr "Tienda de demostración" #: templates/store-popup.php:80 msgid "Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>" msgstr "Además, puede añadir controles de la tienda a la barra de herramientas de su sitio web mediante <a %s>«widgets» nativos de WordPress</a>." #: templates/store-popup.php:74 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:86 msgid "Show categories" msgstr "Mostrar categorías" #: templates/store-popup.php:66 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:94 msgid "Show minicart" msgstr "Mostrar minicarrito" #: templates/store-popup.php:58 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:78 msgid "Show search" msgstr "Mostrar búsqueda" #: templates/store-popup.php:53 msgid "Product catalog will be shown automatically" msgstr "El catálogo de productos se mostrará automáticamente" #: templates/store-popup.php:52 msgid "Choose widgets to show" msgstr "Elija los «widgets» a mostrar" #: templates/admin/welcome-create.php:7 msgid "Connect your store" msgstr "Conecte su tienda" #: templates/admin/welcome-no_oauth.php:6 #: templates/importer/import-no-token.tpl.php:6 #: includes/class-ecwid-message-manager.php:291 msgid "Connect" msgstr "Conectar" #: templates/admin/legacy-connect.tpl.php:68 msgid "Save and connect your %s store to the site" msgstr "Guarde y conecte su tienda de %s al sitio web" #: templates/admin/legacy-connect.tpl.php:59 msgid "Enter your Store ID here:" msgstr "Introduzca el ID de su tienda aquí:" #: templates/admin/legacy-connect.tpl.php:52 msgid "Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the \"Dashboard\" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration." msgstr "El ID de la tienda es un identificador único de cualquier tienda de %1$s, el cual consta de varios dígitos. Puede encontrarlo en la página «Panel» del panel de control de %1$s. El ID de la tienda se enviará en el correo electrónico de bienvenida después del registro." #: templates/admin/legacy-connect.tpl.php:50 msgid "Find your Store ID" msgstr "Encuentre el ID de su tienda" #: templates/admin/legacy-connect.tpl.php:46 msgid "You will be able to sign up through your existing Google, Facebook or PayPal profiles as well." msgstr "También podrá registrarse a través de sus perfiles existentes de Google, Facebook o PayPal." #: templates/admin/legacy-connect.tpl.php:42 msgid "I already have an account, sign in" msgstr "Ya tengo una cuenta, iniciar sesión" #: templates/admin/legacy-connect.tpl.php:35 msgid "Create a new %s account which you will use to manage your store and inventory. The registration is free." msgstr "Cree una nueva cuenta de %s que utilizará para gestionar su tienda e inventario. El registro es gratuito." #: templates/admin/legacy-connect.tpl.php:24 msgid "The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps." msgstr "El primer paso para abrir su negocio en línea: <br />añadamos una tienda a su sitio web de WordPress en <strong>3</strong> simples pasos." #: templates/admin/legacy-connect.tpl.php:21 msgid "Thank you for choosing %s to build your online store" msgstr "Gracias por elegir %s para construir su tienda en línea" #: templates/admin/simple-dashboard.php:58 msgid "Open control panel" msgstr "Abrir el panel de control" #: templates/admin/simple-dashboard.php:42 msgid "Your %s store is connected<br /> to your WordPress website" msgstr "Su tienda de %s está conectada<br /> a su sitio web de WordPress" #: templates/admin/simple-dashboard.php:39 msgid "Greetings!" msgstr "¡Saludos!" #: templates/admin/simple-dashboard.php:34 msgid "Your %s store is now connected<br /> to your WordPress website" msgstr "Su tienda de %s ahora está conectada<br /> a su sitio web de WordPress" #: templates/admin/simple-dashboard.php:31 msgid "Congratulations!" msgstr "¡Enhorabuena!" #: templates/admin/simple-dashboard.php:18 msgid "Disconnect store" msgstr "Desconectar tienda" #: templates/admin/legacy-connect.tpl.php:65 #: templates/admin/simple-dashboard.php:14 templates/store-popup.php:244 #: templates/store-svg.php:14 #: includes/integrations/class-ecwid-integration-gutenberg.php:104 #: includes/gutenberg/class-ecwid-gutenberg.php:130 msgid "Store ID" msgstr "ID de la tienda" #: templates/admin/welcome-connection-message.php:15 msgid "Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again." msgstr "Error de conexión: después de hacer clic en el botón, debe iniciar sesión y otorgar los permisos para poder utilizar nuestro complemento. Inténtelo de nuevo." #: templates/admin/legacy-connect.tpl.php:57 #: templates/admin/welcome-no_oauth.php:3 msgid "Enter your Store ID" msgstr "Introduzca el ID de su tienda" #: templates/store-popup.php:221 msgid "Default view mode on search results" msgstr "Modo de vista predeterminado en los resultados de búsqueda" #: templates/store-popup.php:214 templates/store-popup.php:232 msgid "Table" msgstr "Tabla" #: templates/store-popup.php:211 templates/store-popup.php:229 msgid "List" msgstr "Lista" #: templates/store-popup.php:208 templates/store-popup.php:226 msgid "Grid" msgstr "Cuadrícula" #: templates/store-popup.php:204 msgid "Default view mode on product pages" msgstr "Modo de vista predeterminado en las páginas de productos" #: templates/store-popup.php:184 msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products." msgstr "Aquí puede gestionar cuántos productos se mostrarán por página. Estas opciones definen valores máximos. Si no hay suficiente espacio para mostrar todas las columnas de productos, %s adaptará el número de columnas para mantener todos los productos." #: templates/store-popup.php:169 msgid "Table view" msgstr "Vista de tabla" #: templates/store-popup.php:152 msgid "List view" msgstr "Vista de lista" #: templates/store-popup.php:125 msgid "Grid view" msgstr "Vista de cuadrícula" #: templates/store-popup.php:123 msgid "Number of products per page" msgstr "Número de productos por página" #: templates/store-popup.php:191 msgid "Number of categories per row" msgstr "Número de categorías por fila" #: templates/advanced-settings.php:98 msgid "Save changes" msgstr "Guardar cambios" #: includes/class-ecwid-product-browser.php:202 msgid "Default category ID" msgstr "ID de categoría predeterminada" #: templates/store-popup.php:98 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:127 #: includes/integrations/class-ecwid-integration-gutenberg.php:427 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:56 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:248 msgid "Store root category" msgstr "Categoría raíz de la tienda" #: templates/store-popup.php:90 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:101 msgid "Category shown by default" msgstr "Categoría mostrada por defecto" #: templates/admin-message.php:47 msgid "Never show this message again" msgstr "Nunca mostrar este mensaje otra vez" #: templates/product-popup.php:194 lib/ecwid_platform.php:209 #: js/gutenberg/blocks.build.js:1 msgid "Price" msgstr "Precio" #: includes/class-ecwid-store-editor.php:75 #: includes/integrations/class-ecwid-integration-gutenberg.php:102 #: includes/gutenberg/class-ecwid-gutenberg.php:128 msgid "Edit Appearance" msgstr "Editar apariencia" #: includes/class-ecwid-store-editor.php:60 msgid "Edit Store" msgstr "Editar tienda" #: templates/store-popup.php:11 templates/store-popup.php:21 #: includes/class-ecwid-store-editor.php:52 msgid "Add Store" msgstr "Añadir tienda" #: includes/class-ecwid-message-manager.php:261 msgid "Back to Store Settings" msgstr "Regresar a la configuración de la tienda" #: includes/class-ecwid-message-manager.php:252 msgid "Your store is almost ready!" msgstr "¡Su tienda ya está casi lista!" #: includes/class-ecwid-message-manager.php:243 msgid "Take a few simple steps to complete store setup" msgstr "Siga unos sencillos pasos para completar la configuración de la tienda" #: includes/widgets/class-ecwid-widget-products-base.php:205 msgid "Number of products to show" msgstr "Número de productos para mostrar" #: includes/widgets/class-ecwid-widget-recently-viewed.php:89 msgid "Store Link Title" msgstr "Título del enlace de la tienda" #: templates/product-popup.php:183 includes/class-ecwid-product-browser.php:249 #: includes/widgets/class-ecwid-widget-products-base.php:199 #: js/gutenberg/blocks.build.js:1 msgid "Title" msgstr "Título" #: includes/widgets/class-ecwid-widget-recently-viewed.php:69 #: includes/widgets/class-ecwid-widget-recently-viewed.php:91 msgid "You have not viewed any product yet. Open store." msgstr "Aún no ha visto ningún producto. Abra la tienda." #: includes/widgets/class-ecwid-widget-recently-viewed.php:11 msgid "Recently Viewed Products" msgstr "Productos vistos recientemente" #: includes/widgets/class-ecwid-widget-recently-viewed.php:12 msgid "Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop." msgstr "Muestra una lista de productos vistos recientemente por el cliente para volver fácilmente a los productos que vieron en su tienda." #: includes/widgets/class-ecwid-widget-store-link.php:35 msgid "Text" msgstr "Texto" #: includes/themes/class-ecwid-theme-twentyseventeen.php:48 #: includes/themes/class-ecwid-theme-twentyseventeen.php:54 #: includes/themes/class-ecwid-theme-twentyfifteen.php:34 #: includes/themes/class-ecwid-theme-twentyfifteen.php:40 #: includes/themes/class-ecwid-theme-twentysixteen.php:36 #: includes/themes/class-ecwid-theme-twentysixteen.php:42 #: includes/widgets/class-ecwid-widget-store-link.php:31 msgid "Shop" msgstr "Tienda" #: includes/widgets/class-ecwid-widget-store-link.php:10 msgid "Store Page Link" msgstr "Enlace a la página de la tienda" #: includes/widgets/class-ecwid-widget-store-link.php:9 msgid "Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site." msgstr "Muestra un enlace a la página de la tienda en la barra lateral para que el cliente acceda rápidamente a su tienda desde cualquier página del sitio web." #: includes/widgets/class-ecwid-widget-vcategories.php:9 msgid "Store Categories" msgstr "Categorías de la tienda" #: includes/widgets/class-ecwid-widget-vcategories.php:8 msgid "Adds vertical categories block to let the customer navigate your store." msgstr "Añade un bloque de categorías verticales para permitir que el cliente navegue por su tienda." #: includes/class-ecwid-nav-menus.php:344 #: includes/class-ecwid-nav-menus.php:347 #: includes/widgets/class-ecwid-widget-search.php:13 msgid "Product Search" msgstr "Búsqueda de productos" #: includes/widgets/class-ecwid-widget-search.php:12 msgid "Displays a simple search box for your customers to find a product in your store" msgstr "Muestra un cuadro de búsqueda simple para que sus clientes encuentren un producto en su tienda." #: includes/widgets/class-ecwid-widget-minicart-miniview.php:8 msgid "Adds a compact cart widget for customer to see the products they added to the cart." msgstr "Añade un «widget» de carrito compacto para que el cliente vea los productos que se han añadido al carrito." #: includes/widgets/class-ecwid-widget-minicart.php:41 #: includes/widgets/class-ecwid-widget-random-product.php:67 #: includes/widgets/class-ecwid-widget-search.php:46 #: includes/widgets/nsf-minicart-editor.tpl.php:50 #: includes/widgets/class-ecwid-widget-minicart-miniview.php:41 #: includes/widgets/class-ecwid-widget-vcategories.php:39 #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:76 msgid "Title:" msgstr "Título:" #: includes/class-ecwid-nav-menus.php:338 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:20 msgid "Shopping Cart" msgstr "Carrito de compras" #: includes/widgets/class-ecwid-widget-minicart.php:8 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:19 msgid "Adds a cart widget for customer to see the products they added to the cart." msgstr "Añade un «widget» de carrito para que el cliente vea los productos que se han añadido al carrito." #: includes/widgets/class-ecwid-widget-badge.php:51 #: includes/widgets/class-ecwid-widget-badge.php:63 msgid "Ecwid e-commerce widgets" msgstr "«Widget» de comercio electrónico de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:45 #: includes/widgets/class-ecwid-widget-badge.php:57 msgid "Ecwid shopping cart" msgstr "Carrito de compras de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:39 #: includes/widgets/class-ecwid-widget-badge.php:75 msgid "Ecwid free shopping cart" msgstr "Carrito de compras gratuito de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:33 #: includes/widgets/class-ecwid-widget-badge.php:69 msgid "Ecwid ecommerce solution" msgstr "Solución de comercio electrónico de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:21 #: includes/widgets/class-ecwid-widget-badge.php:27 msgid "Ecwid shopping cart widget" msgstr "«Widget» de carrito de compras de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:14 msgid "Ecwid Badge" msgstr "Distintivo de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:13 msgid "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid." msgstr "¿Le gusta Ecwid y quiere ayudarlo a crecer? Puede añadir este elegante distintivo «Powered by Ecwid» en su sitio web para mostrarles a sus visitantes que es un usuario orgulloso de Ecwid." #: ecwid-shopping-cart.php:2791 msgid "Recommendations for Your Online Store" msgstr "Recomendaciones para su tienda en línea" #: includes/class-ecwid-admin.php:528 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:77 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:87 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:95 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:103 #: ecwid-shopping-cart.php:2056 msgid "Settings" msgstr "Configuraciones" #: includes/class-ecwid-admin.php:165 msgid "Advanced" msgstr "Avanzado" #: includes/class-ecwid-admin.php:164 msgid "Advanced settings" msgstr "Configuraciones avanzadas" #: templates/product-popup.php:206 templates/store-popup.php:14 #: templates/store-popup.php:34 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:44 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:78 #: js/gutenberg/blocks.build.js:1 msgid "Appearance" msgstr "Apariencia" #: includes/class-ecwid-admin.php:28 includes/class-ecwid-admin.php:59 #: includes/class-ecwid-admin.php:459 ecwid-shopping-cart.php:2110 msgid "Dashboard" msgstr "Panel" #: includes/class-ecwid-admin.php:57 ecwid-shopping-cart.php:2056 msgid "Setup" msgstr "Configuración" #: includes/class-ecwid-admin.php:47 msgid "%s shopping cart settings" msgstr "Configuraciones del carrito de compras de %s" #: includes/class-ecwid-nav-menus.php:132 #: includes/class-ecwid-nav-menus.php:361 #: includes/class-ecwid-nav-menus.php:364 #: includes/class-ecwid-nav-menus.php:372 includes/class-ecwid-admin.php:206 #: includes/class-ecwid-admin.php:207 includes/class-ecwid-admin.php:220 #: includes/class-ecwid-admin.php:221 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:63 #: includes/class-ecwid-admin-storefront-page.php:257 #: ecwid-shopping-cart.php:1657 msgid "Store" msgstr "Tienda" #: ecwid-shopping-cart.php:1306 msgid "<a %s>Online store powered by %s</a>" msgstr "<a %s>Tienda en línea con tecnología de %s</a>" #: includes/class-ecwid-admin.php:489 msgid "Sell on Facebook" msgstr "Vender en Facebook" #: templates/admin/simple-dashboard.php:48 ecwid-shopping-cart.php:1094 msgid "Visit storefront" msgstr "Visitar escaparate virtual" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/languages/ecwid-shopping-cart-es_MX.mo������������������������������������������0000644�����������������00000225044�15122273603�0017606 0����������������������������������������������������������������������������������������������������ustar�00�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������e�����D��5��l&������@3�����A3��H���Y3�����3�����3�����3�����3�����3�� ���3��.���3�� ���4�� ��� 4�����,4�����J4�����e4����4�����g6��B���6�����6�����6�����6�����7��$���97�����^7�����r7�����7�����7��/���r8�� ���8�� ���8�����8�����8�����8�����8�����9��#���%9�� ���I9�����T9�����o9�����~9�� ���9�� ���9��>���9��"��� :�����-:�����:��k���:��K���h;��S���;��A���<��R���J<��G���<��4���<�� ���=�����&=�����/=��&���A=�����h=��T���{=�� ���=�����=�����=�����=�����>�����>�����#>�� ���*>�����8>�����?>�� ���G>�� ���S>�� ���`>�����l>�����>��4���>�� ���>�����>�����>�����>��X���>�� ���V?�����`?��/���g?��,���?�����?�����?�����?�� ���?�� ���?�����?�� ���?����� @�����@�����,@�����A@�����[@�����{@�����@�����@�����@�����@�����@�����@��.���@�����A�����5A��D���LA�����A�����A�� ���A�� ���A�����A�����A�����A����� B����� B��x���3B�����B�� ���B�����B�� ���B�����B�����C�����C�����*C�� ���=C�����JC��5���\C��h���C�����C�����D�� ���D�� ���D��5���D�����E�� ���E��x���%E��i���E�����F�����F�����4F�����QF�����bF�����F�� ���F�����F�����G�����$G��"���7G��#���ZG��/���~G�� ���G�� ���G�����G�����G�����G�����G�����H�����H�����-H�����?H��!���WH�����yH�����H��6���H��!���H�����H��*���I��%���:I�����`I��'���vI�����I�����I��,���I�����I��q���J��s���yJ��#���J��H���K��O���ZK��1���K��s���K�� ���PL�����\L��v���L�����uM��$���zM�����M�����M�����M�� ���M�����M�����M����� N��s���N�����N�����N�����N��=��N�����P����P����Q�����R�����R����� S�����S�� ��� S�� ���.S�� ���;S�� ���FS�� ���TS�����^S�����S�����T�����T�����T��B���T��$���)U�����NU�����VU�����mU�� ���U�����U�����U�� ���U�����U�� ���U��(���U�����V�� ���V�����V�����#V��.���V�����W��D���W��h���%X�����X��_���X��C���X�����7Y�����IY��/���_Y��/���Y�����Y��/���Y��(���Z�����-Z��9���GZ��I���Z��2���Z��"���Z��:���![�����\[��"���t[��!���[�����[�����[�����[�����[��$��� \��*���1\��B���\\�����\�� ���\�����\�� ���\�����\��+���\�����]��-���,]��P���Z]�����]��#���]��'���]��)��� ^�� ���7^�����X^��%���g^��+���^��+���^�����^�����_�����_�����!_�� ���2_��$���?_��9���d_��%���_��:���_�����_�����`�����`�����&`�����(`�� ���=`�� ���K`�� ���Y`�� ���c`�����o`�����`�����`�� ���`�����`�����`�� ���`�����`�����`�� ���`�����`�����oa�����a�����a��S���a�����a��'���a��[���'b�� ���b�����b�� ���b�����b�� ���b�� ���b�����b�����b�� ���b��9���b�����c�� ���:c�� ���Dc�� ���Nc�� ���Xc�����bc�����wc��I���Jd�����d�����d�����d�� ���d�� ���d�� ���e�����e�� ��� e�����-e�����@e�����Ue�����]e�����de�����je�����if��#���Og�����sg�� ���g�����g�����lh�����th�� ���i�� ���i�����i�����%i��O��*i��4���zj�����j�� ���j�� ���j�����j�����j�� ���j�����j�� ����k����� k�����k�����'k�����:k�����Rk�� ���jk�����vk�����k�����k�����k��+���k�����k�� ��� l�����l�����*l�����Bl�����al�� ���xl�����l��I���l��'���l�����m�����m�����$m�����=m�����Em��#���Xm�� ���|m�����m�� ���m�����m�����m�����m��"���m�����m��%���n�� ���4n�����>n�����Vn�����en�����n�����n�����n�����n�����n�����n�����n��*���n�� ���n�����n�����n�����o�����o�����/o�� ���8o�����Co�����So�����do�����vo�� ���o��"���o�����o�����o�� ���o�����o�����o�����p����� p�����p�� ���"p�����0p��#���Kp�����op�����p�����p�����p�����p�����p��V���p�� ���Bq�� ���cq�����qq�� ���q�����q��&���q��(���q�����q�����r�� ���&r�����2r�� ���Br�� ��cr�� ���ns�����ys��(���s��*���s����s�� ���ow�� ���zw�����w�����w��.���$x�����Sx�����Yx�����jx�����x�����x�����x�����x�����x�����y�����z�����0z�� ���Az�����Lz�����\z�����rz�����z�����z�����z�����z�����z�����z�� ���z�����{�����{�����${�����4{�����I{�� ���O{��/���Z{��N���{�����{�� ���{��4���{�����|��=���|�����}��-���}�����}��%���~��M���~�������P�����H���h��P��������������� ����� ���"�����/�����A�����H�����ۀ������� ��4��E��>�������]��������l��%��^��*����*����y���ڊ��>���T�������h���5��L���������� ������������������,�����5�����<�����P�����l�����|�������������������������ԍ����������������� �����!��� ��j���B����������E��^���ŏ�����$�����,�����F�� ���V�����c������� ���������C����B����k���@���������������V�� ������0���!��^���R�������:���Ę��>��������>�����N�����j�� �����2�����?���Ù����������֚������������y�����A��������Q�����o������:��������J�����_�� �����"��������Þ��"���ߞ��H�����)���K�����u�������&�����(���ן���������������� �����4����G�����$��e���:��'��������Ȣ�� ���ˢ�����֢�� ����������5����� ���M�� ���Y�����f�������,�������̣�����W��B���v��!��������ۦ��!����������0���=�����n����������������*���������������(�����!���1�����S��*���p�������+����� �����!����������6���)��1���`�������C�����/����������!��������2��e�����n���&��Z�����o�����^���`��R�������������,�����5��5���O�������h����� ��� �� �����!���!��)���C�����m�����}�������������������������������� ���Ӱ������������:��������O�� ���`�����n�������`����� ����� �����=�����9���W�������������������������β�� ����� ����� �����%�����!���(�����J��5���j��(��������ɳ��%���ҳ�������!���������"�����2��C���B��(����������g���ϴ�����7�����Q��.���j�������������������������ҵ������������%�����!���Ŷ�� �����!�������������-�����J�����e�� ����������8�����j��������O������� ��������(��I���7��$���������������x���@�������'���Ѻ��5��������/�����G�������������������������6��9���U��;�����0���˼���������������,�����4�����H�����b�����u�����������������2�����!�����#���5��I���Y��+��������Ͼ��6�����/���%�����U��2���s��&��������Ϳ��E��������2�����D�������*���c��P�����`�����:���@�����{�� ��� ���������������U��3���[������������'���������������5��������D�����`��,�����+��� ��$���L��t��q�������A����h�������6��)���R�����|����������������� �����$�������������������������$����������Y�����*���?�����j�����r�����������������%������������� �� ���$��4���/�� ���d�����p������������;����������D�����g��������l��p���t��Q��������7�����K��]���c��>�����������D�����1���_�������I�����g�����/���[��$�����7����������0�����%���8��"���^������������%�����/�����7�����@���1��.���r�������#����� ����������)����������>���,��h���k��!�����%�����1�����3���N��'����������(�����)�����)��������B�����a�����������������-�����E�����-���+��8���Y������� ��������������� ����������������������� �����7�����J�����R�����[�� ���m�����w������������������������������}������������s��������*��/���E��q���u������������ ��������&�� ���-�� ���7�� ���A�����L�� ���S��A���_��#��������������� ����� ����������)����c���H������� �����!���������� ��������+��#���<�����`�����q����������������������I���������%��������(�� ���:�����G����������$���������������������������9���������� ����� ����� ����� ��� ����������*�����1�����B�����K�����f��#�����%��������������� ����� �����+���5��7���a��"���������������*�����1�����$���C�����h�� ���}��a�����0�������������/�����?�����^�� ���g��4����� ������������������������������5���-�����c��(����� �����"����������"������������������ �����"�����&�����-�����>��-���F�����t�����������������"���������������������������������2�����E��0���T��&��������������������������������� ����������#��"���6��+���Y�������/�����!����������+��������(�����<��(������������������ ��$���;��8���`��8�����)�����#�������� �����2��)���N��M��x�������$�����2�����L���-��,��z�� ��������������������?���������������!�����#��������7�����V�����u��������������3�����S�����l�� �������������������������$�����$���+�����P�����n�������������������������������������G�����W���C������������8����������Y����������:���z�����'����_��������X���&�^����U�������4����<� ���Q� ���^����l������������M�����#��������� �u���= ��� �@�� �@���U��H�����P���:�����~���:�a�����������1����E����]����v� ��������$������������ ���� ��������,���6����c������������� ����#���������������(�]���� ��� ��������0� ���I����W�����V��&����}���U�`������H�+�����������'��� �2��� �^����!����_!�A���v!�G���!�����"����"�$���6"� ���["�8���g"�;���"�5��"� ���$����3$����$����$�R���%����%���� &���-&�[��� (����e(� ���}(����(�"���(����(�"���(�H���(�)���9)����c)�(���~)����)����)����)����)����)����*��������I����������������k������R��W��y����$��%���������������������������������������#�����y���R��#��������J���Z���������?���B��^��>������������������������� ��� ��3����1�����U������>�������K��q����������������������-���������������������v���8������:���/������g��d�����������������S��?�����������������������'���������,������������j��Z��������P���������W������������S���������]����������T����������� �������6�������������������r�������������c��9����������,������������������k��������������%���������������������������������������������L���"�������a����������W��t�������������������}��.������ ��$������K������G���������~���������������0������w������������E��������7����������������������������Q��������F������������������:��\�����������������O�����X��'��*��3������1������ ���������������������u������������9�����E�����������C�����������������������������?������8��a��_���b�������L������@��&������*��I��C���J�����Y���������D������������$���������;��F���������N������G������'���������������0�����@�����^��������c�����������������u����>��:��������.�����������M��j���[��S����������������4������� ������������H�������������@���������������K�����]���������P���&�������������������%���� ��c������h��X���A��������#�����������z�������3�����(����������������������������������������������Q��������e�������������-����������i���������D����p�������!��������������(������������X��5����7���������=��������������;������N���������P������������������T��������������\������Z����������������������&����� ��������� ���`�������|�����������`������������<���������e���+�������A�����=����������������������)�������Q������������������������f��!����� ���b��a���M��{�������<��7�������������������������������������H��������6��O��s���`����������9�����*���������-��}���"���������r���������0��������������{������������������������������������l��H����������v����d��/����� ��]���t���p�����2�����������d��������g������U���������C�������w���������[���l������������������������<��������� ���o���1��� ����������V��f������N�� ��E��������������������������������� �����������������������/������,��������~�����������������������!������[����n�����������_��"�����(�������2���J��x��h���_���� ��������o������M������4��=��8������������2����� ��4������������m���������������������������5��n��I���;�����)������6��L��V������������+����+��A�������������������������Y��B��F������ �������)��������m��i�����������5���^������|���z���������������������U����������x�����������\����q������������O���������������V����������b���������������������������������������Y�������������.�����D������������������B�������G��s�������������R�����T����e���������� Choose another product� Thank you very much for contacting us! We will get back to you shortly.�"In stock" label�%s�%s Blog�%s Shopping Cart�%s Store�%s Store Page�%s plugin doesn't work well with my "%s" theme�%s product�%s products�%s products and %s categories�%s products and categories�%s shopping cart settings�%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site.�%s — Advanced settings�(You will be able to confirm the changes before the actual import)�2 columns, image on the left�2 columns, image on the right�3 columns, image on the left�3 columns, image on the right�<a %s>Online store powered by %s</a>�<a %s>Reconnect</a>�<a href="admin.php?page=�<b>%s</b> categories�A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use "/shop" or "/products".�Action required: please connect your %s account�Add Product�Add Store�Add Store Page to Menu�Add a category page�Add a product page�Add a search and filters page�Add a store page�Add an Online Store to Your Website�Add border�Add cart and checkout page�Add categories�Add store page to the site menu�Add storefront (product listing)�Add to Menu�Add your %s store to the website and start selling in minutes.�Add your store to other site pages�Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href="%s" target="_blank">WordPress Settings > Reading</a>�Additional store pages�Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>�Adds a cart widget for customer to see the products they added to the cart.�Adds a compact cart widget for customer to see the products they added to the cart.�Adds a shopping cart widget to the top right corner of your site.�Adds root categories list to the sidebar to let your customers navigate the store.�Adds vertical categories block to let the customer navigate your store.�Adjust your store design to fit your business needs.�Admin Label�Advanced�Advanced settings�After import, your %s store will have �All Sales Channels�Along with the store catalog, you can add other widgets and texts to the store page.�Appearance�Apps�Available qty in stock�Back to Store Settings�Background color�Bag�Basket�Before You Go�Border�Border:�Bottom left�Bottom right�Breadcrumbs�Browse all products.�Browse by Category�Bulk import products and categories to your %s store�Button color�Buy Now�Buy Now Button�Buy now buttons�By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>.�CSS Class�CSS ID�Can you share the name of the plugin you chose?�Can you share your feedback? What was wrong?�Cancel�Cart�Cart and Checkout�Cart icon�Cart icon:�Catalog�Categories�Category�Category List Appearance�Category card layout�Category shown by default�Category thumbnail aspect ratio�Category thumbnail size�Center�Center align on a page�Change�Change store content�Choose Product�Choose product�Choose product properties to display in widget�Choose the main store page�Choose widgets to show�Click the connect button to get rights to update the product catalog�Color settings�Complete Setup�Complete setup and start selling�Configuration�Congratulations!�Connect�Connect Your Store�Connect your %s store�Connect your store�Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again.�Contact Support�Contact us�Content�Copying products and categories.�Create Cart Page�Create Category Page�Create Product Page�Create Search Page�Create Store�Create Store Page�Create a landing page featuring one of your products.�Create a new %s account which you will use to manage your store and inventory. The registration is free.�Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website.�Create new account�Create store�Current Page�Current URL slug: /<span data-ec-store-slug>%s</span>�Customer Single Sign-On�Customers�Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers.�Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout.�Customize design�Customize store appearance�Customize store page address�Customize widget�Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand.�Cyan bluish gray�Dashboard�Default category�Default category ID�Default product_ID�Default view mode on product pages�Default view mode on search results�Deleted products synchronized: %1$s out of %2$s�Demo Store�Demo store�Design�Design and content�Detect automatically�Disconnect store�Display a buy button�Display breadcrumbs�Display cart icon�Display categories menu�Display categories navigation bar�Display category page�Display footer menu�Display product page with description and a buy button�Display product with a buy button�Display search box�Display search page with filters on a side�Display shopping bag link and summary�Display shopping cart�Display shopping cart and checkout page�Display sign in link�Display sort by link�Display the shopping cart icon on site pages�Displayed product�Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site.�Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop.�Displays a list of random products.�Displays a random product from your store to attract customer attention.�Displays a simple search box for your customers to find a product in your store�Displays storefront: product listing and checkout�Displays the latest added products from your store. Show new products to returning customers to drive repeat sales.�Do not show�Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid.�Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site.�Done�Download <a href="%s">import log</a>�Download log file�Draft�E.g. How to set up shipping�Ecwid Badge�Ecwid Ecommerce�Ecwid Ecommerce Shopping Cart�Ecwid Menu Item�Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center�Ecwid e-commerce widgets�Ecwid ecommerce solution�Ecwid free shopping cart�Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">More details.</a>�Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up.�Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href="%s">TemplateMonster themes</a>�Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">More details.</a>�Ecwid shopping cart�Ecwid shopping cart widget�Edit�Edit Appearance�Edit Category�Edit Product�Edit Store�Edit URL Slug�Edit page�Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page.�Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space.�Enter your Store ID�Enter your Store ID here:�Extensions for your Store�Feature a specific store category on a separate page of your site.�Feature your products in the sidebar�Filters�Filters panel position�Find your Store ID�First Page�Frequently Asked Questions�Get %s mobile app�Go to Pages�Go to Your %s Products�Greetings!�Greetings! Your %s plugin is now active.�Grid�Grid view�Help�Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars.�Help customers find your store on the website.�Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products.�Here you can create the content that will be used within the module.�Here, we will help you uploading your product catalog to %s from another shopping cart or other sources.�Hide�Highlight products, categories, and other store pages by adding them to separate website pages.�Highlight your best sellers or new products in the website sidebar.�Horizontal indent�Horizontal thumbnails�How can I add a cart widget to my site sidebar?�How can I manage my store from a mobile device?�How can we help you?�How do I add store categories to the site menu?�How do I put my products in the sitemap?�How much does Ecwid cost?�How secure is this plugin? Is my store PCI DSS compliant?�How to add a single product with the add to bag button to the site pages?�How to set up a storefront on Facebook with Ecwid?�I already have an account, sign in�I couldn’t find a WordPress theme that goes well with %s�I found a better plugin�I have a problem using this plugin�I have a problem with my %s store�I use this WordPress theme: %s�Icon�Icon and item count�Icon, label and item count�Icon, label, item count and subtotal�Icon, label, item count, subtotal and link�If you have a moment, please let us know why you are deactivating:�Image and title on mouse over�Image feed�Image gallery layout�Image only�Import�Import Your Products From Woocommerce to %s�Import completed�Import completed. <a href="%s">Run again.</a>�Import creates new products and update the existing products with matching SKUs.�Import is in Progress�Import my products from WooCommerce�Import product catalog from WooCommerce�Import product catalog from other sources�Import products to your %s store�Import summary�Import your WooCommerce catalog to %s�Import your products from WooCommerce to %s�Import your products from Woocommerce to %s�Imported <b>%s</b> products�Importing %s of %s items�Insert�Insert into page�Instant site�Integration with search on your site�Is it possible to display my store on the site home page?�Is there a WordPress theme for Ecwid?�It's a temporary deactivation. Please do not ask me again.�Item count only�Justify�Knowledge Base�L�Label and item count�Landscape 3:2�Landscape 4:3�Last Page�Last update�Latest Products�Layout�Layout:�Learn more�Left�Light green cyan�Link color�Linked product�List�List view�Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL.�Luminous vivid amber�Luminous vivid orange�M�Make your store accessible from the site menu so your customers can easily find it.�Manage Sidebar�Manage Store on iPhone, iPad or Android�Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page.�Manage store�Manage storefront�Marketing�Mobile�My Account�My Profile�My Sales�Name�Navigation�Need help importing your products from WooCommerce to %s?�Never show this message again�Next Page�Next page�No Thanks�No border�Not synchronized yet�Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The "Show on store pages" and "Show when empty" options will apply to the cart widget on site when published�Nothing found for <span class="empty-page__term">"{{ data.term }}"</span>�Number of categories per row�Number of products per page�Number of products to show�On the left�On the right�Online Store�Online Store Apps�Online store�Open control panel�Open store dashboard�Options�Orders�Other�Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target="_blank" href="%s">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans.�Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">our customer support team</a>.�Page with that name already exists.�Pale cyan blue�Pale pink�Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>�Payment�Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers.�Pick Category�Pick Product�Picture�Pill�Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target="_blank">"Billing & Plans"</a></nobr> page in your Ecwid store control panel.�Please subscribe to a paid plan to get this feature.�Plugins for Ecwid�Portrait 2:3�Portrait 3:4�Position�Preview�Previous Page�Price�Price color�Product�Product Card Large�Product Card Small�Product List Appearance�Product Page Appearance�Product SKU�Product Search�Product Search Box�Product Search and filters�Product card text align�Product catalog will be shown automatically�Product page layout�Product price�Product quantity�Product sidebar content�Product thumbnail aspect ratio�Product thumbnail size�Product title�Products�Products are successfully synchronized. The product pages are up to date.�Products synchronized: %1$s out of %2$s�Promote your store�Provide access.�Provided by <a %s>%s</a>�Publish�Publish Store Page�Publish the page to use this option�Published�Quantity�Questions?�Random Product�Random Products�Rate %s at WordPress.org�Re-connect to Enable Control Panel�Recently Viewed Products�Recommendations for Your Online Store�Rectangle�Refresh categories list�Register at %s�Report a problem with the store�Reports�Right�S�SKU�Sales�Sales channels�Save�Save and connect your %s store to the site�Save changes�Search�Search and Filters�Search products�Search the Knowledge Base�See more�Select All�Select category�Selected Product�Selected category�Sell on Facebook�Send Message�Send a message to our support team�Send message failed�Set Up Your Store�Set manually�Set up your store�Settings�Setup�Shipping & Pickup�Shop�Shopping Cart�Shopping Cart (deprecated)�Shopping Cart Floating (deprecated)�Shopping Cart Icon�Shopping Cart Mini (deprecated)�Shopping Cart Widget�Show�Show additional image on hover�Show categories�Show customers that they can use a search and filters to find desired products faster.�Show description under the image�Show minicart�Show on all pages�Show on hover�Show on store pages�Show price inside the "Buy now" button�Show price inside the «Buy now» button�Show product card border�Show product thumbnails�Show search�Show when empty�Show your store on the home page�Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again.�Small icon�Small icon and item count�Some of the items could not be imported.�Sorry we're having technical difficulties.�Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: "The Wordpress function wp_remote_post() failed to connect a remote server because of some error: "%s". Seems like HTTP POST requests are disabled on this server". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>.�Square 1:1�Start Import�Status�Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store.�Still have questions about Ecwid? Let us know!�Store�Store Categories�Store Categories Menu�Store Category Page�Store Front Page�Store Home Page�Store ID�Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the "Dashboard" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration.�Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>.�Store Link Title�Store Navigation�Store Page�Store Page Link�Store Root Categories�Store appearance�Store elements�Store management�Store page content�Store page on your site�Store root category�Store with Categories Menu�Storefront�Subject�Submit & Deactivate�Switch to draft�Synchronize products�Table�Table view�Take a few simple steps to complete store setup�Take advantage of powerful apps and extensions designed to enhance your store.�Text�Text color�Thank you for choosing %s to build your online store�The block is hidden because you don't have categories in your store. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Add categories.</a>�The category that is shown by default on the Store Front Page�The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps.�The plugin doesn't support the feature I want�The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href="%s" target="_blank">adjust the cart icon appearance</a>.�The store is not visible on your site�The store top-level categories are automatically added to this drop-down menu�Themes for Ecwid�This import will copy your WooCommerce products and categories to your %s store.�This is a demo store. Create your store to see your store products here.�This will change the label of the module in the builder for easy identification.�Title�Title on image�Title only�Title or SKU�Title under image�Title:�To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings.�To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>.�To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>�To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the "Add product" dialog.�To create sitemap for your Wordpress site we suggest using <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> or <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target="_blank" href="https://www.ecwid.com/pricing">paid Ecwid users</a>.�To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission.�To enable this feature, the plugin needs a permission to read your store product information.�To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">How to use it.</a>�To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>�To manage your store, go to <a %s>the Store Dashboard page</a>�To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission.�To show your storefront instead of the demo store, connect your existing %s account or create a new one.�To start selling, add a page to your site where the storefront will display.�Top left�Top right�Try another search.�Type in your message here�URL Slug�Update�Update your catalog�Upgrade to get this feature�Vertical indent�Vertical thumbnails�Very dark gray�Very light gray�View Store Page�View demo store page�View store page�Visit storefront�Vivid cyan blue�Vivid green cyan�Vivid red�Want to connect another %s store?�Warning: some of your online store features are disabled. Please contact your hosting provider to resolve.�We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?�We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you.�We're synchronizing your products. This may take a few minutes. Please do not reload the page.�Website�What feature do you need?�What was wrong?�What's next?�While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site.�Wholesale prices�You can add product search box, cart widget and more on the <a href="%s">"Appearance / Widgets page"</a> here in your site admin. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">More details.</a>�You can add the entire storefront, categories, products, or "Buy now" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block.�You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open "Appearance > Menus" in your WordPress control panel and add the "Store with Categories Menu" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site.�You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">More details.</a>�You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel.�You can display your store on the site main page. Adjust the "Reading" settings of your site as described in our <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">Help Center.</a>�You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href="%1$s">Appearance → Customize → %2$s</a>” menu to enable it.�You can enable filters in the store settings: (“<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Settings → Product Filters</a>”).�You can send a new request here.�You have not viewed any product yet. Open store.�You will be able to sign up through your existing Google, Facebook or PayPal profiles as well.�Your %s store has �Your %s store is connected<br /> to your WordPress website�Your %s store is now connected<br /> to your WordPress website�Your Storefront�Your WooCommerce store has �Your email has been sent�Your product�Your store Control Panel. Right here in WordPress.�Your store has been created. Preparing your store dashboard ...�Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar.�Your store is almost ready!�Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display.�Your store page�Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders.�Your store page is published. Customers can browse your store at �Your store will be shown here�Your store will be shown here!�Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data.�[%s] WordPress plugin deactivation feedback (store ID: %s)�customize appearance�gutenberg-product-blockContent�gutenberg-store-block-stubStore�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�or <a %s>Browse the Help Center�product-browser-attributesProduct SKU�product-browser-attributesProduct price�select product�selected product�vc-tabOnline store�«Buy now» button�PO-Revision-Date: 2020-10-12 12:46 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: Poedit 2.4.1 Language: es Project-Id-Version: temporary-strings X-Crowdin-Project: temporary-strings X-Crowdin-Project-ID: 295314 X-Crowdin-Language: es-ES X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po X-Crowdin-File-ID: 988 Language-Team: Spanish Last-Translator: � Elegir otro producto� ¡Muchas gracias por ponerse en contacto con nosotros! Nos pondremos en contacto con usted en breve.�Etiqueta de productos «En existencia»�%s�Blog de %s�Carrito de compras de %s�Tienda de %s�Página de la tienda de %s�El complemento %s no funciona bien con mi tema «%s»�%s producto�%s productos�%s productos y %s categorías�%s productos y categorías�Configuraciones del carrito de compras de %s�%s almacena los datos de sus productos de forma segura en la nube. Las páginas de productos se muestran sobre la marcha cuando un cliente navega por su tienda. Por lo que, básicamente, los productos no se almacenan en el sitio web, por eso la búsqueda en el sitio web no encuentra páginas de productos mientras busca en las páginas del sitio web y en las publicaciones. Esta opción habilita un modo de almacenamiento local: los productos se almacenarán tanto en la nube como en su sitio web. Los resultados de la búsqueda en el sitio web incluirán las páginas de productos, así como las páginas o publicaciones habituales de su sitio web.�%s — Configuración avanzada�(podrá confirmar los cambios antes de la importación definitiva)�2 columnas, imagen a la izquierda�2 columnas, imagen a la derecha�3 columnas, imagen a la izquierda�3 columnas, imagen a la derecha�<a %s>Tienda en línea con tecnología de %s</a>�<a %s>Volver a conectar</a>�<a href="admin.php?page=�<b>%s</b> categorías�Un «slug» es la última parte de una URL. Puede crear un «slug» personalizado para la página de su tienda. Es mejor que sea corto, ya que los clientes y los motores de búsqueda prefieren las URL cortas. Por ejemplo, utilice «/tienda» o «/productos».�Acción requerida: conecte su cuenta de %s�Añadir producto�Añadir tienda�Añadir la página de la tienda al menú�Añadir una página de categoría�Añadir página de productos�Añadir una página de búsqueda y filtros�Añadir una página de tienda�Añadir una tienda en línea a su sitio web�Añadir borde�Añadir carrito y página de pago�Añadir categorías�Añadir la página de la tienda al menú del sitio web�Añadir escaparate virtual (listado de productos)�Añadir al menú�Añada su tienda de %s al sitio web y comience a vender en minutos.�Añada su tienda a otras páginas del sitio web�Añada su escaparate virtual a la página de inicio del sitio web para que sea más notable. También puede modificar la configuración de la página de inicio del sitio web en <a href="%s" target="_blank">Configuración de WordPress > Lectura</a>.�Páginas adicionales de la tienda�Además, puede añadir controles de la tienda a la barra de herramientas de su sitio web mediante <a %s>«widgets» nativos de WordPress</a>.�Añade un «widget» de carrito para que el cliente vea los productos que se han añadido al carrito.�Añade un «widget» de carrito compacto para que el cliente vea los productos que se han añadido al carrito.�Añada un «widget» de carrito de compras en la esquina superior derecha de su sitio web.�Añade la lista de categorías raíz a la barra lateral para que sus clientes puedan desplazarse por la tienda.�Añade un bloque de categorías verticales para permitir que el cliente navegue por su tienda.�Ajuste el diseño de su tienda para que se adapte a las necesidades de su negocio.�Etiqueta de administrador�Avanzado�Configuraciones avanzadas�Después de la importación, su tienda de %s tendrá �Todos los canales de venta�Junto con el catálogo de la tienda, puede añadir otros «widgets» y textos a la página de la tienda.�Apariencia�Aplicaciones�Cantidad disponible en existencia�Regresar a la configuración de la tienda�Color del fondo�Bolsa�Cesta�Antes de que se vaya�Borde�Borde:�Abajo a la izquierda�Abajo a la derecha�Migas de pan�Explorar todos los productos.�Buscar por categoría�Importar en masa productos y categorías a su tienda de %s�Color del botón�Comprar ahora�Botón «Comprar ahora»�Botones de «Comprar ahora»�Al continuar, acepta los <a %s>Términos de servicio</a> y la <a %s>Política de privacidad</a>.�Clase CSS�ID de CSS�¿Podría compartir el nombre del complemento que ha elegido?�¿Podría compartir su opinión? ¿Qué fue lo que pasó?�Cancelar�Carrito�Carrito y pago�Icono del carrito de compras�Icono del carrito:�Catálogo�Categorías�Categoría�Apariencia de la lista de categorías�Diseño de la ficha de categoría�Categoría mostrada por defecto�Relación de aspecto de la miniatura de la categoría�Tamaño de la miniatura de la categoría�Centrado�Centrar la alineación en una página�Cambiar�Cambiar el contenido de la tienda�Elegir producto�Elegir producto�Elija las propiedades del producto para mostrarlas en el «widget»�Elegir la página principal de la tienda�Elija los «widgets» a mostrar�Haga clic en el botón «Conectar» para obtener los permisos para actualizar el catálogo de productos�Configuración de colores�Completar configuración�Complete la configuración y comience a vender�Configuración�¡Enhorabuena!�Conectar�Conecte su tienda�Conecte su tienda de %s�Conecte su tienda�Error de conexión: después de hacer clic en el botón, debe iniciar sesión y otorgar los permisos para poder utilizar nuestro complemento. Inténtelo de nuevo.�Ponerse en contacto con la asistencia�Póngase en contacto con nosotros�Contenido�Copia de productos y categorías.�Crear página del carrito�Crear página de categorías�Crear página de productos�Crear página de búsqueda�Crear tienda�Crear la página de la tienda�Cree una página de aterrizaje con uno de sus productos.�Cree una nueva cuenta de %s que utilizará para gestionar su tienda e inventario. El registro es gratuito.�Cree una nueva tienda o, si ya tiene una cuenta de %s, conéctela. El complemento le guiará a través de la configuración de la tienda y le ayudará a publicarla en su sitio web.�Crear una nueva cuenta�Crear tienda�Página actual�«Slug» actual de la dirección URL: /<span data-ec-store-slug>%s</span>�Inicio de sesión único del cliente�Clientes�Los clientes no pueden ver la página de su tienda porque está en un borrador. Publique la página para que esté disponible para sus clientes.�Los clientes van a la página del carrito para consultar los productos que han añadido al mismo y proceder con el pago.�Personalizar el diseño�Personalizar la apariencia de la tienda�Personalizar la dirección de la página de la tienda�Personalizar «widget»�Personalice la apariencia de su tienda para que se ajuste a las necesidades de su negocio. Cree la apariencia para su tienda que más se parezca a su marca.�Gris cian azulado�Panel�Categoría predeterminada�ID de categoría predeterminada�ID del producto predeterminado�Modo de vista predeterminado en las páginas de productos�Modo de vista predeterminado en los resultados de búsqueda�Productos eliminados sincronizados: %1$s de %2$s�Tienda de demostración�Tienda de demostración�Diseño�Diseño y contenido�Detectar automáticamente�Desconectar tienda�Mostrar un botón de compra�Mostrar migas de pan�Mostrar icono del carrito�Mostrar el menú de categorías�Mostrar la barra de navegación de las categorías�Mostrar la página de categorías�Mostrar el menú del pie de página�Mostrar la página de productos con la descripción y un botón de compra�Mostrar el producto con un botón de compra�Mostrar el cuadro de búsqueda�Mostrar página de búsqueda con los filtros a un lado�Mostrar enlace y resumen de la bolsa de compras�Mostrar el carrito de compras�Mostrar el carrito de compras y la página de pago�Mostrar el enlace de inicio de sesión�Mostrar «ordenar por enlace»�Muestre el icono del carrito de compras en las páginas del sitio web�Producto mostrado�Muestra un enlace a la página de la tienda en la barra lateral para que el cliente acceda rápidamente a su tienda desde cualquier página del sitio web.�Muestra una lista de productos vistos recientemente por el cliente para volver fácilmente a los productos que vieron en su tienda.�Muestra una lista de productos aleatorios.�Muestra un producto aleatorio de su tienda para atraer la atención del cliente.�Muestra un cuadro de búsqueda simple para que sus clientes encuentren un producto en su tienda.�Muestra el escaparate virtual: listado de productos y pago�Muestra los últimos productos añadidos de su tienda. Muestre nuevos productos a los clientes existentes para impulsar las ventas repetidas.�No mostrar�¿Le gusta Ecwid y quiere ayudarlo a crecer? Puede añadir este elegante distintivo «Powered by Ecwid» en su sitio web para mostrarles a sus visitantes que es un usuario orgulloso de Ecwid.�¿Le gusta su tienda de %s en línea? Apreciaríamos si comparte su opinión y vota por el complemento en el sitio de WordPress.�Hecho�Descargar <a href="%s">registro de importación</a>�Descargar archivo de registro�Borrador�Por ejemplo, cómo establecer el envío�Distintivo de Ecwid�Comercio electrónico Ecwid�Carrito de compras del comercio electrónico de Ecwid�Elemento del menú de Ecwid�Ecwid le permite subir sus productos en forma de archivo CSV. Obtenga más información sobre esta herramienta en el centro de asistencia de Ecwid�«Widget» de comercio electrónico de Ecwid�Solución de comercio electrónico de Ecwid�Carrito de compras gratuito de Ecwid�Ecwid cuenta con la certificación PCI DSS Nivel 1, que es el estándar de oro para las soluciones de comercio electrónico en todo el mundo. Esto significa que no tendrá problemas de cumplimiento bancario cuando venda en línea con Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">Más detalles.</a>�Ecwid es un carrito de compras gratuito con todas las funciones. Se puede integrar fácilmente con cualquier blog de Wordpress y se configura en menos de 5 minutos.�Ecwid es compatible con cualquier tema de WordPress. Ya sea un tema gratuito del catálogo de WordPress.org, un tema prémium de un proveedor externo o un tema personalizado; su tienda de Ecwid funcionará bien con cualquiera de ellos. Si desea un tema prémium, le recomendamos <a href="%s">temas de TemplateMonster</a>.�Ecwid ofrece aplicaciones móviles gratuitas para iOS y Android para que pueda gestionar su tienda y vender donde y cuando quiera. Escanee productos, supervise el inventario, gestione las ventas y acepte pagos utilizando su dispositivo móvil como una estación de punto de venta. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">Más detalles.</a>�Carrito de compras de Ecwid�«Widget» de carrito de compras de Ecwid�Editar�Editar apariencia�Editar categoría�Editar producto�Editar tienda�Editar «slug» de la dirección URL�Editar página�Introduzca un ID de CSS opcional que se utilizará para este módulo. Se puede utilizar un ID para crear un estilo CSS personalizado o para crear enlaces a secciones particulares de su página web.�Introduzca las clases CSS opcionales que se utilizarán para este módulo. Se puede utilizar una clase CSS para crear estilos CSS personalizados. Puede añadir varias clases separadas por un espacio.�Introduzca el ID de su tienda�Introduzca el ID de su tienda aquí:�Extensiones para su tienda�Destacar una categoría de la tienda específica en una página separada de su sitio web.�Destaque sus productos en la barra lateral�Filtros�Posición del panel de filtros�Encuentre el ID de su tienda�Primera página�Preguntas frecuentes�Descargue la aplicación móvil de %s�Ir a «Páginas»�Ir a sus productos de %s�¡Saludos!�¡Enhorabuena! Su complemento de %s ya está activo.�Cuadrícula�Vista de cuadrícula�Ayuda�Ayude a los clientes a encontrar su tienda en el sitio web. Añada el enlace de la tienda al menú del sitio web, cree páginas adicionales de la tienda y resalte los productos de la tienda en otras páginas del sitio web y en las barras laterales.�Ayude a los clientes a encontrar su tienda en el sitio web.�Aquí puede gestionar cuántos productos se mostrarán por página. Estas opciones definen valores máximos. Si no hay suficiente espacio para mostrar todas las columnas de productos, %s adaptará el número de columnas para mantener todos los productos.�Aquí puede crear el contenido que se utilizará dentro del módulo.�Aquí, le ayudaremos a subir su catálogo de productos a %s de otro carrito de compras u otras fuentes.�Ocultar�Destaque productos, categorías y otras páginas de la tienda añadiéndolas a páginas del sitio web separadas.�Destaque sus mejores ventas o nuevos productos en la barra lateral del sitio web.�Sangría horizontal�Miniaturas horizontales�¿Cómo puedo añadir un «widget» de carrito de compras a la barra lateral de mi sitio web?�¿Cómo puedo gestionar mi tienda desde un dispositivo móvil?�¿Cómo podemos ayudarle?�¿Cómo puedo añadir categorías de tiendas al menú del sitio web?�¿Cómo pongo mis productos en el mapa del sitio?�¿Cuánto cuesta Ecwid?�¿Qué tan seguro es este complemento? ¿Mi tienda cumple con el PCI DSS?�¿Cómo añadir un solo producto con el botón de «añadir a la bolsa» en las páginas del sitio web?�¿Cómo crear una tienda en Facebook con Ecwid?�Ya tengo una cuenta, iniciar sesión�No pude encontrar un tema de WordPress adecuado para %s�Encontré un mejor complemento�Tengo un problema con el uso de este complemento�Tengo un problema con mi tienda de %s�Utilizo este tema de WordPress: %s�Icono�Icono y total de artículos�Icono, etiqueta y total de artículos�Icono, etiqueta, total de artículos y subtotal�Icono, etiqueta, total de artículos, subtotal y enlace�Si tiene un momento, háganos saber por qué está desactivando:�Imagen y título al pasar el ratón por encima�Canal de imagen�Diseño de la galería de imágenes�Solo imagen�Importar�Importe sus productos de Woocommerce a %s�Importación completada�Importación completada. <a href="%s">Ejecútela de nuevo.</a>�La importación crea nuevos productos y actualiza los productos existentes con las REF correspondientes.�La importación está en progreso�Importar mis productos de WooCommerce�Importar el catálogo de productos de WooCommerce�Importar el catálogo de productos de otras fuentes�Importe los productos a su tienda de %s�Resumen de la importación�Importe su catálogo de WooCommerce a %s�Importe sus productos de WooCommerce a %s�Importe sus productos de Woocommerce a %s�<b>%s</b> productos importados�Importando %s de %s artículos�Insertar�Insertar en la página�Sitio web instantáneo�Integración con la búsqueda en su sitio web�¿Es posible mostrar mi tienda en la página de inicio del sitio web?�¿Existe algún tema de WordPress para Ecwid?�Es una desactivación temporal. No preguntarme de nuevo.�Solo el total de artículos�Justificado�Base de conocimiento�G�Etiqueta y y total de artículos�Horizontal 3:2�Horizontal 4:3�Última página�Última actualización�Últimos productos�Diseño�Diseño:�Más información�Izquierda�Cian verde claro�Color del enlace�Producto vinculado�Lista�Vista de lista�Parece que su sitio web no admite solicitudes POST remotas, las cuales son necesarias para que la API de %s funcione. Comuníquese con su proveedor de alojamiento web para habilitar cURL.�Ámbar vívido y brillante�Naranja vívido y brillante�M�Haga que su tienda sea accesible desde el menú del sitio web para que sus clientes puedan encontrarla fácilmente.�Gestionar la barra lateral�Gestione la tienda desde iPhone, iPad o Android�Gestione productos, supervise las ventas y ajuste la configuración: <nobr>todo sin</nobr> salir de esta página.�Gestionar la tienda�Gestionar escaparate virtual�Mercadotecnia�Móvil�Mi cuenta�Mi perfil�Mis ventas�Nombre�Navegación�¿Necesita ayuda para importar sus productos de WooCommerce a %s?�Nunca mostrar este mensaje otra vez�Página siguiente�Página siguiente�No, gracias�Sin borde�No se ha sincronizado todavía�Nota: cuando está habilitado, el «widget» del carrito siempre se mostrará en la vista previa para que sea más fácil personalizarlo. Las opciones «Mostrar en las páginas de la tienda» y «Mostrar cuando esté vacío» se aplicarán al «widget» del carrito en el sitio cuando se publiquen�No se ha encontrado nada en relación con <span class="empty-page__term">«{{ data.term }}»</span>�Número de categorías por fila�Número de productos por página�Número de productos para mostrar�A la izquierda�A la derecha�Tienda en línea�Aplicaciones de la tienda en línea�Tienda en línea�Abrir el panel de control�Abrir el panel de la tienda�Opciones�Pedidos�Otro�Nuestros 4 tipos de cuentas varían según la cantidad de productos, los tipos de funcionalidades y el nivel de asistencia. Para obtener más información, consulte nuestra <a target="_blank" href="%s">página de precios.</a><br /><br />Consejo profesional: también puede ahorrar dinero si se suscribe a nuestros planes anuales.�Nuestro equipo ya está trabajando en este asunto. Actualice la página en unos minutos. Si el problema persiste, comuníquese con <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">nuestro equipo de atención al cliente</a>.�Ya existe una página con ese nombre.�Azul cian pálido�Rosa pálido�Parte de los productos no se han copiado a %1$s porque alcanzó el límite de productos en su plan de precios en %1$s. Si desea importar más productos, considere <nobr><a %2$s>actualizar su plan de %1$s.</a></nobr>�Pago�Personalice la apariencia de su escaparate virtual y edite el contenido en la página de la tienda para reflejar su marca y mantenerse conectado con sus clientes.�Elegir una categoría�Elegir un producto�Imagen�Píldora�Tenga en cuenta el número máximo de productos y categorías que puede tener en su tienda de Ecwid. Esta herramienta de importación se detendrá automáticamente cuando se alcance el límite de productos de la tienda. Para conocer el límite actual de la tienda o aumentarlo, consulte la página <nobr><a %s target="_blank">«Facturación y planes»</a></nobr> ubicada en el panel de su tienda de Ecwid.�Suscríbase a un plan de pago para obtener esta función.�Complementos para Ecwid�Vertical 2:3�Vertical 3:4�Posición�Vista previa�Página anterior�Precio�Color del precio�Producto�Ficha de producto ampliada�Ficha de producto reducida�Apariencia de la lista de productos�Apariencia de la página del producto�REF del producto�Búsqueda de productos�Cuadro de búsqueda de productos�Búsqueda de productos y filtros�El texto de la ficha del producto se alinea�El catálogo de productos se mostrará automáticamente�Diseño de la página de productos�Precio del producto�Cantidad de productos�Contenido de la barra lateral de productos�Relación de aspecto de la miniatura del producto�Tamaño de la miniatura del producto�Título del producto�Productos�Los productos se sincronizaron satisfactoriamente. Las páginas de productos están actualizadas.�Productos eliminados sincronizados: %1$s de %2$s�Promocione su tienda�Otorgar acceso.�Proporcionado por <a %s>%s</a>�Publicar�Publicar la página de la tienda�Publique la página para poder utilizar esta opción�Publicada�Cantidad�¿Tiene alguna pregunta?�Producto aleatorio�Productos aleatorios�Tasa de %s en WordPress.org�Vuélvase a conectar para activar el panel de control�Productos vistos recientemente�Recomendaciones para su tienda en línea�Rectángulo�Actualizar la lista de categorías�Registrarse en %s�Informar un problema con la tienda�Informes�Derecha�P�REF�Ventas�Canales de venta�Guardar�Guarde y conecte su tienda de %s al sitio web�Guardar cambios�Buscar�Búsqueda y filtros�Buscar productos�Buscar en la base de conocimientos�Ver más�Seleccionar todo�Seleccionar categoría�Producto seleccionado�Categoría seleccionada�Vender en Facebook�Enviar mensaje�Envíe un mensaje a nuestro equipo de asistencia�Ocurrió un error al enviar el mensaje�Configure su tienda�Configurar manualmente�Configure su tienda�Configuraciones�Configuración�Envío y recogida�Tienda�Carrito de compras�Carrito de compras (descontinuado)�Carrito de compras flotante (descontinuado)�Icono del carrito de compras�Carrito de compras en miniatura (descontinuado)�«Widget» del carrito de compras�Mostrar�Mostrar imagen adicional al pasar el ratón�Mostrar categorías�Muéstreles a los clientes que pueden utilizar la búsqueda y los filtros para encontrar los productos que deseen de forma más rápida.�Mostrar descripción debajo de la imagen�Mostrar minicarrito�Mostrar en todas las páginas�Mostrar al pasar el ratón�Mostrar en las páginas de la tienda�Mostrar el precio dentro del botón de «Comprar ahora»�Mostrar el precio dentro del botón de «Comprar ahora»�Mostrar el borde de la ficha del producto�Mostrar miniaturas de los productos�Mostrar búsqueda�Mostrar cuando esté vacío�Muestre su tienda en la página de inicio�El inicio de sesión único les permite a sus clientes tener un inicio de sesión único para su sitio web de WordPress y su %s. Cuando alguien inicie sesión en su sitio web, también iniciará sesión automáticamente en su cuenta de cliente en la tienda sin necesidad de introducir su correo electrónico y contraseña nuevamente.�Icono pequeño�Icono pequeño y total de artículos�Algunos de los artículos no se pudieron importar.�Le pido disculpas por las dificultades técnicas que estamos experimentando.�Lo siento, hay un problema. Se supone que esta página muestra el panel de control de su tienda; sin embargo, este sitio web de Wordpress no parece poder conectarse al servidor de Ecwid para mostrar el panel de su tienda aquí. Es probable que esto se deba a una mala configuración del servidor; su proveedor de alojamiento web puede solucionarlo. Aquí hay una descripción más técnica del problema, la cual puede enviarle a su proveedor de alojamiento web: «La función de Wordpress wp_remote_post() no pudo conectarse a un servidor remoto debido al error: “%s”; parece que las solicitudes HTTP POST están inhabilitadas en este servidor». <br /><br />No dude en ponerse en contacto con nosotros en <a %s>wordpress@ecwid.com</a> y le ayudaremos a comunicarse con su proveedor de alojamiento web para pedirle que solucione el problema. <br /><br /> Mientras tanto, para gestionar su tienda, puede utilizar el panel de control web de Ecwid en <a %s>my.ecwid.com</a>. Su escaparate virtual está funcionando bien; puede echarle un vistazo aquí: <a %s>%s</a>.�Cuadrado 1:1�Iniciar la importación�Estado�Manténgase conectado con sus clientes. Actualice el contenido de su tienda en cualquier momento para informarles a los clientes sobre las promociones actuales y las novedades de su tienda.�¿Todavía tiene preguntas acerca de Ecwid? ¡Háganoslo saber!�Tienda�Categorías de la tienda�Menú de categorías de la tienda�Página de categorías de la tienda�Página del escaparate virtual�Página de inicio de la tienda�ID de la tienda�El ID de la tienda es un identificador único de cualquier tienda de %1$s, el cual consta de varios dígitos. Puede encontrarlo en la página «Panel» del panel de control de %1$s. El ID de la tienda se enviará en el correo electrónico de bienvenida después del registro.�El ID de la tienda es un identificador único de su cuenta de %1$s. Puede encontrarlo en su panel de control de %1$s en la <a %2$s>página del panel</a>.�Título del enlace de la tienda�Navegación en la tienda�Página de la tienda�Enlace a la página de la tienda�Categorías raíz de la tienda�Apariencia de la tienda�Elementos de la tienda�Gestión de la tienda�Contenido de la página de la tienda�Página de la tienda en su sitio web�Categoría raíz de la tienda�Tienda con menú de categorías�Escaparate virtual�Asunto�Enviar y desactivar�Cambiar al borrador�Sincronizar productos�Tabla�Vista de tabla�Siga unos sencillos pasos para completar la configuración de la tienda�Aproveche las increíbles aplicaciones y extensiones diseñadas para mejorar su tienda.�Texto�Color del texto�Gracias por elegir %s para construir su tienda en línea�El bloque está oculto porque no tiene categorías en su tienda. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Añadir categorías.</a>�La categoría que se muestra de forma predeterminada en la página del escaparate virtual�El primer paso para abrir su negocio en línea: <br />añadamos una tienda a su sitio web de WordPress en <strong>3</strong> simples pasos.�El complemento no es compatible con la función que quiero�El icono del carrito de compras muestra la cantidad de artículos en el carrito y ayuda a los clientes a realizar el pago. Además, puede <a href="%s" target="_blank">ajustar la apariencia del icono del carrito</a>.�La tienda no es visible en su sitio web�Las categorías de alto nivel de la tienda se añaden automáticamente a este menú desplegable�Temas para Ecwid�Esta importación copiará sus productos y categorías de WooCommerce a su tienda de %s.�Esto es una tienda de demostración. Cree su tienda para ver los productos de su tienda aquí.�Esto cambiará la etiqueta del módulo en el creador para una fácil identificación.�Título�Título en la imagen�Solo título�Título o REF�Título debajo de la imagen�Título:�Para añadir funciones adicionales a su tienda, arrastre y suelte los elementos de la tienda de %s en su sitio web. Una vez que haya terminado, puede volver a modificar su configuración.�Para añadir su tienda a su sitio web, introduzca el ID de su tienda de %1$s en el campo a continuación. Si aún no tiene una cuenta de %1$s, cree una gratis en el <a %2$s>sitio web de %1$s</a>.�Para permitir que %s inicie la sesión de sus clientes automáticamente en su tienda, otorgue los permisos para utilizar los datos del cliente en la tienda. <a %s>Utilice este enlace para hacerlo</a>�A fin de poder elegir un producto para insertarlo en sus publicaciones y páginas, deberá volver a conectar su sitio a su tienda de %s. Esto solo requerirá que acepte la solicitud de permisos para que el complemento pueda listar sus productos en el cuadro de diálogo «Añadir producto».�Para crear un «Mapa del sitio» para su sitio web de Wordpress, le sugerimos que utilice los  complementos <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> o <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>. Estos complementos son totalmente compatibles con Ecwid y permiten generar un mapa del sitio que contiene enlaces a categorías y páginas de productos, por lo que las páginas de la tienda se indexarán más rápido. Tenga en cuenta que esta opción solo está disponible para los <a target="_blank" href="https://www.ecwid.com/pricing">usuarios de pago de Ecwid</a>.�Para mostrar su tienda en este sitio web, debe permitir que WordPress acceda a sus productos de %1$s. Pulse «Conectar» para otorgar el permiso.�Para habilitar esta función, el complemento necesita un permiso para leer la información del producto de su tienda.�Para mostrar un solo producto en una página aparte o en una entrada de blog de su sitio web, utilice el código corto <b>[ecwid_product]</b>. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">Cómo utilizarlo</a>�Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para mejorar la apariencia de su tienda y poder gestionar la apariencia de su escaparate virtual desde aquí, habilite la opción «Apariencia de próxima generación de la lista de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para asegurarse de que su cliente puede acceder realmente a su sitio web y a la tienda, habilite el registro en las <a %s>configuraciones del sitio web</a>�Para gestionar su tienda, vaya a la <a %s>página del «Panel de su tienda»</a>�Para vender utilizando %1$s, debe permitir que WordPress acceda al complemento %1$s. El botón «Conectar» lo redirigirá a su cuenta de %1$s donde puede otorgar el permiso.�Para mostrar su escaparate virtual en lugar de la tienda de demostración, conecte su cuenta de %s existente o cree una nueva.�Para comenzar a vender, añada una página a su sitio web donde se muestre el escaparate virtual.�Arriba a la izquierda�Arriba a la derecha�Intente otra búsqueda.�Escriba su mensaje aquí�«Slug» de la dirección URL�Actualizar�Actualice su catálogo�Actualice para obtener esta función�Sangría vertical�Miniaturas verticales�Gris oscuro�Gris claro�Ver la página de la tienda�Ver la página de la tienda de demostración�Ver la página de la tienda�Visitar escaparate virtual�Azul cian vívido�Cian verde vívido�Rojo vívido�¿Desea conectar otra tienda de %s?�Advertencia: algunas de las funciones de su tienda en línea están inhabilitadas. Póngase en contacto con su proveedor de alojamiento web para resolverlo.�Notamos que tiene un WooCommerce instalado. Su tienda de WooCommerce tiene %1$s productos y %2$s categorías; ¿le gustaría importarlos a %3$s?�Notamos que tiene WooCommerce instalado. Si desea copiar fácilmente sus productos de WooCommerce a %s, esta herramienta le ayudará.�Estamos sincronizando sus productos. Esto puede tardar unos minutos. No actualice la página.�Sitio web�¿Qué función necesita?�¿Qué fue lo que pasó?�¿Qué sigue?�Mientras su tienda aún no esté conectada, se mostrará una tienda de demostración en su sitio web. Échele un vistazo para tener una idea de cómo se verá su tienda en el sitio web.�Precios al por mayor�Puede añadir un cuadro de búsqueda de productos, un «widget» de carrito y más desde la <a href="%s">«Página de apariencia y widgets»</a> que se encuentra aquí en el administrador de su sitio web. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">Más detalles.</a>�Puede añadir todo el escaparate virtual, las categorías, los productos o los botones de «Comprar ahora» a otras páginas de su sitio web. Para ello, abra una página en el editor y añada un bloque %s apropiado.�Puede añadir el menú de categorías de la tienda al menú de su sitio web para ayudar a sus clientes a navegar fácilmente por su sitio web. Simplemente abra «Apariencia > Menús» en el panel de WordPress y añada el elemento «Tienda con menú de categorías» al menú de su sitio web. Aparecerá automáticamente un menú desplegable que contendrá las categorías de su tienda en su sitio web.�Puede añadir su tienda en línea a su página empresarial de Facebook (no se necesitan complementos). Ecwid sincronizará automáticamente los productos, clientes, pedidos e inventario entre su tienda en línea de WordPress y Facebook. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">Más detalles.</a>�Puede gestionar la apariencia de su tienda en la <a %s>página de «Configuración del diseño»</a> ubicada en el panel de control de su tienda.�Puede mostrar su tienda en la página principal del sitio web. Ajuste la configuración de «Lectura» de su sitio web como se describe en nuestro <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">centro de asistencia.</a>�Puede habilitar un «widget» adicional del icono de la bolsa de compras que aparecerá en las páginas de su sitio web. Abra el menú «<a href="%1$s">Apariencia → Personalizar → %2$s</a>» para habilitarlo.�Puede habilitar los filtros en la configuración de la tienda: («<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Configuración → Filtros para los productos</a>»).�Puede enviar una nueva solicitud aquí.�Aún no ha visto ningún producto. Abra la tienda.�También podrá registrarse a través de sus perfiles existentes de Google, Facebook o PayPal.�Su tienda de %s tiene �Su tienda de %s está conectada<br /> a su sitio web de WordPress�Su tienda de %s ahora está conectada<br /> a su sitio web de WordPress�Su escaparate virtual�Su tienda de WooCommerce tiene �Se ha enviado su correo electrónico�Su producto�Panel de control de su tienda. Aquí mismo en WordPress.�Se ha creado su tienda. Preparando el panel de su tienda...�Su tienda se añade a varias páginas del sitio web. Elija la página principal. Los clientes son redirigidos a la página principal de la tienda cuando hacen clic en el icono del carrito, en los enlaces de la tienda ubicados en el menú del sitio web o en los productos que se encuentran en la barra lateral.�¡Su tienda ya está casi lista!�Su tienda no se añade a ninguna página de su sitio web. Para que los clientes puedan navegar por su tienda y realizar pedidos, cree una página donde se mostrará la tienda.�La página de su tienda�La página de su tienda está actualmente en un borrador. Una vez que esté lista, publíquela para que los clientes puedan visitar la tienda y realizar pedidos.�La página de su tienda está publicada. Los clientes pueden visitar su tienda en �Su tienda se mostrará aquí�¡Su tienda se mostrará aquí!�Su escaparate virtual (listado de productos y página de pago) está funcionando bien, pero las funciones avanzadas de la tienda, como el SEO y los «widgets» de la barra lateral, están inhabilitadas. Para habilitarlas y asegurarse de que su tienda funcione correctamente, pulse el botón de abajo para conectar su cuenta de %s. Esto tomará menos de un minuto; solo se le pedirá que inicie sesión en su cuenta y permita que este sitio web obtenga los datos de su tienda.�[%s] Comentarios sobre la desactivación del complemento de WordPress (ID de la tienda: %s)�personalizar apariencia�Contenido�Tienda�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�o <a %s>consulte el centro de asistencia�REF del producto�Precio del producto�seleccionar producto�producto seleccionado�Tienda en línea�Botón de «Comprar ahora»���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/languages/ecwid-shopping-cart-es_MX.po������������������������������������������0000644�����������������00000326062�15122273603�0017613 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Translation of Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) in German # This file is distributed under the same license as the Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) package. msgid "" msgstr "" "PO-Revision-Date: 2020-10-12 12:46\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: GlotPress/3.0.0-alpha.2\n" "Language: es\n" "Project-Id-Version: temporary-strings\n" "X-Crowdin-Project: temporary-strings\n" "X-Crowdin-Project-ID: 295314\n" "X-Crowdin-Language: es-ES\n" "X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po\n" "X-Crowdin-File-ID: 988\n" "Language-Team: Spanish\n" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:92 msgid "You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel." msgstr "Puede gestionar la apariencia de su tienda en la <a %s>página de «Configuración del diseño»</a> ubicada en el panel de control de su tienda." #: includes/integrations/elementor/class-ec-elementor-widget-store.php:55 msgid "To manage your store, go to <a %s>the Store Dashboard page</a>" msgstr "Para gestionar su tienda, vaya a la <a %s>página del «Panel de su tienda»</a>" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:39 msgid "The category that is shown by default on the Store Front Page" msgstr "La categoría que se muestra de forma predeterminada en la página del escaparate virtual" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:38 msgid "Default category" msgstr "Categoría predeterminada" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:29 msgid "Online Store" msgstr "Tienda en línea" #: includes/class-ecwid-stub-renderer.php:38 msgid "Buy Now" msgstr "Comprar ahora" #: templates/admin/welcome-terms-privacy.php:5 msgid "By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>." msgstr "Al continuar, acepta los <a %s>Términos de servicio</a> y la <a %s>Política de privacidad</a>." #: js/gutenberg/blocks.build.js:1 msgid "Display shopping cart and checkout page" msgstr "Mostrar el carrito de compras y la página de pago" #: js/gutenberg/blocks.build.js:1 msgid "Cart and Checkout" msgstr "Carrito y pago" #: js/gutenberg/blocks.build.js:1 msgid "Filters" msgstr "Filtros" #: js/gutenberg/blocks.build.js:1 msgid "You can enable filters in the store settings: (“<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Settings → Product Filters</a>”)." msgstr "Puede habilitar los filtros en la configuración de la tienda: («<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Configuración → Filtros para los productos</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Search and Filters" msgstr "Búsqueda y filtros" #: js/gutenberg/blocks.build.js:1 msgid "Display search page with filters on a side" msgstr "Mostrar página de búsqueda con los filtros a un lado" #: js/gutenberg/blocks.build.js:1 msgid "Product Search and filters" msgstr "Búsqueda de productos y filtros" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Display product page with description and a buy button" msgstr "Mostrar la página de productos con la descripción y un botón de compra" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Large" msgstr "Ficha de producto ampliada" #: js/gutenberg/blocks.build.js:1 msgid "Selected category" msgstr "Categoría seleccionada" #: js/gutenberg/blocks.build.js:1 msgid "Select category" msgstr "Seleccionar categoría" #: js/gutenberg/blocks.build.js:1 msgid "Add categories" msgstr "Añadir categorías" #: js/gutenberg/blocks.build.js:1 msgid "Display category page" msgstr "Mostrar la página de categorías" #: js/gutenberg/blocks.build.js:1 msgid "Store Category Page" msgstr "Página de categorías de la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Display shopping bag link and summary" msgstr "Mostrar enlace y resumen de la bolsa de compras" #: js/gutenberg/blocks.build.js:1 msgid "Shopping Cart Icon" msgstr "Icono del carrito de compras" #: js/gutenberg/blocks.build.js:1 msgid "The block is hidden because you don't have categories in your store. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Add categories.</a>" msgstr "El bloque está oculto porque no tiene categorías en su tienda. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Añadir categorías.</a>" #: js/gutenberg/blocks.build.js:1 msgid "Categories" msgstr "Categorías" #: js/gutenberg/blocks.build.js:1 msgid "Display categories navigation bar" msgstr "Mostrar la barra de navegación de las categorías" #: js/gutenberg/blocks.build.js:1 msgid "Store Categories Menu" msgstr "Menú de categorías de la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Product Search Box" msgstr "Cuadro de búsqueda de productos" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:25 #: js/gutenberg/blocks.build.js:1 msgid "Linked product" msgstr "Producto vinculado" #: js/gutenberg/blocks.build.js:1 msgid "Display a buy button" msgstr "Mostrar un botón de compra" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:10 #: js/gutenberg/blocks.build.js:1 msgid "Buy Now Button" msgstr "Botón «Comprar ahora»" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:52 #: js/gutenberg/blocks.build.js:1 msgid "Show price inside the «Buy now» button" msgstr "Mostrar el precio dentro del botón de «Comprar ahora»" #: js/gutenberg/blocks.build.js:1 msgctxt "gutenberg-product-block" msgid "Content" msgstr "Contenido" #: js/gutenberg/blocks.build.js:1 msgid "Change" msgstr "Cambiar" #: js/gutenberg/blocks.build.js:1 msgid "Displayed product" msgstr "Producto mostrado" #: js/gutenberg/blocks.build.js:1 msgid "Display product with a buy button" msgstr "Mostrar el producto con un botón de compra" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Small" msgstr "Ficha de producto reducida" #: js/gutenberg/blocks.build.js:1 msgid "Very dark gray" msgstr "Gris oscuro" #: js/gutenberg/blocks.build.js:1 msgid "Cyan bluish gray" msgstr "Gris cian azulado" #: js/gutenberg/blocks.build.js:1 msgid "Very light gray" msgstr "Gris claro" #: js/gutenberg/blocks.build.js:1 msgid "Vivid cyan blue" msgstr "Azul cian vívido" #: js/gutenberg/blocks.build.js:1 msgid "Pale cyan blue" msgstr "Azul cian pálido" #: js/gutenberg/blocks.build.js:1 msgid "Vivid green cyan" msgstr "Cian verde vívido" #: js/gutenberg/blocks.build.js:1 msgid "Light green cyan" msgstr "Cian verde claro" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid amber" msgstr "Ámbar vívido y brillante" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid orange" msgstr "Naranja vívido y brillante" #: js/gutenberg/blocks.build.js:1 msgid "Vivid red" msgstr "Rojo vívido" #: js/gutenberg/blocks.build.js:1 msgid "Pale pink" msgstr "Rosa pálido" #: js/gutenberg/blocks.build.js:1 msgid "Set manually" msgstr "Configurar manualmente" #: js/gutenberg/blocks.build.js:1 msgid "Detect automatically" msgstr "Detectar automáticamente" #: js/gutenberg/blocks.build.js:1 msgid "Color settings" msgstr "Configuración de colores" #: js/gutenberg/blocks.build.js:1 msgid "Store Navigation" msgstr "Navegación en la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Store Front Page" msgstr "Página del escaparate virtual" #: js/gutenberg/blocks.build.js:1 msgid "Product sidebar content" msgstr "Contenido de la barra lateral de productos" #: js/gutenberg/blocks.build.js:1 msgid "Product Page Appearance" msgstr "Apariencia de la página del producto" #: js/gutenberg/blocks.build.js:1 msgid "Product List Appearance" msgstr "Apariencia de la lista de productos" #: js/gutenberg/blocks.build.js:1 msgid "Category List Appearance" msgstr "Apariencia de la lista de categorías" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Display cart icon" msgstr "Mostrar icono del carrito" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Para mejorar la apariencia de su tienda y poder gestionar la apariencia de su escaparate virtual desde aquí, habilite la opción «Apariencia de próxima generación de la lista de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Add storefront (product listing)" msgstr "Añadir escaparate virtual (listado de productos)" #: templates/admin/storefront/main.php:21 msgid "Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers." msgstr "Los clientes no pueden ver la página de su tienda porque está en un borrador. Publique la página para que esté disponible para sus clientes." #: templates/admin/storefront/main.php:20 msgid "The store is not visible on your site" msgstr "La tienda no es visible en su sitio web" #: templates/admin/storefront/main.php:4 msgid "Your Storefront" msgstr "Su escaparate virtual" #: templates/admin/storefront/area-promo.php:30 msgid "Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars." msgstr "Ayude a los clientes a encontrar su tienda en el sitio web. Añada el enlace de la tienda al menú del sitio web, cree páginas adicionales de la tienda y resalte los productos de la tienda en otras páginas del sitio web y en las barras laterales." #: templates/admin/storefront/area-promo.php:29 msgid "Promote your store" msgstr "Promocione su tienda" #: templates/admin/storefront/area-promo.php:26 msgid "Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store." msgstr "Manténgase conectado con sus clientes. Actualice el contenido de su tienda en cualquier momento para informarles a los clientes sobre las promociones actuales y las novedades de su tienda." #: templates/admin/storefront/area-promo.php:25 msgid "Change store content" msgstr "Cambiar el contenido de la tienda" #: templates/admin/storefront/area-promo.php:22 msgid "Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand." msgstr "Personalice la apariencia de su tienda para que se ajuste a las necesidades de su negocio. Cree la apariencia para su tienda que más se parezca a su marca." #: templates/admin/storefront/area-promo.php:21 msgid "Customize store appearance" msgstr "Personalizar la apariencia de la tienda" #: templates/admin/storefront/area-promo.php:7 msgid "Add your %s store to the website and start selling in minutes." msgstr "Añada su tienda de %s al sitio web y comience a vender en minutos." #: templates/admin/storefront/area-promo.php:3 msgid "What's next?" msgstr "¿Qué sigue?" #: templates/admin/storefront/area-additional.php:224 msgid "Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar." msgstr "Su tienda se añade a varias páginas del sitio web. Elija la página principal. Los clientes son redirigidos a la página principal de la tienda cuando hacen clic en el icono del carrito, en los enlaces de la tienda ubicados en el menú del sitio web o en los productos que se encuentran en la barra lateral." #: templates/admin/storefront/area-additional.php:222 msgid "Choose the main store page" msgstr "Elegir la página principal de la tienda" #: templates/admin/storefront/area-additional.php:200 msgid "Go to Pages" msgstr "Ir a «Páginas»" #: templates/admin/storefront/area-additional.php:193 msgid "You can add the entire storefront, categories, products, or \"Buy now\" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block." msgstr "Puede añadir todo el escaparate virtual, las categorías, los productos o los botones de «Comprar ahora» a otras páginas de su sitio web. Para ello, abra una página en el editor y añada un bloque %s apropiado." #: templates/admin/storefront/area-additional.php:189 msgid "Add your store to other site pages" msgstr "Añada su tienda a otras páginas del sitio web" #: templates/admin/storefront/area-additional.php:166 msgid "Create Product Page" msgstr "Crear página de productos" #: templates/admin/storefront/area-additional.php:150 msgid "Pick Product" msgstr "Elegir un producto" #: templates/admin/storefront/area-additional.php:136 #: templates/admin/storefront/area-additional.php:138 msgid "Create a landing page featuring one of your products." msgstr "Cree una página de aterrizaje con uno de sus productos." #: templates/admin/storefront/area-additional.php:132 msgid "Add a product page" msgstr "Añadir página de productos" #: templates/admin/storefront/area-additional.php:109 msgid "Create Category Page" msgstr "Crear página de categorías" #: templates/admin/storefront/area-additional.php:93 msgid "Pick Category" msgstr "Elegir una categoría" #: templates/admin/storefront/area-additional.php:79 #: templates/admin/storefront/area-additional.php:81 msgid "Feature a specific store category on a separate page of your site." msgstr "Destacar una categoría de la tienda específica en una página separada de su sitio web." #: templates/admin/storefront/area-additional.php:75 msgid "Add a category page" msgstr "Añadir una página de categoría" #: templates/admin/storefront/area-additional.php:54 msgid "Create Search Page" msgstr "Crear página de búsqueda" #: templates/admin/storefront/area-additional.php:50 msgid "Show customers that they can use a search and filters to find desired products faster." msgstr "Muéstreles a los clientes que pueden utilizar la búsqueda y los filtros para encontrar los productos que deseen de forma más rápida." #: templates/admin/storefront/area-additional.php:48 msgid "Add a search and filters page" msgstr "Añadir una página de búsqueda y filtros" #: templates/admin/storefront/area-additional.php:27 msgid "Create Cart Page" msgstr "Crear página del carrito" #: templates/admin/storefront/area-additional.php:23 msgid "Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout." msgstr "Los clientes van a la página del carrito para consultar los productos que han añadido al mismo y proceder con el pago." #: templates/admin/storefront/area-additional.php:21 msgid "Add cart and checkout page" msgstr "Añadir carrito y página de pago" #: templates/admin/storefront/area-additional.php:4 msgid "Highlight products, categories, and other store pages by adding them to separate website pages." msgstr "Destaque productos, categorías y otras páginas de la tienda añadiéndolas a páginas del sitio web separadas." #: templates/admin/storefront/area-additional.php:3 msgid "Additional store pages" msgstr "Páginas adicionales de la tienda" #: templates/admin/storefront/draft-message.php:2 msgid "Publish the page to use this option" msgstr "Publique la página para poder utilizar esta opción" #: templates/admin/storefront/area-design.php:55 msgid "Along with the store catalog, you can add other widgets and texts to the store page." msgstr "Junto con el catálogo de la tienda, puede añadir otros «widgets» y textos a la página de la tienda." #: templates/admin/storefront/area-design.php:54 msgid "Store page content" msgstr "Contenido de la página de la tienda" #: templates/admin/storefront/area-design.php:25 #: templates/admin/storefront/area-design.php:27 msgid "Adjust your store design to fit your business needs." msgstr "Ajuste el diseño de su tienda para que se adapte a las necesidades de su negocio." #: templates/admin/storefront/area-design.php:21 msgid "Store appearance" msgstr "Apariencia de la tienda" #: templates/admin/storefront/area-design.php:4 msgid "Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers." msgstr "Personalice la apariencia de su escaparate virtual y edite el contenido en la página de la tienda para reflejar su marca y mantenerse conectado con sus clientes." #: templates/admin/storefront/area-design.php:3 msgid "Design and content" msgstr "Diseño y contenido" #: templates/admin/storefront/area-status.php:124 msgid "Create Store Page" msgstr "Crear la página de la tienda" #: templates/admin/storefront/area-status.php:121 msgid "Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display." msgstr "Su tienda no se añade a ninguna página de su sitio web. Para que los clientes puedan navegar por su tienda y realizar pedidos, cree una página donde se mostrará la tienda." #: templates/admin/storefront/area-status.php:115 msgid "Set Up Your Store" msgstr "Configure su tienda" #: templates/admin/storefront/area-status.php:109 msgid "To show your storefront instead of the demo store, connect your existing %s account or create a new one." msgstr "Para mostrar su escaparate virtual en lugar de la tienda de demostración, conecte su cuenta de %s existente o cree una nueva." #: templates/admin/storefront/area-status.php:101 msgid "Publish Store Page" msgstr "Publicar la página de la tienda" #: templates/admin/storefront/area-status.php:98 msgid "Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders." msgstr "La página de su tienda está actualmente en un borrador. Una vez que esté lista, publíquela para que los clientes puedan visitar la tienda y realizar pedidos." #: templates/admin/storefront/area-status.php:92 msgid "View Store Page" msgstr "Ver la página de la tienda" #: templates/admin/storefront/area-status.php:86 msgid "Your store page is published. Customers can browse your store at " msgstr "La página de su tienda está publicada. Los clientes pueden visitar su tienda en " #: templates/admin/storefront/area-status.php:77 msgid "View demo store page" msgstr "Ver la página de la tienda de demostración" #: templates/admin/storefront/area-status.php:46 msgid "Draft" msgstr "Borrador" #: templates/admin/storefront/area-status.php:45 msgid "Published" msgstr "Publicada" #: templates/admin/storefront/area-status.php:33 #: templates/admin/storefront/area-status.php:36 msgid "Status" msgstr "Estado" #: templates/admin/storefront/area-status.php:29 msgid "Add a store page" msgstr "Añadir una página de tienda" #: templates/admin/storefront/area-status.php:24 msgid "Connect your %s store" msgstr "Conecte su tienda de %s" #: templates/admin/storefront/area-status.php:21 msgid "Your store page" msgstr "La página de su tienda" #: templates/admin/storefront/area-status.php:10 msgid "To start selling, add a page to your site where the storefront will display." msgstr "Para comenzar a vender, añada una página a su sitio web donde se muestre el escaparate virtual." #: templates/admin/storefront/area-status.php:7 msgid "While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site." msgstr "Mientras su tienda aún no esté conectada, se mostrará una tienda de demostración en su sitio web. Échele un vistazo para tener una idea de cómo se verá su tienda en el sitio web." #: templates/admin/storefront/area-status.php:4 msgid "Store page on your site" msgstr "Página de la tienda en su sitio web" #: templates/admin/storefront/area-navigation.php:205 msgid "The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href=\"%s\" target=\"_blank\">adjust the cart icon appearance</a>." msgstr "El icono del carrito de compras muestra la cantidad de artículos en el carrito y ayuda a los clientes a realizar el pago. Además, puede <a href=\"%s\" target=\"_blank\">ajustar la apariencia del icono del carrito</a>." #: templates/admin/storefront/area-navigation.php:201 msgid "Display the shopping cart icon on site pages" msgstr "Muestre el icono del carrito de compras en las páginas del sitio web" #: templates/admin/storefront/area-navigation.php:179 msgid "Manage Sidebar" msgstr "Gestionar la barra lateral" #: templates/admin/storefront/area-navigation.php:175 msgid "Highlight your best sellers or new products in the website sidebar." msgstr "Destaque sus mejores ventas o nuevos productos en la barra lateral del sitio web." #: templates/admin/storefront/area-navigation.php:173 msgid "Feature your products in the sidebar" msgstr "Destaque sus productos en la barra lateral" #: templates/admin/storefront/area-navigation.php:151 msgid "Add Store Page to Menu" msgstr "Añadir la página de la tienda al menú" #: templates/admin/storefront/area-navigation.php:147 msgid "Make your store accessible from the site menu so your customers can easily find it." msgstr "Haga que su tienda sea accesible desde el menú del sitio web para que sus clientes puedan encontrarla fácilmente." #: templates/admin/storefront/area-navigation.php:141 msgid "Add store page to the site menu" msgstr "Añadir la página de la tienda al menú del sitio web" #: templates/admin/storefront/area-navigation.php:118 msgid "Edit URL Slug" msgstr "Editar «slug» de la dirección URL" #: templates/admin/storefront/area-navigation.php:102 msgid "Current URL slug: /<span data-ec-store-slug>%s</span>" msgstr "«Slug» actual de la dirección URL: /<span data-ec-store-slug>%s</span>" #: templates/admin/storefront/area-navigation.php:78 msgid "Save" msgstr "Guardar" #: templates/admin/storefront/area-navigation.php:69 msgid "URL Slug" msgstr "«Slug» de la dirección URL" #: templates/admin/storefront/area-navigation.php:60 #: templates/admin/storefront/area-navigation.php:113 msgid "A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use \"/shop\" or \"/products\"." msgstr "Un «slug» es la última parte de una URL. Puede crear un «slug» personalizado para la página de su tienda. Es mejor que sea corto, ya que los clientes y los motores de búsqueda prefieren las URL cortas. Por ejemplo, utilice «/tienda» o «/productos»." #: templates/admin/storefront/area-navigation.php:56 #: templates/admin/storefront/area-navigation.php:98 msgid "Customize store page address" msgstr "Personalizar la dirección de la página de la tienda" #: templates/admin/storefront/area-navigation.php:29 msgid "Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href=\"%s\" target=\"_blank\">WordPress Settings > Reading</a>" msgstr "Añada su escaparate virtual a la página de inicio del sitio web para que sea más notable. También puede modificar la configuración de la página de inicio del sitio web en <a href=\"%s\" target=\"_blank\">Configuración de WordPress > Lectura</a>." #: templates/admin/storefront/area-navigation.php:21 msgid "Show your store on the home page" msgstr "Muestre su tienda en la página de inicio" #: templates/admin/storefront/area-navigation.php:4 msgid "Help customers find your store on the website." msgstr "Ayude a los clientes a encontrar su tienda en el sitio web." #: templates/admin/storefront/area-navigation.php:3 msgid "Navigation" msgstr "Navegación" #: templates/admin/welcome-no_oauth.php:12 msgid "Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>." msgstr "El ID de la tienda es un identificador único de su cuenta de %1$s. Puede encontrarlo en su panel de control de %1$s en la <a %2$s>página del panel</a>." #: templates/admin/welcome-create.php:11 msgid "Your store has been created. Preparing your store dashboard ..." msgstr "Se ha creado su tienda. Preparando el panel de su tienda..." #: templates/admin/welcome-connect.php:8 msgid "Create store" msgstr "Crear tienda" #: templates/admin/welcome-connect.php:4 msgid "Connect Your Store" msgstr "Conecte su tienda" #: templates/admin/welcome-page.php:61 msgid "Provided by <a %s>%s</a>" msgstr "Proporcionado por <a %s>%s</a>" #: templates/admin/welcome-page.php:33 msgid "To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>." msgstr "Para añadir su tienda a su sitio web, introduzca el ID de su tienda de %1$s en el campo a continuación. Si aún no tiene una cuenta de %1$s, cree una gratis en el <a %2$s>sitio web de %1$s</a>." #: templates/admin/welcome-page.php:20 msgid "Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website." msgstr "Cree una nueva tienda o, si ya tiene una cuenta de %s, conéctela. El complemento le guiará a través de la configuración de la tienda y le ayudará a publicarla en su sitio web." #: templates/admin/welcome-page.php:12 msgid "Add an Online Store to Your Website" msgstr "Añadir una tienda en línea a su sitio web" #: includes/class-ecwid-store-page.php:566 msgid "This is a demo store. Create your store to see your store products here." msgstr "Esto es una tienda de demostración. Cree su tienda para ver los productos de su tienda aquí." #: includes/class-ecwid-admin-storefront-page.php:539 msgid "Publish" msgstr "Publicar" #: templates/admin/storefront/area-design.php:33 #: templates/admin/storefront/area-design.php:59 #: includes/class-ecwid-admin-storefront-page.php:532 msgid "Edit" msgstr "Editar" #: includes/class-ecwid-admin-storefront-page.php:525 msgid "Preview" msgstr "Vista previa" #: includes/class-ecwid-admin-storefront-page.php:516 msgid "Switch to draft" msgstr "Cambiar al borrador" #: includes/class-ecwid-admin-storefront-page.php:506 msgid "Edit page" msgstr "Editar página" #: includes/class-ecwid-admin-storefront-page.php:499 msgid "View store page" msgstr "Ver la página de la tienda" #: includes/class-ecwid-admin-storefront-page.php:286 msgid "Search products" msgstr "Buscar productos" #: includes/class-ecwid-admin-storefront-page.php:265 msgid "Category" msgstr "Categoría" #: includes/class-ecwid-admin-storefront-page.php:240 msgid "Page with that name already exists." msgstr "Ya existe una página con ese nombre." #: includes/class-ecwid-admin.php:538 msgid "My Profile" msgstr "Mi perfil" #: includes/class-ecwid-admin.php:533 msgid "Apps" msgstr "Aplicaciones" #: includes/class-ecwid-admin.php:523 msgid "Shipping & Pickup" msgstr "Envío y recogida" #: includes/class-ecwid-admin.php:518 msgid "Payment" msgstr "Pago" #: includes/class-ecwid-admin.php:513 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:88 msgid "Design" msgstr "Diseño" #: includes/class-ecwid-admin.php:509 msgid "Configuration" msgstr "Configuración" #: includes/class-ecwid-admin.php:504 msgid "All Sales Channels" msgstr "Todos los canales de venta" #: includes/class-ecwid-admin.php:499 msgid "Website" msgstr "Sitio web" #: includes/class-ecwid-admin.php:494 msgid "Mobile" msgstr "Móvil" #: includes/class-ecwid-admin.php:485 msgid "Sales channels" msgstr "Canales de venta" #: includes/class-ecwid-admin.php:480 msgid "Reports" msgstr "Informes" #: includes/class-ecwid-admin.php:475 msgid "Marketing" msgstr "Mercadotecnia" #: includes/class-ecwid-admin.php:470 msgid "Catalog" msgstr "Catálogo" #: includes/class-ecwid-admin.php:465 msgid "My Sales" msgstr "Mis ventas" #: includes/class-ecwid-admin.php:455 msgid "Store management" msgstr "Gestión de la tienda" #: includes/class-ecwid-admin.php:344 msgid "Instant site" msgstr "Sitio web instantáneo" #: includes/class-ecwid-admin.php:153 includes/class-ecwid-admin.php:154 #: includes/class-ecwid-admin.php:309 msgid "Storefront" msgstr "Escaparate virtual" #: ecwid-shopping-cart.php:1111 msgid "Manage storefront" msgstr "Gestionar escaparate virtual" #: ecwid-shopping-cart.php:1111 msgid "Customize design" msgstr "Personalizar el diseño" #: ecwid-shopping-cart.php:1103 msgid "Manage store" msgstr "Gestionar la tienda" #: templates/importer/woo-main.tpl.php:97 msgid "Start Import" msgstr "Iniciar la importación" #: templates/importer/woo-main.tpl.php:87 msgid "Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target=\"_blank\">\"Billing & Plans\"</a></nobr> page in your Ecwid store control panel." msgstr "Tenga en cuenta el número máximo de productos y categorías que puede tener en su tienda de Ecwid. Esta herramienta de importación se detendrá automáticamente cuando se alcance el límite de productos de la tienda. Para conocer el límite actual de la tienda o aumentarlo, consulte la página <nobr><a %s target=\"_blank\">«Facturación y planes»</a></nobr> ubicada en el panel de su tienda de Ecwid." #: templates/importer/woo-main.tpl.php:82 msgid "Import creates new products and update the existing products with matching SKUs." msgstr "La importación crea nuevos productos y actualiza los productos existentes con las REF correspondientes." #: templates/importer/woo-main.tpl.php:60 msgid "Copying products and categories." msgstr "Copia de productos y categorías." #: templates/importer/woo-main.tpl.php:50 msgid "Import completed. <a href=\"%s\">Run again.</a>" msgstr "Importación completada. <a href=\"%s\">Ejecútela de nuevo.</a>" #: templates/importer/woo-main.tpl.php:34 msgid "Import is in Progress" msgstr "La importación está en progreso" #: templates/importer/woo-main.tpl.php:32 msgid "Import your products from Woocommerce to %s" msgstr "Importe sus productos de Woocommerce a %s" #: templates/importer/woo-main.tpl.php:18 msgid "Update your catalog" msgstr "Actualice su catálogo" #: templates/importer/woo-main.tpl.php:4 msgid "Import Your Products From Woocommerce to %s" msgstr "Importe sus productos de Woocommerce a %s" #: templates/importer/import-no-token.tpl.php:3 msgid "Click the connect button to get rights to update the product catalog" msgstr "Haga clic en el botón «Conectar» para obtener los permisos para actualizar el catálogo de productos" #: templates/importer/woo-complete-alert.tpl.php:52 msgid "Go to Your %s Products" msgstr "Ir a sus productos de %s" #: templates/importer/woo-complete-alert.tpl.php:43 msgid "Download <a href=\"%s\">import log</a>" msgstr "Descargar <a href=\"%s\">registro de importación</a>" #: templates/importer/woo-complete-alert.tpl.php:32 msgid "Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>" msgstr "Parte de los productos no se han copiado a %1$s porque alcanzó el límite de productos en su plan de precios en %1$s. Si desea importar más productos, considere <nobr><a %2$s>actualizar su plan de %1$s.</a></nobr>" #: templates/importer/woo-complete-alert.tpl.php:21 msgid "<b>%s</b> categories" msgstr "<b>%s</b> categorías" #: templates/importer/woo-complete-alert.tpl.php:18 msgid "Imported <b>%s</b> products" msgstr "<b>%s</b> productos importados" #: templates/importer/woo-complete-alert.tpl.php:15 msgid "Import completed" msgstr "Importación completada" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:10 #: includes/widgets/class-ecwid-widget-product-browser.php:12 msgid "Online store" msgstr "Tienda en línea" #: includes/class-ecwid-store-page.php:476 msgid "%s Store Page" msgstr "Página de la tienda de %s" #: templates/advanced-settings.php:79 msgid "Integration with search on your site" msgstr "Integración con la búsqueda en su sitio web" #: templates/sync.php:130 msgid "Deleted products synchronized: %1$s out of %2$s" msgstr "Productos eliminados sincronizados: %1$s de %2$s" #: includes/class-ecwid-custom-admin-page.php:66 msgid "Themes for Ecwid" msgstr "Temas para Ecwid" #: includes/class-ecwid-custom-admin-page.php:33 msgid "Plugins for Ecwid" msgstr "Complementos para Ecwid" #: includes/class-ecwid-popup-deactivate.php:138 msgid "I use this WordPress theme: %s" msgstr "Utilizo este tema de WordPress: %s" #: includes/class-ecwid-popup-deactivate.php:132 msgid "I couldn’t find a WordPress theme that goes well with %s" msgstr "No pude encontrar un tema de WordPress adecuado para %s" #: includes/class-ecwid-product-browser.php:357 msgid "On the right" msgstr "A la derecha" #: includes/class-ecwid-product-browser.php:353 msgid "On the left" msgstr "A la izquierda" #: includes/class-ecwid-product-browser.php:349 msgid "Filters panel position" msgstr "Posición del panel de filtros" #: includes/class-ecwid-product-browser.php:209 msgid "Default product_ID" msgstr "ID del producto predeterminado" #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:73 msgid "Cart icon" msgstr "Icono del carrito de compras" #: templates/shortcode-stub-store.tpl.php:4 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:20 #: js/gutenberg/blocks.build.js:1 msgid "Store Home Page" msgstr "Página de inicio de la tienda" #: ecwid-shopping-cart.php:431 msgid "Edit Category" msgstr "Editar categoría" #: ecwid-shopping-cart.php:430 msgid "Edit Product" msgstr "Editar producto" #: includes/class-ecwid-admin.php:142 includes/class-ecwid-admin.php:143 msgid "Online Store Apps" msgstr "Aplicaciones de la tienda en línea" #. Plugin Name of the plugin msgid "Ecwid Ecommerce Shopping Cart" msgstr "Carrito de compras del comercio electrónico de Ecwid" #: includes/class-ecwid-custom-admin-page.php:58 includes/faq_entries.php:76 msgid "Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href=\"%s\">TemplateMonster themes</a>" msgstr "Ecwid es compatible con cualquier tema de WordPress. Ya sea un tema gratuito del catálogo de WordPress.org, un tema prémium de un proveedor externo o un tema personalizado; su tienda de Ecwid funcionará bien con cualquiera de ellos. Si desea un tema prémium, le recomendamos <a href=\"%s\">temas de TemplateMonster</a>." #: includes/faq_entries.php:74 msgid "Is there a WordPress theme for Ecwid?" msgstr "¿Existe algún tema de WordPress para Ecwid?" #: templates/admin-footer.php:19 msgid "<a href=\"admin.php?page=" msgstr "<a href=\"admin.php?page=" #: includes/integrations/class-ecwid-integration-gutenberg.php:113 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:25 msgid "You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href=\"%1$s\">Appearance → Customize → %2$s</a>” menu to enable it." msgstr "Puede habilitar un «widget» adicional del icono de la bolsa de compras que aparecerá en las páginas de su sitio web. Abra el menú «<a href=\"%1$s\">Apariencia → Personalizar → %2$s</a>» para habilitarlo." #: includes/integrations/class-ecwid-integration-gutenberg.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:18 msgctxt "gutenberg-store-block-stub" msgid "Store" msgstr "Tienda" #: includes/class-ecwid-product-browser.php:472 msgid "Image feed" msgstr "Canal de imagen" #: includes/class-ecwid-product-browser.php:467 msgid "Vertical thumbnails" msgstr "Miniaturas verticales" #: includes/class-ecwid-product-browser.php:462 msgid "Horizontal thumbnails" msgstr "Miniaturas horizontales" #: includes/class-ecwid-product-browser.php:452 msgid "3 columns, image on the right" msgstr "3 columnas, imagen a la derecha" #: includes/class-ecwid-product-browser.php:448 msgid "3 columns, image on the left" msgstr "3 columnas, imagen a la izquierda" #: includes/class-ecwid-product-browser.php:444 msgid "2 columns, image on the right" msgstr "2 columnas, imagen a la derecha" #: includes/class-ecwid-product-browser.php:440 msgid "2 columns, image on the left" msgstr "2 columnas, imagen a la izquierda" #: includes/class-ecwid-product-browser.php:429 msgid "Landscape 3:2" msgstr "Horizontal 3:2" #: includes/class-ecwid-product-browser.php:424 msgid "Landscape 4:3" msgstr "Horizontal 4:3" #: includes/class-ecwid-product-browser.php:419 msgid "Square 1:1" msgstr "Cuadrado 1:1" #: includes/class-ecwid-product-browser.php:414 msgid "Portrait 3:4" msgstr "Vertical 3:4" #: includes/class-ecwid-product-browser.php:409 msgid "Portrait 2:3" msgstr "Vertical 2:3" #: includes/class-ecwid-product-browser.php:399 msgid "L" msgstr "G" #: includes/class-ecwid-product-browser.php:395 msgid "M" msgstr "M" #: includes/class-ecwid-product-browser.php:391 msgid "S" msgstr "P" #: includes/class-ecwid-product-browser.php:381 msgid "Show on hover" msgstr "Mostrar al pasar el ratón" #: includes/class-ecwid-product-browser.php:377 msgid "Hide" msgstr "Ocultar" #: includes/class-ecwid-product-browser.php:373 msgid "Show" msgstr "Mostrar" #: includes/class-ecwid-product-browser.php:342 msgid "Background color" msgstr "Color del fondo" #: includes/class-ecwid-product-browser.php:335 msgid "Link color" msgstr "Color del enlace" #: includes/class-ecwid-product-browser.php:328 msgid "Price color" msgstr "Color del precio" #: includes/class-ecwid-product-browser.php:321 msgid "Text color" msgstr "Color del texto" #: includes/class-ecwid-product-browser.php:314 msgid "Button color" msgstr "Color del botón" #: includes/class-ecwid-product-browser.php:299 msgid "Wholesale prices" msgstr "Precios al por mayor" #: includes/class-ecwid-product-browser.php:292 msgid "\"In stock\" label" msgstr "Etiqueta de productos «En existencia»" #: includes/class-ecwid-product-browser.php:285 msgid "Available qty in stock" msgstr "Cantidad disponible en existencia" #: includes/class-ecwid-product-browser.php:278 msgid "Product quantity" msgstr "Cantidad de productos" #: includes/class-ecwid-product-browser.php:271 msgctxt "product-browser-attributes" msgid "Product price" msgstr "Precio del producto" #: includes/class-ecwid-product-browser.php:264 msgctxt "product-browser-attributes" msgid "Product SKU" msgstr "REF del producto" #: includes/class-ecwid-product-browser.php:257 msgid "Breadcrumbs" msgstr "Migas de pan" #: includes/class-ecwid-product-browser.php:241 msgid "Image gallery layout" msgstr "Diseño de la galería de imágenes" #: includes/integrations/class-ecwid-integration-gutenberg.php:391 #: includes/class-ecwid-product-browser.php:224 #: includes/class-ecwid-product-browser.php:233 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:212 msgid "Show description under the image" msgstr "Mostrar descripción debajo de la imagen" #: includes/class-ecwid-product-browser.php:216 msgid "Product page layout" msgstr "Diseño de la página de productos" #: includes/class-ecwid-product-browser.php:194 msgid "Display sort by link" msgstr "Mostrar «ordenar por enlace»" #: includes/class-ecwid-product-browser.php:186 #: includes/class-ecwid-product-browser.php:306 msgid "Display sign in link" msgstr "Mostrar el enlace de inicio de sesión" #: includes/class-ecwid-product-browser.php:178 msgid "Display footer menu" msgstr "Mostrar el menú del pie de página" #: includes/class-ecwid-product-browser.php:170 msgid "Display breadcrumbs" msgstr "Mostrar migas de pan" #: includes/class-ecwid-product-browser.php:163 js/gutenberg/blocks.build.js:1 msgid "Display search box" msgstr "Mostrar el cuadro de búsqueda" #: includes/class-ecwid-product-browser.php:156 msgid "Display categories menu" msgstr "Mostrar el menú de categorías" #: includes/class-ecwid-product-browser.php:148 msgid "Category thumbnail aspect ratio" msgstr "Relación de aspecto de la miniatura de la categoría" #: includes/class-ecwid-product-browser.php:140 msgid "Category thumbnail size" msgstr "Tamaño de la miniatura de la categoría" #: includes/class-ecwid-product-browser.php:131 msgid "Image only" msgstr "Solo imagen" #: includes/class-ecwid-product-browser.php:127 msgid "Title only" msgstr "Solo título" #: includes/class-ecwid-product-browser.php:123 msgid "Image and title on mouse over" msgstr "Imagen y título al pasar el ratón por encima" #: includes/class-ecwid-product-browser.php:119 msgid "Title on image" msgstr "Título en la imagen" #: includes/class-ecwid-product-browser.php:115 msgid "Title under image" msgstr "Título debajo de la imagen" #: includes/class-ecwid-product-browser.php:111 msgid "Category card layout" msgstr "Diseño de la ficha de categoría" #: includes/class-ecwid-product-browser.php:103 msgid "Show additional image on hover" msgstr "Mostrar imagen adicional al pasar el ratón" #: includes/class-ecwid-product-browser.php:95 msgid "Buy now buttons" msgstr "Botones de «Comprar ahora»" #: includes/class-ecwid-product-browser.php:87 msgid "Product SKU" msgstr "REF del producto" #: includes/class-ecwid-product-browser.php:79 msgid "Product price" msgstr "Precio del producto" #: includes/class-ecwid-product-browser.php:71 msgid "Product title" msgstr "Título del producto" #: includes/class-ecwid-product-browser.php:61 msgid "Justify" msgstr "Justificado" #: includes/class-ecwid-product-browser.php:56 msgid "Right" msgstr "Derecha" #: includes/class-ecwid-product-browser.php:51 msgid "Center" msgstr "Centrado" #: includes/class-ecwid-product-browser.php:46 msgid "Left" msgstr "Izquierda" #: includes/class-ecwid-product-browser.php:42 msgid "Product card text align" msgstr "El texto de la ficha del producto se alinea" #: includes/class-ecwid-product-browser.php:34 msgid "Show product card border" msgstr "Mostrar el borde de la ficha del producto" #: includes/class-ecwid-product-browser.php:26 msgid "Product thumbnail aspect ratio" msgstr "Relación de aspecto de la miniatura del producto" #: includes/class-ecwid-product-browser.php:18 msgid "Product thumbnail size" msgstr "Tamaño de la miniatura del producto" #: includes/class-ecwid-product-browser.php:10 msgid "Show product thumbnails" msgstr "Mostrar miniaturas de los productos" #. Author of the plugin msgid "Ecwid Ecommerce" msgstr "Comercio electrónico Ecwid" #: templates/importer/woo-summary.tpl.php:34 msgid "After import, your %s store will have " msgstr "Después de la importación, su tienda de %s tendrá " #: templates/importer/woo-summary.tpl.php:21 msgid "Your %s store has " msgstr "Su tienda de %s tiene " #: templates/importer/woo-summary.tpl.php:10 msgid "Your WooCommerce store has " msgstr "Su tienda de WooCommerce tiene " #: includes/integrations/class-ecwid-integration-elementor.php:64 #: includes/integrations/class-ecwid-integration-divibuilder.php:25 #: includes/integrations/class-ecwid-integration-gutenberg.php:94 msgid "%s Store" msgstr "Tienda de %s" #: includes/importer/class-ecwid-import-page.php:184 msgid "%s products" msgstr "%s productos" #: includes/importer/class-ecwid-import-page.php:178 msgid "%s products and %s categories" msgstr "%s productos y %s categorías" #: includes/class-ecwid-stub-renderer.php:27 #: includes/class-ecwid-admin-storefront-page.php:272 msgid "Product" msgstr "Producto" #: includes/class-ecwid-message-manager.php:278 #: includes/class-ecwid-message-manager.php:297 #: includes/class-ecwid-message-manager.php:318 msgid "Warning: some of your online store features are disabled. Please contact your hosting provider to resolve." msgstr "Advertencia: algunas de las funciones de su tienda en línea están inhabilitadas. Póngase en contacto con su proveedor de alojamiento web para resolverlo." #: templates/admin/legacy-connect.tpl.php:39 msgid "Create new account" msgstr "Crear una nueva cuenta" #: templates/admin/legacy-connect.tpl.php:33 msgid "Register at %s" msgstr "Registrarse en %s" #: includes/class-ecwid-floating-minicart.php:155 msgid "Bottom left" msgstr "Abajo a la izquierda" #: includes/class-ecwid-floating-minicart.php:154 msgid "Top left" msgstr "Arriba a la izquierda" #: includes/class-ecwid-floating-minicart.php:113 msgid "Show on all pages" msgstr "Mostrar en todas las páginas" #: includes/class-ecwid-floating-minicart.php:112 msgid "Show on store pages" msgstr "Mostrar en las páginas de la tienda" #: includes/class-ecwid-floating-minicart.php:111 msgid "Do not show" msgstr "No mostrar" #: includes/class-ecwid-customizer.php:134 msgid "Vertical indent" msgstr "Sangría vertical" #: includes/class-ecwid-customizer.php:123 msgid "Horizontal indent" msgstr "Sangría horizontal" #: includes/class-ecwid-customizer.php:97 msgid "Icon" msgstr "Icono" #: includes/class-ecwid-customizer.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:79 msgid "Border" msgstr "Borde" #: includes/class-ecwid-customizer.php:72 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:67 msgid "Layout" msgstr "Diseño" #: includes/class-ecwid-customizer.php:61 msgid "Show when empty" msgstr "Mostrar cuando esté vacío" #: includes/class-ecwid-customizer.php:49 msgid "Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The \"Show on store pages\" and \"Show when empty\" options will apply to the cart widget on site when published" msgstr "Nota: cuando está habilitado, el «widget» del carrito siempre se mostrará en la vista previa para que sea más fácil personalizarlo. Las opciones «Mostrar en las páginas de la tienda» y «Mostrar cuando esté vacío» se aplicarán al «widget» del carrito en el sitio cuando se publiquen" #: includes/class-ecwid-customizer.php:47 msgid "Display shopping cart" msgstr "Mostrar el carrito de compras" #: includes/class-ecwid-customizer.php:35 msgid "Shopping Cart Widget" msgstr "«Widget» del carrito de compras" #. Author URI of the plugin msgid "https://ecwid.to/ecwid-site" msgstr "https://ecwid.to/ecwid-site" #: templates/product-popup.php:247 msgid "selected product" msgstr "producto seleccionado" #: templates/product-popup.php:138 templates/product-popup.php:143 msgid "Selected Product" msgstr "Producto seleccionado" #: templates/product-popup.php:124 msgid " Choose another product" msgstr " Elegir otro producto" #: templates/importer/landing.tpl.php:20 msgid "Import your WooCommerce catalog to %s" msgstr "Importe su catálogo de WooCommerce a %s" #: includes/widgets/nsf-minicart-editor.tpl.php:35 msgid "Border:" msgstr "Borde:" #: includes/widgets/nsf-minicart-editor.tpl.php:19 msgid "Cart icon:" msgstr "Icono del carrito:" #: includes/widgets/nsf-minicart-editor.tpl.php:3 msgid "Layout:" msgstr "Diseño:" #: includes/class-ecwid-floating-minicart.php:145 msgid "No border" msgstr "Sin borde" #: includes/class-ecwid-floating-minicart.php:144 msgid "Pill" msgstr "Píldora" #: includes/class-ecwid-floating-minicart.php:143 msgid "Rectangle" msgstr "Rectángulo" #: includes/class-ecwid-floating-minicart.php:136 msgid "Basket" msgstr "Cesta" #: includes/class-ecwid-floating-minicart.php:134 msgid "Bag" msgstr "Bolsa" #: includes/class-ecwid-floating-minicart.php:127 msgid "Icon, label, item count, subtotal and link" msgstr "Icono, etiqueta, total de artículos, subtotal y enlace" #: includes/class-ecwid-floating-minicart.php:126 msgid "Icon, label, item count and subtotal" msgstr "Icono, etiqueta, total de artículos y subtotal" #: includes/class-ecwid-floating-minicart.php:125 msgid "Icon, label and item count" msgstr "Icono, etiqueta y total de artículos" #: includes/class-ecwid-floating-minicart.php:124 msgid "Icon and item count" msgstr "Icono y total de artículos" #: includes/class-ecwid-floating-minicart.php:123 msgid "Label and item count" msgstr "Etiqueta y y total de artículos" #: includes/class-ecwid-floating-minicart.php:122 msgid "Item count only" msgstr "Solo el total de artículos" #: includes/class-ecwid-floating-minicart.php:121 msgid "Small icon and item count" msgstr "Icono pequeño y total de artículos" #: includes/class-ecwid-floating-minicart.php:120 msgid "Small icon" msgstr "Icono pequeño" #: includes/widgets/class-ecwid-widget-minicart.php:9 msgid "Shopping Cart (deprecated)" msgstr "Carrito de compras (descontinuado)" #: includes/widgets/class-ecwid-widget-minicart-miniview.php:9 msgid "Shopping Cart Mini (deprecated)" msgstr "Carrito de compras en miniatura (descontinuado)" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:21 msgid "Shopping Cart Floating (deprecated)" msgstr "Carrito de compras flotante (descontinuado)" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:69 msgid "Displays storefront: product listing and checkout" msgstr "Muestra el escaparate virtual: listado de productos y pago" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:67 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:70 msgctxt "vc-tab" msgid "Online store" msgstr "Tienda en línea" #: includes/integrations/class-ecwid-integration-gutenberg.php:105 #: includes/gutenberg/class-ecwid-gutenberg.php:131 msgid "Your product" msgstr "Su producto" #: templates/shortcode-stub-store.tpl.php:18 #: includes/integrations/class-ecwid-integration-gutenberg.php:103 #: includes/widgets/class-ecwid-widget-product-browser.php:11 #: includes/gutenberg/class-ecwid-gutenberg.php:129 msgid "Your store will be shown here" msgstr "Su tienda se mostrará aquí" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:31 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:101 #: includes/integrations/class-ecwid-integration-gutenberg.php:101 #: includes/gutenberg/class-ecwid-gutenberg.php:127 #: js/gutenberg/blocks.build.js:1 msgid "Choose product" msgstr "Elegir producto" #: includes/integrations/class-ecwid-integration-gutenberg.php:97 #: includes/gutenberg/class-ecwid-gutenberg.php:123 msgid "%s product" msgstr "%s producto" #: templates/wp-toolbox.tpl.php:4 msgid "Take advantage of powerful apps and extensions designed to enhance your store." msgstr "Aproveche las increíbles aplicaciones y extensiones diseñadas para mejorar su tienda." #: templates/wp-toolbox.tpl.php:3 msgid "Extensions for your Store" msgstr "Extensiones para su tienda" #: templates/importer/woo-summary.tpl.php:6 msgid "Import summary" msgstr "Resumen de la importación" #: templates/importer/woo-main.tpl.php:19 msgid "This import will copy your WooCommerce products and categories to your %s store." msgstr "Esta importación copiará sus productos y categorías de WooCommerce a su tienda de %s." #: templates/importer/woo-main.tpl.php:62 msgid "Importing %s of %s items" msgstr "Importando %s de %s artículos" #: templates/importer/woo-complete-alert.tpl.php:27 msgid "Some of the items could not be imported." msgstr "Algunos de los artículos no se pudieron importar." #: templates/importer/landing.tpl.php:33 msgid "Learn more" msgstr "Más información" #: templates/importer/landing.tpl.php:33 msgid "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" msgstr "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" #: templates/importer/landing.tpl.php:31 msgid "Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center" msgstr "Ecwid le permite subir sus productos en forma de archivo CSV. Obtenga más información sobre esta herramienta en el centro de asistencia de Ecwid" #: templates/importer/landing.tpl.php:29 msgid "Import product catalog from other sources" msgstr "Importar el catálogo de productos de otras fuentes" #: templates/importer/landing.tpl.php:23 msgid "(You will be able to confirm the changes before the actual import)" msgstr "(podrá confirmar los cambios antes de la importación definitiva)" #: templates/importer/landing.tpl.php:12 msgid "We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?" msgstr "Notamos que tiene un WooCommerce instalado. Su tienda de WooCommerce tiene %1$s productos y %2$s categorías; ¿le gustaría importarlos a %3$s?" #: templates/importer/landing.tpl.php:9 msgid "Import product catalog from WooCommerce" msgstr "Importar el catálogo de productos de WooCommerce" #: templates/importer/landing.tpl.php:4 msgid "Here, we will help you uploading your product catalog to %s from another shopping cart or other sources." msgstr "Aquí, le ayudaremos a subir su catálogo de productos a %s de otro carrito de compras u otras fuentes." #: templates/importer/landing.tpl.php:1 msgid "Import products to your %s store" msgstr "Importe los productos a su tienda de %s" #: templates/dashboard-blog-posts.tpl.php:20 msgid "Knowledge Base" msgstr "Base de conocimiento" #: templates/dashboard-blog-posts.tpl.php:19 msgid "https://support.ecwid.com/hc/en-us" msgstr "https://support.ecwid.com/hc/en-us" #: templates/dashboard-blog-posts.tpl.php:14 msgid "https://www.ecwid.com/blog" msgstr "https://www.ecwid.com/blog" #: includes/importer/class-ecwid-import.php:39 msgid "Bulk import products and categories to your %s store" msgstr "Importar en masa productos y categorías a su tienda de %s" #: includes/importer/class-ecwid-import.php:38 msgid "%s products and categories" msgstr "%s productos y categorías" #: templates/importer/woo-main.tpl.php:36 #: includes/importer/class-ecwid-import-page.php:52 #: includes/importer/class-ecwid-import-page.php:53 msgid "Import your products from WooCommerce to %s" msgstr "Importe sus productos de WooCommerce a %s" #: includes/importer/class-ecwid-import-page.php:42 #: includes/importer/class-ecwid-import-page.php:43 msgid "Import" msgstr "Importar" #: templates/dashboard-blog-posts.tpl.php:15 #: includes/class-ecwid-wp-dashboard-feed.php:48 msgid "%s Blog" msgstr "Blog de %s" #: includes/class-ecwid-message-manager.php:345 msgid "No Thanks" msgstr "No, gracias" #: includes/class-ecwid-message-manager.php:343 msgid "Import my products from WooCommerce" msgstr "Importar mis productos de WooCommerce" #: includes/class-ecwid-message-manager.php:341 msgid "We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you." msgstr "Notamos que tiene WooCommerce instalado. Si desea copiar fácilmente sus productos de WooCommerce a %s, esta herramienta le ayudará." #: includes/class-ecwid-message-manager.php:340 msgid "Need help importing your products from WooCommerce to %s?" msgstr "¿Necesita ayuda para importar sus productos de WooCommerce a %s?" #: includes/class-ecwid-admin.php:213 includes/class-ecwid-admin.php:214 msgid "Customers" msgstr "Clientes" #: templates/help.php:28 msgid "or <a %s>Browse the Help Center" msgstr "o <a %s>consulte el centro de asistencia" #: templates/admin/welcome-connection-message.php:5 msgid "To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission." msgstr "Para mostrar su tienda en este sitio web, debe permitir que WordPress acceda a sus productos de %1$s. Pulse «Conectar» para otorgar el permiso." #: includes/faq_entries.php:40 msgid "Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target=\"_blank\" href=\"%s\">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans." msgstr "Nuestros 4 tipos de cuentas varían según la cantidad de productos, los tipos de funcionalidades y el nivel de asistencia. Para obtener más información, consulte nuestra <a target=\"_blank\" href=\"%s\">página de precios.</a><br /><br />Consejo profesional: también puede ahorrar dinero si se suscribe a nuestros planes anuales." #: includes/class-ecwid-popup-deactivate.php:59 msgid "[%s] WordPress plugin deactivation feedback (store ID: %s)" msgstr "[%s] Comentarios sobre la desactivación del complemento de WordPress (ID de la tienda: %s)" #: includes/class-ecwid-message-manager.php:289 msgid "Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data." msgstr "Su escaparate virtual (listado de productos y página de pago) está funcionando bien, pero las funciones avanzadas de la tienda, como el SEO y los «widgets» de la barra lateral, están inhabilitadas. Para habilitarlas y asegurarse de que su tienda funcione correctamente, pulse el botón de abajo para conectar su cuenta de %s. Esto tomará menos de un minuto; solo se le pedirá que inicie sesión en su cuenta y permita que este sitio web obtenga los datos de su tienda." #: includes/class-ecwid-message-manager.php:288 msgid "Action required: please connect your %s account" msgstr "Acción requerida: conecte su cuenta de %s" #: templates/popup/deactivate.php:24 msgid "Contact Support" msgstr "Ponerse en contacto con la asistencia" #: templates/popup/deactivate.php:1 msgid "If you have a moment, please let us know why you are deactivating:" msgstr "Si tiene un momento, háganos saber por qué está desactivando:" #: templates/admin/welcome-create.php:4 msgid "Create Store" msgstr "Crear tienda" #: templates/advanced-settings.php:1 msgid "%s — Advanced settings" msgstr "%s — Configuración avanzada" #: includes/widgets/class-ecwid-widget-random-products.php:10 msgid "Displays a list of random products." msgstr "Muestra una lista de productos aleatorios." #: includes/widgets/class-ecwid-widget-random-products.php:9 msgid "Random Products" msgstr "Productos aleatorios" #: includes/widgets/class-ecwid-widget-random-product.php:9 #: includes/widgets/class-ecwid-widget-random-product.php:64 msgid "Random Product" msgstr "Producto aleatorio" #: includes/widgets/class-ecwid-widget-random-product.php:8 msgid "Displays a random product from your store to attract customer attention." msgstr "Muestra un producto aleatorio de su tienda para atraer la atención del cliente." #: includes/widgets/class-ecwid-widget-latest-products.php:10 msgid "Displays the latest added products from your store. Show new products to returning customers to drive repeat sales." msgstr "Muestra los últimos productos añadidos de su tienda. Muestre nuevos productos a los clientes existentes para impulsar las ventas repetidas." #: includes/widgets/class-ecwid-widget-latest-products.php:9 msgid "Latest Products" msgstr "Últimos productos" #: includes/class-ecwid-popup-deactivate.php:164 msgid "Can you share your feedback? What was wrong?" msgstr "¿Podría compartir su opinión? ¿Qué fue lo que pasó?" #: includes/class-ecwid-popup-deactivate.php:161 msgid "Other" msgstr "Otro" #: includes/class-ecwid-popup-deactivate.php:155 msgid "It's a temporary deactivation. Please do not ask me again." msgstr "Es una desactivación temporal. No preguntarme de nuevo." #: includes/class-ecwid-popup-deactivate.php:152 msgid "Can you share the name of the plugin you chose?" msgstr "¿Podría compartir el nombre del complemento que ha elegido?" #: includes/class-ecwid-popup-deactivate.php:149 msgid "I found a better plugin" msgstr "Encontré un mejor complemento" #: includes/class-ecwid-popup-deactivate.php:146 msgid "What feature do you need?" msgstr "¿Qué función necesita?" #: includes/class-ecwid-popup-deactivate.php:143 msgid "The plugin doesn't support the feature I want" msgstr "El complemento no es compatible con la función que quiero" #: includes/class-ecwid-popup-deactivate.php:128 msgid "What was wrong?" msgstr "¿Qué fue lo que pasó?" #: includes/class-ecwid-popup-deactivate.php:125 msgid "I have a problem using this plugin" msgstr "Tengo un problema con el uso de este complemento" #: includes/class-ecwid-popup-deactivate.php:112 msgid "Before You Go" msgstr "Antes de que se vaya" #: templates/admin/storefront/area-navigation.php:79 #: includes/class-ecwid-popup-deactivate.php:105 msgid "Cancel" msgstr "Cancelar" #: includes/class-ecwid-popup-deactivate.php:101 msgid "Submit & Deactivate" msgstr "Enviar y desactivar" #: includes/class-ecwid-message-manager.php:244 #: includes/class-ecwid-store-page.php:568 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:51 #: ecwid-shopping-cart.php:1082 js/gutenberg/blocks.build.js:1 msgid "Set up your store" msgstr "Configure su tienda" #: templates/admin-head.php:8 includes/class-ecwid-admin.php:48 #: includes/integrations/class-ecwid-integration-gutenberg.php:45 #: includes/gutenberg/class-ecwid-gutenberg.php:69 msgid "%s" msgstr "%s" #: templates/product-popup.php:199 js/gutenberg/blocks.build.js:1 msgid "«Buy now» button" msgstr "Botón de «Comprar ahora»" #: templates/admin/simple-dashboard.php:10 msgid "%s Shopping Cart" msgstr "Carrito de compras de %s" #: templates/advanced-settings.php:42 msgid "Please subscribe to a paid plan to get this feature." msgstr "Suscríbase a un plan de pago para obtener esta función." #: templates/admin-footer.php:9 msgid "Get %s mobile app" msgstr "Descargue la aplicación móvil de %s" #: includes/class-ecwid-message-manager.php:272 msgid "Rate %s at WordPress.org" msgstr "Tasa de %s en WordPress.org" #: includes/class-ecwid-message-manager.php:268 msgid "Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site." msgstr "¿Le gusta su tienda de %s en línea? Apreciaríamos si comparte su opinión y vota por el complemento en el sitio de WordPress." #: includes/class-ecwid-message-manager.php:260 msgid "To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings." msgstr "Para añadir funciones adicionales a su tienda, arrastre y suelte los elementos de la tienda de %s en su sitio web. Una vez que haya terminado, puede volver a modificar su configuración." #: templates/sync.php:114 msgid "Provide access." msgstr "Otorgar acceso." #: templates/sync.php:113 msgid "To enable this feature, the plugin needs a permission to read your store product information." msgstr "Para habilitar esta función, el complemento necesita un permiso para leer la información del producto de su tienda." #: templates/product-popup.php:137 templates/product-popup.php:147 msgid "Choose Product" msgstr "Elegir producto" #: templates/product-popup.php:96 msgid "Try another search." msgstr "Intente otra búsqueda." #: templates/sync.php:152 msgid "Not synchronized yet" msgstr "No se ha sincronizado todavía" #: templates/sync.php:149 msgid "Last update" msgstr "Última actualización" #: templates/sync.php:145 msgid "Products are successfully synchronized. The product pages are up to date." msgstr "Los productos se sincronizaron satisfactoriamente. Las páginas de productos están actualizadas." #: templates/sync.php:138 msgid "Products synchronized: %1$s out of %2$s" msgstr "Productos eliminados sincronizados: %1$s de %2$s" #: templates/sync.php:126 msgid "We're synchronizing your products. This may take a few minutes. Please do not reload the page." msgstr "Estamos sincronizando sus productos. Esto puede tardar unos minutos. No actualice la página." #: templates/sync.php:119 msgid "Synchronize products" msgstr "Sincronizar productos" #: templates/advanced-settings.php:83 msgid "%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site." msgstr "%s almacena los datos de sus productos de forma segura en la nube. Las páginas de productos se muestran sobre la marcha cuando un cliente navega por su tienda. Por lo que, básicamente, los productos no se almacenan en el sitio web, por eso la búsqueda en el sitio web no encuentra páginas de productos mientras busca en las páginas del sitio web y en las publicaciones. Esta opción habilita un modo de almacenamiento local: los productos se almacenarán tanto en la nube como en su sitio web. Los resultados de la búsqueda en el sitio web incluirán las páginas de productos, así como las páginas o publicaciones habituales de su sitio web." #: templates/product-popup.php:243 msgid "Insert" msgstr "Insertar" #: templates/product-popup.php:242 msgid "select product" msgstr "seleccionar producto" #: templates/product-popup.php:241 templates/product-popup.php:246 msgid "customize appearance" msgstr "personalizar apariencia" #: templates/product-popup.php:224 msgid "Show price inside the \"Buy now\" button" msgstr "Mostrar el precio dentro del botón de «Comprar ahora»" #: templates/product-popup.php:229 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:62 #: js/gutenberg/blocks.build.js:1 msgid "Center align on a page" msgstr "Centrar la alineación en una página" #: templates/product-popup.php:219 js/gutenberg/blocks.build.js:1 msgid "Add border" msgstr "Añadir borde" #: templates/product-popup.php:188 js/gutenberg/blocks.build.js:1 msgid "Quantity" msgstr "Cantidad" #: templates/product-popup.php:178 js/gutenberg/blocks.build.js:1 msgid "Options" msgstr "Opciones" #: templates/product-popup.php:173 js/gutenberg/blocks.build.js:1 msgid "Picture" msgstr "Imagen" #: templates/product-popup.php:163 msgid "Choose product properties to display in widget" msgstr "Elija las propiedades del producto para mostrarlas en el «widget»" #: templates/product-popup.php:139 templates/product-popup.php:151 msgid "Customize widget" msgstr "Personalizar «widget»" #: templates/product-popup.php:97 msgid "Browse all products." msgstr "Explorar todos los productos." #: templates/product-popup.php:94 msgid "Nothing found for <span class=\"empty-page__term\">\"{{ data.term }}\"</span>" msgstr "No se ha encontrado nada en relación con <span class=\"empty-page__term\">«{{ data.term }}»</span>" #: templates/product-popup.php:80 msgid "Next page" msgstr "Página siguiente" #: templates/product-popup.php:69 msgid "Current Page" msgstr "Página actual" #: templates/product-popup.php:49 msgid "Title or SKU" msgstr "Título o REF" #: templates/product-popup.php:47 templates/product-popup.php:53 #: templates/product-popup.php:56 msgid "Search" msgstr "Buscar" #: templates/product-popup.php:29 msgid "SKU" msgstr "REF" #: templates/product-popup.php:23 msgid "Name" msgstr "Nombre" #: includes/class-ecwid-product-popup.php:150 msgid "Last Page" msgstr "Última página" #: includes/class-ecwid-product-popup.php:149 msgid "Next Page" msgstr "Página siguiente" #: includes/class-ecwid-product-popup.php:148 msgid "Previous Page" msgstr "Página anterior" #: includes/class-ecwid-product-popup.php:147 msgid "First Page" msgstr "Primera página" #: includes/class-ecwid-product-popup.php:107 msgid "Add Product" msgstr "Añadir producto" #: includes/class-ecwid-oauth.php:366 msgid "To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the \"Add product\" dialog." msgstr "A fin de poder elegir un producto para insertarlo en sus publicaciones y páginas, deberá volver a conectar su sitio a su tienda de %s. Esto solo requerirá que acepte la solicitud de permisos para que el complemento pueda listar sus productos en el cuadro de diálogo «Añadir producto»." #: templates/advanced-settings.php:54 msgid "To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>" msgstr "Para asegurarse de que su cliente puede acceder realmente a su sitio web y a la tienda, habilite el registro en las <a %s>configuraciones del sitio web</a>" #: templates/advanced-settings.php:48 msgid "To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>" msgstr "Para permitir que %s inicie la sesión de sus clientes automáticamente en su tienda, otorgue los permisos para utilizar los datos del cliente en la tienda. <a %s>Utilice este enlace para hacerlo</a>" #: templates/advanced-settings.php:39 msgid "Upgrade to get this feature" msgstr "Actualice para obtener esta función" #: templates/advanced-settings.php:32 msgid "Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again." msgstr "El inicio de sesión único les permite a sus clientes tener un inicio de sesión único para su sitio web de WordPress y su %s. Cuando alguien inicie sesión en su sitio web, también iniciará sesión automáticamente en su cuenta de cliente en la tienda sin necesidad de introducir su correo electrónico y contraseña nuevamente." #: templates/advanced-settings.php:27 msgid "Customer Single Sign-On" msgstr "Inicio de sesión único del cliente" #: includes/integrations/class-ecwid-integration-divibuilder.php:63 msgid "Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space." msgstr "Introduzca las clases CSS opcionales que se utilizarán para este módulo. Se puede utilizar una clase CSS para crear estilos CSS personalizados. Puede añadir varias clases separadas por un espacio." #: includes/integrations/class-ecwid-integration-divibuilder.php:60 msgid "CSS Class" msgstr "Clase CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:57 msgid "Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page." msgstr "Introduzca un ID de CSS opcional que se utilizará para este módulo. Se puede utilizar un ID para crear un estilo CSS personalizado o para crear enlaces a secciones particulares de su página web." #: includes/integrations/class-ecwid-integration-divibuilder.php:54 msgid "CSS ID" msgstr "ID de CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:51 msgid "This will change the label of the module in the builder for easy identification." msgstr "Esto cambiará la etiqueta del módulo en el creador para una fácil identificación." #: includes/integrations/class-ecwid-integration-divibuilder.php:49 msgid "Admin Label" msgstr "Etiqueta de administrador" #: includes/integrations/class-ecwid-integration-divibuilder.php:44 msgid "Here you can create the content that will be used within the module." msgstr "Aquí puede crear el contenido que se utilizará dentro del módulo." #: includes/integrations/class-ecwid-integration-divibuilder.php:41 msgid "Content" msgstr "Contenido" #: templates/admin-footer.php:29 msgid "<a %s>Reconnect</a>" msgstr "<a %s>Volver a conectar</a>" #: templates/help.php:15 msgid "https://support.ecwid.com/hc/en-us/search" msgstr "https://support.ecwid.com/hc/en-us/search" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:73 msgid "Browse by Category" msgstr "Buscar por categoría" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:15 msgid "Store Root Categories" msgstr "Categorías raíz de la tienda" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:14 msgid "Adds root categories list to the sidebar to let your customers navigate the store." msgstr "Añade la lista de categorías raíz a la barra lateral para que sus clientes puedan desplazarse por la tienda." #: templates/admin/welcome-connection-message.php:25 msgid "To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission." msgstr "Para vender utilizando %1$s, debe permitir que WordPress acceda al complemento %1$s. El botón «Conectar» lo redirigirá a su cuenta de %1$s donde puede otorgar el permiso." #: templates/admin-timeout.php:11 msgid "Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">our customer support team</a>." msgstr "Nuestro equipo ya está trabajando en este asunto. Actualice la página en unos minutos. Si el problema persiste, comuníquese con <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">nuestro equipo de atención al cliente</a>." #: templates/admin-timeout.php:9 msgid "Sorry we're having technical difficulties." msgstr "Le pido disculpas por las dificultades técnicas que estamos experimentando." #: includes/class-ecwid-floating-minicart.php:153 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:143 msgid "Top right" msgstr "Arriba a la derecha" #: includes/class-ecwid-floating-minicart.php:152 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:138 msgid "Bottom right" msgstr "Abajo a la derecha" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:135 #: includes/class-ecwid-customizer.php:110 msgid "Position" msgstr "Posición" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:20 msgid "Adds a shopping cart widget to the top right corner of your site." msgstr "Añada un «widget» de carrito de compras en la esquina superior derecha de su sitio web." #: templates/help.php:215 msgid "You can send a new request here." msgstr "Puede enviar una nueva solicitud aquí." #: templates/help.php:214 msgid " Thank you very much for contacting us! We will get back to you shortly." msgstr " ¡Muchas gracias por ponerse en contacto con nosotros! Nos pondremos en contacto con usted en breve." #: templates/help.php:213 msgid "Your email has been sent" msgstr "Se ha enviado su correo electrónico" #: templates/help.php:207 msgid "Send message failed" msgstr "Ocurrió un error al enviar el mensaje" #: templates/help.php:196 msgid "Send Message" msgstr "Enviar mensaje" #: templates/help.php:193 msgid "Type in your message here" msgstr "Escriba su mensaje aquí" #: templates/help.php:192 msgid "Subject" msgstr "Asunto" #: templates/help.php:186 msgid "Send a message to our support team" msgstr "Envíe un mensaje a nuestro equipo de asistencia" #: templates/help.php:177 msgid "Still have questions about Ecwid? Let us know!" msgstr "¿Todavía tiene preguntas acerca de Ecwid? ¡Háganoslo saber!" #: templates/help.php:176 msgid "Contact us" msgstr "Póngase en contacto con nosotros" #: templates/help.php:33 msgid "Frequently Asked Questions" msgstr "Preguntas frecuentes" #: templates/help.php:21 msgid "Search the Knowledge Base" msgstr "Buscar en la base de conocimientos" #: templates/help.php:17 msgid "E.g. How to set up shipping" msgstr "Por ejemplo, cómo establecer el envío" #: templates/help.php:11 msgid "How can we help you?" msgstr "¿Cómo podemos ayudarle?" #: includes/faq_entries.php:68 msgid "You can display your store on the site main page. Adjust the \"Reading\" settings of your site as described in our <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">Help Center.</a>" msgstr "Puede mostrar su tienda en la página principal del sitio web. Ajuste la configuración de «Lectura» de su sitio web como se describe en nuestro <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">centro de asistencia.</a>" #: includes/faq_entries.php:67 msgid "Is it possible to display my store on the site home page?" msgstr "¿Es posible mostrar mi tienda en la página de inicio del sitio web?" #: includes/faq_entries.php:61 msgid "To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">How to use it.</a>" msgstr "Para mostrar un solo producto en una página aparte o en una entrada de blog de su sitio web, utilice el código corto <b>[ecwid_product]</b>. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">Cómo utilizarlo</a>" #: includes/faq_entries.php:60 msgid "How to add a single product with the add to bag button to the site pages?" msgstr "¿Cómo añadir un solo producto con el botón de «añadir a la bolsa» en las páginas del sitio web?" #: includes/faq_entries.php:55 msgid "To create sitemap for your Wordpress site we suggest using <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> or <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">paid Ecwid users</a>." msgstr "Para crear un «Mapa del sitio» para su sitio web de Wordpress, le sugerimos que utilice los  complementos <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> o <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>. Estos complementos son totalmente compatibles con Ecwid y permiten generar un mapa del sitio que contiene enlaces a categorías y páginas de productos, por lo que las páginas de la tienda se indexarán más rápido. Tenga en cuenta que esta opción solo está disponible para los <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">usuarios de pago de Ecwid</a>." #: includes/faq_entries.php:54 msgid "How do I put my products in the sitemap?" msgstr "¿Cómo pongo mis productos en el mapa del sitio?" #: includes/faq_entries.php:48 msgid "You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open \"Appearance > Menus\" in your WordPress control panel and add the \"Store with Categories Menu\" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site." msgstr "Puede añadir el menú de categorías de la tienda al menú de su sitio web para ayudar a sus clientes a navegar fácilmente por su sitio web. Simplemente abra «Apariencia > Menús» en el panel de WordPress y añada el elemento «Tienda con menú de categorías» al menú de su sitio web. Aparecerá automáticamente un menú desplegable que contendrá las categorías de su tienda en su sitio web." #: includes/faq_entries.php:47 msgid "How do I add store categories to the site menu?" msgstr "¿Cómo puedo añadir categorías de tiendas al menú del sitio web?" #: includes/faq_entries.php:38 msgid "How much does Ecwid cost?" msgstr "¿Cuánto cuesta Ecwid?" #: includes/faq_entries.php:30 msgid "You can add product search box, cart widget and more on the <a href=\"%s\">\"Appearance / Widgets page\"</a> here in your site admin. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">More details.</a>" msgstr "Puede añadir un cuadro de búsqueda de productos, un «widget» de carrito y más desde la <a href=\"%s\">«Página de apariencia y widgets»</a> que se encuentra aquí en el administrador de su sitio web. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">Más detalles.</a>" #: includes/faq_entries.php:28 msgid "How can I add a cart widget to my site sidebar?" msgstr "¿Cómo puedo añadir un «widget» de carrito de compras a la barra lateral de mi sitio web?" #: includes/faq_entries.php:21 msgid "You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">More details.</a>" msgstr "Puede añadir su tienda en línea a su página empresarial de Facebook (no se necesitan complementos). Ecwid sincronizará automáticamente los productos, clientes, pedidos e inventario entre su tienda en línea de WordPress y Facebook. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">Más detalles.</a>" #: includes/faq_entries.php:20 msgid "How to set up a storefront on Facebook with Ecwid?" msgstr "¿Cómo crear una tienda en Facebook con Ecwid?" #: includes/faq_entries.php:13 msgid "Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">More details.</a>" msgstr "Ecwid ofrece aplicaciones móviles gratuitas para iOS y Android para que pueda gestionar su tienda y vender donde y cuando quiera. Escanee productos, supervise el inventario, gestione las ventas y acepte pagos utilizando su dispositivo móvil como una estación de punto de venta. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">Más detalles.</a>" #: includes/faq_entries.php:12 msgid "How can I manage my store from a mobile device?" msgstr "¿Cómo puedo gestionar mi tienda desde un dispositivo móvil?" #: includes/faq_entries.php:6 msgid "Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">More details.</a>" msgstr "Ecwid cuenta con la certificación PCI DSS Nivel 1, que es el estándar de oro para las soluciones de comercio electrónico en todo el mundo. Esto significa que no tendrá problemas de cumplimiento bancario cuando venda en línea con Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">Más detalles.</a>" #: includes/faq_entries.php:5 msgid "How secure is this plugin? Is my store PCI DSS compliant?" msgstr "¿Qué tan seguro es este complemento? ¿Mi tienda cumple con el PCI DSS?" #: includes/class-ecwid-nav-menus.php:32 msgid "Ecwid Menu Item" msgstr "Elemento del menú de Ecwid" #: includes/class-ecwid-admin.php:179 includes/class-ecwid-admin.php:180 msgid "Help" msgstr "Ayuda" #: templates/admin-footer.php:27 msgid "Want to connect another %s store?" msgstr "¿Desea conectar otra tienda de %s?" #: templates/admin-footer.php:17 msgid "Questions?" msgstr "¿Tiene alguna pregunta?" #: templates/admin-footer.php:6 msgid "Manage Store on iPhone, iPad or Android" msgstr "Gestione la tienda desde iPhone, iPad o Android" #: includes/class-ecwid-message-manager.php:254 msgid "Complete Setup" msgstr "Completar configuración" #: includes/class-ecwid-message-manager.php:253 msgid "Complete setup and start selling" msgstr "Complete la configuración y comience a vender" #: includes/class-ecwid-message-manager.php:242 msgid "Greetings! Your %s plugin is now active." msgstr "¡Enhorabuena! Su complemento de %s ya está activo." #: templates/debug.php:12 msgid "Download log file" msgstr "Descargar archivo de registro" #: templates/help.php:67 includes/oembed.php:75 includes/oembed.php:104 msgid "See more" msgstr "Ver más" #: ecwid-shopping-cart.php:1051 msgid "I have a problem with my %s store" msgstr "Tengo un problema con mi tienda de %s" #: includes/class-ecwid-message-manager.php:55 msgid "Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: \"The Wordpress function wp_remote_post() failed to connect a remote server because of some error: \"%s\". Seems like HTTP POST requests are disabled on this server\". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>." msgstr "Lo siento, hay un problema. Se supone que esta página muestra el panel de control de su tienda; sin embargo, este sitio web de Wordpress no parece poder conectarse al servidor de Ecwid para mostrar el panel de su tienda aquí. Es probable que esto se deba a una mala configuración del servidor; su proveedor de alojamiento web puede solucionarlo. Aquí hay una descripción más técnica del problema, la cual puede enviarle a su proveedor de alojamiento web: «La función de Wordpress wp_remote_post() no pudo conectarse a un servidor remoto debido al error: “%s”; parece que las solicitudes HTTP POST están inhabilitadas en este servidor». <br /><br />No dude en ponerse en contacto con nosotros en <a %s>wordpress@ecwid.com</a> y le ayudaremos a comunicarse con su proveedor de alojamiento web para pedirle que solucione el problema. <br /><br /> Mientras tanto, para gestionar su tienda, puede utilizar el panel de control web de Ecwid en <a %s>my.ecwid.com</a>. Su escaparate virtual está funcionando bien; puede echarle un vistazo aquí: <a %s>%s</a>." #: templates/store-popup.php:249 msgid "Open store dashboard" msgstr "Abrir el panel de la tienda" #: templates/store-popup.php:12 templates/store-popup.php:27 msgid "Store elements" msgstr "Elementos de la tienda" #: templates/reconnect-sso.php:10 msgid "Re-connect to Enable Control Panel" msgstr "Vuélvase a conectar para activar el panel de control" #: templates/reconnect-sso.php:8 msgid "Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page." msgstr "Gestione productos, supervise las ventas y ajuste la configuración: <nobr>todo sin</nobr> salir de esta página." #: templates/reconnect-sso.php:7 msgid "Your store Control Panel. Right here in WordPress." msgstr "Panel de control de su tienda. Aquí mismo en WordPress." #: ecwid-shopping-cart.php:2114 msgid "Orders" msgstr "Pedidos" #: includes/class-ecwid-nav-menus.php:168 ecwid-shopping-cart.php:2118 msgid "The store top-level categories are automatically added to this drop-down menu" msgstr "Las categorías de alto nivel de la tienda se añaden automáticamente a este menú desplegable" #: includes/class-ecwid-nav-menus.php:167 ecwid-shopping-cart.php:2117 msgid "Done" msgstr "Hecho" #: includes/class-ecwid-nav-menus.php:166 ecwid-shopping-cart.php:2116 msgid "Refresh categories list" msgstr "Actualizar la lista de categorías" #: includes/class-ecwid-nav-menus.php:165 msgid "Store Page" msgstr "Página de la tienda" #: includes/class-ecwid-nav-menus.php:319 msgid "Add to Menu" msgstr "Añadir al menú" #: includes/class-ecwid-nav-menus.php:316 msgid "Select All" msgstr "Seleccionar todo" #: includes/class-ecwid-nav-menus.php:369 msgid "Store with Categories Menu" msgstr "Tienda con menú de categorías" #: includes/class-ecwid-nav-menus.php:352 #: includes/class-ecwid-nav-menus.php:355 msgid "My Account" msgstr "Mi cuenta" #: includes/class-ecwid-nav-menus.php:335 #: includes/class-ecwid-floating-minicart.php:135 #: includes/class-ecwid-admin-storefront-page.php:279 msgid "Cart" msgstr "Carrito" #: includes/class-ecwid-admin.php:87 includes/class-ecwid-admin.php:88 #: includes/class-ecwid-products.php:228 ecwid-shopping-cart.php:2112 msgid "Products" msgstr "Productos" #: includes/class-ecwid-admin.php:79 includes/class-ecwid-admin.php:80 msgid "Sales" msgstr "Ventas" #: ecwid-shopping-cart.php:1119 msgid "Report a problem with the store" msgstr "Informar un problema con la tienda" #: ecwid-shopping-cart.php:1036 msgid "%s plugin doesn't work well with my \"%s\" theme" msgstr "El complemento %s no funciona bien con mi tema «%s»" #: templates/admin/welcome-connection-message.php:22 #: templates/admin/welcome-connection-message.php:28 msgid "Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL." msgstr "Parece que su sitio web no admite solicitudes POST remotas, las cuales son necesarias para que la API de %s funcione. Comuníquese con su proveedor de alojamiento web para habilitar cURL." #. Description of the plugin msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up." msgstr "Ecwid es un carrito de compras gratuito con todas las funciones. Se puede integrar fácilmente con cualquier blog de Wordpress y se configura en menos de 5 minutos." #. Plugin URI of the plugin msgid "http://www.ecwid.com?partner=wporg" msgstr "http://www.ecwid.com?partner=wporg" #: templates/store-svg.php:12 msgid "Demo Store" msgstr "Tienda de demostración" #: templates/store-svg.php:9 msgid "Your store will be shown here!" msgstr "¡Su tienda se mostrará aquí!" #: templates/product-popup.php:248 templates/store-popup.php:256 msgid "Update" msgstr "Actualizar" #: templates/store-popup.php:253 msgid "Insert into page" msgstr "Insertar en la página" #: templates/store-popup.php:246 msgid "Demo store" msgstr "Tienda de demostración" #: templates/store-popup.php:80 msgid "Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>" msgstr "Además, puede añadir controles de la tienda a la barra de herramientas de su sitio web mediante <a %s>«widgets» nativos de WordPress</a>." #: templates/store-popup.php:74 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:86 msgid "Show categories" msgstr "Mostrar categorías" #: templates/store-popup.php:66 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:94 msgid "Show minicart" msgstr "Mostrar minicarrito" #: templates/store-popup.php:58 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:78 msgid "Show search" msgstr "Mostrar búsqueda" #: templates/store-popup.php:53 msgid "Product catalog will be shown automatically" msgstr "El catálogo de productos se mostrará automáticamente" #: templates/store-popup.php:52 msgid "Choose widgets to show" msgstr "Elija los «widgets» a mostrar" #: templates/admin/welcome-create.php:7 msgid "Connect your store" msgstr "Conecte su tienda" #: templates/admin/welcome-no_oauth.php:6 #: templates/importer/import-no-token.tpl.php:6 #: includes/class-ecwid-message-manager.php:291 msgid "Connect" msgstr "Conectar" #: templates/admin/legacy-connect.tpl.php:68 msgid "Save and connect your %s store to the site" msgstr "Guarde y conecte su tienda de %s al sitio web" #: templates/admin/legacy-connect.tpl.php:59 msgid "Enter your Store ID here:" msgstr "Introduzca el ID de su tienda aquí:" #: templates/admin/legacy-connect.tpl.php:52 msgid "Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the \"Dashboard\" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration." msgstr "El ID de la tienda es un identificador único de cualquier tienda de %1$s, el cual consta de varios dígitos. Puede encontrarlo en la página «Panel» del panel de control de %1$s. El ID de la tienda se enviará en el correo electrónico de bienvenida después del registro." #: templates/admin/legacy-connect.tpl.php:50 msgid "Find your Store ID" msgstr "Encuentre el ID de su tienda" #: templates/admin/legacy-connect.tpl.php:46 msgid "You will be able to sign up through your existing Google, Facebook or PayPal profiles as well." msgstr "También podrá registrarse a través de sus perfiles existentes de Google, Facebook o PayPal." #: templates/admin/legacy-connect.tpl.php:42 msgid "I already have an account, sign in" msgstr "Ya tengo una cuenta, iniciar sesión" #: templates/admin/legacy-connect.tpl.php:35 msgid "Create a new %s account which you will use to manage your store and inventory. The registration is free." msgstr "Cree una nueva cuenta de %s que utilizará para gestionar su tienda e inventario. El registro es gratuito." #: templates/admin/legacy-connect.tpl.php:24 msgid "The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps." msgstr "El primer paso para abrir su negocio en línea: <br />añadamos una tienda a su sitio web de WordPress en <strong>3</strong> simples pasos." #: templates/admin/legacy-connect.tpl.php:21 msgid "Thank you for choosing %s to build your online store" msgstr "Gracias por elegir %s para construir su tienda en línea" #: templates/admin/simple-dashboard.php:58 msgid "Open control panel" msgstr "Abrir el panel de control" #: templates/admin/simple-dashboard.php:42 msgid "Your %s store is connected<br /> to your WordPress website" msgstr "Su tienda de %s está conectada<br /> a su sitio web de WordPress" #: templates/admin/simple-dashboard.php:39 msgid "Greetings!" msgstr "¡Saludos!" #: templates/admin/simple-dashboard.php:34 msgid "Your %s store is now connected<br /> to your WordPress website" msgstr "Su tienda de %s ahora está conectada<br /> a su sitio web de WordPress" #: templates/admin/simple-dashboard.php:31 msgid "Congratulations!" msgstr "¡Enhorabuena!" #: templates/admin/simple-dashboard.php:18 msgid "Disconnect store" msgstr "Desconectar tienda" #: templates/admin/legacy-connect.tpl.php:65 #: templates/admin/simple-dashboard.php:14 templates/store-popup.php:244 #: templates/store-svg.php:14 #: includes/integrations/class-ecwid-integration-gutenberg.php:104 #: includes/gutenberg/class-ecwid-gutenberg.php:130 msgid "Store ID" msgstr "ID de la tienda" #: templates/admin/welcome-connection-message.php:15 msgid "Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again." msgstr "Error de conexión: después de hacer clic en el botón, debe iniciar sesión y otorgar los permisos para poder utilizar nuestro complemento. Inténtelo de nuevo." #: templates/admin/legacy-connect.tpl.php:57 #: templates/admin/welcome-no_oauth.php:3 msgid "Enter your Store ID" msgstr "Introduzca el ID de su tienda" #: templates/store-popup.php:221 msgid "Default view mode on search results" msgstr "Modo de vista predeterminado en los resultados de búsqueda" #: templates/store-popup.php:214 templates/store-popup.php:232 msgid "Table" msgstr "Tabla" #: templates/store-popup.php:211 templates/store-popup.php:229 msgid "List" msgstr "Lista" #: templates/store-popup.php:208 templates/store-popup.php:226 msgid "Grid" msgstr "Cuadrícula" #: templates/store-popup.php:204 msgid "Default view mode on product pages" msgstr "Modo de vista predeterminado en las páginas de productos" #: templates/store-popup.php:184 msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products." msgstr "Aquí puede gestionar cuántos productos se mostrarán por página. Estas opciones definen valores máximos. Si no hay suficiente espacio para mostrar todas las columnas de productos, %s adaptará el número de columnas para mantener todos los productos." #: templates/store-popup.php:169 msgid "Table view" msgstr "Vista de tabla" #: templates/store-popup.php:152 msgid "List view" msgstr "Vista de lista" #: templates/store-popup.php:125 msgid "Grid view" msgstr "Vista de cuadrícula" #: templates/store-popup.php:123 msgid "Number of products per page" msgstr "Número de productos por página" #: templates/store-popup.php:191 msgid "Number of categories per row" msgstr "Número de categorías por fila" #: templates/advanced-settings.php:98 msgid "Save changes" msgstr "Guardar cambios" #: includes/class-ecwid-product-browser.php:202 msgid "Default category ID" msgstr "ID de categoría predeterminada" #: templates/store-popup.php:98 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:127 #: includes/integrations/class-ecwid-integration-gutenberg.php:427 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:56 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:248 msgid "Store root category" msgstr "Categoría raíz de la tienda" #: templates/store-popup.php:90 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:101 msgid "Category shown by default" msgstr "Categoría mostrada por defecto" #: templates/admin-message.php:47 msgid "Never show this message again" msgstr "Nunca mostrar este mensaje otra vez" #: templates/product-popup.php:194 lib/ecwid_platform.php:209 #: js/gutenberg/blocks.build.js:1 msgid "Price" msgstr "Precio" #: includes/class-ecwid-store-editor.php:75 #: includes/integrations/class-ecwid-integration-gutenberg.php:102 #: includes/gutenberg/class-ecwid-gutenberg.php:128 msgid "Edit Appearance" msgstr "Editar apariencia" #: includes/class-ecwid-store-editor.php:60 msgid "Edit Store" msgstr "Editar tienda" #: templates/store-popup.php:11 templates/store-popup.php:21 #: includes/class-ecwid-store-editor.php:52 msgid "Add Store" msgstr "Añadir tienda" #: includes/class-ecwid-message-manager.php:261 msgid "Back to Store Settings" msgstr "Regresar a la configuración de la tienda" #: includes/class-ecwid-message-manager.php:252 msgid "Your store is almost ready!" msgstr "¡Su tienda ya está casi lista!" #: includes/class-ecwid-message-manager.php:243 msgid "Take a few simple steps to complete store setup" msgstr "Siga unos sencillos pasos para completar la configuración de la tienda" #: includes/widgets/class-ecwid-widget-products-base.php:205 msgid "Number of products to show" msgstr "Número de productos para mostrar" #: includes/widgets/class-ecwid-widget-recently-viewed.php:89 msgid "Store Link Title" msgstr "Título del enlace de la tienda" #: templates/product-popup.php:183 includes/class-ecwid-product-browser.php:249 #: includes/widgets/class-ecwid-widget-products-base.php:199 #: js/gutenberg/blocks.build.js:1 msgid "Title" msgstr "Título" #: includes/widgets/class-ecwid-widget-recently-viewed.php:69 #: includes/widgets/class-ecwid-widget-recently-viewed.php:91 msgid "You have not viewed any product yet. Open store." msgstr "Aún no ha visto ningún producto. Abra la tienda." #: includes/widgets/class-ecwid-widget-recently-viewed.php:11 msgid "Recently Viewed Products" msgstr "Productos vistos recientemente" #: includes/widgets/class-ecwid-widget-recently-viewed.php:12 msgid "Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop." msgstr "Muestra una lista de productos vistos recientemente por el cliente para volver fácilmente a los productos que vieron en su tienda." #: includes/widgets/class-ecwid-widget-store-link.php:35 msgid "Text" msgstr "Texto" #: includes/themes/class-ecwid-theme-twentyseventeen.php:48 #: includes/themes/class-ecwid-theme-twentyseventeen.php:54 #: includes/themes/class-ecwid-theme-twentyfifteen.php:34 #: includes/themes/class-ecwid-theme-twentyfifteen.php:40 #: includes/themes/class-ecwid-theme-twentysixteen.php:36 #: includes/themes/class-ecwid-theme-twentysixteen.php:42 #: includes/widgets/class-ecwid-widget-store-link.php:31 msgid "Shop" msgstr "Tienda" #: includes/widgets/class-ecwid-widget-store-link.php:10 msgid "Store Page Link" msgstr "Enlace a la página de la tienda" #: includes/widgets/class-ecwid-widget-store-link.php:9 msgid "Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site." msgstr "Muestra un enlace a la página de la tienda en la barra lateral para que el cliente acceda rápidamente a su tienda desde cualquier página del sitio web." #: includes/widgets/class-ecwid-widget-vcategories.php:9 msgid "Store Categories" msgstr "Categorías de la tienda" #: includes/widgets/class-ecwid-widget-vcategories.php:8 msgid "Adds vertical categories block to let the customer navigate your store." msgstr "Añade un bloque de categorías verticales para permitir que el cliente navegue por su tienda." #: includes/class-ecwid-nav-menus.php:344 #: includes/class-ecwid-nav-menus.php:347 #: includes/widgets/class-ecwid-widget-search.php:13 msgid "Product Search" msgstr "Búsqueda de productos" #: includes/widgets/class-ecwid-widget-search.php:12 msgid "Displays a simple search box for your customers to find a product in your store" msgstr "Muestra un cuadro de búsqueda simple para que sus clientes encuentren un producto en su tienda." #: includes/widgets/class-ecwid-widget-minicart-miniview.php:8 msgid "Adds a compact cart widget for customer to see the products they added to the cart." msgstr "Añade un «widget» de carrito compacto para que el cliente vea los productos que se han añadido al carrito." #: includes/widgets/class-ecwid-widget-minicart.php:41 #: includes/widgets/class-ecwid-widget-random-product.php:67 #: includes/widgets/class-ecwid-widget-search.php:46 #: includes/widgets/nsf-minicart-editor.tpl.php:50 #: includes/widgets/class-ecwid-widget-minicart-miniview.php:41 #: includes/widgets/class-ecwid-widget-vcategories.php:39 #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:76 msgid "Title:" msgstr "Título:" #: includes/class-ecwid-nav-menus.php:338 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:20 msgid "Shopping Cart" msgstr "Carrito de compras" #: includes/widgets/class-ecwid-widget-minicart.php:8 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:19 msgid "Adds a cart widget for customer to see the products they added to the cart." msgstr "Añade un «widget» de carrito para que el cliente vea los productos que se han añadido al carrito." #: includes/widgets/class-ecwid-widget-badge.php:51 #: includes/widgets/class-ecwid-widget-badge.php:63 msgid "Ecwid e-commerce widgets" msgstr "«Widget» de comercio electrónico de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:45 #: includes/widgets/class-ecwid-widget-badge.php:57 msgid "Ecwid shopping cart" msgstr "Carrito de compras de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:39 #: includes/widgets/class-ecwid-widget-badge.php:75 msgid "Ecwid free shopping cart" msgstr "Carrito de compras gratuito de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:33 #: includes/widgets/class-ecwid-widget-badge.php:69 msgid "Ecwid ecommerce solution" msgstr "Solución de comercio electrónico de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:21 #: includes/widgets/class-ecwid-widget-badge.php:27 msgid "Ecwid shopping cart widget" msgstr "«Widget» de carrito de compras de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:14 msgid "Ecwid Badge" msgstr "Distintivo de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:13 msgid "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid." msgstr "¿Le gusta Ecwid y quiere ayudarlo a crecer? Puede añadir este elegante distintivo «Powered by Ecwid» en su sitio web para mostrarles a sus visitantes que es un usuario orgulloso de Ecwid." #: ecwid-shopping-cart.php:2791 msgid "Recommendations for Your Online Store" msgstr "Recomendaciones para su tienda en línea" #: includes/class-ecwid-admin.php:528 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:77 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:87 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:95 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:103 #: ecwid-shopping-cart.php:2056 msgid "Settings" msgstr "Configuraciones" #: includes/class-ecwid-admin.php:165 msgid "Advanced" msgstr "Avanzado" #: includes/class-ecwid-admin.php:164 msgid "Advanced settings" msgstr "Configuraciones avanzadas" #: templates/product-popup.php:206 templates/store-popup.php:14 #: templates/store-popup.php:34 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:44 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:78 #: js/gutenberg/blocks.build.js:1 msgid "Appearance" msgstr "Apariencia" #: includes/class-ecwid-admin.php:28 includes/class-ecwid-admin.php:59 #: includes/class-ecwid-admin.php:459 ecwid-shopping-cart.php:2110 msgid "Dashboard" msgstr "Panel" #: includes/class-ecwid-admin.php:57 ecwid-shopping-cart.php:2056 msgid "Setup" msgstr "Configuración" #: includes/class-ecwid-admin.php:47 msgid "%s shopping cart settings" msgstr "Configuraciones del carrito de compras de %s" #: includes/class-ecwid-nav-menus.php:132 #: includes/class-ecwid-nav-menus.php:361 #: includes/class-ecwid-nav-menus.php:364 #: includes/class-ecwid-nav-menus.php:372 includes/class-ecwid-admin.php:206 #: includes/class-ecwid-admin.php:207 includes/class-ecwid-admin.php:220 #: includes/class-ecwid-admin.php:221 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:63 #: includes/class-ecwid-admin-storefront-page.php:257 #: ecwid-shopping-cart.php:1657 msgid "Store" msgstr "Tienda" #: ecwid-shopping-cart.php:1306 msgid "<a %s>Online store powered by %s</a>" msgstr "<a %s>Tienda en línea con tecnología de %s</a>" #: includes/class-ecwid-admin.php:489 msgid "Sell on Facebook" msgstr "Vender en Facebook" #: templates/admin/simple-dashboard.php:48 ecwid-shopping-cart.php:1094 msgid "Visit storefront" msgstr "Visitar escaparate virtual" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/languages/ecwid-shopping-cart-es_PE.mo������������������������������������������0000644�����������������00000225044�15122273603�0017566 0����������������������������������������������������������������������������������������������������ustar�00�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������e�����D��5��l&������@3�����A3��H���Y3�����3�����3�����3�����3�����3�� ���3��.���3�� ���4�� ��� 4�����,4�����J4�����e4����4�����g6��B���6�����6�����6�����6�����7��$���97�����^7�����r7�����7�����7��/���r8�� ���8�� ���8�����8�����8�����8�����8�����9��#���%9�� ���I9�����T9�����o9�����~9�� ���9�� ���9��>���9��"��� :�����-:�����:��k���:��K���h;��S���;��A���<��R���J<��G���<��4���<�� ���=�����&=�����/=��&���A=�����h=��T���{=�� ���=�����=�����=�����=�����>�����>�����#>�� ���*>�����8>�����?>�� ���G>�� ���S>�� ���`>�����l>�����>��4���>�� ���>�����>�����>�����>��X���>�� ���V?�����`?��/���g?��,���?�����?�����?�����?�� ���?�� ���?�����?�� ���?����� @�����@�����,@�����A@�����[@�����{@�����@�����@�����@�����@�����@�����@��.���@�����A�����5A��D���LA�����A�����A�� ���A�� ���A�����A�����A�����A����� B����� B��x���3B�����B�� ���B�����B�� ���B�����B�����C�����C�����*C�� ���=C�����JC��5���\C��h���C�����C�����D�� ���D�� ���D��5���D�����E�� ���E��x���%E��i���E�����F�����F�����4F�����QF�����bF�����F�� ���F�����F�����G�����$G��"���7G��#���ZG��/���~G�� ���G�� ���G�����G�����G�����G�����G�����H�����H�����-H�����?H��!���WH�����yH�����H��6���H��!���H�����H��*���I��%���:I�����`I��'���vI�����I�����I��,���I�����I��q���J��s���yJ��#���J��H���K��O���ZK��1���K��s���K�� ���PL�����\L��v���L�����uM��$���zM�����M�����M�����M�� ���M�����M�����M����� N��s���N�����N�����N�����N��=��N�����P����P����Q�����R�����R����� S�����S�� ��� S�� ���.S�� ���;S�� ���FS�� ���TS�����^S�����S�����T�����T�����T��B���T��$���)U�����NU�����VU�����mU�� ���U�����U�����U�� ���U�����U�� ���U��(���U�����V�� ���V�����V�����#V��.���V�����W��D���W��h���%X�����X��_���X��C���X�����7Y�����IY��/���_Y��/���Y�����Y��/���Y��(���Z�����-Z��9���GZ��I���Z��2���Z��"���Z��:���![�����\[��"���t[��!���[�����[�����[�����[�����[��$��� \��*���1\��B���\\�����\�� ���\�����\�� ���\�����\��+���\�����]��-���,]��P���Z]�����]��#���]��'���]��)��� ^�� ���7^�����X^��%���g^��+���^��+���^�����^�����_�����_�����!_�� ���2_��$���?_��9���d_��%���_��:���_�����_�����`�����`�����&`�����(`�� ���=`�� ���K`�� ���Y`�� ���c`�����o`�����`�����`�� ���`�����`�����`�� ���`�����`�����`�� ���`�����`�����oa�����a�����a��S���a�����a��'���a��[���'b�� ���b�����b�� ���b�����b�� ���b�� ���b�����b�����b�� ���b��9���b�����c�� ���:c�� ���Dc�� ���Nc�� ���Xc�����bc�����wc��I���Jd�����d�����d�����d�� ���d�� ���d�� ���e�����e�� ��� e�����-e�����@e�����Ue�����]e�����de�����je�����if��#���Og�����sg�� ���g�����g�����lh�����th�� ���i�� ���i�����i�����%i��O��*i��4���zj�����j�� ���j�� ���j�����j�����j�� ���j�����j�� ����k����� k�����k�����'k�����:k�����Rk�� ���jk�����vk�����k�����k�����k��+���k�����k�� ��� l�����l�����*l�����Bl�����al�� ���xl�����l��I���l��'���l�����m�����m�����$m�����=m�����Em��#���Xm�� ���|m�����m�� ���m�����m�����m�����m��"���m�����m��%���n�� ���4n�����>n�����Vn�����en�����n�����n�����n�����n�����n�����n�����n��*���n�� ���n�����n�����n�����o�����o�����/o�� ���8o�����Co�����So�����do�����vo�� ���o��"���o�����o�����o�� ���o�����o�����o�����p����� p�����p�� ���"p�����0p��#���Kp�����op�����p�����p�����p�����p�����p��V���p�� ���Bq�� ���cq�����qq�� ���q�����q��&���q��(���q�����q�����r�� ���&r�����2r�� ���Br�� ��cr�� ���ns�����ys��(���s��*���s����s�� ���ow�� ���zw�����w�����w��.���$x�����Sx�����Yx�����jx�����x�����x�����x�����x�����x�����y�����z�����0z�� ���Az�����Lz�����\z�����rz�����z�����z�����z�����z�����z�����z�� ���z�����{�����{�����${�����4{�����I{�� ���O{��/���Z{��N���{�����{�� ���{��4���{�����|��=���|�����}��-���}�����}��%���~��M���~�������P�����H���h��P��������������� ����� ���"�����/�����A�����H�����ۀ������� ��4��E��>�������]��������l��%��^��*����*����y���ڊ��>���T�������h���5��L���������� ������������������,�����5�����<�����P�����l�����|�������������������������ԍ����������������� �����!��� ��j���B����������E��^���ŏ�����$�����,�����F�� ���V�����c������� ���������C����B����k���@���������������V�� ������0���!��^���R�������:���Ę��>��������>�����N�����j�� �����2�����?���Ù����������֚������������y�����A��������Q�����o������:��������J�����_�� �����"��������Þ��"���ߞ��H�����)���K�����u�������&�����(���ן���������������� �����4����G�����$��e���:��'��������Ȣ�� ���ˢ�����֢�� ����������5����� ���M�� ���Y�����f�������,�������̣�����W��B���v��!��������ۦ��!����������0���=�����n����������������*���������������(�����!���1�����S��*���p�������+����� �����!����������6���)��1���`�������C�����/����������!��������2��e�����n���&��Z�����o�����^���`��R�������������,�����5��5���O�������h����� ��� �� �����!���!��)���C�����m�����}�������������������������������� ���Ӱ������������:��������O�� ���`�����n�������`����� ����� �����=�����9���W�������������������������β�� ����� ����� �����%�����!���(�����J��5���j��(��������ɳ��%���ҳ�������!���������"�����2��C���B��(����������g���ϴ�����7�����Q��.���j�������������������������ҵ������������%�����!���Ŷ�� �����!�������������-�����J�����e�� ����������8�����j��������O������� ��������(��I���7��$���������������x���@�������'���Ѻ��5��������/�����G�������������������������6��9���U��;�����0���˼���������������,�����4�����H�����b�����u�����������������2�����!�����#���5��I���Y��+��������Ͼ��6�����/���%�����U��2���s��&��������Ϳ��E��������2�����D�������*���c��P�����`�����:���@�����{�� ��� ���������������U��3���[������������'���������������5��������D�����`��,�����+��� ��$���L��t��q�������A����h�������6��)���R�����|����������������� �����$�������������������������$����������Y�����*���?�����j�����r�����������������%������������� �� ���$��4���/�� ���d�����p������������;����������D�����g��������l��p���t��Q��������7�����K��]���c��>�����������D�����1���_�������I�����g�����/���[��$�����7����������0�����%���8��"���^������������%�����/�����7�����@���1��.���r�������#����� ����������)����������>���,��h���k��!�����%�����1�����3���N��'����������(�����)�����)��������B�����a�����������������-�����E�����-���+��8���Y������� ��������������� ����������������������� �����7�����J�����R�����[�� ���m�����w������������������������������}������������s��������*��/���E��q���u������������ ��������&�� ���-�� ���7�� ���A�����L�� ���S��A���_��#��������������� ����� ����������)����c���H������� �����!���������� ��������+��#���<�����`�����q����������������������I���������%��������(�� ���:�����G����������$���������������������������9���������� ����� ����� ����� ��� ����������*�����1�����B�����K�����f��#�����%��������������� ����� �����+���5��7���a��"���������������*�����1�����$���C�����h�� ���}��a�����0�������������/�����?�����^�� ���g��4����� ������������������������������5���-�����c��(����� �����"����������"������������������ �����"�����&�����-�����>��-���F�����t�����������������"���������������������������������2�����E��0���T��&��������������������������������� ����������#��"���6��+���Y�������/�����!����������+��������(�����<��(������������������ ��$���;��8���`��8�����)�����#�������� �����2��)���N��M��x�������$�����2�����L���-��,��z�� ��������������������?���������������!�����#��������7�����V�����u��������������3�����S�����l�� �������������������������$�����$���+�����P�����n�������������������������������������G�����W���C������������8����������Y����������:���z�����'����_��������X���&�^����U�������4����<� ���Q� ���^����l������������M�����#��������� �u���= ��� �@�� �@���U��H�����P���:�����~���:�a�����������1����E����]����v� ��������$������������ ���� ��������,���6����c������������� ����#���������������(�]���� ��� ��������0� ���I����W�����V��&����}���U�`������H�+�����������'��� �2��� �^����!����_!�A���v!�G���!�����"����"�$���6"� ���["�8���g"�;���"�5��"� ���$����3$����$����$�R���%����%���� &���-&�[��� (����e(� ���}(����(�"���(����(�"���(�H���(�)���9)����c)�(���~)����)����)����)����)����)����*��������I����������������k������R��W��y����$��%���������������������������������������#�����y���R��#��������J���Z���������?���B��^��>������������������������� ��� ��3����1�����U������>�������K��q����������������������-���������������������v���8������:���/������g��d�����������������S��?�����������������������'���������,������������j��Z��������P���������W������������S���������]����������T����������� �������6�������������������r�������������c��9����������,������������������k��������������%���������������������������������������������L���"�������a����������W��t�������������������}��.������ ��$������K������G���������~���������������0������w������������E��������7����������������������������Q��������F������������������:��\�����������������O�����X��'��*��3������1������ ���������������������u������������9�����E�����������C�����������������������������?������8��a��_���b�������L������@��&������*��I��C���J�����Y���������D������������$���������;��F���������N������G������'���������������0�����@�����^��������c�����������������u����>��:��������.�����������M��j���[��S����������������4������� ������������H�������������@���������������K�����]���������P���&�������������������%���� ��c������h��X���A��������#�����������z�������3�����(����������������������������������������������Q��������e�������������-����������i���������D����p�������!��������������(������������X��5����7���������=��������������;������N���������P������������������T��������������\������Z����������������������&����� ��������� ���`�������|�����������`������������<���������e���+�������A�����=����������������������)�������Q������������������������f��!����� ���b��a���M��{�������<��7�������������������������������������H��������6��O��s���`����������9�����*���������-��}���"���������r���������0��������������{������������������������������������l��H����������v����d��/����� ��]���t���p�����2�����������d��������g������U���������C�������w���������[���l������������������������<��������� ���o���1��� ����������V��f������N�� ��E��������������������������������� �����������������������/������,��������~�����������������������!������[����n�����������_��"�����(�������2���J��x��h���_���� ��������o������M������4��=��8������������2����� ��4������������m���������������������������5��n��I���;�����)������6��L��V������������+����+��A�������������������������Y��B��F������ �������)��������m��i�����������5���^������|���z���������������������U����������x�����������\����q������������O���������������V����������b���������������������������������������Y�������������.�����D������������������B�������G��s�������������R�����T����e���������� Choose another product� Thank you very much for contacting us! We will get back to you shortly.�"In stock" label�%s�%s Blog�%s Shopping Cart�%s Store�%s Store Page�%s plugin doesn't work well with my "%s" theme�%s product�%s products�%s products and %s categories�%s products and categories�%s shopping cart settings�%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site.�%s — Advanced settings�(You will be able to confirm the changes before the actual import)�2 columns, image on the left�2 columns, image on the right�3 columns, image on the left�3 columns, image on the right�<a %s>Online store powered by %s</a>�<a %s>Reconnect</a>�<a href="admin.php?page=�<b>%s</b> categories�A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use "/shop" or "/products".�Action required: please connect your %s account�Add Product�Add Store�Add Store Page to Menu�Add a category page�Add a product page�Add a search and filters page�Add a store page�Add an Online Store to Your Website�Add border�Add cart and checkout page�Add categories�Add store page to the site menu�Add storefront (product listing)�Add to Menu�Add your %s store to the website and start selling in minutes.�Add your store to other site pages�Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href="%s" target="_blank">WordPress Settings > Reading</a>�Additional store pages�Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>�Adds a cart widget for customer to see the products they added to the cart.�Adds a compact cart widget for customer to see the products they added to the cart.�Adds a shopping cart widget to the top right corner of your site.�Adds root categories list to the sidebar to let your customers navigate the store.�Adds vertical categories block to let the customer navigate your store.�Adjust your store design to fit your business needs.�Admin Label�Advanced�Advanced settings�After import, your %s store will have �All Sales Channels�Along with the store catalog, you can add other widgets and texts to the store page.�Appearance�Apps�Available qty in stock�Back to Store Settings�Background color�Bag�Basket�Before You Go�Border�Border:�Bottom left�Bottom right�Breadcrumbs�Browse all products.�Browse by Category�Bulk import products and categories to your %s store�Button color�Buy Now�Buy Now Button�Buy now buttons�By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>.�CSS Class�CSS ID�Can you share the name of the plugin you chose?�Can you share your feedback? What was wrong?�Cancel�Cart�Cart and Checkout�Cart icon�Cart icon:�Catalog�Categories�Category�Category List Appearance�Category card layout�Category shown by default�Category thumbnail aspect ratio�Category thumbnail size�Center�Center align on a page�Change�Change store content�Choose Product�Choose product�Choose product properties to display in widget�Choose the main store page�Choose widgets to show�Click the connect button to get rights to update the product catalog�Color settings�Complete Setup�Complete setup and start selling�Configuration�Congratulations!�Connect�Connect Your Store�Connect your %s store�Connect your store�Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again.�Contact Support�Contact us�Content�Copying products and categories.�Create Cart Page�Create Category Page�Create Product Page�Create Search Page�Create Store�Create Store Page�Create a landing page featuring one of your products.�Create a new %s account which you will use to manage your store and inventory. The registration is free.�Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website.�Create new account�Create store�Current Page�Current URL slug: /<span data-ec-store-slug>%s</span>�Customer Single Sign-On�Customers�Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers.�Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout.�Customize design�Customize store appearance�Customize store page address�Customize widget�Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand.�Cyan bluish gray�Dashboard�Default category�Default category ID�Default product_ID�Default view mode on product pages�Default view mode on search results�Deleted products synchronized: %1$s out of %2$s�Demo Store�Demo store�Design�Design and content�Detect automatically�Disconnect store�Display a buy button�Display breadcrumbs�Display cart icon�Display categories menu�Display categories navigation bar�Display category page�Display footer menu�Display product page with description and a buy button�Display product with a buy button�Display search box�Display search page with filters on a side�Display shopping bag link and summary�Display shopping cart�Display shopping cart and checkout page�Display sign in link�Display sort by link�Display the shopping cart icon on site pages�Displayed product�Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site.�Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop.�Displays a list of random products.�Displays a random product from your store to attract customer attention.�Displays a simple search box for your customers to find a product in your store�Displays storefront: product listing and checkout�Displays the latest added products from your store. Show new products to returning customers to drive repeat sales.�Do not show�Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid.�Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site.�Done�Download <a href="%s">import log</a>�Download log file�Draft�E.g. How to set up shipping�Ecwid Badge�Ecwid Ecommerce�Ecwid Ecommerce Shopping Cart�Ecwid Menu Item�Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center�Ecwid e-commerce widgets�Ecwid ecommerce solution�Ecwid free shopping cart�Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">More details.</a>�Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up.�Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href="%s">TemplateMonster themes</a>�Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">More details.</a>�Ecwid shopping cart�Ecwid shopping cart widget�Edit�Edit Appearance�Edit Category�Edit Product�Edit Store�Edit URL Slug�Edit page�Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page.�Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space.�Enter your Store ID�Enter your Store ID here:�Extensions for your Store�Feature a specific store category on a separate page of your site.�Feature your products in the sidebar�Filters�Filters panel position�Find your Store ID�First Page�Frequently Asked Questions�Get %s mobile app�Go to Pages�Go to Your %s Products�Greetings!�Greetings! Your %s plugin is now active.�Grid�Grid view�Help�Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars.�Help customers find your store on the website.�Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products.�Here you can create the content that will be used within the module.�Here, we will help you uploading your product catalog to %s from another shopping cart or other sources.�Hide�Highlight products, categories, and other store pages by adding them to separate website pages.�Highlight your best sellers or new products in the website sidebar.�Horizontal indent�Horizontal thumbnails�How can I add a cart widget to my site sidebar?�How can I manage my store from a mobile device?�How can we help you?�How do I add store categories to the site menu?�How do I put my products in the sitemap?�How much does Ecwid cost?�How secure is this plugin? Is my store PCI DSS compliant?�How to add a single product with the add to bag button to the site pages?�How to set up a storefront on Facebook with Ecwid?�I already have an account, sign in�I couldn’t find a WordPress theme that goes well with %s�I found a better plugin�I have a problem using this plugin�I have a problem with my %s store�I use this WordPress theme: %s�Icon�Icon and item count�Icon, label and item count�Icon, label, item count and subtotal�Icon, label, item count, subtotal and link�If you have a moment, please let us know why you are deactivating:�Image and title on mouse over�Image feed�Image gallery layout�Image only�Import�Import Your Products From Woocommerce to %s�Import completed�Import completed. <a href="%s">Run again.</a>�Import creates new products and update the existing products with matching SKUs.�Import is in Progress�Import my products from WooCommerce�Import product catalog from WooCommerce�Import product catalog from other sources�Import products to your %s store�Import summary�Import your WooCommerce catalog to %s�Import your products from WooCommerce to %s�Import your products from Woocommerce to %s�Imported <b>%s</b> products�Importing %s of %s items�Insert�Insert into page�Instant site�Integration with search on your site�Is it possible to display my store on the site home page?�Is there a WordPress theme for Ecwid?�It's a temporary deactivation. Please do not ask me again.�Item count only�Justify�Knowledge Base�L�Label and item count�Landscape 3:2�Landscape 4:3�Last Page�Last update�Latest Products�Layout�Layout:�Learn more�Left�Light green cyan�Link color�Linked product�List�List view�Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL.�Luminous vivid amber�Luminous vivid orange�M�Make your store accessible from the site menu so your customers can easily find it.�Manage Sidebar�Manage Store on iPhone, iPad or Android�Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page.�Manage store�Manage storefront�Marketing�Mobile�My Account�My Profile�My Sales�Name�Navigation�Need help importing your products from WooCommerce to %s?�Never show this message again�Next Page�Next page�No Thanks�No border�Not synchronized yet�Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The "Show on store pages" and "Show when empty" options will apply to the cart widget on site when published�Nothing found for <span class="empty-page__term">"{{ data.term }}"</span>�Number of categories per row�Number of products per page�Number of products to show�On the left�On the right�Online Store�Online Store Apps�Online store�Open control panel�Open store dashboard�Options�Orders�Other�Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target="_blank" href="%s">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans.�Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">our customer support team</a>.�Page with that name already exists.�Pale cyan blue�Pale pink�Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>�Payment�Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers.�Pick Category�Pick Product�Picture�Pill�Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target="_blank">"Billing & Plans"</a></nobr> page in your Ecwid store control panel.�Please subscribe to a paid plan to get this feature.�Plugins for Ecwid�Portrait 2:3�Portrait 3:4�Position�Preview�Previous Page�Price�Price color�Product�Product Card Large�Product Card Small�Product List Appearance�Product Page Appearance�Product SKU�Product Search�Product Search Box�Product Search and filters�Product card text align�Product catalog will be shown automatically�Product page layout�Product price�Product quantity�Product sidebar content�Product thumbnail aspect ratio�Product thumbnail size�Product title�Products�Products are successfully synchronized. The product pages are up to date.�Products synchronized: %1$s out of %2$s�Promote your store�Provide access.�Provided by <a %s>%s</a>�Publish�Publish Store Page�Publish the page to use this option�Published�Quantity�Questions?�Random Product�Random Products�Rate %s at WordPress.org�Re-connect to Enable Control Panel�Recently Viewed Products�Recommendations for Your Online Store�Rectangle�Refresh categories list�Register at %s�Report a problem with the store�Reports�Right�S�SKU�Sales�Sales channels�Save�Save and connect your %s store to the site�Save changes�Search�Search and Filters�Search products�Search the Knowledge Base�See more�Select All�Select category�Selected Product�Selected category�Sell on Facebook�Send Message�Send a message to our support team�Send message failed�Set Up Your Store�Set manually�Set up your store�Settings�Setup�Shipping & Pickup�Shop�Shopping Cart�Shopping Cart (deprecated)�Shopping Cart Floating (deprecated)�Shopping Cart Icon�Shopping Cart Mini (deprecated)�Shopping Cart Widget�Show�Show additional image on hover�Show categories�Show customers that they can use a search and filters to find desired products faster.�Show description under the image�Show minicart�Show on all pages�Show on hover�Show on store pages�Show price inside the "Buy now" button�Show price inside the «Buy now» button�Show product card border�Show product thumbnails�Show search�Show when empty�Show your store on the home page�Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again.�Small icon�Small icon and item count�Some of the items could not be imported.�Sorry we're having technical difficulties.�Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: "The Wordpress function wp_remote_post() failed to connect a remote server because of some error: "%s". Seems like HTTP POST requests are disabled on this server". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>.�Square 1:1�Start Import�Status�Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store.�Still have questions about Ecwid? Let us know!�Store�Store Categories�Store Categories Menu�Store Category Page�Store Front Page�Store Home Page�Store ID�Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the "Dashboard" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration.�Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>.�Store Link Title�Store Navigation�Store Page�Store Page Link�Store Root Categories�Store appearance�Store elements�Store management�Store page content�Store page on your site�Store root category�Store with Categories Menu�Storefront�Subject�Submit & Deactivate�Switch to draft�Synchronize products�Table�Table view�Take a few simple steps to complete store setup�Take advantage of powerful apps and extensions designed to enhance your store.�Text�Text color�Thank you for choosing %s to build your online store�The block is hidden because you don't have categories in your store. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Add categories.</a>�The category that is shown by default on the Store Front Page�The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps.�The plugin doesn't support the feature I want�The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href="%s" target="_blank">adjust the cart icon appearance</a>.�The store is not visible on your site�The store top-level categories are automatically added to this drop-down menu�Themes for Ecwid�This import will copy your WooCommerce products and categories to your %s store.�This is a demo store. Create your store to see your store products here.�This will change the label of the module in the builder for easy identification.�Title�Title on image�Title only�Title or SKU�Title under image�Title:�To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings.�To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>.�To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>�To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the "Add product" dialog.�To create sitemap for your Wordpress site we suggest using <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> or <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target="_blank" href="https://www.ecwid.com/pricing">paid Ecwid users</a>.�To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission.�To enable this feature, the plugin needs a permission to read your store product information.�To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">How to use it.</a>�To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>�To manage your store, go to <a %s>the Store Dashboard page</a>�To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission.�To show your storefront instead of the demo store, connect your existing %s account or create a new one.�To start selling, add a page to your site where the storefront will display.�Top left�Top right�Try another search.�Type in your message here�URL Slug�Update�Update your catalog�Upgrade to get this feature�Vertical indent�Vertical thumbnails�Very dark gray�Very light gray�View Store Page�View demo store page�View store page�Visit storefront�Vivid cyan blue�Vivid green cyan�Vivid red�Want to connect another %s store?�Warning: some of your online store features are disabled. Please contact your hosting provider to resolve.�We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?�We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you.�We're synchronizing your products. This may take a few minutes. Please do not reload the page.�Website�What feature do you need?�What was wrong?�What's next?�While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site.�Wholesale prices�You can add product search box, cart widget and more on the <a href="%s">"Appearance / Widgets page"</a> here in your site admin. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">More details.</a>�You can add the entire storefront, categories, products, or "Buy now" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block.�You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open "Appearance > Menus" in your WordPress control panel and add the "Store with Categories Menu" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site.�You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">More details.</a>�You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel.�You can display your store on the site main page. Adjust the "Reading" settings of your site as described in our <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">Help Center.</a>�You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href="%1$s">Appearance → Customize → %2$s</a>” menu to enable it.�You can enable filters in the store settings: (“<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Settings → Product Filters</a>”).�You can send a new request here.�You have not viewed any product yet. Open store.�You will be able to sign up through your existing Google, Facebook or PayPal profiles as well.�Your %s store has �Your %s store is connected<br /> to your WordPress website�Your %s store is now connected<br /> to your WordPress website�Your Storefront�Your WooCommerce store has �Your email has been sent�Your product�Your store Control Panel. Right here in WordPress.�Your store has been created. Preparing your store dashboard ...�Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar.�Your store is almost ready!�Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display.�Your store page�Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders.�Your store page is published. Customers can browse your store at �Your store will be shown here�Your store will be shown here!�Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data.�[%s] WordPress plugin deactivation feedback (store ID: %s)�customize appearance�gutenberg-product-blockContent�gutenberg-store-block-stubStore�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�or <a %s>Browse the Help Center�product-browser-attributesProduct SKU�product-browser-attributesProduct price�select product�selected product�vc-tabOnline store�«Buy now» button�PO-Revision-Date: 2020-10-12 12:46 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: Poedit 2.4.1 Language: es Project-Id-Version: temporary-strings X-Crowdin-Project: temporary-strings X-Crowdin-Project-ID: 295314 X-Crowdin-Language: es-ES X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po X-Crowdin-File-ID: 988 Language-Team: Spanish Last-Translator: � Elegir otro producto� ¡Muchas gracias por ponerse en contacto con nosotros! Nos pondremos en contacto con usted en breve.�Etiqueta de productos «En existencia»�%s�Blog de %s�Carrito de compras de %s�Tienda de %s�Página de la tienda de %s�El complemento %s no funciona bien con mi tema «%s»�%s producto�%s productos�%s productos y %s categorías�%s productos y categorías�Configuraciones del carrito de compras de %s�%s almacena los datos de sus productos de forma segura en la nube. Las páginas de productos se muestran sobre la marcha cuando un cliente navega por su tienda. Por lo que, básicamente, los productos no se almacenan en el sitio web, por eso la búsqueda en el sitio web no encuentra páginas de productos mientras busca en las páginas del sitio web y en las publicaciones. Esta opción habilita un modo de almacenamiento local: los productos se almacenarán tanto en la nube como en su sitio web. Los resultados de la búsqueda en el sitio web incluirán las páginas de productos, así como las páginas o publicaciones habituales de su sitio web.�%s — Configuración avanzada�(podrá confirmar los cambios antes de la importación definitiva)�2 columnas, imagen a la izquierda�2 columnas, imagen a la derecha�3 columnas, imagen a la izquierda�3 columnas, imagen a la derecha�<a %s>Tienda en línea con tecnología de %s</a>�<a %s>Volver a conectar</a>�<a href="admin.php?page=�<b>%s</b> categorías�Un «slug» es la última parte de una URL. Puede crear un «slug» personalizado para la página de su tienda. Es mejor que sea corto, ya que los clientes y los motores de búsqueda prefieren las URL cortas. Por ejemplo, utilice «/tienda» o «/productos».�Acción requerida: conecte su cuenta de %s�Añadir producto�Añadir tienda�Añadir la página de la tienda al menú�Añadir una página de categoría�Añadir página de productos�Añadir una página de búsqueda y filtros�Añadir una página de tienda�Añadir una tienda en línea a su sitio web�Añadir borde�Añadir carrito y página de pago�Añadir categorías�Añadir la página de la tienda al menú del sitio web�Añadir escaparate virtual (listado de productos)�Añadir al menú�Añada su tienda de %s al sitio web y comience a vender en minutos.�Añada su tienda a otras páginas del sitio web�Añada su escaparate virtual a la página de inicio del sitio web para que sea más notable. También puede modificar la configuración de la página de inicio del sitio web en <a href="%s" target="_blank">Configuración de WordPress > Lectura</a>.�Páginas adicionales de la tienda�Además, puede añadir controles de la tienda a la barra de herramientas de su sitio web mediante <a %s>«widgets» nativos de WordPress</a>.�Añade un «widget» de carrito para que el cliente vea los productos que se han añadido al carrito.�Añade un «widget» de carrito compacto para que el cliente vea los productos que se han añadido al carrito.�Añada un «widget» de carrito de compras en la esquina superior derecha de su sitio web.�Añade la lista de categorías raíz a la barra lateral para que sus clientes puedan desplazarse por la tienda.�Añade un bloque de categorías verticales para permitir que el cliente navegue por su tienda.�Ajuste el diseño de su tienda para que se adapte a las necesidades de su negocio.�Etiqueta de administrador�Avanzado�Configuraciones avanzadas�Después de la importación, su tienda de %s tendrá �Todos los canales de venta�Junto con el catálogo de la tienda, puede añadir otros «widgets» y textos a la página de la tienda.�Apariencia�Aplicaciones�Cantidad disponible en existencia�Regresar a la configuración de la tienda�Color del fondo�Bolsa�Cesta�Antes de que se vaya�Borde�Borde:�Abajo a la izquierda�Abajo a la derecha�Migas de pan�Explorar todos los productos.�Buscar por categoría�Importar en masa productos y categorías a su tienda de %s�Color del botón�Comprar ahora�Botón «Comprar ahora»�Botones de «Comprar ahora»�Al continuar, acepta los <a %s>Términos de servicio</a> y la <a %s>Política de privacidad</a>.�Clase CSS�ID de CSS�¿Podría compartir el nombre del complemento que ha elegido?�¿Podría compartir su opinión? ¿Qué fue lo que pasó?�Cancelar�Carrito�Carrito y pago�Icono del carrito de compras�Icono del carrito:�Catálogo�Categorías�Categoría�Apariencia de la lista de categorías�Diseño de la ficha de categoría�Categoría mostrada por defecto�Relación de aspecto de la miniatura de la categoría�Tamaño de la miniatura de la categoría�Centrado�Centrar la alineación en una página�Cambiar�Cambiar el contenido de la tienda�Elegir producto�Elegir producto�Elija las propiedades del producto para mostrarlas en el «widget»�Elegir la página principal de la tienda�Elija los «widgets» a mostrar�Haga clic en el botón «Conectar» para obtener los permisos para actualizar el catálogo de productos�Configuración de colores�Completar configuración�Complete la configuración y comience a vender�Configuración�¡Enhorabuena!�Conectar�Conecte su tienda�Conecte su tienda de %s�Conecte su tienda�Error de conexión: después de hacer clic en el botón, debe iniciar sesión y otorgar los permisos para poder utilizar nuestro complemento. Inténtelo de nuevo.�Ponerse en contacto con la asistencia�Póngase en contacto con nosotros�Contenido�Copia de productos y categorías.�Crear página del carrito�Crear página de categorías�Crear página de productos�Crear página de búsqueda�Crear tienda�Crear la página de la tienda�Cree una página de aterrizaje con uno de sus productos.�Cree una nueva cuenta de %s que utilizará para gestionar su tienda e inventario. El registro es gratuito.�Cree una nueva tienda o, si ya tiene una cuenta de %s, conéctela. El complemento le guiará a través de la configuración de la tienda y le ayudará a publicarla en su sitio web.�Crear una nueva cuenta�Crear tienda�Página actual�«Slug» actual de la dirección URL: /<span data-ec-store-slug>%s</span>�Inicio de sesión único del cliente�Clientes�Los clientes no pueden ver la página de su tienda porque está en un borrador. Publique la página para que esté disponible para sus clientes.�Los clientes van a la página del carrito para consultar los productos que han añadido al mismo y proceder con el pago.�Personalizar el diseño�Personalizar la apariencia de la tienda�Personalizar la dirección de la página de la tienda�Personalizar «widget»�Personalice la apariencia de su tienda para que se ajuste a las necesidades de su negocio. Cree la apariencia para su tienda que más se parezca a su marca.�Gris cian azulado�Panel�Categoría predeterminada�ID de categoría predeterminada�ID del producto predeterminado�Modo de vista predeterminado en las páginas de productos�Modo de vista predeterminado en los resultados de búsqueda�Productos eliminados sincronizados: %1$s de %2$s�Tienda de demostración�Tienda de demostración�Diseño�Diseño y contenido�Detectar automáticamente�Desconectar tienda�Mostrar un botón de compra�Mostrar migas de pan�Mostrar icono del carrito�Mostrar el menú de categorías�Mostrar la barra de navegación de las categorías�Mostrar la página de categorías�Mostrar el menú del pie de página�Mostrar la página de productos con la descripción y un botón de compra�Mostrar el producto con un botón de compra�Mostrar el cuadro de búsqueda�Mostrar página de búsqueda con los filtros a un lado�Mostrar enlace y resumen de la bolsa de compras�Mostrar el carrito de compras�Mostrar el carrito de compras y la página de pago�Mostrar el enlace de inicio de sesión�Mostrar «ordenar por enlace»�Muestre el icono del carrito de compras en las páginas del sitio web�Producto mostrado�Muestra un enlace a la página de la tienda en la barra lateral para que el cliente acceda rápidamente a su tienda desde cualquier página del sitio web.�Muestra una lista de productos vistos recientemente por el cliente para volver fácilmente a los productos que vieron en su tienda.�Muestra una lista de productos aleatorios.�Muestra un producto aleatorio de su tienda para atraer la atención del cliente.�Muestra un cuadro de búsqueda simple para que sus clientes encuentren un producto en su tienda.�Muestra el escaparate virtual: listado de productos y pago�Muestra los últimos productos añadidos de su tienda. Muestre nuevos productos a los clientes existentes para impulsar las ventas repetidas.�No mostrar�¿Le gusta Ecwid y quiere ayudarlo a crecer? Puede añadir este elegante distintivo «Powered by Ecwid» en su sitio web para mostrarles a sus visitantes que es un usuario orgulloso de Ecwid.�¿Le gusta su tienda de %s en línea? Apreciaríamos si comparte su opinión y vota por el complemento en el sitio de WordPress.�Hecho�Descargar <a href="%s">registro de importación</a>�Descargar archivo de registro�Borrador�Por ejemplo, cómo establecer el envío�Distintivo de Ecwid�Comercio electrónico Ecwid�Carrito de compras del comercio electrónico de Ecwid�Elemento del menú de Ecwid�Ecwid le permite subir sus productos en forma de archivo CSV. Obtenga más información sobre esta herramienta en el centro de asistencia de Ecwid�«Widget» de comercio electrónico de Ecwid�Solución de comercio electrónico de Ecwid�Carrito de compras gratuito de Ecwid�Ecwid cuenta con la certificación PCI DSS Nivel 1, que es el estándar de oro para las soluciones de comercio electrónico en todo el mundo. Esto significa que no tendrá problemas de cumplimiento bancario cuando venda en línea con Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">Más detalles.</a>�Ecwid es un carrito de compras gratuito con todas las funciones. Se puede integrar fácilmente con cualquier blog de Wordpress y se configura en menos de 5 minutos.�Ecwid es compatible con cualquier tema de WordPress. Ya sea un tema gratuito del catálogo de WordPress.org, un tema prémium de un proveedor externo o un tema personalizado; su tienda de Ecwid funcionará bien con cualquiera de ellos. Si desea un tema prémium, le recomendamos <a href="%s">temas de TemplateMonster</a>.�Ecwid ofrece aplicaciones móviles gratuitas para iOS y Android para que pueda gestionar su tienda y vender donde y cuando quiera. Escanee productos, supervise el inventario, gestione las ventas y acepte pagos utilizando su dispositivo móvil como una estación de punto de venta. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">Más detalles.</a>�Carrito de compras de Ecwid�«Widget» de carrito de compras de Ecwid�Editar�Editar apariencia�Editar categoría�Editar producto�Editar tienda�Editar «slug» de la dirección URL�Editar página�Introduzca un ID de CSS opcional que se utilizará para este módulo. Se puede utilizar un ID para crear un estilo CSS personalizado o para crear enlaces a secciones particulares de su página web.�Introduzca las clases CSS opcionales que se utilizarán para este módulo. Se puede utilizar una clase CSS para crear estilos CSS personalizados. Puede añadir varias clases separadas por un espacio.�Introduzca el ID de su tienda�Introduzca el ID de su tienda aquí:�Extensiones para su tienda�Destacar una categoría de la tienda específica en una página separada de su sitio web.�Destaque sus productos en la barra lateral�Filtros�Posición del panel de filtros�Encuentre el ID de su tienda�Primera página�Preguntas frecuentes�Descargue la aplicación móvil de %s�Ir a «Páginas»�Ir a sus productos de %s�¡Saludos!�¡Enhorabuena! Su complemento de %s ya está activo.�Cuadrícula�Vista de cuadrícula�Ayuda�Ayude a los clientes a encontrar su tienda en el sitio web. Añada el enlace de la tienda al menú del sitio web, cree páginas adicionales de la tienda y resalte los productos de la tienda en otras páginas del sitio web y en las barras laterales.�Ayude a los clientes a encontrar su tienda en el sitio web.�Aquí puede gestionar cuántos productos se mostrarán por página. Estas opciones definen valores máximos. Si no hay suficiente espacio para mostrar todas las columnas de productos, %s adaptará el número de columnas para mantener todos los productos.�Aquí puede crear el contenido que se utilizará dentro del módulo.�Aquí, le ayudaremos a subir su catálogo de productos a %s de otro carrito de compras u otras fuentes.�Ocultar�Destaque productos, categorías y otras páginas de la tienda añadiéndolas a páginas del sitio web separadas.�Destaque sus mejores ventas o nuevos productos en la barra lateral del sitio web.�Sangría horizontal�Miniaturas horizontales�¿Cómo puedo añadir un «widget» de carrito de compras a la barra lateral de mi sitio web?�¿Cómo puedo gestionar mi tienda desde un dispositivo móvil?�¿Cómo podemos ayudarle?�¿Cómo puedo añadir categorías de tiendas al menú del sitio web?�¿Cómo pongo mis productos en el mapa del sitio?�¿Cuánto cuesta Ecwid?�¿Qué tan seguro es este complemento? ¿Mi tienda cumple con el PCI DSS?�¿Cómo añadir un solo producto con el botón de «añadir a la bolsa» en las páginas del sitio web?�¿Cómo crear una tienda en Facebook con Ecwid?�Ya tengo una cuenta, iniciar sesión�No pude encontrar un tema de WordPress adecuado para %s�Encontré un mejor complemento�Tengo un problema con el uso de este complemento�Tengo un problema con mi tienda de %s�Utilizo este tema de WordPress: %s�Icono�Icono y total de artículos�Icono, etiqueta y total de artículos�Icono, etiqueta, total de artículos y subtotal�Icono, etiqueta, total de artículos, subtotal y enlace�Si tiene un momento, háganos saber por qué está desactivando:�Imagen y título al pasar el ratón por encima�Canal de imagen�Diseño de la galería de imágenes�Solo imagen�Importar�Importe sus productos de Woocommerce a %s�Importación completada�Importación completada. <a href="%s">Ejecútela de nuevo.</a>�La importación crea nuevos productos y actualiza los productos existentes con las REF correspondientes.�La importación está en progreso�Importar mis productos de WooCommerce�Importar el catálogo de productos de WooCommerce�Importar el catálogo de productos de otras fuentes�Importe los productos a su tienda de %s�Resumen de la importación�Importe su catálogo de WooCommerce a %s�Importe sus productos de WooCommerce a %s�Importe sus productos de Woocommerce a %s�<b>%s</b> productos importados�Importando %s de %s artículos�Insertar�Insertar en la página�Sitio web instantáneo�Integración con la búsqueda en su sitio web�¿Es posible mostrar mi tienda en la página de inicio del sitio web?�¿Existe algún tema de WordPress para Ecwid?�Es una desactivación temporal. No preguntarme de nuevo.�Solo el total de artículos�Justificado�Base de conocimiento�G�Etiqueta y y total de artículos�Horizontal 3:2�Horizontal 4:3�Última página�Última actualización�Últimos productos�Diseño�Diseño:�Más información�Izquierda�Cian verde claro�Color del enlace�Producto vinculado�Lista�Vista de lista�Parece que su sitio web no admite solicitudes POST remotas, las cuales son necesarias para que la API de %s funcione. Comuníquese con su proveedor de alojamiento web para habilitar cURL.�Ámbar vívido y brillante�Naranja vívido y brillante�M�Haga que su tienda sea accesible desde el menú del sitio web para que sus clientes puedan encontrarla fácilmente.�Gestionar la barra lateral�Gestione la tienda desde iPhone, iPad o Android�Gestione productos, supervise las ventas y ajuste la configuración: <nobr>todo sin</nobr> salir de esta página.�Gestionar la tienda�Gestionar escaparate virtual�Mercadotecnia�Móvil�Mi cuenta�Mi perfil�Mis ventas�Nombre�Navegación�¿Necesita ayuda para importar sus productos de WooCommerce a %s?�Nunca mostrar este mensaje otra vez�Página siguiente�Página siguiente�No, gracias�Sin borde�No se ha sincronizado todavía�Nota: cuando está habilitado, el «widget» del carrito siempre se mostrará en la vista previa para que sea más fácil personalizarlo. Las opciones «Mostrar en las páginas de la tienda» y «Mostrar cuando esté vacío» se aplicarán al «widget» del carrito en el sitio cuando se publiquen�No se ha encontrado nada en relación con <span class="empty-page__term">«{{ data.term }}»</span>�Número de categorías por fila�Número de productos por página�Número de productos para mostrar�A la izquierda�A la derecha�Tienda en línea�Aplicaciones de la tienda en línea�Tienda en línea�Abrir el panel de control�Abrir el panel de la tienda�Opciones�Pedidos�Otro�Nuestros 4 tipos de cuentas varían según la cantidad de productos, los tipos de funcionalidades y el nivel de asistencia. Para obtener más información, consulte nuestra <a target="_blank" href="%s">página de precios.</a><br /><br />Consejo profesional: también puede ahorrar dinero si se suscribe a nuestros planes anuales.�Nuestro equipo ya está trabajando en este asunto. Actualice la página en unos minutos. Si el problema persiste, comuníquese con <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">nuestro equipo de atención al cliente</a>.�Ya existe una página con ese nombre.�Azul cian pálido�Rosa pálido�Parte de los productos no se han copiado a %1$s porque alcanzó el límite de productos en su plan de precios en %1$s. Si desea importar más productos, considere <nobr><a %2$s>actualizar su plan de %1$s.</a></nobr>�Pago�Personalice la apariencia de su escaparate virtual y edite el contenido en la página de la tienda para reflejar su marca y mantenerse conectado con sus clientes.�Elegir una categoría�Elegir un producto�Imagen�Píldora�Tenga en cuenta el número máximo de productos y categorías que puede tener en su tienda de Ecwid. Esta herramienta de importación se detendrá automáticamente cuando se alcance el límite de productos de la tienda. Para conocer el límite actual de la tienda o aumentarlo, consulte la página <nobr><a %s target="_blank">«Facturación y planes»</a></nobr> ubicada en el panel de su tienda de Ecwid.�Suscríbase a un plan de pago para obtener esta función.�Complementos para Ecwid�Vertical 2:3�Vertical 3:4�Posición�Vista previa�Página anterior�Precio�Color del precio�Producto�Ficha de producto ampliada�Ficha de producto reducida�Apariencia de la lista de productos�Apariencia de la página del producto�REF del producto�Búsqueda de productos�Cuadro de búsqueda de productos�Búsqueda de productos y filtros�El texto de la ficha del producto se alinea�El catálogo de productos se mostrará automáticamente�Diseño de la página de productos�Precio del producto�Cantidad de productos�Contenido de la barra lateral de productos�Relación de aspecto de la miniatura del producto�Tamaño de la miniatura del producto�Título del producto�Productos�Los productos se sincronizaron satisfactoriamente. Las páginas de productos están actualizadas.�Productos eliminados sincronizados: %1$s de %2$s�Promocione su tienda�Otorgar acceso.�Proporcionado por <a %s>%s</a>�Publicar�Publicar la página de la tienda�Publique la página para poder utilizar esta opción�Publicada�Cantidad�¿Tiene alguna pregunta?�Producto aleatorio�Productos aleatorios�Tasa de %s en WordPress.org�Vuélvase a conectar para activar el panel de control�Productos vistos recientemente�Recomendaciones para su tienda en línea�Rectángulo�Actualizar la lista de categorías�Registrarse en %s�Informar un problema con la tienda�Informes�Derecha�P�REF�Ventas�Canales de venta�Guardar�Guarde y conecte su tienda de %s al sitio web�Guardar cambios�Buscar�Búsqueda y filtros�Buscar productos�Buscar en la base de conocimientos�Ver más�Seleccionar todo�Seleccionar categoría�Producto seleccionado�Categoría seleccionada�Vender en Facebook�Enviar mensaje�Envíe un mensaje a nuestro equipo de asistencia�Ocurrió un error al enviar el mensaje�Configure su tienda�Configurar manualmente�Configure su tienda�Configuraciones�Configuración�Envío y recogida�Tienda�Carrito de compras�Carrito de compras (descontinuado)�Carrito de compras flotante (descontinuado)�Icono del carrito de compras�Carrito de compras en miniatura (descontinuado)�«Widget» del carrito de compras�Mostrar�Mostrar imagen adicional al pasar el ratón�Mostrar categorías�Muéstreles a los clientes que pueden utilizar la búsqueda y los filtros para encontrar los productos que deseen de forma más rápida.�Mostrar descripción debajo de la imagen�Mostrar minicarrito�Mostrar en todas las páginas�Mostrar al pasar el ratón�Mostrar en las páginas de la tienda�Mostrar el precio dentro del botón de «Comprar ahora»�Mostrar el precio dentro del botón de «Comprar ahora»�Mostrar el borde de la ficha del producto�Mostrar miniaturas de los productos�Mostrar búsqueda�Mostrar cuando esté vacío�Muestre su tienda en la página de inicio�El inicio de sesión único les permite a sus clientes tener un inicio de sesión único para su sitio web de WordPress y su %s. Cuando alguien inicie sesión en su sitio web, también iniciará sesión automáticamente en su cuenta de cliente en la tienda sin necesidad de introducir su correo electrónico y contraseña nuevamente.�Icono pequeño�Icono pequeño y total de artículos�Algunos de los artículos no se pudieron importar.�Le pido disculpas por las dificultades técnicas que estamos experimentando.�Lo siento, hay un problema. Se supone que esta página muestra el panel de control de su tienda; sin embargo, este sitio web de Wordpress no parece poder conectarse al servidor de Ecwid para mostrar el panel de su tienda aquí. Es probable que esto se deba a una mala configuración del servidor; su proveedor de alojamiento web puede solucionarlo. Aquí hay una descripción más técnica del problema, la cual puede enviarle a su proveedor de alojamiento web: «La función de Wordpress wp_remote_post() no pudo conectarse a un servidor remoto debido al error: “%s”; parece que las solicitudes HTTP POST están inhabilitadas en este servidor». <br /><br />No dude en ponerse en contacto con nosotros en <a %s>wordpress@ecwid.com</a> y le ayudaremos a comunicarse con su proveedor de alojamiento web para pedirle que solucione el problema. <br /><br /> Mientras tanto, para gestionar su tienda, puede utilizar el panel de control web de Ecwid en <a %s>my.ecwid.com</a>. Su escaparate virtual está funcionando bien; puede echarle un vistazo aquí: <a %s>%s</a>.�Cuadrado 1:1�Iniciar la importación�Estado�Manténgase conectado con sus clientes. Actualice el contenido de su tienda en cualquier momento para informarles a los clientes sobre las promociones actuales y las novedades de su tienda.�¿Todavía tiene preguntas acerca de Ecwid? ¡Háganoslo saber!�Tienda�Categorías de la tienda�Menú de categorías de la tienda�Página de categorías de la tienda�Página del escaparate virtual�Página de inicio de la tienda�ID de la tienda�El ID de la tienda es un identificador único de cualquier tienda de %1$s, el cual consta de varios dígitos. Puede encontrarlo en la página «Panel» del panel de control de %1$s. El ID de la tienda se enviará en el correo electrónico de bienvenida después del registro.�El ID de la tienda es un identificador único de su cuenta de %1$s. Puede encontrarlo en su panel de control de %1$s en la <a %2$s>página del panel</a>.�Título del enlace de la tienda�Navegación en la tienda�Página de la tienda�Enlace a la página de la tienda�Categorías raíz de la tienda�Apariencia de la tienda�Elementos de la tienda�Gestión de la tienda�Contenido de la página de la tienda�Página de la tienda en su sitio web�Categoría raíz de la tienda�Tienda con menú de categorías�Escaparate virtual�Asunto�Enviar y desactivar�Cambiar al borrador�Sincronizar productos�Tabla�Vista de tabla�Siga unos sencillos pasos para completar la configuración de la tienda�Aproveche las increíbles aplicaciones y extensiones diseñadas para mejorar su tienda.�Texto�Color del texto�Gracias por elegir %s para construir su tienda en línea�El bloque está oculto porque no tiene categorías en su tienda. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Añadir categorías.</a>�La categoría que se muestra de forma predeterminada en la página del escaparate virtual�El primer paso para abrir su negocio en línea: <br />añadamos una tienda a su sitio web de WordPress en <strong>3</strong> simples pasos.�El complemento no es compatible con la función que quiero�El icono del carrito de compras muestra la cantidad de artículos en el carrito y ayuda a los clientes a realizar el pago. Además, puede <a href="%s" target="_blank">ajustar la apariencia del icono del carrito</a>.�La tienda no es visible en su sitio web�Las categorías de alto nivel de la tienda se añaden automáticamente a este menú desplegable�Temas para Ecwid�Esta importación copiará sus productos y categorías de WooCommerce a su tienda de %s.�Esto es una tienda de demostración. Cree su tienda para ver los productos de su tienda aquí.�Esto cambiará la etiqueta del módulo en el creador para una fácil identificación.�Título�Título en la imagen�Solo título�Título o REF�Título debajo de la imagen�Título:�Para añadir funciones adicionales a su tienda, arrastre y suelte los elementos de la tienda de %s en su sitio web. Una vez que haya terminado, puede volver a modificar su configuración.�Para añadir su tienda a su sitio web, introduzca el ID de su tienda de %1$s en el campo a continuación. Si aún no tiene una cuenta de %1$s, cree una gratis en el <a %2$s>sitio web de %1$s</a>.�Para permitir que %s inicie la sesión de sus clientes automáticamente en su tienda, otorgue los permisos para utilizar los datos del cliente en la tienda. <a %s>Utilice este enlace para hacerlo</a>�A fin de poder elegir un producto para insertarlo en sus publicaciones y páginas, deberá volver a conectar su sitio a su tienda de %s. Esto solo requerirá que acepte la solicitud de permisos para que el complemento pueda listar sus productos en el cuadro de diálogo «Añadir producto».�Para crear un «Mapa del sitio» para su sitio web de Wordpress, le sugerimos que utilice los  complementos <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> o <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>. Estos complementos son totalmente compatibles con Ecwid y permiten generar un mapa del sitio que contiene enlaces a categorías y páginas de productos, por lo que las páginas de la tienda se indexarán más rápido. Tenga en cuenta que esta opción solo está disponible para los <a target="_blank" href="https://www.ecwid.com/pricing">usuarios de pago de Ecwid</a>.�Para mostrar su tienda en este sitio web, debe permitir que WordPress acceda a sus productos de %1$s. Pulse «Conectar» para otorgar el permiso.�Para habilitar esta función, el complemento necesita un permiso para leer la información del producto de su tienda.�Para mostrar un solo producto en una página aparte o en una entrada de blog de su sitio web, utilice el código corto <b>[ecwid_product]</b>. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">Cómo utilizarlo</a>�Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para mejorar la apariencia de su tienda y poder gestionar la apariencia de su escaparate virtual desde aquí, habilite la opción «Apariencia de próxima generación de la lista de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para asegurarse de que su cliente puede acceder realmente a su sitio web y a la tienda, habilite el registro en las <a %s>configuraciones del sitio web</a>�Para gestionar su tienda, vaya a la <a %s>página del «Panel de su tienda»</a>�Para vender utilizando %1$s, debe permitir que WordPress acceda al complemento %1$s. El botón «Conectar» lo redirigirá a su cuenta de %1$s donde puede otorgar el permiso.�Para mostrar su escaparate virtual en lugar de la tienda de demostración, conecte su cuenta de %s existente o cree una nueva.�Para comenzar a vender, añada una página a su sitio web donde se muestre el escaparate virtual.�Arriba a la izquierda�Arriba a la derecha�Intente otra búsqueda.�Escriba su mensaje aquí�«Slug» de la dirección URL�Actualizar�Actualice su catálogo�Actualice para obtener esta función�Sangría vertical�Miniaturas verticales�Gris oscuro�Gris claro�Ver la página de la tienda�Ver la página de la tienda de demostración�Ver la página de la tienda�Visitar escaparate virtual�Azul cian vívido�Cian verde vívido�Rojo vívido�¿Desea conectar otra tienda de %s?�Advertencia: algunas de las funciones de su tienda en línea están inhabilitadas. Póngase en contacto con su proveedor de alojamiento web para resolverlo.�Notamos que tiene un WooCommerce instalado. Su tienda de WooCommerce tiene %1$s productos y %2$s categorías; ¿le gustaría importarlos a %3$s?�Notamos que tiene WooCommerce instalado. Si desea copiar fácilmente sus productos de WooCommerce a %s, esta herramienta le ayudará.�Estamos sincronizando sus productos. Esto puede tardar unos minutos. No actualice la página.�Sitio web�¿Qué función necesita?�¿Qué fue lo que pasó?�¿Qué sigue?�Mientras su tienda aún no esté conectada, se mostrará una tienda de demostración en su sitio web. Échele un vistazo para tener una idea de cómo se verá su tienda en el sitio web.�Precios al por mayor�Puede añadir un cuadro de búsqueda de productos, un «widget» de carrito y más desde la <a href="%s">«Página de apariencia y widgets»</a> que se encuentra aquí en el administrador de su sitio web. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">Más detalles.</a>�Puede añadir todo el escaparate virtual, las categorías, los productos o los botones de «Comprar ahora» a otras páginas de su sitio web. Para ello, abra una página en el editor y añada un bloque %s apropiado.�Puede añadir el menú de categorías de la tienda al menú de su sitio web para ayudar a sus clientes a navegar fácilmente por su sitio web. Simplemente abra «Apariencia > Menús» en el panel de WordPress y añada el elemento «Tienda con menú de categorías» al menú de su sitio web. Aparecerá automáticamente un menú desplegable que contendrá las categorías de su tienda en su sitio web.�Puede añadir su tienda en línea a su página empresarial de Facebook (no se necesitan complementos). Ecwid sincronizará automáticamente los productos, clientes, pedidos e inventario entre su tienda en línea de WordPress y Facebook. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">Más detalles.</a>�Puede gestionar la apariencia de su tienda en la <a %s>página de «Configuración del diseño»</a> ubicada en el panel de control de su tienda.�Puede mostrar su tienda en la página principal del sitio web. Ajuste la configuración de «Lectura» de su sitio web como se describe en nuestro <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">centro de asistencia.</a>�Puede habilitar un «widget» adicional del icono de la bolsa de compras que aparecerá en las páginas de su sitio web. Abra el menú «<a href="%1$s">Apariencia → Personalizar → %2$s</a>» para habilitarlo.�Puede habilitar los filtros en la configuración de la tienda: («<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Configuración → Filtros para los productos</a>»).�Puede enviar una nueva solicitud aquí.�Aún no ha visto ningún producto. Abra la tienda.�También podrá registrarse a través de sus perfiles existentes de Google, Facebook o PayPal.�Su tienda de %s tiene �Su tienda de %s está conectada<br /> a su sitio web de WordPress�Su tienda de %s ahora está conectada<br /> a su sitio web de WordPress�Su escaparate virtual�Su tienda de WooCommerce tiene �Se ha enviado su correo electrónico�Su producto�Panel de control de su tienda. Aquí mismo en WordPress.�Se ha creado su tienda. Preparando el panel de su tienda...�Su tienda se añade a varias páginas del sitio web. Elija la página principal. Los clientes son redirigidos a la página principal de la tienda cuando hacen clic en el icono del carrito, en los enlaces de la tienda ubicados en el menú del sitio web o en los productos que se encuentran en la barra lateral.�¡Su tienda ya está casi lista!�Su tienda no se añade a ninguna página de su sitio web. Para que los clientes puedan navegar por su tienda y realizar pedidos, cree una página donde se mostrará la tienda.�La página de su tienda�La página de su tienda está actualmente en un borrador. Una vez que esté lista, publíquela para que los clientes puedan visitar la tienda y realizar pedidos.�La página de su tienda está publicada. Los clientes pueden visitar su tienda en �Su tienda se mostrará aquí�¡Su tienda se mostrará aquí!�Su escaparate virtual (listado de productos y página de pago) está funcionando bien, pero las funciones avanzadas de la tienda, como el SEO y los «widgets» de la barra lateral, están inhabilitadas. Para habilitarlas y asegurarse de que su tienda funcione correctamente, pulse el botón de abajo para conectar su cuenta de %s. Esto tomará menos de un minuto; solo se le pedirá que inicie sesión en su cuenta y permita que este sitio web obtenga los datos de su tienda.�[%s] Comentarios sobre la desactivación del complemento de WordPress (ID de la tienda: %s)�personalizar apariencia�Contenido�Tienda�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�o <a %s>consulte el centro de asistencia�REF del producto�Precio del producto�seleccionar producto�producto seleccionado�Tienda en línea�Botón de «Comprar ahora»���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/languages/ecwid-shopping-cart-es_PE.po������������������������������������������0000644�����������������00000326062�15122273603�0017573 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Translation of Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) in German # This file is distributed under the same license as the Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) package. msgid "" msgstr "" "PO-Revision-Date: 2020-10-12 12:46\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: GlotPress/3.0.0-alpha.2\n" "Language: es\n" "Project-Id-Version: temporary-strings\n" "X-Crowdin-Project: temporary-strings\n" "X-Crowdin-Project-ID: 295314\n" "X-Crowdin-Language: es-ES\n" "X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po\n" "X-Crowdin-File-ID: 988\n" "Language-Team: Spanish\n" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:92 msgid "You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel." msgstr "Puede gestionar la apariencia de su tienda en la <a %s>página de «Configuración del diseño»</a> ubicada en el panel de control de su tienda." #: includes/integrations/elementor/class-ec-elementor-widget-store.php:55 msgid "To manage your store, go to <a %s>the Store Dashboard page</a>" msgstr "Para gestionar su tienda, vaya a la <a %s>página del «Panel de su tienda»</a>" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:39 msgid "The category that is shown by default on the Store Front Page" msgstr "La categoría que se muestra de forma predeterminada en la página del escaparate virtual" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:38 msgid "Default category" msgstr "Categoría predeterminada" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:29 msgid "Online Store" msgstr "Tienda en línea" #: includes/class-ecwid-stub-renderer.php:38 msgid "Buy Now" msgstr "Comprar ahora" #: templates/admin/welcome-terms-privacy.php:5 msgid "By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>." msgstr "Al continuar, acepta los <a %s>Términos de servicio</a> y la <a %s>Política de privacidad</a>." #: js/gutenberg/blocks.build.js:1 msgid "Display shopping cart and checkout page" msgstr "Mostrar el carrito de compras y la página de pago" #: js/gutenberg/blocks.build.js:1 msgid "Cart and Checkout" msgstr "Carrito y pago" #: js/gutenberg/blocks.build.js:1 msgid "Filters" msgstr "Filtros" #: js/gutenberg/blocks.build.js:1 msgid "You can enable filters in the store settings: (“<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Settings → Product Filters</a>”)." msgstr "Puede habilitar los filtros en la configuración de la tienda: («<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Configuración → Filtros para los productos</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Search and Filters" msgstr "Búsqueda y filtros" #: js/gutenberg/blocks.build.js:1 msgid "Display search page with filters on a side" msgstr "Mostrar página de búsqueda con los filtros a un lado" #: js/gutenberg/blocks.build.js:1 msgid "Product Search and filters" msgstr "Búsqueda de productos y filtros" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Display product page with description and a buy button" msgstr "Mostrar la página de productos con la descripción y un botón de compra" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Large" msgstr "Ficha de producto ampliada" #: js/gutenberg/blocks.build.js:1 msgid "Selected category" msgstr "Categoría seleccionada" #: js/gutenberg/blocks.build.js:1 msgid "Select category" msgstr "Seleccionar categoría" #: js/gutenberg/blocks.build.js:1 msgid "Add categories" msgstr "Añadir categorías" #: js/gutenberg/blocks.build.js:1 msgid "Display category page" msgstr "Mostrar la página de categorías" #: js/gutenberg/blocks.build.js:1 msgid "Store Category Page" msgstr "Página de categorías de la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Display shopping bag link and summary" msgstr "Mostrar enlace y resumen de la bolsa de compras" #: js/gutenberg/blocks.build.js:1 msgid "Shopping Cart Icon" msgstr "Icono del carrito de compras" #: js/gutenberg/blocks.build.js:1 msgid "The block is hidden because you don't have categories in your store. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Add categories.</a>" msgstr "El bloque está oculto porque no tiene categorías en su tienda. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Añadir categorías.</a>" #: js/gutenberg/blocks.build.js:1 msgid "Categories" msgstr "Categorías" #: js/gutenberg/blocks.build.js:1 msgid "Display categories navigation bar" msgstr "Mostrar la barra de navegación de las categorías" #: js/gutenberg/blocks.build.js:1 msgid "Store Categories Menu" msgstr "Menú de categorías de la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Product Search Box" msgstr "Cuadro de búsqueda de productos" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:25 #: js/gutenberg/blocks.build.js:1 msgid "Linked product" msgstr "Producto vinculado" #: js/gutenberg/blocks.build.js:1 msgid "Display a buy button" msgstr "Mostrar un botón de compra" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:10 #: js/gutenberg/blocks.build.js:1 msgid "Buy Now Button" msgstr "Botón «Comprar ahora»" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:52 #: js/gutenberg/blocks.build.js:1 msgid "Show price inside the «Buy now» button" msgstr "Mostrar el precio dentro del botón de «Comprar ahora»" #: js/gutenberg/blocks.build.js:1 msgctxt "gutenberg-product-block" msgid "Content" msgstr "Contenido" #: js/gutenberg/blocks.build.js:1 msgid "Change" msgstr "Cambiar" #: js/gutenberg/blocks.build.js:1 msgid "Displayed product" msgstr "Producto mostrado" #: js/gutenberg/blocks.build.js:1 msgid "Display product with a buy button" msgstr "Mostrar el producto con un botón de compra" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Small" msgstr "Ficha de producto reducida" #: js/gutenberg/blocks.build.js:1 msgid "Very dark gray" msgstr "Gris oscuro" #: js/gutenberg/blocks.build.js:1 msgid "Cyan bluish gray" msgstr "Gris cian azulado" #: js/gutenberg/blocks.build.js:1 msgid "Very light gray" msgstr "Gris claro" #: js/gutenberg/blocks.build.js:1 msgid "Vivid cyan blue" msgstr "Azul cian vívido" #: js/gutenberg/blocks.build.js:1 msgid "Pale cyan blue" msgstr "Azul cian pálido" #: js/gutenberg/blocks.build.js:1 msgid "Vivid green cyan" msgstr "Cian verde vívido" #: js/gutenberg/blocks.build.js:1 msgid "Light green cyan" msgstr "Cian verde claro" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid amber" msgstr "Ámbar vívido y brillante" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid orange" msgstr "Naranja vívido y brillante" #: js/gutenberg/blocks.build.js:1 msgid "Vivid red" msgstr "Rojo vívido" #: js/gutenberg/blocks.build.js:1 msgid "Pale pink" msgstr "Rosa pálido" #: js/gutenberg/blocks.build.js:1 msgid "Set manually" msgstr "Configurar manualmente" #: js/gutenberg/blocks.build.js:1 msgid "Detect automatically" msgstr "Detectar automáticamente" #: js/gutenberg/blocks.build.js:1 msgid "Color settings" msgstr "Configuración de colores" #: js/gutenberg/blocks.build.js:1 msgid "Store Navigation" msgstr "Navegación en la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Store Front Page" msgstr "Página del escaparate virtual" #: js/gutenberg/blocks.build.js:1 msgid "Product sidebar content" msgstr "Contenido de la barra lateral de productos" #: js/gutenberg/blocks.build.js:1 msgid "Product Page Appearance" msgstr "Apariencia de la página del producto" #: js/gutenberg/blocks.build.js:1 msgid "Product List Appearance" msgstr "Apariencia de la lista de productos" #: js/gutenberg/blocks.build.js:1 msgid "Category List Appearance" msgstr "Apariencia de la lista de categorías" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Display cart icon" msgstr "Mostrar icono del carrito" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Para mejorar la apariencia de su tienda y poder gestionar la apariencia de su escaparate virtual desde aquí, habilite la opción «Apariencia de próxima generación de la lista de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Add storefront (product listing)" msgstr "Añadir escaparate virtual (listado de productos)" #: templates/admin/storefront/main.php:21 msgid "Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers." msgstr "Los clientes no pueden ver la página de su tienda porque está en un borrador. Publique la página para que esté disponible para sus clientes." #: templates/admin/storefront/main.php:20 msgid "The store is not visible on your site" msgstr "La tienda no es visible en su sitio web" #: templates/admin/storefront/main.php:4 msgid "Your Storefront" msgstr "Su escaparate virtual" #: templates/admin/storefront/area-promo.php:30 msgid "Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars." msgstr "Ayude a los clientes a encontrar su tienda en el sitio web. Añada el enlace de la tienda al menú del sitio web, cree páginas adicionales de la tienda y resalte los productos de la tienda en otras páginas del sitio web y en las barras laterales." #: templates/admin/storefront/area-promo.php:29 msgid "Promote your store" msgstr "Promocione su tienda" #: templates/admin/storefront/area-promo.php:26 msgid "Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store." msgstr "Manténgase conectado con sus clientes. Actualice el contenido de su tienda en cualquier momento para informarles a los clientes sobre las promociones actuales y las novedades de su tienda." #: templates/admin/storefront/area-promo.php:25 msgid "Change store content" msgstr "Cambiar el contenido de la tienda" #: templates/admin/storefront/area-promo.php:22 msgid "Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand." msgstr "Personalice la apariencia de su tienda para que se ajuste a las necesidades de su negocio. Cree la apariencia para su tienda que más se parezca a su marca." #: templates/admin/storefront/area-promo.php:21 msgid "Customize store appearance" msgstr "Personalizar la apariencia de la tienda" #: templates/admin/storefront/area-promo.php:7 msgid "Add your %s store to the website and start selling in minutes." msgstr "Añada su tienda de %s al sitio web y comience a vender en minutos." #: templates/admin/storefront/area-promo.php:3 msgid "What's next?" msgstr "¿Qué sigue?" #: templates/admin/storefront/area-additional.php:224 msgid "Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar." msgstr "Su tienda se añade a varias páginas del sitio web. Elija la página principal. Los clientes son redirigidos a la página principal de la tienda cuando hacen clic en el icono del carrito, en los enlaces de la tienda ubicados en el menú del sitio web o en los productos que se encuentran en la barra lateral." #: templates/admin/storefront/area-additional.php:222 msgid "Choose the main store page" msgstr "Elegir la página principal de la tienda" #: templates/admin/storefront/area-additional.php:200 msgid "Go to Pages" msgstr "Ir a «Páginas»" #: templates/admin/storefront/area-additional.php:193 msgid "You can add the entire storefront, categories, products, or \"Buy now\" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block." msgstr "Puede añadir todo el escaparate virtual, las categorías, los productos o los botones de «Comprar ahora» a otras páginas de su sitio web. Para ello, abra una página en el editor y añada un bloque %s apropiado." #: templates/admin/storefront/area-additional.php:189 msgid "Add your store to other site pages" msgstr "Añada su tienda a otras páginas del sitio web" #: templates/admin/storefront/area-additional.php:166 msgid "Create Product Page" msgstr "Crear página de productos" #: templates/admin/storefront/area-additional.php:150 msgid "Pick Product" msgstr "Elegir un producto" #: templates/admin/storefront/area-additional.php:136 #: templates/admin/storefront/area-additional.php:138 msgid "Create a landing page featuring one of your products." msgstr "Cree una página de aterrizaje con uno de sus productos." #: templates/admin/storefront/area-additional.php:132 msgid "Add a product page" msgstr "Añadir página de productos" #: templates/admin/storefront/area-additional.php:109 msgid "Create Category Page" msgstr "Crear página de categorías" #: templates/admin/storefront/area-additional.php:93 msgid "Pick Category" msgstr "Elegir una categoría" #: templates/admin/storefront/area-additional.php:79 #: templates/admin/storefront/area-additional.php:81 msgid "Feature a specific store category on a separate page of your site." msgstr "Destacar una categoría de la tienda específica en una página separada de su sitio web." #: templates/admin/storefront/area-additional.php:75 msgid "Add a category page" msgstr "Añadir una página de categoría" #: templates/admin/storefront/area-additional.php:54 msgid "Create Search Page" msgstr "Crear página de búsqueda" #: templates/admin/storefront/area-additional.php:50 msgid "Show customers that they can use a search and filters to find desired products faster." msgstr "Muéstreles a los clientes que pueden utilizar la búsqueda y los filtros para encontrar los productos que deseen de forma más rápida." #: templates/admin/storefront/area-additional.php:48 msgid "Add a search and filters page" msgstr "Añadir una página de búsqueda y filtros" #: templates/admin/storefront/area-additional.php:27 msgid "Create Cart Page" msgstr "Crear página del carrito" #: templates/admin/storefront/area-additional.php:23 msgid "Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout." msgstr "Los clientes van a la página del carrito para consultar los productos que han añadido al mismo y proceder con el pago." #: templates/admin/storefront/area-additional.php:21 msgid "Add cart and checkout page" msgstr "Añadir carrito y página de pago" #: templates/admin/storefront/area-additional.php:4 msgid "Highlight products, categories, and other store pages by adding them to separate website pages." msgstr "Destaque productos, categorías y otras páginas de la tienda añadiéndolas a páginas del sitio web separadas." #: templates/admin/storefront/area-additional.php:3 msgid "Additional store pages" msgstr "Páginas adicionales de la tienda" #: templates/admin/storefront/draft-message.php:2 msgid "Publish the page to use this option" msgstr "Publique la página para poder utilizar esta opción" #: templates/admin/storefront/area-design.php:55 msgid "Along with the store catalog, you can add other widgets and texts to the store page." msgstr "Junto con el catálogo de la tienda, puede añadir otros «widgets» y textos a la página de la tienda." #: templates/admin/storefront/area-design.php:54 msgid "Store page content" msgstr "Contenido de la página de la tienda" #: templates/admin/storefront/area-design.php:25 #: templates/admin/storefront/area-design.php:27 msgid "Adjust your store design to fit your business needs." msgstr "Ajuste el diseño de su tienda para que se adapte a las necesidades de su negocio." #: templates/admin/storefront/area-design.php:21 msgid "Store appearance" msgstr "Apariencia de la tienda" #: templates/admin/storefront/area-design.php:4 msgid "Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers." msgstr "Personalice la apariencia de su escaparate virtual y edite el contenido en la página de la tienda para reflejar su marca y mantenerse conectado con sus clientes." #: templates/admin/storefront/area-design.php:3 msgid "Design and content" msgstr "Diseño y contenido" #: templates/admin/storefront/area-status.php:124 msgid "Create Store Page" msgstr "Crear la página de la tienda" #: templates/admin/storefront/area-status.php:121 msgid "Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display." msgstr "Su tienda no se añade a ninguna página de su sitio web. Para que los clientes puedan navegar por su tienda y realizar pedidos, cree una página donde se mostrará la tienda." #: templates/admin/storefront/area-status.php:115 msgid "Set Up Your Store" msgstr "Configure su tienda" #: templates/admin/storefront/area-status.php:109 msgid "To show your storefront instead of the demo store, connect your existing %s account or create a new one." msgstr "Para mostrar su escaparate virtual en lugar de la tienda de demostración, conecte su cuenta de %s existente o cree una nueva." #: templates/admin/storefront/area-status.php:101 msgid "Publish Store Page" msgstr "Publicar la página de la tienda" #: templates/admin/storefront/area-status.php:98 msgid "Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders." msgstr "La página de su tienda está actualmente en un borrador. Una vez que esté lista, publíquela para que los clientes puedan visitar la tienda y realizar pedidos." #: templates/admin/storefront/area-status.php:92 msgid "View Store Page" msgstr "Ver la página de la tienda" #: templates/admin/storefront/area-status.php:86 msgid "Your store page is published. Customers can browse your store at " msgstr "La página de su tienda está publicada. Los clientes pueden visitar su tienda en " #: templates/admin/storefront/area-status.php:77 msgid "View demo store page" msgstr "Ver la página de la tienda de demostración" #: templates/admin/storefront/area-status.php:46 msgid "Draft" msgstr "Borrador" #: templates/admin/storefront/area-status.php:45 msgid "Published" msgstr "Publicada" #: templates/admin/storefront/area-status.php:33 #: templates/admin/storefront/area-status.php:36 msgid "Status" msgstr "Estado" #: templates/admin/storefront/area-status.php:29 msgid "Add a store page" msgstr "Añadir una página de tienda" #: templates/admin/storefront/area-status.php:24 msgid "Connect your %s store" msgstr "Conecte su tienda de %s" #: templates/admin/storefront/area-status.php:21 msgid "Your store page" msgstr "La página de su tienda" #: templates/admin/storefront/area-status.php:10 msgid "To start selling, add a page to your site where the storefront will display." msgstr "Para comenzar a vender, añada una página a su sitio web donde se muestre el escaparate virtual." #: templates/admin/storefront/area-status.php:7 msgid "While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site." msgstr "Mientras su tienda aún no esté conectada, se mostrará una tienda de demostración en su sitio web. Échele un vistazo para tener una idea de cómo se verá su tienda en el sitio web." #: templates/admin/storefront/area-status.php:4 msgid "Store page on your site" msgstr "Página de la tienda en su sitio web" #: templates/admin/storefront/area-navigation.php:205 msgid "The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href=\"%s\" target=\"_blank\">adjust the cart icon appearance</a>." msgstr "El icono del carrito de compras muestra la cantidad de artículos en el carrito y ayuda a los clientes a realizar el pago. Además, puede <a href=\"%s\" target=\"_blank\">ajustar la apariencia del icono del carrito</a>." #: templates/admin/storefront/area-navigation.php:201 msgid "Display the shopping cart icon on site pages" msgstr "Muestre el icono del carrito de compras en las páginas del sitio web" #: templates/admin/storefront/area-navigation.php:179 msgid "Manage Sidebar" msgstr "Gestionar la barra lateral" #: templates/admin/storefront/area-navigation.php:175 msgid "Highlight your best sellers or new products in the website sidebar." msgstr "Destaque sus mejores ventas o nuevos productos en la barra lateral del sitio web." #: templates/admin/storefront/area-navigation.php:173 msgid "Feature your products in the sidebar" msgstr "Destaque sus productos en la barra lateral" #: templates/admin/storefront/area-navigation.php:151 msgid "Add Store Page to Menu" msgstr "Añadir la página de la tienda al menú" #: templates/admin/storefront/area-navigation.php:147 msgid "Make your store accessible from the site menu so your customers can easily find it." msgstr "Haga que su tienda sea accesible desde el menú del sitio web para que sus clientes puedan encontrarla fácilmente." #: templates/admin/storefront/area-navigation.php:141 msgid "Add store page to the site menu" msgstr "Añadir la página de la tienda al menú del sitio web" #: templates/admin/storefront/area-navigation.php:118 msgid "Edit URL Slug" msgstr "Editar «slug» de la dirección URL" #: templates/admin/storefront/area-navigation.php:102 msgid "Current URL slug: /<span data-ec-store-slug>%s</span>" msgstr "«Slug» actual de la dirección URL: /<span data-ec-store-slug>%s</span>" #: templates/admin/storefront/area-navigation.php:78 msgid "Save" msgstr "Guardar" #: templates/admin/storefront/area-navigation.php:69 msgid "URL Slug" msgstr "«Slug» de la dirección URL" #: templates/admin/storefront/area-navigation.php:60 #: templates/admin/storefront/area-navigation.php:113 msgid "A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use \"/shop\" or \"/products\"." msgstr "Un «slug» es la última parte de una URL. Puede crear un «slug» personalizado para la página de su tienda. Es mejor que sea corto, ya que los clientes y los motores de búsqueda prefieren las URL cortas. Por ejemplo, utilice «/tienda» o «/productos»." #: templates/admin/storefront/area-navigation.php:56 #: templates/admin/storefront/area-navigation.php:98 msgid "Customize store page address" msgstr "Personalizar la dirección de la página de la tienda" #: templates/admin/storefront/area-navigation.php:29 msgid "Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href=\"%s\" target=\"_blank\">WordPress Settings > Reading</a>" msgstr "Añada su escaparate virtual a la página de inicio del sitio web para que sea más notable. También puede modificar la configuración de la página de inicio del sitio web en <a href=\"%s\" target=\"_blank\">Configuración de WordPress > Lectura</a>." #: templates/admin/storefront/area-navigation.php:21 msgid "Show your store on the home page" msgstr "Muestre su tienda en la página de inicio" #: templates/admin/storefront/area-navigation.php:4 msgid "Help customers find your store on the website." msgstr "Ayude a los clientes a encontrar su tienda en el sitio web." #: templates/admin/storefront/area-navigation.php:3 msgid "Navigation" msgstr "Navegación" #: templates/admin/welcome-no_oauth.php:12 msgid "Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>." msgstr "El ID de la tienda es un identificador único de su cuenta de %1$s. Puede encontrarlo en su panel de control de %1$s en la <a %2$s>página del panel</a>." #: templates/admin/welcome-create.php:11 msgid "Your store has been created. Preparing your store dashboard ..." msgstr "Se ha creado su tienda. Preparando el panel de su tienda..." #: templates/admin/welcome-connect.php:8 msgid "Create store" msgstr "Crear tienda" #: templates/admin/welcome-connect.php:4 msgid "Connect Your Store" msgstr "Conecte su tienda" #: templates/admin/welcome-page.php:61 msgid "Provided by <a %s>%s</a>" msgstr "Proporcionado por <a %s>%s</a>" #: templates/admin/welcome-page.php:33 msgid "To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>." msgstr "Para añadir su tienda a su sitio web, introduzca el ID de su tienda de %1$s en el campo a continuación. Si aún no tiene una cuenta de %1$s, cree una gratis en el <a %2$s>sitio web de %1$s</a>." #: templates/admin/welcome-page.php:20 msgid "Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website." msgstr "Cree una nueva tienda o, si ya tiene una cuenta de %s, conéctela. El complemento le guiará a través de la configuración de la tienda y le ayudará a publicarla en su sitio web." #: templates/admin/welcome-page.php:12 msgid "Add an Online Store to Your Website" msgstr "Añadir una tienda en línea a su sitio web" #: includes/class-ecwid-store-page.php:566 msgid "This is a demo store. Create your store to see your store products here." msgstr "Esto es una tienda de demostración. Cree su tienda para ver los productos de su tienda aquí." #: includes/class-ecwid-admin-storefront-page.php:539 msgid "Publish" msgstr "Publicar" #: templates/admin/storefront/area-design.php:33 #: templates/admin/storefront/area-design.php:59 #: includes/class-ecwid-admin-storefront-page.php:532 msgid "Edit" msgstr "Editar" #: includes/class-ecwid-admin-storefront-page.php:525 msgid "Preview" msgstr "Vista previa" #: includes/class-ecwid-admin-storefront-page.php:516 msgid "Switch to draft" msgstr "Cambiar al borrador" #: includes/class-ecwid-admin-storefront-page.php:506 msgid "Edit page" msgstr "Editar página" #: includes/class-ecwid-admin-storefront-page.php:499 msgid "View store page" msgstr "Ver la página de la tienda" #: includes/class-ecwid-admin-storefront-page.php:286 msgid "Search products" msgstr "Buscar productos" #: includes/class-ecwid-admin-storefront-page.php:265 msgid "Category" msgstr "Categoría" #: includes/class-ecwid-admin-storefront-page.php:240 msgid "Page with that name already exists." msgstr "Ya existe una página con ese nombre." #: includes/class-ecwid-admin.php:538 msgid "My Profile" msgstr "Mi perfil" #: includes/class-ecwid-admin.php:533 msgid "Apps" msgstr "Aplicaciones" #: includes/class-ecwid-admin.php:523 msgid "Shipping & Pickup" msgstr "Envío y recogida" #: includes/class-ecwid-admin.php:518 msgid "Payment" msgstr "Pago" #: includes/class-ecwid-admin.php:513 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:88 msgid "Design" msgstr "Diseño" #: includes/class-ecwid-admin.php:509 msgid "Configuration" msgstr "Configuración" #: includes/class-ecwid-admin.php:504 msgid "All Sales Channels" msgstr "Todos los canales de venta" #: includes/class-ecwid-admin.php:499 msgid "Website" msgstr "Sitio web" #: includes/class-ecwid-admin.php:494 msgid "Mobile" msgstr "Móvil" #: includes/class-ecwid-admin.php:485 msgid "Sales channels" msgstr "Canales de venta" #: includes/class-ecwid-admin.php:480 msgid "Reports" msgstr "Informes" #: includes/class-ecwid-admin.php:475 msgid "Marketing" msgstr "Mercadotecnia" #: includes/class-ecwid-admin.php:470 msgid "Catalog" msgstr "Catálogo" #: includes/class-ecwid-admin.php:465 msgid "My Sales" msgstr "Mis ventas" #: includes/class-ecwid-admin.php:455 msgid "Store management" msgstr "Gestión de la tienda" #: includes/class-ecwid-admin.php:344 msgid "Instant site" msgstr "Sitio web instantáneo" #: includes/class-ecwid-admin.php:153 includes/class-ecwid-admin.php:154 #: includes/class-ecwid-admin.php:309 msgid "Storefront" msgstr "Escaparate virtual" #: ecwid-shopping-cart.php:1111 msgid "Manage storefront" msgstr "Gestionar escaparate virtual" #: ecwid-shopping-cart.php:1111 msgid "Customize design" msgstr "Personalizar el diseño" #: ecwid-shopping-cart.php:1103 msgid "Manage store" msgstr "Gestionar la tienda" #: templates/importer/woo-main.tpl.php:97 msgid "Start Import" msgstr "Iniciar la importación" #: templates/importer/woo-main.tpl.php:87 msgid "Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target=\"_blank\">\"Billing & Plans\"</a></nobr> page in your Ecwid store control panel." msgstr "Tenga en cuenta el número máximo de productos y categorías que puede tener en su tienda de Ecwid. Esta herramienta de importación se detendrá automáticamente cuando se alcance el límite de productos de la tienda. Para conocer el límite actual de la tienda o aumentarlo, consulte la página <nobr><a %s target=\"_blank\">«Facturación y planes»</a></nobr> ubicada en el panel de su tienda de Ecwid." #: templates/importer/woo-main.tpl.php:82 msgid "Import creates new products and update the existing products with matching SKUs." msgstr "La importación crea nuevos productos y actualiza los productos existentes con las REF correspondientes." #: templates/importer/woo-main.tpl.php:60 msgid "Copying products and categories." msgstr "Copia de productos y categorías." #: templates/importer/woo-main.tpl.php:50 msgid "Import completed. <a href=\"%s\">Run again.</a>" msgstr "Importación completada. <a href=\"%s\">Ejecútela de nuevo.</a>" #: templates/importer/woo-main.tpl.php:34 msgid "Import is in Progress" msgstr "La importación está en progreso" #: templates/importer/woo-main.tpl.php:32 msgid "Import your products from Woocommerce to %s" msgstr "Importe sus productos de Woocommerce a %s" #: templates/importer/woo-main.tpl.php:18 msgid "Update your catalog" msgstr "Actualice su catálogo" #: templates/importer/woo-main.tpl.php:4 msgid "Import Your Products From Woocommerce to %s" msgstr "Importe sus productos de Woocommerce a %s" #: templates/importer/import-no-token.tpl.php:3 msgid "Click the connect button to get rights to update the product catalog" msgstr "Haga clic en el botón «Conectar» para obtener los permisos para actualizar el catálogo de productos" #: templates/importer/woo-complete-alert.tpl.php:52 msgid "Go to Your %s Products" msgstr "Ir a sus productos de %s" #: templates/importer/woo-complete-alert.tpl.php:43 msgid "Download <a href=\"%s\">import log</a>" msgstr "Descargar <a href=\"%s\">registro de importación</a>" #: templates/importer/woo-complete-alert.tpl.php:32 msgid "Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>" msgstr "Parte de los productos no se han copiado a %1$s porque alcanzó el límite de productos en su plan de precios en %1$s. Si desea importar más productos, considere <nobr><a %2$s>actualizar su plan de %1$s.</a></nobr>" #: templates/importer/woo-complete-alert.tpl.php:21 msgid "<b>%s</b> categories" msgstr "<b>%s</b> categorías" #: templates/importer/woo-complete-alert.tpl.php:18 msgid "Imported <b>%s</b> products" msgstr "<b>%s</b> productos importados" #: templates/importer/woo-complete-alert.tpl.php:15 msgid "Import completed" msgstr "Importación completada" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:10 #: includes/widgets/class-ecwid-widget-product-browser.php:12 msgid "Online store" msgstr "Tienda en línea" #: includes/class-ecwid-store-page.php:476 msgid "%s Store Page" msgstr "Página de la tienda de %s" #: templates/advanced-settings.php:79 msgid "Integration with search on your site" msgstr "Integración con la búsqueda en su sitio web" #: templates/sync.php:130 msgid "Deleted products synchronized: %1$s out of %2$s" msgstr "Productos eliminados sincronizados: %1$s de %2$s" #: includes/class-ecwid-custom-admin-page.php:66 msgid "Themes for Ecwid" msgstr "Temas para Ecwid" #: includes/class-ecwid-custom-admin-page.php:33 msgid "Plugins for Ecwid" msgstr "Complementos para Ecwid" #: includes/class-ecwid-popup-deactivate.php:138 msgid "I use this WordPress theme: %s" msgstr "Utilizo este tema de WordPress: %s" #: includes/class-ecwid-popup-deactivate.php:132 msgid "I couldn’t find a WordPress theme that goes well with %s" msgstr "No pude encontrar un tema de WordPress adecuado para %s" #: includes/class-ecwid-product-browser.php:357 msgid "On the right" msgstr "A la derecha" #: includes/class-ecwid-product-browser.php:353 msgid "On the left" msgstr "A la izquierda" #: includes/class-ecwid-product-browser.php:349 msgid "Filters panel position" msgstr "Posición del panel de filtros" #: includes/class-ecwid-product-browser.php:209 msgid "Default product_ID" msgstr "ID del producto predeterminado" #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:73 msgid "Cart icon" msgstr "Icono del carrito de compras" #: templates/shortcode-stub-store.tpl.php:4 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:20 #: js/gutenberg/blocks.build.js:1 msgid "Store Home Page" msgstr "Página de inicio de la tienda" #: ecwid-shopping-cart.php:431 msgid "Edit Category" msgstr "Editar categoría" #: ecwid-shopping-cart.php:430 msgid "Edit Product" msgstr "Editar producto" #: includes/class-ecwid-admin.php:142 includes/class-ecwid-admin.php:143 msgid "Online Store Apps" msgstr "Aplicaciones de la tienda en línea" #. Plugin Name of the plugin msgid "Ecwid Ecommerce Shopping Cart" msgstr "Carrito de compras del comercio electrónico de Ecwid" #: includes/class-ecwid-custom-admin-page.php:58 includes/faq_entries.php:76 msgid "Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href=\"%s\">TemplateMonster themes</a>" msgstr "Ecwid es compatible con cualquier tema de WordPress. Ya sea un tema gratuito del catálogo de WordPress.org, un tema prémium de un proveedor externo o un tema personalizado; su tienda de Ecwid funcionará bien con cualquiera de ellos. Si desea un tema prémium, le recomendamos <a href=\"%s\">temas de TemplateMonster</a>." #: includes/faq_entries.php:74 msgid "Is there a WordPress theme for Ecwid?" msgstr "¿Existe algún tema de WordPress para Ecwid?" #: templates/admin-footer.php:19 msgid "<a href=\"admin.php?page=" msgstr "<a href=\"admin.php?page=" #: includes/integrations/class-ecwid-integration-gutenberg.php:113 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:25 msgid "You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href=\"%1$s\">Appearance → Customize → %2$s</a>” menu to enable it." msgstr "Puede habilitar un «widget» adicional del icono de la bolsa de compras que aparecerá en las páginas de su sitio web. Abra el menú «<a href=\"%1$s\">Apariencia → Personalizar → %2$s</a>» para habilitarlo." #: includes/integrations/class-ecwid-integration-gutenberg.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:18 msgctxt "gutenberg-store-block-stub" msgid "Store" msgstr "Tienda" #: includes/class-ecwid-product-browser.php:472 msgid "Image feed" msgstr "Canal de imagen" #: includes/class-ecwid-product-browser.php:467 msgid "Vertical thumbnails" msgstr "Miniaturas verticales" #: includes/class-ecwid-product-browser.php:462 msgid "Horizontal thumbnails" msgstr "Miniaturas horizontales" #: includes/class-ecwid-product-browser.php:452 msgid "3 columns, image on the right" msgstr "3 columnas, imagen a la derecha" #: includes/class-ecwid-product-browser.php:448 msgid "3 columns, image on the left" msgstr "3 columnas, imagen a la izquierda" #: includes/class-ecwid-product-browser.php:444 msgid "2 columns, image on the right" msgstr "2 columnas, imagen a la derecha" #: includes/class-ecwid-product-browser.php:440 msgid "2 columns, image on the left" msgstr "2 columnas, imagen a la izquierda" #: includes/class-ecwid-product-browser.php:429 msgid "Landscape 3:2" msgstr "Horizontal 3:2" #: includes/class-ecwid-product-browser.php:424 msgid "Landscape 4:3" msgstr "Horizontal 4:3" #: includes/class-ecwid-product-browser.php:419 msgid "Square 1:1" msgstr "Cuadrado 1:1" #: includes/class-ecwid-product-browser.php:414 msgid "Portrait 3:4" msgstr "Vertical 3:4" #: includes/class-ecwid-product-browser.php:409 msgid "Portrait 2:3" msgstr "Vertical 2:3" #: includes/class-ecwid-product-browser.php:399 msgid "L" msgstr "G" #: includes/class-ecwid-product-browser.php:395 msgid "M" msgstr "M" #: includes/class-ecwid-product-browser.php:391 msgid "S" msgstr "P" #: includes/class-ecwid-product-browser.php:381 msgid "Show on hover" msgstr "Mostrar al pasar el ratón" #: includes/class-ecwid-product-browser.php:377 msgid "Hide" msgstr "Ocultar" #: includes/class-ecwid-product-browser.php:373 msgid "Show" msgstr "Mostrar" #: includes/class-ecwid-product-browser.php:342 msgid "Background color" msgstr "Color del fondo" #: includes/class-ecwid-product-browser.php:335 msgid "Link color" msgstr "Color del enlace" #: includes/class-ecwid-product-browser.php:328 msgid "Price color" msgstr "Color del precio" #: includes/class-ecwid-product-browser.php:321 msgid "Text color" msgstr "Color del texto" #: includes/class-ecwid-product-browser.php:314 msgid "Button color" msgstr "Color del botón" #: includes/class-ecwid-product-browser.php:299 msgid "Wholesale prices" msgstr "Precios al por mayor" #: includes/class-ecwid-product-browser.php:292 msgid "\"In stock\" label" msgstr "Etiqueta de productos «En existencia»" #: includes/class-ecwid-product-browser.php:285 msgid "Available qty in stock" msgstr "Cantidad disponible en existencia" #: includes/class-ecwid-product-browser.php:278 msgid "Product quantity" msgstr "Cantidad de productos" #: includes/class-ecwid-product-browser.php:271 msgctxt "product-browser-attributes" msgid "Product price" msgstr "Precio del producto" #: includes/class-ecwid-product-browser.php:264 msgctxt "product-browser-attributes" msgid "Product SKU" msgstr "REF del producto" #: includes/class-ecwid-product-browser.php:257 msgid "Breadcrumbs" msgstr "Migas de pan" #: includes/class-ecwid-product-browser.php:241 msgid "Image gallery layout" msgstr "Diseño de la galería de imágenes" #: includes/integrations/class-ecwid-integration-gutenberg.php:391 #: includes/class-ecwid-product-browser.php:224 #: includes/class-ecwid-product-browser.php:233 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:212 msgid "Show description under the image" msgstr "Mostrar descripción debajo de la imagen" #: includes/class-ecwid-product-browser.php:216 msgid "Product page layout" msgstr "Diseño de la página de productos" #: includes/class-ecwid-product-browser.php:194 msgid "Display sort by link" msgstr "Mostrar «ordenar por enlace»" #: includes/class-ecwid-product-browser.php:186 #: includes/class-ecwid-product-browser.php:306 msgid "Display sign in link" msgstr "Mostrar el enlace de inicio de sesión" #: includes/class-ecwid-product-browser.php:178 msgid "Display footer menu" msgstr "Mostrar el menú del pie de página" #: includes/class-ecwid-product-browser.php:170 msgid "Display breadcrumbs" msgstr "Mostrar migas de pan" #: includes/class-ecwid-product-browser.php:163 js/gutenberg/blocks.build.js:1 msgid "Display search box" msgstr "Mostrar el cuadro de búsqueda" #: includes/class-ecwid-product-browser.php:156 msgid "Display categories menu" msgstr "Mostrar el menú de categorías" #: includes/class-ecwid-product-browser.php:148 msgid "Category thumbnail aspect ratio" msgstr "Relación de aspecto de la miniatura de la categoría" #: includes/class-ecwid-product-browser.php:140 msgid "Category thumbnail size" msgstr "Tamaño de la miniatura de la categoría" #: includes/class-ecwid-product-browser.php:131 msgid "Image only" msgstr "Solo imagen" #: includes/class-ecwid-product-browser.php:127 msgid "Title only" msgstr "Solo título" #: includes/class-ecwid-product-browser.php:123 msgid "Image and title on mouse over" msgstr "Imagen y título al pasar el ratón por encima" #: includes/class-ecwid-product-browser.php:119 msgid "Title on image" msgstr "Título en la imagen" #: includes/class-ecwid-product-browser.php:115 msgid "Title under image" msgstr "Título debajo de la imagen" #: includes/class-ecwid-product-browser.php:111 msgid "Category card layout" msgstr "Diseño de la ficha de categoría" #: includes/class-ecwid-product-browser.php:103 msgid "Show additional image on hover" msgstr "Mostrar imagen adicional al pasar el ratón" #: includes/class-ecwid-product-browser.php:95 msgid "Buy now buttons" msgstr "Botones de «Comprar ahora»" #: includes/class-ecwid-product-browser.php:87 msgid "Product SKU" msgstr "REF del producto" #: includes/class-ecwid-product-browser.php:79 msgid "Product price" msgstr "Precio del producto" #: includes/class-ecwid-product-browser.php:71 msgid "Product title" msgstr "Título del producto" #: includes/class-ecwid-product-browser.php:61 msgid "Justify" msgstr "Justificado" #: includes/class-ecwid-product-browser.php:56 msgid "Right" msgstr "Derecha" #: includes/class-ecwid-product-browser.php:51 msgid "Center" msgstr "Centrado" #: includes/class-ecwid-product-browser.php:46 msgid "Left" msgstr "Izquierda" #: includes/class-ecwid-product-browser.php:42 msgid "Product card text align" msgstr "El texto de la ficha del producto se alinea" #: includes/class-ecwid-product-browser.php:34 msgid "Show product card border" msgstr "Mostrar el borde de la ficha del producto" #: includes/class-ecwid-product-browser.php:26 msgid "Product thumbnail aspect ratio" msgstr "Relación de aspecto de la miniatura del producto" #: includes/class-ecwid-product-browser.php:18 msgid "Product thumbnail size" msgstr "Tamaño de la miniatura del producto" #: includes/class-ecwid-product-browser.php:10 msgid "Show product thumbnails" msgstr "Mostrar miniaturas de los productos" #. Author of the plugin msgid "Ecwid Ecommerce" msgstr "Comercio electrónico Ecwid" #: templates/importer/woo-summary.tpl.php:34 msgid "After import, your %s store will have " msgstr "Después de la importación, su tienda de %s tendrá " #: templates/importer/woo-summary.tpl.php:21 msgid "Your %s store has " msgstr "Su tienda de %s tiene " #: templates/importer/woo-summary.tpl.php:10 msgid "Your WooCommerce store has " msgstr "Su tienda de WooCommerce tiene " #: includes/integrations/class-ecwid-integration-elementor.php:64 #: includes/integrations/class-ecwid-integration-divibuilder.php:25 #: includes/integrations/class-ecwid-integration-gutenberg.php:94 msgid "%s Store" msgstr "Tienda de %s" #: includes/importer/class-ecwid-import-page.php:184 msgid "%s products" msgstr "%s productos" #: includes/importer/class-ecwid-import-page.php:178 msgid "%s products and %s categories" msgstr "%s productos y %s categorías" #: includes/class-ecwid-stub-renderer.php:27 #: includes/class-ecwid-admin-storefront-page.php:272 msgid "Product" msgstr "Producto" #: includes/class-ecwid-message-manager.php:278 #: includes/class-ecwid-message-manager.php:297 #: includes/class-ecwid-message-manager.php:318 msgid "Warning: some of your online store features are disabled. Please contact your hosting provider to resolve." msgstr "Advertencia: algunas de las funciones de su tienda en línea están inhabilitadas. Póngase en contacto con su proveedor de alojamiento web para resolverlo." #: templates/admin/legacy-connect.tpl.php:39 msgid "Create new account" msgstr "Crear una nueva cuenta" #: templates/admin/legacy-connect.tpl.php:33 msgid "Register at %s" msgstr "Registrarse en %s" #: includes/class-ecwid-floating-minicart.php:155 msgid "Bottom left" msgstr "Abajo a la izquierda" #: includes/class-ecwid-floating-minicart.php:154 msgid "Top left" msgstr "Arriba a la izquierda" #: includes/class-ecwid-floating-minicart.php:113 msgid "Show on all pages" msgstr "Mostrar en todas las páginas" #: includes/class-ecwid-floating-minicart.php:112 msgid "Show on store pages" msgstr "Mostrar en las páginas de la tienda" #: includes/class-ecwid-floating-minicart.php:111 msgid "Do not show" msgstr "No mostrar" #: includes/class-ecwid-customizer.php:134 msgid "Vertical indent" msgstr "Sangría vertical" #: includes/class-ecwid-customizer.php:123 msgid "Horizontal indent" msgstr "Sangría horizontal" #: includes/class-ecwid-customizer.php:97 msgid "Icon" msgstr "Icono" #: includes/class-ecwid-customizer.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:79 msgid "Border" msgstr "Borde" #: includes/class-ecwid-customizer.php:72 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:67 msgid "Layout" msgstr "Diseño" #: includes/class-ecwid-customizer.php:61 msgid "Show when empty" msgstr "Mostrar cuando esté vacío" #: includes/class-ecwid-customizer.php:49 msgid "Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The \"Show on store pages\" and \"Show when empty\" options will apply to the cart widget on site when published" msgstr "Nota: cuando está habilitado, el «widget» del carrito siempre se mostrará en la vista previa para que sea más fácil personalizarlo. Las opciones «Mostrar en las páginas de la tienda» y «Mostrar cuando esté vacío» se aplicarán al «widget» del carrito en el sitio cuando se publiquen" #: includes/class-ecwid-customizer.php:47 msgid "Display shopping cart" msgstr "Mostrar el carrito de compras" #: includes/class-ecwid-customizer.php:35 msgid "Shopping Cart Widget" msgstr "«Widget» del carrito de compras" #. Author URI of the plugin msgid "https://ecwid.to/ecwid-site" msgstr "https://ecwid.to/ecwid-site" #: templates/product-popup.php:247 msgid "selected product" msgstr "producto seleccionado" #: templates/product-popup.php:138 templates/product-popup.php:143 msgid "Selected Product" msgstr "Producto seleccionado" #: templates/product-popup.php:124 msgid " Choose another product" msgstr " Elegir otro producto" #: templates/importer/landing.tpl.php:20 msgid "Import your WooCommerce catalog to %s" msgstr "Importe su catálogo de WooCommerce a %s" #: includes/widgets/nsf-minicart-editor.tpl.php:35 msgid "Border:" msgstr "Borde:" #: includes/widgets/nsf-minicart-editor.tpl.php:19 msgid "Cart icon:" msgstr "Icono del carrito:" #: includes/widgets/nsf-minicart-editor.tpl.php:3 msgid "Layout:" msgstr "Diseño:" #: includes/class-ecwid-floating-minicart.php:145 msgid "No border" msgstr "Sin borde" #: includes/class-ecwid-floating-minicart.php:144 msgid "Pill" msgstr "Píldora" #: includes/class-ecwid-floating-minicart.php:143 msgid "Rectangle" msgstr "Rectángulo" #: includes/class-ecwid-floating-minicart.php:136 msgid "Basket" msgstr "Cesta" #: includes/class-ecwid-floating-minicart.php:134 msgid "Bag" msgstr "Bolsa" #: includes/class-ecwid-floating-minicart.php:127 msgid "Icon, label, item count, subtotal and link" msgstr "Icono, etiqueta, total de artículos, subtotal y enlace" #: includes/class-ecwid-floating-minicart.php:126 msgid "Icon, label, item count and subtotal" msgstr "Icono, etiqueta, total de artículos y subtotal" #: includes/class-ecwid-floating-minicart.php:125 msgid "Icon, label and item count" msgstr "Icono, etiqueta y total de artículos" #: includes/class-ecwid-floating-minicart.php:124 msgid "Icon and item count" msgstr "Icono y total de artículos" #: includes/class-ecwid-floating-minicart.php:123 msgid "Label and item count" msgstr "Etiqueta y y total de artículos" #: includes/class-ecwid-floating-minicart.php:122 msgid "Item count only" msgstr "Solo el total de artículos" #: includes/class-ecwid-floating-minicart.php:121 msgid "Small icon and item count" msgstr "Icono pequeño y total de artículos" #: includes/class-ecwid-floating-minicart.php:120 msgid "Small icon" msgstr "Icono pequeño" #: includes/widgets/class-ecwid-widget-minicart.php:9 msgid "Shopping Cart (deprecated)" msgstr "Carrito de compras (descontinuado)" #: includes/widgets/class-ecwid-widget-minicart-miniview.php:9 msgid "Shopping Cart Mini (deprecated)" msgstr "Carrito de compras en miniatura (descontinuado)" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:21 msgid "Shopping Cart Floating (deprecated)" msgstr "Carrito de compras flotante (descontinuado)" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:69 msgid "Displays storefront: product listing and checkout" msgstr "Muestra el escaparate virtual: listado de productos y pago" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:67 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:70 msgctxt "vc-tab" msgid "Online store" msgstr "Tienda en línea" #: includes/integrations/class-ecwid-integration-gutenberg.php:105 #: includes/gutenberg/class-ecwid-gutenberg.php:131 msgid "Your product" msgstr "Su producto" #: templates/shortcode-stub-store.tpl.php:18 #: includes/integrations/class-ecwid-integration-gutenberg.php:103 #: includes/widgets/class-ecwid-widget-product-browser.php:11 #: includes/gutenberg/class-ecwid-gutenberg.php:129 msgid "Your store will be shown here" msgstr "Su tienda se mostrará aquí" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:31 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:101 #: includes/integrations/class-ecwid-integration-gutenberg.php:101 #: includes/gutenberg/class-ecwid-gutenberg.php:127 #: js/gutenberg/blocks.build.js:1 msgid "Choose product" msgstr "Elegir producto" #: includes/integrations/class-ecwid-integration-gutenberg.php:97 #: includes/gutenberg/class-ecwid-gutenberg.php:123 msgid "%s product" msgstr "%s producto" #: templates/wp-toolbox.tpl.php:4 msgid "Take advantage of powerful apps and extensions designed to enhance your store." msgstr "Aproveche las increíbles aplicaciones y extensiones diseñadas para mejorar su tienda." #: templates/wp-toolbox.tpl.php:3 msgid "Extensions for your Store" msgstr "Extensiones para su tienda" #: templates/importer/woo-summary.tpl.php:6 msgid "Import summary" msgstr "Resumen de la importación" #: templates/importer/woo-main.tpl.php:19 msgid "This import will copy your WooCommerce products and categories to your %s store." msgstr "Esta importación copiará sus productos y categorías de WooCommerce a su tienda de %s." #: templates/importer/woo-main.tpl.php:62 msgid "Importing %s of %s items" msgstr "Importando %s de %s artículos" #: templates/importer/woo-complete-alert.tpl.php:27 msgid "Some of the items could not be imported." msgstr "Algunos de los artículos no se pudieron importar." #: templates/importer/landing.tpl.php:33 msgid "Learn more" msgstr "Más información" #: templates/importer/landing.tpl.php:33 msgid "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" msgstr "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" #: templates/importer/landing.tpl.php:31 msgid "Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center" msgstr "Ecwid le permite subir sus productos en forma de archivo CSV. Obtenga más información sobre esta herramienta en el centro de asistencia de Ecwid" #: templates/importer/landing.tpl.php:29 msgid "Import product catalog from other sources" msgstr "Importar el catálogo de productos de otras fuentes" #: templates/importer/landing.tpl.php:23 msgid "(You will be able to confirm the changes before the actual import)" msgstr "(podrá confirmar los cambios antes de la importación definitiva)" #: templates/importer/landing.tpl.php:12 msgid "We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?" msgstr "Notamos que tiene un WooCommerce instalado. Su tienda de WooCommerce tiene %1$s productos y %2$s categorías; ¿le gustaría importarlos a %3$s?" #: templates/importer/landing.tpl.php:9 msgid "Import product catalog from WooCommerce" msgstr "Importar el catálogo de productos de WooCommerce" #: templates/importer/landing.tpl.php:4 msgid "Here, we will help you uploading your product catalog to %s from another shopping cart or other sources." msgstr "Aquí, le ayudaremos a subir su catálogo de productos a %s de otro carrito de compras u otras fuentes." #: templates/importer/landing.tpl.php:1 msgid "Import products to your %s store" msgstr "Importe los productos a su tienda de %s" #: templates/dashboard-blog-posts.tpl.php:20 msgid "Knowledge Base" msgstr "Base de conocimiento" #: templates/dashboard-blog-posts.tpl.php:19 msgid "https://support.ecwid.com/hc/en-us" msgstr "https://support.ecwid.com/hc/en-us" #: templates/dashboard-blog-posts.tpl.php:14 msgid "https://www.ecwid.com/blog" msgstr "https://www.ecwid.com/blog" #: includes/importer/class-ecwid-import.php:39 msgid "Bulk import products and categories to your %s store" msgstr "Importar en masa productos y categorías a su tienda de %s" #: includes/importer/class-ecwid-import.php:38 msgid "%s products and categories" msgstr "%s productos y categorías" #: templates/importer/woo-main.tpl.php:36 #: includes/importer/class-ecwid-import-page.php:52 #: includes/importer/class-ecwid-import-page.php:53 msgid "Import your products from WooCommerce to %s" msgstr "Importe sus productos de WooCommerce a %s" #: includes/importer/class-ecwid-import-page.php:42 #: includes/importer/class-ecwid-import-page.php:43 msgid "Import" msgstr "Importar" #: templates/dashboard-blog-posts.tpl.php:15 #: includes/class-ecwid-wp-dashboard-feed.php:48 msgid "%s Blog" msgstr "Blog de %s" #: includes/class-ecwid-message-manager.php:345 msgid "No Thanks" msgstr "No, gracias" #: includes/class-ecwid-message-manager.php:343 msgid "Import my products from WooCommerce" msgstr "Importar mis productos de WooCommerce" #: includes/class-ecwid-message-manager.php:341 msgid "We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you." msgstr "Notamos que tiene WooCommerce instalado. Si desea copiar fácilmente sus productos de WooCommerce a %s, esta herramienta le ayudará." #: includes/class-ecwid-message-manager.php:340 msgid "Need help importing your products from WooCommerce to %s?" msgstr "¿Necesita ayuda para importar sus productos de WooCommerce a %s?" #: includes/class-ecwid-admin.php:213 includes/class-ecwid-admin.php:214 msgid "Customers" msgstr "Clientes" #: templates/help.php:28 msgid "or <a %s>Browse the Help Center" msgstr "o <a %s>consulte el centro de asistencia" #: templates/admin/welcome-connection-message.php:5 msgid "To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission." msgstr "Para mostrar su tienda en este sitio web, debe permitir que WordPress acceda a sus productos de %1$s. Pulse «Conectar» para otorgar el permiso." #: includes/faq_entries.php:40 msgid "Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target=\"_blank\" href=\"%s\">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans." msgstr "Nuestros 4 tipos de cuentas varían según la cantidad de productos, los tipos de funcionalidades y el nivel de asistencia. Para obtener más información, consulte nuestra <a target=\"_blank\" href=\"%s\">página de precios.</a><br /><br />Consejo profesional: también puede ahorrar dinero si se suscribe a nuestros planes anuales." #: includes/class-ecwid-popup-deactivate.php:59 msgid "[%s] WordPress plugin deactivation feedback (store ID: %s)" msgstr "[%s] Comentarios sobre la desactivación del complemento de WordPress (ID de la tienda: %s)" #: includes/class-ecwid-message-manager.php:289 msgid "Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data." msgstr "Su escaparate virtual (listado de productos y página de pago) está funcionando bien, pero las funciones avanzadas de la tienda, como el SEO y los «widgets» de la barra lateral, están inhabilitadas. Para habilitarlas y asegurarse de que su tienda funcione correctamente, pulse el botón de abajo para conectar su cuenta de %s. Esto tomará menos de un minuto; solo se le pedirá que inicie sesión en su cuenta y permita que este sitio web obtenga los datos de su tienda." #: includes/class-ecwid-message-manager.php:288 msgid "Action required: please connect your %s account" msgstr "Acción requerida: conecte su cuenta de %s" #: templates/popup/deactivate.php:24 msgid "Contact Support" msgstr "Ponerse en contacto con la asistencia" #: templates/popup/deactivate.php:1 msgid "If you have a moment, please let us know why you are deactivating:" msgstr "Si tiene un momento, háganos saber por qué está desactivando:" #: templates/admin/welcome-create.php:4 msgid "Create Store" msgstr "Crear tienda" #: templates/advanced-settings.php:1 msgid "%s — Advanced settings" msgstr "%s — Configuración avanzada" #: includes/widgets/class-ecwid-widget-random-products.php:10 msgid "Displays a list of random products." msgstr "Muestra una lista de productos aleatorios." #: includes/widgets/class-ecwid-widget-random-products.php:9 msgid "Random Products" msgstr "Productos aleatorios" #: includes/widgets/class-ecwid-widget-random-product.php:9 #: includes/widgets/class-ecwid-widget-random-product.php:64 msgid "Random Product" msgstr "Producto aleatorio" #: includes/widgets/class-ecwid-widget-random-product.php:8 msgid "Displays a random product from your store to attract customer attention." msgstr "Muestra un producto aleatorio de su tienda para atraer la atención del cliente." #: includes/widgets/class-ecwid-widget-latest-products.php:10 msgid "Displays the latest added products from your store. Show new products to returning customers to drive repeat sales." msgstr "Muestra los últimos productos añadidos de su tienda. Muestre nuevos productos a los clientes existentes para impulsar las ventas repetidas." #: includes/widgets/class-ecwid-widget-latest-products.php:9 msgid "Latest Products" msgstr "Últimos productos" #: includes/class-ecwid-popup-deactivate.php:164 msgid "Can you share your feedback? What was wrong?" msgstr "¿Podría compartir su opinión? ¿Qué fue lo que pasó?" #: includes/class-ecwid-popup-deactivate.php:161 msgid "Other" msgstr "Otro" #: includes/class-ecwid-popup-deactivate.php:155 msgid "It's a temporary deactivation. Please do not ask me again." msgstr "Es una desactivación temporal. No preguntarme de nuevo." #: includes/class-ecwid-popup-deactivate.php:152 msgid "Can you share the name of the plugin you chose?" msgstr "¿Podría compartir el nombre del complemento que ha elegido?" #: includes/class-ecwid-popup-deactivate.php:149 msgid "I found a better plugin" msgstr "Encontré un mejor complemento" #: includes/class-ecwid-popup-deactivate.php:146 msgid "What feature do you need?" msgstr "¿Qué función necesita?" #: includes/class-ecwid-popup-deactivate.php:143 msgid "The plugin doesn't support the feature I want" msgstr "El complemento no es compatible con la función que quiero" #: includes/class-ecwid-popup-deactivate.php:128 msgid "What was wrong?" msgstr "¿Qué fue lo que pasó?" #: includes/class-ecwid-popup-deactivate.php:125 msgid "I have a problem using this plugin" msgstr "Tengo un problema con el uso de este complemento" #: includes/class-ecwid-popup-deactivate.php:112 msgid "Before You Go" msgstr "Antes de que se vaya" #: templates/admin/storefront/area-navigation.php:79 #: includes/class-ecwid-popup-deactivate.php:105 msgid "Cancel" msgstr "Cancelar" #: includes/class-ecwid-popup-deactivate.php:101 msgid "Submit & Deactivate" msgstr "Enviar y desactivar" #: includes/class-ecwid-message-manager.php:244 #: includes/class-ecwid-store-page.php:568 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:51 #: ecwid-shopping-cart.php:1082 js/gutenberg/blocks.build.js:1 msgid "Set up your store" msgstr "Configure su tienda" #: templates/admin-head.php:8 includes/class-ecwid-admin.php:48 #: includes/integrations/class-ecwid-integration-gutenberg.php:45 #: includes/gutenberg/class-ecwid-gutenberg.php:69 msgid "%s" msgstr "%s" #: templates/product-popup.php:199 js/gutenberg/blocks.build.js:1 msgid "«Buy now» button" msgstr "Botón de «Comprar ahora»" #: templates/admin/simple-dashboard.php:10 msgid "%s Shopping Cart" msgstr "Carrito de compras de %s" #: templates/advanced-settings.php:42 msgid "Please subscribe to a paid plan to get this feature." msgstr "Suscríbase a un plan de pago para obtener esta función." #: templates/admin-footer.php:9 msgid "Get %s mobile app" msgstr "Descargue la aplicación móvil de %s" #: includes/class-ecwid-message-manager.php:272 msgid "Rate %s at WordPress.org" msgstr "Tasa de %s en WordPress.org" #: includes/class-ecwid-message-manager.php:268 msgid "Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site." msgstr "¿Le gusta su tienda de %s en línea? Apreciaríamos si comparte su opinión y vota por el complemento en el sitio de WordPress." #: includes/class-ecwid-message-manager.php:260 msgid "To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings." msgstr "Para añadir funciones adicionales a su tienda, arrastre y suelte los elementos de la tienda de %s en su sitio web. Una vez que haya terminado, puede volver a modificar su configuración." #: templates/sync.php:114 msgid "Provide access." msgstr "Otorgar acceso." #: templates/sync.php:113 msgid "To enable this feature, the plugin needs a permission to read your store product information." msgstr "Para habilitar esta función, el complemento necesita un permiso para leer la información del producto de su tienda." #: templates/product-popup.php:137 templates/product-popup.php:147 msgid "Choose Product" msgstr "Elegir producto" #: templates/product-popup.php:96 msgid "Try another search." msgstr "Intente otra búsqueda." #: templates/sync.php:152 msgid "Not synchronized yet" msgstr "No se ha sincronizado todavía" #: templates/sync.php:149 msgid "Last update" msgstr "Última actualización" #: templates/sync.php:145 msgid "Products are successfully synchronized. The product pages are up to date." msgstr "Los productos se sincronizaron satisfactoriamente. Las páginas de productos están actualizadas." #: templates/sync.php:138 msgid "Products synchronized: %1$s out of %2$s" msgstr "Productos eliminados sincronizados: %1$s de %2$s" #: templates/sync.php:126 msgid "We're synchronizing your products. This may take a few minutes. Please do not reload the page." msgstr "Estamos sincronizando sus productos. Esto puede tardar unos minutos. No actualice la página." #: templates/sync.php:119 msgid "Synchronize products" msgstr "Sincronizar productos" #: templates/advanced-settings.php:83 msgid "%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site." msgstr "%s almacena los datos de sus productos de forma segura en la nube. Las páginas de productos se muestran sobre la marcha cuando un cliente navega por su tienda. Por lo que, básicamente, los productos no se almacenan en el sitio web, por eso la búsqueda en el sitio web no encuentra páginas de productos mientras busca en las páginas del sitio web y en las publicaciones. Esta opción habilita un modo de almacenamiento local: los productos se almacenarán tanto en la nube como en su sitio web. Los resultados de la búsqueda en el sitio web incluirán las páginas de productos, así como las páginas o publicaciones habituales de su sitio web." #: templates/product-popup.php:243 msgid "Insert" msgstr "Insertar" #: templates/product-popup.php:242 msgid "select product" msgstr "seleccionar producto" #: templates/product-popup.php:241 templates/product-popup.php:246 msgid "customize appearance" msgstr "personalizar apariencia" #: templates/product-popup.php:224 msgid "Show price inside the \"Buy now\" button" msgstr "Mostrar el precio dentro del botón de «Comprar ahora»" #: templates/product-popup.php:229 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:62 #: js/gutenberg/blocks.build.js:1 msgid "Center align on a page" msgstr "Centrar la alineación en una página" #: templates/product-popup.php:219 js/gutenberg/blocks.build.js:1 msgid "Add border" msgstr "Añadir borde" #: templates/product-popup.php:188 js/gutenberg/blocks.build.js:1 msgid "Quantity" msgstr "Cantidad" #: templates/product-popup.php:178 js/gutenberg/blocks.build.js:1 msgid "Options" msgstr "Opciones" #: templates/product-popup.php:173 js/gutenberg/blocks.build.js:1 msgid "Picture" msgstr "Imagen" #: templates/product-popup.php:163 msgid "Choose product properties to display in widget" msgstr "Elija las propiedades del producto para mostrarlas en el «widget»" #: templates/product-popup.php:139 templates/product-popup.php:151 msgid "Customize widget" msgstr "Personalizar «widget»" #: templates/product-popup.php:97 msgid "Browse all products." msgstr "Explorar todos los productos." #: templates/product-popup.php:94 msgid "Nothing found for <span class=\"empty-page__term\">\"{{ data.term }}\"</span>" msgstr "No se ha encontrado nada en relación con <span class=\"empty-page__term\">«{{ data.term }}»</span>" #: templates/product-popup.php:80 msgid "Next page" msgstr "Página siguiente" #: templates/product-popup.php:69 msgid "Current Page" msgstr "Página actual" #: templates/product-popup.php:49 msgid "Title or SKU" msgstr "Título o REF" #: templates/product-popup.php:47 templates/product-popup.php:53 #: templates/product-popup.php:56 msgid "Search" msgstr "Buscar" #: templates/product-popup.php:29 msgid "SKU" msgstr "REF" #: templates/product-popup.php:23 msgid "Name" msgstr "Nombre" #: includes/class-ecwid-product-popup.php:150 msgid "Last Page" msgstr "Última página" #: includes/class-ecwid-product-popup.php:149 msgid "Next Page" msgstr "Página siguiente" #: includes/class-ecwid-product-popup.php:148 msgid "Previous Page" msgstr "Página anterior" #: includes/class-ecwid-product-popup.php:147 msgid "First Page" msgstr "Primera página" #: includes/class-ecwid-product-popup.php:107 msgid "Add Product" msgstr "Añadir producto" #: includes/class-ecwid-oauth.php:366 msgid "To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the \"Add product\" dialog." msgstr "A fin de poder elegir un producto para insertarlo en sus publicaciones y páginas, deberá volver a conectar su sitio a su tienda de %s. Esto solo requerirá que acepte la solicitud de permisos para que el complemento pueda listar sus productos en el cuadro de diálogo «Añadir producto»." #: templates/advanced-settings.php:54 msgid "To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>" msgstr "Para asegurarse de que su cliente puede acceder realmente a su sitio web y a la tienda, habilite el registro en las <a %s>configuraciones del sitio web</a>" #: templates/advanced-settings.php:48 msgid "To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>" msgstr "Para permitir que %s inicie la sesión de sus clientes automáticamente en su tienda, otorgue los permisos para utilizar los datos del cliente en la tienda. <a %s>Utilice este enlace para hacerlo</a>" #: templates/advanced-settings.php:39 msgid "Upgrade to get this feature" msgstr "Actualice para obtener esta función" #: templates/advanced-settings.php:32 msgid "Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again." msgstr "El inicio de sesión único les permite a sus clientes tener un inicio de sesión único para su sitio web de WordPress y su %s. Cuando alguien inicie sesión en su sitio web, también iniciará sesión automáticamente en su cuenta de cliente en la tienda sin necesidad de introducir su correo electrónico y contraseña nuevamente." #: templates/advanced-settings.php:27 msgid "Customer Single Sign-On" msgstr "Inicio de sesión único del cliente" #: includes/integrations/class-ecwid-integration-divibuilder.php:63 msgid "Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space." msgstr "Introduzca las clases CSS opcionales que se utilizarán para este módulo. Se puede utilizar una clase CSS para crear estilos CSS personalizados. Puede añadir varias clases separadas por un espacio." #: includes/integrations/class-ecwid-integration-divibuilder.php:60 msgid "CSS Class" msgstr "Clase CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:57 msgid "Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page." msgstr "Introduzca un ID de CSS opcional que se utilizará para este módulo. Se puede utilizar un ID para crear un estilo CSS personalizado o para crear enlaces a secciones particulares de su página web." #: includes/integrations/class-ecwid-integration-divibuilder.php:54 msgid "CSS ID" msgstr "ID de CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:51 msgid "This will change the label of the module in the builder for easy identification." msgstr "Esto cambiará la etiqueta del módulo en el creador para una fácil identificación." #: includes/integrations/class-ecwid-integration-divibuilder.php:49 msgid "Admin Label" msgstr "Etiqueta de administrador" #: includes/integrations/class-ecwid-integration-divibuilder.php:44 msgid "Here you can create the content that will be used within the module." msgstr "Aquí puede crear el contenido que se utilizará dentro del módulo." #: includes/integrations/class-ecwid-integration-divibuilder.php:41 msgid "Content" msgstr "Contenido" #: templates/admin-footer.php:29 msgid "<a %s>Reconnect</a>" msgstr "<a %s>Volver a conectar</a>" #: templates/help.php:15 msgid "https://support.ecwid.com/hc/en-us/search" msgstr "https://support.ecwid.com/hc/en-us/search" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:73 msgid "Browse by Category" msgstr "Buscar por categoría" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:15 msgid "Store Root Categories" msgstr "Categorías raíz de la tienda" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:14 msgid "Adds root categories list to the sidebar to let your customers navigate the store." msgstr "Añade la lista de categorías raíz a la barra lateral para que sus clientes puedan desplazarse por la tienda." #: templates/admin/welcome-connection-message.php:25 msgid "To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission." msgstr "Para vender utilizando %1$s, debe permitir que WordPress acceda al complemento %1$s. El botón «Conectar» lo redirigirá a su cuenta de %1$s donde puede otorgar el permiso." #: templates/admin-timeout.php:11 msgid "Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">our customer support team</a>." msgstr "Nuestro equipo ya está trabajando en este asunto. Actualice la página en unos minutos. Si el problema persiste, comuníquese con <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">nuestro equipo de atención al cliente</a>." #: templates/admin-timeout.php:9 msgid "Sorry we're having technical difficulties." msgstr "Le pido disculpas por las dificultades técnicas que estamos experimentando." #: includes/class-ecwid-floating-minicart.php:153 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:143 msgid "Top right" msgstr "Arriba a la derecha" #: includes/class-ecwid-floating-minicart.php:152 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:138 msgid "Bottom right" msgstr "Abajo a la derecha" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:135 #: includes/class-ecwid-customizer.php:110 msgid "Position" msgstr "Posición" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:20 msgid "Adds a shopping cart widget to the top right corner of your site." msgstr "Añada un «widget» de carrito de compras en la esquina superior derecha de su sitio web." #: templates/help.php:215 msgid "You can send a new request here." msgstr "Puede enviar una nueva solicitud aquí." #: templates/help.php:214 msgid " Thank you very much for contacting us! We will get back to you shortly." msgstr " ¡Muchas gracias por ponerse en contacto con nosotros! Nos pondremos en contacto con usted en breve." #: templates/help.php:213 msgid "Your email has been sent" msgstr "Se ha enviado su correo electrónico" #: templates/help.php:207 msgid "Send message failed" msgstr "Ocurrió un error al enviar el mensaje" #: templates/help.php:196 msgid "Send Message" msgstr "Enviar mensaje" #: templates/help.php:193 msgid "Type in your message here" msgstr "Escriba su mensaje aquí" #: templates/help.php:192 msgid "Subject" msgstr "Asunto" #: templates/help.php:186 msgid "Send a message to our support team" msgstr "Envíe un mensaje a nuestro equipo de asistencia" #: templates/help.php:177 msgid "Still have questions about Ecwid? Let us know!" msgstr "¿Todavía tiene preguntas acerca de Ecwid? ¡Háganoslo saber!" #: templates/help.php:176 msgid "Contact us" msgstr "Póngase en contacto con nosotros" #: templates/help.php:33 msgid "Frequently Asked Questions" msgstr "Preguntas frecuentes" #: templates/help.php:21 msgid "Search the Knowledge Base" msgstr "Buscar en la base de conocimientos" #: templates/help.php:17 msgid "E.g. How to set up shipping" msgstr "Por ejemplo, cómo establecer el envío" #: templates/help.php:11 msgid "How can we help you?" msgstr "¿Cómo podemos ayudarle?" #: includes/faq_entries.php:68 msgid "You can display your store on the site main page. Adjust the \"Reading\" settings of your site as described in our <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">Help Center.</a>" msgstr "Puede mostrar su tienda en la página principal del sitio web. Ajuste la configuración de «Lectura» de su sitio web como se describe en nuestro <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">centro de asistencia.</a>" #: includes/faq_entries.php:67 msgid "Is it possible to display my store on the site home page?" msgstr "¿Es posible mostrar mi tienda en la página de inicio del sitio web?" #: includes/faq_entries.php:61 msgid "To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">How to use it.</a>" msgstr "Para mostrar un solo producto en una página aparte o en una entrada de blog de su sitio web, utilice el código corto <b>[ecwid_product]</b>. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">Cómo utilizarlo</a>" #: includes/faq_entries.php:60 msgid "How to add a single product with the add to bag button to the site pages?" msgstr "¿Cómo añadir un solo producto con el botón de «añadir a la bolsa» en las páginas del sitio web?" #: includes/faq_entries.php:55 msgid "To create sitemap for your Wordpress site we suggest using <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> or <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">paid Ecwid users</a>." msgstr "Para crear un «Mapa del sitio» para su sitio web de Wordpress, le sugerimos que utilice los  complementos <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> o <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>. Estos complementos son totalmente compatibles con Ecwid y permiten generar un mapa del sitio que contiene enlaces a categorías y páginas de productos, por lo que las páginas de la tienda se indexarán más rápido. Tenga en cuenta que esta opción solo está disponible para los <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">usuarios de pago de Ecwid</a>." #: includes/faq_entries.php:54 msgid "How do I put my products in the sitemap?" msgstr "¿Cómo pongo mis productos en el mapa del sitio?" #: includes/faq_entries.php:48 msgid "You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open \"Appearance > Menus\" in your WordPress control panel and add the \"Store with Categories Menu\" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site." msgstr "Puede añadir el menú de categorías de la tienda al menú de su sitio web para ayudar a sus clientes a navegar fácilmente por su sitio web. Simplemente abra «Apariencia > Menús» en el panel de WordPress y añada el elemento «Tienda con menú de categorías» al menú de su sitio web. Aparecerá automáticamente un menú desplegable que contendrá las categorías de su tienda en su sitio web." #: includes/faq_entries.php:47 msgid "How do I add store categories to the site menu?" msgstr "¿Cómo puedo añadir categorías de tiendas al menú del sitio web?" #: includes/faq_entries.php:38 msgid "How much does Ecwid cost?" msgstr "¿Cuánto cuesta Ecwid?" #: includes/faq_entries.php:30 msgid "You can add product search box, cart widget and more on the <a href=\"%s\">\"Appearance / Widgets page\"</a> here in your site admin. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">More details.</a>" msgstr "Puede añadir un cuadro de búsqueda de productos, un «widget» de carrito y más desde la <a href=\"%s\">«Página de apariencia y widgets»</a> que se encuentra aquí en el administrador de su sitio web. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">Más detalles.</a>" #: includes/faq_entries.php:28 msgid "How can I add a cart widget to my site sidebar?" msgstr "¿Cómo puedo añadir un «widget» de carrito de compras a la barra lateral de mi sitio web?" #: includes/faq_entries.php:21 msgid "You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">More details.</a>" msgstr "Puede añadir su tienda en línea a su página empresarial de Facebook (no se necesitan complementos). Ecwid sincronizará automáticamente los productos, clientes, pedidos e inventario entre su tienda en línea de WordPress y Facebook. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">Más detalles.</a>" #: includes/faq_entries.php:20 msgid "How to set up a storefront on Facebook with Ecwid?" msgstr "¿Cómo crear una tienda en Facebook con Ecwid?" #: includes/faq_entries.php:13 msgid "Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">More details.</a>" msgstr "Ecwid ofrece aplicaciones móviles gratuitas para iOS y Android para que pueda gestionar su tienda y vender donde y cuando quiera. Escanee productos, supervise el inventario, gestione las ventas y acepte pagos utilizando su dispositivo móvil como una estación de punto de venta. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">Más detalles.</a>" #: includes/faq_entries.php:12 msgid "How can I manage my store from a mobile device?" msgstr "¿Cómo puedo gestionar mi tienda desde un dispositivo móvil?" #: includes/faq_entries.php:6 msgid "Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">More details.</a>" msgstr "Ecwid cuenta con la certificación PCI DSS Nivel 1, que es el estándar de oro para las soluciones de comercio electrónico en todo el mundo. Esto significa que no tendrá problemas de cumplimiento bancario cuando venda en línea con Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">Más detalles.</a>" #: includes/faq_entries.php:5 msgid "How secure is this plugin? Is my store PCI DSS compliant?" msgstr "¿Qué tan seguro es este complemento? ¿Mi tienda cumple con el PCI DSS?" #: includes/class-ecwid-nav-menus.php:32 msgid "Ecwid Menu Item" msgstr "Elemento del menú de Ecwid" #: includes/class-ecwid-admin.php:179 includes/class-ecwid-admin.php:180 msgid "Help" msgstr "Ayuda" #: templates/admin-footer.php:27 msgid "Want to connect another %s store?" msgstr "¿Desea conectar otra tienda de %s?" #: templates/admin-footer.php:17 msgid "Questions?" msgstr "¿Tiene alguna pregunta?" #: templates/admin-footer.php:6 msgid "Manage Store on iPhone, iPad or Android" msgstr "Gestione la tienda desde iPhone, iPad o Android" #: includes/class-ecwid-message-manager.php:254 msgid "Complete Setup" msgstr "Completar configuración" #: includes/class-ecwid-message-manager.php:253 msgid "Complete setup and start selling" msgstr "Complete la configuración y comience a vender" #: includes/class-ecwid-message-manager.php:242 msgid "Greetings! Your %s plugin is now active." msgstr "¡Enhorabuena! Su complemento de %s ya está activo." #: templates/debug.php:12 msgid "Download log file" msgstr "Descargar archivo de registro" #: templates/help.php:67 includes/oembed.php:75 includes/oembed.php:104 msgid "See more" msgstr "Ver más" #: ecwid-shopping-cart.php:1051 msgid "I have a problem with my %s store" msgstr "Tengo un problema con mi tienda de %s" #: includes/class-ecwid-message-manager.php:55 msgid "Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: \"The Wordpress function wp_remote_post() failed to connect a remote server because of some error: \"%s\". Seems like HTTP POST requests are disabled on this server\". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>." msgstr "Lo siento, hay un problema. Se supone que esta página muestra el panel de control de su tienda; sin embargo, este sitio web de Wordpress no parece poder conectarse al servidor de Ecwid para mostrar el panel de su tienda aquí. Es probable que esto se deba a una mala configuración del servidor; su proveedor de alojamiento web puede solucionarlo. Aquí hay una descripción más técnica del problema, la cual puede enviarle a su proveedor de alojamiento web: «La función de Wordpress wp_remote_post() no pudo conectarse a un servidor remoto debido al error: “%s”; parece que las solicitudes HTTP POST están inhabilitadas en este servidor». <br /><br />No dude en ponerse en contacto con nosotros en <a %s>wordpress@ecwid.com</a> y le ayudaremos a comunicarse con su proveedor de alojamiento web para pedirle que solucione el problema. <br /><br /> Mientras tanto, para gestionar su tienda, puede utilizar el panel de control web de Ecwid en <a %s>my.ecwid.com</a>. Su escaparate virtual está funcionando bien; puede echarle un vistazo aquí: <a %s>%s</a>." #: templates/store-popup.php:249 msgid "Open store dashboard" msgstr "Abrir el panel de la tienda" #: templates/store-popup.php:12 templates/store-popup.php:27 msgid "Store elements" msgstr "Elementos de la tienda" #: templates/reconnect-sso.php:10 msgid "Re-connect to Enable Control Panel" msgstr "Vuélvase a conectar para activar el panel de control" #: templates/reconnect-sso.php:8 msgid "Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page." msgstr "Gestione productos, supervise las ventas y ajuste la configuración: <nobr>todo sin</nobr> salir de esta página." #: templates/reconnect-sso.php:7 msgid "Your store Control Panel. Right here in WordPress." msgstr "Panel de control de su tienda. Aquí mismo en WordPress." #: ecwid-shopping-cart.php:2114 msgid "Orders" msgstr "Pedidos" #: includes/class-ecwid-nav-menus.php:168 ecwid-shopping-cart.php:2118 msgid "The store top-level categories are automatically added to this drop-down menu" msgstr "Las categorías de alto nivel de la tienda se añaden automáticamente a este menú desplegable" #: includes/class-ecwid-nav-menus.php:167 ecwid-shopping-cart.php:2117 msgid "Done" msgstr "Hecho" #: includes/class-ecwid-nav-menus.php:166 ecwid-shopping-cart.php:2116 msgid "Refresh categories list" msgstr "Actualizar la lista de categorías" #: includes/class-ecwid-nav-menus.php:165 msgid "Store Page" msgstr "Página de la tienda" #: includes/class-ecwid-nav-menus.php:319 msgid "Add to Menu" msgstr "Añadir al menú" #: includes/class-ecwid-nav-menus.php:316 msgid "Select All" msgstr "Seleccionar todo" #: includes/class-ecwid-nav-menus.php:369 msgid "Store with Categories Menu" msgstr "Tienda con menú de categorías" #: includes/class-ecwid-nav-menus.php:352 #: includes/class-ecwid-nav-menus.php:355 msgid "My Account" msgstr "Mi cuenta" #: includes/class-ecwid-nav-menus.php:335 #: includes/class-ecwid-floating-minicart.php:135 #: includes/class-ecwid-admin-storefront-page.php:279 msgid "Cart" msgstr "Carrito" #: includes/class-ecwid-admin.php:87 includes/class-ecwid-admin.php:88 #: includes/class-ecwid-products.php:228 ecwid-shopping-cart.php:2112 msgid "Products" msgstr "Productos" #: includes/class-ecwid-admin.php:79 includes/class-ecwid-admin.php:80 msgid "Sales" msgstr "Ventas" #: ecwid-shopping-cart.php:1119 msgid "Report a problem with the store" msgstr "Informar un problema con la tienda" #: ecwid-shopping-cart.php:1036 msgid "%s plugin doesn't work well with my \"%s\" theme" msgstr "El complemento %s no funciona bien con mi tema «%s»" #: templates/admin/welcome-connection-message.php:22 #: templates/admin/welcome-connection-message.php:28 msgid "Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL." msgstr "Parece que su sitio web no admite solicitudes POST remotas, las cuales son necesarias para que la API de %s funcione. Comuníquese con su proveedor de alojamiento web para habilitar cURL." #. Description of the plugin msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up." msgstr "Ecwid es un carrito de compras gratuito con todas las funciones. Se puede integrar fácilmente con cualquier blog de Wordpress y se configura en menos de 5 minutos." #. Plugin URI of the plugin msgid "http://www.ecwid.com?partner=wporg" msgstr "http://www.ecwid.com?partner=wporg" #: templates/store-svg.php:12 msgid "Demo Store" msgstr "Tienda de demostración" #: templates/store-svg.php:9 msgid "Your store will be shown here!" msgstr "¡Su tienda se mostrará aquí!" #: templates/product-popup.php:248 templates/store-popup.php:256 msgid "Update" msgstr "Actualizar" #: templates/store-popup.php:253 msgid "Insert into page" msgstr "Insertar en la página" #: templates/store-popup.php:246 msgid "Demo store" msgstr "Tienda de demostración" #: templates/store-popup.php:80 msgid "Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>" msgstr "Además, puede añadir controles de la tienda a la barra de herramientas de su sitio web mediante <a %s>«widgets» nativos de WordPress</a>." #: templates/store-popup.php:74 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:86 msgid "Show categories" msgstr "Mostrar categorías" #: templates/store-popup.php:66 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:94 msgid "Show minicart" msgstr "Mostrar minicarrito" #: templates/store-popup.php:58 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:78 msgid "Show search" msgstr "Mostrar búsqueda" #: templates/store-popup.php:53 msgid "Product catalog will be shown automatically" msgstr "El catálogo de productos se mostrará automáticamente" #: templates/store-popup.php:52 msgid "Choose widgets to show" msgstr "Elija los «widgets» a mostrar" #: templates/admin/welcome-create.php:7 msgid "Connect your store" msgstr "Conecte su tienda" #: templates/admin/welcome-no_oauth.php:6 #: templates/importer/import-no-token.tpl.php:6 #: includes/class-ecwid-message-manager.php:291 msgid "Connect" msgstr "Conectar" #: templates/admin/legacy-connect.tpl.php:68 msgid "Save and connect your %s store to the site" msgstr "Guarde y conecte su tienda de %s al sitio web" #: templates/admin/legacy-connect.tpl.php:59 msgid "Enter your Store ID here:" msgstr "Introduzca el ID de su tienda aquí:" #: templates/admin/legacy-connect.tpl.php:52 msgid "Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the \"Dashboard\" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration." msgstr "El ID de la tienda es un identificador único de cualquier tienda de %1$s, el cual consta de varios dígitos. Puede encontrarlo en la página «Panel» del panel de control de %1$s. El ID de la tienda se enviará en el correo electrónico de bienvenida después del registro." #: templates/admin/legacy-connect.tpl.php:50 msgid "Find your Store ID" msgstr "Encuentre el ID de su tienda" #: templates/admin/legacy-connect.tpl.php:46 msgid "You will be able to sign up through your existing Google, Facebook or PayPal profiles as well." msgstr "También podrá registrarse a través de sus perfiles existentes de Google, Facebook o PayPal." #: templates/admin/legacy-connect.tpl.php:42 msgid "I already have an account, sign in" msgstr "Ya tengo una cuenta, iniciar sesión" #: templates/admin/legacy-connect.tpl.php:35 msgid "Create a new %s account which you will use to manage your store and inventory. The registration is free." msgstr "Cree una nueva cuenta de %s que utilizará para gestionar su tienda e inventario. El registro es gratuito." #: templates/admin/legacy-connect.tpl.php:24 msgid "The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps." msgstr "El primer paso para abrir su negocio en línea: <br />añadamos una tienda a su sitio web de WordPress en <strong>3</strong> simples pasos." #: templates/admin/legacy-connect.tpl.php:21 msgid "Thank you for choosing %s to build your online store" msgstr "Gracias por elegir %s para construir su tienda en línea" #: templates/admin/simple-dashboard.php:58 msgid "Open control panel" msgstr "Abrir el panel de control" #: templates/admin/simple-dashboard.php:42 msgid "Your %s store is connected<br /> to your WordPress website" msgstr "Su tienda de %s está conectada<br /> a su sitio web de WordPress" #: templates/admin/simple-dashboard.php:39 msgid "Greetings!" msgstr "¡Saludos!" #: templates/admin/simple-dashboard.php:34 msgid "Your %s store is now connected<br /> to your WordPress website" msgstr "Su tienda de %s ahora está conectada<br /> a su sitio web de WordPress" #: templates/admin/simple-dashboard.php:31 msgid "Congratulations!" msgstr "¡Enhorabuena!" #: templates/admin/simple-dashboard.php:18 msgid "Disconnect store" msgstr "Desconectar tienda" #: templates/admin/legacy-connect.tpl.php:65 #: templates/admin/simple-dashboard.php:14 templates/store-popup.php:244 #: templates/store-svg.php:14 #: includes/integrations/class-ecwid-integration-gutenberg.php:104 #: includes/gutenberg/class-ecwid-gutenberg.php:130 msgid "Store ID" msgstr "ID de la tienda" #: templates/admin/welcome-connection-message.php:15 msgid "Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again." msgstr "Error de conexión: después de hacer clic en el botón, debe iniciar sesión y otorgar los permisos para poder utilizar nuestro complemento. Inténtelo de nuevo." #: templates/admin/legacy-connect.tpl.php:57 #: templates/admin/welcome-no_oauth.php:3 msgid "Enter your Store ID" msgstr "Introduzca el ID de su tienda" #: templates/store-popup.php:221 msgid "Default view mode on search results" msgstr "Modo de vista predeterminado en los resultados de búsqueda" #: templates/store-popup.php:214 templates/store-popup.php:232 msgid "Table" msgstr "Tabla" #: templates/store-popup.php:211 templates/store-popup.php:229 msgid "List" msgstr "Lista" #: templates/store-popup.php:208 templates/store-popup.php:226 msgid "Grid" msgstr "Cuadrícula" #: templates/store-popup.php:204 msgid "Default view mode on product pages" msgstr "Modo de vista predeterminado en las páginas de productos" #: templates/store-popup.php:184 msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products." msgstr "Aquí puede gestionar cuántos productos se mostrarán por página. Estas opciones definen valores máximos. Si no hay suficiente espacio para mostrar todas las columnas de productos, %s adaptará el número de columnas para mantener todos los productos." #: templates/store-popup.php:169 msgid "Table view" msgstr "Vista de tabla" #: templates/store-popup.php:152 msgid "List view" msgstr "Vista de lista" #: templates/store-popup.php:125 msgid "Grid view" msgstr "Vista de cuadrícula" #: templates/store-popup.php:123 msgid "Number of products per page" msgstr "Número de productos por página" #: templates/store-popup.php:191 msgid "Number of categories per row" msgstr "Número de categorías por fila" #: templates/advanced-settings.php:98 msgid "Save changes" msgstr "Guardar cambios" #: includes/class-ecwid-product-browser.php:202 msgid "Default category ID" msgstr "ID de categoría predeterminada" #: templates/store-popup.php:98 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:127 #: includes/integrations/class-ecwid-integration-gutenberg.php:427 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:56 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:248 msgid "Store root category" msgstr "Categoría raíz de la tienda" #: templates/store-popup.php:90 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:101 msgid "Category shown by default" msgstr "Categoría mostrada por defecto" #: templates/admin-message.php:47 msgid "Never show this message again" msgstr "Nunca mostrar este mensaje otra vez" #: templates/product-popup.php:194 lib/ecwid_platform.php:209 #: js/gutenberg/blocks.build.js:1 msgid "Price" msgstr "Precio" #: includes/class-ecwid-store-editor.php:75 #: includes/integrations/class-ecwid-integration-gutenberg.php:102 #: includes/gutenberg/class-ecwid-gutenberg.php:128 msgid "Edit Appearance" msgstr "Editar apariencia" #: includes/class-ecwid-store-editor.php:60 msgid "Edit Store" msgstr "Editar tienda" #: templates/store-popup.php:11 templates/store-popup.php:21 #: includes/class-ecwid-store-editor.php:52 msgid "Add Store" msgstr "Añadir tienda" #: includes/class-ecwid-message-manager.php:261 msgid "Back to Store Settings" msgstr "Regresar a la configuración de la tienda" #: includes/class-ecwid-message-manager.php:252 msgid "Your store is almost ready!" msgstr "¡Su tienda ya está casi lista!" #: includes/class-ecwid-message-manager.php:243 msgid "Take a few simple steps to complete store setup" msgstr "Siga unos sencillos pasos para completar la configuración de la tienda" #: includes/widgets/class-ecwid-widget-products-base.php:205 msgid "Number of products to show" msgstr "Número de productos para mostrar" #: includes/widgets/class-ecwid-widget-recently-viewed.php:89 msgid "Store Link Title" msgstr "Título del enlace de la tienda" #: templates/product-popup.php:183 includes/class-ecwid-product-browser.php:249 #: includes/widgets/class-ecwid-widget-products-base.php:199 #: js/gutenberg/blocks.build.js:1 msgid "Title" msgstr "Título" #: includes/widgets/class-ecwid-widget-recently-viewed.php:69 #: includes/widgets/class-ecwid-widget-recently-viewed.php:91 msgid "You have not viewed any product yet. Open store." msgstr "Aún no ha visto ningún producto. Abra la tienda." #: includes/widgets/class-ecwid-widget-recently-viewed.php:11 msgid "Recently Viewed Products" msgstr "Productos vistos recientemente" #: includes/widgets/class-ecwid-widget-recently-viewed.php:12 msgid "Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop." msgstr "Muestra una lista de productos vistos recientemente por el cliente para volver fácilmente a los productos que vieron en su tienda." #: includes/widgets/class-ecwid-widget-store-link.php:35 msgid "Text" msgstr "Texto" #: includes/themes/class-ecwid-theme-twentyseventeen.php:48 #: includes/themes/class-ecwid-theme-twentyseventeen.php:54 #: includes/themes/class-ecwid-theme-twentyfifteen.php:34 #: includes/themes/class-ecwid-theme-twentyfifteen.php:40 #: includes/themes/class-ecwid-theme-twentysixteen.php:36 #: includes/themes/class-ecwid-theme-twentysixteen.php:42 #: includes/widgets/class-ecwid-widget-store-link.php:31 msgid "Shop" msgstr "Tienda" #: includes/widgets/class-ecwid-widget-store-link.php:10 msgid "Store Page Link" msgstr "Enlace a la página de la tienda" #: includes/widgets/class-ecwid-widget-store-link.php:9 msgid "Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site." msgstr "Muestra un enlace a la página de la tienda en la barra lateral para que el cliente acceda rápidamente a su tienda desde cualquier página del sitio web." #: includes/widgets/class-ecwid-widget-vcategories.php:9 msgid "Store Categories" msgstr "Categorías de la tienda" #: includes/widgets/class-ecwid-widget-vcategories.php:8 msgid "Adds vertical categories block to let the customer navigate your store." msgstr "Añade un bloque de categorías verticales para permitir que el cliente navegue por su tienda." #: includes/class-ecwid-nav-menus.php:344 #: includes/class-ecwid-nav-menus.php:347 #: includes/widgets/class-ecwid-widget-search.php:13 msgid "Product Search" msgstr "Búsqueda de productos" #: includes/widgets/class-ecwid-widget-search.php:12 msgid "Displays a simple search box for your customers to find a product in your store" msgstr "Muestra un cuadro de búsqueda simple para que sus clientes encuentren un producto en su tienda." #: includes/widgets/class-ecwid-widget-minicart-miniview.php:8 msgid "Adds a compact cart widget for customer to see the products they added to the cart." msgstr "Añade un «widget» de carrito compacto para que el cliente vea los productos que se han añadido al carrito." #: includes/widgets/class-ecwid-widget-minicart.php:41 #: includes/widgets/class-ecwid-widget-random-product.php:67 #: includes/widgets/class-ecwid-widget-search.php:46 #: includes/widgets/nsf-minicart-editor.tpl.php:50 #: includes/widgets/class-ecwid-widget-minicart-miniview.php:41 #: includes/widgets/class-ecwid-widget-vcategories.php:39 #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:76 msgid "Title:" msgstr "Título:" #: includes/class-ecwid-nav-menus.php:338 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:20 msgid "Shopping Cart" msgstr "Carrito de compras" #: includes/widgets/class-ecwid-widget-minicart.php:8 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:19 msgid "Adds a cart widget for customer to see the products they added to the cart." msgstr "Añade un «widget» de carrito para que el cliente vea los productos que se han añadido al carrito." #: includes/widgets/class-ecwid-widget-badge.php:51 #: includes/widgets/class-ecwid-widget-badge.php:63 msgid "Ecwid e-commerce widgets" msgstr "«Widget» de comercio electrónico de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:45 #: includes/widgets/class-ecwid-widget-badge.php:57 msgid "Ecwid shopping cart" msgstr "Carrito de compras de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:39 #: includes/widgets/class-ecwid-widget-badge.php:75 msgid "Ecwid free shopping cart" msgstr "Carrito de compras gratuito de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:33 #: includes/widgets/class-ecwid-widget-badge.php:69 msgid "Ecwid ecommerce solution" msgstr "Solución de comercio electrónico de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:21 #: includes/widgets/class-ecwid-widget-badge.php:27 msgid "Ecwid shopping cart widget" msgstr "«Widget» de carrito de compras de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:14 msgid "Ecwid Badge" msgstr "Distintivo de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:13 msgid "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid." msgstr "¿Le gusta Ecwid y quiere ayudarlo a crecer? Puede añadir este elegante distintivo «Powered by Ecwid» en su sitio web para mostrarles a sus visitantes que es un usuario orgulloso de Ecwid." #: ecwid-shopping-cart.php:2791 msgid "Recommendations for Your Online Store" msgstr "Recomendaciones para su tienda en línea" #: includes/class-ecwid-admin.php:528 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:77 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:87 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:95 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:103 #: ecwid-shopping-cart.php:2056 msgid "Settings" msgstr "Configuraciones" #: includes/class-ecwid-admin.php:165 msgid "Advanced" msgstr "Avanzado" #: includes/class-ecwid-admin.php:164 msgid "Advanced settings" msgstr "Configuraciones avanzadas" #: templates/product-popup.php:206 templates/store-popup.php:14 #: templates/store-popup.php:34 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:44 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:78 #: js/gutenberg/blocks.build.js:1 msgid "Appearance" msgstr "Apariencia" #: includes/class-ecwid-admin.php:28 includes/class-ecwid-admin.php:59 #: includes/class-ecwid-admin.php:459 ecwid-shopping-cart.php:2110 msgid "Dashboard" msgstr "Panel" #: includes/class-ecwid-admin.php:57 ecwid-shopping-cart.php:2056 msgid "Setup" msgstr "Configuración" #: includes/class-ecwid-admin.php:47 msgid "%s shopping cart settings" msgstr "Configuraciones del carrito de compras de %s" #: includes/class-ecwid-nav-menus.php:132 #: includes/class-ecwid-nav-menus.php:361 #: includes/class-ecwid-nav-menus.php:364 #: includes/class-ecwid-nav-menus.php:372 includes/class-ecwid-admin.php:206 #: includes/class-ecwid-admin.php:207 includes/class-ecwid-admin.php:220 #: includes/class-ecwid-admin.php:221 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:63 #: includes/class-ecwid-admin-storefront-page.php:257 #: ecwid-shopping-cart.php:1657 msgid "Store" msgstr "Tienda" #: ecwid-shopping-cart.php:1306 msgid "<a %s>Online store powered by %s</a>" msgstr "<a %s>Tienda en línea con tecnología de %s</a>" #: includes/class-ecwid-admin.php:489 msgid "Sell on Facebook" msgstr "Vender en Facebook" #: templates/admin/simple-dashboard.php:48 ecwid-shopping-cart.php:1094 msgid "Visit storefront" msgstr "Visitar escaparate virtual" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/languages/ecwid-shopping-cart-es_PR.mo������������������������������������������0000644�����������������00000225044�15122273603�0017603 0����������������������������������������������������������������������������������������������������ustar�00�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������e�����D��5��l&������@3�����A3��H���Y3�����3�����3�����3�����3�����3�� ���3��.���3�� ���4�� ��� 4�����,4�����J4�����e4����4�����g6��B���6�����6�����6�����6�����7��$���97�����^7�����r7�����7�����7��/���r8�� ���8�� ���8�����8�����8�����8�����8�����9��#���%9�� ���I9�����T9�����o9�����~9�� ���9�� ���9��>���9��"��� :�����-:�����:��k���:��K���h;��S���;��A���<��R���J<��G���<��4���<�� ���=�����&=�����/=��&���A=�����h=��T���{=�� ���=�����=�����=�����=�����>�����>�����#>�� ���*>�����8>�����?>�� ���G>�� ���S>�� ���`>�����l>�����>��4���>�� ���>�����>�����>�����>��X���>�� ���V?�����`?��/���g?��,���?�����?�����?�����?�� ���?�� ���?�����?�� ���?����� @�����@�����,@�����A@�����[@�����{@�����@�����@�����@�����@�����@�����@��.���@�����A�����5A��D���LA�����A�����A�� ���A�� ���A�����A�����A�����A����� B����� B��x���3B�����B�� ���B�����B�� ���B�����B�����C�����C�����*C�� ���=C�����JC��5���\C��h���C�����C�����D�� ���D�� ���D��5���D�����E�� ���E��x���%E��i���E�����F�����F�����4F�����QF�����bF�����F�� ���F�����F�����G�����$G��"���7G��#���ZG��/���~G�� ���G�� ���G�����G�����G�����G�����G�����H�����H�����-H�����?H��!���WH�����yH�����H��6���H��!���H�����H��*���I��%���:I�����`I��'���vI�����I�����I��,���I�����I��q���J��s���yJ��#���J��H���K��O���ZK��1���K��s���K�� ���PL�����\L��v���L�����uM��$���zM�����M�����M�����M�� ���M�����M�����M����� N��s���N�����N�����N�����N��=��N�����P����P����Q�����R�����R����� S�����S�� ��� S�� ���.S�� ���;S�� ���FS�� ���TS�����^S�����S�����T�����T�����T��B���T��$���)U�����NU�����VU�����mU�� ���U�����U�����U�� ���U�����U�� ���U��(���U�����V�� ���V�����V�����#V��.���V�����W��D���W��h���%X�����X��_���X��C���X�����7Y�����IY��/���_Y��/���Y�����Y��/���Y��(���Z�����-Z��9���GZ��I���Z��2���Z��"���Z��:���![�����\[��"���t[��!���[�����[�����[�����[�����[��$��� \��*���1\��B���\\�����\�� ���\�����\�� ���\�����\��+���\�����]��-���,]��P���Z]�����]��#���]��'���]��)��� ^�� ���7^�����X^��%���g^��+���^��+���^�����^�����_�����_�����!_�� ���2_��$���?_��9���d_��%���_��:���_�����_�����`�����`�����&`�����(`�� ���=`�� ���K`�� ���Y`�� ���c`�����o`�����`�����`�� ���`�����`�����`�� ���`�����`�����`�� ���`�����`�����oa�����a�����a��S���a�����a��'���a��[���'b�� ���b�����b�� ���b�����b�� ���b�� ���b�����b�����b�� ���b��9���b�����c�� ���:c�� ���Dc�� ���Nc�� ���Xc�����bc�����wc��I���Jd�����d�����d�����d�� ���d�� ���d�� ���e�����e�� ��� e�����-e�����@e�����Ue�����]e�����de�����je�����if��#���Og�����sg�� ���g�����g�����lh�����th�� ���i�� ���i�����i�����%i��O��*i��4���zj�����j�� ���j�� ���j�����j�����j�� ���j�����j�� ����k����� k�����k�����'k�����:k�����Rk�� ���jk�����vk�����k�����k�����k��+���k�����k�� ��� l�����l�����*l�����Bl�����al�� ���xl�����l��I���l��'���l�����m�����m�����$m�����=m�����Em��#���Xm�� ���|m�����m�� ���m�����m�����m�����m��"���m�����m��%���n�� ���4n�����>n�����Vn�����en�����n�����n�����n�����n�����n�����n�����n��*���n�� ���n�����n�����n�����o�����o�����/o�� ���8o�����Co�����So�����do�����vo�� ���o��"���o�����o�����o�� ���o�����o�����o�����p����� p�����p�� ���"p�����0p��#���Kp�����op�����p�����p�����p�����p�����p��V���p�� ���Bq�� ���cq�����qq�� ���q�����q��&���q��(���q�����q�����r�� ���&r�����2r�� ���Br�� ��cr�� ���ns�����ys��(���s��*���s����s�� ���ow�� ���zw�����w�����w��.���$x�����Sx�����Yx�����jx�����x�����x�����x�����x�����x�����y�����z�����0z�� ���Az�����Lz�����\z�����rz�����z�����z�����z�����z�����z�����z�� ���z�����{�����{�����${�����4{�����I{�� ���O{��/���Z{��N���{�����{�� ���{��4���{�����|��=���|�����}��-���}�����}��%���~��M���~�������P�����H���h��P��������������� ����� ���"�����/�����A�����H�����ۀ������� ��4��E��>�������]��������l��%��^��*����*����y���ڊ��>���T�������h���5��L���������� ������������������,�����5�����<�����P�����l�����|�������������������������ԍ����������������� �����!��� ��j���B����������E��^���ŏ�����$�����,�����F�� ���V�����c������� ���������C����B����k���@���������������V�� ������0���!��^���R�������:���Ę��>��������>�����N�����j�� �����2�����?���Ù����������֚������������y�����A��������Q�����o������:��������J�����_�� �����"��������Þ��"���ߞ��H�����)���K�����u�������&�����(���ן���������������� �����4����G�����$��e���:��'��������Ȣ�� ���ˢ�����֢�� ����������5����� ���M�� ���Y�����f�������,�������̣�����W��B���v��!��������ۦ��!����������0���=�����n����������������*���������������(�����!���1�����S��*���p�������+����� �����!����������6���)��1���`�������C�����/����������!��������2��e�����n���&��Z�����o�����^���`��R�������������,�����5��5���O�������h����� ��� �� �����!���!��)���C�����m�����}�������������������������������� ���Ӱ������������:��������O�� ���`�����n�������`����� ����� �����=�����9���W�������������������������β�� ����� ����� �����%�����!���(�����J��5���j��(��������ɳ��%���ҳ�������!���������"�����2��C���B��(����������g���ϴ�����7�����Q��.���j�������������������������ҵ������������%�����!���Ŷ�� �����!�������������-�����J�����e�� ����������8�����j��������O������� ��������(��I���7��$���������������x���@�������'���Ѻ��5��������/�����G�������������������������6��9���U��;�����0���˼���������������,�����4�����H�����b�����u�����������������2�����!�����#���5��I���Y��+��������Ͼ��6�����/���%�����U��2���s��&��������Ϳ��E��������2�����D�������*���c��P�����`�����:���@�����{�� ��� ���������������U��3���[������������'���������������5��������D�����`��,�����+��� ��$���L��t��q�������A����h�������6��)���R�����|����������������� �����$�������������������������$����������Y�����*���?�����j�����r�����������������%������������� �� ���$��4���/�� ���d�����p������������;����������D�����g��������l��p���t��Q��������7�����K��]���c��>�����������D�����1���_�������I�����g�����/���[��$�����7����������0�����%���8��"���^������������%�����/�����7�����@���1��.���r�������#����� ����������)����������>���,��h���k��!�����%�����1�����3���N��'����������(�����)�����)��������B�����a�����������������-�����E�����-���+��8���Y������� ��������������� ����������������������� �����7�����J�����R�����[�� ���m�����w������������������������������}������������s��������*��/���E��q���u������������ ��������&�� ���-�� ���7�� ���A�����L�� ���S��A���_��#��������������� ����� ����������)����c���H������� �����!���������� ��������+��#���<�����`�����q����������������������I���������%��������(�� ���:�����G����������$���������������������������9���������� ����� ����� ����� ��� ����������*�����1�����B�����K�����f��#�����%��������������� ����� �����+���5��7���a��"���������������*�����1�����$���C�����h�� ���}��a�����0�������������/�����?�����^�� ���g��4����� ������������������������������5���-�����c��(����� �����"����������"������������������ �����"�����&�����-�����>��-���F�����t�����������������"���������������������������������2�����E��0���T��&��������������������������������� ����������#��"���6��+���Y�������/�����!����������+��������(�����<��(������������������ ��$���;��8���`��8�����)�����#�������� �����2��)���N��M��x�������$�����2�����L���-��,��z�� ��������������������?���������������!�����#��������7�����V�����u��������������3�����S�����l�� �������������������������$�����$���+�����P�����n�������������������������������������G�����W���C������������8����������Y����������:���z�����'����_��������X���&�^����U�������4����<� ���Q� ���^����l������������M�����#��������� �u���= ��� �@�� �@���U��H�����P���:�����~���:�a�����������1����E����]����v� ��������$������������ ���� ��������,���6����c������������� ����#���������������(�]���� ��� ��������0� ���I����W�����V��&����}���U�`������H�+�����������'��� �2��� �^����!����_!�A���v!�G���!�����"����"�$���6"� ���["�8���g"�;���"�5��"� ���$����3$����$����$�R���%����%���� &���-&�[��� (����e(� ���}(����(�"���(����(�"���(�H���(�)���9)����c)�(���~)����)����)����)����)����)����*��������I����������������k������R��W��y����$��%���������������������������������������#�����y���R��#��������J���Z���������?���B��^��>������������������������� ��� ��3����1�����U������>�������K��q����������������������-���������������������v���8������:���/������g��d�����������������S��?�����������������������'���������,������������j��Z��������P���������W������������S���������]����������T����������� �������6�������������������r�������������c��9����������,������������������k��������������%���������������������������������������������L���"�������a����������W��t�������������������}��.������ ��$������K������G���������~���������������0������w������������E��������7����������������������������Q��������F������������������:��\�����������������O�����X��'��*��3������1������ ���������������������u������������9�����E�����������C�����������������������������?������8��a��_���b�������L������@��&������*��I��C���J�����Y���������D������������$���������;��F���������N������G������'���������������0�����@�����^��������c�����������������u����>��:��������.�����������M��j���[��S����������������4������� ������������H�������������@���������������K�����]���������P���&�������������������%���� ��c������h��X���A��������#�����������z�������3�����(����������������������������������������������Q��������e�������������-����������i���������D����p�������!��������������(������������X��5����7���������=��������������;������N���������P������������������T��������������\������Z����������������������&����� ��������� ���`�������|�����������`������������<���������e���+�������A�����=����������������������)�������Q������������������������f��!����� ���b��a���M��{�������<��7�������������������������������������H��������6��O��s���`����������9�����*���������-��}���"���������r���������0��������������{������������������������������������l��H����������v����d��/����� ��]���t���p�����2�����������d��������g������U���������C�������w���������[���l������������������������<��������� ���o���1��� ����������V��f������N�� ��E��������������������������������� �����������������������/������,��������~�����������������������!������[����n�����������_��"�����(�������2���J��x��h���_���� ��������o������M������4��=��8������������2����� ��4������������m���������������������������5��n��I���;�����)������6��L��V������������+����+��A�������������������������Y��B��F������ �������)��������m��i�����������5���^������|���z���������������������U����������x�����������\����q������������O���������������V����������b���������������������������������������Y�������������.�����D������������������B�������G��s�������������R�����T����e���������� Choose another product� Thank you very much for contacting us! We will get back to you shortly.�"In stock" label�%s�%s Blog�%s Shopping Cart�%s Store�%s Store Page�%s plugin doesn't work well with my "%s" theme�%s product�%s products�%s products and %s categories�%s products and categories�%s shopping cart settings�%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site.�%s — Advanced settings�(You will be able to confirm the changes before the actual import)�2 columns, image on the left�2 columns, image on the right�3 columns, image on the left�3 columns, image on the right�<a %s>Online store powered by %s</a>�<a %s>Reconnect</a>�<a href="admin.php?page=�<b>%s</b> categories�A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use "/shop" or "/products".�Action required: please connect your %s account�Add Product�Add Store�Add Store Page to Menu�Add a category page�Add a product page�Add a search and filters page�Add a store page�Add an Online Store to Your Website�Add border�Add cart and checkout page�Add categories�Add store page to the site menu�Add storefront (product listing)�Add to Menu�Add your %s store to the website and start selling in minutes.�Add your store to other site pages�Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href="%s" target="_blank">WordPress Settings > Reading</a>�Additional store pages�Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>�Adds a cart widget for customer to see the products they added to the cart.�Adds a compact cart widget for customer to see the products they added to the cart.�Adds a shopping cart widget to the top right corner of your site.�Adds root categories list to the sidebar to let your customers navigate the store.�Adds vertical categories block to let the customer navigate your store.�Adjust your store design to fit your business needs.�Admin Label�Advanced�Advanced settings�After import, your %s store will have �All Sales Channels�Along with the store catalog, you can add other widgets and texts to the store page.�Appearance�Apps�Available qty in stock�Back to Store Settings�Background color�Bag�Basket�Before You Go�Border�Border:�Bottom left�Bottom right�Breadcrumbs�Browse all products.�Browse by Category�Bulk import products and categories to your %s store�Button color�Buy Now�Buy Now Button�Buy now buttons�By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>.�CSS Class�CSS ID�Can you share the name of the plugin you chose?�Can you share your feedback? What was wrong?�Cancel�Cart�Cart and Checkout�Cart icon�Cart icon:�Catalog�Categories�Category�Category List Appearance�Category card layout�Category shown by default�Category thumbnail aspect ratio�Category thumbnail size�Center�Center align on a page�Change�Change store content�Choose Product�Choose product�Choose product properties to display in widget�Choose the main store page�Choose widgets to show�Click the connect button to get rights to update the product catalog�Color settings�Complete Setup�Complete setup and start selling�Configuration�Congratulations!�Connect�Connect Your Store�Connect your %s store�Connect your store�Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again.�Contact Support�Contact us�Content�Copying products and categories.�Create Cart Page�Create Category Page�Create Product Page�Create Search Page�Create Store�Create Store Page�Create a landing page featuring one of your products.�Create a new %s account which you will use to manage your store and inventory. The registration is free.�Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website.�Create new account�Create store�Current Page�Current URL slug: /<span data-ec-store-slug>%s</span>�Customer Single Sign-On�Customers�Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers.�Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout.�Customize design�Customize store appearance�Customize store page address�Customize widget�Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand.�Cyan bluish gray�Dashboard�Default category�Default category ID�Default product_ID�Default view mode on product pages�Default view mode on search results�Deleted products synchronized: %1$s out of %2$s�Demo Store�Demo store�Design�Design and content�Detect automatically�Disconnect store�Display a buy button�Display breadcrumbs�Display cart icon�Display categories menu�Display categories navigation bar�Display category page�Display footer menu�Display product page with description and a buy button�Display product with a buy button�Display search box�Display search page with filters on a side�Display shopping bag link and summary�Display shopping cart�Display shopping cart and checkout page�Display sign in link�Display sort by link�Display the shopping cart icon on site pages�Displayed product�Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site.�Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop.�Displays a list of random products.�Displays a random product from your store to attract customer attention.�Displays a simple search box for your customers to find a product in your store�Displays storefront: product listing and checkout�Displays the latest added products from your store. Show new products to returning customers to drive repeat sales.�Do not show�Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid.�Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site.�Done�Download <a href="%s">import log</a>�Download log file�Draft�E.g. How to set up shipping�Ecwid Badge�Ecwid Ecommerce�Ecwid Ecommerce Shopping Cart�Ecwid Menu Item�Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center�Ecwid e-commerce widgets�Ecwid ecommerce solution�Ecwid free shopping cart�Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">More details.</a>�Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up.�Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href="%s">TemplateMonster themes</a>�Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">More details.</a>�Ecwid shopping cart�Ecwid shopping cart widget�Edit�Edit Appearance�Edit Category�Edit Product�Edit Store�Edit URL Slug�Edit page�Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page.�Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space.�Enter your Store ID�Enter your Store ID here:�Extensions for your Store�Feature a specific store category on a separate page of your site.�Feature your products in the sidebar�Filters�Filters panel position�Find your Store ID�First Page�Frequently Asked Questions�Get %s mobile app�Go to Pages�Go to Your %s Products�Greetings!�Greetings! Your %s plugin is now active.�Grid�Grid view�Help�Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars.�Help customers find your store on the website.�Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products.�Here you can create the content that will be used within the module.�Here, we will help you uploading your product catalog to %s from another shopping cart or other sources.�Hide�Highlight products, categories, and other store pages by adding them to separate website pages.�Highlight your best sellers or new products in the website sidebar.�Horizontal indent�Horizontal thumbnails�How can I add a cart widget to my site sidebar?�How can I manage my store from a mobile device?�How can we help you?�How do I add store categories to the site menu?�How do I put my products in the sitemap?�How much does Ecwid cost?�How secure is this plugin? Is my store PCI DSS compliant?�How to add a single product with the add to bag button to the site pages?�How to set up a storefront on Facebook with Ecwid?�I already have an account, sign in�I couldn’t find a WordPress theme that goes well with %s�I found a better plugin�I have a problem using this plugin�I have a problem with my %s store�I use this WordPress theme: %s�Icon�Icon and item count�Icon, label and item count�Icon, label, item count and subtotal�Icon, label, item count, subtotal and link�If you have a moment, please let us know why you are deactivating:�Image and title on mouse over�Image feed�Image gallery layout�Image only�Import�Import Your Products From Woocommerce to %s�Import completed�Import completed. <a href="%s">Run again.</a>�Import creates new products and update the existing products with matching SKUs.�Import is in Progress�Import my products from WooCommerce�Import product catalog from WooCommerce�Import product catalog from other sources�Import products to your %s store�Import summary�Import your WooCommerce catalog to %s�Import your products from WooCommerce to %s�Import your products from Woocommerce to %s�Imported <b>%s</b> products�Importing %s of %s items�Insert�Insert into page�Instant site�Integration with search on your site�Is it possible to display my store on the site home page?�Is there a WordPress theme for Ecwid?�It's a temporary deactivation. Please do not ask me again.�Item count only�Justify�Knowledge Base�L�Label and item count�Landscape 3:2�Landscape 4:3�Last Page�Last update�Latest Products�Layout�Layout:�Learn more�Left�Light green cyan�Link color�Linked product�List�List view�Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL.�Luminous vivid amber�Luminous vivid orange�M�Make your store accessible from the site menu so your customers can easily find it.�Manage Sidebar�Manage Store on iPhone, iPad or Android�Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page.�Manage store�Manage storefront�Marketing�Mobile�My Account�My Profile�My Sales�Name�Navigation�Need help importing your products from WooCommerce to %s?�Never show this message again�Next Page�Next page�No Thanks�No border�Not synchronized yet�Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The "Show on store pages" and "Show when empty" options will apply to the cart widget on site when published�Nothing found for <span class="empty-page__term">"{{ data.term }}"</span>�Number of categories per row�Number of products per page�Number of products to show�On the left�On the right�Online Store�Online Store Apps�Online store�Open control panel�Open store dashboard�Options�Orders�Other�Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target="_blank" href="%s">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans.�Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">our customer support team</a>.�Page with that name already exists.�Pale cyan blue�Pale pink�Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>�Payment�Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers.�Pick Category�Pick Product�Picture�Pill�Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target="_blank">"Billing & Plans"</a></nobr> page in your Ecwid store control panel.�Please subscribe to a paid plan to get this feature.�Plugins for Ecwid�Portrait 2:3�Portrait 3:4�Position�Preview�Previous Page�Price�Price color�Product�Product Card Large�Product Card Small�Product List Appearance�Product Page Appearance�Product SKU�Product Search�Product Search Box�Product Search and filters�Product card text align�Product catalog will be shown automatically�Product page layout�Product price�Product quantity�Product sidebar content�Product thumbnail aspect ratio�Product thumbnail size�Product title�Products�Products are successfully synchronized. The product pages are up to date.�Products synchronized: %1$s out of %2$s�Promote your store�Provide access.�Provided by <a %s>%s</a>�Publish�Publish Store Page�Publish the page to use this option�Published�Quantity�Questions?�Random Product�Random Products�Rate %s at WordPress.org�Re-connect to Enable Control Panel�Recently Viewed Products�Recommendations for Your Online Store�Rectangle�Refresh categories list�Register at %s�Report a problem with the store�Reports�Right�S�SKU�Sales�Sales channels�Save�Save and connect your %s store to the site�Save changes�Search�Search and Filters�Search products�Search the Knowledge Base�See more�Select All�Select category�Selected Product�Selected category�Sell on Facebook�Send Message�Send a message to our support team�Send message failed�Set Up Your Store�Set manually�Set up your store�Settings�Setup�Shipping & Pickup�Shop�Shopping Cart�Shopping Cart (deprecated)�Shopping Cart Floating (deprecated)�Shopping Cart Icon�Shopping Cart Mini (deprecated)�Shopping Cart Widget�Show�Show additional image on hover�Show categories�Show customers that they can use a search and filters to find desired products faster.�Show description under the image�Show minicart�Show on all pages�Show on hover�Show on store pages�Show price inside the "Buy now" button�Show price inside the «Buy now» button�Show product card border�Show product thumbnails�Show search�Show when empty�Show your store on the home page�Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again.�Small icon�Small icon and item count�Some of the items could not be imported.�Sorry we're having technical difficulties.�Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: "The Wordpress function wp_remote_post() failed to connect a remote server because of some error: "%s". Seems like HTTP POST requests are disabled on this server". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>.�Square 1:1�Start Import�Status�Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store.�Still have questions about Ecwid? Let us know!�Store�Store Categories�Store Categories Menu�Store Category Page�Store Front Page�Store Home Page�Store ID�Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the "Dashboard" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration.�Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>.�Store Link Title�Store Navigation�Store Page�Store Page Link�Store Root Categories�Store appearance�Store elements�Store management�Store page content�Store page on your site�Store root category�Store with Categories Menu�Storefront�Subject�Submit & Deactivate�Switch to draft�Synchronize products�Table�Table view�Take a few simple steps to complete store setup�Take advantage of powerful apps and extensions designed to enhance your store.�Text�Text color�Thank you for choosing %s to build your online store�The block is hidden because you don't have categories in your store. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Add categories.</a>�The category that is shown by default on the Store Front Page�The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps.�The plugin doesn't support the feature I want�The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href="%s" target="_blank">adjust the cart icon appearance</a>.�The store is not visible on your site�The store top-level categories are automatically added to this drop-down menu�Themes for Ecwid�This import will copy your WooCommerce products and categories to your %s store.�This is a demo store. Create your store to see your store products here.�This will change the label of the module in the builder for easy identification.�Title�Title on image�Title only�Title or SKU�Title under image�Title:�To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings.�To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>.�To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>�To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the "Add product" dialog.�To create sitemap for your Wordpress site we suggest using <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> or <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target="_blank" href="https://www.ecwid.com/pricing">paid Ecwid users</a>.�To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission.�To enable this feature, the plugin needs a permission to read your store product information.�To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">How to use it.</a>�To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>�To manage your store, go to <a %s>the Store Dashboard page</a>�To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission.�To show your storefront instead of the demo store, connect your existing %s account or create a new one.�To start selling, add a page to your site where the storefront will display.�Top left�Top right�Try another search.�Type in your message here�URL Slug�Update�Update your catalog�Upgrade to get this feature�Vertical indent�Vertical thumbnails�Very dark gray�Very light gray�View Store Page�View demo store page�View store page�Visit storefront�Vivid cyan blue�Vivid green cyan�Vivid red�Want to connect another %s store?�Warning: some of your online store features are disabled. Please contact your hosting provider to resolve.�We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?�We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you.�We're synchronizing your products. This may take a few minutes. Please do not reload the page.�Website�What feature do you need?�What was wrong?�What's next?�While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site.�Wholesale prices�You can add product search box, cart widget and more on the <a href="%s">"Appearance / Widgets page"</a> here in your site admin. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">More details.</a>�You can add the entire storefront, categories, products, or "Buy now" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block.�You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open "Appearance > Menus" in your WordPress control panel and add the "Store with Categories Menu" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site.�You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">More details.</a>�You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel.�You can display your store on the site main page. Adjust the "Reading" settings of your site as described in our <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">Help Center.</a>�You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href="%1$s">Appearance → Customize → %2$s</a>” menu to enable it.�You can enable filters in the store settings: (“<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Settings → Product Filters</a>”).�You can send a new request here.�You have not viewed any product yet. Open store.�You will be able to sign up through your existing Google, Facebook or PayPal profiles as well.�Your %s store has �Your %s store is connected<br /> to your WordPress website�Your %s store is now connected<br /> to your WordPress website�Your Storefront�Your WooCommerce store has �Your email has been sent�Your product�Your store Control Panel. Right here in WordPress.�Your store has been created. Preparing your store dashboard ...�Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar.�Your store is almost ready!�Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display.�Your store page�Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders.�Your store page is published. Customers can browse your store at �Your store will be shown here�Your store will be shown here!�Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data.�[%s] WordPress plugin deactivation feedback (store ID: %s)�customize appearance�gutenberg-product-blockContent�gutenberg-store-block-stubStore�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�or <a %s>Browse the Help Center�product-browser-attributesProduct SKU�product-browser-attributesProduct price�select product�selected product�vc-tabOnline store�«Buy now» button�PO-Revision-Date: 2020-10-12 12:46 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: Poedit 2.4.1 Language: es Project-Id-Version: temporary-strings X-Crowdin-Project: temporary-strings X-Crowdin-Project-ID: 295314 X-Crowdin-Language: es-ES X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po X-Crowdin-File-ID: 988 Language-Team: Spanish Last-Translator: � Elegir otro producto� ¡Muchas gracias por ponerse en contacto con nosotros! Nos pondremos en contacto con usted en breve.�Etiqueta de productos «En existencia»�%s�Blog de %s�Carrito de compras de %s�Tienda de %s�Página de la tienda de %s�El complemento %s no funciona bien con mi tema «%s»�%s producto�%s productos�%s productos y %s categorías�%s productos y categorías�Configuraciones del carrito de compras de %s�%s almacena los datos de sus productos de forma segura en la nube. Las páginas de productos se muestran sobre la marcha cuando un cliente navega por su tienda. Por lo que, básicamente, los productos no se almacenan en el sitio web, por eso la búsqueda en el sitio web no encuentra páginas de productos mientras busca en las páginas del sitio web y en las publicaciones. Esta opción habilita un modo de almacenamiento local: los productos se almacenarán tanto en la nube como en su sitio web. Los resultados de la búsqueda en el sitio web incluirán las páginas de productos, así como las páginas o publicaciones habituales de su sitio web.�%s — Configuración avanzada�(podrá confirmar los cambios antes de la importación definitiva)�2 columnas, imagen a la izquierda�2 columnas, imagen a la derecha�3 columnas, imagen a la izquierda�3 columnas, imagen a la derecha�<a %s>Tienda en línea con tecnología de %s</a>�<a %s>Volver a conectar</a>�<a href="admin.php?page=�<b>%s</b> categorías�Un «slug» es la última parte de una URL. Puede crear un «slug» personalizado para la página de su tienda. Es mejor que sea corto, ya que los clientes y los motores de búsqueda prefieren las URL cortas. Por ejemplo, utilice «/tienda» o «/productos».�Acción requerida: conecte su cuenta de %s�Añadir producto�Añadir tienda�Añadir la página de la tienda al menú�Añadir una página de categoría�Añadir página de productos�Añadir una página de búsqueda y filtros�Añadir una página de tienda�Añadir una tienda en línea a su sitio web�Añadir borde�Añadir carrito y página de pago�Añadir categorías�Añadir la página de la tienda al menú del sitio web�Añadir escaparate virtual (listado de productos)�Añadir al menú�Añada su tienda de %s al sitio web y comience a vender en minutos.�Añada su tienda a otras páginas del sitio web�Añada su escaparate virtual a la página de inicio del sitio web para que sea más notable. También puede modificar la configuración de la página de inicio del sitio web en <a href="%s" target="_blank">Configuración de WordPress > Lectura</a>.�Páginas adicionales de la tienda�Además, puede añadir controles de la tienda a la barra de herramientas de su sitio web mediante <a %s>«widgets» nativos de WordPress</a>.�Añade un «widget» de carrito para que el cliente vea los productos que se han añadido al carrito.�Añade un «widget» de carrito compacto para que el cliente vea los productos que se han añadido al carrito.�Añada un «widget» de carrito de compras en la esquina superior derecha de su sitio web.�Añade la lista de categorías raíz a la barra lateral para que sus clientes puedan desplazarse por la tienda.�Añade un bloque de categorías verticales para permitir que el cliente navegue por su tienda.�Ajuste el diseño de su tienda para que se adapte a las necesidades de su negocio.�Etiqueta de administrador�Avanzado�Configuraciones avanzadas�Después de la importación, su tienda de %s tendrá �Todos los canales de venta�Junto con el catálogo de la tienda, puede añadir otros «widgets» y textos a la página de la tienda.�Apariencia�Aplicaciones�Cantidad disponible en existencia�Regresar a la configuración de la tienda�Color del fondo�Bolsa�Cesta�Antes de que se vaya�Borde�Borde:�Abajo a la izquierda�Abajo a la derecha�Migas de pan�Explorar todos los productos.�Buscar por categoría�Importar en masa productos y categorías a su tienda de %s�Color del botón�Comprar ahora�Botón «Comprar ahora»�Botones de «Comprar ahora»�Al continuar, acepta los <a %s>Términos de servicio</a> y la <a %s>Política de privacidad</a>.�Clase CSS�ID de CSS�¿Podría compartir el nombre del complemento que ha elegido?�¿Podría compartir su opinión? ¿Qué fue lo que pasó?�Cancelar�Carrito�Carrito y pago�Icono del carrito de compras�Icono del carrito:�Catálogo�Categorías�Categoría�Apariencia de la lista de categorías�Diseño de la ficha de categoría�Categoría mostrada por defecto�Relación de aspecto de la miniatura de la categoría�Tamaño de la miniatura de la categoría�Centrado�Centrar la alineación en una página�Cambiar�Cambiar el contenido de la tienda�Elegir producto�Elegir producto�Elija las propiedades del producto para mostrarlas en el «widget»�Elegir la página principal de la tienda�Elija los «widgets» a mostrar�Haga clic en el botón «Conectar» para obtener los permisos para actualizar el catálogo de productos�Configuración de colores�Completar configuración�Complete la configuración y comience a vender�Configuración�¡Enhorabuena!�Conectar�Conecte su tienda�Conecte su tienda de %s�Conecte su tienda�Error de conexión: después de hacer clic en el botón, debe iniciar sesión y otorgar los permisos para poder utilizar nuestro complemento. Inténtelo de nuevo.�Ponerse en contacto con la asistencia�Póngase en contacto con nosotros�Contenido�Copia de productos y categorías.�Crear página del carrito�Crear página de categorías�Crear página de productos�Crear página de búsqueda�Crear tienda�Crear la página de la tienda�Cree una página de aterrizaje con uno de sus productos.�Cree una nueva cuenta de %s que utilizará para gestionar su tienda e inventario. El registro es gratuito.�Cree una nueva tienda o, si ya tiene una cuenta de %s, conéctela. El complemento le guiará a través de la configuración de la tienda y le ayudará a publicarla en su sitio web.�Crear una nueva cuenta�Crear tienda�Página actual�«Slug» actual de la dirección URL: /<span data-ec-store-slug>%s</span>�Inicio de sesión único del cliente�Clientes�Los clientes no pueden ver la página de su tienda porque está en un borrador. Publique la página para que esté disponible para sus clientes.�Los clientes van a la página del carrito para consultar los productos que han añadido al mismo y proceder con el pago.�Personalizar el diseño�Personalizar la apariencia de la tienda�Personalizar la dirección de la página de la tienda�Personalizar «widget»�Personalice la apariencia de su tienda para que se ajuste a las necesidades de su negocio. Cree la apariencia para su tienda que más se parezca a su marca.�Gris cian azulado�Panel�Categoría predeterminada�ID de categoría predeterminada�ID del producto predeterminado�Modo de vista predeterminado en las páginas de productos�Modo de vista predeterminado en los resultados de búsqueda�Productos eliminados sincronizados: %1$s de %2$s�Tienda de demostración�Tienda de demostración�Diseño�Diseño y contenido�Detectar automáticamente�Desconectar tienda�Mostrar un botón de compra�Mostrar migas de pan�Mostrar icono del carrito�Mostrar el menú de categorías�Mostrar la barra de navegación de las categorías�Mostrar la página de categorías�Mostrar el menú del pie de página�Mostrar la página de productos con la descripción y un botón de compra�Mostrar el producto con un botón de compra�Mostrar el cuadro de búsqueda�Mostrar página de búsqueda con los filtros a un lado�Mostrar enlace y resumen de la bolsa de compras�Mostrar el carrito de compras�Mostrar el carrito de compras y la página de pago�Mostrar el enlace de inicio de sesión�Mostrar «ordenar por enlace»�Muestre el icono del carrito de compras en las páginas del sitio web�Producto mostrado�Muestra un enlace a la página de la tienda en la barra lateral para que el cliente acceda rápidamente a su tienda desde cualquier página del sitio web.�Muestra una lista de productos vistos recientemente por el cliente para volver fácilmente a los productos que vieron en su tienda.�Muestra una lista de productos aleatorios.�Muestra un producto aleatorio de su tienda para atraer la atención del cliente.�Muestra un cuadro de búsqueda simple para que sus clientes encuentren un producto en su tienda.�Muestra el escaparate virtual: listado de productos y pago�Muestra los últimos productos añadidos de su tienda. Muestre nuevos productos a los clientes existentes para impulsar las ventas repetidas.�No mostrar�¿Le gusta Ecwid y quiere ayudarlo a crecer? Puede añadir este elegante distintivo «Powered by Ecwid» en su sitio web para mostrarles a sus visitantes que es un usuario orgulloso de Ecwid.�¿Le gusta su tienda de %s en línea? Apreciaríamos si comparte su opinión y vota por el complemento en el sitio de WordPress.�Hecho�Descargar <a href="%s">registro de importación</a>�Descargar archivo de registro�Borrador�Por ejemplo, cómo establecer el envío�Distintivo de Ecwid�Comercio electrónico Ecwid�Carrito de compras del comercio electrónico de Ecwid�Elemento del menú de Ecwid�Ecwid le permite subir sus productos en forma de archivo CSV. Obtenga más información sobre esta herramienta en el centro de asistencia de Ecwid�«Widget» de comercio electrónico de Ecwid�Solución de comercio electrónico de Ecwid�Carrito de compras gratuito de Ecwid�Ecwid cuenta con la certificación PCI DSS Nivel 1, que es el estándar de oro para las soluciones de comercio electrónico en todo el mundo. Esto significa que no tendrá problemas de cumplimiento bancario cuando venda en línea con Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">Más detalles.</a>�Ecwid es un carrito de compras gratuito con todas las funciones. Se puede integrar fácilmente con cualquier blog de Wordpress y se configura en menos de 5 minutos.�Ecwid es compatible con cualquier tema de WordPress. Ya sea un tema gratuito del catálogo de WordPress.org, un tema prémium de un proveedor externo o un tema personalizado; su tienda de Ecwid funcionará bien con cualquiera de ellos. Si desea un tema prémium, le recomendamos <a href="%s">temas de TemplateMonster</a>.�Ecwid ofrece aplicaciones móviles gratuitas para iOS y Android para que pueda gestionar su tienda y vender donde y cuando quiera. Escanee productos, supervise el inventario, gestione las ventas y acepte pagos utilizando su dispositivo móvil como una estación de punto de venta. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">Más detalles.</a>�Carrito de compras de Ecwid�«Widget» de carrito de compras de Ecwid�Editar�Editar apariencia�Editar categoría�Editar producto�Editar tienda�Editar «slug» de la dirección URL�Editar página�Introduzca un ID de CSS opcional que se utilizará para este módulo. Se puede utilizar un ID para crear un estilo CSS personalizado o para crear enlaces a secciones particulares de su página web.�Introduzca las clases CSS opcionales que se utilizarán para este módulo. Se puede utilizar una clase CSS para crear estilos CSS personalizados. Puede añadir varias clases separadas por un espacio.�Introduzca el ID de su tienda�Introduzca el ID de su tienda aquí:�Extensiones para su tienda�Destacar una categoría de la tienda específica en una página separada de su sitio web.�Destaque sus productos en la barra lateral�Filtros�Posición del panel de filtros�Encuentre el ID de su tienda�Primera página�Preguntas frecuentes�Descargue la aplicación móvil de %s�Ir a «Páginas»�Ir a sus productos de %s�¡Saludos!�¡Enhorabuena! Su complemento de %s ya está activo.�Cuadrícula�Vista de cuadrícula�Ayuda�Ayude a los clientes a encontrar su tienda en el sitio web. Añada el enlace de la tienda al menú del sitio web, cree páginas adicionales de la tienda y resalte los productos de la tienda en otras páginas del sitio web y en las barras laterales.�Ayude a los clientes a encontrar su tienda en el sitio web.�Aquí puede gestionar cuántos productos se mostrarán por página. Estas opciones definen valores máximos. Si no hay suficiente espacio para mostrar todas las columnas de productos, %s adaptará el número de columnas para mantener todos los productos.�Aquí puede crear el contenido que se utilizará dentro del módulo.�Aquí, le ayudaremos a subir su catálogo de productos a %s de otro carrito de compras u otras fuentes.�Ocultar�Destaque productos, categorías y otras páginas de la tienda añadiéndolas a páginas del sitio web separadas.�Destaque sus mejores ventas o nuevos productos en la barra lateral del sitio web.�Sangría horizontal�Miniaturas horizontales�¿Cómo puedo añadir un «widget» de carrito de compras a la barra lateral de mi sitio web?�¿Cómo puedo gestionar mi tienda desde un dispositivo móvil?�¿Cómo podemos ayudarle?�¿Cómo puedo añadir categorías de tiendas al menú del sitio web?�¿Cómo pongo mis productos en el mapa del sitio?�¿Cuánto cuesta Ecwid?�¿Qué tan seguro es este complemento? ¿Mi tienda cumple con el PCI DSS?�¿Cómo añadir un solo producto con el botón de «añadir a la bolsa» en las páginas del sitio web?�¿Cómo crear una tienda en Facebook con Ecwid?�Ya tengo una cuenta, iniciar sesión�No pude encontrar un tema de WordPress adecuado para %s�Encontré un mejor complemento�Tengo un problema con el uso de este complemento�Tengo un problema con mi tienda de %s�Utilizo este tema de WordPress: %s�Icono�Icono y total de artículos�Icono, etiqueta y total de artículos�Icono, etiqueta, total de artículos y subtotal�Icono, etiqueta, total de artículos, subtotal y enlace�Si tiene un momento, háganos saber por qué está desactivando:�Imagen y título al pasar el ratón por encima�Canal de imagen�Diseño de la galería de imágenes�Solo imagen�Importar�Importe sus productos de Woocommerce a %s�Importación completada�Importación completada. <a href="%s">Ejecútela de nuevo.</a>�La importación crea nuevos productos y actualiza los productos existentes con las REF correspondientes.�La importación está en progreso�Importar mis productos de WooCommerce�Importar el catálogo de productos de WooCommerce�Importar el catálogo de productos de otras fuentes�Importe los productos a su tienda de %s�Resumen de la importación�Importe su catálogo de WooCommerce a %s�Importe sus productos de WooCommerce a %s�Importe sus productos de Woocommerce a %s�<b>%s</b> productos importados�Importando %s de %s artículos�Insertar�Insertar en la página�Sitio web instantáneo�Integración con la búsqueda en su sitio web�¿Es posible mostrar mi tienda en la página de inicio del sitio web?�¿Existe algún tema de WordPress para Ecwid?�Es una desactivación temporal. No preguntarme de nuevo.�Solo el total de artículos�Justificado�Base de conocimiento�G�Etiqueta y y total de artículos�Horizontal 3:2�Horizontal 4:3�Última página�Última actualización�Últimos productos�Diseño�Diseño:�Más información�Izquierda�Cian verde claro�Color del enlace�Producto vinculado�Lista�Vista de lista�Parece que su sitio web no admite solicitudes POST remotas, las cuales son necesarias para que la API de %s funcione. Comuníquese con su proveedor de alojamiento web para habilitar cURL.�Ámbar vívido y brillante�Naranja vívido y brillante�M�Haga que su tienda sea accesible desde el menú del sitio web para que sus clientes puedan encontrarla fácilmente.�Gestionar la barra lateral�Gestione la tienda desde iPhone, iPad o Android�Gestione productos, supervise las ventas y ajuste la configuración: <nobr>todo sin</nobr> salir de esta página.�Gestionar la tienda�Gestionar escaparate virtual�Mercadotecnia�Móvil�Mi cuenta�Mi perfil�Mis ventas�Nombre�Navegación�¿Necesita ayuda para importar sus productos de WooCommerce a %s?�Nunca mostrar este mensaje otra vez�Página siguiente�Página siguiente�No, gracias�Sin borde�No se ha sincronizado todavía�Nota: cuando está habilitado, el «widget» del carrito siempre se mostrará en la vista previa para que sea más fácil personalizarlo. Las opciones «Mostrar en las páginas de la tienda» y «Mostrar cuando esté vacío» se aplicarán al «widget» del carrito en el sitio cuando se publiquen�No se ha encontrado nada en relación con <span class="empty-page__term">«{{ data.term }}»</span>�Número de categorías por fila�Número de productos por página�Número de productos para mostrar�A la izquierda�A la derecha�Tienda en línea�Aplicaciones de la tienda en línea�Tienda en línea�Abrir el panel de control�Abrir el panel de la tienda�Opciones�Pedidos�Otro�Nuestros 4 tipos de cuentas varían según la cantidad de productos, los tipos de funcionalidades y el nivel de asistencia. Para obtener más información, consulte nuestra <a target="_blank" href="%s">página de precios.</a><br /><br />Consejo profesional: también puede ahorrar dinero si se suscribe a nuestros planes anuales.�Nuestro equipo ya está trabajando en este asunto. Actualice la página en unos minutos. Si el problema persiste, comuníquese con <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">nuestro equipo de atención al cliente</a>.�Ya existe una página con ese nombre.�Azul cian pálido�Rosa pálido�Parte de los productos no se han copiado a %1$s porque alcanzó el límite de productos en su plan de precios en %1$s. Si desea importar más productos, considere <nobr><a %2$s>actualizar su plan de %1$s.</a></nobr>�Pago�Personalice la apariencia de su escaparate virtual y edite el contenido en la página de la tienda para reflejar su marca y mantenerse conectado con sus clientes.�Elegir una categoría�Elegir un producto�Imagen�Píldora�Tenga en cuenta el número máximo de productos y categorías que puede tener en su tienda de Ecwid. Esta herramienta de importación se detendrá automáticamente cuando se alcance el límite de productos de la tienda. Para conocer el límite actual de la tienda o aumentarlo, consulte la página <nobr><a %s target="_blank">«Facturación y planes»</a></nobr> ubicada en el panel de su tienda de Ecwid.�Suscríbase a un plan de pago para obtener esta función.�Complementos para Ecwid�Vertical 2:3�Vertical 3:4�Posición�Vista previa�Página anterior�Precio�Color del precio�Producto�Ficha de producto ampliada�Ficha de producto reducida�Apariencia de la lista de productos�Apariencia de la página del producto�REF del producto�Búsqueda de productos�Cuadro de búsqueda de productos�Búsqueda de productos y filtros�El texto de la ficha del producto se alinea�El catálogo de productos se mostrará automáticamente�Diseño de la página de productos�Precio del producto�Cantidad de productos�Contenido de la barra lateral de productos�Relación de aspecto de la miniatura del producto�Tamaño de la miniatura del producto�Título del producto�Productos�Los productos se sincronizaron satisfactoriamente. Las páginas de productos están actualizadas.�Productos eliminados sincronizados: %1$s de %2$s�Promocione su tienda�Otorgar acceso.�Proporcionado por <a %s>%s</a>�Publicar�Publicar la página de la tienda�Publique la página para poder utilizar esta opción�Publicada�Cantidad�¿Tiene alguna pregunta?�Producto aleatorio�Productos aleatorios�Tasa de %s en WordPress.org�Vuélvase a conectar para activar el panel de control�Productos vistos recientemente�Recomendaciones para su tienda en línea�Rectángulo�Actualizar la lista de categorías�Registrarse en %s�Informar un problema con la tienda�Informes�Derecha�P�REF�Ventas�Canales de venta�Guardar�Guarde y conecte su tienda de %s al sitio web�Guardar cambios�Buscar�Búsqueda y filtros�Buscar productos�Buscar en la base de conocimientos�Ver más�Seleccionar todo�Seleccionar categoría�Producto seleccionado�Categoría seleccionada�Vender en Facebook�Enviar mensaje�Envíe un mensaje a nuestro equipo de asistencia�Ocurrió un error al enviar el mensaje�Configure su tienda�Configurar manualmente�Configure su tienda�Configuraciones�Configuración�Envío y recogida�Tienda�Carrito de compras�Carrito de compras (descontinuado)�Carrito de compras flotante (descontinuado)�Icono del carrito de compras�Carrito de compras en miniatura (descontinuado)�«Widget» del carrito de compras�Mostrar�Mostrar imagen adicional al pasar el ratón�Mostrar categorías�Muéstreles a los clientes que pueden utilizar la búsqueda y los filtros para encontrar los productos que deseen de forma más rápida.�Mostrar descripción debajo de la imagen�Mostrar minicarrito�Mostrar en todas las páginas�Mostrar al pasar el ratón�Mostrar en las páginas de la tienda�Mostrar el precio dentro del botón de «Comprar ahora»�Mostrar el precio dentro del botón de «Comprar ahora»�Mostrar el borde de la ficha del producto�Mostrar miniaturas de los productos�Mostrar búsqueda�Mostrar cuando esté vacío�Muestre su tienda en la página de inicio�El inicio de sesión único les permite a sus clientes tener un inicio de sesión único para su sitio web de WordPress y su %s. Cuando alguien inicie sesión en su sitio web, también iniciará sesión automáticamente en su cuenta de cliente en la tienda sin necesidad de introducir su correo electrónico y contraseña nuevamente.�Icono pequeño�Icono pequeño y total de artículos�Algunos de los artículos no se pudieron importar.�Le pido disculpas por las dificultades técnicas que estamos experimentando.�Lo siento, hay un problema. Se supone que esta página muestra el panel de control de su tienda; sin embargo, este sitio web de Wordpress no parece poder conectarse al servidor de Ecwid para mostrar el panel de su tienda aquí. Es probable que esto se deba a una mala configuración del servidor; su proveedor de alojamiento web puede solucionarlo. Aquí hay una descripción más técnica del problema, la cual puede enviarle a su proveedor de alojamiento web: «La función de Wordpress wp_remote_post() no pudo conectarse a un servidor remoto debido al error: “%s”; parece que las solicitudes HTTP POST están inhabilitadas en este servidor». <br /><br />No dude en ponerse en contacto con nosotros en <a %s>wordpress@ecwid.com</a> y le ayudaremos a comunicarse con su proveedor de alojamiento web para pedirle que solucione el problema. <br /><br /> Mientras tanto, para gestionar su tienda, puede utilizar el panel de control web de Ecwid en <a %s>my.ecwid.com</a>. Su escaparate virtual está funcionando bien; puede echarle un vistazo aquí: <a %s>%s</a>.�Cuadrado 1:1�Iniciar la importación�Estado�Manténgase conectado con sus clientes. Actualice el contenido de su tienda en cualquier momento para informarles a los clientes sobre las promociones actuales y las novedades de su tienda.�¿Todavía tiene preguntas acerca de Ecwid? ¡Háganoslo saber!�Tienda�Categorías de la tienda�Menú de categorías de la tienda�Página de categorías de la tienda�Página del escaparate virtual�Página de inicio de la tienda�ID de la tienda�El ID de la tienda es un identificador único de cualquier tienda de %1$s, el cual consta de varios dígitos. Puede encontrarlo en la página «Panel» del panel de control de %1$s. El ID de la tienda se enviará en el correo electrónico de bienvenida después del registro.�El ID de la tienda es un identificador único de su cuenta de %1$s. Puede encontrarlo en su panel de control de %1$s en la <a %2$s>página del panel</a>.�Título del enlace de la tienda�Navegación en la tienda�Página de la tienda�Enlace a la página de la tienda�Categorías raíz de la tienda�Apariencia de la tienda�Elementos de la tienda�Gestión de la tienda�Contenido de la página de la tienda�Página de la tienda en su sitio web�Categoría raíz de la tienda�Tienda con menú de categorías�Escaparate virtual�Asunto�Enviar y desactivar�Cambiar al borrador�Sincronizar productos�Tabla�Vista de tabla�Siga unos sencillos pasos para completar la configuración de la tienda�Aproveche las increíbles aplicaciones y extensiones diseñadas para mejorar su tienda.�Texto�Color del texto�Gracias por elegir %s para construir su tienda en línea�El bloque está oculto porque no tiene categorías en su tienda. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Añadir categorías.</a>�La categoría que se muestra de forma predeterminada en la página del escaparate virtual�El primer paso para abrir su negocio en línea: <br />añadamos una tienda a su sitio web de WordPress en <strong>3</strong> simples pasos.�El complemento no es compatible con la función que quiero�El icono del carrito de compras muestra la cantidad de artículos en el carrito y ayuda a los clientes a realizar el pago. Además, puede <a href="%s" target="_blank">ajustar la apariencia del icono del carrito</a>.�La tienda no es visible en su sitio web�Las categorías de alto nivel de la tienda se añaden automáticamente a este menú desplegable�Temas para Ecwid�Esta importación copiará sus productos y categorías de WooCommerce a su tienda de %s.�Esto es una tienda de demostración. Cree su tienda para ver los productos de su tienda aquí.�Esto cambiará la etiqueta del módulo en el creador para una fácil identificación.�Título�Título en la imagen�Solo título�Título o REF�Título debajo de la imagen�Título:�Para añadir funciones adicionales a su tienda, arrastre y suelte los elementos de la tienda de %s en su sitio web. Una vez que haya terminado, puede volver a modificar su configuración.�Para añadir su tienda a su sitio web, introduzca el ID de su tienda de %1$s en el campo a continuación. Si aún no tiene una cuenta de %1$s, cree una gratis en el <a %2$s>sitio web de %1$s</a>.�Para permitir que %s inicie la sesión de sus clientes automáticamente en su tienda, otorgue los permisos para utilizar los datos del cliente en la tienda. <a %s>Utilice este enlace para hacerlo</a>�A fin de poder elegir un producto para insertarlo en sus publicaciones y páginas, deberá volver a conectar su sitio a su tienda de %s. Esto solo requerirá que acepte la solicitud de permisos para que el complemento pueda listar sus productos en el cuadro de diálogo «Añadir producto».�Para crear un «Mapa del sitio» para su sitio web de Wordpress, le sugerimos que utilice los  complementos <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> o <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>. Estos complementos son totalmente compatibles con Ecwid y permiten generar un mapa del sitio que contiene enlaces a categorías y páginas de productos, por lo que las páginas de la tienda se indexarán más rápido. Tenga en cuenta que esta opción solo está disponible para los <a target="_blank" href="https://www.ecwid.com/pricing">usuarios de pago de Ecwid</a>.�Para mostrar su tienda en este sitio web, debe permitir que WordPress acceda a sus productos de %1$s. Pulse «Conectar» para otorgar el permiso.�Para habilitar esta función, el complemento necesita un permiso para leer la información del producto de su tienda.�Para mostrar un solo producto en una página aparte o en una entrada de blog de su sitio web, utilice el código corto <b>[ecwid_product]</b>. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">Cómo utilizarlo</a>�Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para mejorar la apariencia de su tienda y poder gestionar la apariencia de su escaparate virtual desde aquí, habilite la opción «Apariencia de próxima generación de la lista de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para asegurarse de que su cliente puede acceder realmente a su sitio web y a la tienda, habilite el registro en las <a %s>configuraciones del sitio web</a>�Para gestionar su tienda, vaya a la <a %s>página del «Panel de su tienda»</a>�Para vender utilizando %1$s, debe permitir que WordPress acceda al complemento %1$s. El botón «Conectar» lo redirigirá a su cuenta de %1$s donde puede otorgar el permiso.�Para mostrar su escaparate virtual en lugar de la tienda de demostración, conecte su cuenta de %s existente o cree una nueva.�Para comenzar a vender, añada una página a su sitio web donde se muestre el escaparate virtual.�Arriba a la izquierda�Arriba a la derecha�Intente otra búsqueda.�Escriba su mensaje aquí�«Slug» de la dirección URL�Actualizar�Actualice su catálogo�Actualice para obtener esta función�Sangría vertical�Miniaturas verticales�Gris oscuro�Gris claro�Ver la página de la tienda�Ver la página de la tienda de demostración�Ver la página de la tienda�Visitar escaparate virtual�Azul cian vívido�Cian verde vívido�Rojo vívido�¿Desea conectar otra tienda de %s?�Advertencia: algunas de las funciones de su tienda en línea están inhabilitadas. Póngase en contacto con su proveedor de alojamiento web para resolverlo.�Notamos que tiene un WooCommerce instalado. Su tienda de WooCommerce tiene %1$s productos y %2$s categorías; ¿le gustaría importarlos a %3$s?�Notamos que tiene WooCommerce instalado. Si desea copiar fácilmente sus productos de WooCommerce a %s, esta herramienta le ayudará.�Estamos sincronizando sus productos. Esto puede tardar unos minutos. No actualice la página.�Sitio web�¿Qué función necesita?�¿Qué fue lo que pasó?�¿Qué sigue?�Mientras su tienda aún no esté conectada, se mostrará una tienda de demostración en su sitio web. Échele un vistazo para tener una idea de cómo se verá su tienda en el sitio web.�Precios al por mayor�Puede añadir un cuadro de búsqueda de productos, un «widget» de carrito y más desde la <a href="%s">«Página de apariencia y widgets»</a> que se encuentra aquí en el administrador de su sitio web. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">Más detalles.</a>�Puede añadir todo el escaparate virtual, las categorías, los productos o los botones de «Comprar ahora» a otras páginas de su sitio web. Para ello, abra una página en el editor y añada un bloque %s apropiado.�Puede añadir el menú de categorías de la tienda al menú de su sitio web para ayudar a sus clientes a navegar fácilmente por su sitio web. Simplemente abra «Apariencia > Menús» en el panel de WordPress y añada el elemento «Tienda con menú de categorías» al menú de su sitio web. Aparecerá automáticamente un menú desplegable que contendrá las categorías de su tienda en su sitio web.�Puede añadir su tienda en línea a su página empresarial de Facebook (no se necesitan complementos). Ecwid sincronizará automáticamente los productos, clientes, pedidos e inventario entre su tienda en línea de WordPress y Facebook. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">Más detalles.</a>�Puede gestionar la apariencia de su tienda en la <a %s>página de «Configuración del diseño»</a> ubicada en el panel de control de su tienda.�Puede mostrar su tienda en la página principal del sitio web. Ajuste la configuración de «Lectura» de su sitio web como se describe en nuestro <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">centro de asistencia.</a>�Puede habilitar un «widget» adicional del icono de la bolsa de compras que aparecerá en las páginas de su sitio web. Abra el menú «<a href="%1$s">Apariencia → Personalizar → %2$s</a>» para habilitarlo.�Puede habilitar los filtros en la configuración de la tienda: («<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Configuración → Filtros para los productos</a>»).�Puede enviar una nueva solicitud aquí.�Aún no ha visto ningún producto. Abra la tienda.�También podrá registrarse a través de sus perfiles existentes de Google, Facebook o PayPal.�Su tienda de %s tiene �Su tienda de %s está conectada<br /> a su sitio web de WordPress�Su tienda de %s ahora está conectada<br /> a su sitio web de WordPress�Su escaparate virtual�Su tienda de WooCommerce tiene �Se ha enviado su correo electrónico�Su producto�Panel de control de su tienda. Aquí mismo en WordPress.�Se ha creado su tienda. Preparando el panel de su tienda...�Su tienda se añade a varias páginas del sitio web. Elija la página principal. Los clientes son redirigidos a la página principal de la tienda cuando hacen clic en el icono del carrito, en los enlaces de la tienda ubicados en el menú del sitio web o en los productos que se encuentran en la barra lateral.�¡Su tienda ya está casi lista!�Su tienda no se añade a ninguna página de su sitio web. Para que los clientes puedan navegar por su tienda y realizar pedidos, cree una página donde se mostrará la tienda.�La página de su tienda�La página de su tienda está actualmente en un borrador. Una vez que esté lista, publíquela para que los clientes puedan visitar la tienda y realizar pedidos.�La página de su tienda está publicada. Los clientes pueden visitar su tienda en �Su tienda se mostrará aquí�¡Su tienda se mostrará aquí!�Su escaparate virtual (listado de productos y página de pago) está funcionando bien, pero las funciones avanzadas de la tienda, como el SEO y los «widgets» de la barra lateral, están inhabilitadas. Para habilitarlas y asegurarse de que su tienda funcione correctamente, pulse el botón de abajo para conectar su cuenta de %s. Esto tomará menos de un minuto; solo se le pedirá que inicie sesión en su cuenta y permita que este sitio web obtenga los datos de su tienda.�[%s] Comentarios sobre la desactivación del complemento de WordPress (ID de la tienda: %s)�personalizar apariencia�Contenido�Tienda�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�o <a %s>consulte el centro de asistencia�REF del producto�Precio del producto�seleccionar producto�producto seleccionado�Tienda en línea�Botón de «Comprar ahora»���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/languages/ecwid-shopping-cart-es_PR.po������������������������������������������0000644�����������������00000326062�15122273603�0017610 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Translation of Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) in German # This file is distributed under the same license as the Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) package. msgid "" msgstr "" "PO-Revision-Date: 2020-10-12 12:46\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: GlotPress/3.0.0-alpha.2\n" "Language: es\n" "Project-Id-Version: temporary-strings\n" "X-Crowdin-Project: temporary-strings\n" "X-Crowdin-Project-ID: 295314\n" "X-Crowdin-Language: es-ES\n" "X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po\n" "X-Crowdin-File-ID: 988\n" "Language-Team: Spanish\n" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:92 msgid "You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel." msgstr "Puede gestionar la apariencia de su tienda en la <a %s>página de «Configuración del diseño»</a> ubicada en el panel de control de su tienda." #: includes/integrations/elementor/class-ec-elementor-widget-store.php:55 msgid "To manage your store, go to <a %s>the Store Dashboard page</a>" msgstr "Para gestionar su tienda, vaya a la <a %s>página del «Panel de su tienda»</a>" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:39 msgid "The category that is shown by default on the Store Front Page" msgstr "La categoría que se muestra de forma predeterminada en la página del escaparate virtual" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:38 msgid "Default category" msgstr "Categoría predeterminada" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:29 msgid "Online Store" msgstr "Tienda en línea" #: includes/class-ecwid-stub-renderer.php:38 msgid "Buy Now" msgstr "Comprar ahora" #: templates/admin/welcome-terms-privacy.php:5 msgid "By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>." msgstr "Al continuar, acepta los <a %s>Términos de servicio</a> y la <a %s>Política de privacidad</a>." #: js/gutenberg/blocks.build.js:1 msgid "Display shopping cart and checkout page" msgstr "Mostrar el carrito de compras y la página de pago" #: js/gutenberg/blocks.build.js:1 msgid "Cart and Checkout" msgstr "Carrito y pago" #: js/gutenberg/blocks.build.js:1 msgid "Filters" msgstr "Filtros" #: js/gutenberg/blocks.build.js:1 msgid "You can enable filters in the store settings: (“<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Settings → Product Filters</a>”)." msgstr "Puede habilitar los filtros en la configuración de la tienda: («<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Configuración → Filtros para los productos</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Search and Filters" msgstr "Búsqueda y filtros" #: js/gutenberg/blocks.build.js:1 msgid "Display search page with filters on a side" msgstr "Mostrar página de búsqueda con los filtros a un lado" #: js/gutenberg/blocks.build.js:1 msgid "Product Search and filters" msgstr "Búsqueda de productos y filtros" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Display product page with description and a buy button" msgstr "Mostrar la página de productos con la descripción y un botón de compra" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Large" msgstr "Ficha de producto ampliada" #: js/gutenberg/blocks.build.js:1 msgid "Selected category" msgstr "Categoría seleccionada" #: js/gutenberg/blocks.build.js:1 msgid "Select category" msgstr "Seleccionar categoría" #: js/gutenberg/blocks.build.js:1 msgid "Add categories" msgstr "Añadir categorías" #: js/gutenberg/blocks.build.js:1 msgid "Display category page" msgstr "Mostrar la página de categorías" #: js/gutenberg/blocks.build.js:1 msgid "Store Category Page" msgstr "Página de categorías de la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Display shopping bag link and summary" msgstr "Mostrar enlace y resumen de la bolsa de compras" #: js/gutenberg/blocks.build.js:1 msgid "Shopping Cart Icon" msgstr "Icono del carrito de compras" #: js/gutenberg/blocks.build.js:1 msgid "The block is hidden because you don't have categories in your store. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Add categories.</a>" msgstr "El bloque está oculto porque no tiene categorías en su tienda. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Añadir categorías.</a>" #: js/gutenberg/blocks.build.js:1 msgid "Categories" msgstr "Categorías" #: js/gutenberg/blocks.build.js:1 msgid "Display categories navigation bar" msgstr "Mostrar la barra de navegación de las categorías" #: js/gutenberg/blocks.build.js:1 msgid "Store Categories Menu" msgstr "Menú de categorías de la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Product Search Box" msgstr "Cuadro de búsqueda de productos" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:25 #: js/gutenberg/blocks.build.js:1 msgid "Linked product" msgstr "Producto vinculado" #: js/gutenberg/blocks.build.js:1 msgid "Display a buy button" msgstr "Mostrar un botón de compra" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:10 #: js/gutenberg/blocks.build.js:1 msgid "Buy Now Button" msgstr "Botón «Comprar ahora»" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:52 #: js/gutenberg/blocks.build.js:1 msgid "Show price inside the «Buy now» button" msgstr "Mostrar el precio dentro del botón de «Comprar ahora»" #: js/gutenberg/blocks.build.js:1 msgctxt "gutenberg-product-block" msgid "Content" msgstr "Contenido" #: js/gutenberg/blocks.build.js:1 msgid "Change" msgstr "Cambiar" #: js/gutenberg/blocks.build.js:1 msgid "Displayed product" msgstr "Producto mostrado" #: js/gutenberg/blocks.build.js:1 msgid "Display product with a buy button" msgstr "Mostrar el producto con un botón de compra" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Small" msgstr "Ficha de producto reducida" #: js/gutenberg/blocks.build.js:1 msgid "Very dark gray" msgstr "Gris oscuro" #: js/gutenberg/blocks.build.js:1 msgid "Cyan bluish gray" msgstr "Gris cian azulado" #: js/gutenberg/blocks.build.js:1 msgid "Very light gray" msgstr "Gris claro" #: js/gutenberg/blocks.build.js:1 msgid "Vivid cyan blue" msgstr "Azul cian vívido" #: js/gutenberg/blocks.build.js:1 msgid "Pale cyan blue" msgstr "Azul cian pálido" #: js/gutenberg/blocks.build.js:1 msgid "Vivid green cyan" msgstr "Cian verde vívido" #: js/gutenberg/blocks.build.js:1 msgid "Light green cyan" msgstr "Cian verde claro" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid amber" msgstr "Ámbar vívido y brillante" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid orange" msgstr "Naranja vívido y brillante" #: js/gutenberg/blocks.build.js:1 msgid "Vivid red" msgstr "Rojo vívido" #: js/gutenberg/blocks.build.js:1 msgid "Pale pink" msgstr "Rosa pálido" #: js/gutenberg/blocks.build.js:1 msgid "Set manually" msgstr "Configurar manualmente" #: js/gutenberg/blocks.build.js:1 msgid "Detect automatically" msgstr "Detectar automáticamente" #: js/gutenberg/blocks.build.js:1 msgid "Color settings" msgstr "Configuración de colores" #: js/gutenberg/blocks.build.js:1 msgid "Store Navigation" msgstr "Navegación en la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Store Front Page" msgstr "Página del escaparate virtual" #: js/gutenberg/blocks.build.js:1 msgid "Product sidebar content" msgstr "Contenido de la barra lateral de productos" #: js/gutenberg/blocks.build.js:1 msgid "Product Page Appearance" msgstr "Apariencia de la página del producto" #: js/gutenberg/blocks.build.js:1 msgid "Product List Appearance" msgstr "Apariencia de la lista de productos" #: js/gutenberg/blocks.build.js:1 msgid "Category List Appearance" msgstr "Apariencia de la lista de categorías" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Display cart icon" msgstr "Mostrar icono del carrito" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Para mejorar la apariencia de su tienda y poder gestionar la apariencia de su escaparate virtual desde aquí, habilite la opción «Apariencia de próxima generación de la lista de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Add storefront (product listing)" msgstr "Añadir escaparate virtual (listado de productos)" #: templates/admin/storefront/main.php:21 msgid "Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers." msgstr "Los clientes no pueden ver la página de su tienda porque está en un borrador. Publique la página para que esté disponible para sus clientes." #: templates/admin/storefront/main.php:20 msgid "The store is not visible on your site" msgstr "La tienda no es visible en su sitio web" #: templates/admin/storefront/main.php:4 msgid "Your Storefront" msgstr "Su escaparate virtual" #: templates/admin/storefront/area-promo.php:30 msgid "Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars." msgstr "Ayude a los clientes a encontrar su tienda en el sitio web. Añada el enlace de la tienda al menú del sitio web, cree páginas adicionales de la tienda y resalte los productos de la tienda en otras páginas del sitio web y en las barras laterales." #: templates/admin/storefront/area-promo.php:29 msgid "Promote your store" msgstr "Promocione su tienda" #: templates/admin/storefront/area-promo.php:26 msgid "Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store." msgstr "Manténgase conectado con sus clientes. Actualice el contenido de su tienda en cualquier momento para informarles a los clientes sobre las promociones actuales y las novedades de su tienda." #: templates/admin/storefront/area-promo.php:25 msgid "Change store content" msgstr "Cambiar el contenido de la tienda" #: templates/admin/storefront/area-promo.php:22 msgid "Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand." msgstr "Personalice la apariencia de su tienda para que se ajuste a las necesidades de su negocio. Cree la apariencia para su tienda que más se parezca a su marca." #: templates/admin/storefront/area-promo.php:21 msgid "Customize store appearance" msgstr "Personalizar la apariencia de la tienda" #: templates/admin/storefront/area-promo.php:7 msgid "Add your %s store to the website and start selling in minutes." msgstr "Añada su tienda de %s al sitio web y comience a vender en minutos." #: templates/admin/storefront/area-promo.php:3 msgid "What's next?" msgstr "¿Qué sigue?" #: templates/admin/storefront/area-additional.php:224 msgid "Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar." msgstr "Su tienda se añade a varias páginas del sitio web. Elija la página principal. Los clientes son redirigidos a la página principal de la tienda cuando hacen clic en el icono del carrito, en los enlaces de la tienda ubicados en el menú del sitio web o en los productos que se encuentran en la barra lateral." #: templates/admin/storefront/area-additional.php:222 msgid "Choose the main store page" msgstr "Elegir la página principal de la tienda" #: templates/admin/storefront/area-additional.php:200 msgid "Go to Pages" msgstr "Ir a «Páginas»" #: templates/admin/storefront/area-additional.php:193 msgid "You can add the entire storefront, categories, products, or \"Buy now\" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block." msgstr "Puede añadir todo el escaparate virtual, las categorías, los productos o los botones de «Comprar ahora» a otras páginas de su sitio web. Para ello, abra una página en el editor y añada un bloque %s apropiado." #: templates/admin/storefront/area-additional.php:189 msgid "Add your store to other site pages" msgstr "Añada su tienda a otras páginas del sitio web" #: templates/admin/storefront/area-additional.php:166 msgid "Create Product Page" msgstr "Crear página de productos" #: templates/admin/storefront/area-additional.php:150 msgid "Pick Product" msgstr "Elegir un producto" #: templates/admin/storefront/area-additional.php:136 #: templates/admin/storefront/area-additional.php:138 msgid "Create a landing page featuring one of your products." msgstr "Cree una página de aterrizaje con uno de sus productos." #: templates/admin/storefront/area-additional.php:132 msgid "Add a product page" msgstr "Añadir página de productos" #: templates/admin/storefront/area-additional.php:109 msgid "Create Category Page" msgstr "Crear página de categorías" #: templates/admin/storefront/area-additional.php:93 msgid "Pick Category" msgstr "Elegir una categoría" #: templates/admin/storefront/area-additional.php:79 #: templates/admin/storefront/area-additional.php:81 msgid "Feature a specific store category on a separate page of your site." msgstr "Destacar una categoría de la tienda específica en una página separada de su sitio web." #: templates/admin/storefront/area-additional.php:75 msgid "Add a category page" msgstr "Añadir una página de categoría" #: templates/admin/storefront/area-additional.php:54 msgid "Create Search Page" msgstr "Crear página de búsqueda" #: templates/admin/storefront/area-additional.php:50 msgid "Show customers that they can use a search and filters to find desired products faster." msgstr "Muéstreles a los clientes que pueden utilizar la búsqueda y los filtros para encontrar los productos que deseen de forma más rápida." #: templates/admin/storefront/area-additional.php:48 msgid "Add a search and filters page" msgstr "Añadir una página de búsqueda y filtros" #: templates/admin/storefront/area-additional.php:27 msgid "Create Cart Page" msgstr "Crear página del carrito" #: templates/admin/storefront/area-additional.php:23 msgid "Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout." msgstr "Los clientes van a la página del carrito para consultar los productos que han añadido al mismo y proceder con el pago." #: templates/admin/storefront/area-additional.php:21 msgid "Add cart and checkout page" msgstr "Añadir carrito y página de pago" #: templates/admin/storefront/area-additional.php:4 msgid "Highlight products, categories, and other store pages by adding them to separate website pages." msgstr "Destaque productos, categorías y otras páginas de la tienda añadiéndolas a páginas del sitio web separadas." #: templates/admin/storefront/area-additional.php:3 msgid "Additional store pages" msgstr "Páginas adicionales de la tienda" #: templates/admin/storefront/draft-message.php:2 msgid "Publish the page to use this option" msgstr "Publique la página para poder utilizar esta opción" #: templates/admin/storefront/area-design.php:55 msgid "Along with the store catalog, you can add other widgets and texts to the store page." msgstr "Junto con el catálogo de la tienda, puede añadir otros «widgets» y textos a la página de la tienda." #: templates/admin/storefront/area-design.php:54 msgid "Store page content" msgstr "Contenido de la página de la tienda" #: templates/admin/storefront/area-design.php:25 #: templates/admin/storefront/area-design.php:27 msgid "Adjust your store design to fit your business needs." msgstr "Ajuste el diseño de su tienda para que se adapte a las necesidades de su negocio." #: templates/admin/storefront/area-design.php:21 msgid "Store appearance" msgstr "Apariencia de la tienda" #: templates/admin/storefront/area-design.php:4 msgid "Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers." msgstr "Personalice la apariencia de su escaparate virtual y edite el contenido en la página de la tienda para reflejar su marca y mantenerse conectado con sus clientes." #: templates/admin/storefront/area-design.php:3 msgid "Design and content" msgstr "Diseño y contenido" #: templates/admin/storefront/area-status.php:124 msgid "Create Store Page" msgstr "Crear la página de la tienda" #: templates/admin/storefront/area-status.php:121 msgid "Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display." msgstr "Su tienda no se añade a ninguna página de su sitio web. Para que los clientes puedan navegar por su tienda y realizar pedidos, cree una página donde se mostrará la tienda." #: templates/admin/storefront/area-status.php:115 msgid "Set Up Your Store" msgstr "Configure su tienda" #: templates/admin/storefront/area-status.php:109 msgid "To show your storefront instead of the demo store, connect your existing %s account or create a new one." msgstr "Para mostrar su escaparate virtual en lugar de la tienda de demostración, conecte su cuenta de %s existente o cree una nueva." #: templates/admin/storefront/area-status.php:101 msgid "Publish Store Page" msgstr "Publicar la página de la tienda" #: templates/admin/storefront/area-status.php:98 msgid "Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders." msgstr "La página de su tienda está actualmente en un borrador. Una vez que esté lista, publíquela para que los clientes puedan visitar la tienda y realizar pedidos." #: templates/admin/storefront/area-status.php:92 msgid "View Store Page" msgstr "Ver la página de la tienda" #: templates/admin/storefront/area-status.php:86 msgid "Your store page is published. Customers can browse your store at " msgstr "La página de su tienda está publicada. Los clientes pueden visitar su tienda en " #: templates/admin/storefront/area-status.php:77 msgid "View demo store page" msgstr "Ver la página de la tienda de demostración" #: templates/admin/storefront/area-status.php:46 msgid "Draft" msgstr "Borrador" #: templates/admin/storefront/area-status.php:45 msgid "Published" msgstr "Publicada" #: templates/admin/storefront/area-status.php:33 #: templates/admin/storefront/area-status.php:36 msgid "Status" msgstr "Estado" #: templates/admin/storefront/area-status.php:29 msgid "Add a store page" msgstr "Añadir una página de tienda" #: templates/admin/storefront/area-status.php:24 msgid "Connect your %s store" msgstr "Conecte su tienda de %s" #: templates/admin/storefront/area-status.php:21 msgid "Your store page" msgstr "La página de su tienda" #: templates/admin/storefront/area-status.php:10 msgid "To start selling, add a page to your site where the storefront will display." msgstr "Para comenzar a vender, añada una página a su sitio web donde se muestre el escaparate virtual." #: templates/admin/storefront/area-status.php:7 msgid "While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site." msgstr "Mientras su tienda aún no esté conectada, se mostrará una tienda de demostración en su sitio web. Échele un vistazo para tener una idea de cómo se verá su tienda en el sitio web." #: templates/admin/storefront/area-status.php:4 msgid "Store page on your site" msgstr "Página de la tienda en su sitio web" #: templates/admin/storefront/area-navigation.php:205 msgid "The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href=\"%s\" target=\"_blank\">adjust the cart icon appearance</a>." msgstr "El icono del carrito de compras muestra la cantidad de artículos en el carrito y ayuda a los clientes a realizar el pago. Además, puede <a href=\"%s\" target=\"_blank\">ajustar la apariencia del icono del carrito</a>." #: templates/admin/storefront/area-navigation.php:201 msgid "Display the shopping cart icon on site pages" msgstr "Muestre el icono del carrito de compras en las páginas del sitio web" #: templates/admin/storefront/area-navigation.php:179 msgid "Manage Sidebar" msgstr "Gestionar la barra lateral" #: templates/admin/storefront/area-navigation.php:175 msgid "Highlight your best sellers or new products in the website sidebar." msgstr "Destaque sus mejores ventas o nuevos productos en la barra lateral del sitio web." #: templates/admin/storefront/area-navigation.php:173 msgid "Feature your products in the sidebar" msgstr "Destaque sus productos en la barra lateral" #: templates/admin/storefront/area-navigation.php:151 msgid "Add Store Page to Menu" msgstr "Añadir la página de la tienda al menú" #: templates/admin/storefront/area-navigation.php:147 msgid "Make your store accessible from the site menu so your customers can easily find it." msgstr "Haga que su tienda sea accesible desde el menú del sitio web para que sus clientes puedan encontrarla fácilmente." #: templates/admin/storefront/area-navigation.php:141 msgid "Add store page to the site menu" msgstr "Añadir la página de la tienda al menú del sitio web" #: templates/admin/storefront/area-navigation.php:118 msgid "Edit URL Slug" msgstr "Editar «slug» de la dirección URL" #: templates/admin/storefront/area-navigation.php:102 msgid "Current URL slug: /<span data-ec-store-slug>%s</span>" msgstr "«Slug» actual de la dirección URL: /<span data-ec-store-slug>%s</span>" #: templates/admin/storefront/area-navigation.php:78 msgid "Save" msgstr "Guardar" #: templates/admin/storefront/area-navigation.php:69 msgid "URL Slug" msgstr "«Slug» de la dirección URL" #: templates/admin/storefront/area-navigation.php:60 #: templates/admin/storefront/area-navigation.php:113 msgid "A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use \"/shop\" or \"/products\"." msgstr "Un «slug» es la última parte de una URL. Puede crear un «slug» personalizado para la página de su tienda. Es mejor que sea corto, ya que los clientes y los motores de búsqueda prefieren las URL cortas. Por ejemplo, utilice «/tienda» o «/productos»." #: templates/admin/storefront/area-navigation.php:56 #: templates/admin/storefront/area-navigation.php:98 msgid "Customize store page address" msgstr "Personalizar la dirección de la página de la tienda" #: templates/admin/storefront/area-navigation.php:29 msgid "Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href=\"%s\" target=\"_blank\">WordPress Settings > Reading</a>" msgstr "Añada su escaparate virtual a la página de inicio del sitio web para que sea más notable. También puede modificar la configuración de la página de inicio del sitio web en <a href=\"%s\" target=\"_blank\">Configuración de WordPress > Lectura</a>." #: templates/admin/storefront/area-navigation.php:21 msgid "Show your store on the home page" msgstr "Muestre su tienda en la página de inicio" #: templates/admin/storefront/area-navigation.php:4 msgid "Help customers find your store on the website." msgstr "Ayude a los clientes a encontrar su tienda en el sitio web." #: templates/admin/storefront/area-navigation.php:3 msgid "Navigation" msgstr "Navegación" #: templates/admin/welcome-no_oauth.php:12 msgid "Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>." msgstr "El ID de la tienda es un identificador único de su cuenta de %1$s. Puede encontrarlo en su panel de control de %1$s en la <a %2$s>página del panel</a>." #: templates/admin/welcome-create.php:11 msgid "Your store has been created. Preparing your store dashboard ..." msgstr "Se ha creado su tienda. Preparando el panel de su tienda..." #: templates/admin/welcome-connect.php:8 msgid "Create store" msgstr "Crear tienda" #: templates/admin/welcome-connect.php:4 msgid "Connect Your Store" msgstr "Conecte su tienda" #: templates/admin/welcome-page.php:61 msgid "Provided by <a %s>%s</a>" msgstr "Proporcionado por <a %s>%s</a>" #: templates/admin/welcome-page.php:33 msgid "To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>." msgstr "Para añadir su tienda a su sitio web, introduzca el ID de su tienda de %1$s en el campo a continuación. Si aún no tiene una cuenta de %1$s, cree una gratis en el <a %2$s>sitio web de %1$s</a>." #: templates/admin/welcome-page.php:20 msgid "Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website." msgstr "Cree una nueva tienda o, si ya tiene una cuenta de %s, conéctela. El complemento le guiará a través de la configuración de la tienda y le ayudará a publicarla en su sitio web." #: templates/admin/welcome-page.php:12 msgid "Add an Online Store to Your Website" msgstr "Añadir una tienda en línea a su sitio web" #: includes/class-ecwid-store-page.php:566 msgid "This is a demo store. Create your store to see your store products here." msgstr "Esto es una tienda de demostración. Cree su tienda para ver los productos de su tienda aquí." #: includes/class-ecwid-admin-storefront-page.php:539 msgid "Publish" msgstr "Publicar" #: templates/admin/storefront/area-design.php:33 #: templates/admin/storefront/area-design.php:59 #: includes/class-ecwid-admin-storefront-page.php:532 msgid "Edit" msgstr "Editar" #: includes/class-ecwid-admin-storefront-page.php:525 msgid "Preview" msgstr "Vista previa" #: includes/class-ecwid-admin-storefront-page.php:516 msgid "Switch to draft" msgstr "Cambiar al borrador" #: includes/class-ecwid-admin-storefront-page.php:506 msgid "Edit page" msgstr "Editar página" #: includes/class-ecwid-admin-storefront-page.php:499 msgid "View store page" msgstr "Ver la página de la tienda" #: includes/class-ecwid-admin-storefront-page.php:286 msgid "Search products" msgstr "Buscar productos" #: includes/class-ecwid-admin-storefront-page.php:265 msgid "Category" msgstr "Categoría" #: includes/class-ecwid-admin-storefront-page.php:240 msgid "Page with that name already exists." msgstr "Ya existe una página con ese nombre." #: includes/class-ecwid-admin.php:538 msgid "My Profile" msgstr "Mi perfil" #: includes/class-ecwid-admin.php:533 msgid "Apps" msgstr "Aplicaciones" #: includes/class-ecwid-admin.php:523 msgid "Shipping & Pickup" msgstr "Envío y recogida" #: includes/class-ecwid-admin.php:518 msgid "Payment" msgstr "Pago" #: includes/class-ecwid-admin.php:513 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:88 msgid "Design" msgstr "Diseño" #: includes/class-ecwid-admin.php:509 msgid "Configuration" msgstr "Configuración" #: includes/class-ecwid-admin.php:504 msgid "All Sales Channels" msgstr "Todos los canales de venta" #: includes/class-ecwid-admin.php:499 msgid "Website" msgstr "Sitio web" #: includes/class-ecwid-admin.php:494 msgid "Mobile" msgstr "Móvil" #: includes/class-ecwid-admin.php:485 msgid "Sales channels" msgstr "Canales de venta" #: includes/class-ecwid-admin.php:480 msgid "Reports" msgstr "Informes" #: includes/class-ecwid-admin.php:475 msgid "Marketing" msgstr "Mercadotecnia" #: includes/class-ecwid-admin.php:470 msgid "Catalog" msgstr "Catálogo" #: includes/class-ecwid-admin.php:465 msgid "My Sales" msgstr "Mis ventas" #: includes/class-ecwid-admin.php:455 msgid "Store management" msgstr "Gestión de la tienda" #: includes/class-ecwid-admin.php:344 msgid "Instant site" msgstr "Sitio web instantáneo" #: includes/class-ecwid-admin.php:153 includes/class-ecwid-admin.php:154 #: includes/class-ecwid-admin.php:309 msgid "Storefront" msgstr "Escaparate virtual" #: ecwid-shopping-cart.php:1111 msgid "Manage storefront" msgstr "Gestionar escaparate virtual" #: ecwid-shopping-cart.php:1111 msgid "Customize design" msgstr "Personalizar el diseño" #: ecwid-shopping-cart.php:1103 msgid "Manage store" msgstr "Gestionar la tienda" #: templates/importer/woo-main.tpl.php:97 msgid "Start Import" msgstr "Iniciar la importación" #: templates/importer/woo-main.tpl.php:87 msgid "Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target=\"_blank\">\"Billing & Plans\"</a></nobr> page in your Ecwid store control panel." msgstr "Tenga en cuenta el número máximo de productos y categorías que puede tener en su tienda de Ecwid. Esta herramienta de importación se detendrá automáticamente cuando se alcance el límite de productos de la tienda. Para conocer el límite actual de la tienda o aumentarlo, consulte la página <nobr><a %s target=\"_blank\">«Facturación y planes»</a></nobr> ubicada en el panel de su tienda de Ecwid." #: templates/importer/woo-main.tpl.php:82 msgid "Import creates new products and update the existing products with matching SKUs." msgstr "La importación crea nuevos productos y actualiza los productos existentes con las REF correspondientes." #: templates/importer/woo-main.tpl.php:60 msgid "Copying products and categories." msgstr "Copia de productos y categorías." #: templates/importer/woo-main.tpl.php:50 msgid "Import completed. <a href=\"%s\">Run again.</a>" msgstr "Importación completada. <a href=\"%s\">Ejecútela de nuevo.</a>" #: templates/importer/woo-main.tpl.php:34 msgid "Import is in Progress" msgstr "La importación está en progreso" #: templates/importer/woo-main.tpl.php:32 msgid "Import your products from Woocommerce to %s" msgstr "Importe sus productos de Woocommerce a %s" #: templates/importer/woo-main.tpl.php:18 msgid "Update your catalog" msgstr "Actualice su catálogo" #: templates/importer/woo-main.tpl.php:4 msgid "Import Your Products From Woocommerce to %s" msgstr "Importe sus productos de Woocommerce a %s" #: templates/importer/import-no-token.tpl.php:3 msgid "Click the connect button to get rights to update the product catalog" msgstr "Haga clic en el botón «Conectar» para obtener los permisos para actualizar el catálogo de productos" #: templates/importer/woo-complete-alert.tpl.php:52 msgid "Go to Your %s Products" msgstr "Ir a sus productos de %s" #: templates/importer/woo-complete-alert.tpl.php:43 msgid "Download <a href=\"%s\">import log</a>" msgstr "Descargar <a href=\"%s\">registro de importación</a>" #: templates/importer/woo-complete-alert.tpl.php:32 msgid "Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>" msgstr "Parte de los productos no se han copiado a %1$s porque alcanzó el límite de productos en su plan de precios en %1$s. Si desea importar más productos, considere <nobr><a %2$s>actualizar su plan de %1$s.</a></nobr>" #: templates/importer/woo-complete-alert.tpl.php:21 msgid "<b>%s</b> categories" msgstr "<b>%s</b> categorías" #: templates/importer/woo-complete-alert.tpl.php:18 msgid "Imported <b>%s</b> products" msgstr "<b>%s</b> productos importados" #: templates/importer/woo-complete-alert.tpl.php:15 msgid "Import completed" msgstr "Importación completada" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:10 #: includes/widgets/class-ecwid-widget-product-browser.php:12 msgid "Online store" msgstr "Tienda en línea" #: includes/class-ecwid-store-page.php:476 msgid "%s Store Page" msgstr "Página de la tienda de %s" #: templates/advanced-settings.php:79 msgid "Integration with search on your site" msgstr "Integración con la búsqueda en su sitio web" #: templates/sync.php:130 msgid "Deleted products synchronized: %1$s out of %2$s" msgstr "Productos eliminados sincronizados: %1$s de %2$s" #: includes/class-ecwid-custom-admin-page.php:66 msgid "Themes for Ecwid" msgstr "Temas para Ecwid" #: includes/class-ecwid-custom-admin-page.php:33 msgid "Plugins for Ecwid" msgstr "Complementos para Ecwid" #: includes/class-ecwid-popup-deactivate.php:138 msgid "I use this WordPress theme: %s" msgstr "Utilizo este tema de WordPress: %s" #: includes/class-ecwid-popup-deactivate.php:132 msgid "I couldn’t find a WordPress theme that goes well with %s" msgstr "No pude encontrar un tema de WordPress adecuado para %s" #: includes/class-ecwid-product-browser.php:357 msgid "On the right" msgstr "A la derecha" #: includes/class-ecwid-product-browser.php:353 msgid "On the left" msgstr "A la izquierda" #: includes/class-ecwid-product-browser.php:349 msgid "Filters panel position" msgstr "Posición del panel de filtros" #: includes/class-ecwid-product-browser.php:209 msgid "Default product_ID" msgstr "ID del producto predeterminado" #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:73 msgid "Cart icon" msgstr "Icono del carrito de compras" #: templates/shortcode-stub-store.tpl.php:4 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:20 #: js/gutenberg/blocks.build.js:1 msgid "Store Home Page" msgstr "Página de inicio de la tienda" #: ecwid-shopping-cart.php:431 msgid "Edit Category" msgstr "Editar categoría" #: ecwid-shopping-cart.php:430 msgid "Edit Product" msgstr "Editar producto" #: includes/class-ecwid-admin.php:142 includes/class-ecwid-admin.php:143 msgid "Online Store Apps" msgstr "Aplicaciones de la tienda en línea" #. Plugin Name of the plugin msgid "Ecwid Ecommerce Shopping Cart" msgstr "Carrito de compras del comercio electrónico de Ecwid" #: includes/class-ecwid-custom-admin-page.php:58 includes/faq_entries.php:76 msgid "Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href=\"%s\">TemplateMonster themes</a>" msgstr "Ecwid es compatible con cualquier tema de WordPress. Ya sea un tema gratuito del catálogo de WordPress.org, un tema prémium de un proveedor externo o un tema personalizado; su tienda de Ecwid funcionará bien con cualquiera de ellos. Si desea un tema prémium, le recomendamos <a href=\"%s\">temas de TemplateMonster</a>." #: includes/faq_entries.php:74 msgid "Is there a WordPress theme for Ecwid?" msgstr "¿Existe algún tema de WordPress para Ecwid?" #: templates/admin-footer.php:19 msgid "<a href=\"admin.php?page=" msgstr "<a href=\"admin.php?page=" #: includes/integrations/class-ecwid-integration-gutenberg.php:113 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:25 msgid "You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href=\"%1$s\">Appearance → Customize → %2$s</a>” menu to enable it." msgstr "Puede habilitar un «widget» adicional del icono de la bolsa de compras que aparecerá en las páginas de su sitio web. Abra el menú «<a href=\"%1$s\">Apariencia → Personalizar → %2$s</a>» para habilitarlo." #: includes/integrations/class-ecwid-integration-gutenberg.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:18 msgctxt "gutenberg-store-block-stub" msgid "Store" msgstr "Tienda" #: includes/class-ecwid-product-browser.php:472 msgid "Image feed" msgstr "Canal de imagen" #: includes/class-ecwid-product-browser.php:467 msgid "Vertical thumbnails" msgstr "Miniaturas verticales" #: includes/class-ecwid-product-browser.php:462 msgid "Horizontal thumbnails" msgstr "Miniaturas horizontales" #: includes/class-ecwid-product-browser.php:452 msgid "3 columns, image on the right" msgstr "3 columnas, imagen a la derecha" #: includes/class-ecwid-product-browser.php:448 msgid "3 columns, image on the left" msgstr "3 columnas, imagen a la izquierda" #: includes/class-ecwid-product-browser.php:444 msgid "2 columns, image on the right" msgstr "2 columnas, imagen a la derecha" #: includes/class-ecwid-product-browser.php:440 msgid "2 columns, image on the left" msgstr "2 columnas, imagen a la izquierda" #: includes/class-ecwid-product-browser.php:429 msgid "Landscape 3:2" msgstr "Horizontal 3:2" #: includes/class-ecwid-product-browser.php:424 msgid "Landscape 4:3" msgstr "Horizontal 4:3" #: includes/class-ecwid-product-browser.php:419 msgid "Square 1:1" msgstr "Cuadrado 1:1" #: includes/class-ecwid-product-browser.php:414 msgid "Portrait 3:4" msgstr "Vertical 3:4" #: includes/class-ecwid-product-browser.php:409 msgid "Portrait 2:3" msgstr "Vertical 2:3" #: includes/class-ecwid-product-browser.php:399 msgid "L" msgstr "G" #: includes/class-ecwid-product-browser.php:395 msgid "M" msgstr "M" #: includes/class-ecwid-product-browser.php:391 msgid "S" msgstr "P" #: includes/class-ecwid-product-browser.php:381 msgid "Show on hover" msgstr "Mostrar al pasar el ratón" #: includes/class-ecwid-product-browser.php:377 msgid "Hide" msgstr "Ocultar" #: includes/class-ecwid-product-browser.php:373 msgid "Show" msgstr "Mostrar" #: includes/class-ecwid-product-browser.php:342 msgid "Background color" msgstr "Color del fondo" #: includes/class-ecwid-product-browser.php:335 msgid "Link color" msgstr "Color del enlace" #: includes/class-ecwid-product-browser.php:328 msgid "Price color" msgstr "Color del precio" #: includes/class-ecwid-product-browser.php:321 msgid "Text color" msgstr "Color del texto" #: includes/class-ecwid-product-browser.php:314 msgid "Button color" msgstr "Color del botón" #: includes/class-ecwid-product-browser.php:299 msgid "Wholesale prices" msgstr "Precios al por mayor" #: includes/class-ecwid-product-browser.php:292 msgid "\"In stock\" label" msgstr "Etiqueta de productos «En existencia»" #: includes/class-ecwid-product-browser.php:285 msgid "Available qty in stock" msgstr "Cantidad disponible en existencia" #: includes/class-ecwid-product-browser.php:278 msgid "Product quantity" msgstr "Cantidad de productos" #: includes/class-ecwid-product-browser.php:271 msgctxt "product-browser-attributes" msgid "Product price" msgstr "Precio del producto" #: includes/class-ecwid-product-browser.php:264 msgctxt "product-browser-attributes" msgid "Product SKU" msgstr "REF del producto" #: includes/class-ecwid-product-browser.php:257 msgid "Breadcrumbs" msgstr "Migas de pan" #: includes/class-ecwid-product-browser.php:241 msgid "Image gallery layout" msgstr "Diseño de la galería de imágenes" #: includes/integrations/class-ecwid-integration-gutenberg.php:391 #: includes/class-ecwid-product-browser.php:224 #: includes/class-ecwid-product-browser.php:233 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:212 msgid "Show description under the image" msgstr "Mostrar descripción debajo de la imagen" #: includes/class-ecwid-product-browser.php:216 msgid "Product page layout" msgstr "Diseño de la página de productos" #: includes/class-ecwid-product-browser.php:194 msgid "Display sort by link" msgstr "Mostrar «ordenar por enlace»" #: includes/class-ecwid-product-browser.php:186 #: includes/class-ecwid-product-browser.php:306 msgid "Display sign in link" msgstr "Mostrar el enlace de inicio de sesión" #: includes/class-ecwid-product-browser.php:178 msgid "Display footer menu" msgstr "Mostrar el menú del pie de página" #: includes/class-ecwid-product-browser.php:170 msgid "Display breadcrumbs" msgstr "Mostrar migas de pan" #: includes/class-ecwid-product-browser.php:163 js/gutenberg/blocks.build.js:1 msgid "Display search box" msgstr "Mostrar el cuadro de búsqueda" #: includes/class-ecwid-product-browser.php:156 msgid "Display categories menu" msgstr "Mostrar el menú de categorías" #: includes/class-ecwid-product-browser.php:148 msgid "Category thumbnail aspect ratio" msgstr "Relación de aspecto de la miniatura de la categoría" #: includes/class-ecwid-product-browser.php:140 msgid "Category thumbnail size" msgstr "Tamaño de la miniatura de la categoría" #: includes/class-ecwid-product-browser.php:131 msgid "Image only" msgstr "Solo imagen" #: includes/class-ecwid-product-browser.php:127 msgid "Title only" msgstr "Solo título" #: includes/class-ecwid-product-browser.php:123 msgid "Image and title on mouse over" msgstr "Imagen y título al pasar el ratón por encima" #: includes/class-ecwid-product-browser.php:119 msgid "Title on image" msgstr "Título en la imagen" #: includes/class-ecwid-product-browser.php:115 msgid "Title under image" msgstr "Título debajo de la imagen" #: includes/class-ecwid-product-browser.php:111 msgid "Category card layout" msgstr "Diseño de la ficha de categoría" #: includes/class-ecwid-product-browser.php:103 msgid "Show additional image on hover" msgstr "Mostrar imagen adicional al pasar el ratón" #: includes/class-ecwid-product-browser.php:95 msgid "Buy now buttons" msgstr "Botones de «Comprar ahora»" #: includes/class-ecwid-product-browser.php:87 msgid "Product SKU" msgstr "REF del producto" #: includes/class-ecwid-product-browser.php:79 msgid "Product price" msgstr "Precio del producto" #: includes/class-ecwid-product-browser.php:71 msgid "Product title" msgstr "Título del producto" #: includes/class-ecwid-product-browser.php:61 msgid "Justify" msgstr "Justificado" #: includes/class-ecwid-product-browser.php:56 msgid "Right" msgstr "Derecha" #: includes/class-ecwid-product-browser.php:51 msgid "Center" msgstr "Centrado" #: includes/class-ecwid-product-browser.php:46 msgid "Left" msgstr "Izquierda" #: includes/class-ecwid-product-browser.php:42 msgid "Product card text align" msgstr "El texto de la ficha del producto se alinea" #: includes/class-ecwid-product-browser.php:34 msgid "Show product card border" msgstr "Mostrar el borde de la ficha del producto" #: includes/class-ecwid-product-browser.php:26 msgid "Product thumbnail aspect ratio" msgstr "Relación de aspecto de la miniatura del producto" #: includes/class-ecwid-product-browser.php:18 msgid "Product thumbnail size" msgstr "Tamaño de la miniatura del producto" #: includes/class-ecwid-product-browser.php:10 msgid "Show product thumbnails" msgstr "Mostrar miniaturas de los productos" #. Author of the plugin msgid "Ecwid Ecommerce" msgstr "Comercio electrónico Ecwid" #: templates/importer/woo-summary.tpl.php:34 msgid "After import, your %s store will have " msgstr "Después de la importación, su tienda de %s tendrá " #: templates/importer/woo-summary.tpl.php:21 msgid "Your %s store has " msgstr "Su tienda de %s tiene " #: templates/importer/woo-summary.tpl.php:10 msgid "Your WooCommerce store has " msgstr "Su tienda de WooCommerce tiene " #: includes/integrations/class-ecwid-integration-elementor.php:64 #: includes/integrations/class-ecwid-integration-divibuilder.php:25 #: includes/integrations/class-ecwid-integration-gutenberg.php:94 msgid "%s Store" msgstr "Tienda de %s" #: includes/importer/class-ecwid-import-page.php:184 msgid "%s products" msgstr "%s productos" #: includes/importer/class-ecwid-import-page.php:178 msgid "%s products and %s categories" msgstr "%s productos y %s categorías" #: includes/class-ecwid-stub-renderer.php:27 #: includes/class-ecwid-admin-storefront-page.php:272 msgid "Product" msgstr "Producto" #: includes/class-ecwid-message-manager.php:278 #: includes/class-ecwid-message-manager.php:297 #: includes/class-ecwid-message-manager.php:318 msgid "Warning: some of your online store features are disabled. Please contact your hosting provider to resolve." msgstr "Advertencia: algunas de las funciones de su tienda en línea están inhabilitadas. Póngase en contacto con su proveedor de alojamiento web para resolverlo." #: templates/admin/legacy-connect.tpl.php:39 msgid "Create new account" msgstr "Crear una nueva cuenta" #: templates/admin/legacy-connect.tpl.php:33 msgid "Register at %s" msgstr "Registrarse en %s" #: includes/class-ecwid-floating-minicart.php:155 msgid "Bottom left" msgstr "Abajo a la izquierda" #: includes/class-ecwid-floating-minicart.php:154 msgid "Top left" msgstr "Arriba a la izquierda" #: includes/class-ecwid-floating-minicart.php:113 msgid "Show on all pages" msgstr "Mostrar en todas las páginas" #: includes/class-ecwid-floating-minicart.php:112 msgid "Show on store pages" msgstr "Mostrar en las páginas de la tienda" #: includes/class-ecwid-floating-minicart.php:111 msgid "Do not show" msgstr "No mostrar" #: includes/class-ecwid-customizer.php:134 msgid "Vertical indent" msgstr "Sangría vertical" #: includes/class-ecwid-customizer.php:123 msgid "Horizontal indent" msgstr "Sangría horizontal" #: includes/class-ecwid-customizer.php:97 msgid "Icon" msgstr "Icono" #: includes/class-ecwid-customizer.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:79 msgid "Border" msgstr "Borde" #: includes/class-ecwid-customizer.php:72 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:67 msgid "Layout" msgstr "Diseño" #: includes/class-ecwid-customizer.php:61 msgid "Show when empty" msgstr "Mostrar cuando esté vacío" #: includes/class-ecwid-customizer.php:49 msgid "Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The \"Show on store pages\" and \"Show when empty\" options will apply to the cart widget on site when published" msgstr "Nota: cuando está habilitado, el «widget» del carrito siempre se mostrará en la vista previa para que sea más fácil personalizarlo. Las opciones «Mostrar en las páginas de la tienda» y «Mostrar cuando esté vacío» se aplicarán al «widget» del carrito en el sitio cuando se publiquen" #: includes/class-ecwid-customizer.php:47 msgid "Display shopping cart" msgstr "Mostrar el carrito de compras" #: includes/class-ecwid-customizer.php:35 msgid "Shopping Cart Widget" msgstr "«Widget» del carrito de compras" #. Author URI of the plugin msgid "https://ecwid.to/ecwid-site" msgstr "https://ecwid.to/ecwid-site" #: templates/product-popup.php:247 msgid "selected product" msgstr "producto seleccionado" #: templates/product-popup.php:138 templates/product-popup.php:143 msgid "Selected Product" msgstr "Producto seleccionado" #: templates/product-popup.php:124 msgid " Choose another product" msgstr " Elegir otro producto" #: templates/importer/landing.tpl.php:20 msgid "Import your WooCommerce catalog to %s" msgstr "Importe su catálogo de WooCommerce a %s" #: includes/widgets/nsf-minicart-editor.tpl.php:35 msgid "Border:" msgstr "Borde:" #: includes/widgets/nsf-minicart-editor.tpl.php:19 msgid "Cart icon:" msgstr "Icono del carrito:" #: includes/widgets/nsf-minicart-editor.tpl.php:3 msgid "Layout:" msgstr "Diseño:" #: includes/class-ecwid-floating-minicart.php:145 msgid "No border" msgstr "Sin borde" #: includes/class-ecwid-floating-minicart.php:144 msgid "Pill" msgstr "Píldora" #: includes/class-ecwid-floating-minicart.php:143 msgid "Rectangle" msgstr "Rectángulo" #: includes/class-ecwid-floating-minicart.php:136 msgid "Basket" msgstr "Cesta" #: includes/class-ecwid-floating-minicart.php:134 msgid "Bag" msgstr "Bolsa" #: includes/class-ecwid-floating-minicart.php:127 msgid "Icon, label, item count, subtotal and link" msgstr "Icono, etiqueta, total de artículos, subtotal y enlace" #: includes/class-ecwid-floating-minicart.php:126 msgid "Icon, label, item count and subtotal" msgstr "Icono, etiqueta, total de artículos y subtotal" #: includes/class-ecwid-floating-minicart.php:125 msgid "Icon, label and item count" msgstr "Icono, etiqueta y total de artículos" #: includes/class-ecwid-floating-minicart.php:124 msgid "Icon and item count" msgstr "Icono y total de artículos" #: includes/class-ecwid-floating-minicart.php:123 msgid "Label and item count" msgstr "Etiqueta y y total de artículos" #: includes/class-ecwid-floating-minicart.php:122 msgid "Item count only" msgstr "Solo el total de artículos" #: includes/class-ecwid-floating-minicart.php:121 msgid "Small icon and item count" msgstr "Icono pequeño y total de artículos" #: includes/class-ecwid-floating-minicart.php:120 msgid "Small icon" msgstr "Icono pequeño" #: includes/widgets/class-ecwid-widget-minicart.php:9 msgid "Shopping Cart (deprecated)" msgstr "Carrito de compras (descontinuado)" #: includes/widgets/class-ecwid-widget-minicart-miniview.php:9 msgid "Shopping Cart Mini (deprecated)" msgstr "Carrito de compras en miniatura (descontinuado)" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:21 msgid "Shopping Cart Floating (deprecated)" msgstr "Carrito de compras flotante (descontinuado)" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:69 msgid "Displays storefront: product listing and checkout" msgstr "Muestra el escaparate virtual: listado de productos y pago" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:67 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:70 msgctxt "vc-tab" msgid "Online store" msgstr "Tienda en línea" #: includes/integrations/class-ecwid-integration-gutenberg.php:105 #: includes/gutenberg/class-ecwid-gutenberg.php:131 msgid "Your product" msgstr "Su producto" #: templates/shortcode-stub-store.tpl.php:18 #: includes/integrations/class-ecwid-integration-gutenberg.php:103 #: includes/widgets/class-ecwid-widget-product-browser.php:11 #: includes/gutenberg/class-ecwid-gutenberg.php:129 msgid "Your store will be shown here" msgstr "Su tienda se mostrará aquí" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:31 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:101 #: includes/integrations/class-ecwid-integration-gutenberg.php:101 #: includes/gutenberg/class-ecwid-gutenberg.php:127 #: js/gutenberg/blocks.build.js:1 msgid "Choose product" msgstr "Elegir producto" #: includes/integrations/class-ecwid-integration-gutenberg.php:97 #: includes/gutenberg/class-ecwid-gutenberg.php:123 msgid "%s product" msgstr "%s producto" #: templates/wp-toolbox.tpl.php:4 msgid "Take advantage of powerful apps and extensions designed to enhance your store." msgstr "Aproveche las increíbles aplicaciones y extensiones diseñadas para mejorar su tienda." #: templates/wp-toolbox.tpl.php:3 msgid "Extensions for your Store" msgstr "Extensiones para su tienda" #: templates/importer/woo-summary.tpl.php:6 msgid "Import summary" msgstr "Resumen de la importación" #: templates/importer/woo-main.tpl.php:19 msgid "This import will copy your WooCommerce products and categories to your %s store." msgstr "Esta importación copiará sus productos y categorías de WooCommerce a su tienda de %s." #: templates/importer/woo-main.tpl.php:62 msgid "Importing %s of %s items" msgstr "Importando %s de %s artículos" #: templates/importer/woo-complete-alert.tpl.php:27 msgid "Some of the items could not be imported." msgstr "Algunos de los artículos no se pudieron importar." #: templates/importer/landing.tpl.php:33 msgid "Learn more" msgstr "Más información" #: templates/importer/landing.tpl.php:33 msgid "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" msgstr "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" #: templates/importer/landing.tpl.php:31 msgid "Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center" msgstr "Ecwid le permite subir sus productos en forma de archivo CSV. Obtenga más información sobre esta herramienta en el centro de asistencia de Ecwid" #: templates/importer/landing.tpl.php:29 msgid "Import product catalog from other sources" msgstr "Importar el catálogo de productos de otras fuentes" #: templates/importer/landing.tpl.php:23 msgid "(You will be able to confirm the changes before the actual import)" msgstr "(podrá confirmar los cambios antes de la importación definitiva)" #: templates/importer/landing.tpl.php:12 msgid "We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?" msgstr "Notamos que tiene un WooCommerce instalado. Su tienda de WooCommerce tiene %1$s productos y %2$s categorías; ¿le gustaría importarlos a %3$s?" #: templates/importer/landing.tpl.php:9 msgid "Import product catalog from WooCommerce" msgstr "Importar el catálogo de productos de WooCommerce" #: templates/importer/landing.tpl.php:4 msgid "Here, we will help you uploading your product catalog to %s from another shopping cart or other sources." msgstr "Aquí, le ayudaremos a subir su catálogo de productos a %s de otro carrito de compras u otras fuentes." #: templates/importer/landing.tpl.php:1 msgid "Import products to your %s store" msgstr "Importe los productos a su tienda de %s" #: templates/dashboard-blog-posts.tpl.php:20 msgid "Knowledge Base" msgstr "Base de conocimiento" #: templates/dashboard-blog-posts.tpl.php:19 msgid "https://support.ecwid.com/hc/en-us" msgstr "https://support.ecwid.com/hc/en-us" #: templates/dashboard-blog-posts.tpl.php:14 msgid "https://www.ecwid.com/blog" msgstr "https://www.ecwid.com/blog" #: includes/importer/class-ecwid-import.php:39 msgid "Bulk import products and categories to your %s store" msgstr "Importar en masa productos y categorías a su tienda de %s" #: includes/importer/class-ecwid-import.php:38 msgid "%s products and categories" msgstr "%s productos y categorías" #: templates/importer/woo-main.tpl.php:36 #: includes/importer/class-ecwid-import-page.php:52 #: includes/importer/class-ecwid-import-page.php:53 msgid "Import your products from WooCommerce to %s" msgstr "Importe sus productos de WooCommerce a %s" #: includes/importer/class-ecwid-import-page.php:42 #: includes/importer/class-ecwid-import-page.php:43 msgid "Import" msgstr "Importar" #: templates/dashboard-blog-posts.tpl.php:15 #: includes/class-ecwid-wp-dashboard-feed.php:48 msgid "%s Blog" msgstr "Blog de %s" #: includes/class-ecwid-message-manager.php:345 msgid "No Thanks" msgstr "No, gracias" #: includes/class-ecwid-message-manager.php:343 msgid "Import my products from WooCommerce" msgstr "Importar mis productos de WooCommerce" #: includes/class-ecwid-message-manager.php:341 msgid "We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you." msgstr "Notamos que tiene WooCommerce instalado. Si desea copiar fácilmente sus productos de WooCommerce a %s, esta herramienta le ayudará." #: includes/class-ecwid-message-manager.php:340 msgid "Need help importing your products from WooCommerce to %s?" msgstr "¿Necesita ayuda para importar sus productos de WooCommerce a %s?" #: includes/class-ecwid-admin.php:213 includes/class-ecwid-admin.php:214 msgid "Customers" msgstr "Clientes" #: templates/help.php:28 msgid "or <a %s>Browse the Help Center" msgstr "o <a %s>consulte el centro de asistencia" #: templates/admin/welcome-connection-message.php:5 msgid "To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission." msgstr "Para mostrar su tienda en este sitio web, debe permitir que WordPress acceda a sus productos de %1$s. Pulse «Conectar» para otorgar el permiso." #: includes/faq_entries.php:40 msgid "Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target=\"_blank\" href=\"%s\">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans." msgstr "Nuestros 4 tipos de cuentas varían según la cantidad de productos, los tipos de funcionalidades y el nivel de asistencia. Para obtener más información, consulte nuestra <a target=\"_blank\" href=\"%s\">página de precios.</a><br /><br />Consejo profesional: también puede ahorrar dinero si se suscribe a nuestros planes anuales." #: includes/class-ecwid-popup-deactivate.php:59 msgid "[%s] WordPress plugin deactivation feedback (store ID: %s)" msgstr "[%s] Comentarios sobre la desactivación del complemento de WordPress (ID de la tienda: %s)" #: includes/class-ecwid-message-manager.php:289 msgid "Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data." msgstr "Su escaparate virtual (listado de productos y página de pago) está funcionando bien, pero las funciones avanzadas de la tienda, como el SEO y los «widgets» de la barra lateral, están inhabilitadas. Para habilitarlas y asegurarse de que su tienda funcione correctamente, pulse el botón de abajo para conectar su cuenta de %s. Esto tomará menos de un minuto; solo se le pedirá que inicie sesión en su cuenta y permita que este sitio web obtenga los datos de su tienda." #: includes/class-ecwid-message-manager.php:288 msgid "Action required: please connect your %s account" msgstr "Acción requerida: conecte su cuenta de %s" #: templates/popup/deactivate.php:24 msgid "Contact Support" msgstr "Ponerse en contacto con la asistencia" #: templates/popup/deactivate.php:1 msgid "If you have a moment, please let us know why you are deactivating:" msgstr "Si tiene un momento, háganos saber por qué está desactivando:" #: templates/admin/welcome-create.php:4 msgid "Create Store" msgstr "Crear tienda" #: templates/advanced-settings.php:1 msgid "%s — Advanced settings" msgstr "%s — Configuración avanzada" #: includes/widgets/class-ecwid-widget-random-products.php:10 msgid "Displays a list of random products." msgstr "Muestra una lista de productos aleatorios." #: includes/widgets/class-ecwid-widget-random-products.php:9 msgid "Random Products" msgstr "Productos aleatorios" #: includes/widgets/class-ecwid-widget-random-product.php:9 #: includes/widgets/class-ecwid-widget-random-product.php:64 msgid "Random Product" msgstr "Producto aleatorio" #: includes/widgets/class-ecwid-widget-random-product.php:8 msgid "Displays a random product from your store to attract customer attention." msgstr "Muestra un producto aleatorio de su tienda para atraer la atención del cliente." #: includes/widgets/class-ecwid-widget-latest-products.php:10 msgid "Displays the latest added products from your store. Show new products to returning customers to drive repeat sales." msgstr "Muestra los últimos productos añadidos de su tienda. Muestre nuevos productos a los clientes existentes para impulsar las ventas repetidas." #: includes/widgets/class-ecwid-widget-latest-products.php:9 msgid "Latest Products" msgstr "Últimos productos" #: includes/class-ecwid-popup-deactivate.php:164 msgid "Can you share your feedback? What was wrong?" msgstr "¿Podría compartir su opinión? ¿Qué fue lo que pasó?" #: includes/class-ecwid-popup-deactivate.php:161 msgid "Other" msgstr "Otro" #: includes/class-ecwid-popup-deactivate.php:155 msgid "It's a temporary deactivation. Please do not ask me again." msgstr "Es una desactivación temporal. No preguntarme de nuevo." #: includes/class-ecwid-popup-deactivate.php:152 msgid "Can you share the name of the plugin you chose?" msgstr "¿Podría compartir el nombre del complemento que ha elegido?" #: includes/class-ecwid-popup-deactivate.php:149 msgid "I found a better plugin" msgstr "Encontré un mejor complemento" #: includes/class-ecwid-popup-deactivate.php:146 msgid "What feature do you need?" msgstr "¿Qué función necesita?" #: includes/class-ecwid-popup-deactivate.php:143 msgid "The plugin doesn't support the feature I want" msgstr "El complemento no es compatible con la función que quiero" #: includes/class-ecwid-popup-deactivate.php:128 msgid "What was wrong?" msgstr "¿Qué fue lo que pasó?" #: includes/class-ecwid-popup-deactivate.php:125 msgid "I have a problem using this plugin" msgstr "Tengo un problema con el uso de este complemento" #: includes/class-ecwid-popup-deactivate.php:112 msgid "Before You Go" msgstr "Antes de que se vaya" #: templates/admin/storefront/area-navigation.php:79 #: includes/class-ecwid-popup-deactivate.php:105 msgid "Cancel" msgstr "Cancelar" #: includes/class-ecwid-popup-deactivate.php:101 msgid "Submit & Deactivate" msgstr "Enviar y desactivar" #: includes/class-ecwid-message-manager.php:244 #: includes/class-ecwid-store-page.php:568 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:51 #: ecwid-shopping-cart.php:1082 js/gutenberg/blocks.build.js:1 msgid "Set up your store" msgstr "Configure su tienda" #: templates/admin-head.php:8 includes/class-ecwid-admin.php:48 #: includes/integrations/class-ecwid-integration-gutenberg.php:45 #: includes/gutenberg/class-ecwid-gutenberg.php:69 msgid "%s" msgstr "%s" #: templates/product-popup.php:199 js/gutenberg/blocks.build.js:1 msgid "«Buy now» button" msgstr "Botón de «Comprar ahora»" #: templates/admin/simple-dashboard.php:10 msgid "%s Shopping Cart" msgstr "Carrito de compras de %s" #: templates/advanced-settings.php:42 msgid "Please subscribe to a paid plan to get this feature." msgstr "Suscríbase a un plan de pago para obtener esta función." #: templates/admin-footer.php:9 msgid "Get %s mobile app" msgstr "Descargue la aplicación móvil de %s" #: includes/class-ecwid-message-manager.php:272 msgid "Rate %s at WordPress.org" msgstr "Tasa de %s en WordPress.org" #: includes/class-ecwid-message-manager.php:268 msgid "Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site." msgstr "¿Le gusta su tienda de %s en línea? Apreciaríamos si comparte su opinión y vota por el complemento en el sitio de WordPress." #: includes/class-ecwid-message-manager.php:260 msgid "To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings." msgstr "Para añadir funciones adicionales a su tienda, arrastre y suelte los elementos de la tienda de %s en su sitio web. Una vez que haya terminado, puede volver a modificar su configuración." #: templates/sync.php:114 msgid "Provide access." msgstr "Otorgar acceso." #: templates/sync.php:113 msgid "To enable this feature, the plugin needs a permission to read your store product information." msgstr "Para habilitar esta función, el complemento necesita un permiso para leer la información del producto de su tienda." #: templates/product-popup.php:137 templates/product-popup.php:147 msgid "Choose Product" msgstr "Elegir producto" #: templates/product-popup.php:96 msgid "Try another search." msgstr "Intente otra búsqueda." #: templates/sync.php:152 msgid "Not synchronized yet" msgstr "No se ha sincronizado todavía" #: templates/sync.php:149 msgid "Last update" msgstr "Última actualización" #: templates/sync.php:145 msgid "Products are successfully synchronized. The product pages are up to date." msgstr "Los productos se sincronizaron satisfactoriamente. Las páginas de productos están actualizadas." #: templates/sync.php:138 msgid "Products synchronized: %1$s out of %2$s" msgstr "Productos eliminados sincronizados: %1$s de %2$s" #: templates/sync.php:126 msgid "We're synchronizing your products. This may take a few minutes. Please do not reload the page." msgstr "Estamos sincronizando sus productos. Esto puede tardar unos minutos. No actualice la página." #: templates/sync.php:119 msgid "Synchronize products" msgstr "Sincronizar productos" #: templates/advanced-settings.php:83 msgid "%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site." msgstr "%s almacena los datos de sus productos de forma segura en la nube. Las páginas de productos se muestran sobre la marcha cuando un cliente navega por su tienda. Por lo que, básicamente, los productos no se almacenan en el sitio web, por eso la búsqueda en el sitio web no encuentra páginas de productos mientras busca en las páginas del sitio web y en las publicaciones. Esta opción habilita un modo de almacenamiento local: los productos se almacenarán tanto en la nube como en su sitio web. Los resultados de la búsqueda en el sitio web incluirán las páginas de productos, así como las páginas o publicaciones habituales de su sitio web." #: templates/product-popup.php:243 msgid "Insert" msgstr "Insertar" #: templates/product-popup.php:242 msgid "select product" msgstr "seleccionar producto" #: templates/product-popup.php:241 templates/product-popup.php:246 msgid "customize appearance" msgstr "personalizar apariencia" #: templates/product-popup.php:224 msgid "Show price inside the \"Buy now\" button" msgstr "Mostrar el precio dentro del botón de «Comprar ahora»" #: templates/product-popup.php:229 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:62 #: js/gutenberg/blocks.build.js:1 msgid "Center align on a page" msgstr "Centrar la alineación en una página" #: templates/product-popup.php:219 js/gutenberg/blocks.build.js:1 msgid "Add border" msgstr "Añadir borde" #: templates/product-popup.php:188 js/gutenberg/blocks.build.js:1 msgid "Quantity" msgstr "Cantidad" #: templates/product-popup.php:178 js/gutenberg/blocks.build.js:1 msgid "Options" msgstr "Opciones" #: templates/product-popup.php:173 js/gutenberg/blocks.build.js:1 msgid "Picture" msgstr "Imagen" #: templates/product-popup.php:163 msgid "Choose product properties to display in widget" msgstr "Elija las propiedades del producto para mostrarlas en el «widget»" #: templates/product-popup.php:139 templates/product-popup.php:151 msgid "Customize widget" msgstr "Personalizar «widget»" #: templates/product-popup.php:97 msgid "Browse all products." msgstr "Explorar todos los productos." #: templates/product-popup.php:94 msgid "Nothing found for <span class=\"empty-page__term\">\"{{ data.term }}\"</span>" msgstr "No se ha encontrado nada en relación con <span class=\"empty-page__term\">«{{ data.term }}»</span>" #: templates/product-popup.php:80 msgid "Next page" msgstr "Página siguiente" #: templates/product-popup.php:69 msgid "Current Page" msgstr "Página actual" #: templates/product-popup.php:49 msgid "Title or SKU" msgstr "Título o REF" #: templates/product-popup.php:47 templates/product-popup.php:53 #: templates/product-popup.php:56 msgid "Search" msgstr "Buscar" #: templates/product-popup.php:29 msgid "SKU" msgstr "REF" #: templates/product-popup.php:23 msgid "Name" msgstr "Nombre" #: includes/class-ecwid-product-popup.php:150 msgid "Last Page" msgstr "Última página" #: includes/class-ecwid-product-popup.php:149 msgid "Next Page" msgstr "Página siguiente" #: includes/class-ecwid-product-popup.php:148 msgid "Previous Page" msgstr "Página anterior" #: includes/class-ecwid-product-popup.php:147 msgid "First Page" msgstr "Primera página" #: includes/class-ecwid-product-popup.php:107 msgid "Add Product" msgstr "Añadir producto" #: includes/class-ecwid-oauth.php:366 msgid "To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the \"Add product\" dialog." msgstr "A fin de poder elegir un producto para insertarlo en sus publicaciones y páginas, deberá volver a conectar su sitio a su tienda de %s. Esto solo requerirá que acepte la solicitud de permisos para que el complemento pueda listar sus productos en el cuadro de diálogo «Añadir producto»." #: templates/advanced-settings.php:54 msgid "To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>" msgstr "Para asegurarse de que su cliente puede acceder realmente a su sitio web y a la tienda, habilite el registro en las <a %s>configuraciones del sitio web</a>" #: templates/advanced-settings.php:48 msgid "To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>" msgstr "Para permitir que %s inicie la sesión de sus clientes automáticamente en su tienda, otorgue los permisos para utilizar los datos del cliente en la tienda. <a %s>Utilice este enlace para hacerlo</a>" #: templates/advanced-settings.php:39 msgid "Upgrade to get this feature" msgstr "Actualice para obtener esta función" #: templates/advanced-settings.php:32 msgid "Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again." msgstr "El inicio de sesión único les permite a sus clientes tener un inicio de sesión único para su sitio web de WordPress y su %s. Cuando alguien inicie sesión en su sitio web, también iniciará sesión automáticamente en su cuenta de cliente en la tienda sin necesidad de introducir su correo electrónico y contraseña nuevamente." #: templates/advanced-settings.php:27 msgid "Customer Single Sign-On" msgstr "Inicio de sesión único del cliente" #: includes/integrations/class-ecwid-integration-divibuilder.php:63 msgid "Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space." msgstr "Introduzca las clases CSS opcionales que se utilizarán para este módulo. Se puede utilizar una clase CSS para crear estilos CSS personalizados. Puede añadir varias clases separadas por un espacio." #: includes/integrations/class-ecwid-integration-divibuilder.php:60 msgid "CSS Class" msgstr "Clase CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:57 msgid "Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page." msgstr "Introduzca un ID de CSS opcional que se utilizará para este módulo. Se puede utilizar un ID para crear un estilo CSS personalizado o para crear enlaces a secciones particulares de su página web." #: includes/integrations/class-ecwid-integration-divibuilder.php:54 msgid "CSS ID" msgstr "ID de CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:51 msgid "This will change the label of the module in the builder for easy identification." msgstr "Esto cambiará la etiqueta del módulo en el creador para una fácil identificación." #: includes/integrations/class-ecwid-integration-divibuilder.php:49 msgid "Admin Label" msgstr "Etiqueta de administrador" #: includes/integrations/class-ecwid-integration-divibuilder.php:44 msgid "Here you can create the content that will be used within the module." msgstr "Aquí puede crear el contenido que se utilizará dentro del módulo." #: includes/integrations/class-ecwid-integration-divibuilder.php:41 msgid "Content" msgstr "Contenido" #: templates/admin-footer.php:29 msgid "<a %s>Reconnect</a>" msgstr "<a %s>Volver a conectar</a>" #: templates/help.php:15 msgid "https://support.ecwid.com/hc/en-us/search" msgstr "https://support.ecwid.com/hc/en-us/search" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:73 msgid "Browse by Category" msgstr "Buscar por categoría" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:15 msgid "Store Root Categories" msgstr "Categorías raíz de la tienda" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:14 msgid "Adds root categories list to the sidebar to let your customers navigate the store." msgstr "Añade la lista de categorías raíz a la barra lateral para que sus clientes puedan desplazarse por la tienda." #: templates/admin/welcome-connection-message.php:25 msgid "To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission." msgstr "Para vender utilizando %1$s, debe permitir que WordPress acceda al complemento %1$s. El botón «Conectar» lo redirigirá a su cuenta de %1$s donde puede otorgar el permiso." #: templates/admin-timeout.php:11 msgid "Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">our customer support team</a>." msgstr "Nuestro equipo ya está trabajando en este asunto. Actualice la página en unos minutos. Si el problema persiste, comuníquese con <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">nuestro equipo de atención al cliente</a>." #: templates/admin-timeout.php:9 msgid "Sorry we're having technical difficulties." msgstr "Le pido disculpas por las dificultades técnicas que estamos experimentando." #: includes/class-ecwid-floating-minicart.php:153 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:143 msgid "Top right" msgstr "Arriba a la derecha" #: includes/class-ecwid-floating-minicart.php:152 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:138 msgid "Bottom right" msgstr "Abajo a la derecha" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:135 #: includes/class-ecwid-customizer.php:110 msgid "Position" msgstr "Posición" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:20 msgid "Adds a shopping cart widget to the top right corner of your site." msgstr "Añada un «widget» de carrito de compras en la esquina superior derecha de su sitio web." #: templates/help.php:215 msgid "You can send a new request here." msgstr "Puede enviar una nueva solicitud aquí." #: templates/help.php:214 msgid " Thank you very much for contacting us! We will get back to you shortly." msgstr " ¡Muchas gracias por ponerse en contacto con nosotros! Nos pondremos en contacto con usted en breve." #: templates/help.php:213 msgid "Your email has been sent" msgstr "Se ha enviado su correo electrónico" #: templates/help.php:207 msgid "Send message failed" msgstr "Ocurrió un error al enviar el mensaje" #: templates/help.php:196 msgid "Send Message" msgstr "Enviar mensaje" #: templates/help.php:193 msgid "Type in your message here" msgstr "Escriba su mensaje aquí" #: templates/help.php:192 msgid "Subject" msgstr "Asunto" #: templates/help.php:186 msgid "Send a message to our support team" msgstr "Envíe un mensaje a nuestro equipo de asistencia" #: templates/help.php:177 msgid "Still have questions about Ecwid? Let us know!" msgstr "¿Todavía tiene preguntas acerca de Ecwid? ¡Háganoslo saber!" #: templates/help.php:176 msgid "Contact us" msgstr "Póngase en contacto con nosotros" #: templates/help.php:33 msgid "Frequently Asked Questions" msgstr "Preguntas frecuentes" #: templates/help.php:21 msgid "Search the Knowledge Base" msgstr "Buscar en la base de conocimientos" #: templates/help.php:17 msgid "E.g. How to set up shipping" msgstr "Por ejemplo, cómo establecer el envío" #: templates/help.php:11 msgid "How can we help you?" msgstr "¿Cómo podemos ayudarle?" #: includes/faq_entries.php:68 msgid "You can display your store on the site main page. Adjust the \"Reading\" settings of your site as described in our <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">Help Center.</a>" msgstr "Puede mostrar su tienda en la página principal del sitio web. Ajuste la configuración de «Lectura» de su sitio web como se describe en nuestro <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">centro de asistencia.</a>" #: includes/faq_entries.php:67 msgid "Is it possible to display my store on the site home page?" msgstr "¿Es posible mostrar mi tienda en la página de inicio del sitio web?" #: includes/faq_entries.php:61 msgid "To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">How to use it.</a>" msgstr "Para mostrar un solo producto en una página aparte o en una entrada de blog de su sitio web, utilice el código corto <b>[ecwid_product]</b>. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">Cómo utilizarlo</a>" #: includes/faq_entries.php:60 msgid "How to add a single product with the add to bag button to the site pages?" msgstr "¿Cómo añadir un solo producto con el botón de «añadir a la bolsa» en las páginas del sitio web?" #: includes/faq_entries.php:55 msgid "To create sitemap for your Wordpress site we suggest using <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> or <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">paid Ecwid users</a>." msgstr "Para crear un «Mapa del sitio» para su sitio web de Wordpress, le sugerimos que utilice los  complementos <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> o <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>. Estos complementos son totalmente compatibles con Ecwid y permiten generar un mapa del sitio que contiene enlaces a categorías y páginas de productos, por lo que las páginas de la tienda se indexarán más rápido. Tenga en cuenta que esta opción solo está disponible para los <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">usuarios de pago de Ecwid</a>." #: includes/faq_entries.php:54 msgid "How do I put my products in the sitemap?" msgstr "¿Cómo pongo mis productos en el mapa del sitio?" #: includes/faq_entries.php:48 msgid "You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open \"Appearance > Menus\" in your WordPress control panel and add the \"Store with Categories Menu\" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site." msgstr "Puede añadir el menú de categorías de la tienda al menú de su sitio web para ayudar a sus clientes a navegar fácilmente por su sitio web. Simplemente abra «Apariencia > Menús» en el panel de WordPress y añada el elemento «Tienda con menú de categorías» al menú de su sitio web. Aparecerá automáticamente un menú desplegable que contendrá las categorías de su tienda en su sitio web." #: includes/faq_entries.php:47 msgid "How do I add store categories to the site menu?" msgstr "¿Cómo puedo añadir categorías de tiendas al menú del sitio web?" #: includes/faq_entries.php:38 msgid "How much does Ecwid cost?" msgstr "¿Cuánto cuesta Ecwid?" #: includes/faq_entries.php:30 msgid "You can add product search box, cart widget and more on the <a href=\"%s\">\"Appearance / Widgets page\"</a> here in your site admin. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">More details.</a>" msgstr "Puede añadir un cuadro de búsqueda de productos, un «widget» de carrito y más desde la <a href=\"%s\">«Página de apariencia y widgets»</a> que se encuentra aquí en el administrador de su sitio web. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">Más detalles.</a>" #: includes/faq_entries.php:28 msgid "How can I add a cart widget to my site sidebar?" msgstr "¿Cómo puedo añadir un «widget» de carrito de compras a la barra lateral de mi sitio web?" #: includes/faq_entries.php:21 msgid "You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">More details.</a>" msgstr "Puede añadir su tienda en línea a su página empresarial de Facebook (no se necesitan complementos). Ecwid sincronizará automáticamente los productos, clientes, pedidos e inventario entre su tienda en línea de WordPress y Facebook. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">Más detalles.</a>" #: includes/faq_entries.php:20 msgid "How to set up a storefront on Facebook with Ecwid?" msgstr "¿Cómo crear una tienda en Facebook con Ecwid?" #: includes/faq_entries.php:13 msgid "Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">More details.</a>" msgstr "Ecwid ofrece aplicaciones móviles gratuitas para iOS y Android para que pueda gestionar su tienda y vender donde y cuando quiera. Escanee productos, supervise el inventario, gestione las ventas y acepte pagos utilizando su dispositivo móvil como una estación de punto de venta. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">Más detalles.</a>" #: includes/faq_entries.php:12 msgid "How can I manage my store from a mobile device?" msgstr "¿Cómo puedo gestionar mi tienda desde un dispositivo móvil?" #: includes/faq_entries.php:6 msgid "Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">More details.</a>" msgstr "Ecwid cuenta con la certificación PCI DSS Nivel 1, que es el estándar de oro para las soluciones de comercio electrónico en todo el mundo. Esto significa que no tendrá problemas de cumplimiento bancario cuando venda en línea con Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">Más detalles.</a>" #: includes/faq_entries.php:5 msgid "How secure is this plugin? Is my store PCI DSS compliant?" msgstr "¿Qué tan seguro es este complemento? ¿Mi tienda cumple con el PCI DSS?" #: includes/class-ecwid-nav-menus.php:32 msgid "Ecwid Menu Item" msgstr "Elemento del menú de Ecwid" #: includes/class-ecwid-admin.php:179 includes/class-ecwid-admin.php:180 msgid "Help" msgstr "Ayuda" #: templates/admin-footer.php:27 msgid "Want to connect another %s store?" msgstr "¿Desea conectar otra tienda de %s?" #: templates/admin-footer.php:17 msgid "Questions?" msgstr "¿Tiene alguna pregunta?" #: templates/admin-footer.php:6 msgid "Manage Store on iPhone, iPad or Android" msgstr "Gestione la tienda desde iPhone, iPad o Android" #: includes/class-ecwid-message-manager.php:254 msgid "Complete Setup" msgstr "Completar configuración" #: includes/class-ecwid-message-manager.php:253 msgid "Complete setup and start selling" msgstr "Complete la configuración y comience a vender" #: includes/class-ecwid-message-manager.php:242 msgid "Greetings! Your %s plugin is now active." msgstr "¡Enhorabuena! Su complemento de %s ya está activo." #: templates/debug.php:12 msgid "Download log file" msgstr "Descargar archivo de registro" #: templates/help.php:67 includes/oembed.php:75 includes/oembed.php:104 msgid "See more" msgstr "Ver más" #: ecwid-shopping-cart.php:1051 msgid "I have a problem with my %s store" msgstr "Tengo un problema con mi tienda de %s" #: includes/class-ecwid-message-manager.php:55 msgid "Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: \"The Wordpress function wp_remote_post() failed to connect a remote server because of some error: \"%s\". Seems like HTTP POST requests are disabled on this server\". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>." msgstr "Lo siento, hay un problema. Se supone que esta página muestra el panel de control de su tienda; sin embargo, este sitio web de Wordpress no parece poder conectarse al servidor de Ecwid para mostrar el panel de su tienda aquí. Es probable que esto se deba a una mala configuración del servidor; su proveedor de alojamiento web puede solucionarlo. Aquí hay una descripción más técnica del problema, la cual puede enviarle a su proveedor de alojamiento web: «La función de Wordpress wp_remote_post() no pudo conectarse a un servidor remoto debido al error: “%s”; parece que las solicitudes HTTP POST están inhabilitadas en este servidor». <br /><br />No dude en ponerse en contacto con nosotros en <a %s>wordpress@ecwid.com</a> y le ayudaremos a comunicarse con su proveedor de alojamiento web para pedirle que solucione el problema. <br /><br /> Mientras tanto, para gestionar su tienda, puede utilizar el panel de control web de Ecwid en <a %s>my.ecwid.com</a>. Su escaparate virtual está funcionando bien; puede echarle un vistazo aquí: <a %s>%s</a>." #: templates/store-popup.php:249 msgid "Open store dashboard" msgstr "Abrir el panel de la tienda" #: templates/store-popup.php:12 templates/store-popup.php:27 msgid "Store elements" msgstr "Elementos de la tienda" #: templates/reconnect-sso.php:10 msgid "Re-connect to Enable Control Panel" msgstr "Vuélvase a conectar para activar el panel de control" #: templates/reconnect-sso.php:8 msgid "Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page." msgstr "Gestione productos, supervise las ventas y ajuste la configuración: <nobr>todo sin</nobr> salir de esta página." #: templates/reconnect-sso.php:7 msgid "Your store Control Panel. Right here in WordPress." msgstr "Panel de control de su tienda. Aquí mismo en WordPress." #: ecwid-shopping-cart.php:2114 msgid "Orders" msgstr "Pedidos" #: includes/class-ecwid-nav-menus.php:168 ecwid-shopping-cart.php:2118 msgid "The store top-level categories are automatically added to this drop-down menu" msgstr "Las categorías de alto nivel de la tienda se añaden automáticamente a este menú desplegable" #: includes/class-ecwid-nav-menus.php:167 ecwid-shopping-cart.php:2117 msgid "Done" msgstr "Hecho" #: includes/class-ecwid-nav-menus.php:166 ecwid-shopping-cart.php:2116 msgid "Refresh categories list" msgstr "Actualizar la lista de categorías" #: includes/class-ecwid-nav-menus.php:165 msgid "Store Page" msgstr "Página de la tienda" #: includes/class-ecwid-nav-menus.php:319 msgid "Add to Menu" msgstr "Añadir al menú" #: includes/class-ecwid-nav-menus.php:316 msgid "Select All" msgstr "Seleccionar todo" #: includes/class-ecwid-nav-menus.php:369 msgid "Store with Categories Menu" msgstr "Tienda con menú de categorías" #: includes/class-ecwid-nav-menus.php:352 #: includes/class-ecwid-nav-menus.php:355 msgid "My Account" msgstr "Mi cuenta" #: includes/class-ecwid-nav-menus.php:335 #: includes/class-ecwid-floating-minicart.php:135 #: includes/class-ecwid-admin-storefront-page.php:279 msgid "Cart" msgstr "Carrito" #: includes/class-ecwid-admin.php:87 includes/class-ecwid-admin.php:88 #: includes/class-ecwid-products.php:228 ecwid-shopping-cart.php:2112 msgid "Products" msgstr "Productos" #: includes/class-ecwid-admin.php:79 includes/class-ecwid-admin.php:80 msgid "Sales" msgstr "Ventas" #: ecwid-shopping-cart.php:1119 msgid "Report a problem with the store" msgstr "Informar un problema con la tienda" #: ecwid-shopping-cart.php:1036 msgid "%s plugin doesn't work well with my \"%s\" theme" msgstr "El complemento %s no funciona bien con mi tema «%s»" #: templates/admin/welcome-connection-message.php:22 #: templates/admin/welcome-connection-message.php:28 msgid "Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL." msgstr "Parece que su sitio web no admite solicitudes POST remotas, las cuales son necesarias para que la API de %s funcione. Comuníquese con su proveedor de alojamiento web para habilitar cURL." #. Description of the plugin msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up." msgstr "Ecwid es un carrito de compras gratuito con todas las funciones. Se puede integrar fácilmente con cualquier blog de Wordpress y se configura en menos de 5 minutos." #. Plugin URI of the plugin msgid "http://www.ecwid.com?partner=wporg" msgstr "http://www.ecwid.com?partner=wporg" #: templates/store-svg.php:12 msgid "Demo Store" msgstr "Tienda de demostración" #: templates/store-svg.php:9 msgid "Your store will be shown here!" msgstr "¡Su tienda se mostrará aquí!" #: templates/product-popup.php:248 templates/store-popup.php:256 msgid "Update" msgstr "Actualizar" #: templates/store-popup.php:253 msgid "Insert into page" msgstr "Insertar en la página" #: templates/store-popup.php:246 msgid "Demo store" msgstr "Tienda de demostración" #: templates/store-popup.php:80 msgid "Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>" msgstr "Además, puede añadir controles de la tienda a la barra de herramientas de su sitio web mediante <a %s>«widgets» nativos de WordPress</a>." #: templates/store-popup.php:74 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:86 msgid "Show categories" msgstr "Mostrar categorías" #: templates/store-popup.php:66 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:94 msgid "Show minicart" msgstr "Mostrar minicarrito" #: templates/store-popup.php:58 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:78 msgid "Show search" msgstr "Mostrar búsqueda" #: templates/store-popup.php:53 msgid "Product catalog will be shown automatically" msgstr "El catálogo de productos se mostrará automáticamente" #: templates/store-popup.php:52 msgid "Choose widgets to show" msgstr "Elija los «widgets» a mostrar" #: templates/admin/welcome-create.php:7 msgid "Connect your store" msgstr "Conecte su tienda" #: templates/admin/welcome-no_oauth.php:6 #: templates/importer/import-no-token.tpl.php:6 #: includes/class-ecwid-message-manager.php:291 msgid "Connect" msgstr "Conectar" #: templates/admin/legacy-connect.tpl.php:68 msgid "Save and connect your %s store to the site" msgstr "Guarde y conecte su tienda de %s al sitio web" #: templates/admin/legacy-connect.tpl.php:59 msgid "Enter your Store ID here:" msgstr "Introduzca el ID de su tienda aquí:" #: templates/admin/legacy-connect.tpl.php:52 msgid "Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the \"Dashboard\" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration." msgstr "El ID de la tienda es un identificador único de cualquier tienda de %1$s, el cual consta de varios dígitos. Puede encontrarlo en la página «Panel» del panel de control de %1$s. El ID de la tienda se enviará en el correo electrónico de bienvenida después del registro." #: templates/admin/legacy-connect.tpl.php:50 msgid "Find your Store ID" msgstr "Encuentre el ID de su tienda" #: templates/admin/legacy-connect.tpl.php:46 msgid "You will be able to sign up through your existing Google, Facebook or PayPal profiles as well." msgstr "También podrá registrarse a través de sus perfiles existentes de Google, Facebook o PayPal." #: templates/admin/legacy-connect.tpl.php:42 msgid "I already have an account, sign in" msgstr "Ya tengo una cuenta, iniciar sesión" #: templates/admin/legacy-connect.tpl.php:35 msgid "Create a new %s account which you will use to manage your store and inventory. The registration is free." msgstr "Cree una nueva cuenta de %s que utilizará para gestionar su tienda e inventario. El registro es gratuito." #: templates/admin/legacy-connect.tpl.php:24 msgid "The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps." msgstr "El primer paso para abrir su negocio en línea: <br />añadamos una tienda a su sitio web de WordPress en <strong>3</strong> simples pasos." #: templates/admin/legacy-connect.tpl.php:21 msgid "Thank you for choosing %s to build your online store" msgstr "Gracias por elegir %s para construir su tienda en línea" #: templates/admin/simple-dashboard.php:58 msgid "Open control panel" msgstr "Abrir el panel de control" #: templates/admin/simple-dashboard.php:42 msgid "Your %s store is connected<br /> to your WordPress website" msgstr "Su tienda de %s está conectada<br /> a su sitio web de WordPress" #: templates/admin/simple-dashboard.php:39 msgid "Greetings!" msgstr "¡Saludos!" #: templates/admin/simple-dashboard.php:34 msgid "Your %s store is now connected<br /> to your WordPress website" msgstr "Su tienda de %s ahora está conectada<br /> a su sitio web de WordPress" #: templates/admin/simple-dashboard.php:31 msgid "Congratulations!" msgstr "¡Enhorabuena!" #: templates/admin/simple-dashboard.php:18 msgid "Disconnect store" msgstr "Desconectar tienda" #: templates/admin/legacy-connect.tpl.php:65 #: templates/admin/simple-dashboard.php:14 templates/store-popup.php:244 #: templates/store-svg.php:14 #: includes/integrations/class-ecwid-integration-gutenberg.php:104 #: includes/gutenberg/class-ecwid-gutenberg.php:130 msgid "Store ID" msgstr "ID de la tienda" #: templates/admin/welcome-connection-message.php:15 msgid "Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again." msgstr "Error de conexión: después de hacer clic en el botón, debe iniciar sesión y otorgar los permisos para poder utilizar nuestro complemento. Inténtelo de nuevo." #: templates/admin/legacy-connect.tpl.php:57 #: templates/admin/welcome-no_oauth.php:3 msgid "Enter your Store ID" msgstr "Introduzca el ID de su tienda" #: templates/store-popup.php:221 msgid "Default view mode on search results" msgstr "Modo de vista predeterminado en los resultados de búsqueda" #: templates/store-popup.php:214 templates/store-popup.php:232 msgid "Table" msgstr "Tabla" #: templates/store-popup.php:211 templates/store-popup.php:229 msgid "List" msgstr "Lista" #: templates/store-popup.php:208 templates/store-popup.php:226 msgid "Grid" msgstr "Cuadrícula" #: templates/store-popup.php:204 msgid "Default view mode on product pages" msgstr "Modo de vista predeterminado en las páginas de productos" #: templates/store-popup.php:184 msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products." msgstr "Aquí puede gestionar cuántos productos se mostrarán por página. Estas opciones definen valores máximos. Si no hay suficiente espacio para mostrar todas las columnas de productos, %s adaptará el número de columnas para mantener todos los productos." #: templates/store-popup.php:169 msgid "Table view" msgstr "Vista de tabla" #: templates/store-popup.php:152 msgid "List view" msgstr "Vista de lista" #: templates/store-popup.php:125 msgid "Grid view" msgstr "Vista de cuadrícula" #: templates/store-popup.php:123 msgid "Number of products per page" msgstr "Número de productos por página" #: templates/store-popup.php:191 msgid "Number of categories per row" msgstr "Número de categorías por fila" #: templates/advanced-settings.php:98 msgid "Save changes" msgstr "Guardar cambios" #: includes/class-ecwid-product-browser.php:202 msgid "Default category ID" msgstr "ID de categoría predeterminada" #: templates/store-popup.php:98 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:127 #: includes/integrations/class-ecwid-integration-gutenberg.php:427 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:56 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:248 msgid "Store root category" msgstr "Categoría raíz de la tienda" #: templates/store-popup.php:90 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:101 msgid "Category shown by default" msgstr "Categoría mostrada por defecto" #: templates/admin-message.php:47 msgid "Never show this message again" msgstr "Nunca mostrar este mensaje otra vez" #: templates/product-popup.php:194 lib/ecwid_platform.php:209 #: js/gutenberg/blocks.build.js:1 msgid "Price" msgstr "Precio" #: includes/class-ecwid-store-editor.php:75 #: includes/integrations/class-ecwid-integration-gutenberg.php:102 #: includes/gutenberg/class-ecwid-gutenberg.php:128 msgid "Edit Appearance" msgstr "Editar apariencia" #: includes/class-ecwid-store-editor.php:60 msgid "Edit Store" msgstr "Editar tienda" #: templates/store-popup.php:11 templates/store-popup.php:21 #: includes/class-ecwid-store-editor.php:52 msgid "Add Store" msgstr "Añadir tienda" #: includes/class-ecwid-message-manager.php:261 msgid "Back to Store Settings" msgstr "Regresar a la configuración de la tienda" #: includes/class-ecwid-message-manager.php:252 msgid "Your store is almost ready!" msgstr "¡Su tienda ya está casi lista!" #: includes/class-ecwid-message-manager.php:243 msgid "Take a few simple steps to complete store setup" msgstr "Siga unos sencillos pasos para completar la configuración de la tienda" #: includes/widgets/class-ecwid-widget-products-base.php:205 msgid "Number of products to show" msgstr "Número de productos para mostrar" #: includes/widgets/class-ecwid-widget-recently-viewed.php:89 msgid "Store Link Title" msgstr "Título del enlace de la tienda" #: templates/product-popup.php:183 includes/class-ecwid-product-browser.php:249 #: includes/widgets/class-ecwid-widget-products-base.php:199 #: js/gutenberg/blocks.build.js:1 msgid "Title" msgstr "Título" #: includes/widgets/class-ecwid-widget-recently-viewed.php:69 #: includes/widgets/class-ecwid-widget-recently-viewed.php:91 msgid "You have not viewed any product yet. Open store." msgstr "Aún no ha visto ningún producto. Abra la tienda." #: includes/widgets/class-ecwid-widget-recently-viewed.php:11 msgid "Recently Viewed Products" msgstr "Productos vistos recientemente" #: includes/widgets/class-ecwid-widget-recently-viewed.php:12 msgid "Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop." msgstr "Muestra una lista de productos vistos recientemente por el cliente para volver fácilmente a los productos que vieron en su tienda." #: includes/widgets/class-ecwid-widget-store-link.php:35 msgid "Text" msgstr "Texto" #: includes/themes/class-ecwid-theme-twentyseventeen.php:48 #: includes/themes/class-ecwid-theme-twentyseventeen.php:54 #: includes/themes/class-ecwid-theme-twentyfifteen.php:34 #: includes/themes/class-ecwid-theme-twentyfifteen.php:40 #: includes/themes/class-ecwid-theme-twentysixteen.php:36 #: includes/themes/class-ecwid-theme-twentysixteen.php:42 #: includes/widgets/class-ecwid-widget-store-link.php:31 msgid "Shop" msgstr "Tienda" #: includes/widgets/class-ecwid-widget-store-link.php:10 msgid "Store Page Link" msgstr "Enlace a la página de la tienda" #: includes/widgets/class-ecwid-widget-store-link.php:9 msgid "Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site." msgstr "Muestra un enlace a la página de la tienda en la barra lateral para que el cliente acceda rápidamente a su tienda desde cualquier página del sitio web." #: includes/widgets/class-ecwid-widget-vcategories.php:9 msgid "Store Categories" msgstr "Categorías de la tienda" #: includes/widgets/class-ecwid-widget-vcategories.php:8 msgid "Adds vertical categories block to let the customer navigate your store." msgstr "Añade un bloque de categorías verticales para permitir que el cliente navegue por su tienda." #: includes/class-ecwid-nav-menus.php:344 #: includes/class-ecwid-nav-menus.php:347 #: includes/widgets/class-ecwid-widget-search.php:13 msgid "Product Search" msgstr "Búsqueda de productos" #: includes/widgets/class-ecwid-widget-search.php:12 msgid "Displays a simple search box for your customers to find a product in your store" msgstr "Muestra un cuadro de búsqueda simple para que sus clientes encuentren un producto en su tienda." #: includes/widgets/class-ecwid-widget-minicart-miniview.php:8 msgid "Adds a compact cart widget for customer to see the products they added to the cart." msgstr "Añade un «widget» de carrito compacto para que el cliente vea los productos que se han añadido al carrito." #: includes/widgets/class-ecwid-widget-minicart.php:41 #: includes/widgets/class-ecwid-widget-random-product.php:67 #: includes/widgets/class-ecwid-widget-search.php:46 #: includes/widgets/nsf-minicart-editor.tpl.php:50 #: includes/widgets/class-ecwid-widget-minicart-miniview.php:41 #: includes/widgets/class-ecwid-widget-vcategories.php:39 #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:76 msgid "Title:" msgstr "Título:" #: includes/class-ecwid-nav-menus.php:338 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:20 msgid "Shopping Cart" msgstr "Carrito de compras" #: includes/widgets/class-ecwid-widget-minicart.php:8 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:19 msgid "Adds a cart widget for customer to see the products they added to the cart." msgstr "Añade un «widget» de carrito para que el cliente vea los productos que se han añadido al carrito." #: includes/widgets/class-ecwid-widget-badge.php:51 #: includes/widgets/class-ecwid-widget-badge.php:63 msgid "Ecwid e-commerce widgets" msgstr "«Widget» de comercio electrónico de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:45 #: includes/widgets/class-ecwid-widget-badge.php:57 msgid "Ecwid shopping cart" msgstr "Carrito de compras de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:39 #: includes/widgets/class-ecwid-widget-badge.php:75 msgid "Ecwid free shopping cart" msgstr "Carrito de compras gratuito de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:33 #: includes/widgets/class-ecwid-widget-badge.php:69 msgid "Ecwid ecommerce solution" msgstr "Solución de comercio electrónico de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:21 #: includes/widgets/class-ecwid-widget-badge.php:27 msgid "Ecwid shopping cart widget" msgstr "«Widget» de carrito de compras de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:14 msgid "Ecwid Badge" msgstr "Distintivo de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:13 msgid "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid." msgstr "¿Le gusta Ecwid y quiere ayudarlo a crecer? Puede añadir este elegante distintivo «Powered by Ecwid» en su sitio web para mostrarles a sus visitantes que es un usuario orgulloso de Ecwid." #: ecwid-shopping-cart.php:2791 msgid "Recommendations for Your Online Store" msgstr "Recomendaciones para su tienda en línea" #: includes/class-ecwid-admin.php:528 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:77 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:87 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:95 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:103 #: ecwid-shopping-cart.php:2056 msgid "Settings" msgstr "Configuraciones" #: includes/class-ecwid-admin.php:165 msgid "Advanced" msgstr "Avanzado" #: includes/class-ecwid-admin.php:164 msgid "Advanced settings" msgstr "Configuraciones avanzadas" #: templates/product-popup.php:206 templates/store-popup.php:14 #: templates/store-popup.php:34 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:44 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:78 #: js/gutenberg/blocks.build.js:1 msgid "Appearance" msgstr "Apariencia" #: includes/class-ecwid-admin.php:28 includes/class-ecwid-admin.php:59 #: includes/class-ecwid-admin.php:459 ecwid-shopping-cart.php:2110 msgid "Dashboard" msgstr "Panel" #: includes/class-ecwid-admin.php:57 ecwid-shopping-cart.php:2056 msgid "Setup" msgstr "Configuración" #: includes/class-ecwid-admin.php:47 msgid "%s shopping cart settings" msgstr "Configuraciones del carrito de compras de %s" #: includes/class-ecwid-nav-menus.php:132 #: includes/class-ecwid-nav-menus.php:361 #: includes/class-ecwid-nav-menus.php:364 #: includes/class-ecwid-nav-menus.php:372 includes/class-ecwid-admin.php:206 #: includes/class-ecwid-admin.php:207 includes/class-ecwid-admin.php:220 #: includes/class-ecwid-admin.php:221 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:63 #: includes/class-ecwid-admin-storefront-page.php:257 #: ecwid-shopping-cart.php:1657 msgid "Store" msgstr "Tienda" #: ecwid-shopping-cart.php:1306 msgid "<a %s>Online store powered by %s</a>" msgstr "<a %s>Tienda en línea con tecnología de %s</a>" #: includes/class-ecwid-admin.php:489 msgid "Sell on Facebook" msgstr "Vender en Facebook" #: templates/admin/simple-dashboard.php:48 ecwid-shopping-cart.php:1094 msgid "Visit storefront" msgstr "Visitar escaparate virtual" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/languages/ecwid-shopping-cart-es_UY.mo������������������������������������������0000644�����������������00000225044�15122273603�0017617 0����������������������������������������������������������������������������������������������������ustar�00�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������e�����D��5��l&������@3�����A3��H���Y3�����3�����3�����3�����3�����3�� ���3��.���3�� ���4�� ��� 4�����,4�����J4�����e4����4�����g6��B���6�����6�����6�����6�����7��$���97�����^7�����r7�����7�����7��/���r8�� ���8�� ���8�����8�����8�����8�����8�����9��#���%9�� ���I9�����T9�����o9�����~9�� ���9�� ���9��>���9��"��� :�����-:�����:��k���:��K���h;��S���;��A���<��R���J<��G���<��4���<�� ���=�����&=�����/=��&���A=�����h=��T���{=�� ���=�����=�����=�����=�����>�����>�����#>�� ���*>�����8>�����?>�� ���G>�� ���S>�� ���`>�����l>�����>��4���>�� ���>�����>�����>�����>��X���>�� ���V?�����`?��/���g?��,���?�����?�����?�����?�� ���?�� ���?�����?�� ���?����� @�����@�����,@�����A@�����[@�����{@�����@�����@�����@�����@�����@�����@��.���@�����A�����5A��D���LA�����A�����A�� ���A�� ���A�����A�����A�����A����� B����� B��x���3B�����B�� ���B�����B�� ���B�����B�����C�����C�����*C�� ���=C�����JC��5���\C��h���C�����C�����D�� ���D�� ���D��5���D�����E�� ���E��x���%E��i���E�����F�����F�����4F�����QF�����bF�����F�� ���F�����F�����G�����$G��"���7G��#���ZG��/���~G�� ���G�� ���G�����G�����G�����G�����G�����H�����H�����-H�����?H��!���WH�����yH�����H��6���H��!���H�����H��*���I��%���:I�����`I��'���vI�����I�����I��,���I�����I��q���J��s���yJ��#���J��H���K��O���ZK��1���K��s���K�� ���PL�����\L��v���L�����uM��$���zM�����M�����M�����M�� ���M�����M�����M����� N��s���N�����N�����N�����N��=��N�����P����P����Q�����R�����R����� S�����S�� ��� S�� ���.S�� ���;S�� ���FS�� ���TS�����^S�����S�����T�����T�����T��B���T��$���)U�����NU�����VU�����mU�� ���U�����U�����U�� ���U�����U�� ���U��(���U�����V�� ���V�����V�����#V��.���V�����W��D���W��h���%X�����X��_���X��C���X�����7Y�����IY��/���_Y��/���Y�����Y��/���Y��(���Z�����-Z��9���GZ��I���Z��2���Z��"���Z��:���![�����\[��"���t[��!���[�����[�����[�����[�����[��$��� \��*���1\��B���\\�����\�� ���\�����\�� ���\�����\��+���\�����]��-���,]��P���Z]�����]��#���]��'���]��)��� ^�� ���7^�����X^��%���g^��+���^��+���^�����^�����_�����_�����!_�� ���2_��$���?_��9���d_��%���_��:���_�����_�����`�����`�����&`�����(`�� ���=`�� ���K`�� ���Y`�� ���c`�����o`�����`�����`�� ���`�����`�����`�� ���`�����`�����`�� ���`�����`�����oa�����a�����a��S���a�����a��'���a��[���'b�� ���b�����b�� ���b�����b�� ���b�� ���b�����b�����b�� ���b��9���b�����c�� ���:c�� ���Dc�� ���Nc�� ���Xc�����bc�����wc��I���Jd�����d�����d�����d�� ���d�� ���d�� ���e�����e�� ��� e�����-e�����@e�����Ue�����]e�����de�����je�����if��#���Og�����sg�� ���g�����g�����lh�����th�� ���i�� ���i�����i�����%i��O��*i��4���zj�����j�� ���j�� ���j�����j�����j�� ���j�����j�� ����k����� k�����k�����'k�����:k�����Rk�� ���jk�����vk�����k�����k�����k��+���k�����k�� ��� l�����l�����*l�����Bl�����al�� ���xl�����l��I���l��'���l�����m�����m�����$m�����=m�����Em��#���Xm�� ���|m�����m�� ���m�����m�����m�����m��"���m�����m��%���n�� ���4n�����>n�����Vn�����en�����n�����n�����n�����n�����n�����n�����n��*���n�� ���n�����n�����n�����o�����o�����/o�� ���8o�����Co�����So�����do�����vo�� ���o��"���o�����o�����o�� ���o�����o�����o�����p����� p�����p�� ���"p�����0p��#���Kp�����op�����p�����p�����p�����p�����p��V���p�� ���Bq�� ���cq�����qq�� ���q�����q��&���q��(���q�����q�����r�� ���&r�����2r�� ���Br�� ��cr�� ���ns�����ys��(���s��*���s����s�� ���ow�� ���zw�����w�����w��.���$x�����Sx�����Yx�����jx�����x�����x�����x�����x�����x�����y�����z�����0z�� ���Az�����Lz�����\z�����rz�����z�����z�����z�����z�����z�����z�� ���z�����{�����{�����${�����4{�����I{�� ���O{��/���Z{��N���{�����{�� ���{��4���{�����|��=���|�����}��-���}�����}��%���~��M���~�������P�����H���h��P��������������� ����� ���"�����/�����A�����H�����ۀ������� ��4��E��>�������]��������l��%��^��*����*����y���ڊ��>���T�������h���5��L���������� ������������������,�����5�����<�����P�����l�����|�������������������������ԍ����������������� �����!��� ��j���B����������E��^���ŏ�����$�����,�����F�� ���V�����c������� ���������C����B����k���@���������������V�� ������0���!��^���R�������:���Ę��>��������>�����N�����j�� �����2�����?���Ù����������֚������������y�����A��������Q�����o������:��������J�����_�� �����"��������Þ��"���ߞ��H�����)���K�����u�������&�����(���ן���������������� �����4����G�����$��e���:��'��������Ȣ�� ���ˢ�����֢�� ����������5����� ���M�� ���Y�����f�������,�������̣�����W��B���v��!��������ۦ��!����������0���=�����n����������������*���������������(�����!���1�����S��*���p�������+����� �����!����������6���)��1���`�������C�����/����������!��������2��e�����n���&��Z�����o�����^���`��R�������������,�����5��5���O�������h����� ��� �� �����!���!��)���C�����m�����}�������������������������������� ���Ӱ������������:��������O�� ���`�����n�������`����� ����� �����=�����9���W�������������������������β�� ����� ����� �����%�����!���(�����J��5���j��(��������ɳ��%���ҳ�������!���������"�����2��C���B��(����������g���ϴ�����7�����Q��.���j�������������������������ҵ������������%�����!���Ŷ�� �����!�������������-�����J�����e�� ����������8�����j��������O������� ��������(��I���7��$���������������x���@�������'���Ѻ��5��������/�����G�������������������������6��9���U��;�����0���˼���������������,�����4�����H�����b�����u�����������������2�����!�����#���5��I���Y��+��������Ͼ��6�����/���%�����U��2���s��&��������Ϳ��E��������2�����D�������*���c��P�����`�����:���@�����{�� ��� ���������������U��3���[������������'���������������5��������D�����`��,�����+��� ��$���L��t��q�������A����h�������6��)���R�����|����������������� �����$�������������������������$����������Y�����*���?�����j�����r�����������������%������������� �� ���$��4���/�� ���d�����p������������;����������D�����g��������l��p���t��Q��������7�����K��]���c��>�����������D�����1���_�������I�����g�����/���[��$�����7����������0�����%���8��"���^������������%�����/�����7�����@���1��.���r�������#����� ����������)����������>���,��h���k��!�����%�����1�����3���N��'����������(�����)�����)��������B�����a�����������������-�����E�����-���+��8���Y������� ��������������� ����������������������� �����7�����J�����R�����[�� ���m�����w������������������������������}������������s��������*��/���E��q���u������������ ��������&�� ���-�� ���7�� ���A�����L�� ���S��A���_��#��������������� ����� ����������)����c���H������� �����!���������� ��������+��#���<�����`�����q����������������������I���������%��������(�� ���:�����G����������$���������������������������9���������� ����� ����� ����� ��� ����������*�����1�����B�����K�����f��#�����%��������������� ����� �����+���5��7���a��"���������������*�����1�����$���C�����h�� ���}��a�����0�������������/�����?�����^�� ���g��4����� ������������������������������5���-�����c��(����� �����"����������"������������������ �����"�����&�����-�����>��-���F�����t�����������������"���������������������������������2�����E��0���T��&��������������������������������� ����������#��"���6��+���Y�������/�����!����������+��������(�����<��(������������������ ��$���;��8���`��8�����)�����#�������� �����2��)���N��M��x�������$�����2�����L���-��,��z�� ��������������������?���������������!�����#��������7�����V�����u��������������3�����S�����l�� �������������������������$�����$���+�����P�����n�������������������������������������G�����W���C������������8����������Y����������:���z�����'����_��������X���&�^����U�������4����<� ���Q� ���^����l������������M�����#��������� �u���= ��� �@�� �@���U��H�����P���:�����~���:�a�����������1����E����]����v� ��������$������������ ���� ��������,���6����c������������� ����#���������������(�]���� ��� ��������0� ���I����W�����V��&����}���U�`������H�+�����������'��� �2��� �^����!����_!�A���v!�G���!�����"����"�$���6"� ���["�8���g"�;���"�5��"� ���$����3$����$����$�R���%����%���� &���-&�[��� (����e(� ���}(����(�"���(����(�"���(�H���(�)���9)����c)�(���~)����)����)����)����)����)����*��������I����������������k������R��W��y����$��%���������������������������������������#�����y���R��#��������J���Z���������?���B��^��>������������������������� ��� ��3����1�����U������>�������K��q����������������������-���������������������v���8������:���/������g��d�����������������S��?�����������������������'���������,������������j��Z��������P���������W������������S���������]����������T����������� �������6�������������������r�������������c��9����������,������������������k��������������%���������������������������������������������L���"�������a����������W��t�������������������}��.������ ��$������K������G���������~���������������0������w������������E��������7����������������������������Q��������F������������������:��\�����������������O�����X��'��*��3������1������ ���������������������u������������9�����E�����������C�����������������������������?������8��a��_���b�������L������@��&������*��I��C���J�����Y���������D������������$���������;��F���������N������G������'���������������0�����@�����^��������c�����������������u����>��:��������.�����������M��j���[��S����������������4������� ������������H�������������@���������������K�����]���������P���&�������������������%���� ��c������h��X���A��������#�����������z�������3�����(����������������������������������������������Q��������e�������������-����������i���������D����p�������!��������������(������������X��5����7���������=��������������;������N���������P������������������T��������������\������Z����������������������&����� ��������� ���`�������|�����������`������������<���������e���+�������A�����=����������������������)�������Q������������������������f��!����� ���b��a���M��{�������<��7�������������������������������������H��������6��O��s���`����������9�����*���������-��}���"���������r���������0��������������{������������������������������������l��H����������v����d��/����� ��]���t���p�����2�����������d��������g������U���������C�������w���������[���l������������������������<��������� ���o���1��� ����������V��f������N�� ��E��������������������������������� �����������������������/������,��������~�����������������������!������[����n�����������_��"�����(�������2���J��x��h���_���� ��������o������M������4��=��8������������2����� ��4������������m���������������������������5��n��I���;�����)������6��L��V������������+����+��A�������������������������Y��B��F������ �������)��������m��i�����������5���^������|���z���������������������U����������x�����������\����q������������O���������������V����������b���������������������������������������Y�������������.�����D������������������B�������G��s�������������R�����T����e���������� Choose another product� Thank you very much for contacting us! We will get back to you shortly.�"In stock" label�%s�%s Blog�%s Shopping Cart�%s Store�%s Store Page�%s plugin doesn't work well with my "%s" theme�%s product�%s products�%s products and %s categories�%s products and categories�%s shopping cart settings�%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site.�%s — Advanced settings�(You will be able to confirm the changes before the actual import)�2 columns, image on the left�2 columns, image on the right�3 columns, image on the left�3 columns, image on the right�<a %s>Online store powered by %s</a>�<a %s>Reconnect</a>�<a href="admin.php?page=�<b>%s</b> categories�A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use "/shop" or "/products".�Action required: please connect your %s account�Add Product�Add Store�Add Store Page to Menu�Add a category page�Add a product page�Add a search and filters page�Add a store page�Add an Online Store to Your Website�Add border�Add cart and checkout page�Add categories�Add store page to the site menu�Add storefront (product listing)�Add to Menu�Add your %s store to the website and start selling in minutes.�Add your store to other site pages�Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href="%s" target="_blank">WordPress Settings > Reading</a>�Additional store pages�Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>�Adds a cart widget for customer to see the products they added to the cart.�Adds a compact cart widget for customer to see the products they added to the cart.�Adds a shopping cart widget to the top right corner of your site.�Adds root categories list to the sidebar to let your customers navigate the store.�Adds vertical categories block to let the customer navigate your store.�Adjust your store design to fit your business needs.�Admin Label�Advanced�Advanced settings�After import, your %s store will have �All Sales Channels�Along with the store catalog, you can add other widgets and texts to the store page.�Appearance�Apps�Available qty in stock�Back to Store Settings�Background color�Bag�Basket�Before You Go�Border�Border:�Bottom left�Bottom right�Breadcrumbs�Browse all products.�Browse by Category�Bulk import products and categories to your %s store�Button color�Buy Now�Buy Now Button�Buy now buttons�By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>.�CSS Class�CSS ID�Can you share the name of the plugin you chose?�Can you share your feedback? What was wrong?�Cancel�Cart�Cart and Checkout�Cart icon�Cart icon:�Catalog�Categories�Category�Category List Appearance�Category card layout�Category shown by default�Category thumbnail aspect ratio�Category thumbnail size�Center�Center align on a page�Change�Change store content�Choose Product�Choose product�Choose product properties to display in widget�Choose the main store page�Choose widgets to show�Click the connect button to get rights to update the product catalog�Color settings�Complete Setup�Complete setup and start selling�Configuration�Congratulations!�Connect�Connect Your Store�Connect your %s store�Connect your store�Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again.�Contact Support�Contact us�Content�Copying products and categories.�Create Cart Page�Create Category Page�Create Product Page�Create Search Page�Create Store�Create Store Page�Create a landing page featuring one of your products.�Create a new %s account which you will use to manage your store and inventory. The registration is free.�Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website.�Create new account�Create store�Current Page�Current URL slug: /<span data-ec-store-slug>%s</span>�Customer Single Sign-On�Customers�Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers.�Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout.�Customize design�Customize store appearance�Customize store page address�Customize widget�Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand.�Cyan bluish gray�Dashboard�Default category�Default category ID�Default product_ID�Default view mode on product pages�Default view mode on search results�Deleted products synchronized: %1$s out of %2$s�Demo Store�Demo store�Design�Design and content�Detect automatically�Disconnect store�Display a buy button�Display breadcrumbs�Display cart icon�Display categories menu�Display categories navigation bar�Display category page�Display footer menu�Display product page with description and a buy button�Display product with a buy button�Display search box�Display search page with filters on a side�Display shopping bag link and summary�Display shopping cart�Display shopping cart and checkout page�Display sign in link�Display sort by link�Display the shopping cart icon on site pages�Displayed product�Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site.�Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop.�Displays a list of random products.�Displays a random product from your store to attract customer attention.�Displays a simple search box for your customers to find a product in your store�Displays storefront: product listing and checkout�Displays the latest added products from your store. Show new products to returning customers to drive repeat sales.�Do not show�Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid.�Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site.�Done�Download <a href="%s">import log</a>�Download log file�Draft�E.g. How to set up shipping�Ecwid Badge�Ecwid Ecommerce�Ecwid Ecommerce Shopping Cart�Ecwid Menu Item�Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center�Ecwid e-commerce widgets�Ecwid ecommerce solution�Ecwid free shopping cart�Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">More details.</a>�Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up.�Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href="%s">TemplateMonster themes</a>�Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">More details.</a>�Ecwid shopping cart�Ecwid shopping cart widget�Edit�Edit Appearance�Edit Category�Edit Product�Edit Store�Edit URL Slug�Edit page�Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page.�Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space.�Enter your Store ID�Enter your Store ID here:�Extensions for your Store�Feature a specific store category on a separate page of your site.�Feature your products in the sidebar�Filters�Filters panel position�Find your Store ID�First Page�Frequently Asked Questions�Get %s mobile app�Go to Pages�Go to Your %s Products�Greetings!�Greetings! Your %s plugin is now active.�Grid�Grid view�Help�Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars.�Help customers find your store on the website.�Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products.�Here you can create the content that will be used within the module.�Here, we will help you uploading your product catalog to %s from another shopping cart or other sources.�Hide�Highlight products, categories, and other store pages by adding them to separate website pages.�Highlight your best sellers or new products in the website sidebar.�Horizontal indent�Horizontal thumbnails�How can I add a cart widget to my site sidebar?�How can I manage my store from a mobile device?�How can we help you?�How do I add store categories to the site menu?�How do I put my products in the sitemap?�How much does Ecwid cost?�How secure is this plugin? Is my store PCI DSS compliant?�How to add a single product with the add to bag button to the site pages?�How to set up a storefront on Facebook with Ecwid?�I already have an account, sign in�I couldn’t find a WordPress theme that goes well with %s�I found a better plugin�I have a problem using this plugin�I have a problem with my %s store�I use this WordPress theme: %s�Icon�Icon and item count�Icon, label and item count�Icon, label, item count and subtotal�Icon, label, item count, subtotal and link�If you have a moment, please let us know why you are deactivating:�Image and title on mouse over�Image feed�Image gallery layout�Image only�Import�Import Your Products From Woocommerce to %s�Import completed�Import completed. <a href="%s">Run again.</a>�Import creates new products and update the existing products with matching SKUs.�Import is in Progress�Import my products from WooCommerce�Import product catalog from WooCommerce�Import product catalog from other sources�Import products to your %s store�Import summary�Import your WooCommerce catalog to %s�Import your products from WooCommerce to %s�Import your products from Woocommerce to %s�Imported <b>%s</b> products�Importing %s of %s items�Insert�Insert into page�Instant site�Integration with search on your site�Is it possible to display my store on the site home page?�Is there a WordPress theme for Ecwid?�It's a temporary deactivation. Please do not ask me again.�Item count only�Justify�Knowledge Base�L�Label and item count�Landscape 3:2�Landscape 4:3�Last Page�Last update�Latest Products�Layout�Layout:�Learn more�Left�Light green cyan�Link color�Linked product�List�List view�Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL.�Luminous vivid amber�Luminous vivid orange�M�Make your store accessible from the site menu so your customers can easily find it.�Manage Sidebar�Manage Store on iPhone, iPad or Android�Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page.�Manage store�Manage storefront�Marketing�Mobile�My Account�My Profile�My Sales�Name�Navigation�Need help importing your products from WooCommerce to %s?�Never show this message again�Next Page�Next page�No Thanks�No border�Not synchronized yet�Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The "Show on store pages" and "Show when empty" options will apply to the cart widget on site when published�Nothing found for <span class="empty-page__term">"{{ data.term }}"</span>�Number of categories per row�Number of products per page�Number of products to show�On the left�On the right�Online Store�Online Store Apps�Online store�Open control panel�Open store dashboard�Options�Orders�Other�Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target="_blank" href="%s">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans.�Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">our customer support team</a>.�Page with that name already exists.�Pale cyan blue�Pale pink�Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>�Payment�Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers.�Pick Category�Pick Product�Picture�Pill�Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target="_blank">"Billing & Plans"</a></nobr> page in your Ecwid store control panel.�Please subscribe to a paid plan to get this feature.�Plugins for Ecwid�Portrait 2:3�Portrait 3:4�Position�Preview�Previous Page�Price�Price color�Product�Product Card Large�Product Card Small�Product List Appearance�Product Page Appearance�Product SKU�Product Search�Product Search Box�Product Search and filters�Product card text align�Product catalog will be shown automatically�Product page layout�Product price�Product quantity�Product sidebar content�Product thumbnail aspect ratio�Product thumbnail size�Product title�Products�Products are successfully synchronized. The product pages are up to date.�Products synchronized: %1$s out of %2$s�Promote your store�Provide access.�Provided by <a %s>%s</a>�Publish�Publish Store Page�Publish the page to use this option�Published�Quantity�Questions?�Random Product�Random Products�Rate %s at WordPress.org�Re-connect to Enable Control Panel�Recently Viewed Products�Recommendations for Your Online Store�Rectangle�Refresh categories list�Register at %s�Report a problem with the store�Reports�Right�S�SKU�Sales�Sales channels�Save�Save and connect your %s store to the site�Save changes�Search�Search and Filters�Search products�Search the Knowledge Base�See more�Select All�Select category�Selected Product�Selected category�Sell on Facebook�Send Message�Send a message to our support team�Send message failed�Set Up Your Store�Set manually�Set up your store�Settings�Setup�Shipping & Pickup�Shop�Shopping Cart�Shopping Cart (deprecated)�Shopping Cart Floating (deprecated)�Shopping Cart Icon�Shopping Cart Mini (deprecated)�Shopping Cart Widget�Show�Show additional image on hover�Show categories�Show customers that they can use a search and filters to find desired products faster.�Show description under the image�Show minicart�Show on all pages�Show on hover�Show on store pages�Show price inside the "Buy now" button�Show price inside the «Buy now» button�Show product card border�Show product thumbnails�Show search�Show when empty�Show your store on the home page�Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again.�Small icon�Small icon and item count�Some of the items could not be imported.�Sorry we're having technical difficulties.�Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: "The Wordpress function wp_remote_post() failed to connect a remote server because of some error: "%s". Seems like HTTP POST requests are disabled on this server". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>.�Square 1:1�Start Import�Status�Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store.�Still have questions about Ecwid? Let us know!�Store�Store Categories�Store Categories Menu�Store Category Page�Store Front Page�Store Home Page�Store ID�Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the "Dashboard" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration.�Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>.�Store Link Title�Store Navigation�Store Page�Store Page Link�Store Root Categories�Store appearance�Store elements�Store management�Store page content�Store page on your site�Store root category�Store with Categories Menu�Storefront�Subject�Submit & Deactivate�Switch to draft�Synchronize products�Table�Table view�Take a few simple steps to complete store setup�Take advantage of powerful apps and extensions designed to enhance your store.�Text�Text color�Thank you for choosing %s to build your online store�The block is hidden because you don't have categories in your store. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Add categories.</a>�The category that is shown by default on the Store Front Page�The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps.�The plugin doesn't support the feature I want�The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href="%s" target="_blank">adjust the cart icon appearance</a>.�The store is not visible on your site�The store top-level categories are automatically added to this drop-down menu�Themes for Ecwid�This import will copy your WooCommerce products and categories to your %s store.�This is a demo store. Create your store to see your store products here.�This will change the label of the module in the builder for easy identification.�Title�Title on image�Title only�Title or SKU�Title under image�Title:�To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings.�To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>.�To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>�To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the "Add product" dialog.�To create sitemap for your Wordpress site we suggest using <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> or <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target="_blank" href="https://www.ecwid.com/pricing">paid Ecwid users</a>.�To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission.�To enable this feature, the plugin needs a permission to read your store product information.�To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">How to use it.</a>�To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>�To manage your store, go to <a %s>the Store Dashboard page</a>�To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission.�To show your storefront instead of the demo store, connect your existing %s account or create a new one.�To start selling, add a page to your site where the storefront will display.�Top left�Top right�Try another search.�Type in your message here�URL Slug�Update�Update your catalog�Upgrade to get this feature�Vertical indent�Vertical thumbnails�Very dark gray�Very light gray�View Store Page�View demo store page�View store page�Visit storefront�Vivid cyan blue�Vivid green cyan�Vivid red�Want to connect another %s store?�Warning: some of your online store features are disabled. Please contact your hosting provider to resolve.�We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?�We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you.�We're synchronizing your products. This may take a few minutes. Please do not reload the page.�Website�What feature do you need?�What was wrong?�What's next?�While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site.�Wholesale prices�You can add product search box, cart widget and more on the <a href="%s">"Appearance / Widgets page"</a> here in your site admin. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">More details.</a>�You can add the entire storefront, categories, products, or "Buy now" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block.�You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open "Appearance > Menus" in your WordPress control panel and add the "Store with Categories Menu" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site.�You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">More details.</a>�You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel.�You can display your store on the site main page. Adjust the "Reading" settings of your site as described in our <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">Help Center.</a>�You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href="%1$s">Appearance → Customize → %2$s</a>” menu to enable it.�You can enable filters in the store settings: (“<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Settings → Product Filters</a>”).�You can send a new request here.�You have not viewed any product yet. Open store.�You will be able to sign up through your existing Google, Facebook or PayPal profiles as well.�Your %s store has �Your %s store is connected<br /> to your WordPress website�Your %s store is now connected<br /> to your WordPress website�Your Storefront�Your WooCommerce store has �Your email has been sent�Your product�Your store Control Panel. Right here in WordPress.�Your store has been created. Preparing your store dashboard ...�Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar.�Your store is almost ready!�Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display.�Your store page�Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders.�Your store page is published. Customers can browse your store at �Your store will be shown here�Your store will be shown here!�Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data.�[%s] WordPress plugin deactivation feedback (store ID: %s)�customize appearance�gutenberg-product-blockContent�gutenberg-store-block-stubStore�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�or <a %s>Browse the Help Center�product-browser-attributesProduct SKU�product-browser-attributesProduct price�select product�selected product�vc-tabOnline store�«Buy now» button�PO-Revision-Date: 2020-10-12 12:46 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: Poedit 2.4.1 Language: es Project-Id-Version: temporary-strings X-Crowdin-Project: temporary-strings X-Crowdin-Project-ID: 295314 X-Crowdin-Language: es-ES X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po X-Crowdin-File-ID: 988 Language-Team: Spanish Last-Translator: � Elegir otro producto� ¡Muchas gracias por ponerse en contacto con nosotros! Nos pondremos en contacto con usted en breve.�Etiqueta de productos «En existencia»�%s�Blog de %s�Carrito de compras de %s�Tienda de %s�Página de la tienda de %s�El complemento %s no funciona bien con mi tema «%s»�%s producto�%s productos�%s productos y %s categorías�%s productos y categorías�Configuraciones del carrito de compras de %s�%s almacena los datos de sus productos de forma segura en la nube. Las páginas de productos se muestran sobre la marcha cuando un cliente navega por su tienda. Por lo que, básicamente, los productos no se almacenan en el sitio web, por eso la búsqueda en el sitio web no encuentra páginas de productos mientras busca en las páginas del sitio web y en las publicaciones. Esta opción habilita un modo de almacenamiento local: los productos se almacenarán tanto en la nube como en su sitio web. Los resultados de la búsqueda en el sitio web incluirán las páginas de productos, así como las páginas o publicaciones habituales de su sitio web.�%s — Configuración avanzada�(podrá confirmar los cambios antes de la importación definitiva)�2 columnas, imagen a la izquierda�2 columnas, imagen a la derecha�3 columnas, imagen a la izquierda�3 columnas, imagen a la derecha�<a %s>Tienda en línea con tecnología de %s</a>�<a %s>Volver a conectar</a>�<a href="admin.php?page=�<b>%s</b> categorías�Un «slug» es la última parte de una URL. Puede crear un «slug» personalizado para la página de su tienda. Es mejor que sea corto, ya que los clientes y los motores de búsqueda prefieren las URL cortas. Por ejemplo, utilice «/tienda» o «/productos».�Acción requerida: conecte su cuenta de %s�Añadir producto�Añadir tienda�Añadir la página de la tienda al menú�Añadir una página de categoría�Añadir página de productos�Añadir una página de búsqueda y filtros�Añadir una página de tienda�Añadir una tienda en línea a su sitio web�Añadir borde�Añadir carrito y página de pago�Añadir categorías�Añadir la página de la tienda al menú del sitio web�Añadir escaparate virtual (listado de productos)�Añadir al menú�Añada su tienda de %s al sitio web y comience a vender en minutos.�Añada su tienda a otras páginas del sitio web�Añada su escaparate virtual a la página de inicio del sitio web para que sea más notable. También puede modificar la configuración de la página de inicio del sitio web en <a href="%s" target="_blank">Configuración de WordPress > Lectura</a>.�Páginas adicionales de la tienda�Además, puede añadir controles de la tienda a la barra de herramientas de su sitio web mediante <a %s>«widgets» nativos de WordPress</a>.�Añade un «widget» de carrito para que el cliente vea los productos que se han añadido al carrito.�Añade un «widget» de carrito compacto para que el cliente vea los productos que se han añadido al carrito.�Añada un «widget» de carrito de compras en la esquina superior derecha de su sitio web.�Añade la lista de categorías raíz a la barra lateral para que sus clientes puedan desplazarse por la tienda.�Añade un bloque de categorías verticales para permitir que el cliente navegue por su tienda.�Ajuste el diseño de su tienda para que se adapte a las necesidades de su negocio.�Etiqueta de administrador�Avanzado�Configuraciones avanzadas�Después de la importación, su tienda de %s tendrá �Todos los canales de venta�Junto con el catálogo de la tienda, puede añadir otros «widgets» y textos a la página de la tienda.�Apariencia�Aplicaciones�Cantidad disponible en existencia�Regresar a la configuración de la tienda�Color del fondo�Bolsa�Cesta�Antes de que se vaya�Borde�Borde:�Abajo a la izquierda�Abajo a la derecha�Migas de pan�Explorar todos los productos.�Buscar por categoría�Importar en masa productos y categorías a su tienda de %s�Color del botón�Comprar ahora�Botón «Comprar ahora»�Botones de «Comprar ahora»�Al continuar, acepta los <a %s>Términos de servicio</a> y la <a %s>Política de privacidad</a>.�Clase CSS�ID de CSS�¿Podría compartir el nombre del complemento que ha elegido?�¿Podría compartir su opinión? ¿Qué fue lo que pasó?�Cancelar�Carrito�Carrito y pago�Icono del carrito de compras�Icono del carrito:�Catálogo�Categorías�Categoría�Apariencia de la lista de categorías�Diseño de la ficha de categoría�Categoría mostrada por defecto�Relación de aspecto de la miniatura de la categoría�Tamaño de la miniatura de la categoría�Centrado�Centrar la alineación en una página�Cambiar�Cambiar el contenido de la tienda�Elegir producto�Elegir producto�Elija las propiedades del producto para mostrarlas en el «widget»�Elegir la página principal de la tienda�Elija los «widgets» a mostrar�Haga clic en el botón «Conectar» para obtener los permisos para actualizar el catálogo de productos�Configuración de colores�Completar configuración�Complete la configuración y comience a vender�Configuración�¡Enhorabuena!�Conectar�Conecte su tienda�Conecte su tienda de %s�Conecte su tienda�Error de conexión: después de hacer clic en el botón, debe iniciar sesión y otorgar los permisos para poder utilizar nuestro complemento. Inténtelo de nuevo.�Ponerse en contacto con la asistencia�Póngase en contacto con nosotros�Contenido�Copia de productos y categorías.�Crear página del carrito�Crear página de categorías�Crear página de productos�Crear página de búsqueda�Crear tienda�Crear la página de la tienda�Cree una página de aterrizaje con uno de sus productos.�Cree una nueva cuenta de %s que utilizará para gestionar su tienda e inventario. El registro es gratuito.�Cree una nueva tienda o, si ya tiene una cuenta de %s, conéctela. El complemento le guiará a través de la configuración de la tienda y le ayudará a publicarla en su sitio web.�Crear una nueva cuenta�Crear tienda�Página actual�«Slug» actual de la dirección URL: /<span data-ec-store-slug>%s</span>�Inicio de sesión único del cliente�Clientes�Los clientes no pueden ver la página de su tienda porque está en un borrador. Publique la página para que esté disponible para sus clientes.�Los clientes van a la página del carrito para consultar los productos que han añadido al mismo y proceder con el pago.�Personalizar el diseño�Personalizar la apariencia de la tienda�Personalizar la dirección de la página de la tienda�Personalizar «widget»�Personalice la apariencia de su tienda para que se ajuste a las necesidades de su negocio. Cree la apariencia para su tienda que más se parezca a su marca.�Gris cian azulado�Panel�Categoría predeterminada�ID de categoría predeterminada�ID del producto predeterminado�Modo de vista predeterminado en las páginas de productos�Modo de vista predeterminado en los resultados de búsqueda�Productos eliminados sincronizados: %1$s de %2$s�Tienda de demostración�Tienda de demostración�Diseño�Diseño y contenido�Detectar automáticamente�Desconectar tienda�Mostrar un botón de compra�Mostrar migas de pan�Mostrar icono del carrito�Mostrar el menú de categorías�Mostrar la barra de navegación de las categorías�Mostrar la página de categorías�Mostrar el menú del pie de página�Mostrar la página de productos con la descripción y un botón de compra�Mostrar el producto con un botón de compra�Mostrar el cuadro de búsqueda�Mostrar página de búsqueda con los filtros a un lado�Mostrar enlace y resumen de la bolsa de compras�Mostrar el carrito de compras�Mostrar el carrito de compras y la página de pago�Mostrar el enlace de inicio de sesión�Mostrar «ordenar por enlace»�Muestre el icono del carrito de compras en las páginas del sitio web�Producto mostrado�Muestra un enlace a la página de la tienda en la barra lateral para que el cliente acceda rápidamente a su tienda desde cualquier página del sitio web.�Muestra una lista de productos vistos recientemente por el cliente para volver fácilmente a los productos que vieron en su tienda.�Muestra una lista de productos aleatorios.�Muestra un producto aleatorio de su tienda para atraer la atención del cliente.�Muestra un cuadro de búsqueda simple para que sus clientes encuentren un producto en su tienda.�Muestra el escaparate virtual: listado de productos y pago�Muestra los últimos productos añadidos de su tienda. Muestre nuevos productos a los clientes existentes para impulsar las ventas repetidas.�No mostrar�¿Le gusta Ecwid y quiere ayudarlo a crecer? Puede añadir este elegante distintivo «Powered by Ecwid» en su sitio web para mostrarles a sus visitantes que es un usuario orgulloso de Ecwid.�¿Le gusta su tienda de %s en línea? Apreciaríamos si comparte su opinión y vota por el complemento en el sitio de WordPress.�Hecho�Descargar <a href="%s">registro de importación</a>�Descargar archivo de registro�Borrador�Por ejemplo, cómo establecer el envío�Distintivo de Ecwid�Comercio electrónico Ecwid�Carrito de compras del comercio electrónico de Ecwid�Elemento del menú de Ecwid�Ecwid le permite subir sus productos en forma de archivo CSV. Obtenga más información sobre esta herramienta en el centro de asistencia de Ecwid�«Widget» de comercio electrónico de Ecwid�Solución de comercio electrónico de Ecwid�Carrito de compras gratuito de Ecwid�Ecwid cuenta con la certificación PCI DSS Nivel 1, que es el estándar de oro para las soluciones de comercio electrónico en todo el mundo. Esto significa que no tendrá problemas de cumplimiento bancario cuando venda en línea con Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">Más detalles.</a>�Ecwid es un carrito de compras gratuito con todas las funciones. Se puede integrar fácilmente con cualquier blog de Wordpress y se configura en menos de 5 minutos.�Ecwid es compatible con cualquier tema de WordPress. Ya sea un tema gratuito del catálogo de WordPress.org, un tema prémium de un proveedor externo o un tema personalizado; su tienda de Ecwid funcionará bien con cualquiera de ellos. Si desea un tema prémium, le recomendamos <a href="%s">temas de TemplateMonster</a>.�Ecwid ofrece aplicaciones móviles gratuitas para iOS y Android para que pueda gestionar su tienda y vender donde y cuando quiera. Escanee productos, supervise el inventario, gestione las ventas y acepte pagos utilizando su dispositivo móvil como una estación de punto de venta. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">Más detalles.</a>�Carrito de compras de Ecwid�«Widget» de carrito de compras de Ecwid�Editar�Editar apariencia�Editar categoría�Editar producto�Editar tienda�Editar «slug» de la dirección URL�Editar página�Introduzca un ID de CSS opcional que se utilizará para este módulo. Se puede utilizar un ID para crear un estilo CSS personalizado o para crear enlaces a secciones particulares de su página web.�Introduzca las clases CSS opcionales que se utilizarán para este módulo. Se puede utilizar una clase CSS para crear estilos CSS personalizados. Puede añadir varias clases separadas por un espacio.�Introduzca el ID de su tienda�Introduzca el ID de su tienda aquí:�Extensiones para su tienda�Destacar una categoría de la tienda específica en una página separada de su sitio web.�Destaque sus productos en la barra lateral�Filtros�Posición del panel de filtros�Encuentre el ID de su tienda�Primera página�Preguntas frecuentes�Descargue la aplicación móvil de %s�Ir a «Páginas»�Ir a sus productos de %s�¡Saludos!�¡Enhorabuena! Su complemento de %s ya está activo.�Cuadrícula�Vista de cuadrícula�Ayuda�Ayude a los clientes a encontrar su tienda en el sitio web. Añada el enlace de la tienda al menú del sitio web, cree páginas adicionales de la tienda y resalte los productos de la tienda en otras páginas del sitio web y en las barras laterales.�Ayude a los clientes a encontrar su tienda en el sitio web.�Aquí puede gestionar cuántos productos se mostrarán por página. Estas opciones definen valores máximos. Si no hay suficiente espacio para mostrar todas las columnas de productos, %s adaptará el número de columnas para mantener todos los productos.�Aquí puede crear el contenido que se utilizará dentro del módulo.�Aquí, le ayudaremos a subir su catálogo de productos a %s de otro carrito de compras u otras fuentes.�Ocultar�Destaque productos, categorías y otras páginas de la tienda añadiéndolas a páginas del sitio web separadas.�Destaque sus mejores ventas o nuevos productos en la barra lateral del sitio web.�Sangría horizontal�Miniaturas horizontales�¿Cómo puedo añadir un «widget» de carrito de compras a la barra lateral de mi sitio web?�¿Cómo puedo gestionar mi tienda desde un dispositivo móvil?�¿Cómo podemos ayudarle?�¿Cómo puedo añadir categorías de tiendas al menú del sitio web?�¿Cómo pongo mis productos en el mapa del sitio?�¿Cuánto cuesta Ecwid?�¿Qué tan seguro es este complemento? ¿Mi tienda cumple con el PCI DSS?�¿Cómo añadir un solo producto con el botón de «añadir a la bolsa» en las páginas del sitio web?�¿Cómo crear una tienda en Facebook con Ecwid?�Ya tengo una cuenta, iniciar sesión�No pude encontrar un tema de WordPress adecuado para %s�Encontré un mejor complemento�Tengo un problema con el uso de este complemento�Tengo un problema con mi tienda de %s�Utilizo este tema de WordPress: %s�Icono�Icono y total de artículos�Icono, etiqueta y total de artículos�Icono, etiqueta, total de artículos y subtotal�Icono, etiqueta, total de artículos, subtotal y enlace�Si tiene un momento, háganos saber por qué está desactivando:�Imagen y título al pasar el ratón por encima�Canal de imagen�Diseño de la galería de imágenes�Solo imagen�Importar�Importe sus productos de Woocommerce a %s�Importación completada�Importación completada. <a href="%s">Ejecútela de nuevo.</a>�La importación crea nuevos productos y actualiza los productos existentes con las REF correspondientes.�La importación está en progreso�Importar mis productos de WooCommerce�Importar el catálogo de productos de WooCommerce�Importar el catálogo de productos de otras fuentes�Importe los productos a su tienda de %s�Resumen de la importación�Importe su catálogo de WooCommerce a %s�Importe sus productos de WooCommerce a %s�Importe sus productos de Woocommerce a %s�<b>%s</b> productos importados�Importando %s de %s artículos�Insertar�Insertar en la página�Sitio web instantáneo�Integración con la búsqueda en su sitio web�¿Es posible mostrar mi tienda en la página de inicio del sitio web?�¿Existe algún tema de WordPress para Ecwid?�Es una desactivación temporal. No preguntarme de nuevo.�Solo el total de artículos�Justificado�Base de conocimiento�G�Etiqueta y y total de artículos�Horizontal 3:2�Horizontal 4:3�Última página�Última actualización�Últimos productos�Diseño�Diseño:�Más información�Izquierda�Cian verde claro�Color del enlace�Producto vinculado�Lista�Vista de lista�Parece que su sitio web no admite solicitudes POST remotas, las cuales son necesarias para que la API de %s funcione. Comuníquese con su proveedor de alojamiento web para habilitar cURL.�Ámbar vívido y brillante�Naranja vívido y brillante�M�Haga que su tienda sea accesible desde el menú del sitio web para que sus clientes puedan encontrarla fácilmente.�Gestionar la barra lateral�Gestione la tienda desde iPhone, iPad o Android�Gestione productos, supervise las ventas y ajuste la configuración: <nobr>todo sin</nobr> salir de esta página.�Gestionar la tienda�Gestionar escaparate virtual�Mercadotecnia�Móvil�Mi cuenta�Mi perfil�Mis ventas�Nombre�Navegación�¿Necesita ayuda para importar sus productos de WooCommerce a %s?�Nunca mostrar este mensaje otra vez�Página siguiente�Página siguiente�No, gracias�Sin borde�No se ha sincronizado todavía�Nota: cuando está habilitado, el «widget» del carrito siempre se mostrará en la vista previa para que sea más fácil personalizarlo. Las opciones «Mostrar en las páginas de la tienda» y «Mostrar cuando esté vacío» se aplicarán al «widget» del carrito en el sitio cuando se publiquen�No se ha encontrado nada en relación con <span class="empty-page__term">«{{ data.term }}»</span>�Número de categorías por fila�Número de productos por página�Número de productos para mostrar�A la izquierda�A la derecha�Tienda en línea�Aplicaciones de la tienda en línea�Tienda en línea�Abrir el panel de control�Abrir el panel de la tienda�Opciones�Pedidos�Otro�Nuestros 4 tipos de cuentas varían según la cantidad de productos, los tipos de funcionalidades y el nivel de asistencia. Para obtener más información, consulte nuestra <a target="_blank" href="%s">página de precios.</a><br /><br />Consejo profesional: también puede ahorrar dinero si se suscribe a nuestros planes anuales.�Nuestro equipo ya está trabajando en este asunto. Actualice la página en unos minutos. Si el problema persiste, comuníquese con <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">nuestro equipo de atención al cliente</a>.�Ya existe una página con ese nombre.�Azul cian pálido�Rosa pálido�Parte de los productos no se han copiado a %1$s porque alcanzó el límite de productos en su plan de precios en %1$s. Si desea importar más productos, considere <nobr><a %2$s>actualizar su plan de %1$s.</a></nobr>�Pago�Personalice la apariencia de su escaparate virtual y edite el contenido en la página de la tienda para reflejar su marca y mantenerse conectado con sus clientes.�Elegir una categoría�Elegir un producto�Imagen�Píldora�Tenga en cuenta el número máximo de productos y categorías que puede tener en su tienda de Ecwid. Esta herramienta de importación se detendrá automáticamente cuando se alcance el límite de productos de la tienda. Para conocer el límite actual de la tienda o aumentarlo, consulte la página <nobr><a %s target="_blank">«Facturación y planes»</a></nobr> ubicada en el panel de su tienda de Ecwid.�Suscríbase a un plan de pago para obtener esta función.�Complementos para Ecwid�Vertical 2:3�Vertical 3:4�Posición�Vista previa�Página anterior�Precio�Color del precio�Producto�Ficha de producto ampliada�Ficha de producto reducida�Apariencia de la lista de productos�Apariencia de la página del producto�REF del producto�Búsqueda de productos�Cuadro de búsqueda de productos�Búsqueda de productos y filtros�El texto de la ficha del producto se alinea�El catálogo de productos se mostrará automáticamente�Diseño de la página de productos�Precio del producto�Cantidad de productos�Contenido de la barra lateral de productos�Relación de aspecto de la miniatura del producto�Tamaño de la miniatura del producto�Título del producto�Productos�Los productos se sincronizaron satisfactoriamente. Las páginas de productos están actualizadas.�Productos eliminados sincronizados: %1$s de %2$s�Promocione su tienda�Otorgar acceso.�Proporcionado por <a %s>%s</a>�Publicar�Publicar la página de la tienda�Publique la página para poder utilizar esta opción�Publicada�Cantidad�¿Tiene alguna pregunta?�Producto aleatorio�Productos aleatorios�Tasa de %s en WordPress.org�Vuélvase a conectar para activar el panel de control�Productos vistos recientemente�Recomendaciones para su tienda en línea�Rectángulo�Actualizar la lista de categorías�Registrarse en %s�Informar un problema con la tienda�Informes�Derecha�P�REF�Ventas�Canales de venta�Guardar�Guarde y conecte su tienda de %s al sitio web�Guardar cambios�Buscar�Búsqueda y filtros�Buscar productos�Buscar en la base de conocimientos�Ver más�Seleccionar todo�Seleccionar categoría�Producto seleccionado�Categoría seleccionada�Vender en Facebook�Enviar mensaje�Envíe un mensaje a nuestro equipo de asistencia�Ocurrió un error al enviar el mensaje�Configure su tienda�Configurar manualmente�Configure su tienda�Configuraciones�Configuración�Envío y recogida�Tienda�Carrito de compras�Carrito de compras (descontinuado)�Carrito de compras flotante (descontinuado)�Icono del carrito de compras�Carrito de compras en miniatura (descontinuado)�«Widget» del carrito de compras�Mostrar�Mostrar imagen adicional al pasar el ratón�Mostrar categorías�Muéstreles a los clientes que pueden utilizar la búsqueda y los filtros para encontrar los productos que deseen de forma más rápida.�Mostrar descripción debajo de la imagen�Mostrar minicarrito�Mostrar en todas las páginas�Mostrar al pasar el ratón�Mostrar en las páginas de la tienda�Mostrar el precio dentro del botón de «Comprar ahora»�Mostrar el precio dentro del botón de «Comprar ahora»�Mostrar el borde de la ficha del producto�Mostrar miniaturas de los productos�Mostrar búsqueda�Mostrar cuando esté vacío�Muestre su tienda en la página de inicio�El inicio de sesión único les permite a sus clientes tener un inicio de sesión único para su sitio web de WordPress y su %s. Cuando alguien inicie sesión en su sitio web, también iniciará sesión automáticamente en su cuenta de cliente en la tienda sin necesidad de introducir su correo electrónico y contraseña nuevamente.�Icono pequeño�Icono pequeño y total de artículos�Algunos de los artículos no se pudieron importar.�Le pido disculpas por las dificultades técnicas que estamos experimentando.�Lo siento, hay un problema. Se supone que esta página muestra el panel de control de su tienda; sin embargo, este sitio web de Wordpress no parece poder conectarse al servidor de Ecwid para mostrar el panel de su tienda aquí. Es probable que esto se deba a una mala configuración del servidor; su proveedor de alojamiento web puede solucionarlo. Aquí hay una descripción más técnica del problema, la cual puede enviarle a su proveedor de alojamiento web: «La función de Wordpress wp_remote_post() no pudo conectarse a un servidor remoto debido al error: “%s”; parece que las solicitudes HTTP POST están inhabilitadas en este servidor». <br /><br />No dude en ponerse en contacto con nosotros en <a %s>wordpress@ecwid.com</a> y le ayudaremos a comunicarse con su proveedor de alojamiento web para pedirle que solucione el problema. <br /><br /> Mientras tanto, para gestionar su tienda, puede utilizar el panel de control web de Ecwid en <a %s>my.ecwid.com</a>. Su escaparate virtual está funcionando bien; puede echarle un vistazo aquí: <a %s>%s</a>.�Cuadrado 1:1�Iniciar la importación�Estado�Manténgase conectado con sus clientes. Actualice el contenido de su tienda en cualquier momento para informarles a los clientes sobre las promociones actuales y las novedades de su tienda.�¿Todavía tiene preguntas acerca de Ecwid? ¡Háganoslo saber!�Tienda�Categorías de la tienda�Menú de categorías de la tienda�Página de categorías de la tienda�Página del escaparate virtual�Página de inicio de la tienda�ID de la tienda�El ID de la tienda es un identificador único de cualquier tienda de %1$s, el cual consta de varios dígitos. Puede encontrarlo en la página «Panel» del panel de control de %1$s. El ID de la tienda se enviará en el correo electrónico de bienvenida después del registro.�El ID de la tienda es un identificador único de su cuenta de %1$s. Puede encontrarlo en su panel de control de %1$s en la <a %2$s>página del panel</a>.�Título del enlace de la tienda�Navegación en la tienda�Página de la tienda�Enlace a la página de la tienda�Categorías raíz de la tienda�Apariencia de la tienda�Elementos de la tienda�Gestión de la tienda�Contenido de la página de la tienda�Página de la tienda en su sitio web�Categoría raíz de la tienda�Tienda con menú de categorías�Escaparate virtual�Asunto�Enviar y desactivar�Cambiar al borrador�Sincronizar productos�Tabla�Vista de tabla�Siga unos sencillos pasos para completar la configuración de la tienda�Aproveche las increíbles aplicaciones y extensiones diseñadas para mejorar su tienda.�Texto�Color del texto�Gracias por elegir %s para construir su tienda en línea�El bloque está oculto porque no tiene categorías en su tienda. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Añadir categorías.</a>�La categoría que se muestra de forma predeterminada en la página del escaparate virtual�El primer paso para abrir su negocio en línea: <br />añadamos una tienda a su sitio web de WordPress en <strong>3</strong> simples pasos.�El complemento no es compatible con la función que quiero�El icono del carrito de compras muestra la cantidad de artículos en el carrito y ayuda a los clientes a realizar el pago. Además, puede <a href="%s" target="_blank">ajustar la apariencia del icono del carrito</a>.�La tienda no es visible en su sitio web�Las categorías de alto nivel de la tienda se añaden automáticamente a este menú desplegable�Temas para Ecwid�Esta importación copiará sus productos y categorías de WooCommerce a su tienda de %s.�Esto es una tienda de demostración. Cree su tienda para ver los productos de su tienda aquí.�Esto cambiará la etiqueta del módulo en el creador para una fácil identificación.�Título�Título en la imagen�Solo título�Título o REF�Título debajo de la imagen�Título:�Para añadir funciones adicionales a su tienda, arrastre y suelte los elementos de la tienda de %s en su sitio web. Una vez que haya terminado, puede volver a modificar su configuración.�Para añadir su tienda a su sitio web, introduzca el ID de su tienda de %1$s en el campo a continuación. Si aún no tiene una cuenta de %1$s, cree una gratis en el <a %2$s>sitio web de %1$s</a>.�Para permitir que %s inicie la sesión de sus clientes automáticamente en su tienda, otorgue los permisos para utilizar los datos del cliente en la tienda. <a %s>Utilice este enlace para hacerlo</a>�A fin de poder elegir un producto para insertarlo en sus publicaciones y páginas, deberá volver a conectar su sitio a su tienda de %s. Esto solo requerirá que acepte la solicitud de permisos para que el complemento pueda listar sus productos en el cuadro de diálogo «Añadir producto».�Para crear un «Mapa del sitio» para su sitio web de Wordpress, le sugerimos que utilice los  complementos <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> o <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>. Estos complementos son totalmente compatibles con Ecwid y permiten generar un mapa del sitio que contiene enlaces a categorías y páginas de productos, por lo que las páginas de la tienda se indexarán más rápido. Tenga en cuenta que esta opción solo está disponible para los <a target="_blank" href="https://www.ecwid.com/pricing">usuarios de pago de Ecwid</a>.�Para mostrar su tienda en este sitio web, debe permitir que WordPress acceda a sus productos de %1$s. Pulse «Conectar» para otorgar el permiso.�Para habilitar esta función, el complemento necesita un permiso para leer la información del producto de su tienda.�Para mostrar un solo producto en una página aparte o en una entrada de blog de su sitio web, utilice el código corto <b>[ecwid_product]</b>. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">Cómo utilizarlo</a>�Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para mejorar la apariencia de su tienda y poder gestionar la apariencia de su escaparate virtual desde aquí, habilite la opción «Apariencia de próxima generación de la lista de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para asegurarse de que su cliente puede acceder realmente a su sitio web y a la tienda, habilite el registro en las <a %s>configuraciones del sitio web</a>�Para gestionar su tienda, vaya a la <a %s>página del «Panel de su tienda»</a>�Para vender utilizando %1$s, debe permitir que WordPress acceda al complemento %1$s. El botón «Conectar» lo redirigirá a su cuenta de %1$s donde puede otorgar el permiso.�Para mostrar su escaparate virtual en lugar de la tienda de demostración, conecte su cuenta de %s existente o cree una nueva.�Para comenzar a vender, añada una página a su sitio web donde se muestre el escaparate virtual.�Arriba a la izquierda�Arriba a la derecha�Intente otra búsqueda.�Escriba su mensaje aquí�«Slug» de la dirección URL�Actualizar�Actualice su catálogo�Actualice para obtener esta función�Sangría vertical�Miniaturas verticales�Gris oscuro�Gris claro�Ver la página de la tienda�Ver la página de la tienda de demostración�Ver la página de la tienda�Visitar escaparate virtual�Azul cian vívido�Cian verde vívido�Rojo vívido�¿Desea conectar otra tienda de %s?�Advertencia: algunas de las funciones de su tienda en línea están inhabilitadas. Póngase en contacto con su proveedor de alojamiento web para resolverlo.�Notamos que tiene un WooCommerce instalado. Su tienda de WooCommerce tiene %1$s productos y %2$s categorías; ¿le gustaría importarlos a %3$s?�Notamos que tiene WooCommerce instalado. Si desea copiar fácilmente sus productos de WooCommerce a %s, esta herramienta le ayudará.�Estamos sincronizando sus productos. Esto puede tardar unos minutos. No actualice la página.�Sitio web�¿Qué función necesita?�¿Qué fue lo que pasó?�¿Qué sigue?�Mientras su tienda aún no esté conectada, se mostrará una tienda de demostración en su sitio web. Échele un vistazo para tener una idea de cómo se verá su tienda en el sitio web.�Precios al por mayor�Puede añadir un cuadro de búsqueda de productos, un «widget» de carrito y más desde la <a href="%s">«Página de apariencia y widgets»</a> que se encuentra aquí en el administrador de su sitio web. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">Más detalles.</a>�Puede añadir todo el escaparate virtual, las categorías, los productos o los botones de «Comprar ahora» a otras páginas de su sitio web. Para ello, abra una página en el editor y añada un bloque %s apropiado.�Puede añadir el menú de categorías de la tienda al menú de su sitio web para ayudar a sus clientes a navegar fácilmente por su sitio web. Simplemente abra «Apariencia > Menús» en el panel de WordPress y añada el elemento «Tienda con menú de categorías» al menú de su sitio web. Aparecerá automáticamente un menú desplegable que contendrá las categorías de su tienda en su sitio web.�Puede añadir su tienda en línea a su página empresarial de Facebook (no se necesitan complementos). Ecwid sincronizará automáticamente los productos, clientes, pedidos e inventario entre su tienda en línea de WordPress y Facebook. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">Más detalles.</a>�Puede gestionar la apariencia de su tienda en la <a %s>página de «Configuración del diseño»</a> ubicada en el panel de control de su tienda.�Puede mostrar su tienda en la página principal del sitio web. Ajuste la configuración de «Lectura» de su sitio web como se describe en nuestro <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">centro de asistencia.</a>�Puede habilitar un «widget» adicional del icono de la bolsa de compras que aparecerá en las páginas de su sitio web. Abra el menú «<a href="%1$s">Apariencia → Personalizar → %2$s</a>» para habilitarlo.�Puede habilitar los filtros en la configuración de la tienda: («<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Configuración → Filtros para los productos</a>»).�Puede enviar una nueva solicitud aquí.�Aún no ha visto ningún producto. Abra la tienda.�También podrá registrarse a través de sus perfiles existentes de Google, Facebook o PayPal.�Su tienda de %s tiene �Su tienda de %s está conectada<br /> a su sitio web de WordPress�Su tienda de %s ahora está conectada<br /> a su sitio web de WordPress�Su escaparate virtual�Su tienda de WooCommerce tiene �Se ha enviado su correo electrónico�Su producto�Panel de control de su tienda. Aquí mismo en WordPress.�Se ha creado su tienda. Preparando el panel de su tienda...�Su tienda se añade a varias páginas del sitio web. Elija la página principal. Los clientes son redirigidos a la página principal de la tienda cuando hacen clic en el icono del carrito, en los enlaces de la tienda ubicados en el menú del sitio web o en los productos que se encuentran en la barra lateral.�¡Su tienda ya está casi lista!�Su tienda no se añade a ninguna página de su sitio web. Para que los clientes puedan navegar por su tienda y realizar pedidos, cree una página donde se mostrará la tienda.�La página de su tienda�La página de su tienda está actualmente en un borrador. Una vez que esté lista, publíquela para que los clientes puedan visitar la tienda y realizar pedidos.�La página de su tienda está publicada. Los clientes pueden visitar su tienda en �Su tienda se mostrará aquí�¡Su tienda se mostrará aquí!�Su escaparate virtual (listado de productos y página de pago) está funcionando bien, pero las funciones avanzadas de la tienda, como el SEO y los «widgets» de la barra lateral, están inhabilitadas. Para habilitarlas y asegurarse de que su tienda funcione correctamente, pulse el botón de abajo para conectar su cuenta de %s. Esto tomará menos de un minuto; solo se le pedirá que inicie sesión en su cuenta y permita que este sitio web obtenga los datos de su tienda.�[%s] Comentarios sobre la desactivación del complemento de WordPress (ID de la tienda: %s)�personalizar apariencia�Contenido�Tienda�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�o <a %s>consulte el centro de asistencia�REF del producto�Precio del producto�seleccionar producto�producto seleccionado�Tienda en línea�Botón de «Comprar ahora»���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/languages/ecwid-shopping-cart-es_UY.po������������������������������������������0000644�����������������00000326062�15122273603�0017624 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Translation of Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) in German # This file is distributed under the same license as the Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) package. msgid "" msgstr "" "PO-Revision-Date: 2020-10-12 12:46\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: GlotPress/3.0.0-alpha.2\n" "Language: es\n" "Project-Id-Version: temporary-strings\n" "X-Crowdin-Project: temporary-strings\n" "X-Crowdin-Project-ID: 295314\n" "X-Crowdin-Language: es-ES\n" "X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po\n" "X-Crowdin-File-ID: 988\n" "Language-Team: Spanish\n" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:92 msgid "You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel." msgstr "Puede gestionar la apariencia de su tienda en la <a %s>página de «Configuración del diseño»</a> ubicada en el panel de control de su tienda." #: includes/integrations/elementor/class-ec-elementor-widget-store.php:55 msgid "To manage your store, go to <a %s>the Store Dashboard page</a>" msgstr "Para gestionar su tienda, vaya a la <a %s>página del «Panel de su tienda»</a>" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:39 msgid "The category that is shown by default on the Store Front Page" msgstr "La categoría que se muestra de forma predeterminada en la página del escaparate virtual" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:38 msgid "Default category" msgstr "Categoría predeterminada" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:29 msgid "Online Store" msgstr "Tienda en línea" #: includes/class-ecwid-stub-renderer.php:38 msgid "Buy Now" msgstr "Comprar ahora" #: templates/admin/welcome-terms-privacy.php:5 msgid "By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>." msgstr "Al continuar, acepta los <a %s>Términos de servicio</a> y la <a %s>Política de privacidad</a>." #: js/gutenberg/blocks.build.js:1 msgid "Display shopping cart and checkout page" msgstr "Mostrar el carrito de compras y la página de pago" #: js/gutenberg/blocks.build.js:1 msgid "Cart and Checkout" msgstr "Carrito y pago" #: js/gutenberg/blocks.build.js:1 msgid "Filters" msgstr "Filtros" #: js/gutenberg/blocks.build.js:1 msgid "You can enable filters in the store settings: (“<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Settings → Product Filters</a>”)." msgstr "Puede habilitar los filtros en la configuración de la tienda: («<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Configuración → Filtros para los productos</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Search and Filters" msgstr "Búsqueda y filtros" #: js/gutenberg/blocks.build.js:1 msgid "Display search page with filters on a side" msgstr "Mostrar página de búsqueda con los filtros a un lado" #: js/gutenberg/blocks.build.js:1 msgid "Product Search and filters" msgstr "Búsqueda de productos y filtros" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Display product page with description and a buy button" msgstr "Mostrar la página de productos con la descripción y un botón de compra" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Large" msgstr "Ficha de producto ampliada" #: js/gutenberg/blocks.build.js:1 msgid "Selected category" msgstr "Categoría seleccionada" #: js/gutenberg/blocks.build.js:1 msgid "Select category" msgstr "Seleccionar categoría" #: js/gutenberg/blocks.build.js:1 msgid "Add categories" msgstr "Añadir categorías" #: js/gutenberg/blocks.build.js:1 msgid "Display category page" msgstr "Mostrar la página de categorías" #: js/gutenberg/blocks.build.js:1 msgid "Store Category Page" msgstr "Página de categorías de la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Display shopping bag link and summary" msgstr "Mostrar enlace y resumen de la bolsa de compras" #: js/gutenberg/blocks.build.js:1 msgid "Shopping Cart Icon" msgstr "Icono del carrito de compras" #: js/gutenberg/blocks.build.js:1 msgid "The block is hidden because you don't have categories in your store. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Add categories.</a>" msgstr "El bloque está oculto porque no tiene categorías en su tienda. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Añadir categorías.</a>" #: js/gutenberg/blocks.build.js:1 msgid "Categories" msgstr "Categorías" #: js/gutenberg/blocks.build.js:1 msgid "Display categories navigation bar" msgstr "Mostrar la barra de navegación de las categorías" #: js/gutenberg/blocks.build.js:1 msgid "Store Categories Menu" msgstr "Menú de categorías de la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Product Search Box" msgstr "Cuadro de búsqueda de productos" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:25 #: js/gutenberg/blocks.build.js:1 msgid "Linked product" msgstr "Producto vinculado" #: js/gutenberg/blocks.build.js:1 msgid "Display a buy button" msgstr "Mostrar un botón de compra" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:10 #: js/gutenberg/blocks.build.js:1 msgid "Buy Now Button" msgstr "Botón «Comprar ahora»" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:52 #: js/gutenberg/blocks.build.js:1 msgid "Show price inside the «Buy now» button" msgstr "Mostrar el precio dentro del botón de «Comprar ahora»" #: js/gutenberg/blocks.build.js:1 msgctxt "gutenberg-product-block" msgid "Content" msgstr "Contenido" #: js/gutenberg/blocks.build.js:1 msgid "Change" msgstr "Cambiar" #: js/gutenberg/blocks.build.js:1 msgid "Displayed product" msgstr "Producto mostrado" #: js/gutenberg/blocks.build.js:1 msgid "Display product with a buy button" msgstr "Mostrar el producto con un botón de compra" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Small" msgstr "Ficha de producto reducida" #: js/gutenberg/blocks.build.js:1 msgid "Very dark gray" msgstr "Gris oscuro" #: js/gutenberg/blocks.build.js:1 msgid "Cyan bluish gray" msgstr "Gris cian azulado" #: js/gutenberg/blocks.build.js:1 msgid "Very light gray" msgstr "Gris claro" #: js/gutenberg/blocks.build.js:1 msgid "Vivid cyan blue" msgstr "Azul cian vívido" #: js/gutenberg/blocks.build.js:1 msgid "Pale cyan blue" msgstr "Azul cian pálido" #: js/gutenberg/blocks.build.js:1 msgid "Vivid green cyan" msgstr "Cian verde vívido" #: js/gutenberg/blocks.build.js:1 msgid "Light green cyan" msgstr "Cian verde claro" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid amber" msgstr "Ámbar vívido y brillante" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid orange" msgstr "Naranja vívido y brillante" #: js/gutenberg/blocks.build.js:1 msgid "Vivid red" msgstr "Rojo vívido" #: js/gutenberg/blocks.build.js:1 msgid "Pale pink" msgstr "Rosa pálido" #: js/gutenberg/blocks.build.js:1 msgid "Set manually" msgstr "Configurar manualmente" #: js/gutenberg/blocks.build.js:1 msgid "Detect automatically" msgstr "Detectar automáticamente" #: js/gutenberg/blocks.build.js:1 msgid "Color settings" msgstr "Configuración de colores" #: js/gutenberg/blocks.build.js:1 msgid "Store Navigation" msgstr "Navegación en la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Store Front Page" msgstr "Página del escaparate virtual" #: js/gutenberg/blocks.build.js:1 msgid "Product sidebar content" msgstr "Contenido de la barra lateral de productos" #: js/gutenberg/blocks.build.js:1 msgid "Product Page Appearance" msgstr "Apariencia de la página del producto" #: js/gutenberg/blocks.build.js:1 msgid "Product List Appearance" msgstr "Apariencia de la lista de productos" #: js/gutenberg/blocks.build.js:1 msgid "Category List Appearance" msgstr "Apariencia de la lista de categorías" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Display cart icon" msgstr "Mostrar icono del carrito" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Para mejorar la apariencia de su tienda y poder gestionar la apariencia de su escaparate virtual desde aquí, habilite la opción «Apariencia de próxima generación de la lista de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Add storefront (product listing)" msgstr "Añadir escaparate virtual (listado de productos)" #: templates/admin/storefront/main.php:21 msgid "Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers." msgstr "Los clientes no pueden ver la página de su tienda porque está en un borrador. Publique la página para que esté disponible para sus clientes." #: templates/admin/storefront/main.php:20 msgid "The store is not visible on your site" msgstr "La tienda no es visible en su sitio web" #: templates/admin/storefront/main.php:4 msgid "Your Storefront" msgstr "Su escaparate virtual" #: templates/admin/storefront/area-promo.php:30 msgid "Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars." msgstr "Ayude a los clientes a encontrar su tienda en el sitio web. Añada el enlace de la tienda al menú del sitio web, cree páginas adicionales de la tienda y resalte los productos de la tienda en otras páginas del sitio web y en las barras laterales." #: templates/admin/storefront/area-promo.php:29 msgid "Promote your store" msgstr "Promocione su tienda" #: templates/admin/storefront/area-promo.php:26 msgid "Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store." msgstr "Manténgase conectado con sus clientes. Actualice el contenido de su tienda en cualquier momento para informarles a los clientes sobre las promociones actuales y las novedades de su tienda." #: templates/admin/storefront/area-promo.php:25 msgid "Change store content" msgstr "Cambiar el contenido de la tienda" #: templates/admin/storefront/area-promo.php:22 msgid "Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand." msgstr "Personalice la apariencia de su tienda para que se ajuste a las necesidades de su negocio. Cree la apariencia para su tienda que más se parezca a su marca." #: templates/admin/storefront/area-promo.php:21 msgid "Customize store appearance" msgstr "Personalizar la apariencia de la tienda" #: templates/admin/storefront/area-promo.php:7 msgid "Add your %s store to the website and start selling in minutes." msgstr "Añada su tienda de %s al sitio web y comience a vender en minutos." #: templates/admin/storefront/area-promo.php:3 msgid "What's next?" msgstr "¿Qué sigue?" #: templates/admin/storefront/area-additional.php:224 msgid "Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar." msgstr "Su tienda se añade a varias páginas del sitio web. Elija la página principal. Los clientes son redirigidos a la página principal de la tienda cuando hacen clic en el icono del carrito, en los enlaces de la tienda ubicados en el menú del sitio web o en los productos que se encuentran en la barra lateral." #: templates/admin/storefront/area-additional.php:222 msgid "Choose the main store page" msgstr "Elegir la página principal de la tienda" #: templates/admin/storefront/area-additional.php:200 msgid "Go to Pages" msgstr "Ir a «Páginas»" #: templates/admin/storefront/area-additional.php:193 msgid "You can add the entire storefront, categories, products, or \"Buy now\" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block." msgstr "Puede añadir todo el escaparate virtual, las categorías, los productos o los botones de «Comprar ahora» a otras páginas de su sitio web. Para ello, abra una página en el editor y añada un bloque %s apropiado." #: templates/admin/storefront/area-additional.php:189 msgid "Add your store to other site pages" msgstr "Añada su tienda a otras páginas del sitio web" #: templates/admin/storefront/area-additional.php:166 msgid "Create Product Page" msgstr "Crear página de productos" #: templates/admin/storefront/area-additional.php:150 msgid "Pick Product" msgstr "Elegir un producto" #: templates/admin/storefront/area-additional.php:136 #: templates/admin/storefront/area-additional.php:138 msgid "Create a landing page featuring one of your products." msgstr "Cree una página de aterrizaje con uno de sus productos." #: templates/admin/storefront/area-additional.php:132 msgid "Add a product page" msgstr "Añadir página de productos" #: templates/admin/storefront/area-additional.php:109 msgid "Create Category Page" msgstr "Crear página de categorías" #: templates/admin/storefront/area-additional.php:93 msgid "Pick Category" msgstr "Elegir una categoría" #: templates/admin/storefront/area-additional.php:79 #: templates/admin/storefront/area-additional.php:81 msgid "Feature a specific store category on a separate page of your site." msgstr "Destacar una categoría de la tienda específica en una página separada de su sitio web." #: templates/admin/storefront/area-additional.php:75 msgid "Add a category page" msgstr "Añadir una página de categoría" #: templates/admin/storefront/area-additional.php:54 msgid "Create Search Page" msgstr "Crear página de búsqueda" #: templates/admin/storefront/area-additional.php:50 msgid "Show customers that they can use a search and filters to find desired products faster." msgstr "Muéstreles a los clientes que pueden utilizar la búsqueda y los filtros para encontrar los productos que deseen de forma más rápida." #: templates/admin/storefront/area-additional.php:48 msgid "Add a search and filters page" msgstr "Añadir una página de búsqueda y filtros" #: templates/admin/storefront/area-additional.php:27 msgid "Create Cart Page" msgstr "Crear página del carrito" #: templates/admin/storefront/area-additional.php:23 msgid "Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout." msgstr "Los clientes van a la página del carrito para consultar los productos que han añadido al mismo y proceder con el pago." #: templates/admin/storefront/area-additional.php:21 msgid "Add cart and checkout page" msgstr "Añadir carrito y página de pago" #: templates/admin/storefront/area-additional.php:4 msgid "Highlight products, categories, and other store pages by adding them to separate website pages." msgstr "Destaque productos, categorías y otras páginas de la tienda añadiéndolas a páginas del sitio web separadas." #: templates/admin/storefront/area-additional.php:3 msgid "Additional store pages" msgstr "Páginas adicionales de la tienda" #: templates/admin/storefront/draft-message.php:2 msgid "Publish the page to use this option" msgstr "Publique la página para poder utilizar esta opción" #: templates/admin/storefront/area-design.php:55 msgid "Along with the store catalog, you can add other widgets and texts to the store page." msgstr "Junto con el catálogo de la tienda, puede añadir otros «widgets» y textos a la página de la tienda." #: templates/admin/storefront/area-design.php:54 msgid "Store page content" msgstr "Contenido de la página de la tienda" #: templates/admin/storefront/area-design.php:25 #: templates/admin/storefront/area-design.php:27 msgid "Adjust your store design to fit your business needs." msgstr "Ajuste el diseño de su tienda para que se adapte a las necesidades de su negocio." #: templates/admin/storefront/area-design.php:21 msgid "Store appearance" msgstr "Apariencia de la tienda" #: templates/admin/storefront/area-design.php:4 msgid "Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers." msgstr "Personalice la apariencia de su escaparate virtual y edite el contenido en la página de la tienda para reflejar su marca y mantenerse conectado con sus clientes." #: templates/admin/storefront/area-design.php:3 msgid "Design and content" msgstr "Diseño y contenido" #: templates/admin/storefront/area-status.php:124 msgid "Create Store Page" msgstr "Crear la página de la tienda" #: templates/admin/storefront/area-status.php:121 msgid "Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display." msgstr "Su tienda no se añade a ninguna página de su sitio web. Para que los clientes puedan navegar por su tienda y realizar pedidos, cree una página donde se mostrará la tienda." #: templates/admin/storefront/area-status.php:115 msgid "Set Up Your Store" msgstr "Configure su tienda" #: templates/admin/storefront/area-status.php:109 msgid "To show your storefront instead of the demo store, connect your existing %s account or create a new one." msgstr "Para mostrar su escaparate virtual en lugar de la tienda de demostración, conecte su cuenta de %s existente o cree una nueva." #: templates/admin/storefront/area-status.php:101 msgid "Publish Store Page" msgstr "Publicar la página de la tienda" #: templates/admin/storefront/area-status.php:98 msgid "Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders." msgstr "La página de su tienda está actualmente en un borrador. Una vez que esté lista, publíquela para que los clientes puedan visitar la tienda y realizar pedidos." #: templates/admin/storefront/area-status.php:92 msgid "View Store Page" msgstr "Ver la página de la tienda" #: templates/admin/storefront/area-status.php:86 msgid "Your store page is published. Customers can browse your store at " msgstr "La página de su tienda está publicada. Los clientes pueden visitar su tienda en " #: templates/admin/storefront/area-status.php:77 msgid "View demo store page" msgstr "Ver la página de la tienda de demostración" #: templates/admin/storefront/area-status.php:46 msgid "Draft" msgstr "Borrador" #: templates/admin/storefront/area-status.php:45 msgid "Published" msgstr "Publicada" #: templates/admin/storefront/area-status.php:33 #: templates/admin/storefront/area-status.php:36 msgid "Status" msgstr "Estado" #: templates/admin/storefront/area-status.php:29 msgid "Add a store page" msgstr "Añadir una página de tienda" #: templates/admin/storefront/area-status.php:24 msgid "Connect your %s store" msgstr "Conecte su tienda de %s" #: templates/admin/storefront/area-status.php:21 msgid "Your store page" msgstr "La página de su tienda" #: templates/admin/storefront/area-status.php:10 msgid "To start selling, add a page to your site where the storefront will display." msgstr "Para comenzar a vender, añada una página a su sitio web donde se muestre el escaparate virtual." #: templates/admin/storefront/area-status.php:7 msgid "While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site." msgstr "Mientras su tienda aún no esté conectada, se mostrará una tienda de demostración en su sitio web. Échele un vistazo para tener una idea de cómo se verá su tienda en el sitio web." #: templates/admin/storefront/area-status.php:4 msgid "Store page on your site" msgstr "Página de la tienda en su sitio web" #: templates/admin/storefront/area-navigation.php:205 msgid "The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href=\"%s\" target=\"_blank\">adjust the cart icon appearance</a>." msgstr "El icono del carrito de compras muestra la cantidad de artículos en el carrito y ayuda a los clientes a realizar el pago. Además, puede <a href=\"%s\" target=\"_blank\">ajustar la apariencia del icono del carrito</a>." #: templates/admin/storefront/area-navigation.php:201 msgid "Display the shopping cart icon on site pages" msgstr "Muestre el icono del carrito de compras en las páginas del sitio web" #: templates/admin/storefront/area-navigation.php:179 msgid "Manage Sidebar" msgstr "Gestionar la barra lateral" #: templates/admin/storefront/area-navigation.php:175 msgid "Highlight your best sellers or new products in the website sidebar." msgstr "Destaque sus mejores ventas o nuevos productos en la barra lateral del sitio web." #: templates/admin/storefront/area-navigation.php:173 msgid "Feature your products in the sidebar" msgstr "Destaque sus productos en la barra lateral" #: templates/admin/storefront/area-navigation.php:151 msgid "Add Store Page to Menu" msgstr "Añadir la página de la tienda al menú" #: templates/admin/storefront/area-navigation.php:147 msgid "Make your store accessible from the site menu so your customers can easily find it." msgstr "Haga que su tienda sea accesible desde el menú del sitio web para que sus clientes puedan encontrarla fácilmente." #: templates/admin/storefront/area-navigation.php:141 msgid "Add store page to the site menu" msgstr "Añadir la página de la tienda al menú del sitio web" #: templates/admin/storefront/area-navigation.php:118 msgid "Edit URL Slug" msgstr "Editar «slug» de la dirección URL" #: templates/admin/storefront/area-navigation.php:102 msgid "Current URL slug: /<span data-ec-store-slug>%s</span>" msgstr "«Slug» actual de la dirección URL: /<span data-ec-store-slug>%s</span>" #: templates/admin/storefront/area-navigation.php:78 msgid "Save" msgstr "Guardar" #: templates/admin/storefront/area-navigation.php:69 msgid "URL Slug" msgstr "«Slug» de la dirección URL" #: templates/admin/storefront/area-navigation.php:60 #: templates/admin/storefront/area-navigation.php:113 msgid "A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use \"/shop\" or \"/products\"." msgstr "Un «slug» es la última parte de una URL. Puede crear un «slug» personalizado para la página de su tienda. Es mejor que sea corto, ya que los clientes y los motores de búsqueda prefieren las URL cortas. Por ejemplo, utilice «/tienda» o «/productos»." #: templates/admin/storefront/area-navigation.php:56 #: templates/admin/storefront/area-navigation.php:98 msgid "Customize store page address" msgstr "Personalizar la dirección de la página de la tienda" #: templates/admin/storefront/area-navigation.php:29 msgid "Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href=\"%s\" target=\"_blank\">WordPress Settings > Reading</a>" msgstr "Añada su escaparate virtual a la página de inicio del sitio web para que sea más notable. También puede modificar la configuración de la página de inicio del sitio web en <a href=\"%s\" target=\"_blank\">Configuración de WordPress > Lectura</a>." #: templates/admin/storefront/area-navigation.php:21 msgid "Show your store on the home page" msgstr "Muestre su tienda en la página de inicio" #: templates/admin/storefront/area-navigation.php:4 msgid "Help customers find your store on the website." msgstr "Ayude a los clientes a encontrar su tienda en el sitio web." #: templates/admin/storefront/area-navigation.php:3 msgid "Navigation" msgstr "Navegación" #: templates/admin/welcome-no_oauth.php:12 msgid "Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>." msgstr "El ID de la tienda es un identificador único de su cuenta de %1$s. Puede encontrarlo en su panel de control de %1$s en la <a %2$s>página del panel</a>." #: templates/admin/welcome-create.php:11 msgid "Your store has been created. Preparing your store dashboard ..." msgstr "Se ha creado su tienda. Preparando el panel de su tienda..." #: templates/admin/welcome-connect.php:8 msgid "Create store" msgstr "Crear tienda" #: templates/admin/welcome-connect.php:4 msgid "Connect Your Store" msgstr "Conecte su tienda" #: templates/admin/welcome-page.php:61 msgid "Provided by <a %s>%s</a>" msgstr "Proporcionado por <a %s>%s</a>" #: templates/admin/welcome-page.php:33 msgid "To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>." msgstr "Para añadir su tienda a su sitio web, introduzca el ID de su tienda de %1$s en el campo a continuación. Si aún no tiene una cuenta de %1$s, cree una gratis en el <a %2$s>sitio web de %1$s</a>." #: templates/admin/welcome-page.php:20 msgid "Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website." msgstr "Cree una nueva tienda o, si ya tiene una cuenta de %s, conéctela. El complemento le guiará a través de la configuración de la tienda y le ayudará a publicarla en su sitio web." #: templates/admin/welcome-page.php:12 msgid "Add an Online Store to Your Website" msgstr "Añadir una tienda en línea a su sitio web" #: includes/class-ecwid-store-page.php:566 msgid "This is a demo store. Create your store to see your store products here." msgstr "Esto es una tienda de demostración. Cree su tienda para ver los productos de su tienda aquí." #: includes/class-ecwid-admin-storefront-page.php:539 msgid "Publish" msgstr "Publicar" #: templates/admin/storefront/area-design.php:33 #: templates/admin/storefront/area-design.php:59 #: includes/class-ecwid-admin-storefront-page.php:532 msgid "Edit" msgstr "Editar" #: includes/class-ecwid-admin-storefront-page.php:525 msgid "Preview" msgstr "Vista previa" #: includes/class-ecwid-admin-storefront-page.php:516 msgid "Switch to draft" msgstr "Cambiar al borrador" #: includes/class-ecwid-admin-storefront-page.php:506 msgid "Edit page" msgstr "Editar página" #: includes/class-ecwid-admin-storefront-page.php:499 msgid "View store page" msgstr "Ver la página de la tienda" #: includes/class-ecwid-admin-storefront-page.php:286 msgid "Search products" msgstr "Buscar productos" #: includes/class-ecwid-admin-storefront-page.php:265 msgid "Category" msgstr "Categoría" #: includes/class-ecwid-admin-storefront-page.php:240 msgid "Page with that name already exists." msgstr "Ya existe una página con ese nombre." #: includes/class-ecwid-admin.php:538 msgid "My Profile" msgstr "Mi perfil" #: includes/class-ecwid-admin.php:533 msgid "Apps" msgstr "Aplicaciones" #: includes/class-ecwid-admin.php:523 msgid "Shipping & Pickup" msgstr "Envío y recogida" #: includes/class-ecwid-admin.php:518 msgid "Payment" msgstr "Pago" #: includes/class-ecwid-admin.php:513 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:88 msgid "Design" msgstr "Diseño" #: includes/class-ecwid-admin.php:509 msgid "Configuration" msgstr "Configuración" #: includes/class-ecwid-admin.php:504 msgid "All Sales Channels" msgstr "Todos los canales de venta" #: includes/class-ecwid-admin.php:499 msgid "Website" msgstr "Sitio web" #: includes/class-ecwid-admin.php:494 msgid "Mobile" msgstr "Móvil" #: includes/class-ecwid-admin.php:485 msgid "Sales channels" msgstr "Canales de venta" #: includes/class-ecwid-admin.php:480 msgid "Reports" msgstr "Informes" #: includes/class-ecwid-admin.php:475 msgid "Marketing" msgstr "Mercadotecnia" #: includes/class-ecwid-admin.php:470 msgid "Catalog" msgstr "Catálogo" #: includes/class-ecwid-admin.php:465 msgid "My Sales" msgstr "Mis ventas" #: includes/class-ecwid-admin.php:455 msgid "Store management" msgstr "Gestión de la tienda" #: includes/class-ecwid-admin.php:344 msgid "Instant site" msgstr "Sitio web instantáneo" #: includes/class-ecwid-admin.php:153 includes/class-ecwid-admin.php:154 #: includes/class-ecwid-admin.php:309 msgid "Storefront" msgstr "Escaparate virtual" #: ecwid-shopping-cart.php:1111 msgid "Manage storefront" msgstr "Gestionar escaparate virtual" #: ecwid-shopping-cart.php:1111 msgid "Customize design" msgstr "Personalizar el diseño" #: ecwid-shopping-cart.php:1103 msgid "Manage store" msgstr "Gestionar la tienda" #: templates/importer/woo-main.tpl.php:97 msgid "Start Import" msgstr "Iniciar la importación" #: templates/importer/woo-main.tpl.php:87 msgid "Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target=\"_blank\">\"Billing & Plans\"</a></nobr> page in your Ecwid store control panel." msgstr "Tenga en cuenta el número máximo de productos y categorías que puede tener en su tienda de Ecwid. Esta herramienta de importación se detendrá automáticamente cuando se alcance el límite de productos de la tienda. Para conocer el límite actual de la tienda o aumentarlo, consulte la página <nobr><a %s target=\"_blank\">«Facturación y planes»</a></nobr> ubicada en el panel de su tienda de Ecwid." #: templates/importer/woo-main.tpl.php:82 msgid "Import creates new products and update the existing products with matching SKUs." msgstr "La importación crea nuevos productos y actualiza los productos existentes con las REF correspondientes." #: templates/importer/woo-main.tpl.php:60 msgid "Copying products and categories." msgstr "Copia de productos y categorías." #: templates/importer/woo-main.tpl.php:50 msgid "Import completed. <a href=\"%s\">Run again.</a>" msgstr "Importación completada. <a href=\"%s\">Ejecútela de nuevo.</a>" #: templates/importer/woo-main.tpl.php:34 msgid "Import is in Progress" msgstr "La importación está en progreso" #: templates/importer/woo-main.tpl.php:32 msgid "Import your products from Woocommerce to %s" msgstr "Importe sus productos de Woocommerce a %s" #: templates/importer/woo-main.tpl.php:18 msgid "Update your catalog" msgstr "Actualice su catálogo" #: templates/importer/woo-main.tpl.php:4 msgid "Import Your Products From Woocommerce to %s" msgstr "Importe sus productos de Woocommerce a %s" #: templates/importer/import-no-token.tpl.php:3 msgid "Click the connect button to get rights to update the product catalog" msgstr "Haga clic en el botón «Conectar» para obtener los permisos para actualizar el catálogo de productos" #: templates/importer/woo-complete-alert.tpl.php:52 msgid "Go to Your %s Products" msgstr "Ir a sus productos de %s" #: templates/importer/woo-complete-alert.tpl.php:43 msgid "Download <a href=\"%s\">import log</a>" msgstr "Descargar <a href=\"%s\">registro de importación</a>" #: templates/importer/woo-complete-alert.tpl.php:32 msgid "Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>" msgstr "Parte de los productos no se han copiado a %1$s porque alcanzó el límite de productos en su plan de precios en %1$s. Si desea importar más productos, considere <nobr><a %2$s>actualizar su plan de %1$s.</a></nobr>" #: templates/importer/woo-complete-alert.tpl.php:21 msgid "<b>%s</b> categories" msgstr "<b>%s</b> categorías" #: templates/importer/woo-complete-alert.tpl.php:18 msgid "Imported <b>%s</b> products" msgstr "<b>%s</b> productos importados" #: templates/importer/woo-complete-alert.tpl.php:15 msgid "Import completed" msgstr "Importación completada" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:10 #: includes/widgets/class-ecwid-widget-product-browser.php:12 msgid "Online store" msgstr "Tienda en línea" #: includes/class-ecwid-store-page.php:476 msgid "%s Store Page" msgstr "Página de la tienda de %s" #: templates/advanced-settings.php:79 msgid "Integration with search on your site" msgstr "Integración con la búsqueda en su sitio web" #: templates/sync.php:130 msgid "Deleted products synchronized: %1$s out of %2$s" msgstr "Productos eliminados sincronizados: %1$s de %2$s" #: includes/class-ecwid-custom-admin-page.php:66 msgid "Themes for Ecwid" msgstr "Temas para Ecwid" #: includes/class-ecwid-custom-admin-page.php:33 msgid "Plugins for Ecwid" msgstr "Complementos para Ecwid" #: includes/class-ecwid-popup-deactivate.php:138 msgid "I use this WordPress theme: %s" msgstr "Utilizo este tema de WordPress: %s" #: includes/class-ecwid-popup-deactivate.php:132 msgid "I couldn’t find a WordPress theme that goes well with %s" msgstr "No pude encontrar un tema de WordPress adecuado para %s" #: includes/class-ecwid-product-browser.php:357 msgid "On the right" msgstr "A la derecha" #: includes/class-ecwid-product-browser.php:353 msgid "On the left" msgstr "A la izquierda" #: includes/class-ecwid-product-browser.php:349 msgid "Filters panel position" msgstr "Posición del panel de filtros" #: includes/class-ecwid-product-browser.php:209 msgid "Default product_ID" msgstr "ID del producto predeterminado" #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:73 msgid "Cart icon" msgstr "Icono del carrito de compras" #: templates/shortcode-stub-store.tpl.php:4 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:20 #: js/gutenberg/blocks.build.js:1 msgid "Store Home Page" msgstr "Página de inicio de la tienda" #: ecwid-shopping-cart.php:431 msgid "Edit Category" msgstr "Editar categoría" #: ecwid-shopping-cart.php:430 msgid "Edit Product" msgstr "Editar producto" #: includes/class-ecwid-admin.php:142 includes/class-ecwid-admin.php:143 msgid "Online Store Apps" msgstr "Aplicaciones de la tienda en línea" #. Plugin Name of the plugin msgid "Ecwid Ecommerce Shopping Cart" msgstr "Carrito de compras del comercio electrónico de Ecwid" #: includes/class-ecwid-custom-admin-page.php:58 includes/faq_entries.php:76 msgid "Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href=\"%s\">TemplateMonster themes</a>" msgstr "Ecwid es compatible con cualquier tema de WordPress. Ya sea un tema gratuito del catálogo de WordPress.org, un tema prémium de un proveedor externo o un tema personalizado; su tienda de Ecwid funcionará bien con cualquiera de ellos. Si desea un tema prémium, le recomendamos <a href=\"%s\">temas de TemplateMonster</a>." #: includes/faq_entries.php:74 msgid "Is there a WordPress theme for Ecwid?" msgstr "¿Existe algún tema de WordPress para Ecwid?" #: templates/admin-footer.php:19 msgid "<a href=\"admin.php?page=" msgstr "<a href=\"admin.php?page=" #: includes/integrations/class-ecwid-integration-gutenberg.php:113 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:25 msgid "You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href=\"%1$s\">Appearance → Customize → %2$s</a>” menu to enable it." msgstr "Puede habilitar un «widget» adicional del icono de la bolsa de compras que aparecerá en las páginas de su sitio web. Abra el menú «<a href=\"%1$s\">Apariencia → Personalizar → %2$s</a>» para habilitarlo." #: includes/integrations/class-ecwid-integration-gutenberg.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:18 msgctxt "gutenberg-store-block-stub" msgid "Store" msgstr "Tienda" #: includes/class-ecwid-product-browser.php:472 msgid "Image feed" msgstr "Canal de imagen" #: includes/class-ecwid-product-browser.php:467 msgid "Vertical thumbnails" msgstr "Miniaturas verticales" #: includes/class-ecwid-product-browser.php:462 msgid "Horizontal thumbnails" msgstr "Miniaturas horizontales" #: includes/class-ecwid-product-browser.php:452 msgid "3 columns, image on the right" msgstr "3 columnas, imagen a la derecha" #: includes/class-ecwid-product-browser.php:448 msgid "3 columns, image on the left" msgstr "3 columnas, imagen a la izquierda" #: includes/class-ecwid-product-browser.php:444 msgid "2 columns, image on the right" msgstr "2 columnas, imagen a la derecha" #: includes/class-ecwid-product-browser.php:440 msgid "2 columns, image on the left" msgstr "2 columnas, imagen a la izquierda" #: includes/class-ecwid-product-browser.php:429 msgid "Landscape 3:2" msgstr "Horizontal 3:2" #: includes/class-ecwid-product-browser.php:424 msgid "Landscape 4:3" msgstr "Horizontal 4:3" #: includes/class-ecwid-product-browser.php:419 msgid "Square 1:1" msgstr "Cuadrado 1:1" #: includes/class-ecwid-product-browser.php:414 msgid "Portrait 3:4" msgstr "Vertical 3:4" #: includes/class-ecwid-product-browser.php:409 msgid "Portrait 2:3" msgstr "Vertical 2:3" #: includes/class-ecwid-product-browser.php:399 msgid "L" msgstr "G" #: includes/class-ecwid-product-browser.php:395 msgid "M" msgstr "M" #: includes/class-ecwid-product-browser.php:391 msgid "S" msgstr "P" #: includes/class-ecwid-product-browser.php:381 msgid "Show on hover" msgstr "Mostrar al pasar el ratón" #: includes/class-ecwid-product-browser.php:377 msgid "Hide" msgstr "Ocultar" #: includes/class-ecwid-product-browser.php:373 msgid "Show" msgstr "Mostrar" #: includes/class-ecwid-product-browser.php:342 msgid "Background color" msgstr "Color del fondo" #: includes/class-ecwid-product-browser.php:335 msgid "Link color" msgstr "Color del enlace" #: includes/class-ecwid-product-browser.php:328 msgid "Price color" msgstr "Color del precio" #: includes/class-ecwid-product-browser.php:321 msgid "Text color" msgstr "Color del texto" #: includes/class-ecwid-product-browser.php:314 msgid "Button color" msgstr "Color del botón" #: includes/class-ecwid-product-browser.php:299 msgid "Wholesale prices" msgstr "Precios al por mayor" #: includes/class-ecwid-product-browser.php:292 msgid "\"In stock\" label" msgstr "Etiqueta de productos «En existencia»" #: includes/class-ecwid-product-browser.php:285 msgid "Available qty in stock" msgstr "Cantidad disponible en existencia" #: includes/class-ecwid-product-browser.php:278 msgid "Product quantity" msgstr "Cantidad de productos" #: includes/class-ecwid-product-browser.php:271 msgctxt "product-browser-attributes" msgid "Product price" msgstr "Precio del producto" #: includes/class-ecwid-product-browser.php:264 msgctxt "product-browser-attributes" msgid "Product SKU" msgstr "REF del producto" #: includes/class-ecwid-product-browser.php:257 msgid "Breadcrumbs" msgstr "Migas de pan" #: includes/class-ecwid-product-browser.php:241 msgid "Image gallery layout" msgstr "Diseño de la galería de imágenes" #: includes/integrations/class-ecwid-integration-gutenberg.php:391 #: includes/class-ecwid-product-browser.php:224 #: includes/class-ecwid-product-browser.php:233 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:212 msgid "Show description under the image" msgstr "Mostrar descripción debajo de la imagen" #: includes/class-ecwid-product-browser.php:216 msgid "Product page layout" msgstr "Diseño de la página de productos" #: includes/class-ecwid-product-browser.php:194 msgid "Display sort by link" msgstr "Mostrar «ordenar por enlace»" #: includes/class-ecwid-product-browser.php:186 #: includes/class-ecwid-product-browser.php:306 msgid "Display sign in link" msgstr "Mostrar el enlace de inicio de sesión" #: includes/class-ecwid-product-browser.php:178 msgid "Display footer menu" msgstr "Mostrar el menú del pie de página" #: includes/class-ecwid-product-browser.php:170 msgid "Display breadcrumbs" msgstr "Mostrar migas de pan" #: includes/class-ecwid-product-browser.php:163 js/gutenberg/blocks.build.js:1 msgid "Display search box" msgstr "Mostrar el cuadro de búsqueda" #: includes/class-ecwid-product-browser.php:156 msgid "Display categories menu" msgstr "Mostrar el menú de categorías" #: includes/class-ecwid-product-browser.php:148 msgid "Category thumbnail aspect ratio" msgstr "Relación de aspecto de la miniatura de la categoría" #: includes/class-ecwid-product-browser.php:140 msgid "Category thumbnail size" msgstr "Tamaño de la miniatura de la categoría" #: includes/class-ecwid-product-browser.php:131 msgid "Image only" msgstr "Solo imagen" #: includes/class-ecwid-product-browser.php:127 msgid "Title only" msgstr "Solo título" #: includes/class-ecwid-product-browser.php:123 msgid "Image and title on mouse over" msgstr "Imagen y título al pasar el ratón por encima" #: includes/class-ecwid-product-browser.php:119 msgid "Title on image" msgstr "Título en la imagen" #: includes/class-ecwid-product-browser.php:115 msgid "Title under image" msgstr "Título debajo de la imagen" #: includes/class-ecwid-product-browser.php:111 msgid "Category card layout" msgstr "Diseño de la ficha de categoría" #: includes/class-ecwid-product-browser.php:103 msgid "Show additional image on hover" msgstr "Mostrar imagen adicional al pasar el ratón" #: includes/class-ecwid-product-browser.php:95 msgid "Buy now buttons" msgstr "Botones de «Comprar ahora»" #: includes/class-ecwid-product-browser.php:87 msgid "Product SKU" msgstr "REF del producto" #: includes/class-ecwid-product-browser.php:79 msgid "Product price" msgstr "Precio del producto" #: includes/class-ecwid-product-browser.php:71 msgid "Product title" msgstr "Título del producto" #: includes/class-ecwid-product-browser.php:61 msgid "Justify" msgstr "Justificado" #: includes/class-ecwid-product-browser.php:56 msgid "Right" msgstr "Derecha" #: includes/class-ecwid-product-browser.php:51 msgid "Center" msgstr "Centrado" #: includes/class-ecwid-product-browser.php:46 msgid "Left" msgstr "Izquierda" #: includes/class-ecwid-product-browser.php:42 msgid "Product card text align" msgstr "El texto de la ficha del producto se alinea" #: includes/class-ecwid-product-browser.php:34 msgid "Show product card border" msgstr "Mostrar el borde de la ficha del producto" #: includes/class-ecwid-product-browser.php:26 msgid "Product thumbnail aspect ratio" msgstr "Relación de aspecto de la miniatura del producto" #: includes/class-ecwid-product-browser.php:18 msgid "Product thumbnail size" msgstr "Tamaño de la miniatura del producto" #: includes/class-ecwid-product-browser.php:10 msgid "Show product thumbnails" msgstr "Mostrar miniaturas de los productos" #. Author of the plugin msgid "Ecwid Ecommerce" msgstr "Comercio electrónico Ecwid" #: templates/importer/woo-summary.tpl.php:34 msgid "After import, your %s store will have " msgstr "Después de la importación, su tienda de %s tendrá " #: templates/importer/woo-summary.tpl.php:21 msgid "Your %s store has " msgstr "Su tienda de %s tiene " #: templates/importer/woo-summary.tpl.php:10 msgid "Your WooCommerce store has " msgstr "Su tienda de WooCommerce tiene " #: includes/integrations/class-ecwid-integration-elementor.php:64 #: includes/integrations/class-ecwid-integration-divibuilder.php:25 #: includes/integrations/class-ecwid-integration-gutenberg.php:94 msgid "%s Store" msgstr "Tienda de %s" #: includes/importer/class-ecwid-import-page.php:184 msgid "%s products" msgstr "%s productos" #: includes/importer/class-ecwid-import-page.php:178 msgid "%s products and %s categories" msgstr "%s productos y %s categorías" #: includes/class-ecwid-stub-renderer.php:27 #: includes/class-ecwid-admin-storefront-page.php:272 msgid "Product" msgstr "Producto" #: includes/class-ecwid-message-manager.php:278 #: includes/class-ecwid-message-manager.php:297 #: includes/class-ecwid-message-manager.php:318 msgid "Warning: some of your online store features are disabled. Please contact your hosting provider to resolve." msgstr "Advertencia: algunas de las funciones de su tienda en línea están inhabilitadas. Póngase en contacto con su proveedor de alojamiento web para resolverlo." #: templates/admin/legacy-connect.tpl.php:39 msgid "Create new account" msgstr "Crear una nueva cuenta" #: templates/admin/legacy-connect.tpl.php:33 msgid "Register at %s" msgstr "Registrarse en %s" #: includes/class-ecwid-floating-minicart.php:155 msgid "Bottom left" msgstr "Abajo a la izquierda" #: includes/class-ecwid-floating-minicart.php:154 msgid "Top left" msgstr "Arriba a la izquierda" #: includes/class-ecwid-floating-minicart.php:113 msgid "Show on all pages" msgstr "Mostrar en todas las páginas" #: includes/class-ecwid-floating-minicart.php:112 msgid "Show on store pages" msgstr "Mostrar en las páginas de la tienda" #: includes/class-ecwid-floating-minicart.php:111 msgid "Do not show" msgstr "No mostrar" #: includes/class-ecwid-customizer.php:134 msgid "Vertical indent" msgstr "Sangría vertical" #: includes/class-ecwid-customizer.php:123 msgid "Horizontal indent" msgstr "Sangría horizontal" #: includes/class-ecwid-customizer.php:97 msgid "Icon" msgstr "Icono" #: includes/class-ecwid-customizer.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:79 msgid "Border" msgstr "Borde" #: includes/class-ecwid-customizer.php:72 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:67 msgid "Layout" msgstr "Diseño" #: includes/class-ecwid-customizer.php:61 msgid "Show when empty" msgstr "Mostrar cuando esté vacío" #: includes/class-ecwid-customizer.php:49 msgid "Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The \"Show on store pages\" and \"Show when empty\" options will apply to the cart widget on site when published" msgstr "Nota: cuando está habilitado, el «widget» del carrito siempre se mostrará en la vista previa para que sea más fácil personalizarlo. Las opciones «Mostrar en las páginas de la tienda» y «Mostrar cuando esté vacío» se aplicarán al «widget» del carrito en el sitio cuando se publiquen" #: includes/class-ecwid-customizer.php:47 msgid "Display shopping cart" msgstr "Mostrar el carrito de compras" #: includes/class-ecwid-customizer.php:35 msgid "Shopping Cart Widget" msgstr "«Widget» del carrito de compras" #. Author URI of the plugin msgid "https://ecwid.to/ecwid-site" msgstr "https://ecwid.to/ecwid-site" #: templates/product-popup.php:247 msgid "selected product" msgstr "producto seleccionado" #: templates/product-popup.php:138 templates/product-popup.php:143 msgid "Selected Product" msgstr "Producto seleccionado" #: templates/product-popup.php:124 msgid " Choose another product" msgstr " Elegir otro producto" #: templates/importer/landing.tpl.php:20 msgid "Import your WooCommerce catalog to %s" msgstr "Importe su catálogo de WooCommerce a %s" #: includes/widgets/nsf-minicart-editor.tpl.php:35 msgid "Border:" msgstr "Borde:" #: includes/widgets/nsf-minicart-editor.tpl.php:19 msgid "Cart icon:" msgstr "Icono del carrito:" #: includes/widgets/nsf-minicart-editor.tpl.php:3 msgid "Layout:" msgstr "Diseño:" #: includes/class-ecwid-floating-minicart.php:145 msgid "No border" msgstr "Sin borde" #: includes/class-ecwid-floating-minicart.php:144 msgid "Pill" msgstr "Píldora" #: includes/class-ecwid-floating-minicart.php:143 msgid "Rectangle" msgstr "Rectángulo" #: includes/class-ecwid-floating-minicart.php:136 msgid "Basket" msgstr "Cesta" #: includes/class-ecwid-floating-minicart.php:134 msgid "Bag" msgstr "Bolsa" #: includes/class-ecwid-floating-minicart.php:127 msgid "Icon, label, item count, subtotal and link" msgstr "Icono, etiqueta, total de artículos, subtotal y enlace" #: includes/class-ecwid-floating-minicart.php:126 msgid "Icon, label, item count and subtotal" msgstr "Icono, etiqueta, total de artículos y subtotal" #: includes/class-ecwid-floating-minicart.php:125 msgid "Icon, label and item count" msgstr "Icono, etiqueta y total de artículos" #: includes/class-ecwid-floating-minicart.php:124 msgid "Icon and item count" msgstr "Icono y total de artículos" #: includes/class-ecwid-floating-minicart.php:123 msgid "Label and item count" msgstr "Etiqueta y y total de artículos" #: includes/class-ecwid-floating-minicart.php:122 msgid "Item count only" msgstr "Solo el total de artículos" #: includes/class-ecwid-floating-minicart.php:121 msgid "Small icon and item count" msgstr "Icono pequeño y total de artículos" #: includes/class-ecwid-floating-minicart.php:120 msgid "Small icon" msgstr "Icono pequeño" #: includes/widgets/class-ecwid-widget-minicart.php:9 msgid "Shopping Cart (deprecated)" msgstr "Carrito de compras (descontinuado)" #: includes/widgets/class-ecwid-widget-minicart-miniview.php:9 msgid "Shopping Cart Mini (deprecated)" msgstr "Carrito de compras en miniatura (descontinuado)" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:21 msgid "Shopping Cart Floating (deprecated)" msgstr "Carrito de compras flotante (descontinuado)" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:69 msgid "Displays storefront: product listing and checkout" msgstr "Muestra el escaparate virtual: listado de productos y pago" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:67 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:70 msgctxt "vc-tab" msgid "Online store" msgstr "Tienda en línea" #: includes/integrations/class-ecwid-integration-gutenberg.php:105 #: includes/gutenberg/class-ecwid-gutenberg.php:131 msgid "Your product" msgstr "Su producto" #: templates/shortcode-stub-store.tpl.php:18 #: includes/integrations/class-ecwid-integration-gutenberg.php:103 #: includes/widgets/class-ecwid-widget-product-browser.php:11 #: includes/gutenberg/class-ecwid-gutenberg.php:129 msgid "Your store will be shown here" msgstr "Su tienda se mostrará aquí" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:31 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:101 #: includes/integrations/class-ecwid-integration-gutenberg.php:101 #: includes/gutenberg/class-ecwid-gutenberg.php:127 #: js/gutenberg/blocks.build.js:1 msgid "Choose product" msgstr "Elegir producto" #: includes/integrations/class-ecwid-integration-gutenberg.php:97 #: includes/gutenberg/class-ecwid-gutenberg.php:123 msgid "%s product" msgstr "%s producto" #: templates/wp-toolbox.tpl.php:4 msgid "Take advantage of powerful apps and extensions designed to enhance your store." msgstr "Aproveche las increíbles aplicaciones y extensiones diseñadas para mejorar su tienda." #: templates/wp-toolbox.tpl.php:3 msgid "Extensions for your Store" msgstr "Extensiones para su tienda" #: templates/importer/woo-summary.tpl.php:6 msgid "Import summary" msgstr "Resumen de la importación" #: templates/importer/woo-main.tpl.php:19 msgid "This import will copy your WooCommerce products and categories to your %s store." msgstr "Esta importación copiará sus productos y categorías de WooCommerce a su tienda de %s." #: templates/importer/woo-main.tpl.php:62 msgid "Importing %s of %s items" msgstr "Importando %s de %s artículos" #: templates/importer/woo-complete-alert.tpl.php:27 msgid "Some of the items could not be imported." msgstr "Algunos de los artículos no se pudieron importar." #: templates/importer/landing.tpl.php:33 msgid "Learn more" msgstr "Más información" #: templates/importer/landing.tpl.php:33 msgid "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" msgstr "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" #: templates/importer/landing.tpl.php:31 msgid "Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center" msgstr "Ecwid le permite subir sus productos en forma de archivo CSV. Obtenga más información sobre esta herramienta en el centro de asistencia de Ecwid" #: templates/importer/landing.tpl.php:29 msgid "Import product catalog from other sources" msgstr "Importar el catálogo de productos de otras fuentes" #: templates/importer/landing.tpl.php:23 msgid "(You will be able to confirm the changes before the actual import)" msgstr "(podrá confirmar los cambios antes de la importación definitiva)" #: templates/importer/landing.tpl.php:12 msgid "We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?" msgstr "Notamos que tiene un WooCommerce instalado. Su tienda de WooCommerce tiene %1$s productos y %2$s categorías; ¿le gustaría importarlos a %3$s?" #: templates/importer/landing.tpl.php:9 msgid "Import product catalog from WooCommerce" msgstr "Importar el catálogo de productos de WooCommerce" #: templates/importer/landing.tpl.php:4 msgid "Here, we will help you uploading your product catalog to %s from another shopping cart or other sources." msgstr "Aquí, le ayudaremos a subir su catálogo de productos a %s de otro carrito de compras u otras fuentes." #: templates/importer/landing.tpl.php:1 msgid "Import products to your %s store" msgstr "Importe los productos a su tienda de %s" #: templates/dashboard-blog-posts.tpl.php:20 msgid "Knowledge Base" msgstr "Base de conocimiento" #: templates/dashboard-blog-posts.tpl.php:19 msgid "https://support.ecwid.com/hc/en-us" msgstr "https://support.ecwid.com/hc/en-us" #: templates/dashboard-blog-posts.tpl.php:14 msgid "https://www.ecwid.com/blog" msgstr "https://www.ecwid.com/blog" #: includes/importer/class-ecwid-import.php:39 msgid "Bulk import products and categories to your %s store" msgstr "Importar en masa productos y categorías a su tienda de %s" #: includes/importer/class-ecwid-import.php:38 msgid "%s products and categories" msgstr "%s productos y categorías" #: templates/importer/woo-main.tpl.php:36 #: includes/importer/class-ecwid-import-page.php:52 #: includes/importer/class-ecwid-import-page.php:53 msgid "Import your products from WooCommerce to %s" msgstr "Importe sus productos de WooCommerce a %s" #: includes/importer/class-ecwid-import-page.php:42 #: includes/importer/class-ecwid-import-page.php:43 msgid "Import" msgstr "Importar" #: templates/dashboard-blog-posts.tpl.php:15 #: includes/class-ecwid-wp-dashboard-feed.php:48 msgid "%s Blog" msgstr "Blog de %s" #: includes/class-ecwid-message-manager.php:345 msgid "No Thanks" msgstr "No, gracias" #: includes/class-ecwid-message-manager.php:343 msgid "Import my products from WooCommerce" msgstr "Importar mis productos de WooCommerce" #: includes/class-ecwid-message-manager.php:341 msgid "We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you." msgstr "Notamos que tiene WooCommerce instalado. Si desea copiar fácilmente sus productos de WooCommerce a %s, esta herramienta le ayudará." #: includes/class-ecwid-message-manager.php:340 msgid "Need help importing your products from WooCommerce to %s?" msgstr "¿Necesita ayuda para importar sus productos de WooCommerce a %s?" #: includes/class-ecwid-admin.php:213 includes/class-ecwid-admin.php:214 msgid "Customers" msgstr "Clientes" #: templates/help.php:28 msgid "or <a %s>Browse the Help Center" msgstr "o <a %s>consulte el centro de asistencia" #: templates/admin/welcome-connection-message.php:5 msgid "To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission." msgstr "Para mostrar su tienda en este sitio web, debe permitir que WordPress acceda a sus productos de %1$s. Pulse «Conectar» para otorgar el permiso." #: includes/faq_entries.php:40 msgid "Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target=\"_blank\" href=\"%s\">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans." msgstr "Nuestros 4 tipos de cuentas varían según la cantidad de productos, los tipos de funcionalidades y el nivel de asistencia. Para obtener más información, consulte nuestra <a target=\"_blank\" href=\"%s\">página de precios.</a><br /><br />Consejo profesional: también puede ahorrar dinero si se suscribe a nuestros planes anuales." #: includes/class-ecwid-popup-deactivate.php:59 msgid "[%s] WordPress plugin deactivation feedback (store ID: %s)" msgstr "[%s] Comentarios sobre la desactivación del complemento de WordPress (ID de la tienda: %s)" #: includes/class-ecwid-message-manager.php:289 msgid "Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data." msgstr "Su escaparate virtual (listado de productos y página de pago) está funcionando bien, pero las funciones avanzadas de la tienda, como el SEO y los «widgets» de la barra lateral, están inhabilitadas. Para habilitarlas y asegurarse de que su tienda funcione correctamente, pulse el botón de abajo para conectar su cuenta de %s. Esto tomará menos de un minuto; solo se le pedirá que inicie sesión en su cuenta y permita que este sitio web obtenga los datos de su tienda." #: includes/class-ecwid-message-manager.php:288 msgid "Action required: please connect your %s account" msgstr "Acción requerida: conecte su cuenta de %s" #: templates/popup/deactivate.php:24 msgid "Contact Support" msgstr "Ponerse en contacto con la asistencia" #: templates/popup/deactivate.php:1 msgid "If you have a moment, please let us know why you are deactivating:" msgstr "Si tiene un momento, háganos saber por qué está desactivando:" #: templates/admin/welcome-create.php:4 msgid "Create Store" msgstr "Crear tienda" #: templates/advanced-settings.php:1 msgid "%s — Advanced settings" msgstr "%s — Configuración avanzada" #: includes/widgets/class-ecwid-widget-random-products.php:10 msgid "Displays a list of random products." msgstr "Muestra una lista de productos aleatorios." #: includes/widgets/class-ecwid-widget-random-products.php:9 msgid "Random Products" msgstr "Productos aleatorios" #: includes/widgets/class-ecwid-widget-random-product.php:9 #: includes/widgets/class-ecwid-widget-random-product.php:64 msgid "Random Product" msgstr "Producto aleatorio" #: includes/widgets/class-ecwid-widget-random-product.php:8 msgid "Displays a random product from your store to attract customer attention." msgstr "Muestra un producto aleatorio de su tienda para atraer la atención del cliente." #: includes/widgets/class-ecwid-widget-latest-products.php:10 msgid "Displays the latest added products from your store. Show new products to returning customers to drive repeat sales." msgstr "Muestra los últimos productos añadidos de su tienda. Muestre nuevos productos a los clientes existentes para impulsar las ventas repetidas." #: includes/widgets/class-ecwid-widget-latest-products.php:9 msgid "Latest Products" msgstr "Últimos productos" #: includes/class-ecwid-popup-deactivate.php:164 msgid "Can you share your feedback? What was wrong?" msgstr "¿Podría compartir su opinión? ¿Qué fue lo que pasó?" #: includes/class-ecwid-popup-deactivate.php:161 msgid "Other" msgstr "Otro" #: includes/class-ecwid-popup-deactivate.php:155 msgid "It's a temporary deactivation. Please do not ask me again." msgstr "Es una desactivación temporal. No preguntarme de nuevo." #: includes/class-ecwid-popup-deactivate.php:152 msgid "Can you share the name of the plugin you chose?" msgstr "¿Podría compartir el nombre del complemento que ha elegido?" #: includes/class-ecwid-popup-deactivate.php:149 msgid "I found a better plugin" msgstr "Encontré un mejor complemento" #: includes/class-ecwid-popup-deactivate.php:146 msgid "What feature do you need?" msgstr "¿Qué función necesita?" #: includes/class-ecwid-popup-deactivate.php:143 msgid "The plugin doesn't support the feature I want" msgstr "El complemento no es compatible con la función que quiero" #: includes/class-ecwid-popup-deactivate.php:128 msgid "What was wrong?" msgstr "¿Qué fue lo que pasó?" #: includes/class-ecwid-popup-deactivate.php:125 msgid "I have a problem using this plugin" msgstr "Tengo un problema con el uso de este complemento" #: includes/class-ecwid-popup-deactivate.php:112 msgid "Before You Go" msgstr "Antes de que se vaya" #: templates/admin/storefront/area-navigation.php:79 #: includes/class-ecwid-popup-deactivate.php:105 msgid "Cancel" msgstr "Cancelar" #: includes/class-ecwid-popup-deactivate.php:101 msgid "Submit & Deactivate" msgstr "Enviar y desactivar" #: includes/class-ecwid-message-manager.php:244 #: includes/class-ecwid-store-page.php:568 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:51 #: ecwid-shopping-cart.php:1082 js/gutenberg/blocks.build.js:1 msgid "Set up your store" msgstr "Configure su tienda" #: templates/admin-head.php:8 includes/class-ecwid-admin.php:48 #: includes/integrations/class-ecwid-integration-gutenberg.php:45 #: includes/gutenberg/class-ecwid-gutenberg.php:69 msgid "%s" msgstr "%s" #: templates/product-popup.php:199 js/gutenberg/blocks.build.js:1 msgid "«Buy now» button" msgstr "Botón de «Comprar ahora»" #: templates/admin/simple-dashboard.php:10 msgid "%s Shopping Cart" msgstr "Carrito de compras de %s" #: templates/advanced-settings.php:42 msgid "Please subscribe to a paid plan to get this feature." msgstr "Suscríbase a un plan de pago para obtener esta función." #: templates/admin-footer.php:9 msgid "Get %s mobile app" msgstr "Descargue la aplicación móvil de %s" #: includes/class-ecwid-message-manager.php:272 msgid "Rate %s at WordPress.org" msgstr "Tasa de %s en WordPress.org" #: includes/class-ecwid-message-manager.php:268 msgid "Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site." msgstr "¿Le gusta su tienda de %s en línea? Apreciaríamos si comparte su opinión y vota por el complemento en el sitio de WordPress." #: includes/class-ecwid-message-manager.php:260 msgid "To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings." msgstr "Para añadir funciones adicionales a su tienda, arrastre y suelte los elementos de la tienda de %s en su sitio web. Una vez que haya terminado, puede volver a modificar su configuración." #: templates/sync.php:114 msgid "Provide access." msgstr "Otorgar acceso." #: templates/sync.php:113 msgid "To enable this feature, the plugin needs a permission to read your store product information." msgstr "Para habilitar esta función, el complemento necesita un permiso para leer la información del producto de su tienda." #: templates/product-popup.php:137 templates/product-popup.php:147 msgid "Choose Product" msgstr "Elegir producto" #: templates/product-popup.php:96 msgid "Try another search." msgstr "Intente otra búsqueda." #: templates/sync.php:152 msgid "Not synchronized yet" msgstr "No se ha sincronizado todavía" #: templates/sync.php:149 msgid "Last update" msgstr "Última actualización" #: templates/sync.php:145 msgid "Products are successfully synchronized. The product pages are up to date." msgstr "Los productos se sincronizaron satisfactoriamente. Las páginas de productos están actualizadas." #: templates/sync.php:138 msgid "Products synchronized: %1$s out of %2$s" msgstr "Productos eliminados sincronizados: %1$s de %2$s" #: templates/sync.php:126 msgid "We're synchronizing your products. This may take a few minutes. Please do not reload the page." msgstr "Estamos sincronizando sus productos. Esto puede tardar unos minutos. No actualice la página." #: templates/sync.php:119 msgid "Synchronize products" msgstr "Sincronizar productos" #: templates/advanced-settings.php:83 msgid "%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site." msgstr "%s almacena los datos de sus productos de forma segura en la nube. Las páginas de productos se muestran sobre la marcha cuando un cliente navega por su tienda. Por lo que, básicamente, los productos no se almacenan en el sitio web, por eso la búsqueda en el sitio web no encuentra páginas de productos mientras busca en las páginas del sitio web y en las publicaciones. Esta opción habilita un modo de almacenamiento local: los productos se almacenarán tanto en la nube como en su sitio web. Los resultados de la búsqueda en el sitio web incluirán las páginas de productos, así como las páginas o publicaciones habituales de su sitio web." #: templates/product-popup.php:243 msgid "Insert" msgstr "Insertar" #: templates/product-popup.php:242 msgid "select product" msgstr "seleccionar producto" #: templates/product-popup.php:241 templates/product-popup.php:246 msgid "customize appearance" msgstr "personalizar apariencia" #: templates/product-popup.php:224 msgid "Show price inside the \"Buy now\" button" msgstr "Mostrar el precio dentro del botón de «Comprar ahora»" #: templates/product-popup.php:229 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:62 #: js/gutenberg/blocks.build.js:1 msgid "Center align on a page" msgstr "Centrar la alineación en una página" #: templates/product-popup.php:219 js/gutenberg/blocks.build.js:1 msgid "Add border" msgstr "Añadir borde" #: templates/product-popup.php:188 js/gutenberg/blocks.build.js:1 msgid "Quantity" msgstr "Cantidad" #: templates/product-popup.php:178 js/gutenberg/blocks.build.js:1 msgid "Options" msgstr "Opciones" #: templates/product-popup.php:173 js/gutenberg/blocks.build.js:1 msgid "Picture" msgstr "Imagen" #: templates/product-popup.php:163 msgid "Choose product properties to display in widget" msgstr "Elija las propiedades del producto para mostrarlas en el «widget»" #: templates/product-popup.php:139 templates/product-popup.php:151 msgid "Customize widget" msgstr "Personalizar «widget»" #: templates/product-popup.php:97 msgid "Browse all products." msgstr "Explorar todos los productos." #: templates/product-popup.php:94 msgid "Nothing found for <span class=\"empty-page__term\">\"{{ data.term }}\"</span>" msgstr "No se ha encontrado nada en relación con <span class=\"empty-page__term\">«{{ data.term }}»</span>" #: templates/product-popup.php:80 msgid "Next page" msgstr "Página siguiente" #: templates/product-popup.php:69 msgid "Current Page" msgstr "Página actual" #: templates/product-popup.php:49 msgid "Title or SKU" msgstr "Título o REF" #: templates/product-popup.php:47 templates/product-popup.php:53 #: templates/product-popup.php:56 msgid "Search" msgstr "Buscar" #: templates/product-popup.php:29 msgid "SKU" msgstr "REF" #: templates/product-popup.php:23 msgid "Name" msgstr "Nombre" #: includes/class-ecwid-product-popup.php:150 msgid "Last Page" msgstr "Última página" #: includes/class-ecwid-product-popup.php:149 msgid "Next Page" msgstr "Página siguiente" #: includes/class-ecwid-product-popup.php:148 msgid "Previous Page" msgstr "Página anterior" #: includes/class-ecwid-product-popup.php:147 msgid "First Page" msgstr "Primera página" #: includes/class-ecwid-product-popup.php:107 msgid "Add Product" msgstr "Añadir producto" #: includes/class-ecwid-oauth.php:366 msgid "To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the \"Add product\" dialog." msgstr "A fin de poder elegir un producto para insertarlo en sus publicaciones y páginas, deberá volver a conectar su sitio a su tienda de %s. Esto solo requerirá que acepte la solicitud de permisos para que el complemento pueda listar sus productos en el cuadro de diálogo «Añadir producto»." #: templates/advanced-settings.php:54 msgid "To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>" msgstr "Para asegurarse de que su cliente puede acceder realmente a su sitio web y a la tienda, habilite el registro en las <a %s>configuraciones del sitio web</a>" #: templates/advanced-settings.php:48 msgid "To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>" msgstr "Para permitir que %s inicie la sesión de sus clientes automáticamente en su tienda, otorgue los permisos para utilizar los datos del cliente en la tienda. <a %s>Utilice este enlace para hacerlo</a>" #: templates/advanced-settings.php:39 msgid "Upgrade to get this feature" msgstr "Actualice para obtener esta función" #: templates/advanced-settings.php:32 msgid "Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again." msgstr "El inicio de sesión único les permite a sus clientes tener un inicio de sesión único para su sitio web de WordPress y su %s. Cuando alguien inicie sesión en su sitio web, también iniciará sesión automáticamente en su cuenta de cliente en la tienda sin necesidad de introducir su correo electrónico y contraseña nuevamente." #: templates/advanced-settings.php:27 msgid "Customer Single Sign-On" msgstr "Inicio de sesión único del cliente" #: includes/integrations/class-ecwid-integration-divibuilder.php:63 msgid "Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space." msgstr "Introduzca las clases CSS opcionales que se utilizarán para este módulo. Se puede utilizar una clase CSS para crear estilos CSS personalizados. Puede añadir varias clases separadas por un espacio." #: includes/integrations/class-ecwid-integration-divibuilder.php:60 msgid "CSS Class" msgstr "Clase CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:57 msgid "Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page." msgstr "Introduzca un ID de CSS opcional que se utilizará para este módulo. Se puede utilizar un ID para crear un estilo CSS personalizado o para crear enlaces a secciones particulares de su página web." #: includes/integrations/class-ecwid-integration-divibuilder.php:54 msgid "CSS ID" msgstr "ID de CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:51 msgid "This will change the label of the module in the builder for easy identification." msgstr "Esto cambiará la etiqueta del módulo en el creador para una fácil identificación." #: includes/integrations/class-ecwid-integration-divibuilder.php:49 msgid "Admin Label" msgstr "Etiqueta de administrador" #: includes/integrations/class-ecwid-integration-divibuilder.php:44 msgid "Here you can create the content that will be used within the module." msgstr "Aquí puede crear el contenido que se utilizará dentro del módulo." #: includes/integrations/class-ecwid-integration-divibuilder.php:41 msgid "Content" msgstr "Contenido" #: templates/admin-footer.php:29 msgid "<a %s>Reconnect</a>" msgstr "<a %s>Volver a conectar</a>" #: templates/help.php:15 msgid "https://support.ecwid.com/hc/en-us/search" msgstr "https://support.ecwid.com/hc/en-us/search" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:73 msgid "Browse by Category" msgstr "Buscar por categoría" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:15 msgid "Store Root Categories" msgstr "Categorías raíz de la tienda" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:14 msgid "Adds root categories list to the sidebar to let your customers navigate the store." msgstr "Añade la lista de categorías raíz a la barra lateral para que sus clientes puedan desplazarse por la tienda." #: templates/admin/welcome-connection-message.php:25 msgid "To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission." msgstr "Para vender utilizando %1$s, debe permitir que WordPress acceda al complemento %1$s. El botón «Conectar» lo redirigirá a su cuenta de %1$s donde puede otorgar el permiso." #: templates/admin-timeout.php:11 msgid "Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">our customer support team</a>." msgstr "Nuestro equipo ya está trabajando en este asunto. Actualice la página en unos minutos. Si el problema persiste, comuníquese con <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">nuestro equipo de atención al cliente</a>." #: templates/admin-timeout.php:9 msgid "Sorry we're having technical difficulties." msgstr "Le pido disculpas por las dificultades técnicas que estamos experimentando." #: includes/class-ecwid-floating-minicart.php:153 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:143 msgid "Top right" msgstr "Arriba a la derecha" #: includes/class-ecwid-floating-minicart.php:152 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:138 msgid "Bottom right" msgstr "Abajo a la derecha" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:135 #: includes/class-ecwid-customizer.php:110 msgid "Position" msgstr "Posición" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:20 msgid "Adds a shopping cart widget to the top right corner of your site." msgstr "Añada un «widget» de carrito de compras en la esquina superior derecha de su sitio web." #: templates/help.php:215 msgid "You can send a new request here." msgstr "Puede enviar una nueva solicitud aquí." #: templates/help.php:214 msgid " Thank you very much for contacting us! We will get back to you shortly." msgstr " ¡Muchas gracias por ponerse en contacto con nosotros! Nos pondremos en contacto con usted en breve." #: templates/help.php:213 msgid "Your email has been sent" msgstr "Se ha enviado su correo electrónico" #: templates/help.php:207 msgid "Send message failed" msgstr "Ocurrió un error al enviar el mensaje" #: templates/help.php:196 msgid "Send Message" msgstr "Enviar mensaje" #: templates/help.php:193 msgid "Type in your message here" msgstr "Escriba su mensaje aquí" #: templates/help.php:192 msgid "Subject" msgstr "Asunto" #: templates/help.php:186 msgid "Send a message to our support team" msgstr "Envíe un mensaje a nuestro equipo de asistencia" #: templates/help.php:177 msgid "Still have questions about Ecwid? Let us know!" msgstr "¿Todavía tiene preguntas acerca de Ecwid? ¡Háganoslo saber!" #: templates/help.php:176 msgid "Contact us" msgstr "Póngase en contacto con nosotros" #: templates/help.php:33 msgid "Frequently Asked Questions" msgstr "Preguntas frecuentes" #: templates/help.php:21 msgid "Search the Knowledge Base" msgstr "Buscar en la base de conocimientos" #: templates/help.php:17 msgid "E.g. How to set up shipping" msgstr "Por ejemplo, cómo establecer el envío" #: templates/help.php:11 msgid "How can we help you?" msgstr "¿Cómo podemos ayudarle?" #: includes/faq_entries.php:68 msgid "You can display your store on the site main page. Adjust the \"Reading\" settings of your site as described in our <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">Help Center.</a>" msgstr "Puede mostrar su tienda en la página principal del sitio web. Ajuste la configuración de «Lectura» de su sitio web como se describe en nuestro <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">centro de asistencia.</a>" #: includes/faq_entries.php:67 msgid "Is it possible to display my store on the site home page?" msgstr "¿Es posible mostrar mi tienda en la página de inicio del sitio web?" #: includes/faq_entries.php:61 msgid "To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">How to use it.</a>" msgstr "Para mostrar un solo producto en una página aparte o en una entrada de blog de su sitio web, utilice el código corto <b>[ecwid_product]</b>. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">Cómo utilizarlo</a>" #: includes/faq_entries.php:60 msgid "How to add a single product with the add to bag button to the site pages?" msgstr "¿Cómo añadir un solo producto con el botón de «añadir a la bolsa» en las páginas del sitio web?" #: includes/faq_entries.php:55 msgid "To create sitemap for your Wordpress site we suggest using <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> or <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">paid Ecwid users</a>." msgstr "Para crear un «Mapa del sitio» para su sitio web de Wordpress, le sugerimos que utilice los  complementos <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> o <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>. Estos complementos son totalmente compatibles con Ecwid y permiten generar un mapa del sitio que contiene enlaces a categorías y páginas de productos, por lo que las páginas de la tienda se indexarán más rápido. Tenga en cuenta que esta opción solo está disponible para los <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">usuarios de pago de Ecwid</a>." #: includes/faq_entries.php:54 msgid "How do I put my products in the sitemap?" msgstr "¿Cómo pongo mis productos en el mapa del sitio?" #: includes/faq_entries.php:48 msgid "You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open \"Appearance > Menus\" in your WordPress control panel and add the \"Store with Categories Menu\" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site." msgstr "Puede añadir el menú de categorías de la tienda al menú de su sitio web para ayudar a sus clientes a navegar fácilmente por su sitio web. Simplemente abra «Apariencia > Menús» en el panel de WordPress y añada el elemento «Tienda con menú de categorías» al menú de su sitio web. Aparecerá automáticamente un menú desplegable que contendrá las categorías de su tienda en su sitio web." #: includes/faq_entries.php:47 msgid "How do I add store categories to the site menu?" msgstr "¿Cómo puedo añadir categorías de tiendas al menú del sitio web?" #: includes/faq_entries.php:38 msgid "How much does Ecwid cost?" msgstr "¿Cuánto cuesta Ecwid?" #: includes/faq_entries.php:30 msgid "You can add product search box, cart widget and more on the <a href=\"%s\">\"Appearance / Widgets page\"</a> here in your site admin. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">More details.</a>" msgstr "Puede añadir un cuadro de búsqueda de productos, un «widget» de carrito y más desde la <a href=\"%s\">«Página de apariencia y widgets»</a> que se encuentra aquí en el administrador de su sitio web. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">Más detalles.</a>" #: includes/faq_entries.php:28 msgid "How can I add a cart widget to my site sidebar?" msgstr "¿Cómo puedo añadir un «widget» de carrito de compras a la barra lateral de mi sitio web?" #: includes/faq_entries.php:21 msgid "You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">More details.</a>" msgstr "Puede añadir su tienda en línea a su página empresarial de Facebook (no se necesitan complementos). Ecwid sincronizará automáticamente los productos, clientes, pedidos e inventario entre su tienda en línea de WordPress y Facebook. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">Más detalles.</a>" #: includes/faq_entries.php:20 msgid "How to set up a storefront on Facebook with Ecwid?" msgstr "¿Cómo crear una tienda en Facebook con Ecwid?" #: includes/faq_entries.php:13 msgid "Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">More details.</a>" msgstr "Ecwid ofrece aplicaciones móviles gratuitas para iOS y Android para que pueda gestionar su tienda y vender donde y cuando quiera. Escanee productos, supervise el inventario, gestione las ventas y acepte pagos utilizando su dispositivo móvil como una estación de punto de venta. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">Más detalles.</a>" #: includes/faq_entries.php:12 msgid "How can I manage my store from a mobile device?" msgstr "¿Cómo puedo gestionar mi tienda desde un dispositivo móvil?" #: includes/faq_entries.php:6 msgid "Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">More details.</a>" msgstr "Ecwid cuenta con la certificación PCI DSS Nivel 1, que es el estándar de oro para las soluciones de comercio electrónico en todo el mundo. Esto significa que no tendrá problemas de cumplimiento bancario cuando venda en línea con Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">Más detalles.</a>" #: includes/faq_entries.php:5 msgid "How secure is this plugin? Is my store PCI DSS compliant?" msgstr "¿Qué tan seguro es este complemento? ¿Mi tienda cumple con el PCI DSS?" #: includes/class-ecwid-nav-menus.php:32 msgid "Ecwid Menu Item" msgstr "Elemento del menú de Ecwid" #: includes/class-ecwid-admin.php:179 includes/class-ecwid-admin.php:180 msgid "Help" msgstr "Ayuda" #: templates/admin-footer.php:27 msgid "Want to connect another %s store?" msgstr "¿Desea conectar otra tienda de %s?" #: templates/admin-footer.php:17 msgid "Questions?" msgstr "¿Tiene alguna pregunta?" #: templates/admin-footer.php:6 msgid "Manage Store on iPhone, iPad or Android" msgstr "Gestione la tienda desde iPhone, iPad o Android" #: includes/class-ecwid-message-manager.php:254 msgid "Complete Setup" msgstr "Completar configuración" #: includes/class-ecwid-message-manager.php:253 msgid "Complete setup and start selling" msgstr "Complete la configuración y comience a vender" #: includes/class-ecwid-message-manager.php:242 msgid "Greetings! Your %s plugin is now active." msgstr "¡Enhorabuena! Su complemento de %s ya está activo." #: templates/debug.php:12 msgid "Download log file" msgstr "Descargar archivo de registro" #: templates/help.php:67 includes/oembed.php:75 includes/oembed.php:104 msgid "See more" msgstr "Ver más" #: ecwid-shopping-cart.php:1051 msgid "I have a problem with my %s store" msgstr "Tengo un problema con mi tienda de %s" #: includes/class-ecwid-message-manager.php:55 msgid "Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: \"The Wordpress function wp_remote_post() failed to connect a remote server because of some error: \"%s\". Seems like HTTP POST requests are disabled on this server\". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>." msgstr "Lo siento, hay un problema. Se supone que esta página muestra el panel de control de su tienda; sin embargo, este sitio web de Wordpress no parece poder conectarse al servidor de Ecwid para mostrar el panel de su tienda aquí. Es probable que esto se deba a una mala configuración del servidor; su proveedor de alojamiento web puede solucionarlo. Aquí hay una descripción más técnica del problema, la cual puede enviarle a su proveedor de alojamiento web: «La función de Wordpress wp_remote_post() no pudo conectarse a un servidor remoto debido al error: “%s”; parece que las solicitudes HTTP POST están inhabilitadas en este servidor». <br /><br />No dude en ponerse en contacto con nosotros en <a %s>wordpress@ecwid.com</a> y le ayudaremos a comunicarse con su proveedor de alojamiento web para pedirle que solucione el problema. <br /><br /> Mientras tanto, para gestionar su tienda, puede utilizar el panel de control web de Ecwid en <a %s>my.ecwid.com</a>. Su escaparate virtual está funcionando bien; puede echarle un vistazo aquí: <a %s>%s</a>." #: templates/store-popup.php:249 msgid "Open store dashboard" msgstr "Abrir el panel de la tienda" #: templates/store-popup.php:12 templates/store-popup.php:27 msgid "Store elements" msgstr "Elementos de la tienda" #: templates/reconnect-sso.php:10 msgid "Re-connect to Enable Control Panel" msgstr "Vuélvase a conectar para activar el panel de control" #: templates/reconnect-sso.php:8 msgid "Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page." msgstr "Gestione productos, supervise las ventas y ajuste la configuración: <nobr>todo sin</nobr> salir de esta página." #: templates/reconnect-sso.php:7 msgid "Your store Control Panel. Right here in WordPress." msgstr "Panel de control de su tienda. Aquí mismo en WordPress." #: ecwid-shopping-cart.php:2114 msgid "Orders" msgstr "Pedidos" #: includes/class-ecwid-nav-menus.php:168 ecwid-shopping-cart.php:2118 msgid "The store top-level categories are automatically added to this drop-down menu" msgstr "Las categorías de alto nivel de la tienda se añaden automáticamente a este menú desplegable" #: includes/class-ecwid-nav-menus.php:167 ecwid-shopping-cart.php:2117 msgid "Done" msgstr "Hecho" #: includes/class-ecwid-nav-menus.php:166 ecwid-shopping-cart.php:2116 msgid "Refresh categories list" msgstr "Actualizar la lista de categorías" #: includes/class-ecwid-nav-menus.php:165 msgid "Store Page" msgstr "Página de la tienda" #: includes/class-ecwid-nav-menus.php:319 msgid "Add to Menu" msgstr "Añadir al menú" #: includes/class-ecwid-nav-menus.php:316 msgid "Select All" msgstr "Seleccionar todo" #: includes/class-ecwid-nav-menus.php:369 msgid "Store with Categories Menu" msgstr "Tienda con menú de categorías" #: includes/class-ecwid-nav-menus.php:352 #: includes/class-ecwid-nav-menus.php:355 msgid "My Account" msgstr "Mi cuenta" #: includes/class-ecwid-nav-menus.php:335 #: includes/class-ecwid-floating-minicart.php:135 #: includes/class-ecwid-admin-storefront-page.php:279 msgid "Cart" msgstr "Carrito" #: includes/class-ecwid-admin.php:87 includes/class-ecwid-admin.php:88 #: includes/class-ecwid-products.php:228 ecwid-shopping-cart.php:2112 msgid "Products" msgstr "Productos" #: includes/class-ecwid-admin.php:79 includes/class-ecwid-admin.php:80 msgid "Sales" msgstr "Ventas" #: ecwid-shopping-cart.php:1119 msgid "Report a problem with the store" msgstr "Informar un problema con la tienda" #: ecwid-shopping-cart.php:1036 msgid "%s plugin doesn't work well with my \"%s\" theme" msgstr "El complemento %s no funciona bien con mi tema «%s»" #: templates/admin/welcome-connection-message.php:22 #: templates/admin/welcome-connection-message.php:28 msgid "Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL." msgstr "Parece que su sitio web no admite solicitudes POST remotas, las cuales son necesarias para que la API de %s funcione. Comuníquese con su proveedor de alojamiento web para habilitar cURL." #. Description of the plugin msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up." msgstr "Ecwid es un carrito de compras gratuito con todas las funciones. Se puede integrar fácilmente con cualquier blog de Wordpress y se configura en menos de 5 minutos." #. Plugin URI of the plugin msgid "http://www.ecwid.com?partner=wporg" msgstr "http://www.ecwid.com?partner=wporg" #: templates/store-svg.php:12 msgid "Demo Store" msgstr "Tienda de demostración" #: templates/store-svg.php:9 msgid "Your store will be shown here!" msgstr "¡Su tienda se mostrará aquí!" #: templates/product-popup.php:248 templates/store-popup.php:256 msgid "Update" msgstr "Actualizar" #: templates/store-popup.php:253 msgid "Insert into page" msgstr "Insertar en la página" #: templates/store-popup.php:246 msgid "Demo store" msgstr "Tienda de demostración" #: templates/store-popup.php:80 msgid "Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>" msgstr "Además, puede añadir controles de la tienda a la barra de herramientas de su sitio web mediante <a %s>«widgets» nativos de WordPress</a>." #: templates/store-popup.php:74 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:86 msgid "Show categories" msgstr "Mostrar categorías" #: templates/store-popup.php:66 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:94 msgid "Show minicart" msgstr "Mostrar minicarrito" #: templates/store-popup.php:58 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:78 msgid "Show search" msgstr "Mostrar búsqueda" #: templates/store-popup.php:53 msgid "Product catalog will be shown automatically" msgstr "El catálogo de productos se mostrará automáticamente" #: templates/store-popup.php:52 msgid "Choose widgets to show" msgstr "Elija los «widgets» a mostrar" #: templates/admin/welcome-create.php:7 msgid "Connect your store" msgstr "Conecte su tienda" #: templates/admin/welcome-no_oauth.php:6 #: templates/importer/import-no-token.tpl.php:6 #: includes/class-ecwid-message-manager.php:291 msgid "Connect" msgstr "Conectar" #: templates/admin/legacy-connect.tpl.php:68 msgid "Save and connect your %s store to the site" msgstr "Guarde y conecte su tienda de %s al sitio web" #: templates/admin/legacy-connect.tpl.php:59 msgid "Enter your Store ID here:" msgstr "Introduzca el ID de su tienda aquí:" #: templates/admin/legacy-connect.tpl.php:52 msgid "Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the \"Dashboard\" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration." msgstr "El ID de la tienda es un identificador único de cualquier tienda de %1$s, el cual consta de varios dígitos. Puede encontrarlo en la página «Panel» del panel de control de %1$s. El ID de la tienda se enviará en el correo electrónico de bienvenida después del registro." #: templates/admin/legacy-connect.tpl.php:50 msgid "Find your Store ID" msgstr "Encuentre el ID de su tienda" #: templates/admin/legacy-connect.tpl.php:46 msgid "You will be able to sign up through your existing Google, Facebook or PayPal profiles as well." msgstr "También podrá registrarse a través de sus perfiles existentes de Google, Facebook o PayPal." #: templates/admin/legacy-connect.tpl.php:42 msgid "I already have an account, sign in" msgstr "Ya tengo una cuenta, iniciar sesión" #: templates/admin/legacy-connect.tpl.php:35 msgid "Create a new %s account which you will use to manage your store and inventory. The registration is free." msgstr "Cree una nueva cuenta de %s que utilizará para gestionar su tienda e inventario. El registro es gratuito." #: templates/admin/legacy-connect.tpl.php:24 msgid "The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps." msgstr "El primer paso para abrir su negocio en línea: <br />añadamos una tienda a su sitio web de WordPress en <strong>3</strong> simples pasos." #: templates/admin/legacy-connect.tpl.php:21 msgid "Thank you for choosing %s to build your online store" msgstr "Gracias por elegir %s para construir su tienda en línea" #: templates/admin/simple-dashboard.php:58 msgid "Open control panel" msgstr "Abrir el panel de control" #: templates/admin/simple-dashboard.php:42 msgid "Your %s store is connected<br /> to your WordPress website" msgstr "Su tienda de %s está conectada<br /> a su sitio web de WordPress" #: templates/admin/simple-dashboard.php:39 msgid "Greetings!" msgstr "¡Saludos!" #: templates/admin/simple-dashboard.php:34 msgid "Your %s store is now connected<br /> to your WordPress website" msgstr "Su tienda de %s ahora está conectada<br /> a su sitio web de WordPress" #: templates/admin/simple-dashboard.php:31 msgid "Congratulations!" msgstr "¡Enhorabuena!" #: templates/admin/simple-dashboard.php:18 msgid "Disconnect store" msgstr "Desconectar tienda" #: templates/admin/legacy-connect.tpl.php:65 #: templates/admin/simple-dashboard.php:14 templates/store-popup.php:244 #: templates/store-svg.php:14 #: includes/integrations/class-ecwid-integration-gutenberg.php:104 #: includes/gutenberg/class-ecwid-gutenberg.php:130 msgid "Store ID" msgstr "ID de la tienda" #: templates/admin/welcome-connection-message.php:15 msgid "Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again." msgstr "Error de conexión: después de hacer clic en el botón, debe iniciar sesión y otorgar los permisos para poder utilizar nuestro complemento. Inténtelo de nuevo." #: templates/admin/legacy-connect.tpl.php:57 #: templates/admin/welcome-no_oauth.php:3 msgid "Enter your Store ID" msgstr "Introduzca el ID de su tienda" #: templates/store-popup.php:221 msgid "Default view mode on search results" msgstr "Modo de vista predeterminado en los resultados de búsqueda" #: templates/store-popup.php:214 templates/store-popup.php:232 msgid "Table" msgstr "Tabla" #: templates/store-popup.php:211 templates/store-popup.php:229 msgid "List" msgstr "Lista" #: templates/store-popup.php:208 templates/store-popup.php:226 msgid "Grid" msgstr "Cuadrícula" #: templates/store-popup.php:204 msgid "Default view mode on product pages" msgstr "Modo de vista predeterminado en las páginas de productos" #: templates/store-popup.php:184 msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products." msgstr "Aquí puede gestionar cuántos productos se mostrarán por página. Estas opciones definen valores máximos. Si no hay suficiente espacio para mostrar todas las columnas de productos, %s adaptará el número de columnas para mantener todos los productos." #: templates/store-popup.php:169 msgid "Table view" msgstr "Vista de tabla" #: templates/store-popup.php:152 msgid "List view" msgstr "Vista de lista" #: templates/store-popup.php:125 msgid "Grid view" msgstr "Vista de cuadrícula" #: templates/store-popup.php:123 msgid "Number of products per page" msgstr "Número de productos por página" #: templates/store-popup.php:191 msgid "Number of categories per row" msgstr "Número de categorías por fila" #: templates/advanced-settings.php:98 msgid "Save changes" msgstr "Guardar cambios" #: includes/class-ecwid-product-browser.php:202 msgid "Default category ID" msgstr "ID de categoría predeterminada" #: templates/store-popup.php:98 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:127 #: includes/integrations/class-ecwid-integration-gutenberg.php:427 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:56 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:248 msgid "Store root category" msgstr "Categoría raíz de la tienda" #: templates/store-popup.php:90 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:101 msgid "Category shown by default" msgstr "Categoría mostrada por defecto" #: templates/admin-message.php:47 msgid "Never show this message again" msgstr "Nunca mostrar este mensaje otra vez" #: templates/product-popup.php:194 lib/ecwid_platform.php:209 #: js/gutenberg/blocks.build.js:1 msgid "Price" msgstr "Precio" #: includes/class-ecwid-store-editor.php:75 #: includes/integrations/class-ecwid-integration-gutenberg.php:102 #: includes/gutenberg/class-ecwid-gutenberg.php:128 msgid "Edit Appearance" msgstr "Editar apariencia" #: includes/class-ecwid-store-editor.php:60 msgid "Edit Store" msgstr "Editar tienda" #: templates/store-popup.php:11 templates/store-popup.php:21 #: includes/class-ecwid-store-editor.php:52 msgid "Add Store" msgstr "Añadir tienda" #: includes/class-ecwid-message-manager.php:261 msgid "Back to Store Settings" msgstr "Regresar a la configuración de la tienda" #: includes/class-ecwid-message-manager.php:252 msgid "Your store is almost ready!" msgstr "¡Su tienda ya está casi lista!" #: includes/class-ecwid-message-manager.php:243 msgid "Take a few simple steps to complete store setup" msgstr "Siga unos sencillos pasos para completar la configuración de la tienda" #: includes/widgets/class-ecwid-widget-products-base.php:205 msgid "Number of products to show" msgstr "Número de productos para mostrar" #: includes/widgets/class-ecwid-widget-recently-viewed.php:89 msgid "Store Link Title" msgstr "Título del enlace de la tienda" #: templates/product-popup.php:183 includes/class-ecwid-product-browser.php:249 #: includes/widgets/class-ecwid-widget-products-base.php:199 #: js/gutenberg/blocks.build.js:1 msgid "Title" msgstr "Título" #: includes/widgets/class-ecwid-widget-recently-viewed.php:69 #: includes/widgets/class-ecwid-widget-recently-viewed.php:91 msgid "You have not viewed any product yet. Open store." msgstr "Aún no ha visto ningún producto. Abra la tienda." #: includes/widgets/class-ecwid-widget-recently-viewed.php:11 msgid "Recently Viewed Products" msgstr "Productos vistos recientemente" #: includes/widgets/class-ecwid-widget-recently-viewed.php:12 msgid "Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop." msgstr "Muestra una lista de productos vistos recientemente por el cliente para volver fácilmente a los productos que vieron en su tienda." #: includes/widgets/class-ecwid-widget-store-link.php:35 msgid "Text" msgstr "Texto" #: includes/themes/class-ecwid-theme-twentyseventeen.php:48 #: includes/themes/class-ecwid-theme-twentyseventeen.php:54 #: includes/themes/class-ecwid-theme-twentyfifteen.php:34 #: includes/themes/class-ecwid-theme-twentyfifteen.php:40 #: includes/themes/class-ecwid-theme-twentysixteen.php:36 #: includes/themes/class-ecwid-theme-twentysixteen.php:42 #: includes/widgets/class-ecwid-widget-store-link.php:31 msgid "Shop" msgstr "Tienda" #: includes/widgets/class-ecwid-widget-store-link.php:10 msgid "Store Page Link" msgstr "Enlace a la página de la tienda" #: includes/widgets/class-ecwid-widget-store-link.php:9 msgid "Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site." msgstr "Muestra un enlace a la página de la tienda en la barra lateral para que el cliente acceda rápidamente a su tienda desde cualquier página del sitio web." #: includes/widgets/class-ecwid-widget-vcategories.php:9 msgid "Store Categories" msgstr "Categorías de la tienda" #: includes/widgets/class-ecwid-widget-vcategories.php:8 msgid "Adds vertical categories block to let the customer navigate your store." msgstr "Añade un bloque de categorías verticales para permitir que el cliente navegue por su tienda." #: includes/class-ecwid-nav-menus.php:344 #: includes/class-ecwid-nav-menus.php:347 #: includes/widgets/class-ecwid-widget-search.php:13 msgid "Product Search" msgstr "Búsqueda de productos" #: includes/widgets/class-ecwid-widget-search.php:12 msgid "Displays a simple search box for your customers to find a product in your store" msgstr "Muestra un cuadro de búsqueda simple para que sus clientes encuentren un producto en su tienda." #: includes/widgets/class-ecwid-widget-minicart-miniview.php:8 msgid "Adds a compact cart widget for customer to see the products they added to the cart." msgstr "Añade un «widget» de carrito compacto para que el cliente vea los productos que se han añadido al carrito." #: includes/widgets/class-ecwid-widget-minicart.php:41 #: includes/widgets/class-ecwid-widget-random-product.php:67 #: includes/widgets/class-ecwid-widget-search.php:46 #: includes/widgets/nsf-minicart-editor.tpl.php:50 #: includes/widgets/class-ecwid-widget-minicart-miniview.php:41 #: includes/widgets/class-ecwid-widget-vcategories.php:39 #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:76 msgid "Title:" msgstr "Título:" #: includes/class-ecwid-nav-menus.php:338 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:20 msgid "Shopping Cart" msgstr "Carrito de compras" #: includes/widgets/class-ecwid-widget-minicart.php:8 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:19 msgid "Adds a cart widget for customer to see the products they added to the cart." msgstr "Añade un «widget» de carrito para que el cliente vea los productos que se han añadido al carrito." #: includes/widgets/class-ecwid-widget-badge.php:51 #: includes/widgets/class-ecwid-widget-badge.php:63 msgid "Ecwid e-commerce widgets" msgstr "«Widget» de comercio electrónico de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:45 #: includes/widgets/class-ecwid-widget-badge.php:57 msgid "Ecwid shopping cart" msgstr "Carrito de compras de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:39 #: includes/widgets/class-ecwid-widget-badge.php:75 msgid "Ecwid free shopping cart" msgstr "Carrito de compras gratuito de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:33 #: includes/widgets/class-ecwid-widget-badge.php:69 msgid "Ecwid ecommerce solution" msgstr "Solución de comercio electrónico de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:21 #: includes/widgets/class-ecwid-widget-badge.php:27 msgid "Ecwid shopping cart widget" msgstr "«Widget» de carrito de compras de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:14 msgid "Ecwid Badge" msgstr "Distintivo de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:13 msgid "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid." msgstr "¿Le gusta Ecwid y quiere ayudarlo a crecer? Puede añadir este elegante distintivo «Powered by Ecwid» en su sitio web para mostrarles a sus visitantes que es un usuario orgulloso de Ecwid." #: ecwid-shopping-cart.php:2791 msgid "Recommendations for Your Online Store" msgstr "Recomendaciones para su tienda en línea" #: includes/class-ecwid-admin.php:528 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:77 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:87 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:95 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:103 #: ecwid-shopping-cart.php:2056 msgid "Settings" msgstr "Configuraciones" #: includes/class-ecwid-admin.php:165 msgid "Advanced" msgstr "Avanzado" #: includes/class-ecwid-admin.php:164 msgid "Advanced settings" msgstr "Configuraciones avanzadas" #: templates/product-popup.php:206 templates/store-popup.php:14 #: templates/store-popup.php:34 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:44 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:78 #: js/gutenberg/blocks.build.js:1 msgid "Appearance" msgstr "Apariencia" #: includes/class-ecwid-admin.php:28 includes/class-ecwid-admin.php:59 #: includes/class-ecwid-admin.php:459 ecwid-shopping-cart.php:2110 msgid "Dashboard" msgstr "Panel" #: includes/class-ecwid-admin.php:57 ecwid-shopping-cart.php:2056 msgid "Setup" msgstr "Configuración" #: includes/class-ecwid-admin.php:47 msgid "%s shopping cart settings" msgstr "Configuraciones del carrito de compras de %s" #: includes/class-ecwid-nav-menus.php:132 #: includes/class-ecwid-nav-menus.php:361 #: includes/class-ecwid-nav-menus.php:364 #: includes/class-ecwid-nav-menus.php:372 includes/class-ecwid-admin.php:206 #: includes/class-ecwid-admin.php:207 includes/class-ecwid-admin.php:220 #: includes/class-ecwid-admin.php:221 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:63 #: includes/class-ecwid-admin-storefront-page.php:257 #: ecwid-shopping-cart.php:1657 msgid "Store" msgstr "Tienda" #: ecwid-shopping-cart.php:1306 msgid "<a %s>Online store powered by %s</a>" msgstr "<a %s>Tienda en línea con tecnología de %s</a>" #: includes/class-ecwid-admin.php:489 msgid "Sell on Facebook" msgstr "Vender en Facebook" #: templates/admin/simple-dashboard.php:48 ecwid-shopping-cart.php:1094 msgid "Visit storefront" msgstr "Visitar escaparate virtual" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/languages/ecwid-shopping-cart-es_VE.mo������������������������������������������0000644�����������������00000225044�15122273603�0017574 0����������������������������������������������������������������������������������������������������ustar�00�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������e�����D��5��l&������@3�����A3��H���Y3�����3�����3�����3�����3�����3�� ���3��.���3�� ���4�� ��� 4�����,4�����J4�����e4����4�����g6��B���6�����6�����6�����6�����7��$���97�����^7�����r7�����7�����7��/���r8�� ���8�� ���8�����8�����8�����8�����8�����9��#���%9�� ���I9�����T9�����o9�����~9�� ���9�� ���9��>���9��"��� :�����-:�����:��k���:��K���h;��S���;��A���<��R���J<��G���<��4���<�� ���=�����&=�����/=��&���A=�����h=��T���{=�� ���=�����=�����=�����=�����>�����>�����#>�� ���*>�����8>�����?>�� ���G>�� ���S>�� ���`>�����l>�����>��4���>�� ���>�����>�����>�����>��X���>�� ���V?�����`?��/���g?��,���?�����?�����?�����?�� ���?�� ���?�����?�� ���?����� @�����@�����,@�����A@�����[@�����{@�����@�����@�����@�����@�����@�����@��.���@�����A�����5A��D���LA�����A�����A�� ���A�� ���A�����A�����A�����A����� B����� B��x���3B�����B�� ���B�����B�� ���B�����B�����C�����C�����*C�� ���=C�����JC��5���\C��h���C�����C�����D�� ���D�� ���D��5���D�����E�� ���E��x���%E��i���E�����F�����F�����4F�����QF�����bF�����F�� ���F�����F�����G�����$G��"���7G��#���ZG��/���~G�� ���G�� ���G�����G�����G�����G�����G�����H�����H�����-H�����?H��!���WH�����yH�����H��6���H��!���H�����H��*���I��%���:I�����`I��'���vI�����I�����I��,���I�����I��q���J��s���yJ��#���J��H���K��O���ZK��1���K��s���K�� ���PL�����\L��v���L�����uM��$���zM�����M�����M�����M�� ���M�����M�����M����� N��s���N�����N�����N�����N��=��N�����P����P����Q�����R�����R����� S�����S�� ��� S�� ���.S�� ���;S�� ���FS�� ���TS�����^S�����S�����T�����T�����T��B���T��$���)U�����NU�����VU�����mU�� ���U�����U�����U�� ���U�����U�� ���U��(���U�����V�� ���V�����V�����#V��.���V�����W��D���W��h���%X�����X��_���X��C���X�����7Y�����IY��/���_Y��/���Y�����Y��/���Y��(���Z�����-Z��9���GZ��I���Z��2���Z��"���Z��:���![�����\[��"���t[��!���[�����[�����[�����[�����[��$��� \��*���1\��B���\\�����\�� ���\�����\�� ���\�����\��+���\�����]��-���,]��P���Z]�����]��#���]��'���]��)��� ^�� ���7^�����X^��%���g^��+���^��+���^�����^�����_�����_�����!_�� ���2_��$���?_��9���d_��%���_��:���_�����_�����`�����`�����&`�����(`�� ���=`�� ���K`�� ���Y`�� ���c`�����o`�����`�����`�� ���`�����`�����`�� ���`�����`�����`�� ���`�����`�����oa�����a�����a��S���a�����a��'���a��[���'b�� ���b�����b�� ���b�����b�� ���b�� ���b�����b�����b�� ���b��9���b�����c�� ���:c�� ���Dc�� ���Nc�� ���Xc�����bc�����wc��I���Jd�����d�����d�����d�� ���d�� ���d�� ���e�����e�� ��� e�����-e�����@e�����Ue�����]e�����de�����je�����if��#���Og�����sg�� ���g�����g�����lh�����th�� ���i�� ���i�����i�����%i��O��*i��4���zj�����j�� ���j�� ���j�����j�����j�� ���j�����j�� ����k����� k�����k�����'k�����:k�����Rk�� ���jk�����vk�����k�����k�����k��+���k�����k�� ��� l�����l�����*l�����Bl�����al�� ���xl�����l��I���l��'���l�����m�����m�����$m�����=m�����Em��#���Xm�� ���|m�����m�� ���m�����m�����m�����m��"���m�����m��%���n�� ���4n�����>n�����Vn�����en�����n�����n�����n�����n�����n�����n�����n��*���n�� ���n�����n�����n�����o�����o�����/o�� ���8o�����Co�����So�����do�����vo�� ���o��"���o�����o�����o�� ���o�����o�����o�����p����� p�����p�� ���"p�����0p��#���Kp�����op�����p�����p�����p�����p�����p��V���p�� ���Bq�� ���cq�����qq�� ���q�����q��&���q��(���q�����q�����r�� ���&r�����2r�� ���Br�� ��cr�� ���ns�����ys��(���s��*���s����s�� ���ow�� ���zw�����w�����w��.���$x�����Sx�����Yx�����jx�����x�����x�����x�����x�����x�����y�����z�����0z�� ���Az�����Lz�����\z�����rz�����z�����z�����z�����z�����z�����z�� ���z�����{�����{�����${�����4{�����I{�� ���O{��/���Z{��N���{�����{�� ���{��4���{�����|��=���|�����}��-���}�����}��%���~��M���~�������P�����H���h��P��������������� ����� ���"�����/�����A�����H�����ۀ������� ��4��E��>�������]��������l��%��^��*����*����y���ڊ��>���T�������h���5��L���������� ������������������,�����5�����<�����P�����l�����|�������������������������ԍ����������������� �����!��� ��j���B����������E��^���ŏ�����$�����,�����F�� ���V�����c������� ���������C����B����k���@���������������V�� ������0���!��^���R�������:���Ę��>��������>�����N�����j�� �����2�����?���Ù����������֚������������y�����A��������Q�����o������:��������J�����_�� �����"��������Þ��"���ߞ��H�����)���K�����u�������&�����(���ן���������������� �����4����G�����$��e���:��'��������Ȣ�� ���ˢ�����֢�� ����������5����� ���M�� ���Y�����f�������,�������̣�����W��B���v��!��������ۦ��!����������0���=�����n����������������*���������������(�����!���1�����S��*���p�������+����� �����!����������6���)��1���`�������C�����/����������!��������2��e�����n���&��Z�����o�����^���`��R�������������,�����5��5���O�������h����� ��� �� �����!���!��)���C�����m�����}�������������������������������� ���Ӱ������������:��������O�� ���`�����n�������`����� ����� �����=�����9���W�������������������������β�� ����� ����� �����%�����!���(�����J��5���j��(��������ɳ��%���ҳ�������!���������"�����2��C���B��(����������g���ϴ�����7�����Q��.���j�������������������������ҵ������������%�����!���Ŷ�� �����!�������������-�����J�����e�� ����������8�����j��������O������� ��������(��I���7��$���������������x���@�������'���Ѻ��5��������/�����G�������������������������6��9���U��;�����0���˼���������������,�����4�����H�����b�����u�����������������2�����!�����#���5��I���Y��+��������Ͼ��6�����/���%�����U��2���s��&��������Ϳ��E��������2�����D�������*���c��P�����`�����:���@�����{�� ��� ���������������U��3���[������������'���������������5��������D�����`��,�����+��� ��$���L��t��q�������A����h�������6��)���R�����|����������������� �����$�������������������������$����������Y�����*���?�����j�����r�����������������%������������� �� ���$��4���/�� ���d�����p������������;����������D�����g��������l��p���t��Q��������7�����K��]���c��>�����������D�����1���_�������I�����g�����/���[��$�����7����������0�����%���8��"���^������������%�����/�����7�����@���1��.���r�������#����� ����������)����������>���,��h���k��!�����%�����1�����3���N��'����������(�����)�����)��������B�����a�����������������-�����E�����-���+��8���Y������� ��������������� ����������������������� �����7�����J�����R�����[�� ���m�����w������������������������������}������������s��������*��/���E��q���u������������ ��������&�� ���-�� ���7�� ���A�����L�� ���S��A���_��#��������������� ����� ����������)����c���H������� �����!���������� ��������+��#���<�����`�����q����������������������I���������%��������(�� ���:�����G����������$���������������������������9���������� ����� ����� ����� ��� ����������*�����1�����B�����K�����f��#�����%��������������� ����� �����+���5��7���a��"���������������*�����1�����$���C�����h�� ���}��a�����0�������������/�����?�����^�� ���g��4����� ������������������������������5���-�����c��(����� �����"����������"������������������ �����"�����&�����-�����>��-���F�����t�����������������"���������������������������������2�����E��0���T��&��������������������������������� ����������#��"���6��+���Y�������/�����!����������+��������(�����<��(������������������ ��$���;��8���`��8�����)�����#�������� �����2��)���N��M��x�������$�����2�����L���-��,��z�� ��������������������?���������������!�����#��������7�����V�����u��������������3�����S�����l�� �������������������������$�����$���+�����P�����n�������������������������������������G�����W���C������������8����������Y����������:���z�����'����_��������X���&�^����U�������4����<� ���Q� ���^����l������������M�����#��������� �u���= ��� �@�� �@���U��H�����P���:�����~���:�a�����������1����E����]����v� ��������$������������ ���� ��������,���6����c������������� ����#���������������(�]���� ��� ��������0� ���I����W�����V��&����}���U�`������H�+�����������'��� �2��� �^����!����_!�A���v!�G���!�����"����"�$���6"� ���["�8���g"�;���"�5��"� ���$����3$����$����$�R���%����%���� &���-&�[��� (����e(� ���}(����(�"���(����(�"���(�H���(�)���9)����c)�(���~)����)����)����)����)����)����*��������I����������������k������R��W��y����$��%���������������������������������������#�����y���R��#��������J���Z���������?���B��^��>������������������������� ��� ��3����1�����U������>�������K��q����������������������-���������������������v���8������:���/������g��d�����������������S��?�����������������������'���������,������������j��Z��������P���������W������������S���������]����������T����������� �������6�������������������r�������������c��9����������,������������������k��������������%���������������������������������������������L���"�������a����������W��t�������������������}��.������ ��$������K������G���������~���������������0������w������������E��������7����������������������������Q��������F������������������:��\�����������������O�����X��'��*��3������1������ ���������������������u������������9�����E�����������C�����������������������������?������8��a��_���b�������L������@��&������*��I��C���J�����Y���������D������������$���������;��F���������N������G������'���������������0�����@�����^��������c�����������������u����>��:��������.�����������M��j���[��S����������������4������� ������������H�������������@���������������K�����]���������P���&�������������������%���� ��c������h��X���A��������#�����������z�������3�����(����������������������������������������������Q��������e�������������-����������i���������D����p�������!��������������(������������X��5����7���������=��������������;������N���������P������������������T��������������\������Z����������������������&����� ��������� ���`�������|�����������`������������<���������e���+�������A�����=����������������������)�������Q������������������������f��!����� ���b��a���M��{�������<��7�������������������������������������H��������6��O��s���`����������9�����*���������-��}���"���������r���������0��������������{������������������������������������l��H����������v����d��/����� ��]���t���p�����2�����������d��������g������U���������C�������w���������[���l������������������������<��������� ���o���1��� ����������V��f������N�� ��E��������������������������������� �����������������������/������,��������~�����������������������!������[����n�����������_��"�����(�������2���J��x��h���_���� ��������o������M������4��=��8������������2����� ��4������������m���������������������������5��n��I���;�����)������6��L��V������������+����+��A�������������������������Y��B��F������ �������)��������m��i�����������5���^������|���z���������������������U����������x�����������\����q������������O���������������V����������b���������������������������������������Y�������������.�����D������������������B�������G��s�������������R�����T����e���������� Choose another product� Thank you very much for contacting us! We will get back to you shortly.�"In stock" label�%s�%s Blog�%s Shopping Cart�%s Store�%s Store Page�%s plugin doesn't work well with my "%s" theme�%s product�%s products�%s products and %s categories�%s products and categories�%s shopping cart settings�%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site.�%s — Advanced settings�(You will be able to confirm the changes before the actual import)�2 columns, image on the left�2 columns, image on the right�3 columns, image on the left�3 columns, image on the right�<a %s>Online store powered by %s</a>�<a %s>Reconnect</a>�<a href="admin.php?page=�<b>%s</b> categories�A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use "/shop" or "/products".�Action required: please connect your %s account�Add Product�Add Store�Add Store Page to Menu�Add a category page�Add a product page�Add a search and filters page�Add a store page�Add an Online Store to Your Website�Add border�Add cart and checkout page�Add categories�Add store page to the site menu�Add storefront (product listing)�Add to Menu�Add your %s store to the website and start selling in minutes.�Add your store to other site pages�Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href="%s" target="_blank">WordPress Settings > Reading</a>�Additional store pages�Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>�Adds a cart widget for customer to see the products they added to the cart.�Adds a compact cart widget for customer to see the products they added to the cart.�Adds a shopping cart widget to the top right corner of your site.�Adds root categories list to the sidebar to let your customers navigate the store.�Adds vertical categories block to let the customer navigate your store.�Adjust your store design to fit your business needs.�Admin Label�Advanced�Advanced settings�After import, your %s store will have �All Sales Channels�Along with the store catalog, you can add other widgets and texts to the store page.�Appearance�Apps�Available qty in stock�Back to Store Settings�Background color�Bag�Basket�Before You Go�Border�Border:�Bottom left�Bottom right�Breadcrumbs�Browse all products.�Browse by Category�Bulk import products and categories to your %s store�Button color�Buy Now�Buy Now Button�Buy now buttons�By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>.�CSS Class�CSS ID�Can you share the name of the plugin you chose?�Can you share your feedback? What was wrong?�Cancel�Cart�Cart and Checkout�Cart icon�Cart icon:�Catalog�Categories�Category�Category List Appearance�Category card layout�Category shown by default�Category thumbnail aspect ratio�Category thumbnail size�Center�Center align on a page�Change�Change store content�Choose Product�Choose product�Choose product properties to display in widget�Choose the main store page�Choose widgets to show�Click the connect button to get rights to update the product catalog�Color settings�Complete Setup�Complete setup and start selling�Configuration�Congratulations!�Connect�Connect Your Store�Connect your %s store�Connect your store�Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again.�Contact Support�Contact us�Content�Copying products and categories.�Create Cart Page�Create Category Page�Create Product Page�Create Search Page�Create Store�Create Store Page�Create a landing page featuring one of your products.�Create a new %s account which you will use to manage your store and inventory. The registration is free.�Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website.�Create new account�Create store�Current Page�Current URL slug: /<span data-ec-store-slug>%s</span>�Customer Single Sign-On�Customers�Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers.�Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout.�Customize design�Customize store appearance�Customize store page address�Customize widget�Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand.�Cyan bluish gray�Dashboard�Default category�Default category ID�Default product_ID�Default view mode on product pages�Default view mode on search results�Deleted products synchronized: %1$s out of %2$s�Demo Store�Demo store�Design�Design and content�Detect automatically�Disconnect store�Display a buy button�Display breadcrumbs�Display cart icon�Display categories menu�Display categories navigation bar�Display category page�Display footer menu�Display product page with description and a buy button�Display product with a buy button�Display search box�Display search page with filters on a side�Display shopping bag link and summary�Display shopping cart�Display shopping cart and checkout page�Display sign in link�Display sort by link�Display the shopping cart icon on site pages�Displayed product�Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site.�Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop.�Displays a list of random products.�Displays a random product from your store to attract customer attention.�Displays a simple search box for your customers to find a product in your store�Displays storefront: product listing and checkout�Displays the latest added products from your store. Show new products to returning customers to drive repeat sales.�Do not show�Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid.�Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site.�Done�Download <a href="%s">import log</a>�Download log file�Draft�E.g. How to set up shipping�Ecwid Badge�Ecwid Ecommerce�Ecwid Ecommerce Shopping Cart�Ecwid Menu Item�Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center�Ecwid e-commerce widgets�Ecwid ecommerce solution�Ecwid free shopping cart�Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">More details.</a>�Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up.�Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href="%s">TemplateMonster themes</a>�Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">More details.</a>�Ecwid shopping cart�Ecwid shopping cart widget�Edit�Edit Appearance�Edit Category�Edit Product�Edit Store�Edit URL Slug�Edit page�Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page.�Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space.�Enter your Store ID�Enter your Store ID here:�Extensions for your Store�Feature a specific store category on a separate page of your site.�Feature your products in the sidebar�Filters�Filters panel position�Find your Store ID�First Page�Frequently Asked Questions�Get %s mobile app�Go to Pages�Go to Your %s Products�Greetings!�Greetings! Your %s plugin is now active.�Grid�Grid view�Help�Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars.�Help customers find your store on the website.�Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products.�Here you can create the content that will be used within the module.�Here, we will help you uploading your product catalog to %s from another shopping cart or other sources.�Hide�Highlight products, categories, and other store pages by adding them to separate website pages.�Highlight your best sellers or new products in the website sidebar.�Horizontal indent�Horizontal thumbnails�How can I add a cart widget to my site sidebar?�How can I manage my store from a mobile device?�How can we help you?�How do I add store categories to the site menu?�How do I put my products in the sitemap?�How much does Ecwid cost?�How secure is this plugin? Is my store PCI DSS compliant?�How to add a single product with the add to bag button to the site pages?�How to set up a storefront on Facebook with Ecwid?�I already have an account, sign in�I couldn’t find a WordPress theme that goes well with %s�I found a better plugin�I have a problem using this plugin�I have a problem with my %s store�I use this WordPress theme: %s�Icon�Icon and item count�Icon, label and item count�Icon, label, item count and subtotal�Icon, label, item count, subtotal and link�If you have a moment, please let us know why you are deactivating:�Image and title on mouse over�Image feed�Image gallery layout�Image only�Import�Import Your Products From Woocommerce to %s�Import completed�Import completed. <a href="%s">Run again.</a>�Import creates new products and update the existing products with matching SKUs.�Import is in Progress�Import my products from WooCommerce�Import product catalog from WooCommerce�Import product catalog from other sources�Import products to your %s store�Import summary�Import your WooCommerce catalog to %s�Import your products from WooCommerce to %s�Import your products from Woocommerce to %s�Imported <b>%s</b> products�Importing %s of %s items�Insert�Insert into page�Instant site�Integration with search on your site�Is it possible to display my store on the site home page?�Is there a WordPress theme for Ecwid?�It's a temporary deactivation. Please do not ask me again.�Item count only�Justify�Knowledge Base�L�Label and item count�Landscape 3:2�Landscape 4:3�Last Page�Last update�Latest Products�Layout�Layout:�Learn more�Left�Light green cyan�Link color�Linked product�List�List view�Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL.�Luminous vivid amber�Luminous vivid orange�M�Make your store accessible from the site menu so your customers can easily find it.�Manage Sidebar�Manage Store on iPhone, iPad or Android�Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page.�Manage store�Manage storefront�Marketing�Mobile�My Account�My Profile�My Sales�Name�Navigation�Need help importing your products from WooCommerce to %s?�Never show this message again�Next Page�Next page�No Thanks�No border�Not synchronized yet�Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The "Show on store pages" and "Show when empty" options will apply to the cart widget on site when published�Nothing found for <span class="empty-page__term">"{{ data.term }}"</span>�Number of categories per row�Number of products per page�Number of products to show�On the left�On the right�Online Store�Online Store Apps�Online store�Open control panel�Open store dashboard�Options�Orders�Other�Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target="_blank" href="%s">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans.�Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">our customer support team</a>.�Page with that name already exists.�Pale cyan blue�Pale pink�Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>�Payment�Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers.�Pick Category�Pick Product�Picture�Pill�Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target="_blank">"Billing & Plans"</a></nobr> page in your Ecwid store control panel.�Please subscribe to a paid plan to get this feature.�Plugins for Ecwid�Portrait 2:3�Portrait 3:4�Position�Preview�Previous Page�Price�Price color�Product�Product Card Large�Product Card Small�Product List Appearance�Product Page Appearance�Product SKU�Product Search�Product Search Box�Product Search and filters�Product card text align�Product catalog will be shown automatically�Product page layout�Product price�Product quantity�Product sidebar content�Product thumbnail aspect ratio�Product thumbnail size�Product title�Products�Products are successfully synchronized. The product pages are up to date.�Products synchronized: %1$s out of %2$s�Promote your store�Provide access.�Provided by <a %s>%s</a>�Publish�Publish Store Page�Publish the page to use this option�Published�Quantity�Questions?�Random Product�Random Products�Rate %s at WordPress.org�Re-connect to Enable Control Panel�Recently Viewed Products�Recommendations for Your Online Store�Rectangle�Refresh categories list�Register at %s�Report a problem with the store�Reports�Right�S�SKU�Sales�Sales channels�Save�Save and connect your %s store to the site�Save changes�Search�Search and Filters�Search products�Search the Knowledge Base�See more�Select All�Select category�Selected Product�Selected category�Sell on Facebook�Send Message�Send a message to our support team�Send message failed�Set Up Your Store�Set manually�Set up your store�Settings�Setup�Shipping & Pickup�Shop�Shopping Cart�Shopping Cart (deprecated)�Shopping Cart Floating (deprecated)�Shopping Cart Icon�Shopping Cart Mini (deprecated)�Shopping Cart Widget�Show�Show additional image on hover�Show categories�Show customers that they can use a search and filters to find desired products faster.�Show description under the image�Show minicart�Show on all pages�Show on hover�Show on store pages�Show price inside the "Buy now" button�Show price inside the «Buy now» button�Show product card border�Show product thumbnails�Show search�Show when empty�Show your store on the home page�Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again.�Small icon�Small icon and item count�Some of the items could not be imported.�Sorry we're having technical difficulties.�Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: "The Wordpress function wp_remote_post() failed to connect a remote server because of some error: "%s". Seems like HTTP POST requests are disabled on this server". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>.�Square 1:1�Start Import�Status�Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store.�Still have questions about Ecwid? Let us know!�Store�Store Categories�Store Categories Menu�Store Category Page�Store Front Page�Store Home Page�Store ID�Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the "Dashboard" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration.�Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>.�Store Link Title�Store Navigation�Store Page�Store Page Link�Store Root Categories�Store appearance�Store elements�Store management�Store page content�Store page on your site�Store root category�Store with Categories Menu�Storefront�Subject�Submit & Deactivate�Switch to draft�Synchronize products�Table�Table view�Take a few simple steps to complete store setup�Take advantage of powerful apps and extensions designed to enhance your store.�Text�Text color�Thank you for choosing %s to build your online store�The block is hidden because you don't have categories in your store. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Add categories.</a>�The category that is shown by default on the Store Front Page�The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps.�The plugin doesn't support the feature I want�The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href="%s" target="_blank">adjust the cart icon appearance</a>.�The store is not visible on your site�The store top-level categories are automatically added to this drop-down menu�Themes for Ecwid�This import will copy your WooCommerce products and categories to your %s store.�This is a demo store. Create your store to see your store products here.�This will change the label of the module in the builder for easy identification.�Title�Title on image�Title only�Title or SKU�Title under image�Title:�To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings.�To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>.�To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>�To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the "Add product" dialog.�To create sitemap for your Wordpress site we suggest using <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> or <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target="_blank" href="https://www.ecwid.com/pricing">paid Ecwid users</a>.�To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission.�To enable this feature, the plugin needs a permission to read your store product information.�To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">How to use it.</a>�To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>�To manage your store, go to <a %s>the Store Dashboard page</a>�To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission.�To show your storefront instead of the demo store, connect your existing %s account or create a new one.�To start selling, add a page to your site where the storefront will display.�Top left�Top right�Try another search.�Type in your message here�URL Slug�Update�Update your catalog�Upgrade to get this feature�Vertical indent�Vertical thumbnails�Very dark gray�Very light gray�View Store Page�View demo store page�View store page�Visit storefront�Vivid cyan blue�Vivid green cyan�Vivid red�Want to connect another %s store?�Warning: some of your online store features are disabled. Please contact your hosting provider to resolve.�We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?�We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you.�We're synchronizing your products. This may take a few minutes. Please do not reload the page.�Website�What feature do you need?�What was wrong?�What's next?�While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site.�Wholesale prices�You can add product search box, cart widget and more on the <a href="%s">"Appearance / Widgets page"</a> here in your site admin. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">More details.</a>�You can add the entire storefront, categories, products, or "Buy now" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block.�You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open "Appearance > Menus" in your WordPress control panel and add the "Store with Categories Menu" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site.�You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">More details.</a>�You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel.�You can display your store on the site main page. Adjust the "Reading" settings of your site as described in our <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">Help Center.</a>�You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href="%1$s">Appearance → Customize → %2$s</a>” menu to enable it.�You can enable filters in the store settings: (“<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Settings → Product Filters</a>”).�You can send a new request here.�You have not viewed any product yet. Open store.�You will be able to sign up through your existing Google, Facebook or PayPal profiles as well.�Your %s store has �Your %s store is connected<br /> to your WordPress website�Your %s store is now connected<br /> to your WordPress website�Your Storefront�Your WooCommerce store has �Your email has been sent�Your product�Your store Control Panel. Right here in WordPress.�Your store has been created. Preparing your store dashboard ...�Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar.�Your store is almost ready!�Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display.�Your store page�Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders.�Your store page is published. Customers can browse your store at �Your store will be shown here�Your store will be shown here!�Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data.�[%s] WordPress plugin deactivation feedback (store ID: %s)�customize appearance�gutenberg-product-blockContent�gutenberg-store-block-stubStore�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�or <a %s>Browse the Help Center�product-browser-attributesProduct SKU�product-browser-attributesProduct price�select product�selected product�vc-tabOnline store�«Buy now» button�PO-Revision-Date: 2020-10-12 12:46 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: Poedit 2.4.1 Language: es Project-Id-Version: temporary-strings X-Crowdin-Project: temporary-strings X-Crowdin-Project-ID: 295314 X-Crowdin-Language: es-ES X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po X-Crowdin-File-ID: 988 Language-Team: Spanish Last-Translator: � Elegir otro producto� ¡Muchas gracias por ponerse en contacto con nosotros! Nos pondremos en contacto con usted en breve.�Etiqueta de productos «En existencia»�%s�Blog de %s�Carrito de compras de %s�Tienda de %s�Página de la tienda de %s�El complemento %s no funciona bien con mi tema «%s»�%s producto�%s productos�%s productos y %s categorías�%s productos y categorías�Configuraciones del carrito de compras de %s�%s almacena los datos de sus productos de forma segura en la nube. Las páginas de productos se muestran sobre la marcha cuando un cliente navega por su tienda. Por lo que, básicamente, los productos no se almacenan en el sitio web, por eso la búsqueda en el sitio web no encuentra páginas de productos mientras busca en las páginas del sitio web y en las publicaciones. Esta opción habilita un modo de almacenamiento local: los productos se almacenarán tanto en la nube como en su sitio web. Los resultados de la búsqueda en el sitio web incluirán las páginas de productos, así como las páginas o publicaciones habituales de su sitio web.�%s — Configuración avanzada�(podrá confirmar los cambios antes de la importación definitiva)�2 columnas, imagen a la izquierda�2 columnas, imagen a la derecha�3 columnas, imagen a la izquierda�3 columnas, imagen a la derecha�<a %s>Tienda en línea con tecnología de %s</a>�<a %s>Volver a conectar</a>�<a href="admin.php?page=�<b>%s</b> categorías�Un «slug» es la última parte de una URL. Puede crear un «slug» personalizado para la página de su tienda. Es mejor que sea corto, ya que los clientes y los motores de búsqueda prefieren las URL cortas. Por ejemplo, utilice «/tienda» o «/productos».�Acción requerida: conecte su cuenta de %s�Añadir producto�Añadir tienda�Añadir la página de la tienda al menú�Añadir una página de categoría�Añadir página de productos�Añadir una página de búsqueda y filtros�Añadir una página de tienda�Añadir una tienda en línea a su sitio web�Añadir borde�Añadir carrito y página de pago�Añadir categorías�Añadir la página de la tienda al menú del sitio web�Añadir escaparate virtual (listado de productos)�Añadir al menú�Añada su tienda de %s al sitio web y comience a vender en minutos.�Añada su tienda a otras páginas del sitio web�Añada su escaparate virtual a la página de inicio del sitio web para que sea más notable. También puede modificar la configuración de la página de inicio del sitio web en <a href="%s" target="_blank">Configuración de WordPress > Lectura</a>.�Páginas adicionales de la tienda�Además, puede añadir controles de la tienda a la barra de herramientas de su sitio web mediante <a %s>«widgets» nativos de WordPress</a>.�Añade un «widget» de carrito para que el cliente vea los productos que se han añadido al carrito.�Añade un «widget» de carrito compacto para que el cliente vea los productos que se han añadido al carrito.�Añada un «widget» de carrito de compras en la esquina superior derecha de su sitio web.�Añade la lista de categorías raíz a la barra lateral para que sus clientes puedan desplazarse por la tienda.�Añade un bloque de categorías verticales para permitir que el cliente navegue por su tienda.�Ajuste el diseño de su tienda para que se adapte a las necesidades de su negocio.�Etiqueta de administrador�Avanzado�Configuraciones avanzadas�Después de la importación, su tienda de %s tendrá �Todos los canales de venta�Junto con el catálogo de la tienda, puede añadir otros «widgets» y textos a la página de la tienda.�Apariencia�Aplicaciones�Cantidad disponible en existencia�Regresar a la configuración de la tienda�Color del fondo�Bolsa�Cesta�Antes de que se vaya�Borde�Borde:�Abajo a la izquierda�Abajo a la derecha�Migas de pan�Explorar todos los productos.�Buscar por categoría�Importar en masa productos y categorías a su tienda de %s�Color del botón�Comprar ahora�Botón «Comprar ahora»�Botones de «Comprar ahora»�Al continuar, acepta los <a %s>Términos de servicio</a> y la <a %s>Política de privacidad</a>.�Clase CSS�ID de CSS�¿Podría compartir el nombre del complemento que ha elegido?�¿Podría compartir su opinión? ¿Qué fue lo que pasó?�Cancelar�Carrito�Carrito y pago�Icono del carrito de compras�Icono del carrito:�Catálogo�Categorías�Categoría�Apariencia de la lista de categorías�Diseño de la ficha de categoría�Categoría mostrada por defecto�Relación de aspecto de la miniatura de la categoría�Tamaño de la miniatura de la categoría�Centrado�Centrar la alineación en una página�Cambiar�Cambiar el contenido de la tienda�Elegir producto�Elegir producto�Elija las propiedades del producto para mostrarlas en el «widget»�Elegir la página principal de la tienda�Elija los «widgets» a mostrar�Haga clic en el botón «Conectar» para obtener los permisos para actualizar el catálogo de productos�Configuración de colores�Completar configuración�Complete la configuración y comience a vender�Configuración�¡Enhorabuena!�Conectar�Conecte su tienda�Conecte su tienda de %s�Conecte su tienda�Error de conexión: después de hacer clic en el botón, debe iniciar sesión y otorgar los permisos para poder utilizar nuestro complemento. Inténtelo de nuevo.�Ponerse en contacto con la asistencia�Póngase en contacto con nosotros�Contenido�Copia de productos y categorías.�Crear página del carrito�Crear página de categorías�Crear página de productos�Crear página de búsqueda�Crear tienda�Crear la página de la tienda�Cree una página de aterrizaje con uno de sus productos.�Cree una nueva cuenta de %s que utilizará para gestionar su tienda e inventario. El registro es gratuito.�Cree una nueva tienda o, si ya tiene una cuenta de %s, conéctela. El complemento le guiará a través de la configuración de la tienda y le ayudará a publicarla en su sitio web.�Crear una nueva cuenta�Crear tienda�Página actual�«Slug» actual de la dirección URL: /<span data-ec-store-slug>%s</span>�Inicio de sesión único del cliente�Clientes�Los clientes no pueden ver la página de su tienda porque está en un borrador. Publique la página para que esté disponible para sus clientes.�Los clientes van a la página del carrito para consultar los productos que han añadido al mismo y proceder con el pago.�Personalizar el diseño�Personalizar la apariencia de la tienda�Personalizar la dirección de la página de la tienda�Personalizar «widget»�Personalice la apariencia de su tienda para que se ajuste a las necesidades de su negocio. Cree la apariencia para su tienda que más se parezca a su marca.�Gris cian azulado�Panel�Categoría predeterminada�ID de categoría predeterminada�ID del producto predeterminado�Modo de vista predeterminado en las páginas de productos�Modo de vista predeterminado en los resultados de búsqueda�Productos eliminados sincronizados: %1$s de %2$s�Tienda de demostración�Tienda de demostración�Diseño�Diseño y contenido�Detectar automáticamente�Desconectar tienda�Mostrar un botón de compra�Mostrar migas de pan�Mostrar icono del carrito�Mostrar el menú de categorías�Mostrar la barra de navegación de las categorías�Mostrar la página de categorías�Mostrar el menú del pie de página�Mostrar la página de productos con la descripción y un botón de compra�Mostrar el producto con un botón de compra�Mostrar el cuadro de búsqueda�Mostrar página de búsqueda con los filtros a un lado�Mostrar enlace y resumen de la bolsa de compras�Mostrar el carrito de compras�Mostrar el carrito de compras y la página de pago�Mostrar el enlace de inicio de sesión�Mostrar «ordenar por enlace»�Muestre el icono del carrito de compras en las páginas del sitio web�Producto mostrado�Muestra un enlace a la página de la tienda en la barra lateral para que el cliente acceda rápidamente a su tienda desde cualquier página del sitio web.�Muestra una lista de productos vistos recientemente por el cliente para volver fácilmente a los productos que vieron en su tienda.�Muestra una lista de productos aleatorios.�Muestra un producto aleatorio de su tienda para atraer la atención del cliente.�Muestra un cuadro de búsqueda simple para que sus clientes encuentren un producto en su tienda.�Muestra el escaparate virtual: listado de productos y pago�Muestra los últimos productos añadidos de su tienda. Muestre nuevos productos a los clientes existentes para impulsar las ventas repetidas.�No mostrar�¿Le gusta Ecwid y quiere ayudarlo a crecer? Puede añadir este elegante distintivo «Powered by Ecwid» en su sitio web para mostrarles a sus visitantes que es un usuario orgulloso de Ecwid.�¿Le gusta su tienda de %s en línea? Apreciaríamos si comparte su opinión y vota por el complemento en el sitio de WordPress.�Hecho�Descargar <a href="%s">registro de importación</a>�Descargar archivo de registro�Borrador�Por ejemplo, cómo establecer el envío�Distintivo de Ecwid�Comercio electrónico Ecwid�Carrito de compras del comercio electrónico de Ecwid�Elemento del menú de Ecwid�Ecwid le permite subir sus productos en forma de archivo CSV. Obtenga más información sobre esta herramienta en el centro de asistencia de Ecwid�«Widget» de comercio electrónico de Ecwid�Solución de comercio electrónico de Ecwid�Carrito de compras gratuito de Ecwid�Ecwid cuenta con la certificación PCI DSS Nivel 1, que es el estándar de oro para las soluciones de comercio electrónico en todo el mundo. Esto significa que no tendrá problemas de cumplimiento bancario cuando venda en línea con Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">Más detalles.</a>�Ecwid es un carrito de compras gratuito con todas las funciones. Se puede integrar fácilmente con cualquier blog de Wordpress y se configura en menos de 5 minutos.�Ecwid es compatible con cualquier tema de WordPress. Ya sea un tema gratuito del catálogo de WordPress.org, un tema prémium de un proveedor externo o un tema personalizado; su tienda de Ecwid funcionará bien con cualquiera de ellos. Si desea un tema prémium, le recomendamos <a href="%s">temas de TemplateMonster</a>.�Ecwid ofrece aplicaciones móviles gratuitas para iOS y Android para que pueda gestionar su tienda y vender donde y cuando quiera. Escanee productos, supervise el inventario, gestione las ventas y acepte pagos utilizando su dispositivo móvil como una estación de punto de venta. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">Más detalles.</a>�Carrito de compras de Ecwid�«Widget» de carrito de compras de Ecwid�Editar�Editar apariencia�Editar categoría�Editar producto�Editar tienda�Editar «slug» de la dirección URL�Editar página�Introduzca un ID de CSS opcional que se utilizará para este módulo. Se puede utilizar un ID para crear un estilo CSS personalizado o para crear enlaces a secciones particulares de su página web.�Introduzca las clases CSS opcionales que se utilizarán para este módulo. Se puede utilizar una clase CSS para crear estilos CSS personalizados. Puede añadir varias clases separadas por un espacio.�Introduzca el ID de su tienda�Introduzca el ID de su tienda aquí:�Extensiones para su tienda�Destacar una categoría de la tienda específica en una página separada de su sitio web.�Destaque sus productos en la barra lateral�Filtros�Posición del panel de filtros�Encuentre el ID de su tienda�Primera página�Preguntas frecuentes�Descargue la aplicación móvil de %s�Ir a «Páginas»�Ir a sus productos de %s�¡Saludos!�¡Enhorabuena! Su complemento de %s ya está activo.�Cuadrícula�Vista de cuadrícula�Ayuda�Ayude a los clientes a encontrar su tienda en el sitio web. Añada el enlace de la tienda al menú del sitio web, cree páginas adicionales de la tienda y resalte los productos de la tienda en otras páginas del sitio web y en las barras laterales.�Ayude a los clientes a encontrar su tienda en el sitio web.�Aquí puede gestionar cuántos productos se mostrarán por página. Estas opciones definen valores máximos. Si no hay suficiente espacio para mostrar todas las columnas de productos, %s adaptará el número de columnas para mantener todos los productos.�Aquí puede crear el contenido que se utilizará dentro del módulo.�Aquí, le ayudaremos a subir su catálogo de productos a %s de otro carrito de compras u otras fuentes.�Ocultar�Destaque productos, categorías y otras páginas de la tienda añadiéndolas a páginas del sitio web separadas.�Destaque sus mejores ventas o nuevos productos en la barra lateral del sitio web.�Sangría horizontal�Miniaturas horizontales�¿Cómo puedo añadir un «widget» de carrito de compras a la barra lateral de mi sitio web?�¿Cómo puedo gestionar mi tienda desde un dispositivo móvil?�¿Cómo podemos ayudarle?�¿Cómo puedo añadir categorías de tiendas al menú del sitio web?�¿Cómo pongo mis productos en el mapa del sitio?�¿Cuánto cuesta Ecwid?�¿Qué tan seguro es este complemento? ¿Mi tienda cumple con el PCI DSS?�¿Cómo añadir un solo producto con el botón de «añadir a la bolsa» en las páginas del sitio web?�¿Cómo crear una tienda en Facebook con Ecwid?�Ya tengo una cuenta, iniciar sesión�No pude encontrar un tema de WordPress adecuado para %s�Encontré un mejor complemento�Tengo un problema con el uso de este complemento�Tengo un problema con mi tienda de %s�Utilizo este tema de WordPress: %s�Icono�Icono y total de artículos�Icono, etiqueta y total de artículos�Icono, etiqueta, total de artículos y subtotal�Icono, etiqueta, total de artículos, subtotal y enlace�Si tiene un momento, háganos saber por qué está desactivando:�Imagen y título al pasar el ratón por encima�Canal de imagen�Diseño de la galería de imágenes�Solo imagen�Importar�Importe sus productos de Woocommerce a %s�Importación completada�Importación completada. <a href="%s">Ejecútela de nuevo.</a>�La importación crea nuevos productos y actualiza los productos existentes con las REF correspondientes.�La importación está en progreso�Importar mis productos de WooCommerce�Importar el catálogo de productos de WooCommerce�Importar el catálogo de productos de otras fuentes�Importe los productos a su tienda de %s�Resumen de la importación�Importe su catálogo de WooCommerce a %s�Importe sus productos de WooCommerce a %s�Importe sus productos de Woocommerce a %s�<b>%s</b> productos importados�Importando %s de %s artículos�Insertar�Insertar en la página�Sitio web instantáneo�Integración con la búsqueda en su sitio web�¿Es posible mostrar mi tienda en la página de inicio del sitio web?�¿Existe algún tema de WordPress para Ecwid?�Es una desactivación temporal. No preguntarme de nuevo.�Solo el total de artículos�Justificado�Base de conocimiento�G�Etiqueta y y total de artículos�Horizontal 3:2�Horizontal 4:3�Última página�Última actualización�Últimos productos�Diseño�Diseño:�Más información�Izquierda�Cian verde claro�Color del enlace�Producto vinculado�Lista�Vista de lista�Parece que su sitio web no admite solicitudes POST remotas, las cuales son necesarias para que la API de %s funcione. Comuníquese con su proveedor de alojamiento web para habilitar cURL.�Ámbar vívido y brillante�Naranja vívido y brillante�M�Haga que su tienda sea accesible desde el menú del sitio web para que sus clientes puedan encontrarla fácilmente.�Gestionar la barra lateral�Gestione la tienda desde iPhone, iPad o Android�Gestione productos, supervise las ventas y ajuste la configuración: <nobr>todo sin</nobr> salir de esta página.�Gestionar la tienda�Gestionar escaparate virtual�Mercadotecnia�Móvil�Mi cuenta�Mi perfil�Mis ventas�Nombre�Navegación�¿Necesita ayuda para importar sus productos de WooCommerce a %s?�Nunca mostrar este mensaje otra vez�Página siguiente�Página siguiente�No, gracias�Sin borde�No se ha sincronizado todavía�Nota: cuando está habilitado, el «widget» del carrito siempre se mostrará en la vista previa para que sea más fácil personalizarlo. Las opciones «Mostrar en las páginas de la tienda» y «Mostrar cuando esté vacío» se aplicarán al «widget» del carrito en el sitio cuando se publiquen�No se ha encontrado nada en relación con <span class="empty-page__term">«{{ data.term }}»</span>�Número de categorías por fila�Número de productos por página�Número de productos para mostrar�A la izquierda�A la derecha�Tienda en línea�Aplicaciones de la tienda en línea�Tienda en línea�Abrir el panel de control�Abrir el panel de la tienda�Opciones�Pedidos�Otro�Nuestros 4 tipos de cuentas varían según la cantidad de productos, los tipos de funcionalidades y el nivel de asistencia. Para obtener más información, consulte nuestra <a target="_blank" href="%s">página de precios.</a><br /><br />Consejo profesional: también puede ahorrar dinero si se suscribe a nuestros planes anuales.�Nuestro equipo ya está trabajando en este asunto. Actualice la página en unos minutos. Si el problema persiste, comuníquese con <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">nuestro equipo de atención al cliente</a>.�Ya existe una página con ese nombre.�Azul cian pálido�Rosa pálido�Parte de los productos no se han copiado a %1$s porque alcanzó el límite de productos en su plan de precios en %1$s. Si desea importar más productos, considere <nobr><a %2$s>actualizar su plan de %1$s.</a></nobr>�Pago�Personalice la apariencia de su escaparate virtual y edite el contenido en la página de la tienda para reflejar su marca y mantenerse conectado con sus clientes.�Elegir una categoría�Elegir un producto�Imagen�Píldora�Tenga en cuenta el número máximo de productos y categorías que puede tener en su tienda de Ecwid. Esta herramienta de importación se detendrá automáticamente cuando se alcance el límite de productos de la tienda. Para conocer el límite actual de la tienda o aumentarlo, consulte la página <nobr><a %s target="_blank">«Facturación y planes»</a></nobr> ubicada en el panel de su tienda de Ecwid.�Suscríbase a un plan de pago para obtener esta función.�Complementos para Ecwid�Vertical 2:3�Vertical 3:4�Posición�Vista previa�Página anterior�Precio�Color del precio�Producto�Ficha de producto ampliada�Ficha de producto reducida�Apariencia de la lista de productos�Apariencia de la página del producto�REF del producto�Búsqueda de productos�Cuadro de búsqueda de productos�Búsqueda de productos y filtros�El texto de la ficha del producto se alinea�El catálogo de productos se mostrará automáticamente�Diseño de la página de productos�Precio del producto�Cantidad de productos�Contenido de la barra lateral de productos�Relación de aspecto de la miniatura del producto�Tamaño de la miniatura del producto�Título del producto�Productos�Los productos se sincronizaron satisfactoriamente. Las páginas de productos están actualizadas.�Productos eliminados sincronizados: %1$s de %2$s�Promocione su tienda�Otorgar acceso.�Proporcionado por <a %s>%s</a>�Publicar�Publicar la página de la tienda�Publique la página para poder utilizar esta opción�Publicada�Cantidad�¿Tiene alguna pregunta?�Producto aleatorio�Productos aleatorios�Tasa de %s en WordPress.org�Vuélvase a conectar para activar el panel de control�Productos vistos recientemente�Recomendaciones para su tienda en línea�Rectángulo�Actualizar la lista de categorías�Registrarse en %s�Informar un problema con la tienda�Informes�Derecha�P�REF�Ventas�Canales de venta�Guardar�Guarde y conecte su tienda de %s al sitio web�Guardar cambios�Buscar�Búsqueda y filtros�Buscar productos�Buscar en la base de conocimientos�Ver más�Seleccionar todo�Seleccionar categoría�Producto seleccionado�Categoría seleccionada�Vender en Facebook�Enviar mensaje�Envíe un mensaje a nuestro equipo de asistencia�Ocurrió un error al enviar el mensaje�Configure su tienda�Configurar manualmente�Configure su tienda�Configuraciones�Configuración�Envío y recogida�Tienda�Carrito de compras�Carrito de compras (descontinuado)�Carrito de compras flotante (descontinuado)�Icono del carrito de compras�Carrito de compras en miniatura (descontinuado)�«Widget» del carrito de compras�Mostrar�Mostrar imagen adicional al pasar el ratón�Mostrar categorías�Muéstreles a los clientes que pueden utilizar la búsqueda y los filtros para encontrar los productos que deseen de forma más rápida.�Mostrar descripción debajo de la imagen�Mostrar minicarrito�Mostrar en todas las páginas�Mostrar al pasar el ratón�Mostrar en las páginas de la tienda�Mostrar el precio dentro del botón de «Comprar ahora»�Mostrar el precio dentro del botón de «Comprar ahora»�Mostrar el borde de la ficha del producto�Mostrar miniaturas de los productos�Mostrar búsqueda�Mostrar cuando esté vacío�Muestre su tienda en la página de inicio�El inicio de sesión único les permite a sus clientes tener un inicio de sesión único para su sitio web de WordPress y su %s. Cuando alguien inicie sesión en su sitio web, también iniciará sesión automáticamente en su cuenta de cliente en la tienda sin necesidad de introducir su correo electrónico y contraseña nuevamente.�Icono pequeño�Icono pequeño y total de artículos�Algunos de los artículos no se pudieron importar.�Le pido disculpas por las dificultades técnicas que estamos experimentando.�Lo siento, hay un problema. Se supone que esta página muestra el panel de control de su tienda; sin embargo, este sitio web de Wordpress no parece poder conectarse al servidor de Ecwid para mostrar el panel de su tienda aquí. Es probable que esto se deba a una mala configuración del servidor; su proveedor de alojamiento web puede solucionarlo. Aquí hay una descripción más técnica del problema, la cual puede enviarle a su proveedor de alojamiento web: «La función de Wordpress wp_remote_post() no pudo conectarse a un servidor remoto debido al error: “%s”; parece que las solicitudes HTTP POST están inhabilitadas en este servidor». <br /><br />No dude en ponerse en contacto con nosotros en <a %s>wordpress@ecwid.com</a> y le ayudaremos a comunicarse con su proveedor de alojamiento web para pedirle que solucione el problema. <br /><br /> Mientras tanto, para gestionar su tienda, puede utilizar el panel de control web de Ecwid en <a %s>my.ecwid.com</a>. Su escaparate virtual está funcionando bien; puede echarle un vistazo aquí: <a %s>%s</a>.�Cuadrado 1:1�Iniciar la importación�Estado�Manténgase conectado con sus clientes. Actualice el contenido de su tienda en cualquier momento para informarles a los clientes sobre las promociones actuales y las novedades de su tienda.�¿Todavía tiene preguntas acerca de Ecwid? ¡Háganoslo saber!�Tienda�Categorías de la tienda�Menú de categorías de la tienda�Página de categorías de la tienda�Página del escaparate virtual�Página de inicio de la tienda�ID de la tienda�El ID de la tienda es un identificador único de cualquier tienda de %1$s, el cual consta de varios dígitos. Puede encontrarlo en la página «Panel» del panel de control de %1$s. El ID de la tienda se enviará en el correo electrónico de bienvenida después del registro.�El ID de la tienda es un identificador único de su cuenta de %1$s. Puede encontrarlo en su panel de control de %1$s en la <a %2$s>página del panel</a>.�Título del enlace de la tienda�Navegación en la tienda�Página de la tienda�Enlace a la página de la tienda�Categorías raíz de la tienda�Apariencia de la tienda�Elementos de la tienda�Gestión de la tienda�Contenido de la página de la tienda�Página de la tienda en su sitio web�Categoría raíz de la tienda�Tienda con menú de categorías�Escaparate virtual�Asunto�Enviar y desactivar�Cambiar al borrador�Sincronizar productos�Tabla�Vista de tabla�Siga unos sencillos pasos para completar la configuración de la tienda�Aproveche las increíbles aplicaciones y extensiones diseñadas para mejorar su tienda.�Texto�Color del texto�Gracias por elegir %s para construir su tienda en línea�El bloque está oculto porque no tiene categorías en su tienda. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Añadir categorías.</a>�La categoría que se muestra de forma predeterminada en la página del escaparate virtual�El primer paso para abrir su negocio en línea: <br />añadamos una tienda a su sitio web de WordPress en <strong>3</strong> simples pasos.�El complemento no es compatible con la función que quiero�El icono del carrito de compras muestra la cantidad de artículos en el carrito y ayuda a los clientes a realizar el pago. Además, puede <a href="%s" target="_blank">ajustar la apariencia del icono del carrito</a>.�La tienda no es visible en su sitio web�Las categorías de alto nivel de la tienda se añaden automáticamente a este menú desplegable�Temas para Ecwid�Esta importación copiará sus productos y categorías de WooCommerce a su tienda de %s.�Esto es una tienda de demostración. Cree su tienda para ver los productos de su tienda aquí.�Esto cambiará la etiqueta del módulo en el creador para una fácil identificación.�Título�Título en la imagen�Solo título�Título o REF�Título debajo de la imagen�Título:�Para añadir funciones adicionales a su tienda, arrastre y suelte los elementos de la tienda de %s en su sitio web. Una vez que haya terminado, puede volver a modificar su configuración.�Para añadir su tienda a su sitio web, introduzca el ID de su tienda de %1$s en el campo a continuación. Si aún no tiene una cuenta de %1$s, cree una gratis en el <a %2$s>sitio web de %1$s</a>.�Para permitir que %s inicie la sesión de sus clientes automáticamente en su tienda, otorgue los permisos para utilizar los datos del cliente en la tienda. <a %s>Utilice este enlace para hacerlo</a>�A fin de poder elegir un producto para insertarlo en sus publicaciones y páginas, deberá volver a conectar su sitio a su tienda de %s. Esto solo requerirá que acepte la solicitud de permisos para que el complemento pueda listar sus productos en el cuadro de diálogo «Añadir producto».�Para crear un «Mapa del sitio» para su sitio web de Wordpress, le sugerimos que utilice los  complementos <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> o <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>. Estos complementos son totalmente compatibles con Ecwid y permiten generar un mapa del sitio que contiene enlaces a categorías y páginas de productos, por lo que las páginas de la tienda se indexarán más rápido. Tenga en cuenta que esta opción solo está disponible para los <a target="_blank" href="https://www.ecwid.com/pricing">usuarios de pago de Ecwid</a>.�Para mostrar su tienda en este sitio web, debe permitir que WordPress acceda a sus productos de %1$s. Pulse «Conectar» para otorgar el permiso.�Para habilitar esta función, el complemento necesita un permiso para leer la información del producto de su tienda.�Para mostrar un solo producto en una página aparte o en una entrada de blog de su sitio web, utilice el código corto <b>[ecwid_product]</b>. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">Cómo utilizarlo</a>�Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para mejorar la apariencia de su tienda y poder gestionar la apariencia de su escaparate virtual desde aquí, habilite la opción «Apariencia de próxima generación de la lista de productos en el escaparate virtual» en el panel de su tienda. («<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Configuración → Novedades</a>»).�Para asegurarse de que su cliente puede acceder realmente a su sitio web y a la tienda, habilite el registro en las <a %s>configuraciones del sitio web</a>�Para gestionar su tienda, vaya a la <a %s>página del «Panel de su tienda»</a>�Para vender utilizando %1$s, debe permitir que WordPress acceda al complemento %1$s. El botón «Conectar» lo redirigirá a su cuenta de %1$s donde puede otorgar el permiso.�Para mostrar su escaparate virtual en lugar de la tienda de demostración, conecte su cuenta de %s existente o cree una nueva.�Para comenzar a vender, añada una página a su sitio web donde se muestre el escaparate virtual.�Arriba a la izquierda�Arriba a la derecha�Intente otra búsqueda.�Escriba su mensaje aquí�«Slug» de la dirección URL�Actualizar�Actualice su catálogo�Actualice para obtener esta función�Sangría vertical�Miniaturas verticales�Gris oscuro�Gris claro�Ver la página de la tienda�Ver la página de la tienda de demostración�Ver la página de la tienda�Visitar escaparate virtual�Azul cian vívido�Cian verde vívido�Rojo vívido�¿Desea conectar otra tienda de %s?�Advertencia: algunas de las funciones de su tienda en línea están inhabilitadas. Póngase en contacto con su proveedor de alojamiento web para resolverlo.�Notamos que tiene un WooCommerce instalado. Su tienda de WooCommerce tiene %1$s productos y %2$s categorías; ¿le gustaría importarlos a %3$s?�Notamos que tiene WooCommerce instalado. Si desea copiar fácilmente sus productos de WooCommerce a %s, esta herramienta le ayudará.�Estamos sincronizando sus productos. Esto puede tardar unos minutos. No actualice la página.�Sitio web�¿Qué función necesita?�¿Qué fue lo que pasó?�¿Qué sigue?�Mientras su tienda aún no esté conectada, se mostrará una tienda de demostración en su sitio web. Échele un vistazo para tener una idea de cómo se verá su tienda en el sitio web.�Precios al por mayor�Puede añadir un cuadro de búsqueda de productos, un «widget» de carrito y más desde la <a href="%s">«Página de apariencia y widgets»</a> que se encuentra aquí en el administrador de su sitio web. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">Más detalles.</a>�Puede añadir todo el escaparate virtual, las categorías, los productos o los botones de «Comprar ahora» a otras páginas de su sitio web. Para ello, abra una página en el editor y añada un bloque %s apropiado.�Puede añadir el menú de categorías de la tienda al menú de su sitio web para ayudar a sus clientes a navegar fácilmente por su sitio web. Simplemente abra «Apariencia > Menús» en el panel de WordPress y añada el elemento «Tienda con menú de categorías» al menú de su sitio web. Aparecerá automáticamente un menú desplegable que contendrá las categorías de su tienda en su sitio web.�Puede añadir su tienda en línea a su página empresarial de Facebook (no se necesitan complementos). Ecwid sincronizará automáticamente los productos, clientes, pedidos e inventario entre su tienda en línea de WordPress y Facebook. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">Más detalles.</a>�Puede gestionar la apariencia de su tienda en la <a %s>página de «Configuración del diseño»</a> ubicada en el panel de control de su tienda.�Puede mostrar su tienda en la página principal del sitio web. Ajuste la configuración de «Lectura» de su sitio web como se describe en nuestro <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">centro de asistencia.</a>�Puede habilitar un «widget» adicional del icono de la bolsa de compras que aparecerá en las páginas de su sitio web. Abra el menú «<a href="%1$s">Apariencia → Personalizar → %2$s</a>» para habilitarlo.�Puede habilitar los filtros en la configuración de la tienda: («<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Configuración → Filtros para los productos</a>»).�Puede enviar una nueva solicitud aquí.�Aún no ha visto ningún producto. Abra la tienda.�También podrá registrarse a través de sus perfiles existentes de Google, Facebook o PayPal.�Su tienda de %s tiene �Su tienda de %s está conectada<br /> a su sitio web de WordPress�Su tienda de %s ahora está conectada<br /> a su sitio web de WordPress�Su escaparate virtual�Su tienda de WooCommerce tiene �Se ha enviado su correo electrónico�Su producto�Panel de control de su tienda. Aquí mismo en WordPress.�Se ha creado su tienda. Preparando el panel de su tienda...�Su tienda se añade a varias páginas del sitio web. Elija la página principal. Los clientes son redirigidos a la página principal de la tienda cuando hacen clic en el icono del carrito, en los enlaces de la tienda ubicados en el menú del sitio web o en los productos que se encuentran en la barra lateral.�¡Su tienda ya está casi lista!�Su tienda no se añade a ninguna página de su sitio web. Para que los clientes puedan navegar por su tienda y realizar pedidos, cree una página donde se mostrará la tienda.�La página de su tienda�La página de su tienda está actualmente en un borrador. Una vez que esté lista, publíquela para que los clientes puedan visitar la tienda y realizar pedidos.�La página de su tienda está publicada. Los clientes pueden visitar su tienda en �Su tienda se mostrará aquí�¡Su tienda se mostrará aquí!�Su escaparate virtual (listado de productos y página de pago) está funcionando bien, pero las funciones avanzadas de la tienda, como el SEO y los «widgets» de la barra lateral, están inhabilitadas. Para habilitarlas y asegurarse de que su tienda funcione correctamente, pulse el botón de abajo para conectar su cuenta de %s. Esto tomará menos de un minuto; solo se le pedirá que inicie sesión en su cuenta y permita que este sitio web obtenga los datos de su tienda.�[%s] Comentarios sobre la desactivación del complemento de WordPress (ID de la tienda: %s)�personalizar apariencia�Contenido�Tienda�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�o <a %s>consulte el centro de asistencia�REF del producto�Precio del producto�seleccionar producto�producto seleccionado�Tienda en línea�Botón de «Comprar ahora»���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/languages/ecwid-shopping-cart-es_VE.po������������������������������������������0000644�����������������00000326062�15122273603�0017601 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Translation of Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) in German # This file is distributed under the same license as the Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) package. msgid "" msgstr "" "PO-Revision-Date: 2020-10-12 12:46\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: GlotPress/3.0.0-alpha.2\n" "Language: es\n" "Project-Id-Version: temporary-strings\n" "X-Crowdin-Project: temporary-strings\n" "X-Crowdin-Project-ID: 295314\n" "X-Crowdin-Language: es-ES\n" "X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po\n" "X-Crowdin-File-ID: 988\n" "Language-Team: Spanish\n" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:92 msgid "You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel." msgstr "Puede gestionar la apariencia de su tienda en la <a %s>página de «Configuración del diseño»</a> ubicada en el panel de control de su tienda." #: includes/integrations/elementor/class-ec-elementor-widget-store.php:55 msgid "To manage your store, go to <a %s>the Store Dashboard page</a>" msgstr "Para gestionar su tienda, vaya a la <a %s>página del «Panel de su tienda»</a>" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:39 msgid "The category that is shown by default on the Store Front Page" msgstr "La categoría que se muestra de forma predeterminada en la página del escaparate virtual" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:38 msgid "Default category" msgstr "Categoría predeterminada" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:29 msgid "Online Store" msgstr "Tienda en línea" #: includes/class-ecwid-stub-renderer.php:38 msgid "Buy Now" msgstr "Comprar ahora" #: templates/admin/welcome-terms-privacy.php:5 msgid "By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>." msgstr "Al continuar, acepta los <a %s>Términos de servicio</a> y la <a %s>Política de privacidad</a>." #: js/gutenberg/blocks.build.js:1 msgid "Display shopping cart and checkout page" msgstr "Mostrar el carrito de compras y la página de pago" #: js/gutenberg/blocks.build.js:1 msgid "Cart and Checkout" msgstr "Carrito y pago" #: js/gutenberg/blocks.build.js:1 msgid "Filters" msgstr "Filtros" #: js/gutenberg/blocks.build.js:1 msgid "You can enable filters in the store settings: (“<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Settings → Product Filters</a>”)." msgstr "Puede habilitar los filtros en la configuración de la tienda: («<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Configuración → Filtros para los productos</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Search and Filters" msgstr "Búsqueda y filtros" #: js/gutenberg/blocks.build.js:1 msgid "Display search page with filters on a side" msgstr "Mostrar página de búsqueda con los filtros a un lado" #: js/gutenberg/blocks.build.js:1 msgid "Product Search and filters" msgstr "Búsqueda de productos y filtros" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Display product page with description and a buy button" msgstr "Mostrar la página de productos con la descripción y un botón de compra" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Large" msgstr "Ficha de producto ampliada" #: js/gutenberg/blocks.build.js:1 msgid "Selected category" msgstr "Categoría seleccionada" #: js/gutenberg/blocks.build.js:1 msgid "Select category" msgstr "Seleccionar categoría" #: js/gutenberg/blocks.build.js:1 msgid "Add categories" msgstr "Añadir categorías" #: js/gutenberg/blocks.build.js:1 msgid "Display category page" msgstr "Mostrar la página de categorías" #: js/gutenberg/blocks.build.js:1 msgid "Store Category Page" msgstr "Página de categorías de la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Display shopping bag link and summary" msgstr "Mostrar enlace y resumen de la bolsa de compras" #: js/gutenberg/blocks.build.js:1 msgid "Shopping Cart Icon" msgstr "Icono del carrito de compras" #: js/gutenberg/blocks.build.js:1 msgid "The block is hidden because you don't have categories in your store. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Add categories.</a>" msgstr "El bloque está oculto porque no tiene categorías en su tienda. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Añadir categorías.</a>" #: js/gutenberg/blocks.build.js:1 msgid "Categories" msgstr "Categorías" #: js/gutenberg/blocks.build.js:1 msgid "Display categories navigation bar" msgstr "Mostrar la barra de navegación de las categorías" #: js/gutenberg/blocks.build.js:1 msgid "Store Categories Menu" msgstr "Menú de categorías de la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Product Search Box" msgstr "Cuadro de búsqueda de productos" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:25 #: js/gutenberg/blocks.build.js:1 msgid "Linked product" msgstr "Producto vinculado" #: js/gutenberg/blocks.build.js:1 msgid "Display a buy button" msgstr "Mostrar un botón de compra" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:10 #: js/gutenberg/blocks.build.js:1 msgid "Buy Now Button" msgstr "Botón «Comprar ahora»" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:52 #: js/gutenberg/blocks.build.js:1 msgid "Show price inside the «Buy now» button" msgstr "Mostrar el precio dentro del botón de «Comprar ahora»" #: js/gutenberg/blocks.build.js:1 msgctxt "gutenberg-product-block" msgid "Content" msgstr "Contenido" #: js/gutenberg/blocks.build.js:1 msgid "Change" msgstr "Cambiar" #: js/gutenberg/blocks.build.js:1 msgid "Displayed product" msgstr "Producto mostrado" #: js/gutenberg/blocks.build.js:1 msgid "Display product with a buy button" msgstr "Mostrar el producto con un botón de compra" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Small" msgstr "Ficha de producto reducida" #: js/gutenberg/blocks.build.js:1 msgid "Very dark gray" msgstr "Gris oscuro" #: js/gutenberg/blocks.build.js:1 msgid "Cyan bluish gray" msgstr "Gris cian azulado" #: js/gutenberg/blocks.build.js:1 msgid "Very light gray" msgstr "Gris claro" #: js/gutenberg/blocks.build.js:1 msgid "Vivid cyan blue" msgstr "Azul cian vívido" #: js/gutenberg/blocks.build.js:1 msgid "Pale cyan blue" msgstr "Azul cian pálido" #: js/gutenberg/blocks.build.js:1 msgid "Vivid green cyan" msgstr "Cian verde vívido" #: js/gutenberg/blocks.build.js:1 msgid "Light green cyan" msgstr "Cian verde claro" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid amber" msgstr "Ámbar vívido y brillante" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid orange" msgstr "Naranja vívido y brillante" #: js/gutenberg/blocks.build.js:1 msgid "Vivid red" msgstr "Rojo vívido" #: js/gutenberg/blocks.build.js:1 msgid "Pale pink" msgstr "Rosa pálido" #: js/gutenberg/blocks.build.js:1 msgid "Set manually" msgstr "Configurar manualmente" #: js/gutenberg/blocks.build.js:1 msgid "Detect automatically" msgstr "Detectar automáticamente" #: js/gutenberg/blocks.build.js:1 msgid "Color settings" msgstr "Configuración de colores" #: js/gutenberg/blocks.build.js:1 msgid "Store Navigation" msgstr "Navegación en la tienda" #: js/gutenberg/blocks.build.js:1 msgid "Store Front Page" msgstr "Página del escaparate virtual" #: js/gutenberg/blocks.build.js:1 msgid "Product sidebar content" msgstr "Contenido de la barra lateral de productos" #: js/gutenberg/blocks.build.js:1 msgid "Product Page Appearance" msgstr "Apariencia de la página del producto" #: js/gutenberg/blocks.build.js:1 msgid "Product List Appearance" msgstr "Apariencia de la lista de productos" #: js/gutenberg/blocks.build.js:1 msgid "Category List Appearance" msgstr "Apariencia de la lista de categorías" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Para mejorar la apariencia de su página de productos y poder gestionarla desde aquí, habilite la opción «Apariencia de próxima generación de la página de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Display cart icon" msgstr "Mostrar icono del carrito" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Para mejorar la apariencia de su tienda y poder gestionar la apariencia de su escaparate virtual desde aquí, habilite la opción «Apariencia de próxima generación de la lista de productos en el escaparate virtual» en el panel de su tienda. («<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Configuración → Novedades</a>»)." #: js/gutenberg/blocks.build.js:1 msgid "Add storefront (product listing)" msgstr "Añadir escaparate virtual (listado de productos)" #: templates/admin/storefront/main.php:21 msgid "Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers." msgstr "Los clientes no pueden ver la página de su tienda porque está en un borrador. Publique la página para que esté disponible para sus clientes." #: templates/admin/storefront/main.php:20 msgid "The store is not visible on your site" msgstr "La tienda no es visible en su sitio web" #: templates/admin/storefront/main.php:4 msgid "Your Storefront" msgstr "Su escaparate virtual" #: templates/admin/storefront/area-promo.php:30 msgid "Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars." msgstr "Ayude a los clientes a encontrar su tienda en el sitio web. Añada el enlace de la tienda al menú del sitio web, cree páginas adicionales de la tienda y resalte los productos de la tienda en otras páginas del sitio web y en las barras laterales." #: templates/admin/storefront/area-promo.php:29 msgid "Promote your store" msgstr "Promocione su tienda" #: templates/admin/storefront/area-promo.php:26 msgid "Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store." msgstr "Manténgase conectado con sus clientes. Actualice el contenido de su tienda en cualquier momento para informarles a los clientes sobre las promociones actuales y las novedades de su tienda." #: templates/admin/storefront/area-promo.php:25 msgid "Change store content" msgstr "Cambiar el contenido de la tienda" #: templates/admin/storefront/area-promo.php:22 msgid "Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand." msgstr "Personalice la apariencia de su tienda para que se ajuste a las necesidades de su negocio. Cree la apariencia para su tienda que más se parezca a su marca." #: templates/admin/storefront/area-promo.php:21 msgid "Customize store appearance" msgstr "Personalizar la apariencia de la tienda" #: templates/admin/storefront/area-promo.php:7 msgid "Add your %s store to the website and start selling in minutes." msgstr "Añada su tienda de %s al sitio web y comience a vender en minutos." #: templates/admin/storefront/area-promo.php:3 msgid "What's next?" msgstr "¿Qué sigue?" #: templates/admin/storefront/area-additional.php:224 msgid "Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar." msgstr "Su tienda se añade a varias páginas del sitio web. Elija la página principal. Los clientes son redirigidos a la página principal de la tienda cuando hacen clic en el icono del carrito, en los enlaces de la tienda ubicados en el menú del sitio web o en los productos que se encuentran en la barra lateral." #: templates/admin/storefront/area-additional.php:222 msgid "Choose the main store page" msgstr "Elegir la página principal de la tienda" #: templates/admin/storefront/area-additional.php:200 msgid "Go to Pages" msgstr "Ir a «Páginas»" #: templates/admin/storefront/area-additional.php:193 msgid "You can add the entire storefront, categories, products, or \"Buy now\" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block." msgstr "Puede añadir todo el escaparate virtual, las categorías, los productos o los botones de «Comprar ahora» a otras páginas de su sitio web. Para ello, abra una página en el editor y añada un bloque %s apropiado." #: templates/admin/storefront/area-additional.php:189 msgid "Add your store to other site pages" msgstr "Añada su tienda a otras páginas del sitio web" #: templates/admin/storefront/area-additional.php:166 msgid "Create Product Page" msgstr "Crear página de productos" #: templates/admin/storefront/area-additional.php:150 msgid "Pick Product" msgstr "Elegir un producto" #: templates/admin/storefront/area-additional.php:136 #: templates/admin/storefront/area-additional.php:138 msgid "Create a landing page featuring one of your products." msgstr "Cree una página de aterrizaje con uno de sus productos." #: templates/admin/storefront/area-additional.php:132 msgid "Add a product page" msgstr "Añadir página de productos" #: templates/admin/storefront/area-additional.php:109 msgid "Create Category Page" msgstr "Crear página de categorías" #: templates/admin/storefront/area-additional.php:93 msgid "Pick Category" msgstr "Elegir una categoría" #: templates/admin/storefront/area-additional.php:79 #: templates/admin/storefront/area-additional.php:81 msgid "Feature a specific store category on a separate page of your site." msgstr "Destacar una categoría de la tienda específica en una página separada de su sitio web." #: templates/admin/storefront/area-additional.php:75 msgid "Add a category page" msgstr "Añadir una página de categoría" #: templates/admin/storefront/area-additional.php:54 msgid "Create Search Page" msgstr "Crear página de búsqueda" #: templates/admin/storefront/area-additional.php:50 msgid "Show customers that they can use a search and filters to find desired products faster." msgstr "Muéstreles a los clientes que pueden utilizar la búsqueda y los filtros para encontrar los productos que deseen de forma más rápida." #: templates/admin/storefront/area-additional.php:48 msgid "Add a search and filters page" msgstr "Añadir una página de búsqueda y filtros" #: templates/admin/storefront/area-additional.php:27 msgid "Create Cart Page" msgstr "Crear página del carrito" #: templates/admin/storefront/area-additional.php:23 msgid "Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout." msgstr "Los clientes van a la página del carrito para consultar los productos que han añadido al mismo y proceder con el pago." #: templates/admin/storefront/area-additional.php:21 msgid "Add cart and checkout page" msgstr "Añadir carrito y página de pago" #: templates/admin/storefront/area-additional.php:4 msgid "Highlight products, categories, and other store pages by adding them to separate website pages." msgstr "Destaque productos, categorías y otras páginas de la tienda añadiéndolas a páginas del sitio web separadas." #: templates/admin/storefront/area-additional.php:3 msgid "Additional store pages" msgstr "Páginas adicionales de la tienda" #: templates/admin/storefront/draft-message.php:2 msgid "Publish the page to use this option" msgstr "Publique la página para poder utilizar esta opción" #: templates/admin/storefront/area-design.php:55 msgid "Along with the store catalog, you can add other widgets and texts to the store page." msgstr "Junto con el catálogo de la tienda, puede añadir otros «widgets» y textos a la página de la tienda." #: templates/admin/storefront/area-design.php:54 msgid "Store page content" msgstr "Contenido de la página de la tienda" #: templates/admin/storefront/area-design.php:25 #: templates/admin/storefront/area-design.php:27 msgid "Adjust your store design to fit your business needs." msgstr "Ajuste el diseño de su tienda para que se adapte a las necesidades de su negocio." #: templates/admin/storefront/area-design.php:21 msgid "Store appearance" msgstr "Apariencia de la tienda" #: templates/admin/storefront/area-design.php:4 msgid "Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers." msgstr "Personalice la apariencia de su escaparate virtual y edite el contenido en la página de la tienda para reflejar su marca y mantenerse conectado con sus clientes." #: templates/admin/storefront/area-design.php:3 msgid "Design and content" msgstr "Diseño y contenido" #: templates/admin/storefront/area-status.php:124 msgid "Create Store Page" msgstr "Crear la página de la tienda" #: templates/admin/storefront/area-status.php:121 msgid "Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display." msgstr "Su tienda no se añade a ninguna página de su sitio web. Para que los clientes puedan navegar por su tienda y realizar pedidos, cree una página donde se mostrará la tienda." #: templates/admin/storefront/area-status.php:115 msgid "Set Up Your Store" msgstr "Configure su tienda" #: templates/admin/storefront/area-status.php:109 msgid "To show your storefront instead of the demo store, connect your existing %s account or create a new one." msgstr "Para mostrar su escaparate virtual en lugar de la tienda de demostración, conecte su cuenta de %s existente o cree una nueva." #: templates/admin/storefront/area-status.php:101 msgid "Publish Store Page" msgstr "Publicar la página de la tienda" #: templates/admin/storefront/area-status.php:98 msgid "Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders." msgstr "La página de su tienda está actualmente en un borrador. Una vez que esté lista, publíquela para que los clientes puedan visitar la tienda y realizar pedidos." #: templates/admin/storefront/area-status.php:92 msgid "View Store Page" msgstr "Ver la página de la tienda" #: templates/admin/storefront/area-status.php:86 msgid "Your store page is published. Customers can browse your store at " msgstr "La página de su tienda está publicada. Los clientes pueden visitar su tienda en " #: templates/admin/storefront/area-status.php:77 msgid "View demo store page" msgstr "Ver la página de la tienda de demostración" #: templates/admin/storefront/area-status.php:46 msgid "Draft" msgstr "Borrador" #: templates/admin/storefront/area-status.php:45 msgid "Published" msgstr "Publicada" #: templates/admin/storefront/area-status.php:33 #: templates/admin/storefront/area-status.php:36 msgid "Status" msgstr "Estado" #: templates/admin/storefront/area-status.php:29 msgid "Add a store page" msgstr "Añadir una página de tienda" #: templates/admin/storefront/area-status.php:24 msgid "Connect your %s store" msgstr "Conecte su tienda de %s" #: templates/admin/storefront/area-status.php:21 msgid "Your store page" msgstr "La página de su tienda" #: templates/admin/storefront/area-status.php:10 msgid "To start selling, add a page to your site where the storefront will display." msgstr "Para comenzar a vender, añada una página a su sitio web donde se muestre el escaparate virtual." #: templates/admin/storefront/area-status.php:7 msgid "While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site." msgstr "Mientras su tienda aún no esté conectada, se mostrará una tienda de demostración en su sitio web. Échele un vistazo para tener una idea de cómo se verá su tienda en el sitio web." #: templates/admin/storefront/area-status.php:4 msgid "Store page on your site" msgstr "Página de la tienda en su sitio web" #: templates/admin/storefront/area-navigation.php:205 msgid "The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href=\"%s\" target=\"_blank\">adjust the cart icon appearance</a>." msgstr "El icono del carrito de compras muestra la cantidad de artículos en el carrito y ayuda a los clientes a realizar el pago. Además, puede <a href=\"%s\" target=\"_blank\">ajustar la apariencia del icono del carrito</a>." #: templates/admin/storefront/area-navigation.php:201 msgid "Display the shopping cart icon on site pages" msgstr "Muestre el icono del carrito de compras en las páginas del sitio web" #: templates/admin/storefront/area-navigation.php:179 msgid "Manage Sidebar" msgstr "Gestionar la barra lateral" #: templates/admin/storefront/area-navigation.php:175 msgid "Highlight your best sellers or new products in the website sidebar." msgstr "Destaque sus mejores ventas o nuevos productos en la barra lateral del sitio web." #: templates/admin/storefront/area-navigation.php:173 msgid "Feature your products in the sidebar" msgstr "Destaque sus productos en la barra lateral" #: templates/admin/storefront/area-navigation.php:151 msgid "Add Store Page to Menu" msgstr "Añadir la página de la tienda al menú" #: templates/admin/storefront/area-navigation.php:147 msgid "Make your store accessible from the site menu so your customers can easily find it." msgstr "Haga que su tienda sea accesible desde el menú del sitio web para que sus clientes puedan encontrarla fácilmente." #: templates/admin/storefront/area-navigation.php:141 msgid "Add store page to the site menu" msgstr "Añadir la página de la tienda al menú del sitio web" #: templates/admin/storefront/area-navigation.php:118 msgid "Edit URL Slug" msgstr "Editar «slug» de la dirección URL" #: templates/admin/storefront/area-navigation.php:102 msgid "Current URL slug: /<span data-ec-store-slug>%s</span>" msgstr "«Slug» actual de la dirección URL: /<span data-ec-store-slug>%s</span>" #: templates/admin/storefront/area-navigation.php:78 msgid "Save" msgstr "Guardar" #: templates/admin/storefront/area-navigation.php:69 msgid "URL Slug" msgstr "«Slug» de la dirección URL" #: templates/admin/storefront/area-navigation.php:60 #: templates/admin/storefront/area-navigation.php:113 msgid "A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use \"/shop\" or \"/products\"." msgstr "Un «slug» es la última parte de una URL. Puede crear un «slug» personalizado para la página de su tienda. Es mejor que sea corto, ya que los clientes y los motores de búsqueda prefieren las URL cortas. Por ejemplo, utilice «/tienda» o «/productos»." #: templates/admin/storefront/area-navigation.php:56 #: templates/admin/storefront/area-navigation.php:98 msgid "Customize store page address" msgstr "Personalizar la dirección de la página de la tienda" #: templates/admin/storefront/area-navigation.php:29 msgid "Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href=\"%s\" target=\"_blank\">WordPress Settings > Reading</a>" msgstr "Añada su escaparate virtual a la página de inicio del sitio web para que sea más notable. También puede modificar la configuración de la página de inicio del sitio web en <a href=\"%s\" target=\"_blank\">Configuración de WordPress > Lectura</a>." #: templates/admin/storefront/area-navigation.php:21 msgid "Show your store on the home page" msgstr "Muestre su tienda en la página de inicio" #: templates/admin/storefront/area-navigation.php:4 msgid "Help customers find your store on the website." msgstr "Ayude a los clientes a encontrar su tienda en el sitio web." #: templates/admin/storefront/area-navigation.php:3 msgid "Navigation" msgstr "Navegación" #: templates/admin/welcome-no_oauth.php:12 msgid "Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>." msgstr "El ID de la tienda es un identificador único de su cuenta de %1$s. Puede encontrarlo en su panel de control de %1$s en la <a %2$s>página del panel</a>." #: templates/admin/welcome-create.php:11 msgid "Your store has been created. Preparing your store dashboard ..." msgstr "Se ha creado su tienda. Preparando el panel de su tienda..." #: templates/admin/welcome-connect.php:8 msgid "Create store" msgstr "Crear tienda" #: templates/admin/welcome-connect.php:4 msgid "Connect Your Store" msgstr "Conecte su tienda" #: templates/admin/welcome-page.php:61 msgid "Provided by <a %s>%s</a>" msgstr "Proporcionado por <a %s>%s</a>" #: templates/admin/welcome-page.php:33 msgid "To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>." msgstr "Para añadir su tienda a su sitio web, introduzca el ID de su tienda de %1$s en el campo a continuación. Si aún no tiene una cuenta de %1$s, cree una gratis en el <a %2$s>sitio web de %1$s</a>." #: templates/admin/welcome-page.php:20 msgid "Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website." msgstr "Cree una nueva tienda o, si ya tiene una cuenta de %s, conéctela. El complemento le guiará a través de la configuración de la tienda y le ayudará a publicarla en su sitio web." #: templates/admin/welcome-page.php:12 msgid "Add an Online Store to Your Website" msgstr "Añadir una tienda en línea a su sitio web" #: includes/class-ecwid-store-page.php:566 msgid "This is a demo store. Create your store to see your store products here." msgstr "Esto es una tienda de demostración. Cree su tienda para ver los productos de su tienda aquí." #: includes/class-ecwid-admin-storefront-page.php:539 msgid "Publish" msgstr "Publicar" #: templates/admin/storefront/area-design.php:33 #: templates/admin/storefront/area-design.php:59 #: includes/class-ecwid-admin-storefront-page.php:532 msgid "Edit" msgstr "Editar" #: includes/class-ecwid-admin-storefront-page.php:525 msgid "Preview" msgstr "Vista previa" #: includes/class-ecwid-admin-storefront-page.php:516 msgid "Switch to draft" msgstr "Cambiar al borrador" #: includes/class-ecwid-admin-storefront-page.php:506 msgid "Edit page" msgstr "Editar página" #: includes/class-ecwid-admin-storefront-page.php:499 msgid "View store page" msgstr "Ver la página de la tienda" #: includes/class-ecwid-admin-storefront-page.php:286 msgid "Search products" msgstr "Buscar productos" #: includes/class-ecwid-admin-storefront-page.php:265 msgid "Category" msgstr "Categoría" #: includes/class-ecwid-admin-storefront-page.php:240 msgid "Page with that name already exists." msgstr "Ya existe una página con ese nombre." #: includes/class-ecwid-admin.php:538 msgid "My Profile" msgstr "Mi perfil" #: includes/class-ecwid-admin.php:533 msgid "Apps" msgstr "Aplicaciones" #: includes/class-ecwid-admin.php:523 msgid "Shipping & Pickup" msgstr "Envío y recogida" #: includes/class-ecwid-admin.php:518 msgid "Payment" msgstr "Pago" #: includes/class-ecwid-admin.php:513 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:88 msgid "Design" msgstr "Diseño" #: includes/class-ecwid-admin.php:509 msgid "Configuration" msgstr "Configuración" #: includes/class-ecwid-admin.php:504 msgid "All Sales Channels" msgstr "Todos los canales de venta" #: includes/class-ecwid-admin.php:499 msgid "Website" msgstr "Sitio web" #: includes/class-ecwid-admin.php:494 msgid "Mobile" msgstr "Móvil" #: includes/class-ecwid-admin.php:485 msgid "Sales channels" msgstr "Canales de venta" #: includes/class-ecwid-admin.php:480 msgid "Reports" msgstr "Informes" #: includes/class-ecwid-admin.php:475 msgid "Marketing" msgstr "Mercadotecnia" #: includes/class-ecwid-admin.php:470 msgid "Catalog" msgstr "Catálogo" #: includes/class-ecwid-admin.php:465 msgid "My Sales" msgstr "Mis ventas" #: includes/class-ecwid-admin.php:455 msgid "Store management" msgstr "Gestión de la tienda" #: includes/class-ecwid-admin.php:344 msgid "Instant site" msgstr "Sitio web instantáneo" #: includes/class-ecwid-admin.php:153 includes/class-ecwid-admin.php:154 #: includes/class-ecwid-admin.php:309 msgid "Storefront" msgstr "Escaparate virtual" #: ecwid-shopping-cart.php:1111 msgid "Manage storefront" msgstr "Gestionar escaparate virtual" #: ecwid-shopping-cart.php:1111 msgid "Customize design" msgstr "Personalizar el diseño" #: ecwid-shopping-cart.php:1103 msgid "Manage store" msgstr "Gestionar la tienda" #: templates/importer/woo-main.tpl.php:97 msgid "Start Import" msgstr "Iniciar la importación" #: templates/importer/woo-main.tpl.php:87 msgid "Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target=\"_blank\">\"Billing & Plans\"</a></nobr> page in your Ecwid store control panel." msgstr "Tenga en cuenta el número máximo de productos y categorías que puede tener en su tienda de Ecwid. Esta herramienta de importación se detendrá automáticamente cuando se alcance el límite de productos de la tienda. Para conocer el límite actual de la tienda o aumentarlo, consulte la página <nobr><a %s target=\"_blank\">«Facturación y planes»</a></nobr> ubicada en el panel de su tienda de Ecwid." #: templates/importer/woo-main.tpl.php:82 msgid "Import creates new products and update the existing products with matching SKUs." msgstr "La importación crea nuevos productos y actualiza los productos existentes con las REF correspondientes." #: templates/importer/woo-main.tpl.php:60 msgid "Copying products and categories." msgstr "Copia de productos y categorías." #: templates/importer/woo-main.tpl.php:50 msgid "Import completed. <a href=\"%s\">Run again.</a>" msgstr "Importación completada. <a href=\"%s\">Ejecútela de nuevo.</a>" #: templates/importer/woo-main.tpl.php:34 msgid "Import is in Progress" msgstr "La importación está en progreso" #: templates/importer/woo-main.tpl.php:32 msgid "Import your products from Woocommerce to %s" msgstr "Importe sus productos de Woocommerce a %s" #: templates/importer/woo-main.tpl.php:18 msgid "Update your catalog" msgstr "Actualice su catálogo" #: templates/importer/woo-main.tpl.php:4 msgid "Import Your Products From Woocommerce to %s" msgstr "Importe sus productos de Woocommerce a %s" #: templates/importer/import-no-token.tpl.php:3 msgid "Click the connect button to get rights to update the product catalog" msgstr "Haga clic en el botón «Conectar» para obtener los permisos para actualizar el catálogo de productos" #: templates/importer/woo-complete-alert.tpl.php:52 msgid "Go to Your %s Products" msgstr "Ir a sus productos de %s" #: templates/importer/woo-complete-alert.tpl.php:43 msgid "Download <a href=\"%s\">import log</a>" msgstr "Descargar <a href=\"%s\">registro de importación</a>" #: templates/importer/woo-complete-alert.tpl.php:32 msgid "Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>" msgstr "Parte de los productos no se han copiado a %1$s porque alcanzó el límite de productos en su plan de precios en %1$s. Si desea importar más productos, considere <nobr><a %2$s>actualizar su plan de %1$s.</a></nobr>" #: templates/importer/woo-complete-alert.tpl.php:21 msgid "<b>%s</b> categories" msgstr "<b>%s</b> categorías" #: templates/importer/woo-complete-alert.tpl.php:18 msgid "Imported <b>%s</b> products" msgstr "<b>%s</b> productos importados" #: templates/importer/woo-complete-alert.tpl.php:15 msgid "Import completed" msgstr "Importación completada" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:10 #: includes/widgets/class-ecwid-widget-product-browser.php:12 msgid "Online store" msgstr "Tienda en línea" #: includes/class-ecwid-store-page.php:476 msgid "%s Store Page" msgstr "Página de la tienda de %s" #: templates/advanced-settings.php:79 msgid "Integration with search on your site" msgstr "Integración con la búsqueda en su sitio web" #: templates/sync.php:130 msgid "Deleted products synchronized: %1$s out of %2$s" msgstr "Productos eliminados sincronizados: %1$s de %2$s" #: includes/class-ecwid-custom-admin-page.php:66 msgid "Themes for Ecwid" msgstr "Temas para Ecwid" #: includes/class-ecwid-custom-admin-page.php:33 msgid "Plugins for Ecwid" msgstr "Complementos para Ecwid" #: includes/class-ecwid-popup-deactivate.php:138 msgid "I use this WordPress theme: %s" msgstr "Utilizo este tema de WordPress: %s" #: includes/class-ecwid-popup-deactivate.php:132 msgid "I couldn’t find a WordPress theme that goes well with %s" msgstr "No pude encontrar un tema de WordPress adecuado para %s" #: includes/class-ecwid-product-browser.php:357 msgid "On the right" msgstr "A la derecha" #: includes/class-ecwid-product-browser.php:353 msgid "On the left" msgstr "A la izquierda" #: includes/class-ecwid-product-browser.php:349 msgid "Filters panel position" msgstr "Posición del panel de filtros" #: includes/class-ecwid-product-browser.php:209 msgid "Default product_ID" msgstr "ID del producto predeterminado" #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:73 msgid "Cart icon" msgstr "Icono del carrito de compras" #: templates/shortcode-stub-store.tpl.php:4 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:20 #: js/gutenberg/blocks.build.js:1 msgid "Store Home Page" msgstr "Página de inicio de la tienda" #: ecwid-shopping-cart.php:431 msgid "Edit Category" msgstr "Editar categoría" #: ecwid-shopping-cart.php:430 msgid "Edit Product" msgstr "Editar producto" #: includes/class-ecwid-admin.php:142 includes/class-ecwid-admin.php:143 msgid "Online Store Apps" msgstr "Aplicaciones de la tienda en línea" #. Plugin Name of the plugin msgid "Ecwid Ecommerce Shopping Cart" msgstr "Carrito de compras del comercio electrónico de Ecwid" #: includes/class-ecwid-custom-admin-page.php:58 includes/faq_entries.php:76 msgid "Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href=\"%s\">TemplateMonster themes</a>" msgstr "Ecwid es compatible con cualquier tema de WordPress. Ya sea un tema gratuito del catálogo de WordPress.org, un tema prémium de un proveedor externo o un tema personalizado; su tienda de Ecwid funcionará bien con cualquiera de ellos. Si desea un tema prémium, le recomendamos <a href=\"%s\">temas de TemplateMonster</a>." #: includes/faq_entries.php:74 msgid "Is there a WordPress theme for Ecwid?" msgstr "¿Existe algún tema de WordPress para Ecwid?" #: templates/admin-footer.php:19 msgid "<a href=\"admin.php?page=" msgstr "<a href=\"admin.php?page=" #: includes/integrations/class-ecwid-integration-gutenberg.php:113 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:25 msgid "You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href=\"%1$s\">Appearance → Customize → %2$s</a>” menu to enable it." msgstr "Puede habilitar un «widget» adicional del icono de la bolsa de compras que aparecerá en las páginas de su sitio web. Abra el menú «<a href=\"%1$s\">Apariencia → Personalizar → %2$s</a>» para habilitarlo." #: includes/integrations/class-ecwid-integration-gutenberg.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:18 msgctxt "gutenberg-store-block-stub" msgid "Store" msgstr "Tienda" #: includes/class-ecwid-product-browser.php:472 msgid "Image feed" msgstr "Canal de imagen" #: includes/class-ecwid-product-browser.php:467 msgid "Vertical thumbnails" msgstr "Miniaturas verticales" #: includes/class-ecwid-product-browser.php:462 msgid "Horizontal thumbnails" msgstr "Miniaturas horizontales" #: includes/class-ecwid-product-browser.php:452 msgid "3 columns, image on the right" msgstr "3 columnas, imagen a la derecha" #: includes/class-ecwid-product-browser.php:448 msgid "3 columns, image on the left" msgstr "3 columnas, imagen a la izquierda" #: includes/class-ecwid-product-browser.php:444 msgid "2 columns, image on the right" msgstr "2 columnas, imagen a la derecha" #: includes/class-ecwid-product-browser.php:440 msgid "2 columns, image on the left" msgstr "2 columnas, imagen a la izquierda" #: includes/class-ecwid-product-browser.php:429 msgid "Landscape 3:2" msgstr "Horizontal 3:2" #: includes/class-ecwid-product-browser.php:424 msgid "Landscape 4:3" msgstr "Horizontal 4:3" #: includes/class-ecwid-product-browser.php:419 msgid "Square 1:1" msgstr "Cuadrado 1:1" #: includes/class-ecwid-product-browser.php:414 msgid "Portrait 3:4" msgstr "Vertical 3:4" #: includes/class-ecwid-product-browser.php:409 msgid "Portrait 2:3" msgstr "Vertical 2:3" #: includes/class-ecwid-product-browser.php:399 msgid "L" msgstr "G" #: includes/class-ecwid-product-browser.php:395 msgid "M" msgstr "M" #: includes/class-ecwid-product-browser.php:391 msgid "S" msgstr "P" #: includes/class-ecwid-product-browser.php:381 msgid "Show on hover" msgstr "Mostrar al pasar el ratón" #: includes/class-ecwid-product-browser.php:377 msgid "Hide" msgstr "Ocultar" #: includes/class-ecwid-product-browser.php:373 msgid "Show" msgstr "Mostrar" #: includes/class-ecwid-product-browser.php:342 msgid "Background color" msgstr "Color del fondo" #: includes/class-ecwid-product-browser.php:335 msgid "Link color" msgstr "Color del enlace" #: includes/class-ecwid-product-browser.php:328 msgid "Price color" msgstr "Color del precio" #: includes/class-ecwid-product-browser.php:321 msgid "Text color" msgstr "Color del texto" #: includes/class-ecwid-product-browser.php:314 msgid "Button color" msgstr "Color del botón" #: includes/class-ecwid-product-browser.php:299 msgid "Wholesale prices" msgstr "Precios al por mayor" #: includes/class-ecwid-product-browser.php:292 msgid "\"In stock\" label" msgstr "Etiqueta de productos «En existencia»" #: includes/class-ecwid-product-browser.php:285 msgid "Available qty in stock" msgstr "Cantidad disponible en existencia" #: includes/class-ecwid-product-browser.php:278 msgid "Product quantity" msgstr "Cantidad de productos" #: includes/class-ecwid-product-browser.php:271 msgctxt "product-browser-attributes" msgid "Product price" msgstr "Precio del producto" #: includes/class-ecwid-product-browser.php:264 msgctxt "product-browser-attributes" msgid "Product SKU" msgstr "REF del producto" #: includes/class-ecwid-product-browser.php:257 msgid "Breadcrumbs" msgstr "Migas de pan" #: includes/class-ecwid-product-browser.php:241 msgid "Image gallery layout" msgstr "Diseño de la galería de imágenes" #: includes/integrations/class-ecwid-integration-gutenberg.php:391 #: includes/class-ecwid-product-browser.php:224 #: includes/class-ecwid-product-browser.php:233 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:212 msgid "Show description under the image" msgstr "Mostrar descripción debajo de la imagen" #: includes/class-ecwid-product-browser.php:216 msgid "Product page layout" msgstr "Diseño de la página de productos" #: includes/class-ecwid-product-browser.php:194 msgid "Display sort by link" msgstr "Mostrar «ordenar por enlace»" #: includes/class-ecwid-product-browser.php:186 #: includes/class-ecwid-product-browser.php:306 msgid "Display sign in link" msgstr "Mostrar el enlace de inicio de sesión" #: includes/class-ecwid-product-browser.php:178 msgid "Display footer menu" msgstr "Mostrar el menú del pie de página" #: includes/class-ecwid-product-browser.php:170 msgid "Display breadcrumbs" msgstr "Mostrar migas de pan" #: includes/class-ecwid-product-browser.php:163 js/gutenberg/blocks.build.js:1 msgid "Display search box" msgstr "Mostrar el cuadro de búsqueda" #: includes/class-ecwid-product-browser.php:156 msgid "Display categories menu" msgstr "Mostrar el menú de categorías" #: includes/class-ecwid-product-browser.php:148 msgid "Category thumbnail aspect ratio" msgstr "Relación de aspecto de la miniatura de la categoría" #: includes/class-ecwid-product-browser.php:140 msgid "Category thumbnail size" msgstr "Tamaño de la miniatura de la categoría" #: includes/class-ecwid-product-browser.php:131 msgid "Image only" msgstr "Solo imagen" #: includes/class-ecwid-product-browser.php:127 msgid "Title only" msgstr "Solo título" #: includes/class-ecwid-product-browser.php:123 msgid "Image and title on mouse over" msgstr "Imagen y título al pasar el ratón por encima" #: includes/class-ecwid-product-browser.php:119 msgid "Title on image" msgstr "Título en la imagen" #: includes/class-ecwid-product-browser.php:115 msgid "Title under image" msgstr "Título debajo de la imagen" #: includes/class-ecwid-product-browser.php:111 msgid "Category card layout" msgstr "Diseño de la ficha de categoría" #: includes/class-ecwid-product-browser.php:103 msgid "Show additional image on hover" msgstr "Mostrar imagen adicional al pasar el ratón" #: includes/class-ecwid-product-browser.php:95 msgid "Buy now buttons" msgstr "Botones de «Comprar ahora»" #: includes/class-ecwid-product-browser.php:87 msgid "Product SKU" msgstr "REF del producto" #: includes/class-ecwid-product-browser.php:79 msgid "Product price" msgstr "Precio del producto" #: includes/class-ecwid-product-browser.php:71 msgid "Product title" msgstr "Título del producto" #: includes/class-ecwid-product-browser.php:61 msgid "Justify" msgstr "Justificado" #: includes/class-ecwid-product-browser.php:56 msgid "Right" msgstr "Derecha" #: includes/class-ecwid-product-browser.php:51 msgid "Center" msgstr "Centrado" #: includes/class-ecwid-product-browser.php:46 msgid "Left" msgstr "Izquierda" #: includes/class-ecwid-product-browser.php:42 msgid "Product card text align" msgstr "El texto de la ficha del producto se alinea" #: includes/class-ecwid-product-browser.php:34 msgid "Show product card border" msgstr "Mostrar el borde de la ficha del producto" #: includes/class-ecwid-product-browser.php:26 msgid "Product thumbnail aspect ratio" msgstr "Relación de aspecto de la miniatura del producto" #: includes/class-ecwid-product-browser.php:18 msgid "Product thumbnail size" msgstr "Tamaño de la miniatura del producto" #: includes/class-ecwid-product-browser.php:10 msgid "Show product thumbnails" msgstr "Mostrar miniaturas de los productos" #. Author of the plugin msgid "Ecwid Ecommerce" msgstr "Comercio electrónico Ecwid" #: templates/importer/woo-summary.tpl.php:34 msgid "After import, your %s store will have " msgstr "Después de la importación, su tienda de %s tendrá " #: templates/importer/woo-summary.tpl.php:21 msgid "Your %s store has " msgstr "Su tienda de %s tiene " #: templates/importer/woo-summary.tpl.php:10 msgid "Your WooCommerce store has " msgstr "Su tienda de WooCommerce tiene " #: includes/integrations/class-ecwid-integration-elementor.php:64 #: includes/integrations/class-ecwid-integration-divibuilder.php:25 #: includes/integrations/class-ecwid-integration-gutenberg.php:94 msgid "%s Store" msgstr "Tienda de %s" #: includes/importer/class-ecwid-import-page.php:184 msgid "%s products" msgstr "%s productos" #: includes/importer/class-ecwid-import-page.php:178 msgid "%s products and %s categories" msgstr "%s productos y %s categorías" #: includes/class-ecwid-stub-renderer.php:27 #: includes/class-ecwid-admin-storefront-page.php:272 msgid "Product" msgstr "Producto" #: includes/class-ecwid-message-manager.php:278 #: includes/class-ecwid-message-manager.php:297 #: includes/class-ecwid-message-manager.php:318 msgid "Warning: some of your online store features are disabled. Please contact your hosting provider to resolve." msgstr "Advertencia: algunas de las funciones de su tienda en línea están inhabilitadas. Póngase en contacto con su proveedor de alojamiento web para resolverlo." #: templates/admin/legacy-connect.tpl.php:39 msgid "Create new account" msgstr "Crear una nueva cuenta" #: templates/admin/legacy-connect.tpl.php:33 msgid "Register at %s" msgstr "Registrarse en %s" #: includes/class-ecwid-floating-minicart.php:155 msgid "Bottom left" msgstr "Abajo a la izquierda" #: includes/class-ecwid-floating-minicart.php:154 msgid "Top left" msgstr "Arriba a la izquierda" #: includes/class-ecwid-floating-minicart.php:113 msgid "Show on all pages" msgstr "Mostrar en todas las páginas" #: includes/class-ecwid-floating-minicart.php:112 msgid "Show on store pages" msgstr "Mostrar en las páginas de la tienda" #: includes/class-ecwid-floating-minicart.php:111 msgid "Do not show" msgstr "No mostrar" #: includes/class-ecwid-customizer.php:134 msgid "Vertical indent" msgstr "Sangría vertical" #: includes/class-ecwid-customizer.php:123 msgid "Horizontal indent" msgstr "Sangría horizontal" #: includes/class-ecwid-customizer.php:97 msgid "Icon" msgstr "Icono" #: includes/class-ecwid-customizer.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:79 msgid "Border" msgstr "Borde" #: includes/class-ecwid-customizer.php:72 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:67 msgid "Layout" msgstr "Diseño" #: includes/class-ecwid-customizer.php:61 msgid "Show when empty" msgstr "Mostrar cuando esté vacío" #: includes/class-ecwid-customizer.php:49 msgid "Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The \"Show on store pages\" and \"Show when empty\" options will apply to the cart widget on site when published" msgstr "Nota: cuando está habilitado, el «widget» del carrito siempre se mostrará en la vista previa para que sea más fácil personalizarlo. Las opciones «Mostrar en las páginas de la tienda» y «Mostrar cuando esté vacío» se aplicarán al «widget» del carrito en el sitio cuando se publiquen" #: includes/class-ecwid-customizer.php:47 msgid "Display shopping cart" msgstr "Mostrar el carrito de compras" #: includes/class-ecwid-customizer.php:35 msgid "Shopping Cart Widget" msgstr "«Widget» del carrito de compras" #. Author URI of the plugin msgid "https://ecwid.to/ecwid-site" msgstr "https://ecwid.to/ecwid-site" #: templates/product-popup.php:247 msgid "selected product" msgstr "producto seleccionado" #: templates/product-popup.php:138 templates/product-popup.php:143 msgid "Selected Product" msgstr "Producto seleccionado" #: templates/product-popup.php:124 msgid " Choose another product" msgstr " Elegir otro producto" #: templates/importer/landing.tpl.php:20 msgid "Import your WooCommerce catalog to %s" msgstr "Importe su catálogo de WooCommerce a %s" #: includes/widgets/nsf-minicart-editor.tpl.php:35 msgid "Border:" msgstr "Borde:" #: includes/widgets/nsf-minicart-editor.tpl.php:19 msgid "Cart icon:" msgstr "Icono del carrito:" #: includes/widgets/nsf-minicart-editor.tpl.php:3 msgid "Layout:" msgstr "Diseño:" #: includes/class-ecwid-floating-minicart.php:145 msgid "No border" msgstr "Sin borde" #: includes/class-ecwid-floating-minicart.php:144 msgid "Pill" msgstr "Píldora" #: includes/class-ecwid-floating-minicart.php:143 msgid "Rectangle" msgstr "Rectángulo" #: includes/class-ecwid-floating-minicart.php:136 msgid "Basket" msgstr "Cesta" #: includes/class-ecwid-floating-minicart.php:134 msgid "Bag" msgstr "Bolsa" #: includes/class-ecwid-floating-minicart.php:127 msgid "Icon, label, item count, subtotal and link" msgstr "Icono, etiqueta, total de artículos, subtotal y enlace" #: includes/class-ecwid-floating-minicart.php:126 msgid "Icon, label, item count and subtotal" msgstr "Icono, etiqueta, total de artículos y subtotal" #: includes/class-ecwid-floating-minicart.php:125 msgid "Icon, label and item count" msgstr "Icono, etiqueta y total de artículos" #: includes/class-ecwid-floating-minicart.php:124 msgid "Icon and item count" msgstr "Icono y total de artículos" #: includes/class-ecwid-floating-minicart.php:123 msgid "Label and item count" msgstr "Etiqueta y y total de artículos" #: includes/class-ecwid-floating-minicart.php:122 msgid "Item count only" msgstr "Solo el total de artículos" #: includes/class-ecwid-floating-minicart.php:121 msgid "Small icon and item count" msgstr "Icono pequeño y total de artículos" #: includes/class-ecwid-floating-minicart.php:120 msgid "Small icon" msgstr "Icono pequeño" #: includes/widgets/class-ecwid-widget-minicart.php:9 msgid "Shopping Cart (deprecated)" msgstr "Carrito de compras (descontinuado)" #: includes/widgets/class-ecwid-widget-minicart-miniview.php:9 msgid "Shopping Cart Mini (deprecated)" msgstr "Carrito de compras en miniatura (descontinuado)" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:21 msgid "Shopping Cart Floating (deprecated)" msgstr "Carrito de compras flotante (descontinuado)" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:69 msgid "Displays storefront: product listing and checkout" msgstr "Muestra el escaparate virtual: listado de productos y pago" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:67 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:70 msgctxt "vc-tab" msgid "Online store" msgstr "Tienda en línea" #: includes/integrations/class-ecwid-integration-gutenberg.php:105 #: includes/gutenberg/class-ecwid-gutenberg.php:131 msgid "Your product" msgstr "Su producto" #: templates/shortcode-stub-store.tpl.php:18 #: includes/integrations/class-ecwid-integration-gutenberg.php:103 #: includes/widgets/class-ecwid-widget-product-browser.php:11 #: includes/gutenberg/class-ecwid-gutenberg.php:129 msgid "Your store will be shown here" msgstr "Su tienda se mostrará aquí" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:31 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:101 #: includes/integrations/class-ecwid-integration-gutenberg.php:101 #: includes/gutenberg/class-ecwid-gutenberg.php:127 #: js/gutenberg/blocks.build.js:1 msgid "Choose product" msgstr "Elegir producto" #: includes/integrations/class-ecwid-integration-gutenberg.php:97 #: includes/gutenberg/class-ecwid-gutenberg.php:123 msgid "%s product" msgstr "%s producto" #: templates/wp-toolbox.tpl.php:4 msgid "Take advantage of powerful apps and extensions designed to enhance your store." msgstr "Aproveche las increíbles aplicaciones y extensiones diseñadas para mejorar su tienda." #: templates/wp-toolbox.tpl.php:3 msgid "Extensions for your Store" msgstr "Extensiones para su tienda" #: templates/importer/woo-summary.tpl.php:6 msgid "Import summary" msgstr "Resumen de la importación" #: templates/importer/woo-main.tpl.php:19 msgid "This import will copy your WooCommerce products and categories to your %s store." msgstr "Esta importación copiará sus productos y categorías de WooCommerce a su tienda de %s." #: templates/importer/woo-main.tpl.php:62 msgid "Importing %s of %s items" msgstr "Importando %s de %s artículos" #: templates/importer/woo-complete-alert.tpl.php:27 msgid "Some of the items could not be imported." msgstr "Algunos de los artículos no se pudieron importar." #: templates/importer/landing.tpl.php:33 msgid "Learn more" msgstr "Más información" #: templates/importer/landing.tpl.php:33 msgid "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" msgstr "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" #: templates/importer/landing.tpl.php:31 msgid "Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center" msgstr "Ecwid le permite subir sus productos en forma de archivo CSV. Obtenga más información sobre esta herramienta en el centro de asistencia de Ecwid" #: templates/importer/landing.tpl.php:29 msgid "Import product catalog from other sources" msgstr "Importar el catálogo de productos de otras fuentes" #: templates/importer/landing.tpl.php:23 msgid "(You will be able to confirm the changes before the actual import)" msgstr "(podrá confirmar los cambios antes de la importación definitiva)" #: templates/importer/landing.tpl.php:12 msgid "We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?" msgstr "Notamos que tiene un WooCommerce instalado. Su tienda de WooCommerce tiene %1$s productos y %2$s categorías; ¿le gustaría importarlos a %3$s?" #: templates/importer/landing.tpl.php:9 msgid "Import product catalog from WooCommerce" msgstr "Importar el catálogo de productos de WooCommerce" #: templates/importer/landing.tpl.php:4 msgid "Here, we will help you uploading your product catalog to %s from another shopping cart or other sources." msgstr "Aquí, le ayudaremos a subir su catálogo de productos a %s de otro carrito de compras u otras fuentes." #: templates/importer/landing.tpl.php:1 msgid "Import products to your %s store" msgstr "Importe los productos a su tienda de %s" #: templates/dashboard-blog-posts.tpl.php:20 msgid "Knowledge Base" msgstr "Base de conocimiento" #: templates/dashboard-blog-posts.tpl.php:19 msgid "https://support.ecwid.com/hc/en-us" msgstr "https://support.ecwid.com/hc/en-us" #: templates/dashboard-blog-posts.tpl.php:14 msgid "https://www.ecwid.com/blog" msgstr "https://www.ecwid.com/blog" #: includes/importer/class-ecwid-import.php:39 msgid "Bulk import products and categories to your %s store" msgstr "Importar en masa productos y categorías a su tienda de %s" #: includes/importer/class-ecwid-import.php:38 msgid "%s products and categories" msgstr "%s productos y categorías" #: templates/importer/woo-main.tpl.php:36 #: includes/importer/class-ecwid-import-page.php:52 #: includes/importer/class-ecwid-import-page.php:53 msgid "Import your products from WooCommerce to %s" msgstr "Importe sus productos de WooCommerce a %s" #: includes/importer/class-ecwid-import-page.php:42 #: includes/importer/class-ecwid-import-page.php:43 msgid "Import" msgstr "Importar" #: templates/dashboard-blog-posts.tpl.php:15 #: includes/class-ecwid-wp-dashboard-feed.php:48 msgid "%s Blog" msgstr "Blog de %s" #: includes/class-ecwid-message-manager.php:345 msgid "No Thanks" msgstr "No, gracias" #: includes/class-ecwid-message-manager.php:343 msgid "Import my products from WooCommerce" msgstr "Importar mis productos de WooCommerce" #: includes/class-ecwid-message-manager.php:341 msgid "We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you." msgstr "Notamos que tiene WooCommerce instalado. Si desea copiar fácilmente sus productos de WooCommerce a %s, esta herramienta le ayudará." #: includes/class-ecwid-message-manager.php:340 msgid "Need help importing your products from WooCommerce to %s?" msgstr "¿Necesita ayuda para importar sus productos de WooCommerce a %s?" #: includes/class-ecwid-admin.php:213 includes/class-ecwid-admin.php:214 msgid "Customers" msgstr "Clientes" #: templates/help.php:28 msgid "or <a %s>Browse the Help Center" msgstr "o <a %s>consulte el centro de asistencia" #: templates/admin/welcome-connection-message.php:5 msgid "To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission." msgstr "Para mostrar su tienda en este sitio web, debe permitir que WordPress acceda a sus productos de %1$s. Pulse «Conectar» para otorgar el permiso." #: includes/faq_entries.php:40 msgid "Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target=\"_blank\" href=\"%s\">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans." msgstr "Nuestros 4 tipos de cuentas varían según la cantidad de productos, los tipos de funcionalidades y el nivel de asistencia. Para obtener más información, consulte nuestra <a target=\"_blank\" href=\"%s\">página de precios.</a><br /><br />Consejo profesional: también puede ahorrar dinero si se suscribe a nuestros planes anuales." #: includes/class-ecwid-popup-deactivate.php:59 msgid "[%s] WordPress plugin deactivation feedback (store ID: %s)" msgstr "[%s] Comentarios sobre la desactivación del complemento de WordPress (ID de la tienda: %s)" #: includes/class-ecwid-message-manager.php:289 msgid "Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data." msgstr "Su escaparate virtual (listado de productos y página de pago) está funcionando bien, pero las funciones avanzadas de la tienda, como el SEO y los «widgets» de la barra lateral, están inhabilitadas. Para habilitarlas y asegurarse de que su tienda funcione correctamente, pulse el botón de abajo para conectar su cuenta de %s. Esto tomará menos de un minuto; solo se le pedirá que inicie sesión en su cuenta y permita que este sitio web obtenga los datos de su tienda." #: includes/class-ecwid-message-manager.php:288 msgid "Action required: please connect your %s account" msgstr "Acción requerida: conecte su cuenta de %s" #: templates/popup/deactivate.php:24 msgid "Contact Support" msgstr "Ponerse en contacto con la asistencia" #: templates/popup/deactivate.php:1 msgid "If you have a moment, please let us know why you are deactivating:" msgstr "Si tiene un momento, háganos saber por qué está desactivando:" #: templates/admin/welcome-create.php:4 msgid "Create Store" msgstr "Crear tienda" #: templates/advanced-settings.php:1 msgid "%s — Advanced settings" msgstr "%s — Configuración avanzada" #: includes/widgets/class-ecwid-widget-random-products.php:10 msgid "Displays a list of random products." msgstr "Muestra una lista de productos aleatorios." #: includes/widgets/class-ecwid-widget-random-products.php:9 msgid "Random Products" msgstr "Productos aleatorios" #: includes/widgets/class-ecwid-widget-random-product.php:9 #: includes/widgets/class-ecwid-widget-random-product.php:64 msgid "Random Product" msgstr "Producto aleatorio" #: includes/widgets/class-ecwid-widget-random-product.php:8 msgid "Displays a random product from your store to attract customer attention." msgstr "Muestra un producto aleatorio de su tienda para atraer la atención del cliente." #: includes/widgets/class-ecwid-widget-latest-products.php:10 msgid "Displays the latest added products from your store. Show new products to returning customers to drive repeat sales." msgstr "Muestra los últimos productos añadidos de su tienda. Muestre nuevos productos a los clientes existentes para impulsar las ventas repetidas." #: includes/widgets/class-ecwid-widget-latest-products.php:9 msgid "Latest Products" msgstr "Últimos productos" #: includes/class-ecwid-popup-deactivate.php:164 msgid "Can you share your feedback? What was wrong?" msgstr "¿Podría compartir su opinión? ¿Qué fue lo que pasó?" #: includes/class-ecwid-popup-deactivate.php:161 msgid "Other" msgstr "Otro" #: includes/class-ecwid-popup-deactivate.php:155 msgid "It's a temporary deactivation. Please do not ask me again." msgstr "Es una desactivación temporal. No preguntarme de nuevo." #: includes/class-ecwid-popup-deactivate.php:152 msgid "Can you share the name of the plugin you chose?" msgstr "¿Podría compartir el nombre del complemento que ha elegido?" #: includes/class-ecwid-popup-deactivate.php:149 msgid "I found a better plugin" msgstr "Encontré un mejor complemento" #: includes/class-ecwid-popup-deactivate.php:146 msgid "What feature do you need?" msgstr "¿Qué función necesita?" #: includes/class-ecwid-popup-deactivate.php:143 msgid "The plugin doesn't support the feature I want" msgstr "El complemento no es compatible con la función que quiero" #: includes/class-ecwid-popup-deactivate.php:128 msgid "What was wrong?" msgstr "¿Qué fue lo que pasó?" #: includes/class-ecwid-popup-deactivate.php:125 msgid "I have a problem using this plugin" msgstr "Tengo un problema con el uso de este complemento" #: includes/class-ecwid-popup-deactivate.php:112 msgid "Before You Go" msgstr "Antes de que se vaya" #: templates/admin/storefront/area-navigation.php:79 #: includes/class-ecwid-popup-deactivate.php:105 msgid "Cancel" msgstr "Cancelar" #: includes/class-ecwid-popup-deactivate.php:101 msgid "Submit & Deactivate" msgstr "Enviar y desactivar" #: includes/class-ecwid-message-manager.php:244 #: includes/class-ecwid-store-page.php:568 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:51 #: ecwid-shopping-cart.php:1082 js/gutenberg/blocks.build.js:1 msgid "Set up your store" msgstr "Configure su tienda" #: templates/admin-head.php:8 includes/class-ecwid-admin.php:48 #: includes/integrations/class-ecwid-integration-gutenberg.php:45 #: includes/gutenberg/class-ecwid-gutenberg.php:69 msgid "%s" msgstr "%s" #: templates/product-popup.php:199 js/gutenberg/blocks.build.js:1 msgid "«Buy now» button" msgstr "Botón de «Comprar ahora»" #: templates/admin/simple-dashboard.php:10 msgid "%s Shopping Cart" msgstr "Carrito de compras de %s" #: templates/advanced-settings.php:42 msgid "Please subscribe to a paid plan to get this feature." msgstr "Suscríbase a un plan de pago para obtener esta función." #: templates/admin-footer.php:9 msgid "Get %s mobile app" msgstr "Descargue la aplicación móvil de %s" #: includes/class-ecwid-message-manager.php:272 msgid "Rate %s at WordPress.org" msgstr "Tasa de %s en WordPress.org" #: includes/class-ecwid-message-manager.php:268 msgid "Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site." msgstr "¿Le gusta su tienda de %s en línea? Apreciaríamos si comparte su opinión y vota por el complemento en el sitio de WordPress." #: includes/class-ecwid-message-manager.php:260 msgid "To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings." msgstr "Para añadir funciones adicionales a su tienda, arrastre y suelte los elementos de la tienda de %s en su sitio web. Una vez que haya terminado, puede volver a modificar su configuración." #: templates/sync.php:114 msgid "Provide access." msgstr "Otorgar acceso." #: templates/sync.php:113 msgid "To enable this feature, the plugin needs a permission to read your store product information." msgstr "Para habilitar esta función, el complemento necesita un permiso para leer la información del producto de su tienda." #: templates/product-popup.php:137 templates/product-popup.php:147 msgid "Choose Product" msgstr "Elegir producto" #: templates/product-popup.php:96 msgid "Try another search." msgstr "Intente otra búsqueda." #: templates/sync.php:152 msgid "Not synchronized yet" msgstr "No se ha sincronizado todavía" #: templates/sync.php:149 msgid "Last update" msgstr "Última actualización" #: templates/sync.php:145 msgid "Products are successfully synchronized. The product pages are up to date." msgstr "Los productos se sincronizaron satisfactoriamente. Las páginas de productos están actualizadas." #: templates/sync.php:138 msgid "Products synchronized: %1$s out of %2$s" msgstr "Productos eliminados sincronizados: %1$s de %2$s" #: templates/sync.php:126 msgid "We're synchronizing your products. This may take a few minutes. Please do not reload the page." msgstr "Estamos sincronizando sus productos. Esto puede tardar unos minutos. No actualice la página." #: templates/sync.php:119 msgid "Synchronize products" msgstr "Sincronizar productos" #: templates/advanced-settings.php:83 msgid "%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site." msgstr "%s almacena los datos de sus productos de forma segura en la nube. Las páginas de productos se muestran sobre la marcha cuando un cliente navega por su tienda. Por lo que, básicamente, los productos no se almacenan en el sitio web, por eso la búsqueda en el sitio web no encuentra páginas de productos mientras busca en las páginas del sitio web y en las publicaciones. Esta opción habilita un modo de almacenamiento local: los productos se almacenarán tanto en la nube como en su sitio web. Los resultados de la búsqueda en el sitio web incluirán las páginas de productos, así como las páginas o publicaciones habituales de su sitio web." #: templates/product-popup.php:243 msgid "Insert" msgstr "Insertar" #: templates/product-popup.php:242 msgid "select product" msgstr "seleccionar producto" #: templates/product-popup.php:241 templates/product-popup.php:246 msgid "customize appearance" msgstr "personalizar apariencia" #: templates/product-popup.php:224 msgid "Show price inside the \"Buy now\" button" msgstr "Mostrar el precio dentro del botón de «Comprar ahora»" #: templates/product-popup.php:229 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:62 #: js/gutenberg/blocks.build.js:1 msgid "Center align on a page" msgstr "Centrar la alineación en una página" #: templates/product-popup.php:219 js/gutenberg/blocks.build.js:1 msgid "Add border" msgstr "Añadir borde" #: templates/product-popup.php:188 js/gutenberg/blocks.build.js:1 msgid "Quantity" msgstr "Cantidad" #: templates/product-popup.php:178 js/gutenberg/blocks.build.js:1 msgid "Options" msgstr "Opciones" #: templates/product-popup.php:173 js/gutenberg/blocks.build.js:1 msgid "Picture" msgstr "Imagen" #: templates/product-popup.php:163 msgid "Choose product properties to display in widget" msgstr "Elija las propiedades del producto para mostrarlas en el «widget»" #: templates/product-popup.php:139 templates/product-popup.php:151 msgid "Customize widget" msgstr "Personalizar «widget»" #: templates/product-popup.php:97 msgid "Browse all products." msgstr "Explorar todos los productos." #: templates/product-popup.php:94 msgid "Nothing found for <span class=\"empty-page__term\">\"{{ data.term }}\"</span>" msgstr "No se ha encontrado nada en relación con <span class=\"empty-page__term\">«{{ data.term }}»</span>" #: templates/product-popup.php:80 msgid "Next page" msgstr "Página siguiente" #: templates/product-popup.php:69 msgid "Current Page" msgstr "Página actual" #: templates/product-popup.php:49 msgid "Title or SKU" msgstr "Título o REF" #: templates/product-popup.php:47 templates/product-popup.php:53 #: templates/product-popup.php:56 msgid "Search" msgstr "Buscar" #: templates/product-popup.php:29 msgid "SKU" msgstr "REF" #: templates/product-popup.php:23 msgid "Name" msgstr "Nombre" #: includes/class-ecwid-product-popup.php:150 msgid "Last Page" msgstr "Última página" #: includes/class-ecwid-product-popup.php:149 msgid "Next Page" msgstr "Página siguiente" #: includes/class-ecwid-product-popup.php:148 msgid "Previous Page" msgstr "Página anterior" #: includes/class-ecwid-product-popup.php:147 msgid "First Page" msgstr "Primera página" #: includes/class-ecwid-product-popup.php:107 msgid "Add Product" msgstr "Añadir producto" #: includes/class-ecwid-oauth.php:366 msgid "To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the \"Add product\" dialog." msgstr "A fin de poder elegir un producto para insertarlo en sus publicaciones y páginas, deberá volver a conectar su sitio a su tienda de %s. Esto solo requerirá que acepte la solicitud de permisos para que el complemento pueda listar sus productos en el cuadro de diálogo «Añadir producto»." #: templates/advanced-settings.php:54 msgid "To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>" msgstr "Para asegurarse de que su cliente puede acceder realmente a su sitio web y a la tienda, habilite el registro en las <a %s>configuraciones del sitio web</a>" #: templates/advanced-settings.php:48 msgid "To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>" msgstr "Para permitir que %s inicie la sesión de sus clientes automáticamente en su tienda, otorgue los permisos para utilizar los datos del cliente en la tienda. <a %s>Utilice este enlace para hacerlo</a>" #: templates/advanced-settings.php:39 msgid "Upgrade to get this feature" msgstr "Actualice para obtener esta función" #: templates/advanced-settings.php:32 msgid "Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again." msgstr "El inicio de sesión único les permite a sus clientes tener un inicio de sesión único para su sitio web de WordPress y su %s. Cuando alguien inicie sesión en su sitio web, también iniciará sesión automáticamente en su cuenta de cliente en la tienda sin necesidad de introducir su correo electrónico y contraseña nuevamente." #: templates/advanced-settings.php:27 msgid "Customer Single Sign-On" msgstr "Inicio de sesión único del cliente" #: includes/integrations/class-ecwid-integration-divibuilder.php:63 msgid "Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space." msgstr "Introduzca las clases CSS opcionales que se utilizarán para este módulo. Se puede utilizar una clase CSS para crear estilos CSS personalizados. Puede añadir varias clases separadas por un espacio." #: includes/integrations/class-ecwid-integration-divibuilder.php:60 msgid "CSS Class" msgstr "Clase CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:57 msgid "Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page." msgstr "Introduzca un ID de CSS opcional que se utilizará para este módulo. Se puede utilizar un ID para crear un estilo CSS personalizado o para crear enlaces a secciones particulares de su página web." #: includes/integrations/class-ecwid-integration-divibuilder.php:54 msgid "CSS ID" msgstr "ID de CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:51 msgid "This will change the label of the module in the builder for easy identification." msgstr "Esto cambiará la etiqueta del módulo en el creador para una fácil identificación." #: includes/integrations/class-ecwid-integration-divibuilder.php:49 msgid "Admin Label" msgstr "Etiqueta de administrador" #: includes/integrations/class-ecwid-integration-divibuilder.php:44 msgid "Here you can create the content that will be used within the module." msgstr "Aquí puede crear el contenido que se utilizará dentro del módulo." #: includes/integrations/class-ecwid-integration-divibuilder.php:41 msgid "Content" msgstr "Contenido" #: templates/admin-footer.php:29 msgid "<a %s>Reconnect</a>" msgstr "<a %s>Volver a conectar</a>" #: templates/help.php:15 msgid "https://support.ecwid.com/hc/en-us/search" msgstr "https://support.ecwid.com/hc/en-us/search" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:73 msgid "Browse by Category" msgstr "Buscar por categoría" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:15 msgid "Store Root Categories" msgstr "Categorías raíz de la tienda" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:14 msgid "Adds root categories list to the sidebar to let your customers navigate the store." msgstr "Añade la lista de categorías raíz a la barra lateral para que sus clientes puedan desplazarse por la tienda." #: templates/admin/welcome-connection-message.php:25 msgid "To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission." msgstr "Para vender utilizando %1$s, debe permitir que WordPress acceda al complemento %1$s. El botón «Conectar» lo redirigirá a su cuenta de %1$s donde puede otorgar el permiso." #: templates/admin-timeout.php:11 msgid "Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">our customer support team</a>." msgstr "Nuestro equipo ya está trabajando en este asunto. Actualice la página en unos minutos. Si el problema persiste, comuníquese con <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">nuestro equipo de atención al cliente</a>." #: templates/admin-timeout.php:9 msgid "Sorry we're having technical difficulties." msgstr "Le pido disculpas por las dificultades técnicas que estamos experimentando." #: includes/class-ecwid-floating-minicart.php:153 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:143 msgid "Top right" msgstr "Arriba a la derecha" #: includes/class-ecwid-floating-minicart.php:152 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:138 msgid "Bottom right" msgstr "Abajo a la derecha" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:135 #: includes/class-ecwid-customizer.php:110 msgid "Position" msgstr "Posición" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:20 msgid "Adds a shopping cart widget to the top right corner of your site." msgstr "Añada un «widget» de carrito de compras en la esquina superior derecha de su sitio web." #: templates/help.php:215 msgid "You can send a new request here." msgstr "Puede enviar una nueva solicitud aquí." #: templates/help.php:214 msgid " Thank you very much for contacting us! We will get back to you shortly." msgstr " ¡Muchas gracias por ponerse en contacto con nosotros! Nos pondremos en contacto con usted en breve." #: templates/help.php:213 msgid "Your email has been sent" msgstr "Se ha enviado su correo electrónico" #: templates/help.php:207 msgid "Send message failed" msgstr "Ocurrió un error al enviar el mensaje" #: templates/help.php:196 msgid "Send Message" msgstr "Enviar mensaje" #: templates/help.php:193 msgid "Type in your message here" msgstr "Escriba su mensaje aquí" #: templates/help.php:192 msgid "Subject" msgstr "Asunto" #: templates/help.php:186 msgid "Send a message to our support team" msgstr "Envíe un mensaje a nuestro equipo de asistencia" #: templates/help.php:177 msgid "Still have questions about Ecwid? Let us know!" msgstr "¿Todavía tiene preguntas acerca de Ecwid? ¡Háganoslo saber!" #: templates/help.php:176 msgid "Contact us" msgstr "Póngase en contacto con nosotros" #: templates/help.php:33 msgid "Frequently Asked Questions" msgstr "Preguntas frecuentes" #: templates/help.php:21 msgid "Search the Knowledge Base" msgstr "Buscar en la base de conocimientos" #: templates/help.php:17 msgid "E.g. How to set up shipping" msgstr "Por ejemplo, cómo establecer el envío" #: templates/help.php:11 msgid "How can we help you?" msgstr "¿Cómo podemos ayudarle?" #: includes/faq_entries.php:68 msgid "You can display your store on the site main page. Adjust the \"Reading\" settings of your site as described in our <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">Help Center.</a>" msgstr "Puede mostrar su tienda en la página principal del sitio web. Ajuste la configuración de «Lectura» de su sitio web como se describe en nuestro <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">centro de asistencia.</a>" #: includes/faq_entries.php:67 msgid "Is it possible to display my store on the site home page?" msgstr "¿Es posible mostrar mi tienda en la página de inicio del sitio web?" #: includes/faq_entries.php:61 msgid "To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">How to use it.</a>" msgstr "Para mostrar un solo producto en una página aparte o en una entrada de blog de su sitio web, utilice el código corto <b>[ecwid_product]</b>. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">Cómo utilizarlo</a>" #: includes/faq_entries.php:60 msgid "How to add a single product with the add to bag button to the site pages?" msgstr "¿Cómo añadir un solo producto con el botón de «añadir a la bolsa» en las páginas del sitio web?" #: includes/faq_entries.php:55 msgid "To create sitemap for your Wordpress site we suggest using <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> or <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">paid Ecwid users</a>." msgstr "Para crear un «Mapa del sitio» para su sitio web de Wordpress, le sugerimos que utilice los  complementos <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> o <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>. Estos complementos son totalmente compatibles con Ecwid y permiten generar un mapa del sitio que contiene enlaces a categorías y páginas de productos, por lo que las páginas de la tienda se indexarán más rápido. Tenga en cuenta que esta opción solo está disponible para los <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">usuarios de pago de Ecwid</a>." #: includes/faq_entries.php:54 msgid "How do I put my products in the sitemap?" msgstr "¿Cómo pongo mis productos en el mapa del sitio?" #: includes/faq_entries.php:48 msgid "You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open \"Appearance > Menus\" in your WordPress control panel and add the \"Store with Categories Menu\" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site." msgstr "Puede añadir el menú de categorías de la tienda al menú de su sitio web para ayudar a sus clientes a navegar fácilmente por su sitio web. Simplemente abra «Apariencia > Menús» en el panel de WordPress y añada el elemento «Tienda con menú de categorías» al menú de su sitio web. Aparecerá automáticamente un menú desplegable que contendrá las categorías de su tienda en su sitio web." #: includes/faq_entries.php:47 msgid "How do I add store categories to the site menu?" msgstr "¿Cómo puedo añadir categorías de tiendas al menú del sitio web?" #: includes/faq_entries.php:38 msgid "How much does Ecwid cost?" msgstr "¿Cuánto cuesta Ecwid?" #: includes/faq_entries.php:30 msgid "You can add product search box, cart widget and more on the <a href=\"%s\">\"Appearance / Widgets page\"</a> here in your site admin. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">More details.</a>" msgstr "Puede añadir un cuadro de búsqueda de productos, un «widget» de carrito y más desde la <a href=\"%s\">«Página de apariencia y widgets»</a> que se encuentra aquí en el administrador de su sitio web. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">Más detalles.</a>" #: includes/faq_entries.php:28 msgid "How can I add a cart widget to my site sidebar?" msgstr "¿Cómo puedo añadir un «widget» de carrito de compras a la barra lateral de mi sitio web?" #: includes/faq_entries.php:21 msgid "You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">More details.</a>" msgstr "Puede añadir su tienda en línea a su página empresarial de Facebook (no se necesitan complementos). Ecwid sincronizará automáticamente los productos, clientes, pedidos e inventario entre su tienda en línea de WordPress y Facebook. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">Más detalles.</a>" #: includes/faq_entries.php:20 msgid "How to set up a storefront on Facebook with Ecwid?" msgstr "¿Cómo crear una tienda en Facebook con Ecwid?" #: includes/faq_entries.php:13 msgid "Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">More details.</a>" msgstr "Ecwid ofrece aplicaciones móviles gratuitas para iOS y Android para que pueda gestionar su tienda y vender donde y cuando quiera. Escanee productos, supervise el inventario, gestione las ventas y acepte pagos utilizando su dispositivo móvil como una estación de punto de venta. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">Más detalles.</a>" #: includes/faq_entries.php:12 msgid "How can I manage my store from a mobile device?" msgstr "¿Cómo puedo gestionar mi tienda desde un dispositivo móvil?" #: includes/faq_entries.php:6 msgid "Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">More details.</a>" msgstr "Ecwid cuenta con la certificación PCI DSS Nivel 1, que es el estándar de oro para las soluciones de comercio electrónico en todo el mundo. Esto significa que no tendrá problemas de cumplimiento bancario cuando venda en línea con Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">Más detalles.</a>" #: includes/faq_entries.php:5 msgid "How secure is this plugin? Is my store PCI DSS compliant?" msgstr "¿Qué tan seguro es este complemento? ¿Mi tienda cumple con el PCI DSS?" #: includes/class-ecwid-nav-menus.php:32 msgid "Ecwid Menu Item" msgstr "Elemento del menú de Ecwid" #: includes/class-ecwid-admin.php:179 includes/class-ecwid-admin.php:180 msgid "Help" msgstr "Ayuda" #: templates/admin-footer.php:27 msgid "Want to connect another %s store?" msgstr "¿Desea conectar otra tienda de %s?" #: templates/admin-footer.php:17 msgid "Questions?" msgstr "¿Tiene alguna pregunta?" #: templates/admin-footer.php:6 msgid "Manage Store on iPhone, iPad or Android" msgstr "Gestione la tienda desde iPhone, iPad o Android" #: includes/class-ecwid-message-manager.php:254 msgid "Complete Setup" msgstr "Completar configuración" #: includes/class-ecwid-message-manager.php:253 msgid "Complete setup and start selling" msgstr "Complete la configuración y comience a vender" #: includes/class-ecwid-message-manager.php:242 msgid "Greetings! Your %s plugin is now active." msgstr "¡Enhorabuena! Su complemento de %s ya está activo." #: templates/debug.php:12 msgid "Download log file" msgstr "Descargar archivo de registro" #: templates/help.php:67 includes/oembed.php:75 includes/oembed.php:104 msgid "See more" msgstr "Ver más" #: ecwid-shopping-cart.php:1051 msgid "I have a problem with my %s store" msgstr "Tengo un problema con mi tienda de %s" #: includes/class-ecwid-message-manager.php:55 msgid "Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: \"The Wordpress function wp_remote_post() failed to connect a remote server because of some error: \"%s\". Seems like HTTP POST requests are disabled on this server\". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>." msgstr "Lo siento, hay un problema. Se supone que esta página muestra el panel de control de su tienda; sin embargo, este sitio web de Wordpress no parece poder conectarse al servidor de Ecwid para mostrar el panel de su tienda aquí. Es probable que esto se deba a una mala configuración del servidor; su proveedor de alojamiento web puede solucionarlo. Aquí hay una descripción más técnica del problema, la cual puede enviarle a su proveedor de alojamiento web: «La función de Wordpress wp_remote_post() no pudo conectarse a un servidor remoto debido al error: “%s”; parece que las solicitudes HTTP POST están inhabilitadas en este servidor». <br /><br />No dude en ponerse en contacto con nosotros en <a %s>wordpress@ecwid.com</a> y le ayudaremos a comunicarse con su proveedor de alojamiento web para pedirle que solucione el problema. <br /><br /> Mientras tanto, para gestionar su tienda, puede utilizar el panel de control web de Ecwid en <a %s>my.ecwid.com</a>. Su escaparate virtual está funcionando bien; puede echarle un vistazo aquí: <a %s>%s</a>." #: templates/store-popup.php:249 msgid "Open store dashboard" msgstr "Abrir el panel de la tienda" #: templates/store-popup.php:12 templates/store-popup.php:27 msgid "Store elements" msgstr "Elementos de la tienda" #: templates/reconnect-sso.php:10 msgid "Re-connect to Enable Control Panel" msgstr "Vuélvase a conectar para activar el panel de control" #: templates/reconnect-sso.php:8 msgid "Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page." msgstr "Gestione productos, supervise las ventas y ajuste la configuración: <nobr>todo sin</nobr> salir de esta página." #: templates/reconnect-sso.php:7 msgid "Your store Control Panel. Right here in WordPress." msgstr "Panel de control de su tienda. Aquí mismo en WordPress." #: ecwid-shopping-cart.php:2114 msgid "Orders" msgstr "Pedidos" #: includes/class-ecwid-nav-menus.php:168 ecwid-shopping-cart.php:2118 msgid "The store top-level categories are automatically added to this drop-down menu" msgstr "Las categorías de alto nivel de la tienda se añaden automáticamente a este menú desplegable" #: includes/class-ecwid-nav-menus.php:167 ecwid-shopping-cart.php:2117 msgid "Done" msgstr "Hecho" #: includes/class-ecwid-nav-menus.php:166 ecwid-shopping-cart.php:2116 msgid "Refresh categories list" msgstr "Actualizar la lista de categorías" #: includes/class-ecwid-nav-menus.php:165 msgid "Store Page" msgstr "Página de la tienda" #: includes/class-ecwid-nav-menus.php:319 msgid "Add to Menu" msgstr "Añadir al menú" #: includes/class-ecwid-nav-menus.php:316 msgid "Select All" msgstr "Seleccionar todo" #: includes/class-ecwid-nav-menus.php:369 msgid "Store with Categories Menu" msgstr "Tienda con menú de categorías" #: includes/class-ecwid-nav-menus.php:352 #: includes/class-ecwid-nav-menus.php:355 msgid "My Account" msgstr "Mi cuenta" #: includes/class-ecwid-nav-menus.php:335 #: includes/class-ecwid-floating-minicart.php:135 #: includes/class-ecwid-admin-storefront-page.php:279 msgid "Cart" msgstr "Carrito" #: includes/class-ecwid-admin.php:87 includes/class-ecwid-admin.php:88 #: includes/class-ecwid-products.php:228 ecwid-shopping-cart.php:2112 msgid "Products" msgstr "Productos" #: includes/class-ecwid-admin.php:79 includes/class-ecwid-admin.php:80 msgid "Sales" msgstr "Ventas" #: ecwid-shopping-cart.php:1119 msgid "Report a problem with the store" msgstr "Informar un problema con la tienda" #: ecwid-shopping-cart.php:1036 msgid "%s plugin doesn't work well with my \"%s\" theme" msgstr "El complemento %s no funciona bien con mi tema «%s»" #: templates/admin/welcome-connection-message.php:22 #: templates/admin/welcome-connection-message.php:28 msgid "Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL." msgstr "Parece que su sitio web no admite solicitudes POST remotas, las cuales son necesarias para que la API de %s funcione. Comuníquese con su proveedor de alojamiento web para habilitar cURL." #. Description of the plugin msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up." msgstr "Ecwid es un carrito de compras gratuito con todas las funciones. Se puede integrar fácilmente con cualquier blog de Wordpress y se configura en menos de 5 minutos." #. Plugin URI of the plugin msgid "http://www.ecwid.com?partner=wporg" msgstr "http://www.ecwid.com?partner=wporg" #: templates/store-svg.php:12 msgid "Demo Store" msgstr "Tienda de demostración" #: templates/store-svg.php:9 msgid "Your store will be shown here!" msgstr "¡Su tienda se mostrará aquí!" #: templates/product-popup.php:248 templates/store-popup.php:256 msgid "Update" msgstr "Actualizar" #: templates/store-popup.php:253 msgid "Insert into page" msgstr "Insertar en la página" #: templates/store-popup.php:246 msgid "Demo store" msgstr "Tienda de demostración" #: templates/store-popup.php:80 msgid "Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>" msgstr "Además, puede añadir controles de la tienda a la barra de herramientas de su sitio web mediante <a %s>«widgets» nativos de WordPress</a>." #: templates/store-popup.php:74 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:86 msgid "Show categories" msgstr "Mostrar categorías" #: templates/store-popup.php:66 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:94 msgid "Show minicart" msgstr "Mostrar minicarrito" #: templates/store-popup.php:58 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:78 msgid "Show search" msgstr "Mostrar búsqueda" #: templates/store-popup.php:53 msgid "Product catalog will be shown automatically" msgstr "El catálogo de productos se mostrará automáticamente" #: templates/store-popup.php:52 msgid "Choose widgets to show" msgstr "Elija los «widgets» a mostrar" #: templates/admin/welcome-create.php:7 msgid "Connect your store" msgstr "Conecte su tienda" #: templates/admin/welcome-no_oauth.php:6 #: templates/importer/import-no-token.tpl.php:6 #: includes/class-ecwid-message-manager.php:291 msgid "Connect" msgstr "Conectar" #: templates/admin/legacy-connect.tpl.php:68 msgid "Save and connect your %s store to the site" msgstr "Guarde y conecte su tienda de %s al sitio web" #: templates/admin/legacy-connect.tpl.php:59 msgid "Enter your Store ID here:" msgstr "Introduzca el ID de su tienda aquí:" #: templates/admin/legacy-connect.tpl.php:52 msgid "Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the \"Dashboard\" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration." msgstr "El ID de la tienda es un identificador único de cualquier tienda de %1$s, el cual consta de varios dígitos. Puede encontrarlo en la página «Panel» del panel de control de %1$s. El ID de la tienda se enviará en el correo electrónico de bienvenida después del registro." #: templates/admin/legacy-connect.tpl.php:50 msgid "Find your Store ID" msgstr "Encuentre el ID de su tienda" #: templates/admin/legacy-connect.tpl.php:46 msgid "You will be able to sign up through your existing Google, Facebook or PayPal profiles as well." msgstr "También podrá registrarse a través de sus perfiles existentes de Google, Facebook o PayPal." #: templates/admin/legacy-connect.tpl.php:42 msgid "I already have an account, sign in" msgstr "Ya tengo una cuenta, iniciar sesión" #: templates/admin/legacy-connect.tpl.php:35 msgid "Create a new %s account which you will use to manage your store and inventory. The registration is free." msgstr "Cree una nueva cuenta de %s que utilizará para gestionar su tienda e inventario. El registro es gratuito." #: templates/admin/legacy-connect.tpl.php:24 msgid "The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps." msgstr "El primer paso para abrir su negocio en línea: <br />añadamos una tienda a su sitio web de WordPress en <strong>3</strong> simples pasos." #: templates/admin/legacy-connect.tpl.php:21 msgid "Thank you for choosing %s to build your online store" msgstr "Gracias por elegir %s para construir su tienda en línea" #: templates/admin/simple-dashboard.php:58 msgid "Open control panel" msgstr "Abrir el panel de control" #: templates/admin/simple-dashboard.php:42 msgid "Your %s store is connected<br /> to your WordPress website" msgstr "Su tienda de %s está conectada<br /> a su sitio web de WordPress" #: templates/admin/simple-dashboard.php:39 msgid "Greetings!" msgstr "¡Saludos!" #: templates/admin/simple-dashboard.php:34 msgid "Your %s store is now connected<br /> to your WordPress website" msgstr "Su tienda de %s ahora está conectada<br /> a su sitio web de WordPress" #: templates/admin/simple-dashboard.php:31 msgid "Congratulations!" msgstr "¡Enhorabuena!" #: templates/admin/simple-dashboard.php:18 msgid "Disconnect store" msgstr "Desconectar tienda" #: templates/admin/legacy-connect.tpl.php:65 #: templates/admin/simple-dashboard.php:14 templates/store-popup.php:244 #: templates/store-svg.php:14 #: includes/integrations/class-ecwid-integration-gutenberg.php:104 #: includes/gutenberg/class-ecwid-gutenberg.php:130 msgid "Store ID" msgstr "ID de la tienda" #: templates/admin/welcome-connection-message.php:15 msgid "Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again." msgstr "Error de conexión: después de hacer clic en el botón, debe iniciar sesión y otorgar los permisos para poder utilizar nuestro complemento. Inténtelo de nuevo." #: templates/admin/legacy-connect.tpl.php:57 #: templates/admin/welcome-no_oauth.php:3 msgid "Enter your Store ID" msgstr "Introduzca el ID de su tienda" #: templates/store-popup.php:221 msgid "Default view mode on search results" msgstr "Modo de vista predeterminado en los resultados de búsqueda" #: templates/store-popup.php:214 templates/store-popup.php:232 msgid "Table" msgstr "Tabla" #: templates/store-popup.php:211 templates/store-popup.php:229 msgid "List" msgstr "Lista" #: templates/store-popup.php:208 templates/store-popup.php:226 msgid "Grid" msgstr "Cuadrícula" #: templates/store-popup.php:204 msgid "Default view mode on product pages" msgstr "Modo de vista predeterminado en las páginas de productos" #: templates/store-popup.php:184 msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products." msgstr "Aquí puede gestionar cuántos productos se mostrarán por página. Estas opciones definen valores máximos. Si no hay suficiente espacio para mostrar todas las columnas de productos, %s adaptará el número de columnas para mantener todos los productos." #: templates/store-popup.php:169 msgid "Table view" msgstr "Vista de tabla" #: templates/store-popup.php:152 msgid "List view" msgstr "Vista de lista" #: templates/store-popup.php:125 msgid "Grid view" msgstr "Vista de cuadrícula" #: templates/store-popup.php:123 msgid "Number of products per page" msgstr "Número de productos por página" #: templates/store-popup.php:191 msgid "Number of categories per row" msgstr "Número de categorías por fila" #: templates/advanced-settings.php:98 msgid "Save changes" msgstr "Guardar cambios" #: includes/class-ecwid-product-browser.php:202 msgid "Default category ID" msgstr "ID de categoría predeterminada" #: templates/store-popup.php:98 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:127 #: includes/integrations/class-ecwid-integration-gutenberg.php:427 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:56 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:248 msgid "Store root category" msgstr "Categoría raíz de la tienda" #: templates/store-popup.php:90 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:101 msgid "Category shown by default" msgstr "Categoría mostrada por defecto" #: templates/admin-message.php:47 msgid "Never show this message again" msgstr "Nunca mostrar este mensaje otra vez" #: templates/product-popup.php:194 lib/ecwid_platform.php:209 #: js/gutenberg/blocks.build.js:1 msgid "Price" msgstr "Precio" #: includes/class-ecwid-store-editor.php:75 #: includes/integrations/class-ecwid-integration-gutenberg.php:102 #: includes/gutenberg/class-ecwid-gutenberg.php:128 msgid "Edit Appearance" msgstr "Editar apariencia" #: includes/class-ecwid-store-editor.php:60 msgid "Edit Store" msgstr "Editar tienda" #: templates/store-popup.php:11 templates/store-popup.php:21 #: includes/class-ecwid-store-editor.php:52 msgid "Add Store" msgstr "Añadir tienda" #: includes/class-ecwid-message-manager.php:261 msgid "Back to Store Settings" msgstr "Regresar a la configuración de la tienda" #: includes/class-ecwid-message-manager.php:252 msgid "Your store is almost ready!" msgstr "¡Su tienda ya está casi lista!" #: includes/class-ecwid-message-manager.php:243 msgid "Take a few simple steps to complete store setup" msgstr "Siga unos sencillos pasos para completar la configuración de la tienda" #: includes/widgets/class-ecwid-widget-products-base.php:205 msgid "Number of products to show" msgstr "Número de productos para mostrar" #: includes/widgets/class-ecwid-widget-recently-viewed.php:89 msgid "Store Link Title" msgstr "Título del enlace de la tienda" #: templates/product-popup.php:183 includes/class-ecwid-product-browser.php:249 #: includes/widgets/class-ecwid-widget-products-base.php:199 #: js/gutenberg/blocks.build.js:1 msgid "Title" msgstr "Título" #: includes/widgets/class-ecwid-widget-recently-viewed.php:69 #: includes/widgets/class-ecwid-widget-recently-viewed.php:91 msgid "You have not viewed any product yet. Open store." msgstr "Aún no ha visto ningún producto. Abra la tienda." #: includes/widgets/class-ecwid-widget-recently-viewed.php:11 msgid "Recently Viewed Products" msgstr "Productos vistos recientemente" #: includes/widgets/class-ecwid-widget-recently-viewed.php:12 msgid "Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop." msgstr "Muestra una lista de productos vistos recientemente por el cliente para volver fácilmente a los productos que vieron en su tienda." #: includes/widgets/class-ecwid-widget-store-link.php:35 msgid "Text" msgstr "Texto" #: includes/themes/class-ecwid-theme-twentyseventeen.php:48 #: includes/themes/class-ecwid-theme-twentyseventeen.php:54 #: includes/themes/class-ecwid-theme-twentyfifteen.php:34 #: includes/themes/class-ecwid-theme-twentyfifteen.php:40 #: includes/themes/class-ecwid-theme-twentysixteen.php:36 #: includes/themes/class-ecwid-theme-twentysixteen.php:42 #: includes/widgets/class-ecwid-widget-store-link.php:31 msgid "Shop" msgstr "Tienda" #: includes/widgets/class-ecwid-widget-store-link.php:10 msgid "Store Page Link" msgstr "Enlace a la página de la tienda" #: includes/widgets/class-ecwid-widget-store-link.php:9 msgid "Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site." msgstr "Muestra un enlace a la página de la tienda en la barra lateral para que el cliente acceda rápidamente a su tienda desde cualquier página del sitio web." #: includes/widgets/class-ecwid-widget-vcategories.php:9 msgid "Store Categories" msgstr "Categorías de la tienda" #: includes/widgets/class-ecwid-widget-vcategories.php:8 msgid "Adds vertical categories block to let the customer navigate your store." msgstr "Añade un bloque de categorías verticales para permitir que el cliente navegue por su tienda." #: includes/class-ecwid-nav-menus.php:344 #: includes/class-ecwid-nav-menus.php:347 #: includes/widgets/class-ecwid-widget-search.php:13 msgid "Product Search" msgstr "Búsqueda de productos" #: includes/widgets/class-ecwid-widget-search.php:12 msgid "Displays a simple search box for your customers to find a product in your store" msgstr "Muestra un cuadro de búsqueda simple para que sus clientes encuentren un producto en su tienda." #: includes/widgets/class-ecwid-widget-minicart-miniview.php:8 msgid "Adds a compact cart widget for customer to see the products they added to the cart." msgstr "Añade un «widget» de carrito compacto para que el cliente vea los productos que se han añadido al carrito." #: includes/widgets/class-ecwid-widget-minicart.php:41 #: includes/widgets/class-ecwid-widget-random-product.php:67 #: includes/widgets/class-ecwid-widget-search.php:46 #: includes/widgets/nsf-minicart-editor.tpl.php:50 #: includes/widgets/class-ecwid-widget-minicart-miniview.php:41 #: includes/widgets/class-ecwid-widget-vcategories.php:39 #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:76 msgid "Title:" msgstr "Título:" #: includes/class-ecwid-nav-menus.php:338 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:20 msgid "Shopping Cart" msgstr "Carrito de compras" #: includes/widgets/class-ecwid-widget-minicart.php:8 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:19 msgid "Adds a cart widget for customer to see the products they added to the cart." msgstr "Añade un «widget» de carrito para que el cliente vea los productos que se han añadido al carrito." #: includes/widgets/class-ecwid-widget-badge.php:51 #: includes/widgets/class-ecwid-widget-badge.php:63 msgid "Ecwid e-commerce widgets" msgstr "«Widget» de comercio electrónico de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:45 #: includes/widgets/class-ecwid-widget-badge.php:57 msgid "Ecwid shopping cart" msgstr "Carrito de compras de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:39 #: includes/widgets/class-ecwid-widget-badge.php:75 msgid "Ecwid free shopping cart" msgstr "Carrito de compras gratuito de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:33 #: includes/widgets/class-ecwid-widget-badge.php:69 msgid "Ecwid ecommerce solution" msgstr "Solución de comercio electrónico de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:21 #: includes/widgets/class-ecwid-widget-badge.php:27 msgid "Ecwid shopping cart widget" msgstr "«Widget» de carrito de compras de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:14 msgid "Ecwid Badge" msgstr "Distintivo de Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:13 msgid "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid." msgstr "¿Le gusta Ecwid y quiere ayudarlo a crecer? Puede añadir este elegante distintivo «Powered by Ecwid» en su sitio web para mostrarles a sus visitantes que es un usuario orgulloso de Ecwid." #: ecwid-shopping-cart.php:2791 msgid "Recommendations for Your Online Store" msgstr "Recomendaciones para su tienda en línea" #: includes/class-ecwid-admin.php:528 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:77 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:87 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:95 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:103 #: ecwid-shopping-cart.php:2056 msgid "Settings" msgstr "Configuraciones" #: includes/class-ecwid-admin.php:165 msgid "Advanced" msgstr "Avanzado" #: includes/class-ecwid-admin.php:164 msgid "Advanced settings" msgstr "Configuraciones avanzadas" #: templates/product-popup.php:206 templates/store-popup.php:14 #: templates/store-popup.php:34 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:44 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:78 #: js/gutenberg/blocks.build.js:1 msgid "Appearance" msgstr "Apariencia" #: includes/class-ecwid-admin.php:28 includes/class-ecwid-admin.php:59 #: includes/class-ecwid-admin.php:459 ecwid-shopping-cart.php:2110 msgid "Dashboard" msgstr "Panel" #: includes/class-ecwid-admin.php:57 ecwid-shopping-cart.php:2056 msgid "Setup" msgstr "Configuración" #: includes/class-ecwid-admin.php:47 msgid "%s shopping cart settings" msgstr "Configuraciones del carrito de compras de %s" #: includes/class-ecwid-nav-menus.php:132 #: includes/class-ecwid-nav-menus.php:361 #: includes/class-ecwid-nav-menus.php:364 #: includes/class-ecwid-nav-menus.php:372 includes/class-ecwid-admin.php:206 #: includes/class-ecwid-admin.php:207 includes/class-ecwid-admin.php:220 #: includes/class-ecwid-admin.php:221 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:63 #: includes/class-ecwid-admin-storefront-page.php:257 #: ecwid-shopping-cart.php:1657 msgid "Store" msgstr "Tienda" #: ecwid-shopping-cart.php:1306 msgid "<a %s>Online store powered by %s</a>" msgstr "<a %s>Tienda en línea con tecnología de %s</a>" #: includes/class-ecwid-admin.php:489 msgid "Sell on Facebook" msgstr "Vender en Facebook" #: templates/admin/simple-dashboard.php:48 ecwid-shopping-cart.php:1094 msgid "Visit storefront" msgstr "Visitar escaparate virtual" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/languages/ecwid-shopping-cart-fr_FR.mo������������������������������������������0000644�����������������00000227445�15122273603�0017600 0����������������������������������������������������������������������������������������������������ustar�00�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������e�����D��5��l&������@3�����A3��H���Y3�����3�����3�����3�����3�����3�� ���3��.���3�� ���4�� ��� 4�����,4�����J4�����e4����4�����g6��B���6�����6�����6�����6�����7��$���97�����^7�����r7�����7�����7��/���r8�� ���8�� ���8�����8�����8�����8�����8�����9��#���%9�� ���I9�����T9�����o9�����~9�� ���9�� ���9��>���9��"��� :�����-:�����:��k���:��K���h;��S���;��A���<��R���J<��G���<��4���<�� ���=�����&=�����/=��&���A=�����h=��T���{=�� ���=�����=�����=�����=�����>�����>�����#>�� ���*>�����8>�����?>�� ���G>�� ���S>�� ���`>�����l>�����>��4���>�� ���>�����>�����>�����>��X���>�� ���V?�����`?��/���g?��,���?�����?�����?�����?�� ���?�� ���?�����?�� ���?����� @�����@�����,@�����A@�����[@�����{@�����@�����@�����@�����@�����@�����@��.���@�����A�����5A��D���LA�����A�����A�� ���A�� ���A�����A�����A�����A����� B����� B��x���3B�����B�� ���B�����B�� ���B�����B�����C�����C�����*C�� ���=C�����JC��5���\C��h���C�����C�����D�� ���D�� ���D��5���D�����E�� ���E��x���%E��i���E�����F�����F�����4F�����QF�����bF�����F�� ���F�����F�����G�����$G��"���7G��#���ZG��/���~G�� ���G�� ���G�����G�����G�����G�����G�����H�����H�����-H�����?H��!���WH�����yH�����H��6���H��!���H�����H��*���I��%���:I�����`I��'���vI�����I�����I��,���I�����I��q���J��s���yJ��#���J��H���K��O���ZK��1���K��s���K�� ���PL�����\L��v���L�����uM��$���zM�����M�����M�����M�� ���M�����M�����M����� N��s���N�����N�����N�����N��=��N�����P����P����Q�����R�����R����� S�����S�� ��� S�� ���.S�� ���;S�� ���FS�� ���TS�����^S�����S�����T�����T�����T��B���T��$���)U�����NU�����VU�����mU�� ���U�����U�����U�� ���U�����U�� ���U��(���U�����V�� ���V�����V�����#V��.���V�����W��D���W��h���%X�����X��_���X��C���X�����7Y�����IY��/���_Y��/���Y�����Y��/���Y��(���Z�����-Z��9���GZ��I���Z��2���Z��"���Z��:���![�����\[��"���t[��!���[�����[�����[�����[�����[��$��� \��*���1\��B���\\�����\�� ���\�����\�� ���\�����\��+���\�����]��-���,]��P���Z]�����]��#���]��'���]��)��� ^�� ���7^�����X^��%���g^��+���^��+���^�����^�����_�����_�����!_�� ���2_��$���?_��9���d_��%���_��:���_�����_�����`�����`�����&`�����(`�� ���=`�� ���K`�� ���Y`�� ���c`�����o`�����`�����`�� ���`�����`�����`�� ���`�����`�����`�� ���`�����`�����oa�����a�����a��S���a�����a��'���a��[���'b�� ���b�����b�� ���b�����b�� ���b�� ���b�����b�����b�� ���b��9���b�����c�� ���:c�� ���Dc�� ���Nc�� ���Xc�����bc�����wc��I���Jd�����d�����d�����d�� ���d�� ���d�� ���e�����e�� ��� e�����-e�����@e�����Ue�����]e�����de�����je�����if��#���Og�����sg�� ���g�����g�����lh�����th�� ���i�� ���i�����i�����%i��O��*i��4���zj�����j�� ���j�� ���j�����j�����j�� ���j�����j�� ����k����� k�����k�����'k�����:k�����Rk�� ���jk�����vk�����k�����k�����k��+���k�����k�� ��� l�����l�����*l�����Bl�����al�� ���xl�����l��I���l��'���l�����m�����m�����$m�����=m�����Em��#���Xm�� ���|m�����m�� ���m�����m�����m�����m��"���m�����m��%���n�� ���4n�����>n�����Vn�����en�����n�����n�����n�����n�����n�����n�����n��*���n�� ���n�����n�����n�����o�����o�����/o�� ���8o�����Co�����So�����do�����vo�� ���o��"���o�����o�����o�� ���o�����o�����o�����p����� p�����p�� ���"p�����0p��#���Kp�����op�����p�����p�����p�����p�����p��V���p�� ���Bq�� ���cq�����qq�� ���q�����q��&���q��(���q�����q�����r�� ���&r�����2r�� ���Br�� ��cr�� ���ns�����ys��(���s��*���s����s�� ���ow�� ���zw�����w�����w��.���$x�����Sx�����Yx�����jx�����x�����x�����x�����x�����x�����y�����z�����0z�� ���Az�����Lz�����\z�����rz�����z�����z�����z�����z�����z�����z�� ���z�����{�����{�����${�����4{�����I{�� ���O{��/���Z{��N���{�����{�� ���{��4���{�����|��=���|�����}��-���}�����}��%���~��M���~�������P�����H���h��P��������������� ����� ���"�����/�����A�����H�����ۀ������� ��4��E��>�������]��������l��%��^��*����*����y���ڊ��>���T�������h���5��L���������� ������������������,�����5�����<�����P�����l�����|�������������������������ԍ����������������� �����!��� ��j���B����������E��^���ŏ�����$�����,�����F�� ���V�����c������� ���������C����B����k���@���������������V�� ������0���!��^���R�������:���Ę��>��������>�����N�����j�� �����2�����?���Ù����������֚������������y�����A��������Q�����o������:��������J�����_�� �����"��������Þ��"���ߞ��H�����)���K�����u�������&�����(���ן���������������� �����4����G�����$��V���A���������������������� ���Ϣ�����ڢ��H����� ���6�� ���A�����M�����k�� �����i���������F���-�����t���������������Ҧ��-�������� �����6�����O��"��e��3�������������Ϩ��"�������������$��+���@�����l��-����������(���ʩ�������*��� ��1���6�����h��P���x��0���ɪ�������!����������b�����j��� ��O���u��s���ŭ��]���9��G��������߮������������,��������E��f���^�����ů�� ���̯�����ٯ��"�������������*�����.�����5�����E�� ���M�����W�����h�� ���y������������C������������������%�����E��o���d�� ���Ա�����߱��H�����N���8��������������������������� ���˲�� ���ղ�� �����%�����(����� ���;��.���\��$����������!��������ٳ������������������A���,��(���n��"�����c�������������5��.���M�� ���|������� ������������������ص�������!��������ζ�����ݶ��$�������� �����$�����B�����]�����z�������9�����z��������\�����3�����L�� ���^��9���l����������ƹ�����ι��}���t�������$�����-���3�����a�����y�����-�����A�����Q��(���h��"�����7�����8�����1���%�����W�����q�� ������������������ý�����۽������������ ���-��/���N�� ���~�������E�����*��������0��<���P��4��������¿��1���տ����������&��1���?�����q����������,��(�����T�����j���C��=�����������������������p�������7���&�� ���^�������2����� �������������������������'�����(�������������������w��B��[������������+�����J�����S�����h��������������������������������#���w��,����������Z�����6���A�����x�������&������������������������������ ���1��?���?������� ���������������;���������C��������)������������c���<������������O�����C�����!���\��=���~��9����������m��� ��^���{��>�����%�����;���?��+���{��8�����%�����"��������)�����0��'���O��3���w��9�����N�����%���4�� ���Z��#���h������������*����������=�����t���$�������$�����0�����<��� ��+���G�����s��,�����,�����*�������� �� ���*�����K�����T�����j��-���{��F�����,�����^��������|�� �������������������� ����� �������������������� ���*�����7�����F�����U�����\�����l�� ���|������� �������������h�����~�����������������-���2��o���`������������ ���������� ����� ����� ���%�����0�� ���4��K���?��!����� ����� ����� �������������������X��������k������� ����� ����� ����������$�������������%��$���D�����i�� ���q�����{��Z��������&���������� ���#����.�����7�����@������������������������%��H��������%�� ���D�� ���Q�����^�����g�����o���������������������������"������������������&�����<�� ���\��*���}��7��������������������*�����+���I�� ���u������������R�����&�����$���*�����O�����d�����|�������*���������� �������������������������5���3�����i��,����� �����#����������%�������������#�����*�����,�����0�����7�� ���G��1���S������� ���������������'������������������$�����A�����W�����q�������0�������������������������� ���-�� ���9�����G�����`�����i�����x��%����������!���������������,��������E��~���^��$������������������8��!���K��C���m��C�����*�����#��� �����D�����Z��,���t��5���� �����$�����:��� ��G���E��O���� ���������������������B�������������� �� ���!�� ���B�����c�����}�������,������������������������������������� ����� �����7�����J�����h�������"���������������������������� ����#� ���)�M���6�Z������������;�������2�L�������<�H�������;�+����a���4�����X����k����]���n������������� ������������������������G�� ��� ���� ��������n��&�n���n������s�T�������n����=�^�������$����6����H����e� ���}���������1��������������� ��������/�)���G����q����� ���� ���� ����+���������������S�s�������^�%���g����� �������� ���w�F����������z��\ ����!�$��|"����#����~$�-���C%�7���q%�[���%����&�<���&�G���V&����&����&����&� ���&�C���&�O���B'�"��'�!���(����(����)����)�W���b*�!���*�#���*� ���+�Y��� -����f-����-����-�"���-����-�"���-�H���-�)���<.����f.�#���.����.����.����.����.����.����/��������I����������������k������R��W��y����$��%���������������������������������������#�����y���R��#��������J���Z���������?���B��^��>������������������������� ��� ��3����1�����U������>�������K��q����������������������-���������������������v���8������:���/������g��d�����������������S��?�����������������������'���������,������������j��Z��������P���������W������������S���������]����������T����������� �������6�������������������r�������������c��9����������,������������������k��������������%���������������������������������������������L���"�������a����������W��t�������������������}��.������ ��$������K������G���������~���������������0������w������������E��������7����������������������������Q��������F������������������:��\�����������������O�����X��'��*��3������1������ ���������������������u������������9�����E�����������C�����������������������������?������8��a��_���b�������L������@��&������*��I��C���J�����Y���������D������������$���������;��F���������N������G������'���������������0�����@�����^��������c�����������������u����>��:��������.�����������M��j���[��S����������������4������� ������������H�������������@���������������K�����]���������P���&�������������������%���� ��c������h��X���A��������#�����������z�������3�����(����������������������������������������������Q��������e�������������-����������i���������D����p�������!��������������(������������X��5����7���������=��������������;������N���������P������������������T��������������\������Z����������������������&����� ��������� ���`�������|�����������`������������<���������e���+�������A�����=����������������������)�������Q������������������������f��!����� ���b��a���M��{�������<��7�������������������������������������H��������6��O��s���`����������9�����*���������-��}���"���������r���������0��������������{������������������������������������l��H����������v����d��/����� ��]���t���p�����2�����������d��������g������U���������C�������w���������[���l������������������������<��������� ���o���1��� ����������V��f������N�� ��E��������������������������������� �����������������������/������,��������~�����������������������!������[����n�����������_��"�����(�������2���J��x��h���_���� ��������o������M������4��=��8������������2����� ��4������������m���������������������������5��n��I���;�����)������6��L��V������������+����+��A�������������������������Y��B��F������ �������)��������m��i�����������5���^������|���z���������������������U����������x�����������\����q������������O���������������V����������b���������������������������������������Y�������������.�����D������������������B�������G��s�������������R�����T����e���������� Choose another product� Thank you very much for contacting us! We will get back to you shortly.�"In stock" label�%s�%s Blog�%s Shopping Cart�%s Store�%s Store Page�%s plugin doesn't work well with my "%s" theme�%s product�%s products�%s products and %s categories�%s products and categories�%s shopping cart settings�%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site.�%s — Advanced settings�(You will be able to confirm the changes before the actual import)�2 columns, image on the left�2 columns, image on the right�3 columns, image on the left�3 columns, image on the right�<a %s>Online store powered by %s</a>�<a %s>Reconnect</a>�<a href="admin.php?page=�<b>%s</b> categories�A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use "/shop" or "/products".�Action required: please connect your %s account�Add Product�Add Store�Add Store Page to Menu�Add a category page�Add a product page�Add a search and filters page�Add a store page�Add an Online Store to Your Website�Add border�Add cart and checkout page�Add categories�Add store page to the site menu�Add storefront (product listing)�Add to Menu�Add your %s store to the website and start selling in minutes.�Add your store to other site pages�Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href="%s" target="_blank">WordPress Settings > Reading</a>�Additional store pages�Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>�Adds a cart widget for customer to see the products they added to the cart.�Adds a compact cart widget for customer to see the products they added to the cart.�Adds a shopping cart widget to the top right corner of your site.�Adds root categories list to the sidebar to let your customers navigate the store.�Adds vertical categories block to let the customer navigate your store.�Adjust your store design to fit your business needs.�Admin Label�Advanced�Advanced settings�After import, your %s store will have �All Sales Channels�Along with the store catalog, you can add other widgets and texts to the store page.�Appearance�Apps�Available qty in stock�Back to Store Settings�Background color�Bag�Basket�Before You Go�Border�Border:�Bottom left�Bottom right�Breadcrumbs�Browse all products.�Browse by Category�Bulk import products and categories to your %s store�Button color�Buy Now�Buy Now Button�Buy now buttons�By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>.�CSS Class�CSS ID�Can you share the name of the plugin you chose?�Can you share your feedback? What was wrong?�Cancel�Cart�Cart and Checkout�Cart icon�Cart icon:�Catalog�Categories�Category�Category List Appearance�Category card layout�Category shown by default�Category thumbnail aspect ratio�Category thumbnail size�Center�Center align on a page�Change�Change store content�Choose Product�Choose product�Choose product properties to display in widget�Choose the main store page�Choose widgets to show�Click the connect button to get rights to update the product catalog�Color settings�Complete Setup�Complete setup and start selling�Configuration�Congratulations!�Connect�Connect Your Store�Connect your %s store�Connect your store�Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again.�Contact Support�Contact us�Content�Copying products and categories.�Create Cart Page�Create Category Page�Create Product Page�Create Search Page�Create Store�Create Store Page�Create a landing page featuring one of your products.�Create a new %s account which you will use to manage your store and inventory. The registration is free.�Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website.�Create new account�Create store�Current Page�Current URL slug: /<span data-ec-store-slug>%s</span>�Customer Single Sign-On�Customers�Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers.�Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout.�Customize design�Customize store appearance�Customize store page address�Customize widget�Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand.�Cyan bluish gray�Dashboard�Default category�Default category ID�Default product_ID�Default view mode on product pages�Default view mode on search results�Deleted products synchronized: %1$s out of %2$s�Demo Store�Demo store�Design�Design and content�Detect automatically�Disconnect store�Display a buy button�Display breadcrumbs�Display cart icon�Display categories menu�Display categories navigation bar�Display category page�Display footer menu�Display product page with description and a buy button�Display product with a buy button�Display search box�Display search page with filters on a side�Display shopping bag link and summary�Display shopping cart�Display shopping cart and checkout page�Display sign in link�Display sort by link�Display the shopping cart icon on site pages�Displayed product�Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site.�Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop.�Displays a list of random products.�Displays a random product from your store to attract customer attention.�Displays a simple search box for your customers to find a product in your store�Displays storefront: product listing and checkout�Displays the latest added products from your store. Show new products to returning customers to drive repeat sales.�Do not show�Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid.�Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site.�Done�Download <a href="%s">import log</a>�Download log file�Draft�E.g. How to set up shipping�Ecwid Badge�Ecwid Ecommerce�Ecwid Ecommerce Shopping Cart�Ecwid Menu Item�Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center�Ecwid e-commerce widgets�Ecwid ecommerce solution�Ecwid free shopping cart�Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">More details.</a>�Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up.�Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href="%s">TemplateMonster themes</a>�Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">More details.</a>�Ecwid shopping cart�Ecwid shopping cart widget�Edit�Edit Appearance�Edit Category�Edit Product�Edit Store�Edit URL Slug�Edit page�Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page.�Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space.�Enter your Store ID�Enter your Store ID here:�Extensions for your Store�Feature a specific store category on a separate page of your site.�Feature your products in the sidebar�Filters�Filters panel position�Find your Store ID�First Page�Frequently Asked Questions�Get %s mobile app�Go to Pages�Go to Your %s Products�Greetings!�Greetings! Your %s plugin is now active.�Grid�Grid view�Help�Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars.�Help customers find your store on the website.�Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products.�Here you can create the content that will be used within the module.�Here, we will help you uploading your product catalog to %s from another shopping cart or other sources.�Hide�Highlight products, categories, and other store pages by adding them to separate website pages.�Highlight your best sellers or new products in the website sidebar.�Horizontal indent�Horizontal thumbnails�How can I add a cart widget to my site sidebar?�How can I manage my store from a mobile device?�How can we help you?�How do I add store categories to the site menu?�How do I put my products in the sitemap?�How much does Ecwid cost?�How secure is this plugin? Is my store PCI DSS compliant?�How to add a single product with the add to bag button to the site pages?�How to set up a storefront on Facebook with Ecwid?�I already have an account, sign in�I couldn’t find a WordPress theme that goes well with %s�I found a better plugin�I have a problem using this plugin�I have a problem with my %s store�I use this WordPress theme: %s�Icon�Icon and item count�Icon, label and item count�Icon, label, item count and subtotal�Icon, label, item count, subtotal and link�If you have a moment, please let us know why you are deactivating:�Image and title on mouse over�Image feed�Image gallery layout�Image only�Import�Import Your Products From Woocommerce to %s�Import completed�Import completed. <a href="%s">Run again.</a>�Import creates new products and update the existing products with matching SKUs.�Import is in Progress�Import my products from WooCommerce�Import product catalog from WooCommerce�Import product catalog from other sources�Import products to your %s store�Import summary�Import your WooCommerce catalog to %s�Import your products from WooCommerce to %s�Import your products from Woocommerce to %s�Imported <b>%s</b> products�Importing %s of %s items�Insert�Insert into page�Instant site�Integration with search on your site�Is it possible to display my store on the site home page?�Is there a WordPress theme for Ecwid?�It's a temporary deactivation. Please do not ask me again.�Item count only�Justify�Knowledge Base�L�Label and item count�Landscape 3:2�Landscape 4:3�Last Page�Last update�Latest Products�Layout�Layout:�Learn more�Left�Light green cyan�Link color�Linked product�List�List view�Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL.�Luminous vivid amber�Luminous vivid orange�M�Make your store accessible from the site menu so your customers can easily find it.�Manage Sidebar�Manage Store on iPhone, iPad or Android�Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page.�Manage store�Manage storefront�Marketing�Mobile�My Account�My Profile�My Sales�Name�Navigation�Need help importing your products from WooCommerce to %s?�Never show this message again�Next Page�Next page�No Thanks�No border�Not synchronized yet�Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The "Show on store pages" and "Show when empty" options will apply to the cart widget on site when published�Nothing found for <span class="empty-page__term">"{{ data.term }}"</span>�Number of categories per row�Number of products per page�Number of products to show�On the left�On the right�Online Store�Online Store Apps�Online store�Open control panel�Open store dashboard�Options�Orders�Other�Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target="_blank" href="%s">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans.�Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">our customer support team</a>.�Page with that name already exists.�Pale cyan blue�Pale pink�Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>�Payment�Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers.�Pick Category�Pick Product�Picture�Pill�Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target="_blank">"Billing & Plans"</a></nobr> page in your Ecwid store control panel.�Please subscribe to a paid plan to get this feature.�Plugins for Ecwid�Portrait 2:3�Portrait 3:4�Position�Preview�Previous Page�Price�Price color�Product�Product Card Large�Product Card Small�Product List Appearance�Product Page Appearance�Product SKU�Product Search�Product Search Box�Product Search and filters�Product card text align�Product catalog will be shown automatically�Product page layout�Product price�Product quantity�Product sidebar content�Product thumbnail aspect ratio�Product thumbnail size�Product title�Products�Products are successfully synchronized. The product pages are up to date.�Products synchronized: %1$s out of %2$s�Promote your store�Provide access.�Provided by <a %s>%s</a>�Publish�Publish Store Page�Publish the page to use this option�Published�Quantity�Questions?�Random Product�Random Products�Rate %s at WordPress.org�Re-connect to Enable Control Panel�Recently Viewed Products�Recommendations for Your Online Store�Rectangle�Refresh categories list�Register at %s�Report a problem with the store�Reports�Right�S�SKU�Sales�Sales channels�Save�Save and connect your %s store to the site�Save changes�Search�Search and Filters�Search products�Search the Knowledge Base�See more�Select All�Select category�Selected Product�Selected category�Sell on Facebook�Send Message�Send a message to our support team�Send message failed�Set Up Your Store�Set manually�Set up your store�Settings�Setup�Shipping & Pickup�Shop�Shopping Cart�Shopping Cart (deprecated)�Shopping Cart Floating (deprecated)�Shopping Cart Icon�Shopping Cart Mini (deprecated)�Shopping Cart Widget�Show�Show additional image on hover�Show categories�Show customers that they can use a search and filters to find desired products faster.�Show description under the image�Show minicart�Show on all pages�Show on hover�Show on store pages�Show price inside the "Buy now" button�Show price inside the «Buy now» button�Show product card border�Show product thumbnails�Show search�Show when empty�Show your store on the home page�Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again.�Small icon�Small icon and item count�Some of the items could not be imported.�Sorry we're having technical difficulties.�Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: "The Wordpress function wp_remote_post() failed to connect a remote server because of some error: "%s". Seems like HTTP POST requests are disabled on this server". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>.�Square 1:1�Start Import�Status�Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store.�Still have questions about Ecwid? Let us know!�Store�Store Categories�Store Categories Menu�Store Category Page�Store Front Page�Store Home Page�Store ID�Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the "Dashboard" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration.�Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>.�Store Link Title�Store Navigation�Store Page�Store Page Link�Store Root Categories�Store appearance�Store elements�Store management�Store page content�Store page on your site�Store root category�Store with Categories Menu�Storefront�Subject�Submit & Deactivate�Switch to draft�Synchronize products�Table�Table view�Take a few simple steps to complete store setup�Take advantage of powerful apps and extensions designed to enhance your store.�Text�Text color�Thank you for choosing %s to build your online store�The block is hidden because you don't have categories in your store. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Add categories.</a>�The category that is shown by default on the Store Front Page�The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps.�The plugin doesn't support the feature I want�The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href="%s" target="_blank">adjust the cart icon appearance</a>.�The store is not visible on your site�The store top-level categories are automatically added to this drop-down menu�Themes for Ecwid�This import will copy your WooCommerce products and categories to your %s store.�This is a demo store. Create your store to see your store products here.�This will change the label of the module in the builder for easy identification.�Title�Title on image�Title only�Title or SKU�Title under image�Title:�To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings.�To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>.�To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>�To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the "Add product" dialog.�To create sitemap for your Wordpress site we suggest using <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> or <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target="_blank" href="https://www.ecwid.com/pricing">paid Ecwid users</a>.�To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission.�To enable this feature, the plugin needs a permission to read your store product information.�To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">How to use it.</a>�To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>�To manage your store, go to <a %s>the Store Dashboard page</a>�To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission.�To show your storefront instead of the demo store, connect your existing %s account or create a new one.�To start selling, add a page to your site where the storefront will display.�Top left�Top right�Try another search.�Type in your message here�URL Slug�Update�Update your catalog�Upgrade to get this feature�Vertical indent�Vertical thumbnails�Very dark gray�Very light gray�View Store Page�View demo store page�View store page�Visit storefront�Vivid cyan blue�Vivid green cyan�Vivid red�Want to connect another %s store?�Warning: some of your online store features are disabled. Please contact your hosting provider to resolve.�We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?�We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you.�We're synchronizing your products. This may take a few minutes. Please do not reload the page.�Website�What feature do you need?�What was wrong?�What's next?�While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site.�Wholesale prices�You can add product search box, cart widget and more on the <a href="%s">"Appearance / Widgets page"</a> here in your site admin. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">More details.</a>�You can add the entire storefront, categories, products, or "Buy now" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block.�You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open "Appearance > Menus" in your WordPress control panel and add the "Store with Categories Menu" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site.�You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">More details.</a>�You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel.�You can display your store on the site main page. Adjust the "Reading" settings of your site as described in our <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">Help Center.</a>�You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href="%1$s">Appearance → Customize → %2$s</a>” menu to enable it.�You can enable filters in the store settings: (“<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Settings → Product Filters</a>”).�You can send a new request here.�You have not viewed any product yet. Open store.�You will be able to sign up through your existing Google, Facebook or PayPal profiles as well.�Your %s store has �Your %s store is connected<br /> to your WordPress website�Your %s store is now connected<br /> to your WordPress website�Your Storefront�Your WooCommerce store has �Your email has been sent�Your product�Your store Control Panel. Right here in WordPress.�Your store has been created. Preparing your store dashboard ...�Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar.�Your store is almost ready!�Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display.�Your store page�Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders.�Your store page is published. Customers can browse your store at �Your store will be shown here�Your store will be shown here!�Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data.�[%s] WordPress plugin deactivation feedback (store ID: %s)�customize appearance�gutenberg-product-blockContent�gutenberg-store-block-stubStore�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�or <a %s>Browse the Help Center�product-browser-attributesProduct SKU�product-browser-attributesProduct price�select product�selected product�vc-tabOnline store�«Buy now» button�PO-Revision-Date: 2020-10-14 00:15+0400 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n > 1); X-Generator: Poedit 2.4.1 Language: fr Project-Id-Version: temporary-strings X-Crowdin-Project: temporary-strings X-Crowdin-Project-ID: 295314 X-Crowdin-Language: fr X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po X-Crowdin-File-ID: 988 Language-Team: French Last-Translator: � Choisissez un autre produit� Merci beaucoup de nous contacter ! Nous vous répondrons dans les plus brefs délais.�Étiquette « en stock »�%s�Blog %s�%s panier d'achat�%s magasin�%s page du magasin�Le module d'extension %s ne fonctionne pas bien avec mon thème « %s »�%s produit�%s produits�%s produits et %s catégories�%s produits et catégories�%s paramètres du panier d'achat�%s stocke les données relatives à vos produits dans un stockage en ligne sécurisé. Les pages des produits sont affichées à la volée lorsqu'un client consulte votre magasin. En gros, les produits ne sont pas stockés sur le site, c'est pourquoi la recherche sur le site ne trouve pas les pages des produits en parcourant les pages et les articles du site. Cette option permet un mode de stockage local : les produits seront stockés à la fois dans le nuage et sur votre site. Les résultats de la recherche sur le site énuméreront les pages de produits, ainsi que les pages/articles ordinaires de votre site.�%s — Paramètres avancés�(Vous pourrez confirmer les changements avant l'importation effective)�Deux colonnes, image à gauche�Deux colonnes, image à droite�Trois colonnes, image à gauche�Trois colonnes, image à droite�<a %s>Boutique en ligne optimisée par %s</a>�<a %s>Reconnecter</a>�<a href="admin.php?page=�<b>%s</b> catégories�Une limace est la dernière partie d'une URL. Vous pouvez créer une limace personnalisée pour la page de votre magasin. Il est préférable qu'elle soit courte, car les clients et les moteurs de recherche préfèrent les URL courtes. Par exemple, utilisez « magasin » ou « produits ».�Action requise : veuillez connecter votre compte %s�Ajouter un produit�Ajouter un magasin�Ajouter la page du magasin au menu�Ajouter une page de catégorie�Ajouter une page de produit�Ajouter une page de recherche et de filtres�Ajouter une page de magasin�Ajoutez un magasin en ligne à votre site Web�Ajouter une bordure�Ajouter le panier et passer à la caisse�Ajouter des catégories�Ajouter la page du magasin au menu du site�Ajouter une vitrine virtuelle (liste de produits)�Ajouter au menu�Ajoutez votre magasin %s au site Web et commencez à vendre en quelques minutes.�Ajouter votre boutique à d'autres pages du site�Ajoutez votre vitrine virtuelle à la page d'accueil du site Web pour la mettre en évidence. Vous pouvez également modifier les paramètres de la page d'accueil du site dans <a href="%s" target="_blank">Paramètres de WordPress > Lecture</a>�Pages supplémentaires du magasin�En outre, vous pouvez ajouter des contrôles de stockage à la barre d'outils de votre site Web en utilisant les <a %s>widgets natifs de WordPress</a>�Ajoute un widget de panier pour que le client puisse voir les produits qu'il a ajoutés au panier.�Ajoute un widget de panier compact pour que le client puisse voir les produits qu'il a ajoutés au panier.�Ajoute un widget de panier d'achat dans le coin supérieur droit de votre site.�Ajoute la liste des catégories racine à la barre latérale pour permettre à vos clients de parcourir le magasin.�Ajoute un bloc de catégories verticales pour permettre au client de parcourir votre magasin.�Adaptez la conception de votre magasin aux besoins de votre entreprise.�Étiquette d'administration�Avancé�Paramètres avancés�Après l'importation, votre magasin %s aura �Tous les canaux de vente�En plus du catalogue du magasin, vous pouvez ajouter d'autres widgets et textes à la page du magasin.�Aspect�Applications�Quantité disponible en stock�Retour aux paramètres de stockage�Couleur de fond�Sac�Panier�Avant de partir�Bordure�Bordure :�En bas à gauche�En bas à droite�Fils d'Ariane�Parcourir tous les produits.�Parcourir par catégorie�Produits et catégories d'importation en vrac dans votre magasin %s�Couleur des boutons�Achat immédiat�Bouton « Acheter maintenant »�Acheter maintenant les boutons�En continuant, vous acceptez les <a %s>conditions de service</a> et la <a %s>politique de confidentialité</a>.�Classe CSS�Identifiant CSS�Pouvez-vous partager le nom du module d'extension que vous avez choisi ?�Pouvez-vous nous faire part de vos commentaires ? Qu'est-ce qui n'allait pas ?�Annuler�Panier�Panier et caisse�Icône du panier�Icône de panier :�Catalogue�Catégories�Catégorie�Apparence de la liste des catégories�Mise en page de la carte des catégories�Catégorie indiquée par défaut�Rapport d'aspect des vignettes des catégories�Taille des vignettes des catégories�Centre�Centrer l'alignement sur une page�Changer�Modifier le contenu du magasin�Choisissez le produit�Choisissez un produit�Choisissez les propriétés du produit à afficher dans le widget�Choisissez la page principale du magasin�Choisissez les widgets à afficher�Cliquez sur le bouton de connexion pour obtenir les droits de mise à jour du catalogue de produits�Paramètres de couleur�Configuration complète�Terminer l'installation et commencer à vendre�Configuration�Félicitations !�Connexion�Connectez votre magasin�Connectez votre magasin %s�Connectez votre magasin�Erreur de connexion : après avoir cliqué sur le bouton, vous devez vous connecter et fournir les autorisations nécessaires pour utiliser notre module d'extension. Veuillez réessayer. �Contactez le service d'assistance�Contactez-nous�Contenu�Copie de produits et de catégories.�Créer une page de panier�Créer une page de catégorie�Créer une page de produit�Créer une page de recherche�Créer le magasin�Créer une page de magasin�Créez une page d'accueil présentant un de vos produits.�Créez un nouveau compte %s que vous utiliserez pour gérer votre magasin et votre inventaire. L'inscription est gratuite.�Créez un nouveau magasin ou connectez un magasin existant, si vous avez déjà un compte %s. Le module d'extension vous guidera dans la configuration de la boutique et vous aidera à la publier sur votre site Web.�Créer un nouveau compte�Créer un magasin�Page actuelle�Limace URL actuelle : /<span data-ec-store-slug>%s</span>�Identification unique du client�Clients�Les clients ne peuvent pas voir la page de votre magasin parce qu'elle est en version préliminaire. Publiez la page pour la mettre à la disposition de vos clients.�Les clients se rendent sur la page du panier pour examiner les produits qu'ils ont ajoutés au panier et passer à la caisse.�Personnaliser la conception�Personnaliser l'apparence du magasin�Personnaliser l'adresse de la page du magasin�Personnaliser le widget�Personnalisez l'apparence de votre magasin pour répondre aux besoins de votre entreprise. Donnez à votre magasin l'aspect et la convivialité exacts qui reflètent votre marque.�Gris bleuâtre cyan�Tableau de bord�Catégorie par défaut�Identifiant de la catégorie par défaut�Identifiant du produit par défaut�Mode d'affichage par défaut sur les pages des produits�Mode d'affichage par défaut des résultats de recherche�Produits supprimés synchronisés : %1$s sur %2$s�Magasin de démonstration�Magasin de démonstration�Conception�Conception et contenu�Détection automatique�Déconnecter le magasin�Afficher un bouton d'achat�Afficher les fils d'Ariane�Afficher l'icône du panier�Afficher le menu des catégories�Afficher la barre de navigation des catégories�Afficher la page des catégories�Afficher le menu de bas de page�Afficher la page du produit avec une description et un bouton d'achat�Afficher le produit avec un bouton d'achat�Afficher la boîte de recherche�Afficher la page de recherche avec les filtres sur un côté�Afficher le lien et le résumé du sac à provisions�Afficher le panier�Afficher le panier d'achat et la page de paiement�Afficher le signe dans le lien�Afficher le tri par lien�Afficher l'icône du panier sur les pages du site�Produit exposé�Affiche un lien vers la page du magasin dans la barre latérale pour que le client puisse accéder rapidement à votre magasin à partir de n'importe quelle page du site.�Affiche une liste des produits récemment consultés par le client pour lui permettre de revenir facilement aux produits qu'il a vus dans votre magasin.�Affiche une liste de produits au hasard.�Affiche un produit aléatoire de votre magasin pour attirer l'attention des clients.�Affiche une boîte de recherche simple pour que vos clients puissent trouver un produit dans votre magasin�Affiche la vitrine virtuelle : liste des produits et paiement�Affiche les derniers produits ajoutés dans votre magasin. Afficher les nouveaux produits aux clients récurrents afin d'encourager les ventes répétées.�Ne pas montrer�Vous aimez Ecwid et vous voulez l'aider à se développer ? Vous pouvez ajouter ce badge sophistiqué « Optimisé par Ecwid » sur votre site pour montrer à vos visiteurs que vous êtes un fier utilisateur d'Ecwid.�Aimez-vous votre boutique en ligne %s ? Nous apprécierions que vous ajoutiez votre avis et que vous donniez votre vote pour le module d'extension sur le site de WordPress.�Terminé�Téléchargez le <a href="%s">journal d'importation</a>�Télécharger le fichier journal�Version préliminaire�Par exemple, comment mettre en place l'expédition�Badge Ecwid�Ecwid Ecommerce�Panier d'achat Ecwid Ecommerce�Élément du menu Ecwid�Ecwid vous permet de télécharger vos produits sous forme de fichier CSV. Pour en savoir plus sur cet outil, consultez le centre d'aide Ecwid�Widgets de commerce électronique Ecwid�Solution de commerce électronique Ecwid�Panier d'achat gratuit Ecwid�Ecwid possède la certification PCI DSS de niveau 1, qui est la norme de référence pour les solutions de commerce électronique dans le monde entier. Ainsi, vous n'aurez aucun problème de conformité bancaire lorsque vous vendrez en ligne avec Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">Plus de détails.</a>�Ecwid est un panier d'achat complet et gratuit. Il peut être facilement intégré à n'importe quel blog Wordpress et sa mise en place prend moins de cinq minutes.�Ecwid est compatible avec tous les thèmes WordPress. Qu'il s'agisse d'un thème gratuit du catalogue WordPress.org, d'un thème de qualité supérieure d'un fournisseur tiers ou d'un thème sur mesure, votre boutique Ecwid s'en accommodera parfaitement. Si vous souhaitez un thème de qualité supérieure, nous vous recommandons les <a href="%s">thèmes TemplateMonster</a>�Ecwid fournit des applications mobiles gratuites pour iOS et Android pour gérer votre boutique et vendre sur la route. Numérisez les produits, suivez les stocks, gérez les ventes et acceptez les paiements en utilisant votre appareil mobile comme point de vente. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">Plus de détails.</a>�Panier d'achat Ecwid�Widget du panier d'achat Ecwid�Modifier�Modifier l'apparence�Modifier la catégorie�Modifier le produit�Modifier le magasin�Modifier la limace URL�Modifier la page�Saisissez un identifiant CSS facultatif à utiliser pour ce module. Un identifiant peut être utilisé pour créer un style CSS personnalisé, ou pour créer des liens vers des sections particulières de votre page.�Saisissez les classes CSS facultatives à utiliser pour ce module. Une classe CSS peut être utilisée pour créer un style CSS personnalisé. Vous pouvez ajouter plusieurs classes, séparées par un espace.�Entrez votre identifiant de magasin�Saisissez ici votre identifiant de magasin :�Extensions pour votre magasin�Présentez une catégorie de magasin spécifique sur une page indépendante de votre site.�Mettez vos produits en vedette dans la barre latérale�Filtres�Position du panel de filtres�Trouvez l'identifiant de votre magasin�Première page�Foire aux questions�Obtenir l'application mobile %s�Aller aux pages�Allez à vos %s produits �Salutations !�Salutations ! Votre module d'extension %s est maintenant actif.�Grille�Vue de grille�Aide�Aidez les clients à trouver votre magasin sur le site. Ajoutez le lien du magasin au menu du site, créez des pages supplémentaires sur le magasin et mettez en évidence les produits du magasin sur d'autres pages du site et dans les barres latérales.�Aidez les clients à trouver votre magasin sur le site Web.�Vous pouvez contrôler ici le nombre de produits qui seront affichés par page. Ces options définissent des valeurs maximales. S'il n'y a pas assez de place pour afficher toutes les colonnes de produits, %s adaptera le nombre de colonnes pour accueillir tous les produits.�Vous pouvez ici créer le contenu qui sera utilisé dans le module.�Ici, nous vous aiderons à télécharger votre catalogue de produits vers %s à partir d'un autre panier d'achat ou d'autres sources.�Cacher�Mettez en évidence les produits, les catégories et les autres pages du magasin en les ajoutant à des pages distinctes du site Web.�Mettez en évidence vos meilleures ventes ou vos nouveaux produits dans la barre latérale du site.�Tiret horizontal�Vignettes horizontales�Comment puis-je ajouter un widget de panier à la barre latérale de mon site ?�Comment puis-je gérer mon magasin à partir d'un appareil mobile ?�Comment pouvons-nous vous aider ?�Comment ajouter des catégories de magasins au menu du site ?�Comment faire figurer mes produits dans le plan du site ?�Combien coûte Ecwid ?�Quel est le degré de sécurité de ce module d'extension ? Mon magasin est-il conforme à la norme PCI DSS ?�Comment ajouter un produit unique avec le bouton « Ajouter au sac » dans les pages du site ?�Comment créer une vitrine virtuelle sur Facebook avec Ecwid ?�J'ai déjà un compte, connectez-vous�Je n'ai pas trouvé de thème WordPress qui convienne à %s�J'ai trouvé un meilleur module d'extension�J'ai un problème d'utilisation de ce module d'extension�J'ai un problème avec mon magasin %s�J'utilise ce thème WordPress : %s�Icône�Nombre d'icônes et d'articles�Icône, étiquette et nombre d'articles�Icône, étiquette, nombre d'articles et sous-total�Icône, étiquette, nombre d'articles, sous-total et lien�Si vous avez un moment, veuillez nous faire savoir pourquoi vous désactivez :�Image et titre au survol de la souris�Flux d'images�Mise en page de la galerie d'images�Image seulement�Importer�Importez vos produits de Woocommerce à %s�Importation terminée�Importation terminée. <a href="%s">Exécutez à nouveau.</a>�L'importation crée de nouveaux produits et met à jour les produits existants avec les Référence correspondantes.�L'importation est en cours�Importer mes produits de WooCommerce�Importer le catalogue de produits de WooCommerce�Importez un catalogue de produits provenant d'autres sources�Importez des produits dans votre magasin %s�Importer le résumé�Importez votre catalogue WooCommerce dans %s�Importez vos produits de WooCommerce vers %s�Importez vos produits de Woocommerce à %s�<b>%s</b> produits importés�Importation de %s de %s articles�Insérer�Insérer dans la page�Site instantané�Intégration avec la recherche sur votre site�Est-il possible d'afficher mon magasin sur la page d'accueil du site ?�Existe-t-il un thème WordPress pour Ecwid ?�Il s'agit d'une désactivation temporaire. Ne me le demandez pas à nouveau, s'il vous plaît.�Nombre d'articles seulement�Justifier�Base de connaissances�L�Étiquette et nombre d'articles�Paysage 3:2�Paysage 4:3�Dernière page�Dernière mise à jour�Derniers produits�Mise en page�Mise en page :�En savoir plus�Gauche�Vert cyan clair�Couleur du lien�Produit lié�Liste�Vue de liste�Il semble que votre site ne prenne pas en charge les requêtes POST à distance qui sont nécessaires au fonctionnement de l'API %s. Veuillez contacter votre fournisseur d'hébergement pour activer cURL.�Ambre vif et lumineux�Orange vif et lumineux�M�Faites en sorte que votre magasin soit accessible à partir du menu du site afin que vos clients puissent le trouver facilement.�Gérer la barre latérale�Gérer le magasin sur iPhone, iPad ou Android�Gérez les produits, suivez les ventes, ajustez les paramètres ; <nobr>le tout sans</nobr> quitter cette page.�Gérer le magasin�Gérer la vitrine virtuelle�Marketing�Mobile�Mon compte�Mon profil�Mes ventes�Nom�Navigation�Vous avez besoin d'aide pour importer vos produits de WooCommerce vers %s ?�Ne plus jamais montrer ce message�Page suivante�Page suivante�Non, merci�Pas de bordure�Pas encore synchronisé�Remarque : lorsqu'il est activé, le widget du panier est toujours affiché en aperçu pour faciliter sa personnalisation. Les options « Afficher sur les pages du magasin » et « Afficher lorsque c'est vide » s'appliqueront au widget panier sur le site lors de la publication�Aucun résultat trouvé pour <span class="empty-page__term">« {{ data.term }} »</span>�Nombre de catégories par ligne�Nombre de produits par page�Nombre de produits à présenter�À gauche�À droite�Boutique en ligne�Applications de la boutique en ligne�Boutique en ligne�Ouvrir le panneau de contrôle�Ouvrir le tableau de bord du magasin�Options�Commandes�Autre�Nos quatre types de compte varient en fonction du nombre de produits, des types de fonctionnalités et du niveau d'assistance. Pour plus d'informations, consultez notre <a target="_blank" href="%s">page de tarification.</a><br /><br />Conseil professionnel : Vous pouvez également économiser de l'argent en vous inscrivant à nos plans annuels.�Notre équipe travaille déjà sur cette question. Veuillez actualiser la page dans quelques minutes. Si le problème persiste, veuillez contacter <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">notre équipe d'assistance à la clientèle</a>.�Une page portant ce nom existe déjà.�Bleu cyan pâle�Rose pâle�Une partie des produits n'a pas été copiée dans %1$s, car vous avez atteint la limite de produits de votre plan tarifaire dans %1$s. Si vous souhaitez importer davantage de produits, veuillez envisager de <nobr><a %2$s>mettre à jour votre plan %1$s.</a></nobr>�Paiement�Personnalisez l'apparence de votre vitrine virtuelle et modifiez le contenu de la page du magasin pour qu'elle reflète votre marque et reste en contact avec vos clients.�Choisissez une catégorie�Choisir un produit�Photo�Pilule�Veuillez tenir compte du nombre maximum de produits et de catégories que vous pouvez avoir dans votre magasin Ecwid. Cet outil d'importation s'arrêtera automatiquement lorsque la limite de produits du magasin sera atteinte. Pour vérifier la limite actuelle de votre magasin ou l'augmenter, veuillez consulter la page <nobr><a %s target="_blank">« Facturation et plans »</a></nobr> dans le panneau de contrôle de votre magasin Ecwid.�Veuillez souscrire à un plan payant pour obtenir cette fonctionnalité.�Modules d'extension pour Ecwid�Portrait 2:3�Portrait 3:4�Position�Aperçu�Page précédente�Prix�Couleur du prix�Produit�Carte de produit grand format�Carte de produit petite�Apparence de la liste des produits�Apparence de la page du produit�UGS du produit�Recherche de produits�Boîte de recherche de produits�Recherche de produits et filtres�Alignement du texte de la carte de produit�Le catalogue des produits sera affiché automatiquement�Mise en page du produit�Prix du produit�Quantité de produits�Contenu de la barre latérale des produits�Rapport d'aspect des vignettes des produits�Taille de la vignette du produit�Titre du produit�Produits�Les produits sont synchronisés avec succès. Les pages des produits sont à jour.�Produits synchronisés : %1$s sur %2$s�Faites la promotion de votre magasin�Fournissez l'accès.�Fourni par <a %s>%s</a>�Publier�Publier la page du magasin�Publier la page pour utiliser cette option�Publié�Quantité�Des questions ?�Produit aléatoire�Produits aléatoires�Évaluer %s chez WordPress.org�Reconnectez-vous au panneau de contrôle d'activation�Produits récemment consultés�Recommandations pour votre boutique en ligne�Rectangle�Actualiser la liste des catégories�S'inscrire à %s�Signaler un problème avec le magasin�Rapports�Droite�S�UGS�Ventes�Canaux de vente�Sauvegarder�Enregistrez et connectez votre magasin %s au site�Enregistrer les modifications�Recherche�Recherche et filtres�Rechercher des produits�Recherche dans la base de connaissances�En savoir plus�Sélectionner tout�Sélectionnez une catégorie�Produit sélectionné�Catégorie sélectionnée�Vendre sur Facebook�Envoyer un message�Envoyez un message à notre équipe d'assistance�L'envoi du message a échoué�Configurez votre magasin�Régler manuellement�Installez votre magasin�Paramètres�Configuration�Expédition et ramassage�Boutique�Panier d'achat�Panier d'achat (déprécié)�Panier d'achat flottant (déprécié)�Icône du panier d'achat�Panier d'achat Mini (déprécié)�Widget du panier d'achat�Afficher�Afficher une image supplémentaire au survol�Afficher les catégories�Montrez aux clients qu'ils peuvent utiliser une recherche et des filtres pour trouver plus rapidement les produits souhaités.�Afficher la description sous l'image�Afficher le mini-panier�Afficher sur toutes les pages�Afficher au survol�Afficher sur les pages du magasin�Afficher le prix à l'intérieur du bouton « Acheter maintenant »�Afficher le prix à l'intérieur du bouton « Acheter maintenant »�Afficher la bordure de la carte de produit�Afficher les vignettes des produits�Afficher la recherche�Afficher quand c'est vide�Affichez votre magasin sur la page d'accueil�L'identification unique permet à vos clients d'avoir un seul identifiant pour votre site WordPress et votre %s. Lorsqu'une personne se connecte à votre site, elle est automatiquement connectée à son compte client dans votre boutique, sans avoir à saisir à nouveau son adresse e-mail ou son mot de passe.�Petite icône�Petit nombre d'icônes et d'articles�Certains de ces articles ne pouvaient pas être importés.�Nous sommes désolés des difficultés techniques que nous rencontrons.�Désolé, il y a un problème. Cette page est censée afficher le panneau de contrôle de votre magasin. Cependant, ce site Wordpress ne semble pas pouvoir se connecter au serveur Ecwid pour afficher ici le tableau de bord de votre magasin. Ce problème est probablement dû à une mauvaise configuration de votre serveur et peut être corrigé par votre hébergeur. Voici une description plus technique du problème, que vous pouvez envoyer à votre hébergeur : « La fonction wp_remote_post() de Wordpress n'a pas réussi à connecter un serveur distant en raison d'une erreur : "%s". Apparemment, les requêtes HTTP POST sont désactivées sur ce serveur. » <br /><br />N'hésitez pas à nous contacter à l'adresse <a %s>wordpress@ecwid.com</a> et nous vous aiderons à contacter votre hébergeur et à lui demander de résoudre le problème. <br /><br /> Entre-temps, pour gérer votre magasin, vous pouvez utiliser le panneau de contrôle Web d'Ecwid à l'adresse <a %s>my.ecwid.com</a>. La vitrine virtuelle de votre magasin fonctionne aussi bien et vous pouvez le vérifier ici : <a %s>%s</a>.�Carré 1:1�Démarrer l'importation�État�Restez en contact avec vos clients. Mettez à jour le contenu de votre magasin à tout moment pour informer les clients des promotions en cours et des nouveautés dans votre magasin.�Vous avez encore des questions sur Ecwid ? Faites-le nous savoir !�Boutique�Catégories de magasins�Menu des catégories de magasins�Page des catégories de magasins�Première page du magasin�Page d'accueil du magasin�Identifiant du magasin�L'identifiant du magasin est un identifiant unique de tout magasin %1$s qui se compose de plusieurs chiffres. Vous pouvez le trouver sur la page « Tableau de bord » du panneau de contrôle de %1$s. L'identifiant du magasin sera également envoyé dans l'e-mail de bienvenue après l'enregistrement.�L'identifiant du magasin est un identifiant unique de votre compte %1$s. Vous pouvez le trouver dans votre panneau de contrôle %1$s sur la <a %2$s>page du tableau de bord</a>.�Titre du lien du magasin�Navigation dans le magasin�Page du magasin�Lien vers la page du magasin�Catégories racine du magasin�Apparence du magasin�Stocker des éléments�Gestion du magasin�Contenu de la page du magasin�Page du magasin sur votre site�Catégorie racine du magasin�Boutique avec menu des catégories�Vitrine virtuelle�Sujet�Soumettre et désactiver�Passer au projet�Synchroniser les produits�Table�Vue de table�Suivez quelques étapes simples pour terminer l'installation de votre magasin�Profitez des puissantes applications et extensions conçues pour améliorer votre magasin.�Texte�Couleur du texte�Merci d'avoir choisi %s pour créer votre boutique en ligne�Le bloc est caché parce que vous n'avez pas de catégories dans votre magasin. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Ajoutez des catégories.</a>�La catégorie qui est affichée par défaut sur la page d'accueil du magasin�C'est la première étape vers l'ouverture de votre boutique en ligne : <br />Commençons par ajouter une boutique à votre site WordPress en <strong>trois</strong> étapes simples.�Le module d'extension ne prend pas en charge la fonction que je souhaite�L'icône du panier indique le nombre d'articles dans le panier et aide les clients à passer à la caisse. En outre, vous pouvez <a href="%s" target="_blank">ajuster l'apparence de l'icône du panier</a>.�Le magasin n'est pas visible sur votre site�Les catégories de premier niveau du magasin sont automatiquement ajoutées à ce menu déroulant�Thèmes pour Ecwid�Cette importation copiera vos produits et catégories WooCommerce dans votre magasin %s.�Il s'agit d'un magasin de démonstration. Créez votre magasin pour voir les produits de votre magasin ici.�Ainsi, l'étiquette du module sera modifiée dans l'éditeur pour faciliter l'identification.�Titre�Titre sur l'image�Titre seulement�Titre ou UGS�Titre sous l'image�Titre :�Pour ajouter des fonctions supplémentaires à votre boutique, glissez et déposez des éléments de la boutique %s sur votre site. Lorsque vous aurez terminé, vous pourrez revenir à la modification de vos paramètres.�Pour ajouter votre magasin à votre site Web, inscrivez l'identifiant de votre magasin %1$s dans le champ ci-dessous. Si vous n'avez pas encore de compte %1$s, créez-en un gratuitement sur le <a %2$s>site Web %1$s</a>.�Pour permettre à %s de mettre automatiquement les clients en contact avec votre magasin, veuillez lui donner l'autorisation d'utiliser les données des clients dans le magasin. <a %s>Pour ce faire, veuillez utiliser ce lien</a>.�Pour pouvoir choisir un produit à insérer dans vos articles et vos pages, vous devrez reconnecter votre site à votre boutique %s. Pour ce faire, il vous suffira d'accepter les demandes d'autorisation – de sorte que le module d'extension puisse répertorier vos produits dans la boîte de dialogue « Ajouter un produit ».�Pour créer un plan de site pour votre site Wordpress, nous vous suggérons d'utiliser les modules d'extension <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> ou <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>.  . Ces modules d'extension sont entièrement compatibles avec Ecwid et permettent de générer un plan du site qui contiendra des liens vers les catégories et les pages de produits, de sorte que les pages de la boutique seront indexées plus rapidement. Veuillez noter que cette option est disponible pour les <a target="_blank" href="https://www.ecwid.com/pricing">utilisateurs payants d'Ecwid</a>.�Pour afficher votre magasin sur ce site, vous devez autoriser WordPress à accéder à vos %1$s produits. Veuillez appuyer sur « Connecter » pour donner votre autorisation.�Pour activer cette fonction, le module d'extension a besoin d'une autorisation pour lire les informations sur les produits de votre magasin.�Pour présenter un seul produit sur une page distincte ou un article de blog de votre site, utilisez le code abrégé <b>[ecwid_product]</b>. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">Comment l'utiliser.</a>�Pour améliorer l'aspect et la convivialité de votre page de produit et en gérer l'apparence ici, veuillez activer l'option « Aspect et convivialité de nouvelle génération de la page du produit sur la vitrine virtuelle » dans le tableau de bord de votre magasin (« <a href="admin.php?page=ec-store&ec-store-page=whatsnew">Paramètres → Nouveautés</a> »).�Pour améliorer l'aspect et la convivialité de votre page de produit et en gérer l'apparence ici, veuillez activer l'option « Aspect et convivialité de nouvelle génération de la page du produit sur la vitrine virtuelle » dans le tableau de bord de votre magasin (« <a href="admin.php?page=ec-store&ec-store-page=whatsnew">Paramètres → Nouveautés</a> »).�Pour améliorer l'aspect et la convivialité de votre page de produit et en gérer l'apparence ici, veuillez activer l'option « Aspect et convivialité de nouvelle génération de la page du produit sur la vitrine virtuelle » dans le tableau de bord de votre magasin (« <a href="admin.php?page=ec-store&ec-store-page=whatsnew">Paramètres → Nouveautés</a> »).�Pour vous assurer que votre client peut effectivement se connecter à votre site et à votre magasin, activez l'enregistrement dans les <a %s>paramètres du site</a>�Pour gérer votre magasin, allez à la <a %s>page du tableau de bord du magasin</a>.�Pour vendre en utilisant %1$s, vous devez autoriser WordPress à accéder au module d'extension %1$s. Le bouton de connexion vous dirigera vers votre compte %1$s, où vous pourrez donner votre autorisation.�Pour afficher votre vitrine virtuelle au lieu du magasin de démonstration, connectez votre compte %s existant ou créez-en un nouveau.�Pour commencer à vendre, ajoutez une page à votre site où la vitrine virtuelle s'affichera.�En haut à gauche�En haut à droite�Essayez une autre recherche.�Tapez votre message ici�Limace URL�Mettre à jour�Mettez à jour votre catalogue�Mettez à jour pour obtenir cette fonctionnalité�Tiret vertical�Vignettes verticales�Gris très foncé�Gris très clair�Voir la page du magasin�Voir la page du magasin de démonstration�Voir la page du magasin�Visiter la vitrine virtuelle�Bleu cyan vif�Vert cyan vif�Rouge vif�Vous voulez connecter un autre magasin %s ?�Attention : certaines fonctionnalités de votre boutique en ligne sont désactivées. Veuillez contacter votre fournisseur d'hébergement pour résoudre ce problème.�Nous avons constaté que vous avez installé un WooCommerce. Votre magasin WooCommerce a des %1$s produits et des %2$s catégories. Souhaitez-vous l'importer dans %3$s ?�Nous avons remarqué que vous avez installé WooCommerce. Si vous souhaitez copier facilement vos produits WooCommerce dans %s, cet outil vous aidera.�Nous synchronisons vos produits. Cette opération peut prendre quelques minutes. Veuillez ne pas recharger la page.�Site Web�De quelle fonction avez-vous besoin ?�Qu'est-ce qui n'allait pas ?�Et ensuite ?�Tant que votre magasin n'est pas connecté, un magasin de démonstration s'affiche sur votre site. Consultez-la pour vous faire une idée de l'aspect que votre magasin peut avoir sur le site.�Prix de gros�Vous pouvez ajouter une boîte de recherche de produits, un widget de panier et plus encore sur la page <a href="%s">« Apparence/widgets »</a> ici dans l'administration de votre site. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">Plus de détails.</a>�Vous pouvez ajouter l'ensemble de la vitrine virtuelle, des catégories, des produits ou des boutons « Acheter maintenant » à d'autres pages de votre site. Pour ce faire, ouvrez une page dans l'éditeur et ajoutez un bloc %s approprié.�Vous pouvez ajouter le menu des catégories de magasins au menu de votre site pour aider vos clients à parcourir facilement votre site. Il suffit d'ouvrir « Apparence > Menus » dans votre panneau de contrôle WordPress et d'ajouter l'élément « Boutique avec menu des catégories » au menu de votre site. Un menu déroulant contenant les catégories de votre magasin apparaîtra automatiquement sur votre site.�Vous pouvez ajouter votre boutique en ligne à votre page d'entreprise sur Facebook. Aucun ajout n'est nécessaire. Ecwid synchronisera automatiquement les produits, les clients, les commandes et les stocks entre vos vitrines virtuelles WordPress et Facebook. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">Plus de détails.</a>�Vous pouvez contrôler l'aspect et la convivialité de votre magasin sur la <a %s>page « Paramètres de conception »</a> du panneau de contrôle de votre magasin.�Vous pouvez afficher votre magasin sur la page principale du site. Ajustez les paramètres de « lecture » de votre site comme décrit dans notre <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">centre d'aide.</a>�Vous pouvez activer un widget supplémentaire avec une icône de sac à provisions qui apparaîtra sur les pages de votre site. Ouvrez le menu « <a href="%1$s">Apparence → Personnaliser → %2$s</a> » pour l'activer.�Vous pouvez activer les filtres dans les paramètres du magasin : (« <a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Paramètres → Filtres de produits</a> »).�Vous pouvez envoyer une nouvelle demande ici.�Vous n'avez encore vu aucun produit. Ouvrez le magasin.�Vous pourrez également vous inscrire via vos profils Google, Facebook ou PayPal existants.�Votre magasin %s a �Votre magasin %s est connecté<br /> à votre site WordPress�Votre magasin %s est maintenant connecté<br /> à votre site WordPress�Votre vitrine virtuelle�Votre magasin WooCommerce a �Votre e-mail a été envoyé�Votre produit�Le panneau de contrôle de votre magasin. Ici même dans WordPress.�Votre magasin a été créé. Préparer le tableau de bord de votre boutique...�Votre boutique est ajoutée à plusieurs pages du site. Choisissez la page principale. Les clients sont dirigés vers la page principale de la boutique lorsqu'ils cliquent sur l'icône du panier, sur les liens de la boutique dans le menu du site et sur les produits dans la barre latérale.�Votre magasin est presque prêt !�Votre magasin n'est ajouté à aucune page de votre site. Pour permettre aux clients d'explorer votre magasin et de passer des commandes, créez une page où le magasin s'affichera.�La page de votre magasin�La page de votre magasin est actuellement en version préliminaire. Lorsque vous serez prêt, publiez-la pour permettre aux clients de naviguer dans le magasin et de passer des commandes.�La page de votre magasin est publiée. Les clients peuvent consulter votre magasin sur �Votre magasin sera présenté ici�Votre magasin sera présenté ici !�Votre vitrine virtuelle (fiche produit et paiement) fonctionne bien, mais les fonctions avancées du magasin, comme le référencement et les widgets de la barre latérale, sont désactivées. Pour les activer et vous assurer que votre boutique fonctionne correctement, veuillez appuyer sur le bouton ci-dessous pour connecter votre compte %s. Cette opération prendra moins d'une minute : il vous sera seulement demandé de vous connecter à votre compte et de permettre à ce site d'obtenir les données de votre magasin.�[%s] Commentaires sur la désactivation du module WordPress (identifiant du magasin : %s)�personnaliser l'apparence�Contenu�Boutique�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�ou <a %s>consultez le centre d'aide�UGS du produit�Prix du produit�sélectionner un produit�produit sélectionné�Boutique en ligne�Bouton « Acheter maintenant »����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/languages/ecwid-shopping-cart-fr_FR.po������������������������������������������0000644�����������������00000330527�15122273603�0017577 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Translation of Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) in German # This file is distributed under the same license as the Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) package. msgid "" msgstr "" "PO-Revision-Date: 2020-10-14 00:15+0400\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Poedit 2.4.1\n" "Language: fr\n" "Project-Id-Version: temporary-strings\n" "X-Crowdin-Project: temporary-strings\n" "X-Crowdin-Project-ID: 295314\n" "X-Crowdin-Language: fr\n" "X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po\n" "X-Crowdin-File-ID: 988\n" "Language-Team: French\n" "POT-Creation-Date: \n" "Last-Translator: \n" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:92 msgid "You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel." msgstr "Vous pouvez contrôler l'aspect et la convivialité de votre magasin sur la <a %s>page « Paramètres de conception »</a> du panneau de contrôle de votre magasin." #: includes/integrations/elementor/class-ec-elementor-widget-store.php:55 msgid "To manage your store, go to <a %s>the Store Dashboard page</a>" msgstr "Pour gérer votre magasin, allez à la <a %s>page du tableau de bord du magasin</a>." #: includes/integrations/elementor/class-ec-elementor-widget-store.php:39 msgid "The category that is shown by default on the Store Front Page" msgstr "La catégorie qui est affichée par défaut sur la page d'accueil du magasin" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:38 msgid "Default category" msgstr "Catégorie par défaut" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:29 msgid "Online Store" msgstr "Boutique en ligne" #: includes/class-ecwid-stub-renderer.php:38 msgid "Buy Now" msgstr "Achat immédiat" #: templates/admin/welcome-terms-privacy.php:5 msgid "By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>." msgstr "En continuant, vous acceptez les <a %s>conditions de service</a> et la <a %s>politique de confidentialité</a>." #: js/gutenberg/blocks.build.js:1 msgid "Display shopping cart and checkout page" msgstr "Afficher le panier d'achat et la page de paiement" #: js/gutenberg/blocks.build.js:1 msgid "Cart and Checkout" msgstr "Panier et caisse" #: js/gutenberg/blocks.build.js:1 msgid "Filters" msgstr "Filtres" #: js/gutenberg/blocks.build.js:1 msgid "You can enable filters in the store settings: (“<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Settings → Product Filters</a>”)." msgstr "Vous pouvez activer les filtres dans les paramètres du magasin : (« <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Paramètres → Filtres de produits</a> »)." #: js/gutenberg/blocks.build.js:1 msgid "Search and Filters" msgstr "Recherche et filtres" #: js/gutenberg/blocks.build.js:1 msgid "Display search page with filters on a side" msgstr "Afficher la page de recherche avec les filtres sur un côté" #: js/gutenberg/blocks.build.js:1 msgid "Product Search and filters" msgstr "Recherche de produits et filtres" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Pour améliorer l'aspect et la convivialité de votre page de produit et en gérer l'apparence ici, veuillez activer l'option « Aspect et convivialité de nouvelle génération de la page du produit sur la vitrine virtuelle » dans le tableau de bord de votre magasin (« <a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Paramètres → Nouveautés</a> »)." #: js/gutenberg/blocks.build.js:1 msgid "Display product page with description and a buy button" msgstr "Afficher la page du produit avec une description et un bouton d'achat" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Large" msgstr "Carte de produit grand format" #: js/gutenberg/blocks.build.js:1 msgid "Selected category" msgstr "Catégorie sélectionnée" #: js/gutenberg/blocks.build.js:1 msgid "Select category" msgstr "Sélectionnez une catégorie" #: js/gutenberg/blocks.build.js:1 msgid "Add categories" msgstr "Ajouter des catégories" #: js/gutenberg/blocks.build.js:1 msgid "Display category page" msgstr "Afficher la page des catégories" #: js/gutenberg/blocks.build.js:1 msgid "Store Category Page" msgstr "Page des catégories de magasins" #: js/gutenberg/blocks.build.js:1 msgid "Display shopping bag link and summary" msgstr "Afficher le lien et le résumé du sac à provisions" #: js/gutenberg/blocks.build.js:1 msgid "Shopping Cart Icon" msgstr "Icône du panier d'achat" #: js/gutenberg/blocks.build.js:1 msgid "The block is hidden because you don't have categories in your store. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Add categories.</a>" msgstr "Le bloc est caché parce que vous n'avez pas de catégories dans votre magasin. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Ajoutez des catégories.</a>" #: js/gutenberg/blocks.build.js:1 msgid "Categories" msgstr "Catégories" #: js/gutenberg/blocks.build.js:1 msgid "Display categories navigation bar" msgstr "Afficher la barre de navigation des catégories" #: js/gutenberg/blocks.build.js:1 msgid "Store Categories Menu" msgstr "Menu des catégories de magasins" #: js/gutenberg/blocks.build.js:1 msgid "Product Search Box" msgstr "Boîte de recherche de produits" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:25 #: js/gutenberg/blocks.build.js:1 msgid "Linked product" msgstr "Produit lié" #: js/gutenberg/blocks.build.js:1 msgid "Display a buy button" msgstr "Afficher un bouton d'achat" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:10 #: js/gutenberg/blocks.build.js:1 msgid "Buy Now Button" msgstr "Bouton « Acheter maintenant »" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:52 #: js/gutenberg/blocks.build.js:1 msgid "Show price inside the «Buy now» button" msgstr "Afficher le prix à l'intérieur du bouton « Acheter maintenant »" #: js/gutenberg/blocks.build.js:1 msgctxt "gutenberg-product-block" msgid "Content" msgstr "Contenu" #: js/gutenberg/blocks.build.js:1 msgid "Change" msgstr "Changer" #: js/gutenberg/blocks.build.js:1 msgid "Displayed product" msgstr "Produit exposé" #: js/gutenberg/blocks.build.js:1 msgid "Display product with a buy button" msgstr "Afficher le produit avec un bouton d'achat" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Small" msgstr "Carte de produit petite" #: js/gutenberg/blocks.build.js:1 msgid "Very dark gray" msgstr "Gris très foncé" #: js/gutenberg/blocks.build.js:1 msgid "Cyan bluish gray" msgstr "Gris bleuâtre cyan" #: js/gutenberg/blocks.build.js:1 msgid "Very light gray" msgstr "Gris très clair" #: js/gutenberg/blocks.build.js:1 msgid "Vivid cyan blue" msgstr "Bleu cyan vif" #: js/gutenberg/blocks.build.js:1 msgid "Pale cyan blue" msgstr "Bleu cyan pâle" #: js/gutenberg/blocks.build.js:1 msgid "Vivid green cyan" msgstr "Vert cyan vif" #: js/gutenberg/blocks.build.js:1 msgid "Light green cyan" msgstr "Vert cyan clair" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid amber" msgstr "Ambre vif et lumineux" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid orange" msgstr "Orange vif et lumineux" #: js/gutenberg/blocks.build.js:1 msgid "Vivid red" msgstr "Rouge vif" #: js/gutenberg/blocks.build.js:1 msgid "Pale pink" msgstr "Rose pâle" #: js/gutenberg/blocks.build.js:1 msgid "Set manually" msgstr "Régler manuellement" #: js/gutenberg/blocks.build.js:1 msgid "Detect automatically" msgstr "Détection automatique" #: js/gutenberg/blocks.build.js:1 msgid "Color settings" msgstr "Paramètres de couleur" #: js/gutenberg/blocks.build.js:1 msgid "Store Navigation" msgstr "Navigation dans le magasin" #: js/gutenberg/blocks.build.js:1 msgid "Store Front Page" msgstr "Première page du magasin" #: js/gutenberg/blocks.build.js:1 msgid "Product sidebar content" msgstr "Contenu de la barre latérale des produits" #: js/gutenberg/blocks.build.js:1 msgid "Product Page Appearance" msgstr "Apparence de la page du produit" #: js/gutenberg/blocks.build.js:1 msgid "Product List Appearance" msgstr "Apparence de la liste des produits" #: js/gutenberg/blocks.build.js:1 msgid "Category List Appearance" msgstr "Apparence de la liste des catégories" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Pour améliorer l'aspect et la convivialité de votre page de produit et en gérer l'apparence ici, veuillez activer l'option « Aspect et convivialité de nouvelle génération de la page du produit sur la vitrine virtuelle » dans le tableau de bord de votre magasin (« <a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Paramètres → Nouveautés</a> »)." #: js/gutenberg/blocks.build.js:1 msgid "Display cart icon" msgstr "Afficher l'icône du panier" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Pour améliorer l'aspect et la convivialité de votre page de produit et en gérer l'apparence ici, veuillez activer l'option « Aspect et convivialité de nouvelle génération de la page du produit sur la vitrine virtuelle » dans le tableau de bord de votre magasin (« <a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Paramètres → Nouveautés</a> »)." #: js/gutenberg/blocks.build.js:1 msgid "Add storefront (product listing)" msgstr "Ajouter une vitrine virtuelle (liste de produits)" #: templates/admin/storefront/main.php:21 msgid "Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers." msgstr "Les clients ne peuvent pas voir la page de votre magasin parce qu'elle est en version préliminaire. Publiez la page pour la mettre à la disposition de vos clients." #: templates/admin/storefront/main.php:20 msgid "The store is not visible on your site" msgstr "Le magasin n'est pas visible sur votre site" #: templates/admin/storefront/main.php:4 msgid "Your Storefront" msgstr "Votre vitrine virtuelle" #: templates/admin/storefront/area-promo.php:30 msgid "Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars." msgstr "Aidez les clients à trouver votre magasin sur le site. Ajoutez le lien du magasin au menu du site, créez des pages supplémentaires sur le magasin et mettez en évidence les produits du magasin sur d'autres pages du site et dans les barres latérales." #: templates/admin/storefront/area-promo.php:29 msgid "Promote your store" msgstr "Faites la promotion de votre magasin" #: templates/admin/storefront/area-promo.php:26 msgid "Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store." msgstr "Restez en contact avec vos clients. Mettez à jour le contenu de votre magasin à tout moment pour informer les clients des promotions en cours et des nouveautés dans votre magasin." #: templates/admin/storefront/area-promo.php:25 msgid "Change store content" msgstr "Modifier le contenu du magasin" #: templates/admin/storefront/area-promo.php:22 msgid "Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand." msgstr "Personnalisez l'apparence de votre magasin pour répondre aux besoins de votre entreprise. Donnez à votre magasin l'aspect et la convivialité exacts qui reflètent votre marque." #: templates/admin/storefront/area-promo.php:21 msgid "Customize store appearance" msgstr "Personnaliser l'apparence du magasin" #: templates/admin/storefront/area-promo.php:7 msgid "Add your %s store to the website and start selling in minutes." msgstr "Ajoutez votre magasin %s au site Web et commencez à vendre en quelques minutes." #: templates/admin/storefront/area-promo.php:3 msgid "What's next?" msgstr "Et ensuite ?" #: templates/admin/storefront/area-additional.php:224 msgid "Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar." msgstr "Votre boutique est ajoutée à plusieurs pages du site. Choisissez la page principale. Les clients sont dirigés vers la page principale de la boutique lorsqu'ils cliquent sur l'icône du panier, sur les liens de la boutique dans le menu du site et sur les produits dans la barre latérale." #: templates/admin/storefront/area-additional.php:222 msgid "Choose the main store page" msgstr "Choisissez la page principale du magasin" #: templates/admin/storefront/area-additional.php:200 msgid "Go to Pages" msgstr "Aller aux pages" #: templates/admin/storefront/area-additional.php:193 msgid "You can add the entire storefront, categories, products, or \"Buy now\" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block." msgstr "Vous pouvez ajouter l'ensemble de la vitrine virtuelle, des catégories, des produits ou des boutons « Acheter maintenant » à d'autres pages de votre site. Pour ce faire, ouvrez une page dans l'éditeur et ajoutez un bloc %s approprié." #: templates/admin/storefront/area-additional.php:189 msgid "Add your store to other site pages" msgstr "Ajouter votre boutique à d'autres pages du site" #: templates/admin/storefront/area-additional.php:166 msgid "Create Product Page" msgstr "Créer une page de produit" #: templates/admin/storefront/area-additional.php:150 msgid "Pick Product" msgstr "Choisir un produit" #: templates/admin/storefront/area-additional.php:136 #: templates/admin/storefront/area-additional.php:138 msgid "Create a landing page featuring one of your products." msgstr "Créez une page d'accueil présentant un de vos produits." #: templates/admin/storefront/area-additional.php:132 msgid "Add a product page" msgstr "Ajouter une page de produit" #: templates/admin/storefront/area-additional.php:109 msgid "Create Category Page" msgstr "Créer une page de catégorie" #: templates/admin/storefront/area-additional.php:93 msgid "Pick Category" msgstr "Choisissez une catégorie" #: templates/admin/storefront/area-additional.php:79 #: templates/admin/storefront/area-additional.php:81 msgid "Feature a specific store category on a separate page of your site." msgstr "Présentez une catégorie de magasin spécifique sur une page indépendante de votre site." #: templates/admin/storefront/area-additional.php:75 msgid "Add a category page" msgstr "Ajouter une page de catégorie" #: templates/admin/storefront/area-additional.php:54 msgid "Create Search Page" msgstr "Créer une page de recherche" #: templates/admin/storefront/area-additional.php:50 msgid "Show customers that they can use a search and filters to find desired products faster." msgstr "Montrez aux clients qu'ils peuvent utiliser une recherche et des filtres pour trouver plus rapidement les produits souhaités." #: templates/admin/storefront/area-additional.php:48 msgid "Add a search and filters page" msgstr "Ajouter une page de recherche et de filtres" #: templates/admin/storefront/area-additional.php:27 msgid "Create Cart Page" msgstr "Créer une page de panier" #: templates/admin/storefront/area-additional.php:23 msgid "Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout." msgstr "Les clients se rendent sur la page du panier pour examiner les produits qu'ils ont ajoutés au panier et passer à la caisse." #: templates/admin/storefront/area-additional.php:21 msgid "Add cart and checkout page" msgstr "Ajouter le panier et passer à la caisse" #: templates/admin/storefront/area-additional.php:4 msgid "Highlight products, categories, and other store pages by adding them to separate website pages." msgstr "Mettez en évidence les produits, les catégories et les autres pages du magasin en les ajoutant à des pages distinctes du site Web." #: templates/admin/storefront/area-additional.php:3 msgid "Additional store pages" msgstr "Pages supplémentaires du magasin" #: templates/admin/storefront/draft-message.php:2 msgid "Publish the page to use this option" msgstr "Publier la page pour utiliser cette option" #: templates/admin/storefront/area-design.php:55 msgid "Along with the store catalog, you can add other widgets and texts to the store page." msgstr "En plus du catalogue du magasin, vous pouvez ajouter d'autres widgets et textes à la page du magasin." #: templates/admin/storefront/area-design.php:54 msgid "Store page content" msgstr "Contenu de la page du magasin" #: templates/admin/storefront/area-design.php:25 #: templates/admin/storefront/area-design.php:27 msgid "Adjust your store design to fit your business needs." msgstr "Adaptez la conception de votre magasin aux besoins de votre entreprise." #: templates/admin/storefront/area-design.php:21 msgid "Store appearance" msgstr "Apparence du magasin" #: templates/admin/storefront/area-design.php:4 msgid "Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers." msgstr "Personnalisez l'apparence de votre vitrine virtuelle et modifiez le contenu de la page du magasin pour qu'elle reflète votre marque et reste en contact avec vos clients." #: templates/admin/storefront/area-design.php:3 msgid "Design and content" msgstr "Conception et contenu" #: templates/admin/storefront/area-status.php:124 msgid "Create Store Page" msgstr "Créer une page de magasin" #: templates/admin/storefront/area-status.php:121 msgid "Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display." msgstr "Votre magasin n'est ajouté à aucune page de votre site. Pour permettre aux clients d'explorer votre magasin et de passer des commandes, créez une page où le magasin s'affichera." #: templates/admin/storefront/area-status.php:115 msgid "Set Up Your Store" msgstr "Configurez votre magasin" #: templates/admin/storefront/area-status.php:109 msgid "To show your storefront instead of the demo store, connect your existing %s account or create a new one." msgstr "Pour afficher votre vitrine virtuelle au lieu du magasin de démonstration, connectez votre compte %s existant ou créez-en un nouveau." #: templates/admin/storefront/area-status.php:101 msgid "Publish Store Page" msgstr "Publier la page du magasin" #: templates/admin/storefront/area-status.php:98 msgid "Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders." msgstr "La page de votre magasin est actuellement en version préliminaire. Lorsque vous serez prêt, publiez-la pour permettre aux clients de naviguer dans le magasin et de passer des commandes." #: templates/admin/storefront/area-status.php:92 msgid "View Store Page" msgstr "Voir la page du magasin" #: templates/admin/storefront/area-status.php:86 msgid "Your store page is published. Customers can browse your store at " msgstr "La page de votre magasin est publiée. Les clients peuvent consulter votre magasin sur " #: templates/admin/storefront/area-status.php:77 msgid "View demo store page" msgstr "Voir la page du magasin de démonstration" #: templates/admin/storefront/area-status.php:46 msgid "Draft" msgstr "Version préliminaire" #: templates/admin/storefront/area-status.php:45 msgid "Published" msgstr "Publié" #: templates/admin/storefront/area-status.php:33 #: templates/admin/storefront/area-status.php:36 msgid "Status" msgstr "État" #: templates/admin/storefront/area-status.php:29 msgid "Add a store page" msgstr "Ajouter une page de magasin" #: templates/admin/storefront/area-status.php:24 msgid "Connect your %s store" msgstr "Connectez votre magasin %s" #: templates/admin/storefront/area-status.php:21 msgid "Your store page" msgstr "La page de votre magasin" #: templates/admin/storefront/area-status.php:10 msgid "To start selling, add a page to your site where the storefront will display." msgstr "Pour commencer à vendre, ajoutez une page à votre site où la vitrine virtuelle s'affichera." #: templates/admin/storefront/area-status.php:7 msgid "While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site." msgstr "Tant que votre magasin n'est pas connecté, un magasin de démonstration s'affiche sur votre site. Consultez-la pour vous faire une idée de l'aspect que votre magasin peut avoir sur le site." #: templates/admin/storefront/area-status.php:4 msgid "Store page on your site" msgstr "Page du magasin sur votre site" #: templates/admin/storefront/area-navigation.php:205 msgid "The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href=\"%s\" target=\"_blank\">adjust the cart icon appearance</a>." msgstr "L'icône du panier indique le nombre d'articles dans le panier et aide les clients à passer à la caisse. En outre, vous pouvez <a href=\"%s\" target=\"_blank\">ajuster l'apparence de l'icône du panier</a>." #: templates/admin/storefront/area-navigation.php:201 msgid "Display the shopping cart icon on site pages" msgstr "Afficher l'icône du panier sur les pages du site" #: templates/admin/storefront/area-navigation.php:179 msgid "Manage Sidebar" msgstr "Gérer la barre latérale" #: templates/admin/storefront/area-navigation.php:175 msgid "Highlight your best sellers or new products in the website sidebar." msgstr "Mettez en évidence vos meilleures ventes ou vos nouveaux produits dans la barre latérale du site." #: templates/admin/storefront/area-navigation.php:173 msgid "Feature your products in the sidebar" msgstr "Mettez vos produits en vedette dans la barre latérale" #: templates/admin/storefront/area-navigation.php:151 msgid "Add Store Page to Menu" msgstr "Ajouter la page du magasin au menu" #: templates/admin/storefront/area-navigation.php:147 msgid "Make your store accessible from the site menu so your customers can easily find it." msgstr "Faites en sorte que votre magasin soit accessible à partir du menu du site afin que vos clients puissent le trouver facilement." #: templates/admin/storefront/area-navigation.php:141 msgid "Add store page to the site menu" msgstr "Ajouter la page du magasin au menu du site" #: templates/admin/storefront/area-navigation.php:118 msgid "Edit URL Slug" msgstr "Modifier la limace URL" #: templates/admin/storefront/area-navigation.php:102 msgid "Current URL slug: /<span data-ec-store-slug>%s</span>" msgstr "Limace URL actuelle : /<span data-ec-store-slug>%s</span>" #: templates/admin/storefront/area-navigation.php:78 msgid "Save" msgstr "Sauvegarder" #: templates/admin/storefront/area-navigation.php:69 msgid "URL Slug" msgstr "Limace URL" #: templates/admin/storefront/area-navigation.php:60 #: templates/admin/storefront/area-navigation.php:113 msgid "A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use \"/shop\" or \"/products\"." msgstr "Une limace est la dernière partie d'une URL. Vous pouvez créer une limace personnalisée pour la page de votre magasin. Il est préférable qu'elle soit courte, car les clients et les moteurs de recherche préfèrent les URL courtes. Par exemple, utilisez « magasin » ou « produits »." #: templates/admin/storefront/area-navigation.php:56 #: templates/admin/storefront/area-navigation.php:98 msgid "Customize store page address" msgstr "Personnaliser l'adresse de la page du magasin" #: templates/admin/storefront/area-navigation.php:29 msgid "Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href=\"%s\" target=\"_blank\">WordPress Settings > Reading</a>" msgstr "Ajoutez votre vitrine virtuelle à la page d'accueil du site Web pour la mettre en évidence. Vous pouvez également modifier les paramètres de la page d'accueil du site dans <a href=\"%s\" target=\"_blank\">Paramètres de WordPress > Lecture</a>" #: templates/admin/storefront/area-navigation.php:21 msgid "Show your store on the home page" msgstr "Affichez votre magasin sur la page d'accueil" #: templates/admin/storefront/area-navigation.php:4 msgid "Help customers find your store on the website." msgstr "Aidez les clients à trouver votre magasin sur le site Web." #: templates/admin/storefront/area-navigation.php:3 msgid "Navigation" msgstr "Navigation" #: templates/admin/welcome-no_oauth.php:12 msgid "Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>." msgstr "L'identifiant du magasin est un identifiant unique de votre compte %1$s. Vous pouvez le trouver dans votre panneau de contrôle %1$s sur la <a %2$s>page du tableau de bord</a>." #: templates/admin/welcome-create.php:11 msgid "Your store has been created. Preparing your store dashboard ..." msgstr "Votre magasin a été créé. Préparer le tableau de bord de votre boutique..." #: templates/admin/welcome-connect.php:8 msgid "Create store" msgstr "Créer un magasin" #: templates/admin/welcome-connect.php:4 msgid "Connect Your Store" msgstr "Connectez votre magasin" #: templates/admin/welcome-page.php:61 msgid "Provided by <a %s>%s</a>" msgstr "Fourni par <a %s>%s</a>" #: templates/admin/welcome-page.php:33 msgid "To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>." msgstr "Pour ajouter votre magasin à votre site Web, inscrivez l'identifiant de votre magasin %1$s dans le champ ci-dessous. Si vous n'avez pas encore de compte %1$s, créez-en un gratuitement sur le <a %2$s>site Web %1$s</a>." #: templates/admin/welcome-page.php:20 msgid "Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website." msgstr "Créez un nouveau magasin ou connectez un magasin existant, si vous avez déjà un compte %s. Le module d'extension vous guidera dans la configuration de la boutique et vous aidera à la publier sur votre site Web." #: templates/admin/welcome-page.php:12 msgid "Add an Online Store to Your Website" msgstr "Ajoutez un magasin en ligne à votre site Web" #: includes/class-ecwid-store-page.php:566 msgid "This is a demo store. Create your store to see your store products here." msgstr "Il s'agit d'un magasin de démonstration. Créez votre magasin pour voir les produits de votre magasin ici." #: includes/class-ecwid-admin-storefront-page.php:539 msgid "Publish" msgstr "Publier" #: templates/admin/storefront/area-design.php:33 #: templates/admin/storefront/area-design.php:59 #: includes/class-ecwid-admin-storefront-page.php:532 msgid "Edit" msgstr "Modifier" #: includes/class-ecwid-admin-storefront-page.php:525 msgid "Preview" msgstr "Aperçu" #: includes/class-ecwid-admin-storefront-page.php:516 msgid "Switch to draft" msgstr "Passer au projet" #: includes/class-ecwid-admin-storefront-page.php:506 msgid "Edit page" msgstr "Modifier la page" #: includes/class-ecwid-admin-storefront-page.php:499 msgid "View store page" msgstr "Voir la page du magasin" #: includes/class-ecwid-admin-storefront-page.php:286 msgid "Search products" msgstr "Rechercher des produits" #: includes/class-ecwid-admin-storefront-page.php:265 msgid "Category" msgstr "Catégorie" #: includes/class-ecwid-admin-storefront-page.php:240 msgid "Page with that name already exists." msgstr "Une page portant ce nom existe déjà." #: includes/class-ecwid-admin.php:538 msgid "My Profile" msgstr "Mon profil" #: includes/class-ecwid-admin.php:533 msgid "Apps" msgstr "Applications" #: includes/class-ecwid-admin.php:523 msgid "Shipping & Pickup" msgstr "Expédition et ramassage" #: includes/class-ecwid-admin.php:518 msgid "Payment" msgstr "Paiement" #: includes/class-ecwid-admin.php:513 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:88 msgid "Design" msgstr "Conception" #: includes/class-ecwid-admin.php:509 msgid "Configuration" msgstr "Configuration" #: includes/class-ecwid-admin.php:504 msgid "All Sales Channels" msgstr "Tous les canaux de vente" #: includes/class-ecwid-admin.php:499 msgid "Website" msgstr "Site Web" #: includes/class-ecwid-admin.php:494 msgid "Mobile" msgstr "Mobile" #: includes/class-ecwid-admin.php:485 msgid "Sales channels" msgstr "Canaux de vente" #: includes/class-ecwid-admin.php:480 msgid "Reports" msgstr "Rapports" #: includes/class-ecwid-admin.php:475 msgid "Marketing" msgstr "Marketing" #: includes/class-ecwid-admin.php:470 msgid "Catalog" msgstr "Catalogue" #: includes/class-ecwid-admin.php:465 msgid "My Sales" msgstr "Mes ventes" #: includes/class-ecwid-admin.php:455 msgid "Store management" msgstr "Gestion du magasin" #: includes/class-ecwid-admin.php:344 msgid "Instant site" msgstr "Site instantané" #: includes/class-ecwid-admin.php:153 includes/class-ecwid-admin.php:154 #: includes/class-ecwid-admin.php:309 msgid "Storefront" msgstr "Vitrine virtuelle" #: ecwid-shopping-cart.php:1111 msgid "Manage storefront" msgstr "Gérer la vitrine virtuelle" #: ecwid-shopping-cart.php:1111 msgid "Customize design" msgstr "Personnaliser la conception" #: ecwid-shopping-cart.php:1103 msgid "Manage store" msgstr "Gérer le magasin" #: templates/importer/woo-main.tpl.php:97 msgid "Start Import" msgstr "Démarrer l'importation" #: templates/importer/woo-main.tpl.php:87 msgid "Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target=\"_blank\">\"Billing & Plans\"</a></nobr> page in your Ecwid store control panel." msgstr "Veuillez tenir compte du nombre maximum de produits et de catégories que vous pouvez avoir dans votre magasin Ecwid. Cet outil d'importation s'arrêtera automatiquement lorsque la limite de produits du magasin sera atteinte. Pour vérifier la limite actuelle de votre magasin ou l'augmenter, veuillez consulter la page <nobr><a %s target=\"_blank\">« Facturation et plans »</a></nobr> dans le panneau de contrôle de votre magasin Ecwid." #: templates/importer/woo-main.tpl.php:82 msgid "Import creates new products and update the existing products with matching SKUs." msgstr "L'importation crée de nouveaux produits et met à jour les produits existants avec les Référence correspondantes." #: templates/importer/woo-main.tpl.php:60 msgid "Copying products and categories." msgstr "Copie de produits et de catégories." #: templates/importer/woo-main.tpl.php:50 msgid "Import completed. <a href=\"%s\">Run again.</a>" msgstr "Importation terminée. <a href=\"%s\">Exécutez à nouveau.</a>" #: templates/importer/woo-main.tpl.php:34 msgid "Import is in Progress" msgstr "L'importation est en cours" #: templates/importer/woo-main.tpl.php:32 msgid "Import your products from Woocommerce to %s" msgstr "Importez vos produits de Woocommerce à %s" #: templates/importer/woo-main.tpl.php:18 msgid "Update your catalog" msgstr "Mettez à jour votre catalogue" #: templates/importer/woo-main.tpl.php:4 msgid "Import Your Products From Woocommerce to %s" msgstr "Importez vos produits de Woocommerce à %s" #: templates/importer/import-no-token.tpl.php:3 msgid "Click the connect button to get rights to update the product catalog" msgstr "Cliquez sur le bouton de connexion pour obtenir les droits de mise à jour du catalogue de produits" #: templates/importer/woo-complete-alert.tpl.php:52 msgid "Go to Your %s Products" msgstr "Allez à vos %s produits " #: templates/importer/woo-complete-alert.tpl.php:43 msgid "Download <a href=\"%s\">import log</a>" msgstr "Téléchargez le <a href=\"%s\">journal d'importation</a>" #: templates/importer/woo-complete-alert.tpl.php:32 msgid "Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>" msgstr "Une partie des produits n'a pas été copiée dans %1$s, car vous avez atteint la limite de produits de votre plan tarifaire dans %1$s. Si vous souhaitez importer davantage de produits, veuillez envisager de <nobr><a %2$s>mettre à jour votre plan %1$s.</a></nobr>" #: templates/importer/woo-complete-alert.tpl.php:21 msgid "<b>%s</b> categories" msgstr "<b>%s</b> catégories" #: templates/importer/woo-complete-alert.tpl.php:18 msgid "Imported <b>%s</b> products" msgstr "<b>%s</b> produits importés" #: templates/importer/woo-complete-alert.tpl.php:15 msgid "Import completed" msgstr "Importation terminée" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:10 #: includes/widgets/class-ecwid-widget-product-browser.php:12 msgid "Online store" msgstr "Boutique en ligne" #: includes/class-ecwid-store-page.php:476 msgid "%s Store Page" msgstr "%s page du magasin" #: templates/advanced-settings.php:79 msgid "Integration with search on your site" msgstr "Intégration avec la recherche sur votre site" #: templates/sync.php:130 msgid "Deleted products synchronized: %1$s out of %2$s" msgstr "Produits supprimés synchronisés : %1$s sur %2$s" #: includes/class-ecwid-custom-admin-page.php:66 msgid "Themes for Ecwid" msgstr "Thèmes pour Ecwid" #: includes/class-ecwid-custom-admin-page.php:33 msgid "Plugins for Ecwid" msgstr "Modules d'extension pour Ecwid" #: includes/class-ecwid-popup-deactivate.php:138 msgid "I use this WordPress theme: %s" msgstr "J'utilise ce thème WordPress : %s" #: includes/class-ecwid-popup-deactivate.php:132 msgid "I couldn’t find a WordPress theme that goes well with %s" msgstr "Je n'ai pas trouvé de thème WordPress qui convienne à %s" #: includes/class-ecwid-product-browser.php:357 msgid "On the right" msgstr "À droite" #: includes/class-ecwid-product-browser.php:353 msgid "On the left" msgstr "À gauche" #: includes/class-ecwid-product-browser.php:349 msgid "Filters panel position" msgstr "Position du panel de filtres" #: includes/class-ecwid-product-browser.php:209 msgid "Default product_ID" msgstr "Identifiant du produit par défaut" #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:73 msgid "Cart icon" msgstr "Icône du panier" #: templates/shortcode-stub-store.tpl.php:4 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:20 #: js/gutenberg/blocks.build.js:1 msgid "Store Home Page" msgstr "Page d'accueil du magasin" #: ecwid-shopping-cart.php:431 msgid "Edit Category" msgstr "Modifier la catégorie" #: ecwid-shopping-cart.php:430 msgid "Edit Product" msgstr "Modifier le produit" #: includes/class-ecwid-admin.php:142 includes/class-ecwid-admin.php:143 msgid "Online Store Apps" msgstr "Applications de la boutique en ligne" #. Plugin Name of the plugin msgid "Ecwid Ecommerce Shopping Cart" msgstr "Panier d'achat Ecwid Ecommerce" #: includes/class-ecwid-custom-admin-page.php:58 includes/faq_entries.php:76 msgid "Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href=\"%s\">TemplateMonster themes</a>" msgstr "Ecwid est compatible avec tous les thèmes WordPress. Qu'il s'agisse d'un thème gratuit du catalogue WordPress.org, d'un thème de qualité supérieure d'un fournisseur tiers ou d'un thème sur mesure, votre boutique Ecwid s'en accommodera parfaitement. Si vous souhaitez un thème de qualité supérieure, nous vous recommandons les <a href=\"%s\">thèmes TemplateMonster</a>" #: includes/faq_entries.php:74 msgid "Is there a WordPress theme for Ecwid?" msgstr "Existe-t-il un thème WordPress pour Ecwid ?" #: templates/admin-footer.php:19 msgid "<a href=\"admin.php?page=" msgstr "<a href=\"admin.php?page=" #: includes/integrations/class-ecwid-integration-gutenberg.php:113 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:25 msgid "You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href=\"%1$s\">Appearance → Customize → %2$s</a>” menu to enable it." msgstr "Vous pouvez activer un widget supplémentaire avec une icône de sac à provisions qui apparaîtra sur les pages de votre site. Ouvrez le menu « <a href=\"%1$s\">Apparence → Personnaliser → %2$s</a> » pour l'activer." #: includes/integrations/class-ecwid-integration-gutenberg.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:18 msgctxt "gutenberg-store-block-stub" msgid "Store" msgstr "Boutique" #: includes/class-ecwid-product-browser.php:472 msgid "Image feed" msgstr "Flux d'images" #: includes/class-ecwid-product-browser.php:467 msgid "Vertical thumbnails" msgstr "Vignettes verticales" #: includes/class-ecwid-product-browser.php:462 msgid "Horizontal thumbnails" msgstr "Vignettes horizontales" #: includes/class-ecwid-product-browser.php:452 msgid "3 columns, image on the right" msgstr "Trois colonnes, image à droite" #: includes/class-ecwid-product-browser.php:448 msgid "3 columns, image on the left" msgstr "Trois colonnes, image à gauche" #: includes/class-ecwid-product-browser.php:444 msgid "2 columns, image on the right" msgstr "Deux colonnes, image à droite" #: includes/class-ecwid-product-browser.php:440 msgid "2 columns, image on the left" msgstr "Deux colonnes, image à gauche" #: includes/class-ecwid-product-browser.php:429 msgid "Landscape 3:2" msgstr "Paysage 3:2" #: includes/class-ecwid-product-browser.php:424 msgid "Landscape 4:3" msgstr "Paysage 4:3" #: includes/class-ecwid-product-browser.php:419 msgid "Square 1:1" msgstr "Carré 1:1" #: includes/class-ecwid-product-browser.php:414 msgid "Portrait 3:4" msgstr "Portrait 3:4" #: includes/class-ecwid-product-browser.php:409 msgid "Portrait 2:3" msgstr "Portrait 2:3" #: includes/class-ecwid-product-browser.php:399 msgid "L" msgstr "L" #: includes/class-ecwid-product-browser.php:395 msgid "M" msgstr "M" #: includes/class-ecwid-product-browser.php:391 msgid "S" msgstr "S" #: includes/class-ecwid-product-browser.php:381 msgid "Show on hover" msgstr "Afficher au survol" #: includes/class-ecwid-product-browser.php:377 msgid "Hide" msgstr "Cacher" #: includes/class-ecwid-product-browser.php:373 msgid "Show" msgstr "Afficher" #: includes/class-ecwid-product-browser.php:342 msgid "Background color" msgstr "Couleur de fond" #: includes/class-ecwid-product-browser.php:335 msgid "Link color" msgstr "Couleur du lien" #: includes/class-ecwid-product-browser.php:328 msgid "Price color" msgstr "Couleur du prix" #: includes/class-ecwid-product-browser.php:321 msgid "Text color" msgstr "Couleur du texte" #: includes/class-ecwid-product-browser.php:314 msgid "Button color" msgstr "Couleur des boutons" #: includes/class-ecwid-product-browser.php:299 msgid "Wholesale prices" msgstr "Prix de gros" #: includes/class-ecwid-product-browser.php:292 msgid "\"In stock\" label" msgstr "Étiquette « en stock »" #: includes/class-ecwid-product-browser.php:285 msgid "Available qty in stock" msgstr "Quantité disponible en stock" #: includes/class-ecwid-product-browser.php:278 msgid "Product quantity" msgstr "Quantité de produits" #: includes/class-ecwid-product-browser.php:271 msgctxt "product-browser-attributes" msgid "Product price" msgstr "Prix du produit" #: includes/class-ecwid-product-browser.php:264 msgctxt "product-browser-attributes" msgid "Product SKU" msgstr "UGS du produit" #: includes/class-ecwid-product-browser.php:257 msgid "Breadcrumbs" msgstr "Fils d'Ariane" #: includes/class-ecwid-product-browser.php:241 msgid "Image gallery layout" msgstr "Mise en page de la galerie d'images" #: includes/integrations/class-ecwid-integration-gutenberg.php:391 #: includes/class-ecwid-product-browser.php:224 #: includes/class-ecwid-product-browser.php:233 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:212 msgid "Show description under the image" msgstr "Afficher la description sous l'image" #: includes/class-ecwid-product-browser.php:216 msgid "Product page layout" msgstr "Mise en page du produit" #: includes/class-ecwid-product-browser.php:194 msgid "Display sort by link" msgstr "Afficher le tri par lien" #: includes/class-ecwid-product-browser.php:186 #: includes/class-ecwid-product-browser.php:306 msgid "Display sign in link" msgstr "Afficher le signe dans le lien" #: includes/class-ecwid-product-browser.php:178 msgid "Display footer menu" msgstr "Afficher le menu de bas de page" #: includes/class-ecwid-product-browser.php:170 msgid "Display breadcrumbs" msgstr "Afficher les fils d'Ariane" #: includes/class-ecwid-product-browser.php:163 js/gutenberg/blocks.build.js:1 msgid "Display search box" msgstr "Afficher la boîte de recherche" #: includes/class-ecwid-product-browser.php:156 msgid "Display categories menu" msgstr "Afficher le menu des catégories" #: includes/class-ecwid-product-browser.php:148 msgid "Category thumbnail aspect ratio" msgstr "Rapport d'aspect des vignettes des catégories" #: includes/class-ecwid-product-browser.php:140 msgid "Category thumbnail size" msgstr "Taille des vignettes des catégories" #: includes/class-ecwid-product-browser.php:131 msgid "Image only" msgstr "Image seulement" #: includes/class-ecwid-product-browser.php:127 msgid "Title only" msgstr "Titre seulement" #: includes/class-ecwid-product-browser.php:123 msgid "Image and title on mouse over" msgstr "Image et titre au survol de la souris" #: includes/class-ecwid-product-browser.php:119 msgid "Title on image" msgstr "Titre sur l'image" #: includes/class-ecwid-product-browser.php:115 msgid "Title under image" msgstr "Titre sous l'image" #: includes/class-ecwid-product-browser.php:111 msgid "Category card layout" msgstr "Mise en page de la carte des catégories" #: includes/class-ecwid-product-browser.php:103 msgid "Show additional image on hover" msgstr "Afficher une image supplémentaire au survol" #: includes/class-ecwid-product-browser.php:95 msgid "Buy now buttons" msgstr "Acheter maintenant les boutons" #: includes/class-ecwid-product-browser.php:87 msgid "Product SKU" msgstr "UGS du produit" #: includes/class-ecwid-product-browser.php:79 msgid "Product price" msgstr "Prix du produit" #: includes/class-ecwid-product-browser.php:71 msgid "Product title" msgstr "Titre du produit" #: includes/class-ecwid-product-browser.php:61 msgid "Justify" msgstr "Justifier" #: includes/class-ecwid-product-browser.php:56 msgid "Right" msgstr "Droite" #: includes/class-ecwid-product-browser.php:51 msgid "Center" msgstr "Centre" #: includes/class-ecwid-product-browser.php:46 msgid "Left" msgstr "Gauche" #: includes/class-ecwid-product-browser.php:42 msgid "Product card text align" msgstr "Alignement du texte de la carte de produit" #: includes/class-ecwid-product-browser.php:34 msgid "Show product card border" msgstr "Afficher la bordure de la carte de produit" #: includes/class-ecwid-product-browser.php:26 msgid "Product thumbnail aspect ratio" msgstr "Rapport d'aspect des vignettes des produits" #: includes/class-ecwid-product-browser.php:18 msgid "Product thumbnail size" msgstr "Taille de la vignette du produit" #: includes/class-ecwid-product-browser.php:10 msgid "Show product thumbnails" msgstr "Afficher les vignettes des produits" #. Author of the plugin msgid "Ecwid Ecommerce" msgstr "Ecwid Ecommerce" #: templates/importer/woo-summary.tpl.php:34 msgid "After import, your %s store will have " msgstr "Après l'importation, votre magasin %s aura " #: templates/importer/woo-summary.tpl.php:21 msgid "Your %s store has " msgstr "Votre magasin %s a " #: templates/importer/woo-summary.tpl.php:10 msgid "Your WooCommerce store has " msgstr "Votre magasin WooCommerce a " #: includes/integrations/class-ecwid-integration-elementor.php:64 #: includes/integrations/class-ecwid-integration-divibuilder.php:25 #: includes/integrations/class-ecwid-integration-gutenberg.php:94 msgid "%s Store" msgstr "%s magasin" #: includes/importer/class-ecwid-import-page.php:184 msgid "%s products" msgstr "%s produits" #: includes/importer/class-ecwid-import-page.php:178 msgid "%s products and %s categories" msgstr "%s produits et %s catégories" #: includes/class-ecwid-stub-renderer.php:27 #: includes/class-ecwid-admin-storefront-page.php:272 msgid "Product" msgstr "Produit" #: includes/class-ecwid-message-manager.php:278 #: includes/class-ecwid-message-manager.php:297 #: includes/class-ecwid-message-manager.php:318 msgid "Warning: some of your online store features are disabled. Please contact your hosting provider to resolve." msgstr "Attention : certaines fonctionnalités de votre boutique en ligne sont désactivées. Veuillez contacter votre fournisseur d'hébergement pour résoudre ce problème." #: templates/admin/legacy-connect.tpl.php:39 msgid "Create new account" msgstr "Créer un nouveau compte" #: templates/admin/legacy-connect.tpl.php:33 msgid "Register at %s" msgstr "S'inscrire à %s" #: includes/class-ecwid-floating-minicart.php:155 msgid "Bottom left" msgstr "En bas à gauche" #: includes/class-ecwid-floating-minicart.php:154 msgid "Top left" msgstr "En haut à gauche" #: includes/class-ecwid-floating-minicart.php:113 msgid "Show on all pages" msgstr "Afficher sur toutes les pages" #: includes/class-ecwid-floating-minicart.php:112 msgid "Show on store pages" msgstr "Afficher sur les pages du magasin" #: includes/class-ecwid-floating-minicart.php:111 msgid "Do not show" msgstr "Ne pas montrer" #: includes/class-ecwid-customizer.php:134 msgid "Vertical indent" msgstr "Tiret vertical" #: includes/class-ecwid-customizer.php:123 msgid "Horizontal indent" msgstr "Tiret horizontal" #: includes/class-ecwid-customizer.php:97 msgid "Icon" msgstr "Icône" #: includes/class-ecwid-customizer.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:79 msgid "Border" msgstr "Bordure" #: includes/class-ecwid-customizer.php:72 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:67 msgid "Layout" msgstr "Mise en page" #: includes/class-ecwid-customizer.php:61 msgid "Show when empty" msgstr "Afficher quand c'est vide" #: includes/class-ecwid-customizer.php:49 msgid "Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The \"Show on store pages\" and \"Show when empty\" options will apply to the cart widget on site when published" msgstr "Remarque : lorsqu'il est activé, le widget du panier est toujours affiché en aperçu pour faciliter sa personnalisation. Les options « Afficher sur les pages du magasin » et « Afficher lorsque c'est vide » s'appliqueront au widget panier sur le site lors de la publication" #: includes/class-ecwid-customizer.php:47 msgid "Display shopping cart" msgstr "Afficher le panier" #: includes/class-ecwid-customizer.php:35 msgid "Shopping Cart Widget" msgstr "Widget du panier d'achat" #. Author URI of the plugin msgid "https://ecwid.to/ecwid-site" msgstr "https://ecwid.to/ecwid-site" #: templates/product-popup.php:247 msgid "selected product" msgstr "produit sélectionné" #: templates/product-popup.php:138 templates/product-popup.php:143 msgid "Selected Product" msgstr "Produit sélectionné" #: templates/product-popup.php:124 msgid " Choose another product" msgstr " Choisissez un autre produit" #: templates/importer/landing.tpl.php:20 msgid "Import your WooCommerce catalog to %s" msgstr "Importez votre catalogue WooCommerce dans %s" #: includes/widgets/nsf-minicart-editor.tpl.php:35 msgid "Border:" msgstr "Bordure :" #: includes/widgets/nsf-minicart-editor.tpl.php:19 msgid "Cart icon:" msgstr "Icône de panier :" #: includes/widgets/nsf-minicart-editor.tpl.php:3 msgid "Layout:" msgstr "Mise en page :" #: includes/class-ecwid-floating-minicart.php:145 msgid "No border" msgstr "Pas de bordure" #: includes/class-ecwid-floating-minicart.php:144 msgid "Pill" msgstr "Pilule" #: includes/class-ecwid-floating-minicart.php:143 msgid "Rectangle" msgstr "Rectangle" #: includes/class-ecwid-floating-minicart.php:136 msgid "Basket" msgstr "Panier" #: includes/class-ecwid-floating-minicart.php:134 msgid "Bag" msgstr "Sac" #: includes/class-ecwid-floating-minicart.php:127 msgid "Icon, label, item count, subtotal and link" msgstr "Icône, étiquette, nombre d'articles, sous-total et lien" #: includes/class-ecwid-floating-minicart.php:126 msgid "Icon, label, item count and subtotal" msgstr "Icône, étiquette, nombre d'articles et sous-total" #: includes/class-ecwid-floating-minicart.php:125 msgid "Icon, label and item count" msgstr "Icône, étiquette et nombre d'articles" #: includes/class-ecwid-floating-minicart.php:124 msgid "Icon and item count" msgstr "Nombre d'icônes et d'articles" #: includes/class-ecwid-floating-minicart.php:123 msgid "Label and item count" msgstr "Étiquette et nombre d'articles" #: includes/class-ecwid-floating-minicart.php:122 msgid "Item count only" msgstr "Nombre d'articles seulement" #: includes/class-ecwid-floating-minicart.php:121 msgid "Small icon and item count" msgstr "Petit nombre d'icônes et d'articles" #: includes/class-ecwid-floating-minicart.php:120 msgid "Small icon" msgstr "Petite icône" #: includes/widgets/class-ecwid-widget-minicart.php:9 msgid "Shopping Cart (deprecated)" msgstr "Panier d'achat (déprécié)" #: includes/widgets/class-ecwid-widget-minicart-miniview.php:9 msgid "Shopping Cart Mini (deprecated)" msgstr "Panier d'achat Mini (déprécié)" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:21 msgid "Shopping Cart Floating (deprecated)" msgstr "Panier d'achat flottant (déprécié)" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:69 msgid "Displays storefront: product listing and checkout" msgstr "Affiche la vitrine virtuelle : liste des produits et paiement" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:67 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:70 msgctxt "vc-tab" msgid "Online store" msgstr "Boutique en ligne" #: includes/integrations/class-ecwid-integration-gutenberg.php:105 #: includes/gutenberg/class-ecwid-gutenberg.php:131 msgid "Your product" msgstr "Votre produit" #: templates/shortcode-stub-store.tpl.php:18 #: includes/integrations/class-ecwid-integration-gutenberg.php:103 #: includes/widgets/class-ecwid-widget-product-browser.php:11 #: includes/gutenberg/class-ecwid-gutenberg.php:129 msgid "Your store will be shown here" msgstr "Votre magasin sera présenté ici" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:31 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:101 #: includes/integrations/class-ecwid-integration-gutenberg.php:101 #: includes/gutenberg/class-ecwid-gutenberg.php:127 #: js/gutenberg/blocks.build.js:1 msgid "Choose product" msgstr "Choisissez un produit" #: includes/integrations/class-ecwid-integration-gutenberg.php:97 #: includes/gutenberg/class-ecwid-gutenberg.php:123 msgid "%s product" msgstr "%s produit" #: templates/wp-toolbox.tpl.php:4 msgid "Take advantage of powerful apps and extensions designed to enhance your store." msgstr "Profitez des puissantes applications et extensions conçues pour améliorer votre magasin." #: templates/wp-toolbox.tpl.php:3 msgid "Extensions for your Store" msgstr "Extensions pour votre magasin" #: templates/importer/woo-summary.tpl.php:6 msgid "Import summary" msgstr "Importer le résumé" #: templates/importer/woo-main.tpl.php:19 msgid "This import will copy your WooCommerce products and categories to your %s store." msgstr "Cette importation copiera vos produits et catégories WooCommerce dans votre magasin %s." #: templates/importer/woo-main.tpl.php:62 msgid "Importing %s of %s items" msgstr "Importation de %s de %s articles" #: templates/importer/woo-complete-alert.tpl.php:27 msgid "Some of the items could not be imported." msgstr "Certains de ces articles ne pouvaient pas être importés." #: templates/importer/landing.tpl.php:33 msgid "Learn more" msgstr "En savoir plus" #: templates/importer/landing.tpl.php:33 msgid "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" msgstr "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" #: templates/importer/landing.tpl.php:31 msgid "Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center" msgstr "Ecwid vous permet de télécharger vos produits sous forme de fichier CSV. Pour en savoir plus sur cet outil, consultez le centre d'aide Ecwid" #: templates/importer/landing.tpl.php:29 msgid "Import product catalog from other sources" msgstr "Importez un catalogue de produits provenant d'autres sources" #: templates/importer/landing.tpl.php:23 msgid "(You will be able to confirm the changes before the actual import)" msgstr "(Vous pourrez confirmer les changements avant l'importation effective)" #: templates/importer/landing.tpl.php:12 msgid "We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?" msgstr "Nous avons constaté que vous avez installé un WooCommerce. Votre magasin WooCommerce a des %1$s produits et des %2$s catégories. Souhaitez-vous l'importer dans %3$s ?" #: templates/importer/landing.tpl.php:9 msgid "Import product catalog from WooCommerce" msgstr "Importer le catalogue de produits de WooCommerce" #: templates/importer/landing.tpl.php:4 msgid "Here, we will help you uploading your product catalog to %s from another shopping cart or other sources." msgstr "Ici, nous vous aiderons à télécharger votre catalogue de produits vers %s à partir d'un autre panier d'achat ou d'autres sources." #: templates/importer/landing.tpl.php:1 msgid "Import products to your %s store" msgstr "Importez des produits dans votre magasin %s" #: templates/dashboard-blog-posts.tpl.php:20 msgid "Knowledge Base" msgstr "Base de connaissances" #: templates/dashboard-blog-posts.tpl.php:19 msgid "https://support.ecwid.com/hc/en-us" msgstr "https://support.ecwid.com/hc/en-us" #: templates/dashboard-blog-posts.tpl.php:14 msgid "https://www.ecwid.com/blog" msgstr "https://www.ecwid.com/blog" #: includes/importer/class-ecwid-import.php:39 msgid "Bulk import products and categories to your %s store" msgstr "Produits et catégories d'importation en vrac dans votre magasin %s" #: includes/importer/class-ecwid-import.php:38 msgid "%s products and categories" msgstr "%s produits et catégories" #: templates/importer/woo-main.tpl.php:36 #: includes/importer/class-ecwid-import-page.php:52 #: includes/importer/class-ecwid-import-page.php:53 msgid "Import your products from WooCommerce to %s" msgstr "Importez vos produits de WooCommerce vers %s" #: includes/importer/class-ecwid-import-page.php:42 #: includes/importer/class-ecwid-import-page.php:43 msgid "Import" msgstr "Importer" #: templates/dashboard-blog-posts.tpl.php:15 #: includes/class-ecwid-wp-dashboard-feed.php:48 msgid "%s Blog" msgstr "Blog %s" #: includes/class-ecwid-message-manager.php:345 msgid "No Thanks" msgstr "Non, merci" #: includes/class-ecwid-message-manager.php:343 msgid "Import my products from WooCommerce" msgstr "Importer mes produits de WooCommerce" #: includes/class-ecwid-message-manager.php:341 msgid "We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you." msgstr "Nous avons remarqué que vous avez installé WooCommerce. Si vous souhaitez copier facilement vos produits WooCommerce dans %s, cet outil vous aidera." #: includes/class-ecwid-message-manager.php:340 msgid "Need help importing your products from WooCommerce to %s?" msgstr "Vous avez besoin d'aide pour importer vos produits de WooCommerce vers %s ?" #: includes/class-ecwid-admin.php:213 includes/class-ecwid-admin.php:214 msgid "Customers" msgstr "Clients" #: templates/help.php:28 msgid "or <a %s>Browse the Help Center" msgstr "ou <a %s>consultez le centre d'aide" #: templates/admin/welcome-connection-message.php:5 msgid "To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission." msgstr "Pour afficher votre magasin sur ce site, vous devez autoriser WordPress à accéder à vos %1$s produits. Veuillez appuyer sur « Connecter » pour donner votre autorisation." #: includes/faq_entries.php:40 msgid "Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target=\"_blank\" href=\"%s\">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans." msgstr "Nos quatre types de compte varient en fonction du nombre de produits, des types de fonctionnalités et du niveau d'assistance. Pour plus d'informations, consultez notre <a target=\"_blank\" href=\"%s\">page de tarification.</a><br /><br />Conseil professionnel : Vous pouvez également économiser de l'argent en vous inscrivant à nos plans annuels." #: includes/class-ecwid-popup-deactivate.php:59 msgid "[%s] WordPress plugin deactivation feedback (store ID: %s)" msgstr "[%s] Commentaires sur la désactivation du module WordPress (identifiant du magasin : %s)" #: includes/class-ecwid-message-manager.php:289 msgid "Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data." msgstr "Votre vitrine virtuelle (fiche produit et paiement) fonctionne bien, mais les fonctions avancées du magasin, comme le référencement et les widgets de la barre latérale, sont désactivées. Pour les activer et vous assurer que votre boutique fonctionne correctement, veuillez appuyer sur le bouton ci-dessous pour connecter votre compte %s. Cette opération prendra moins d'une minute : il vous sera seulement demandé de vous connecter à votre compte et de permettre à ce site d'obtenir les données de votre magasin." #: includes/class-ecwid-message-manager.php:288 msgid "Action required: please connect your %s account" msgstr "Action requise : veuillez connecter votre compte %s" #: templates/popup/deactivate.php:24 msgid "Contact Support" msgstr "Contactez le service d'assistance" #: templates/popup/deactivate.php:1 msgid "If you have a moment, please let us know why you are deactivating:" msgstr "Si vous avez un moment, veuillez nous faire savoir pourquoi vous désactivez :" #: templates/admin/welcome-create.php:4 msgid "Create Store" msgstr "Créer le magasin" #: templates/advanced-settings.php:1 msgid "%s — Advanced settings" msgstr "%s — Paramètres avancés" #: includes/widgets/class-ecwid-widget-random-products.php:10 msgid "Displays a list of random products." msgstr "Affiche une liste de produits au hasard." #: includes/widgets/class-ecwid-widget-random-products.php:9 msgid "Random Products" msgstr "Produits aléatoires" #: includes/widgets/class-ecwid-widget-random-product.php:9 #: includes/widgets/class-ecwid-widget-random-product.php:64 msgid "Random Product" msgstr "Produit aléatoire" #: includes/widgets/class-ecwid-widget-random-product.php:8 msgid "Displays a random product from your store to attract customer attention." msgstr "Affiche un produit aléatoire de votre magasin pour attirer l'attention des clients." #: includes/widgets/class-ecwid-widget-latest-products.php:10 msgid "Displays the latest added products from your store. Show new products to returning customers to drive repeat sales." msgstr "Affiche les derniers produits ajoutés dans votre magasin. Afficher les nouveaux produits aux clients récurrents afin d'encourager les ventes répétées." #: includes/widgets/class-ecwid-widget-latest-products.php:9 msgid "Latest Products" msgstr "Derniers produits" #: includes/class-ecwid-popup-deactivate.php:164 msgid "Can you share your feedback? What was wrong?" msgstr "Pouvez-vous nous faire part de vos commentaires ? Qu'est-ce qui n'allait pas ?" #: includes/class-ecwid-popup-deactivate.php:161 msgid "Other" msgstr "Autre" #: includes/class-ecwid-popup-deactivate.php:155 msgid "It's a temporary deactivation. Please do not ask me again." msgstr "Il s'agit d'une désactivation temporaire. Ne me le demandez pas à nouveau, s'il vous plaît." #: includes/class-ecwid-popup-deactivate.php:152 msgid "Can you share the name of the plugin you chose?" msgstr "Pouvez-vous partager le nom du module d'extension que vous avez choisi ?" #: includes/class-ecwid-popup-deactivate.php:149 msgid "I found a better plugin" msgstr "J'ai trouvé un meilleur module d'extension" #: includes/class-ecwid-popup-deactivate.php:146 msgid "What feature do you need?" msgstr "De quelle fonction avez-vous besoin ?" #: includes/class-ecwid-popup-deactivate.php:143 msgid "The plugin doesn't support the feature I want" msgstr "Le module d'extension ne prend pas en charge la fonction que je souhaite" #: includes/class-ecwid-popup-deactivate.php:128 msgid "What was wrong?" msgstr "Qu'est-ce qui n'allait pas ?" #: includes/class-ecwid-popup-deactivate.php:125 msgid "I have a problem using this plugin" msgstr "J'ai un problème d'utilisation de ce module d'extension" #: includes/class-ecwid-popup-deactivate.php:112 msgid "Before You Go" msgstr "Avant de partir" #: templates/admin/storefront/area-navigation.php:79 #: includes/class-ecwid-popup-deactivate.php:105 msgid "Cancel" msgstr "Annuler" #: includes/class-ecwid-popup-deactivate.php:101 msgid "Submit & Deactivate" msgstr "Soumettre et désactiver" #: includes/class-ecwid-message-manager.php:244 #: includes/class-ecwid-store-page.php:568 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:51 #: ecwid-shopping-cart.php:1082 js/gutenberg/blocks.build.js:1 msgid "Set up your store" msgstr "Installez votre magasin" #: templates/admin-head.php:8 includes/class-ecwid-admin.php:48 #: includes/integrations/class-ecwid-integration-gutenberg.php:45 #: includes/gutenberg/class-ecwid-gutenberg.php:69 msgid "%s" msgstr "%s" #: templates/product-popup.php:199 js/gutenberg/blocks.build.js:1 msgid "«Buy now» button" msgstr "Bouton « Acheter maintenant »" #: templates/admin/simple-dashboard.php:10 msgid "%s Shopping Cart" msgstr "%s panier d'achat" #: templates/advanced-settings.php:42 msgid "Please subscribe to a paid plan to get this feature." msgstr "Veuillez souscrire à un plan payant pour obtenir cette fonctionnalité." #: templates/admin-footer.php:9 msgid "Get %s mobile app" msgstr "Obtenir l'application mobile %s" #: includes/class-ecwid-message-manager.php:272 msgid "Rate %s at WordPress.org" msgstr "Évaluer %s chez WordPress.org" #: includes/class-ecwid-message-manager.php:268 msgid "Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site." msgstr "Aimez-vous votre boutique en ligne %s ? Nous apprécierions que vous ajoutiez votre avis et que vous donniez votre vote pour le module d'extension sur le site de WordPress." #: includes/class-ecwid-message-manager.php:260 msgid "To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings." msgstr "Pour ajouter des fonctions supplémentaires à votre boutique, glissez et déposez des éléments de la boutique %s sur votre site. Lorsque vous aurez terminé, vous pourrez revenir à la modification de vos paramètres." #: templates/sync.php:114 msgid "Provide access." msgstr "Fournissez l'accès." #: templates/sync.php:113 msgid "To enable this feature, the plugin needs a permission to read your store product information." msgstr "Pour activer cette fonction, le module d'extension a besoin d'une autorisation pour lire les informations sur les produits de votre magasin." #: templates/product-popup.php:137 templates/product-popup.php:147 msgid "Choose Product" msgstr "Choisissez le produit" #: templates/product-popup.php:96 msgid "Try another search." msgstr "Essayez une autre recherche." #: templates/sync.php:152 msgid "Not synchronized yet" msgstr "Pas encore synchronisé" #: templates/sync.php:149 msgid "Last update" msgstr "Dernière mise à jour" #: templates/sync.php:145 msgid "Products are successfully synchronized. The product pages are up to date." msgstr "Les produits sont synchronisés avec succès. Les pages des produits sont à jour." #: templates/sync.php:138 msgid "Products synchronized: %1$s out of %2$s" msgstr "Produits synchronisés : %1$s sur %2$s" #: templates/sync.php:126 msgid "We're synchronizing your products. This may take a few minutes. Please do not reload the page." msgstr "Nous synchronisons vos produits. Cette opération peut prendre quelques minutes. Veuillez ne pas recharger la page." #: templates/sync.php:119 msgid "Synchronize products" msgstr "Synchroniser les produits" #: templates/advanced-settings.php:83 msgid "%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site." msgstr "%s stocke les données relatives à vos produits dans un stockage en ligne sécurisé. Les pages des produits sont affichées à la volée lorsqu'un client consulte votre magasin. En gros, les produits ne sont pas stockés sur le site, c'est pourquoi la recherche sur le site ne trouve pas les pages des produits en parcourant les pages et les articles du site. Cette option permet un mode de stockage local : les produits seront stockés à la fois dans le nuage et sur votre site. Les résultats de la recherche sur le site énuméreront les pages de produits, ainsi que les pages/articles ordinaires de votre site." #: templates/product-popup.php:243 msgid "Insert" msgstr "Insérer" #: templates/product-popup.php:242 msgid "select product" msgstr "sélectionner un produit" #: templates/product-popup.php:241 templates/product-popup.php:246 msgid "customize appearance" msgstr "personnaliser l'apparence" #: templates/product-popup.php:224 msgid "Show price inside the \"Buy now\" button" msgstr "Afficher le prix à l'intérieur du bouton « Acheter maintenant »" #: templates/product-popup.php:229 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:62 #: js/gutenberg/blocks.build.js:1 msgid "Center align on a page" msgstr "Centrer l'alignement sur une page" #: templates/product-popup.php:219 js/gutenberg/blocks.build.js:1 msgid "Add border" msgstr "Ajouter une bordure" #: templates/product-popup.php:188 js/gutenberg/blocks.build.js:1 msgid "Quantity" msgstr "Quantité" #: templates/product-popup.php:178 js/gutenberg/blocks.build.js:1 msgid "Options" msgstr "Options" #: templates/product-popup.php:173 js/gutenberg/blocks.build.js:1 msgid "Picture" msgstr "Photo" #: templates/product-popup.php:163 msgid "Choose product properties to display in widget" msgstr "Choisissez les propriétés du produit à afficher dans le widget" #: templates/product-popup.php:139 templates/product-popup.php:151 msgid "Customize widget" msgstr "Personnaliser le widget" #: templates/product-popup.php:97 msgid "Browse all products." msgstr "Parcourir tous les produits." #: templates/product-popup.php:94 msgid "Nothing found for <span class=\"empty-page__term\">\"{{ data.term }}\"</span>" msgstr "Aucun résultat trouvé pour <span class=\"empty-page__term\">« {{ data.term }} »</span>" #: templates/product-popup.php:80 msgid "Next page" msgstr "Page suivante" #: templates/product-popup.php:69 msgid "Current Page" msgstr "Page actuelle" #: templates/product-popup.php:49 msgid "Title or SKU" msgstr "Titre ou UGS" #: templates/product-popup.php:47 templates/product-popup.php:53 #: templates/product-popup.php:56 msgid "Search" msgstr "Recherche" #: templates/product-popup.php:29 msgid "SKU" msgstr "UGS" #: templates/product-popup.php:23 msgid "Name" msgstr "Nom" #: includes/class-ecwid-product-popup.php:150 msgid "Last Page" msgstr "Dernière page" #: includes/class-ecwid-product-popup.php:149 msgid "Next Page" msgstr "Page suivante" #: includes/class-ecwid-product-popup.php:148 msgid "Previous Page" msgstr "Page précédente" #: includes/class-ecwid-product-popup.php:147 msgid "First Page" msgstr "Première page" #: includes/class-ecwid-product-popup.php:107 msgid "Add Product" msgstr "Ajouter un produit" #: includes/class-ecwid-oauth.php:366 msgid "To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the \"Add product\" dialog." msgstr "Pour pouvoir choisir un produit à insérer dans vos articles et vos pages, vous devrez reconnecter votre site à votre boutique %s. Pour ce faire, il vous suffira d'accepter les demandes d'autorisation – de sorte que le module d'extension puisse répertorier vos produits dans la boîte de dialogue « Ajouter un produit »." #: templates/advanced-settings.php:54 msgid "To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>" msgstr "Pour vous assurer que votre client peut effectivement se connecter à votre site et à votre magasin, activez l'enregistrement dans les <a %s>paramètres du site</a>" #: templates/advanced-settings.php:48 msgid "To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>" msgstr "Pour permettre à %s de mettre automatiquement les clients en contact avec votre magasin, veuillez lui donner l'autorisation d'utiliser les données des clients dans le magasin. <a %s>Pour ce faire, veuillez utiliser ce lien</a>." #: templates/advanced-settings.php:39 msgid "Upgrade to get this feature" msgstr "Mettez à jour pour obtenir cette fonctionnalité" #: templates/advanced-settings.php:32 msgid "Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again." msgstr "L'identification unique permet à vos clients d'avoir un seul identifiant pour votre site WordPress et votre %s. Lorsqu'une personne se connecte à votre site, elle est automatiquement connectée à son compte client dans votre boutique, sans avoir à saisir à nouveau son adresse e-mail ou son mot de passe." #: templates/advanced-settings.php:27 msgid "Customer Single Sign-On" msgstr "Identification unique du client" #: includes/integrations/class-ecwid-integration-divibuilder.php:63 msgid "Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space." msgstr "Saisissez les classes CSS facultatives à utiliser pour ce module. Une classe CSS peut être utilisée pour créer un style CSS personnalisé. Vous pouvez ajouter plusieurs classes, séparées par un espace." #: includes/integrations/class-ecwid-integration-divibuilder.php:60 msgid "CSS Class" msgstr "Classe CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:57 msgid "Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page." msgstr "Saisissez un identifiant CSS facultatif à utiliser pour ce module. Un identifiant peut être utilisé pour créer un style CSS personnalisé, ou pour créer des liens vers des sections particulières de votre page." #: includes/integrations/class-ecwid-integration-divibuilder.php:54 msgid "CSS ID" msgstr "Identifiant CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:51 msgid "This will change the label of the module in the builder for easy identification." msgstr "Ainsi, l'étiquette du module sera modifiée dans l'éditeur pour faciliter l'identification." #: includes/integrations/class-ecwid-integration-divibuilder.php:49 msgid "Admin Label" msgstr "Étiquette d'administration" #: includes/integrations/class-ecwid-integration-divibuilder.php:44 msgid "Here you can create the content that will be used within the module." msgstr "Vous pouvez ici créer le contenu qui sera utilisé dans le module." #: includes/integrations/class-ecwid-integration-divibuilder.php:41 msgid "Content" msgstr "Contenu" #: templates/admin-footer.php:29 msgid "<a %s>Reconnect</a>" msgstr "<a %s>Reconnecter</a>" #: templates/help.php:15 msgid "https://support.ecwid.com/hc/en-us/search" msgstr "https://support.ecwid.com/hc/en-us/search" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:73 msgid "Browse by Category" msgstr "Parcourir par catégorie" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:15 msgid "Store Root Categories" msgstr "Catégories racine du magasin" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:14 msgid "Adds root categories list to the sidebar to let your customers navigate the store." msgstr "Ajoute la liste des catégories racine à la barre latérale pour permettre à vos clients de parcourir le magasin." #: templates/admin/welcome-connection-message.php:25 msgid "To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission." msgstr "Pour vendre en utilisant %1$s, vous devez autoriser WordPress à accéder au module d'extension %1$s. Le bouton de connexion vous dirigera vers votre compte %1$s, où vous pourrez donner votre autorisation." #: templates/admin-timeout.php:11 msgid "Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">our customer support team</a>." msgstr "Notre équipe travaille déjà sur cette question. Veuillez actualiser la page dans quelques minutes. Si le problème persiste, veuillez contacter <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">notre équipe d'assistance à la clientèle</a>." #: templates/admin-timeout.php:9 msgid "Sorry we're having technical difficulties." msgstr "Nous sommes désolés des difficultés techniques que nous rencontrons." #: includes/class-ecwid-floating-minicart.php:153 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:143 msgid "Top right" msgstr "En haut à droite" #: includes/class-ecwid-floating-minicart.php:152 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:138 msgid "Bottom right" msgstr "En bas à droite" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:135 #: includes/class-ecwid-customizer.php:110 msgid "Position" msgstr "Position" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:20 msgid "Adds a shopping cart widget to the top right corner of your site." msgstr "Ajoute un widget de panier d'achat dans le coin supérieur droit de votre site." #: templates/help.php:215 msgid "You can send a new request here." msgstr "Vous pouvez envoyer une nouvelle demande ici." #: templates/help.php:214 msgid " Thank you very much for contacting us! We will get back to you shortly." msgstr " Merci beaucoup de nous contacter ! Nous vous répondrons dans les plus brefs délais." #: templates/help.php:213 msgid "Your email has been sent" msgstr "Votre e-mail a été envoyé" #: templates/help.php:207 msgid "Send message failed" msgstr "L'envoi du message a échoué" #: templates/help.php:196 msgid "Send Message" msgstr "Envoyer un message" #: templates/help.php:193 msgid "Type in your message here" msgstr "Tapez votre message ici" #: templates/help.php:192 msgid "Subject" msgstr "Sujet" #: templates/help.php:186 msgid "Send a message to our support team" msgstr "Envoyez un message à notre équipe d'assistance" #: templates/help.php:177 msgid "Still have questions about Ecwid? Let us know!" msgstr "Vous avez encore des questions sur Ecwid ? Faites-le nous savoir !" #: templates/help.php:176 msgid "Contact us" msgstr "Contactez-nous" #: templates/help.php:33 msgid "Frequently Asked Questions" msgstr "Foire aux questions" #: templates/help.php:21 msgid "Search the Knowledge Base" msgstr "Recherche dans la base de connaissances" #: templates/help.php:17 msgid "E.g. How to set up shipping" msgstr "Par exemple, comment mettre en place l'expédition" #: templates/help.php:11 msgid "How can we help you?" msgstr "Comment pouvons-nous vous aider ?" #: includes/faq_entries.php:68 msgid "You can display your store on the site main page. Adjust the \"Reading\" settings of your site as described in our <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">Help Center.</a>" msgstr "Vous pouvez afficher votre magasin sur la page principale du site. Ajustez les paramètres de « lecture » de votre site comme décrit dans notre <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">centre d'aide.</a>" #: includes/faq_entries.php:67 msgid "Is it possible to display my store on the site home page?" msgstr "Est-il possible d'afficher mon magasin sur la page d'accueil du site ?" #: includes/faq_entries.php:61 msgid "To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">How to use it.</a>" msgstr "Pour présenter un seul produit sur une page distincte ou un article de blog de votre site, utilisez le code abrégé <b>[ecwid_product]</b>. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">Comment l'utiliser.</a>" #: includes/faq_entries.php:60 msgid "How to add a single product with the add to bag button to the site pages?" msgstr "Comment ajouter un produit unique avec le bouton « Ajouter au sac » dans les pages du site ?" #: includes/faq_entries.php:55 msgid "To create sitemap for your Wordpress site we suggest using <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> or <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">paid Ecwid users</a>." msgstr "Pour créer un plan de site pour votre site Wordpress, nous vous suggérons d'utiliser les modules d'extension <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> ou <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>.  . Ces modules d'extension sont entièrement compatibles avec Ecwid et permettent de générer un plan du site qui contiendra des liens vers les catégories et les pages de produits, de sorte que les pages de la boutique seront indexées plus rapidement. Veuillez noter que cette option est disponible pour les <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">utilisateurs payants d'Ecwid</a>." #: includes/faq_entries.php:54 msgid "How do I put my products in the sitemap?" msgstr "Comment faire figurer mes produits dans le plan du site ?" #: includes/faq_entries.php:48 msgid "You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open \"Appearance > Menus\" in your WordPress control panel and add the \"Store with Categories Menu\" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site." msgstr "Vous pouvez ajouter le menu des catégories de magasins au menu de votre site pour aider vos clients à parcourir facilement votre site. Il suffit d'ouvrir « Apparence > Menus » dans votre panneau de contrôle WordPress et d'ajouter l'élément « Boutique avec menu des catégories » au menu de votre site. Un menu déroulant contenant les catégories de votre magasin apparaîtra automatiquement sur votre site." #: includes/faq_entries.php:47 msgid "How do I add store categories to the site menu?" msgstr "Comment ajouter des catégories de magasins au menu du site ?" #: includes/faq_entries.php:38 msgid "How much does Ecwid cost?" msgstr "Combien coûte Ecwid ?" #: includes/faq_entries.php:30 msgid "You can add product search box, cart widget and more on the <a href=\"%s\">\"Appearance / Widgets page\"</a> here in your site admin. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">More details.</a>" msgstr "Vous pouvez ajouter une boîte de recherche de produits, un widget de panier et plus encore sur la page <a href=\"%s\">« Apparence/widgets »</a> ici dans l'administration de votre site. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">Plus de détails.</a>" #: includes/faq_entries.php:28 msgid "How can I add a cart widget to my site sidebar?" msgstr "Comment puis-je ajouter un widget de panier à la barre latérale de mon site ?" #: includes/faq_entries.php:21 msgid "You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">More details.</a>" msgstr "Vous pouvez ajouter votre boutique en ligne à votre page d'entreprise sur Facebook. Aucun ajout n'est nécessaire. Ecwid synchronisera automatiquement les produits, les clients, les commandes et les stocks entre vos vitrines virtuelles WordPress et Facebook. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">Plus de détails.</a>" #: includes/faq_entries.php:20 msgid "How to set up a storefront on Facebook with Ecwid?" msgstr "Comment créer une vitrine virtuelle sur Facebook avec Ecwid ?" #: includes/faq_entries.php:13 msgid "Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">More details.</a>" msgstr "Ecwid fournit des applications mobiles gratuites pour iOS et Android pour gérer votre boutique et vendre sur la route. Numérisez les produits, suivez les stocks, gérez les ventes et acceptez les paiements en utilisant votre appareil mobile comme point de vente. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">Plus de détails.</a>" #: includes/faq_entries.php:12 msgid "How can I manage my store from a mobile device?" msgstr "Comment puis-je gérer mon magasin à partir d'un appareil mobile ?" #: includes/faq_entries.php:6 msgid "Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">More details.</a>" msgstr "Ecwid possède la certification PCI DSS de niveau 1, qui est la norme de référence pour les solutions de commerce électronique dans le monde entier. Ainsi, vous n'aurez aucun problème de conformité bancaire lorsque vous vendrez en ligne avec Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">Plus de détails.</a>" #: includes/faq_entries.php:5 msgid "How secure is this plugin? Is my store PCI DSS compliant?" msgstr "Quel est le degré de sécurité de ce module d'extension ? Mon magasin est-il conforme à la norme PCI DSS ?" #: includes/class-ecwid-nav-menus.php:32 msgid "Ecwid Menu Item" msgstr "Élément du menu Ecwid" #: includes/class-ecwid-admin.php:179 includes/class-ecwid-admin.php:180 msgid "Help" msgstr "Aide" #: templates/admin-footer.php:27 msgid "Want to connect another %s store?" msgstr "Vous voulez connecter un autre magasin %s ?" #: templates/admin-footer.php:17 msgid "Questions?" msgstr "Des questions ?" #: templates/admin-footer.php:6 msgid "Manage Store on iPhone, iPad or Android" msgstr "Gérer le magasin sur iPhone, iPad ou Android" #: includes/class-ecwid-message-manager.php:254 msgid "Complete Setup" msgstr "Configuration complète" #: includes/class-ecwid-message-manager.php:253 msgid "Complete setup and start selling" msgstr "Terminer l'installation et commencer à vendre" #: includes/class-ecwid-message-manager.php:242 msgid "Greetings! Your %s plugin is now active." msgstr "Salutations ! Votre module d'extension %s est maintenant actif." #: templates/debug.php:12 msgid "Download log file" msgstr "Télécharger le fichier journal" #: templates/help.php:67 includes/oembed.php:75 includes/oembed.php:104 msgid "See more" msgstr "En savoir plus" #: ecwid-shopping-cart.php:1051 msgid "I have a problem with my %s store" msgstr "J'ai un problème avec mon magasin %s" #: includes/class-ecwid-message-manager.php:55 msgid "Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: \"The Wordpress function wp_remote_post() failed to connect a remote server because of some error: \"%s\". Seems like HTTP POST requests are disabled on this server\". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>." msgstr "Désolé, il y a un problème. Cette page est censée afficher le panneau de contrôle de votre magasin. Cependant, ce site Wordpress ne semble pas pouvoir se connecter au serveur Ecwid pour afficher ici le tableau de bord de votre magasin. Ce problème est probablement dû à une mauvaise configuration de votre serveur et peut être corrigé par votre hébergeur. Voici une description plus technique du problème, que vous pouvez envoyer à votre hébergeur : « La fonction wp_remote_post() de Wordpress n'a pas réussi à connecter un serveur distant en raison d'une erreur : \"%s\". Apparemment, les requêtes HTTP POST sont désactivées sur ce serveur. » <br /><br />N'hésitez pas à nous contacter à l'adresse <a %s>wordpress@ecwid.com</a> et nous vous aiderons à contacter votre hébergeur et à lui demander de résoudre le problème. <br /><br /> Entre-temps, pour gérer votre magasin, vous pouvez utiliser le panneau de contrôle Web d'Ecwid à l'adresse <a %s>my.ecwid.com</a>. La vitrine virtuelle de votre magasin fonctionne aussi bien et vous pouvez le vérifier ici : <a %s>%s</a>." #: templates/store-popup.php:249 msgid "Open store dashboard" msgstr "Ouvrir le tableau de bord du magasin" #: templates/store-popup.php:12 templates/store-popup.php:27 msgid "Store elements" msgstr "Stocker des éléments" #: templates/reconnect-sso.php:10 msgid "Re-connect to Enable Control Panel" msgstr "Reconnectez-vous au panneau de contrôle d'activation" #: templates/reconnect-sso.php:8 msgid "Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page." msgstr "Gérez les produits, suivez les ventes, ajustez les paramètres ; <nobr>le tout sans</nobr> quitter cette page." #: templates/reconnect-sso.php:7 msgid "Your store Control Panel. Right here in WordPress." msgstr "Le panneau de contrôle de votre magasin. Ici même dans WordPress." #: ecwid-shopping-cart.php:2114 msgid "Orders" msgstr "Commandes" #: includes/class-ecwid-nav-menus.php:168 ecwid-shopping-cart.php:2118 msgid "The store top-level categories are automatically added to this drop-down menu" msgstr "Les catégories de premier niveau du magasin sont automatiquement ajoutées à ce menu déroulant" #: includes/class-ecwid-nav-menus.php:167 ecwid-shopping-cart.php:2117 msgid "Done" msgstr "Terminé" #: includes/class-ecwid-nav-menus.php:166 ecwid-shopping-cart.php:2116 msgid "Refresh categories list" msgstr "Actualiser la liste des catégories" #: includes/class-ecwid-nav-menus.php:165 msgid "Store Page" msgstr "Page du magasin" #: includes/class-ecwid-nav-menus.php:319 msgid "Add to Menu" msgstr "Ajouter au menu" #: includes/class-ecwid-nav-menus.php:316 msgid "Select All" msgstr "Sélectionner tout" #: includes/class-ecwid-nav-menus.php:369 msgid "Store with Categories Menu" msgstr "Boutique avec menu des catégories" #: includes/class-ecwid-nav-menus.php:352 #: includes/class-ecwid-nav-menus.php:355 msgid "My Account" msgstr "Mon compte" #: includes/class-ecwid-nav-menus.php:335 #: includes/class-ecwid-floating-minicart.php:135 #: includes/class-ecwid-admin-storefront-page.php:279 msgid "Cart" msgstr "Panier" #: includes/class-ecwid-admin.php:87 includes/class-ecwid-admin.php:88 #: includes/class-ecwid-products.php:228 ecwid-shopping-cart.php:2112 msgid "Products" msgstr "Produits" #: includes/class-ecwid-admin.php:79 includes/class-ecwid-admin.php:80 msgid "Sales" msgstr "Ventes" #: ecwid-shopping-cart.php:1119 msgid "Report a problem with the store" msgstr "Signaler un problème avec le magasin" #: ecwid-shopping-cart.php:1036 msgid "%s plugin doesn't work well with my \"%s\" theme" msgstr "Le module d'extension %s ne fonctionne pas bien avec mon thème « %s »" #: templates/admin/welcome-connection-message.php:22 #: templates/admin/welcome-connection-message.php:28 msgid "Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL." msgstr "Il semble que votre site ne prenne pas en charge les requêtes POST à distance qui sont nécessaires au fonctionnement de l'API %s. Veuillez contacter votre fournisseur d'hébergement pour activer cURL." #. Description of the plugin msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up." msgstr "Ecwid est un panier d'achat complet et gratuit. Il peut être facilement intégré à n'importe quel blog Wordpress et sa mise en place prend moins de cinq minutes." #. Plugin URI of the plugin msgid "http://www.ecwid.com?partner=wporg" msgstr "http://www.ecwid.com?partner=wporg" #: templates/store-svg.php:12 msgid "Demo Store" msgstr "Magasin de démonstration" #: templates/store-svg.php:9 msgid "Your store will be shown here!" msgstr "Votre magasin sera présenté ici !" #: templates/product-popup.php:248 templates/store-popup.php:256 msgid "Update" msgstr "Mettre à jour" #: templates/store-popup.php:253 msgid "Insert into page" msgstr "Insérer dans la page" #: templates/store-popup.php:246 msgid "Demo store" msgstr "Magasin de démonstration" #: templates/store-popup.php:80 msgid "Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>" msgstr "En outre, vous pouvez ajouter des contrôles de stockage à la barre d'outils de votre site Web en utilisant les <a %s>widgets natifs de WordPress</a>" #: templates/store-popup.php:74 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:86 msgid "Show categories" msgstr "Afficher les catégories" #: templates/store-popup.php:66 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:94 msgid "Show minicart" msgstr "Afficher le mini-panier" #: templates/store-popup.php:58 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:78 msgid "Show search" msgstr "Afficher la recherche" #: templates/store-popup.php:53 msgid "Product catalog will be shown automatically" msgstr "Le catalogue des produits sera affiché automatiquement" #: templates/store-popup.php:52 msgid "Choose widgets to show" msgstr "Choisissez les widgets à afficher" #: templates/admin/welcome-create.php:7 msgid "Connect your store" msgstr "Connectez votre magasin" #: templates/admin/welcome-no_oauth.php:6 #: templates/importer/import-no-token.tpl.php:6 #: includes/class-ecwid-message-manager.php:291 msgid "Connect" msgstr "Connexion" #: templates/admin/legacy-connect.tpl.php:68 msgid "Save and connect your %s store to the site" msgstr "Enregistrez et connectez votre magasin %s au site" #: templates/admin/legacy-connect.tpl.php:59 msgid "Enter your Store ID here:" msgstr "Saisissez ici votre identifiant de magasin :" #: templates/admin/legacy-connect.tpl.php:52 msgid "Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the \"Dashboard\" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration." msgstr "L'identifiant du magasin est un identifiant unique de tout magasin %1$s qui se compose de plusieurs chiffres. Vous pouvez le trouver sur la page « Tableau de bord » du panneau de contrôle de %1$s. L'identifiant du magasin sera également envoyé dans l'e-mail de bienvenue après l'enregistrement." #: templates/admin/legacy-connect.tpl.php:50 msgid "Find your Store ID" msgstr "Trouvez l'identifiant de votre magasin" #: templates/admin/legacy-connect.tpl.php:46 msgid "You will be able to sign up through your existing Google, Facebook or PayPal profiles as well." msgstr "Vous pourrez également vous inscrire via vos profils Google, Facebook ou PayPal existants." #: templates/admin/legacy-connect.tpl.php:42 msgid "I already have an account, sign in" msgstr "J'ai déjà un compte, connectez-vous" #: templates/admin/legacy-connect.tpl.php:35 msgid "Create a new %s account which you will use to manage your store and inventory. The registration is free." msgstr "Créez un nouveau compte %s que vous utiliserez pour gérer votre magasin et votre inventaire. L'inscription est gratuite." #: templates/admin/legacy-connect.tpl.php:24 msgid "The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps." msgstr "C'est la première étape vers l'ouverture de votre boutique en ligne : <br />Commençons par ajouter une boutique à votre site WordPress en <strong>trois</strong> étapes simples." #: templates/admin/legacy-connect.tpl.php:21 msgid "Thank you for choosing %s to build your online store" msgstr "Merci d'avoir choisi %s pour créer votre boutique en ligne" #: templates/admin/simple-dashboard.php:58 msgid "Open control panel" msgstr "Ouvrir le panneau de contrôle" #: templates/admin/simple-dashboard.php:42 msgid "Your %s store is connected<br /> to your WordPress website" msgstr "Votre magasin %s est connecté<br /> à votre site WordPress" #: templates/admin/simple-dashboard.php:39 msgid "Greetings!" msgstr "Salutations !" #: templates/admin/simple-dashboard.php:34 msgid "Your %s store is now connected<br /> to your WordPress website" msgstr "Votre magasin %s est maintenant connecté<br /> à votre site WordPress" #: templates/admin/simple-dashboard.php:31 msgid "Congratulations!" msgstr "Félicitations !" #: templates/admin/simple-dashboard.php:18 msgid "Disconnect store" msgstr "Déconnecter le magasin" #: templates/admin/legacy-connect.tpl.php:65 #: templates/admin/simple-dashboard.php:14 templates/store-popup.php:244 #: templates/store-svg.php:14 #: includes/integrations/class-ecwid-integration-gutenberg.php:104 #: includes/gutenberg/class-ecwid-gutenberg.php:130 msgid "Store ID" msgstr "Identifiant du magasin" #: templates/admin/welcome-connection-message.php:15 msgid "Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again." msgstr "Erreur de connexion : après avoir cliqué sur le bouton, vous devez vous connecter et fournir les autorisations nécessaires pour utiliser notre module d'extension. Veuillez réessayer. " #: templates/admin/legacy-connect.tpl.php:57 #: templates/admin/welcome-no_oauth.php:3 msgid "Enter your Store ID" msgstr "Entrez votre identifiant de magasin" #: templates/store-popup.php:221 msgid "Default view mode on search results" msgstr "Mode d'affichage par défaut des résultats de recherche" #: templates/store-popup.php:214 templates/store-popup.php:232 msgid "Table" msgstr "Table" #: templates/store-popup.php:211 templates/store-popup.php:229 msgid "List" msgstr "Liste" #: templates/store-popup.php:208 templates/store-popup.php:226 msgid "Grid" msgstr "Grille" #: templates/store-popup.php:204 msgid "Default view mode on product pages" msgstr "Mode d'affichage par défaut sur les pages des produits" #: templates/store-popup.php:184 msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products." msgstr "Vous pouvez contrôler ici le nombre de produits qui seront affichés par page. Ces options définissent des valeurs maximales. S'il n'y a pas assez de place pour afficher toutes les colonnes de produits, %s adaptera le nombre de colonnes pour accueillir tous les produits." #: templates/store-popup.php:169 msgid "Table view" msgstr "Vue de table" #: templates/store-popup.php:152 msgid "List view" msgstr "Vue de liste" #: templates/store-popup.php:125 msgid "Grid view" msgstr "Vue de grille" #: templates/store-popup.php:123 msgid "Number of products per page" msgstr "Nombre de produits par page" #: templates/store-popup.php:191 msgid "Number of categories per row" msgstr "Nombre de catégories par ligne" #: templates/advanced-settings.php:98 msgid "Save changes" msgstr "Enregistrer les modifications" #: includes/class-ecwid-product-browser.php:202 msgid "Default category ID" msgstr "Identifiant de la catégorie par défaut" #: templates/store-popup.php:98 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:127 #: includes/integrations/class-ecwid-integration-gutenberg.php:427 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:56 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:248 msgid "Store root category" msgstr "Catégorie racine du magasin" #: templates/store-popup.php:90 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:101 msgid "Category shown by default" msgstr "Catégorie indiquée par défaut" #: templates/admin-message.php:47 msgid "Never show this message again" msgstr "Ne plus jamais montrer ce message" #: templates/product-popup.php:194 lib/ecwid_platform.php:209 #: js/gutenberg/blocks.build.js:1 msgid "Price" msgstr "Prix" #: includes/class-ecwid-store-editor.php:75 #: includes/integrations/class-ecwid-integration-gutenberg.php:102 #: includes/gutenberg/class-ecwid-gutenberg.php:128 msgid "Edit Appearance" msgstr "Modifier l'apparence" #: includes/class-ecwid-store-editor.php:60 msgid "Edit Store" msgstr "Modifier le magasin" #: templates/store-popup.php:11 templates/store-popup.php:21 #: includes/class-ecwid-store-editor.php:52 msgid "Add Store" msgstr "Ajouter un magasin" #: includes/class-ecwid-message-manager.php:261 msgid "Back to Store Settings" msgstr "Retour aux paramètres de stockage" #: includes/class-ecwid-message-manager.php:252 msgid "Your store is almost ready!" msgstr "Votre magasin est presque prêt !" #: includes/class-ecwid-message-manager.php:243 msgid "Take a few simple steps to complete store setup" msgstr "Suivez quelques étapes simples pour terminer l'installation de votre magasin" #: includes/widgets/class-ecwid-widget-products-base.php:205 msgid "Number of products to show" msgstr "Nombre de produits à présenter" #: includes/widgets/class-ecwid-widget-recently-viewed.php:89 msgid "Store Link Title" msgstr "Titre du lien du magasin" #: templates/product-popup.php:183 includes/class-ecwid-product-browser.php:249 #: includes/widgets/class-ecwid-widget-products-base.php:199 #: js/gutenberg/blocks.build.js:1 msgid "Title" msgstr "Titre" #: includes/widgets/class-ecwid-widget-recently-viewed.php:69 #: includes/widgets/class-ecwid-widget-recently-viewed.php:91 msgid "You have not viewed any product yet. Open store." msgstr "Vous n'avez encore vu aucun produit. Ouvrez le magasin." #: includes/widgets/class-ecwid-widget-recently-viewed.php:11 msgid "Recently Viewed Products" msgstr "Produits récemment consultés" #: includes/widgets/class-ecwid-widget-recently-viewed.php:12 msgid "Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop." msgstr "Affiche une liste des produits récemment consultés par le client pour lui permettre de revenir facilement aux produits qu'il a vus dans votre magasin." #: includes/widgets/class-ecwid-widget-store-link.php:35 msgid "Text" msgstr "Texte" #: includes/themes/class-ecwid-theme-twentyseventeen.php:48 #: includes/themes/class-ecwid-theme-twentyseventeen.php:54 #: includes/themes/class-ecwid-theme-twentyfifteen.php:34 #: includes/themes/class-ecwid-theme-twentyfifteen.php:40 #: includes/themes/class-ecwid-theme-twentysixteen.php:36 #: includes/themes/class-ecwid-theme-twentysixteen.php:42 #: includes/widgets/class-ecwid-widget-store-link.php:31 msgid "Shop" msgstr "Boutique" #: includes/widgets/class-ecwid-widget-store-link.php:10 msgid "Store Page Link" msgstr "Lien vers la page du magasin" #: includes/widgets/class-ecwid-widget-store-link.php:9 msgid "Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site." msgstr "Affiche un lien vers la page du magasin dans la barre latérale pour que le client puisse accéder rapidement à votre magasin à partir de n'importe quelle page du site." #: includes/widgets/class-ecwid-widget-vcategories.php:9 msgid "Store Categories" msgstr "Catégories de magasins" #: includes/widgets/class-ecwid-widget-vcategories.php:8 msgid "Adds vertical categories block to let the customer navigate your store." msgstr "Ajoute un bloc de catégories verticales pour permettre au client de parcourir votre magasin." #: includes/class-ecwid-nav-menus.php:344 #: includes/class-ecwid-nav-menus.php:347 #: includes/widgets/class-ecwid-widget-search.php:13 msgid "Product Search" msgstr "Recherche de produits" #: includes/widgets/class-ecwid-widget-search.php:12 msgid "Displays a simple search box for your customers to find a product in your store" msgstr "Affiche une boîte de recherche simple pour que vos clients puissent trouver un produit dans votre magasin" #: includes/widgets/class-ecwid-widget-minicart-miniview.php:8 msgid "Adds a compact cart widget for customer to see the products they added to the cart." msgstr "Ajoute un widget de panier compact pour que le client puisse voir les produits qu'il a ajoutés au panier." #: includes/widgets/class-ecwid-widget-minicart.php:41 #: includes/widgets/class-ecwid-widget-random-product.php:67 #: includes/widgets/class-ecwid-widget-search.php:46 #: includes/widgets/nsf-minicart-editor.tpl.php:50 #: includes/widgets/class-ecwid-widget-minicart-miniview.php:41 #: includes/widgets/class-ecwid-widget-vcategories.php:39 #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:76 msgid "Title:" msgstr "Titre :" #: includes/class-ecwid-nav-menus.php:338 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:20 msgid "Shopping Cart" msgstr "Panier d'achat" #: includes/widgets/class-ecwid-widget-minicart.php:8 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:19 msgid "Adds a cart widget for customer to see the products they added to the cart." msgstr "Ajoute un widget de panier pour que le client puisse voir les produits qu'il a ajoutés au panier." #: includes/widgets/class-ecwid-widget-badge.php:51 #: includes/widgets/class-ecwid-widget-badge.php:63 msgid "Ecwid e-commerce widgets" msgstr "Widgets de commerce électronique Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:45 #: includes/widgets/class-ecwid-widget-badge.php:57 msgid "Ecwid shopping cart" msgstr "Panier d'achat Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:39 #: includes/widgets/class-ecwid-widget-badge.php:75 msgid "Ecwid free shopping cart" msgstr "Panier d'achat gratuit Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:33 #: includes/widgets/class-ecwid-widget-badge.php:69 msgid "Ecwid ecommerce solution" msgstr "Solution de commerce électronique Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:21 #: includes/widgets/class-ecwid-widget-badge.php:27 msgid "Ecwid shopping cart widget" msgstr "Widget du panier d'achat Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:14 msgid "Ecwid Badge" msgstr "Badge Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:13 msgid "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid." msgstr "Vous aimez Ecwid et vous voulez l'aider à se développer ? Vous pouvez ajouter ce badge sophistiqué « Optimisé par Ecwid » sur votre site pour montrer à vos visiteurs que vous êtes un fier utilisateur d'Ecwid." #: ecwid-shopping-cart.php:2791 msgid "Recommendations for Your Online Store" msgstr "Recommandations pour votre boutique en ligne" #: includes/class-ecwid-admin.php:528 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:77 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:87 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:95 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:103 #: ecwid-shopping-cart.php:2056 msgid "Settings" msgstr "Paramètres" #: includes/class-ecwid-admin.php:165 msgid "Advanced" msgstr "Avancé" #: includes/class-ecwid-admin.php:164 msgid "Advanced settings" msgstr "Paramètres avancés" #: templates/product-popup.php:206 templates/store-popup.php:14 #: templates/store-popup.php:34 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:44 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:78 #: js/gutenberg/blocks.build.js:1 msgid "Appearance" msgstr "Aspect" #: includes/class-ecwid-admin.php:28 includes/class-ecwid-admin.php:59 #: includes/class-ecwid-admin.php:459 ecwid-shopping-cart.php:2110 msgid "Dashboard" msgstr "Tableau de bord" #: includes/class-ecwid-admin.php:57 ecwid-shopping-cart.php:2056 msgid "Setup" msgstr "Configuration" #: includes/class-ecwid-admin.php:47 msgid "%s shopping cart settings" msgstr "%s paramètres du panier d'achat" #: includes/class-ecwid-nav-menus.php:132 #: includes/class-ecwid-nav-menus.php:361 #: includes/class-ecwid-nav-menus.php:364 #: includes/class-ecwid-nav-menus.php:372 includes/class-ecwid-admin.php:206 #: includes/class-ecwid-admin.php:207 includes/class-ecwid-admin.php:220 #: includes/class-ecwid-admin.php:221 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:63 #: includes/class-ecwid-admin-storefront-page.php:257 #: ecwid-shopping-cart.php:1657 msgid "Store" msgstr "Boutique" #: ecwid-shopping-cart.php:1306 msgid "<a %s>Online store powered by %s</a>" msgstr "<a %s>Boutique en ligne optimisée par %s</a>" #: includes/class-ecwid-admin.php:489 msgid "Sell on Facebook" msgstr "Vendre sur Facebook" #: templates/admin/simple-dashboard.php:48 ecwid-shopping-cart.php:1094 msgid "Visit storefront" msgstr "Visiter la vitrine virtuelle" �������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/languages/ecwid-shopping-cart-it_IT.mo������������������������������������������0000644�����������������00000217740�15122273603�0017607 0����������������������������������������������������������������������������������������������������ustar�00�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������e�����D��5��l&������@3�����A3��H���Y3�����3�����3�����3�����3�����3�� ���3��.���3�� ���4�� ��� 4�����,4�����J4�����e4����4�����g6��B���6�����6�����6�����6�����7��$���97�����^7�����r7�����7�����7��/���r8�� ���8�� ���8�����8�����8�����8�����8�����9��#���%9�� ���I9�����T9�����o9�����~9�� ���9�� ���9��>���9��"��� :�����-:�����:��k���:��K���h;��S���;��A���<��R���J<��G���<��4���<�� ���=�����&=�����/=��&���A=�����h=��T���{=�� ���=�����=�����=�����=�����>�����>�����#>�� ���*>�����8>�����?>�� ���G>�� ���S>�� ���`>�����l>�����>��4���>�� ���>�����>�����>�����>��X���>�� ���V?�����`?��/���g?��,���?�����?�����?�����?�� ���?�� ���?�����?�� ���?����� @�����@�����,@�����A@�����[@�����{@�����@�����@�����@�����@�����@�����@��.���@�����A�����5A��D���LA�����A�����A�� ���A�� ���A�����A�����A�����A����� B����� B��x���3B�����B�� ���B�����B�� ���B�����B�����C�����C�����*C�� ���=C�����JC��5���\C��h���C�����C�����D�� ���D�� ���D��5���D�����E�� ���E��x���%E��i���E�����F�����F�����4F�����QF�����bF�����F�� ���F�����F�����G�����$G��"���7G��#���ZG��/���~G�� ���G�� ���G�����G�����G�����G�����G�����H�����H�����-H�����?H��!���WH�����yH�����H��6���H��!���H�����H��*���I��%���:I�����`I��'���vI�����I�����I��,���I�����I��q���J��s���yJ��#���J��H���K��O���ZK��1���K��s���K�� ���PL�����\L��v���L�����uM��$���zM�����M�����M�����M�� ���M�����M�����M����� N��s���N�����N�����N�����N��=��N�����P����P����Q�����R�����R����� S�����S�� ��� S�� ���.S�� ���;S�� ���FS�� ���TS�����^S�����S�����T�����T�����T��B���T��$���)U�����NU�����VU�����mU�� ���U�����U�����U�� ���U�����U�� ���U��(���U�����V�� ���V�����V�����#V��.���V�����W��D���W��h���%X�����X��_���X��C���X�����7Y�����IY��/���_Y��/���Y�����Y��/���Y��(���Z�����-Z��9���GZ��I���Z��2���Z��"���Z��:���![�����\[��"���t[��!���[�����[�����[�����[�����[��$��� \��*���1\��B���\\�����\�� ���\�����\�� ���\�����\��+���\�����]��-���,]��P���Z]�����]��#���]��'���]��)��� ^�� ���7^�����X^��%���g^��+���^��+���^�����^�����_�����_�����!_�� ���2_��$���?_��9���d_��%���_��:���_�����_�����`�����`�����&`�����(`�� ���=`�� ���K`�� ���Y`�� ���c`�����o`�����`�����`�� ���`�����`�����`�� ���`�����`�����`�� ���`�����`�����oa�����a�����a��S���a�����a��'���a��[���'b�� ���b�����b�� ���b�����b�� ���b�� ���b�����b�����b�� ���b��9���b�����c�� ���:c�� ���Dc�� ���Nc�� ���Xc�����bc�����wc��I���Jd�����d�����d�����d�� ���d�� ���d�� ���e�����e�� ��� e�����-e�����@e�����Ue�����]e�����de�����je�����if��#���Og�����sg�� ���g�����g�����lh�����th�� ���i�� ���i�����i�����%i��O��*i��4���zj�����j�� ���j�� ���j�����j�����j�� ���j�����j�� ����k����� k�����k�����'k�����:k�����Rk�� ���jk�����vk�����k�����k�����k��+���k�����k�� ��� l�����l�����*l�����Bl�����al�� ���xl�����l��I���l��'���l�����m�����m�����$m�����=m�����Em��#���Xm�� ���|m�����m�� ���m�����m�����m�����m��"���m�����m��%���n�� ���4n�����>n�����Vn�����en�����n�����n�����n�����n�����n�����n�����n��*���n�� ���n�����n�����n�����o�����o�����/o�� ���8o�����Co�����So�����do�����vo�� ���o��"���o�����o�����o�� ���o�����o�����o�����p����� p�����p�� ���"p�����0p��#���Kp�����op�����p�����p�����p�����p�����p��V���p�� ���Bq�� ���cq�����qq�� ���q�����q��&���q��(���q�����q�����r�� ���&r�����2r�� ���Br�� ��cr�� ���ns�����ys��(���s��*���s����s�� ���ow�� ���zw�����w�����w��.���$x�����Sx�����Yx�����jx�����x�����x�����x�����x�����x�����y�����z�����0z�� ���Az�����Lz�����\z�����rz�����z�����z�����z�����z�����z�����z�� ���z�����{�����{�����${�����4{�����I{�� ���O{��/���Z{��N���{�����{�� ���{��4���{�����|��=���|�����}��-���}�����}��%���~��M���~�������P�����H���h��P��������������� ����� ���"�����/�����A�����H�����ۀ������� ��4��E��>�������]��������l��%��^��*����*����y���ڊ��>���T�������h���5��L���������� ������������������,�����5�����<�����P�����l�����|�������������������������ԍ����������������� �����!��� ��j���B����������E��^���ŏ�����$�����,�����F�� ���V�����c������� ���������C����B����k���@���������������V�� ������0���!��^���R�������:���Ę��>��������>�����N�����j�� �����2�����?���Ù����������֚������������y�����A��������Q�����o������:��������J�����_�� �����"��������Þ��"���ߞ��H�����)���K�����u�������&�����(���ן���������������� �����4����G�����!��=���;�����y����������������� ����������2���Ң�� ����� �������������8��(���P����y�������B�����"���X�� ���{��"����� �����$������������������3�����G��+���.�����Z�����l��&���}������������.���ݨ����� ��*���(�����S��&���b�������/�����"���̩�������J������0���K�����|�����M�����e��]�����f���R��O�����a��� ��\���k��;���ȭ�����������������-���3�����a��\���{�����خ������������#��������'�����8�����>�����F�����V�����\�����c�����w�����������������9���Я����� �� ��������+�����A��T���W�� ����������3�����;��������.�����6�����?�����S�����f�����z�� ����� ������������������ϱ�� ���������� ���-�����7�����V�����]�����}�������=�����'���޲�������d���"������������+����������������������� �����!�����;�����R������� ����� �������������8�����Q�����j������� ����������0�����m��������`������� ���+�����8��5���H�����~������������z���,�������"�����1�������������'������� ���¹�����̹������������A�����A���S��/����� ���ź�� ���Һ�����ߺ��������������������$�����@�����_�����{��.�������������޻��I�����+���?�����k��-�����.����������6��������8�����N��1���j���������������?��$���Ⱦ��O�����c���=��-��������Ͽ�� ���U�����b������������$���������������%����� ����������$��������<�����L������������#�����o��,���������4��\��P�������%����������������������������-�����>�����Q�����a����������������������Y���/��1�������������������� ��������������� ���1�����=�����U��%���[������� ���������������6���q�������J�����m��������Z��m���c��I�������������/��J���E��;����������@�����2���%�����X��Q���l��_�����.��������M��,���h������� �����$��������������������%���8��0���^��6�����L�����(����� ���<�����J�� ���i�����w��,�����$�����G�����a�����"���{��&�����(�����(�����#��������;��)���M��,���w��,����������)����� ��������"�����9��(���H��7���q��#�����C���������� ���)�����4�����C�����E�� ���d�� ���q�� ���~���������������������������������������������������� ��������*�����������������f��������H��-���c��t��������������� ���.�����8�����?�����N�����]�����l�� ���q��H���}��"��������������� ��� �� ��������!����:��L���I���������������������� �������� ����������-�����<�����W�����r�����z�������=���������&���������� ������� �� ���#�����-�������������������� ��|����C���������� ����� ����� ����� �������������$�����+�����=�����F�����]�����u�� �������������������������#��� ��7���-�����e������������*�����"����� �������������1��L���:��$������������������������������0����� ���J�� ���U�����_�����h�����x�������0����������)����� �����!���#�����E�����V�����v�����}������� ��������������������)���������������������������������,�����;�����K�����_�����t������������/����� ������������������*�� ���C�����P�����_�����s�����|��"�����*����������'��������&�����F��,���M�����z��x�����&��������+�����@�����Z�����x��5�����:�����"��� �����,�����I�����X�����o������� �����"�����1�����(��������� ��������������������(������������������ �����$�����D�����Y�����o�����x�����l���������������,�����?�����\�����z������������"�����������������������5�����=�����E�� ���W�����e�����|�� �����J�����T��������2�����8��=���H�������D���/�����t��1��������A��'���$��\���L�� �����V�����C�����o���R������������ ���������������������������������f�� ��-����N���������\�����������������K��������n��� �Q��� ����c ����v ���� ���� ���� � ��� ���� �<��� ����% ����7 � ���K � ���X � ���f �%��� � ��� ���� � ��� ���� ���� �#��� ����; ���� ����^ �q��� ����U�#���^����������������V�,��j�����K��V�L���w������g����v����6�%����=����R���M�����:����>�������0����?����^����|�C����O���� �� ����+����K���������O����!����"������(�C�������0� ���E����O�"���W����z�"����H����)�������,����G����d����{������������������������I����������������k������R��W��y����$��%���������������������������������������#�����y���R��#��������J���Z���������?���B��^��>������������������������� ��� ��3����1�����U������>�������K��q����������������������-���������������������v���8������:���/������g��d�����������������S��?�����������������������'���������,������������j��Z��������P���������W������������S���������]����������T����������� �������6�������������������r�������������c��9����������,������������������k��������������%���������������������������������������������L���"�������a����������W��t�������������������}��.������ ��$������K������G���������~���������������0������w������������E��������7����������������������������Q��������F������������������:��\�����������������O�����X��'��*��3������1������ ���������������������u������������9�����E�����������C�����������������������������?������8��a��_���b�������L������@��&������*��I��C���J�����Y���������D������������$���������;��F���������N������G������'���������������0�����@�����^��������c�����������������u����>��:��������.�����������M��j���[��S����������������4������� ������������H�������������@���������������K�����]���������P���&�������������������%���� ��c������h��X���A��������#�����������z�������3�����(����������������������������������������������Q��������e�������������-����������i���������D����p�������!��������������(������������X��5����7���������=��������������;������N���������P������������������T��������������\������Z����������������������&����� ��������� ���`�������|�����������`������������<���������e���+�������A�����=����������������������)�������Q������������������������f��!����� ���b��a���M��{�������<��7�������������������������������������H��������6��O��s���`����������9�����*���������-��}���"���������r���������0��������������{������������������������������������l��H����������v����d��/����� ��]���t���p�����2�����������d��������g������U���������C�������w���������[���l������������������������<��������� ���o���1��� ����������V��f������N�� ��E��������������������������������� �����������������������/������,��������~�����������������������!������[����n�����������_��"�����(�������2���J��x��h���_���� ��������o������M������4��=��8������������2����� ��4������������m���������������������������5��n��I���;�����)������6��L��V������������+����+��A�������������������������Y��B��F������ �������)��������m��i�����������5���^������|���z���������������������U����������x�����������\����q������������O���������������V����������b���������������������������������������Y�������������.�����D������������������B�������G��s�������������R�����T����e���������� Choose another product� Thank you very much for contacting us! We will get back to you shortly.�"In stock" label�%s�%s Blog�%s Shopping Cart�%s Store�%s Store Page�%s plugin doesn't work well with my "%s" theme�%s product�%s products�%s products and %s categories�%s products and categories�%s shopping cart settings�%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site.�%s — Advanced settings�(You will be able to confirm the changes before the actual import)�2 columns, image on the left�2 columns, image on the right�3 columns, image on the left�3 columns, image on the right�<a %s>Online store powered by %s</a>�<a %s>Reconnect</a>�<a href="admin.php?page=�<b>%s</b> categories�A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use "/shop" or "/products".�Action required: please connect your %s account�Add Product�Add Store�Add Store Page to Menu�Add a category page�Add a product page�Add a search and filters page�Add a store page�Add an Online Store to Your Website�Add border�Add cart and checkout page�Add categories�Add store page to the site menu�Add storefront (product listing)�Add to Menu�Add your %s store to the website and start selling in minutes.�Add your store to other site pages�Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href="%s" target="_blank">WordPress Settings > Reading</a>�Additional store pages�Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>�Adds a cart widget for customer to see the products they added to the cart.�Adds a compact cart widget for customer to see the products they added to the cart.�Adds a shopping cart widget to the top right corner of your site.�Adds root categories list to the sidebar to let your customers navigate the store.�Adds vertical categories block to let the customer navigate your store.�Adjust your store design to fit your business needs.�Admin Label�Advanced�Advanced settings�After import, your %s store will have �All Sales Channels�Along with the store catalog, you can add other widgets and texts to the store page.�Appearance�Apps�Available qty in stock�Back to Store Settings�Background color�Bag�Basket�Before You Go�Border�Border:�Bottom left�Bottom right�Breadcrumbs�Browse all products.�Browse by Category�Bulk import products and categories to your %s store�Button color�Buy Now�Buy Now Button�Buy now buttons�By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>.�CSS Class�CSS ID�Can you share the name of the plugin you chose?�Can you share your feedback? What was wrong?�Cancel�Cart�Cart and Checkout�Cart icon�Cart icon:�Catalog�Categories�Category�Category List Appearance�Category card layout�Category shown by default�Category thumbnail aspect ratio�Category thumbnail size�Center�Center align on a page�Change�Change store content�Choose Product�Choose product�Choose product properties to display in widget�Choose the main store page�Choose widgets to show�Click the connect button to get rights to update the product catalog�Color settings�Complete Setup�Complete setup and start selling�Configuration�Congratulations!�Connect�Connect Your Store�Connect your %s store�Connect your store�Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again.�Contact Support�Contact us�Content�Copying products and categories.�Create Cart Page�Create Category Page�Create Product Page�Create Search Page�Create Store�Create Store Page�Create a landing page featuring one of your products.�Create a new %s account which you will use to manage your store and inventory. The registration is free.�Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website.�Create new account�Create store�Current Page�Current URL slug: /<span data-ec-store-slug>%s</span>�Customer Single Sign-On�Customers�Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers.�Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout.�Customize design�Customize store appearance�Customize store page address�Customize widget�Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand.�Cyan bluish gray�Dashboard�Default category�Default category ID�Default product_ID�Default view mode on product pages�Default view mode on search results�Deleted products synchronized: %1$s out of %2$s�Demo Store�Demo store�Design�Design and content�Detect automatically�Disconnect store�Display a buy button�Display breadcrumbs�Display cart icon�Display categories menu�Display categories navigation bar�Display category page�Display footer menu�Display product page with description and a buy button�Display product with a buy button�Display search box�Display search page with filters on a side�Display shopping bag link and summary�Display shopping cart�Display shopping cart and checkout page�Display sign in link�Display sort by link�Display the shopping cart icon on site pages�Displayed product�Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site.�Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop.�Displays a list of random products.�Displays a random product from your store to attract customer attention.�Displays a simple search box for your customers to find a product in your store�Displays storefront: product listing and checkout�Displays the latest added products from your store. Show new products to returning customers to drive repeat sales.�Do not show�Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid.�Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site.�Done�Download <a href="%s">import log</a>�Download log file�Draft�E.g. How to set up shipping�Ecwid Badge�Ecwid Ecommerce�Ecwid Ecommerce Shopping Cart�Ecwid Menu Item�Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center�Ecwid e-commerce widgets�Ecwid ecommerce solution�Ecwid free shopping cart�Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">More details.</a>�Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up.�Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href="%s">TemplateMonster themes</a>�Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">More details.</a>�Ecwid shopping cart�Ecwid shopping cart widget�Edit�Edit Appearance�Edit Category�Edit Product�Edit Store�Edit URL Slug�Edit page�Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page.�Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space.�Enter your Store ID�Enter your Store ID here:�Extensions for your Store�Feature a specific store category on a separate page of your site.�Feature your products in the sidebar�Filters�Filters panel position�Find your Store ID�First Page�Frequently Asked Questions�Get %s mobile app�Go to Pages�Go to Your %s Products�Greetings!�Greetings! Your %s plugin is now active.�Grid�Grid view�Help�Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars.�Help customers find your store on the website.�Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products.�Here you can create the content that will be used within the module.�Here, we will help you uploading your product catalog to %s from another shopping cart or other sources.�Hide�Highlight products, categories, and other store pages by adding them to separate website pages.�Highlight your best sellers or new products in the website sidebar.�Horizontal indent�Horizontal thumbnails�How can I add a cart widget to my site sidebar?�How can I manage my store from a mobile device?�How can we help you?�How do I add store categories to the site menu?�How do I put my products in the sitemap?�How much does Ecwid cost?�How secure is this plugin? Is my store PCI DSS compliant?�How to add a single product with the add to bag button to the site pages?�How to set up a storefront on Facebook with Ecwid?�I already have an account, sign in�I couldn’t find a WordPress theme that goes well with %s�I found a better plugin�I have a problem using this plugin�I have a problem with my %s store�I use this WordPress theme: %s�Icon�Icon and item count�Icon, label and item count�Icon, label, item count and subtotal�Icon, label, item count, subtotal and link�If you have a moment, please let us know why you are deactivating:�Image and title on mouse over�Image feed�Image gallery layout�Image only�Import�Import Your Products From Woocommerce to %s�Import completed�Import completed. <a href="%s">Run again.</a>�Import creates new products and update the existing products with matching SKUs.�Import is in Progress�Import my products from WooCommerce�Import product catalog from WooCommerce�Import product catalog from other sources�Import products to your %s store�Import summary�Import your WooCommerce catalog to %s�Import your products from WooCommerce to %s�Import your products from Woocommerce to %s�Imported <b>%s</b> products�Importing %s of %s items�Insert�Insert into page�Instant site�Integration with search on your site�Is it possible to display my store on the site home page?�Is there a WordPress theme for Ecwid?�It's a temporary deactivation. Please do not ask me again.�Item count only�Justify�Knowledge Base�L�Label and item count�Landscape 3:2�Landscape 4:3�Last Page�Last update�Latest Products�Layout�Layout:�Learn more�Left�Light green cyan�Link color�Linked product�List�List view�Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL.�Luminous vivid amber�Luminous vivid orange�M�Make your store accessible from the site menu so your customers can easily find it.�Manage Sidebar�Manage Store on iPhone, iPad or Android�Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page.�Manage store�Manage storefront�Marketing�Mobile�My Account�My Profile�My Sales�Name�Navigation�Need help importing your products from WooCommerce to %s?�Never show this message again�Next Page�Next page�No Thanks�No border�Not synchronized yet�Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The "Show on store pages" and "Show when empty" options will apply to the cart widget on site when published�Nothing found for <span class="empty-page__term">"{{ data.term }}"</span>�Number of categories per row�Number of products per page�Number of products to show�On the left�On the right�Online Store�Online Store Apps�Online store�Open control panel�Open store dashboard�Options�Orders�Other�Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target="_blank" href="%s">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans.�Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">our customer support team</a>.�Page with that name already exists.�Pale cyan blue�Pale pink�Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>�Payment�Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers.�Pick Category�Pick Product�Picture�Pill�Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target="_blank">"Billing & Plans"</a></nobr> page in your Ecwid store control panel.�Please subscribe to a paid plan to get this feature.�Plugins for Ecwid�Portrait 2:3�Portrait 3:4�Position�Preview�Previous Page�Price�Price color�Product�Product Card Large�Product Card Small�Product List Appearance�Product Page Appearance�Product SKU�Product Search�Product Search Box�Product Search and filters�Product card text align�Product catalog will be shown automatically�Product page layout�Product price�Product quantity�Product sidebar content�Product thumbnail aspect ratio�Product thumbnail size�Product title�Products�Products are successfully synchronized. The product pages are up to date.�Products synchronized: %1$s out of %2$s�Promote your store�Provide access.�Provided by <a %s>%s</a>�Publish�Publish Store Page�Publish the page to use this option�Published�Quantity�Questions?�Random Product�Random Products�Rate %s at WordPress.org�Re-connect to Enable Control Panel�Recently Viewed Products�Recommendations for Your Online Store�Rectangle�Refresh categories list�Register at %s�Report a problem with the store�Reports�Right�S�SKU�Sales�Sales channels�Save�Save and connect your %s store to the site�Save changes�Search�Search and Filters�Search products�Search the Knowledge Base�See more�Select All�Select category�Selected Product�Selected category�Sell on Facebook�Send Message�Send a message to our support team�Send message failed�Set Up Your Store�Set manually�Set up your store�Settings�Setup�Shipping & Pickup�Shop�Shopping Cart�Shopping Cart (deprecated)�Shopping Cart Floating (deprecated)�Shopping Cart Icon�Shopping Cart Mini (deprecated)�Shopping Cart Widget�Show�Show additional image on hover�Show categories�Show customers that they can use a search and filters to find desired products faster.�Show description under the image�Show minicart�Show on all pages�Show on hover�Show on store pages�Show price inside the "Buy now" button�Show price inside the «Buy now» button�Show product card border�Show product thumbnails�Show search�Show when empty�Show your store on the home page�Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again.�Small icon�Small icon and item count�Some of the items could not be imported.�Sorry we're having technical difficulties.�Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: "The Wordpress function wp_remote_post() failed to connect a remote server because of some error: "%s". Seems like HTTP POST requests are disabled on this server". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>.�Square 1:1�Start Import�Status�Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store.�Still have questions about Ecwid? Let us know!�Store�Store Categories�Store Categories Menu�Store Category Page�Store Front Page�Store Home Page�Store ID�Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the "Dashboard" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration.�Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>.�Store Link Title�Store Navigation�Store Page�Store Page Link�Store Root Categories�Store appearance�Store elements�Store management�Store page content�Store page on your site�Store root category�Store with Categories Menu�Storefront�Subject�Submit & Deactivate�Switch to draft�Synchronize products�Table�Table view�Take a few simple steps to complete store setup�Take advantage of powerful apps and extensions designed to enhance your store.�Text�Text color�Thank you for choosing %s to build your online store�The block is hidden because you don't have categories in your store. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Add categories.</a>�The category that is shown by default on the Store Front Page�The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps.�The plugin doesn't support the feature I want�The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href="%s" target="_blank">adjust the cart icon appearance</a>.�The store is not visible on your site�The store top-level categories are automatically added to this drop-down menu�Themes for Ecwid�This import will copy your WooCommerce products and categories to your %s store.�This is a demo store. Create your store to see your store products here.�This will change the label of the module in the builder for easy identification.�Title�Title on image�Title only�Title or SKU�Title under image�Title:�To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings.�To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>.�To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>�To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the "Add product" dialog.�To create sitemap for your Wordpress site we suggest using <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> or <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target="_blank" href="https://www.ecwid.com/pricing">paid Ecwid users</a>.�To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission.�To enable this feature, the plugin needs a permission to read your store product information.�To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">How to use it.</a>�To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>�To manage your store, go to <a %s>the Store Dashboard page</a>�To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission.�To show your storefront instead of the demo store, connect your existing %s account or create a new one.�To start selling, add a page to your site where the storefront will display.�Top left�Top right�Try another search.�Type in your message here�URL Slug�Update�Update your catalog�Upgrade to get this feature�Vertical indent�Vertical thumbnails�Very dark gray�Very light gray�View Store Page�View demo store page�View store page�Visit storefront�Vivid cyan blue�Vivid green cyan�Vivid red�Want to connect another %s store?�Warning: some of your online store features are disabled. Please contact your hosting provider to resolve.�We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?�We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you.�We're synchronizing your products. This may take a few minutes. Please do not reload the page.�Website�What feature do you need?�What was wrong?�What's next?�While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site.�Wholesale prices�You can add product search box, cart widget and more on the <a href="%s">"Appearance / Widgets page"</a> here in your site admin. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">More details.</a>�You can add the entire storefront, categories, products, or "Buy now" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block.�You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open "Appearance > Menus" in your WordPress control panel and add the "Store with Categories Menu" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site.�You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">More details.</a>�You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel.�You can display your store on the site main page. Adjust the "Reading" settings of your site as described in our <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">Help Center.</a>�You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href="%1$s">Appearance → Customize → %2$s</a>” menu to enable it.�You can enable filters in the store settings: (“<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Settings → Product Filters</a>”).�You can send a new request here.�You have not viewed any product yet. Open store.�You will be able to sign up through your existing Google, Facebook or PayPal profiles as well.�Your %s store has �Your %s store is connected<br /> to your WordPress website�Your %s store is now connected<br /> to your WordPress website�Your Storefront�Your WooCommerce store has �Your email has been sent�Your product�Your store Control Panel. Right here in WordPress.�Your store has been created. Preparing your store dashboard ...�Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar.�Your store is almost ready!�Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display.�Your store page�Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders.�Your store page is published. Customers can browse your store at �Your store will be shown here�Your store will be shown here!�Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data.�[%s] WordPress plugin deactivation feedback (store ID: %s)�customize appearance�gutenberg-product-blockContent�gutenberg-store-block-stubStore�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�or <a %s>Browse the Help Center�product-browser-attributesProduct SKU�product-browser-attributesProduct price�select product�selected product�vc-tabOnline store�«Buy now» button�PO-Revision-Date: 2020-10-12 12:45 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: Poedit 2.4.1 Language: it Project-Id-Version: temporary-strings X-Crowdin-Project: temporary-strings X-Crowdin-Project-ID: 295314 X-Crowdin-Language: it X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po X-Crowdin-File-ID: 988 Language-Team: Italian Last-Translator: � Scegli un altro prodotto� Grazie mille per averci contattato! Ti risponderemo a breve.�Etichetta "in stock"�%s�Blog %s�Carrello della spesa %s�Negozio %s�Pagina del negozio %s�Il plugin %s non funziona bene con il mio tema "%s�prodotto %s�prodotti %s�prodotti %s e categorie %s�prodotti e categorie %s�Impostazioni del carrello della spesa %s�%s archivia i dati dei tuoi prodotti in un cloud storage sicuro. Le pagine dei prodotti vengono mostrate all'istante quando un cliente visita il tuo negozio. Quindi, in pratica, dato che i prodotti non sono archiviati sul sito, quando si effettua una ricerca nel sito, questa avviene tra le pagine del sito e i post, mentre le pagine dei prodotti non compaiono tra i risultati. Questa opzione abilita una modalità di memorizzazione locale: i prodotti sono memorizzati sia nel cloud che sul tuo sito. Tra i risultati delle ricerche effettuate nel sito vengono mostrate anche le pagine dei prodotti, oltre alle consuete pagine/post del sito.�%s - Impostazioni avanzate�(Potrai confermare le modifiche prima dell'importazione effettiva)�2 colonne, immagine sulla sinistra�2 colonne, immagine sulla destra�3 colonne, immagine sulla sinistra�3 colonne, immagine sulla destra�<a %s>Online store powered by %s</a>�<a %s>Riconnetti</a>�<a href="admin.php?page=�Categorie <b>%s</b>�Lo slug è l'ultima parte di un URL. Puoi creare uno slug personalizzato della pagina del negozio. È meglio che sia breve perché i clienti e i motori di ricerca preferiscono gli URL brevi. Per esempio, usa "/shop" o "/prodotti".�Azione richiesta: collega il tuo account %s�Aggiungi prodotto�Aggiungi negozio�Aggiungi la pagina del negozio al menu�Aggiungi pagina di categoria�Aggiungi pagina di prodotto�Aggiungi pagina di ricerca e pagina dei filtri�Aggiungi pagina del negozio�Aggiungi un negozio online al tuo sito web�Aggiungi bordo�Aggiungi carrello e pagina di checkout�Aggiungi categoria�Aggiungi la pagina del negozio al menu del sito�Aggiungi vetrina (elenco prodotti)�Aggiungi al menu�Aggiungi il tuo negozio %s al sito web e inizia a vendere in pochi minuti.�Aggiungi il tuo negozio ad altre pagine del sito�Aggiungi la vetrina alla home page del sito web per renderla più visibile. Puoi anche modificare le impostazioni della home page del sito in <a href="%s" target="_blank">Impostazioni WordPress > Lettura</a>.�Altre pagine di negozio�Inoltre, puoi aggiungere i controlli del negozio alla barra degli strumenti del tuo sito web utilizzando <a %s>widget originali WordPress</a>.�Aggiunge un widget del carrello che mostra al cliente i prodotti che ha aggiunto al carrello.�Aggiunge un widget del carrello compatto che mostra al cliente i prodotti che ha aggiunto al carrello.�Aggiunge widget del carrello della spesa nell'angolo in alto a destra del sito.�Aggiungi categorie di root alla barra laterale per consentire ai clienti di navigare nel negozio.�Aggiunge il blocco categorie in verticale per permettere al cliente di esplorare il negozio.�Adatta il design del negozio alle tue esigenze commerciali.�Etichetta Admin�Avanzato�Impostazioni avanzate�Dopo l'importazione, il tuo negozio %s avrà �Tutti i canali di vendita�Oltre al catalogo del negozio, puoi aggiungere altri widget e testi alla pagina del negozio.�Aspetto�App�Quantità disponibile in stock�Torna alle impostazioni del negozio�Colore di sfondo�Borsa�Cestino�Prima di andare�Bordo�Bordo:�In basso a sinistra�In basso a destra�Navigazione breadcrumb�Sfoglia tutti i prodotti.�Sfoglia per categoria�Importa in blocco prodotti e categorie nel tuo negozio %s�Colore del pulsante�Acquista ora�Pulsante Acquista ora�Pulsanti Acquista ora�Continuando, accetti i <a %s>Termini del servizio</a> e la <a %s>Privacy Policy</a>.�Classe CSS�ID CSS�Puoi comunicarci il nome del plugin che hai scelto?�Vuoi lasciarci il tuo feedback? Che cosa non ha funzionato?�Annulla�Carrello�Carrello e checkout�Icona del carrello�Icona del carrello:�Catalogo�Categorie�Categoria�Aspetto elenco delle categorie �Categoria layout scheda�Categoria mostrata di default�Categoria aspect ratio thumbnail�Categoria dimensione thumbnail�Al centro�Allinea al centro della pagina�Cambia�Cambia il contenuto del negozio�Scegli prodotto�Scegli il prodotto�Scegli le caratteristiche del prodotto da mostrare nel widget�Scegli la pagina principale del negozio�Scegli i widget da mostrare�Fai clic sul pulsante connect e ottieni i permessi necessari per aggiornare il catalogo dei prodotti�Impostazioni di colore�Completa configurazione�Completa l'installazione e inizia a vendere�Configurazione�Congratulazioni!�Collega�Collega il tuo negozio�Collega il tuo negozio %s�Collega il tuo negozio�Errore di connessione: dopo aver cliccato sul pulsante è necessario effettuare il login e dare il consenso per utilizzare il nostro plugin. Prova di nuovo.�Contatta l'assistenza�Contattaci�Contenuto�Copia di prodotti e categorie�Crea pagina del carrello�Crea pagina di categoria�Crea pagina di prodotto�Crea pagina di ricerca�Crea negozio�Crea la pagina del negozio�Crea una landing page con uno dei tuoi prodotti.�Crea un nuovo account %s che utilizzerai per gestire il negozio e l'inventario. La registrazione è gratuita.�Crea un nuovo negozio o collegane uno esistente, se disponi già di un account %s. Il plugin ti guiderà nella configurazione del negozio e ti aiuterà a pubblicarlo sul tuo sito web.�Crea nuovo account�Crea negozio�Pagina corrente�Attuale slug URL: /<span data-ec-store-slug>%s</span>�Single sign-on per i clienti�Clienti�I clienti non possono vedere la tua pagina del negozio perché è in bozza. Pubblica la pagina per renderla disponibile ai tuoi clienti.�I clienti vanno alla pagina del carrello per esaminare i prodotti che hanno aggiunto al carrello e procedere al pagamento.�Personalizza il design�Personalizza l'aspetto del negozio�Personalizza l'indirizzo della pagina del negozio�Personalizza widget�Personalizza l'aspetto del tuo negozio in base alle esigenze commerciali. Dai al negozio l'aspetto che meglio riflette il tuo marchio.�Grigio blu turchese�Dashboard�Categoria di default�ID categoria di default�ID prodotto predefinito�Modalità di visualizzazione predefinita delle pagine di prodotto�Modalità di visualizzazione predefinita dei risultati di ricerca�Prodotti cancellati sincronizzati: %1$s su %2$s�Negozio demo�Negozio demo�Design�Design e contenuto�Rileva automaticamente�Scollega il negozio�Mostra pulsante di acquisto�Mostra navigazione breadcrumbs�Mostra l'icona del carrello�Mostra menu categorie�Mostra la barra di navigazione delle categorie�Mostra la pagina di categoria�Mostra menu nel footer�Mostra la pagina di prodotto con la descrizione e il pulsante di acquisto�Mostra il prodotto con pulsante di acquisto�Mostra casella di ricerca�Mostra la pagina di ricerca con filtri a lato�Mostra link alla borsa della spesa e riepilogo�Mostra il carrello della spesa�Mostra il carrello della spesa e la pagina di checkout�Mostra segno nel link�Mostra ordinamento per link�Mostra l'icona del carrello sulle pagine del sito�Prodotto visualizzato�Mostra nella barra laterale un link alla pagina del negozio per consentire al cliente di accedervi rapidamente da qualsiasi pagina del sito.�Mostra l'elenco dei prodotti visti di recente dai clienti nel tuo negozio per consentire loro di visualizzarli nuovamente con facilità.�Mostra un elenco di prodotti a caso.�Mostra un prodotto a caso dal tuo negozio per attirare l'attenzione dei clienti�Mostra una semplice casella di ricerca per permettere ai clienti di trovare un prodotto nel negozio�Mostra la vetrina: elenco prodotti e checkout�Mostra gli ultimi prodotti aggiunti nel tuo negozio. Mostra i nuovi prodotti ai clienti di ritorno per promuovere vendite ricorrenti.�Non mostrare�Ti piace Ecwid e vuoi aiutarci a crescere? Aggiungi il badge 'Powered by Ecwid' sul tuo sito per mostrare ai tuoi visitatori che sei un utente Ecwid soddisfatto.�Sei soddisfatto del tuo negozio online %s? Ti saremmo grati se potessi lasciare una recensione e votare il plugin sul sito di WordPress.�Fatto�Scarica <a href="%s">importa log</a>�Scarica il file di log�Bozza�Esempio: come impostare la spedizione�Badge Ecwid�Ecommerce Ecwid�Carrello della spesa Ecwid Ecommerce�Voce menu Ecwid�Ecwid ti permette di caricare i tuoi prodotti sotto forma di file CSV. Per saperne di più su questo strumento visita l'Help Center Ecwid�Widget e-commerce Ecwid�Soluzione ecommerce Ecwid�Carrello della spesa gratuito Ecwid�Ecwid è certificato PCI DSS livello 1, che rappresenta il gold standard per le soluzioni di e-commerce in tutto il mondo. Ciò significa che la tua attività di vendita online con Ecwid non avrà problemi di conformità bancaria. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security"> Maggiori dettagli.</a>�Ecwid è un carrello della spesa completo e gratuito. Si integra facilmente con qualsiasi blog Wordpress e richiede meno di 5 minuti di configurazione.�Ecwid è compatibile con qualsiasi tema WordPress. Il tuo negozio Ecwid si adatta perfettamente sia a temi gratuiti del catalogo WordPress.org, che a temi premium di provider terzi, che a temi personalizzati. Se desideri un tema premium, consigliamo <a href="%s">TemplateMonster</a>.�Ecwid realizza applicazioni mobili gratuite per iOS e Android per gestire il tuo negozio e vendere dove vuoi, quando vuoi. Scansiona i prodotti, monitora l'inventario, gestisci le vendite e accetta pagamenti utilizzando il tuo dispositivo mobile come lettore POS. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile"> Maggiori dettagli.</a>�Carrello della spesa Ecwid�Widget del carrello della spesa Ecwid�Modifica�Modifica aspetto�Modifica categoria�Modifica prodotto�Modifica negozio�Modifica slug URL �Modifica pagina�Inserisci un ID CSS opzionale da utilizzare per questo modulo. Un ID può essere usato per creare uno stile CSS personalizzato o per creare link a particolari sezioni della pagina.�Inserisci le classi CSS opzionali da utilizzare per questo modulo. Una classe CSS può essere usata per creare uno stile CSS personalizzato. Puoi aggiungere più classi, separate da uno spazio.�Inserisci il tuo store ID�Inserisci qui il tuo store ID:�Estensioni per il tuo negozio�Metti in evidenza una specifica categoria del negozio in una pagina diversa del tuo sito.�Metti in evidenza i prodotti nella barra laterale�Filtri�Posizione del pannello filtri�Trova il tuo store ID�Prima pagina�Domande frequenti�Scarica l'app %s per mobile�Vai a Pages�Vai ai tuoi prodotti %s�Ciao!�Ciao! Il tuo plugin %s è ora attivo.�Griglia�Vista griglia�Aiuto�Aiuta i clienti a trovare il tuo negozio sul sito. Aggiungi il link del negozio al menu del sito, crea ulteriori pagine del negozio e metti in evidenza i prodotti in altre pagine del sito e nelle barre laterali.�Aiuta i clienti a trovare il tuo negozio sul sito web.�Qui puoi controllare quanti prodotti sono visualizzati per pagina. Queste opzioni definiscono i valori massimi. Se non c'è abbastanza spazio per mostrare tutte le colonne dei prodotti, %s adatta il numero di colonne per contenere tutti i prodotti.�Qui puoi creare il contenuto che verrà utilizzato all'interno del modulo.�Qui ti aiuteremo a caricare il tuo catalogo prodotti in %s da un altro carrello della spesa o da altre fonti.�Nascondi�Evidenzia i prodotti, le categorie e altre pagine del negozio aggiungendole a pagine specifiche del sito web.�Evidenzia i best seller o i nuovi prodotti nella barra laterale del sito.�Rientro orizzontale�Thumbnail orizzontali�Come posso aggiungere il widget del carrello alla barra laterale del sito?�Come posso gestire il mio negozio da un dispositivo mobile?�Come possiamo aiutarti?�Come posso aggiungere le categorie del negozio al menu del sito?�Come posso inserire i miei prodotti nella sitemap?�Quanto costa Ecwid?�Quanto è sicuro questo plugin? Il mio negozio è conforme agli standard PCI DSS?�Come aggiungere alle pagine del sito un singolo prodotto con il pulsante "aggiungi alla borsa"?�Come creare una vetrina su Facebook con Ecwid?�Ho già un account, accedi�Non ho trovato un tema WordPress adatto a %s�Ho trovato un plugin migliore�Ho un problema con questo plugin�Ho un problema con il mio negozio %s�Uso questo tema WordPress: %s�Icona�Icona e conteggio articoli�Icona, etichetta e conteggio articoli�Icona, etichetta, conteggio articoli e subtotale�Icona, etichetta, conteggio articoli, subtotale e link�Se hai un momento, comunicaci perché stai procedendo con la disattivazione:�Immagine e titolo al passaggio del mouse�Feed immagini�Layout della galleria immagini�Solo immagine�Importa�Importa i tuoi prodotti da Woocommerce in %s�Procedura di importazione completata�Procedura di importazione completata. <a href="%s">Esegui di nuovo.</a>�Con Importa crei nuovi prodotti e aggiorni i prodotti esistenti con gli Cod. Art. corrispondenti.�Procedura di importazione in corso�Importa i miei prodotti da WooCommerce�Importa catalogo prodotti da WooCommerce�Importa catalogo prodotti da altre fonti�Importa prodotti nel tuo negozio %s�Importa riepilogo�Importa il tuo catalogo WooCommerce in %s�Importa i tuoi prodotti da WooCommerce in %s�Importa i tuoi prodotti da Woocommerce in %s�Prodotti <b>%s</b> importati�%s articoli su %s in fase di importazione�Inserisci�Inserisci nella pagina�Sito immediato�Integrazione con la ricerca sul tuo sito�Posso mostrare il mio negozio nella home page del sito?�Esiste un tema WordPress per Ecwid?�È una disattivazione temporanea. Per favore, non chiedermelo più.�Solo conteggio articoli�Giustifica�Knowledge Base�L�Etichetta e conteggio articoli�Panorama 3:2�Panorama 4:3�Ultima pagina�Ultimo aggiornamento�Ultimi prodotti�Layout�Layout:�Per saperne di più�Sinistra�Verde turchese chiaro�Colore dei link�Prodotto collegato�Elenco�Vista elenco�Sembra che il tuo sito non supporti richieste POST remote necessarie per il funzionamento delle API %s. Contatta il tuo hosting provider per abilitare cURL.�Ambra�Arancio brillante�M�Rendi il negozio accessibile dal menu del sito in modo che i tuoi clienti possano trovarlo facilmente.�Gestisci la barra laterale�Gestisci il negozio su iPhone, iPad o Android�Gestisci i prodotti, monitora le vendite, modifica le impostazioni.<nobr> Tutto senza</nobr> lasciare questa pagina.�Gestisci il negozio�Gestisci la vetrina�Marketing�Mobile�Il mio account�Il mio profilo�Le mie vendite�Nome�Navigazione�Hai bisogno di aiuto per importare i tuoi prodotti da WooCommerce in %s?�Non mostrare più questo messaggio�Pagina seguente�Pagina seguente�No, grazie�Nessun bordo�Non ancora sincronizzato�Nota: quando è abilitato, il widget del carrello viene sempre mostrato in anteprima per facilitarne la personalizzazione. Le opzioni "Mostra nelle pagine del negozio" e "Mostra quando è vuoto" si applicano al widget del carrello sul sito al momento della pubblicazione�Nessun risultato per <span class="empty-page__term">"{{ data.term }}"</span>�Numero di categorie per riga�Numero di prodotti per pagina�Numero di prodotti da mostrare�Sulla sinistra�Sulla destra�Negozio online�Online Store Apps�Negozio online�Apri pannello di controllo�Apri dashboard del negozio�Opzioni�Ordini�Altro�I 4 tipi di account disponibili variano in base al numero di prodotti, ai tipi di funzionalità e al livello di assistenza previsti. Per ulteriori informazioni, consulta la <a target="_blank" href="%s">pagina dei prezzi.</a><br /><br /> Suggerimento pro: puoi decidere di risparmiare iscrivendoti ad un piano annuale.�Il nostro team è già al lavoro sul problema. Ti invitiamo ad aggiornare la pagina entro pochi minuti. Se il problema persiste, contatta <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new"> il nostro team di assistenza clienti</a>.�Pagina con questo nome già esistente.�Turchese pallido�Rosa pallido�Una parte dei prodotti non è stata copiata in %1$s, perché hai raggiunto il limite massimo di prodotti consentito dal tuo piano tariffario in %1$s. Se desideri importare più prodotti, valuta la possibilità di effettuare <nobr><a %2$s> l'upgrade del tuo piano %1$s.</a></nobr>�Pagamento�Personalizza l'aspetto della vetrina e modifica il contenuto della pagina del negozio in modo che rifletta al meglio il tuo marchio e per rimanere in contatto con i tuoi clienti.�Scegli categoria�Scegli prodotto�Immagine�Pillola�Fai attenzione al numero massimo di prodotti e categorie che puoi mostrare nel tuo negozio Ecwid. L'importazione si interromperà automaticamente al raggiungimento del limite massimo di prodotti. Per verificare il limite attuale del negozio o aumentarlo, consulta la pagina <nobr><a %s target="_blank">"Fatturazione & Piani"</a></nobr> nel pannello di controllo del negozio Ecwid.�Iscriviti a un piano a pagamento per ottenere questa funzionalità.�Plugin per Ecwid�Ritratto 2:3�Ritratto 3:4�Posizione�Anteprima�Pagina precedente�Prezzo�Colore del prezzo�Prodotto�Scheda prodotto grande�Scheda prodotto piccola�Aspetto elenco dei prodotti �Aspetto della pagina di prodotto�Cod. Art. prodotto�Ricerca prodotto�Box di ricerca prodotto�Ricerca prodotto e filtri�Allinea testo della scheda prodotto�Il catalogo dei prodotti sarà mostrato automaticamente�Layout della pagina di prodotto�Prezzo del prodotto�Quantità del prodotto�Contenuto della barra laterale di prodotto�Aspect ratio thumbnail di prodotto�Dimensione thumbnail di prodotto�Nome del prodotto�Prodotti�Prodotti sincronizzati con successo. Le pagine dei prodotti sono aggiornate.�Prodotti sincronizzati: %1$s su %2$s�Promuovi il tuo negozio�Fornisci accesso�Realizzato da <a %s>%s</a>�Pubblica�Pubblica la pagina del negozio�Pubblica la pagina per utilizzare questa opzione�Pubblicato�Quantità�Domande?�Prodotto a caso�Prodotti a caso�Valuta %s su WordPress.org�Ricollega per abilitare il pannello di controllo�Prodotti visti di recente�Raccomandazioni per il tuo negozio online�Rettangolo�Aggiorna l'elenco delle categorie�Registrati su %s�Segnala un problema del negozio�Report�Destra�S�Cod. Art.�Vendite�Canali di vendita�Salva�Salva e collega il tuo negozio %s al sito�Salva le modifiche�Cerca�Cerca e filtra�Cerca prodotti�Cerca nella Knowledge Base�Scopri di più�Seleziona tutto�Seleziona categoria�Prodotto selezionato�Categoria selezionata�Vendi su Facebook�Invia messaggio�Invia un messaggio al nostro team di assistenza�Impossibile inviare il messaggio�Configura il tuo negozio�Imposta manualmente�Configura il tuo negozio�Impostazioni�Configurazione�Spedizione e ritiro�Acquista�Carrello della spesa�Carrello della spesa (disattivato)�Carrello della spesa sospeso (disattivato)�Icona del carrello della spesa�Mini carrello della spesa (disattivato)�Widget del carrello della spesa�Mostra�Mostra altre immagini al passaggio del mouse�Mostra categorie�Mostra ai clienti che possono fare una ricerca e utilizzare i filtri per trovare i prodotti desiderati più velocemente.�Mostra la descrizione sotto l'immagine�Mostra mini carrello�Mostra in tutte le pagine�Mostra al passaggio del mouse�Mostra nelle pagine del negozio�Mostra prezzo all'interno del pulsante "Acquista ora"�Mostra il prezzo all'interno del pulsante «Acquista ora»�Mostra bordo della scheda prodotto�Mostra thumbnail di prodotto�Mostra ricerca�Mostra quando è vuoto�Mostra il negozio in home page�Single Sign-On permette ai tuoi clienti di avere un unico login per WordPress e %s. Quando accederanno al tuo sito, saranno automaticamente connessi al loro account cliente anche nel negozio, senza bisogno di inserire nuovamente e-mail/password.�Icona piccola�Icona piccola e conteggio articoli�Non è stato possibile importare alcuni articoli.�Ci scusiamo per le difficoltà tecniche.�Ci dispiace, c'è un problema. Questa pagina dovrebbe mostrare il pannello di controllo del tuo negozio. Tuttavia, questo sito Wordpress sembra non essere in grado di connettersi al server Ecwid per effettuare tale operazione. La causa potrebbe essere un errore di configurazione del server, che può essere risolto dal tuo hosting provider. Ecco una descrizione più tecnica del problema, che puoi inviare all'hosting provider: "La funzione Wordpress wp_remote_post() non è riuscita a collegare un server remoto a causa di un errore: "%s". Sembra che le richieste HTTP POST siano disabilitate su questo server". <br /><br />Non esitare a contattarci all'indirizzo <a %s>wordpress@ecwid.com</a>: ti aiuteremo a contattare il tuo hosting provider per risolvere il problema. <br /><br /> Nel frattempo, per gestire il tuo negozio, puoi usare il pannello di controllo web di Ecwid all'indirizzo <a %s>my.ecwid.com</a>. La vetrina del negozio è perfettamente funzionante, controlla qui: <a %s>%s</a>.�Quadrato 1:1�Inizia a importare�Stato�Rimani in contatto con i tuoi clienti. Aggiorna il contenuto del tuo negozio in qualsiasi momento per informare i clienti sulle promozioni in corso e sulle novità.�Hai ancora domande su Ecwid? Contattaci!�Negozio�Categorie del negozio�Menu categorie del negozio�Pagina di categoria del negozio�Pagina della vetrina�Home page del negozio�Store ID�Lo store ID è un identificatore univoco di qualsiasi negozio %1$s, composto da diverse cifre. Lo trovi nella pagina "Dashboard" del pannello di controllo %1$s. Lo riceverai anche nella mail di benvenuto che ti invieremo dopo la registrazione.�Lo store ID è un identificatore univoco del tuo account %1$s. Lo trovi nel pannello di controllo %1$s nella pagina <a %2$s>Dashboard </a>.�Titolo del link del negozio�Navigazione nel negozio�Pagina del negozio�Link alla pagina del negozio�Categorie di root del negozio�Aspetto del negozio�Archivia gli elementi�Gestione del negozio�Contenuto della pagina del negozio�Pagina del negozio sul tuo sito�Categoria di root del negozio�Negozio con menu categorie�Vetrina�Oggetto�Invia & Disattiva�Passa a bozza�Prodotti sincronizzati�Tabella�Vista tabella�Per completare la configurazione del negozio, bastano poche semplici mosse�Approfitta di app ed estensioni efficienti progettate per migliorare il tuo negozio.�Testo�Colore di testo�Grazie di aver scelto %s per realizzare il tuo negozio online�Il blocco è nascosto perché non hai categorie nel tuo negozio. <a target="_blank" href="admin.php?page=ec-store-admin-category-id-0-mode-edit">Aggiungi categorie.</a>�La categoria che viene mostrata di default nella vetrina del negozio�Il primo passo per aprire il tuo business online: <br />Iniziamo subito aggiungendo un negozio al tuo sito WordPress in <strong>3</strong> semplici mosse.�Il plugin non supporta la funzionalità che cerco�L'icona del carrello della spesa mostra il numero di articoli presenti nel carrello e permette ai clienti di procedere al pagamento. Inoltre, puoi <a href="%s" target="_blank"> modificare l'aspetto dell'icona del carrello</a>.�Il negozio non è visibile sul tuo sito�Le categorie principali del negozio vengono aggiunte automaticamente a questo menu a tendina�Temi di Ecwid�Questa importazione copierà i prodotti e le categorie WooCommerce nel tuo negozio %s.�Questo è un negozio demo. Crea qui il negozio con i tuoi prodotti.�In questo modo l'etichetta del modulo nel generatore verrà cambiata per permettere una facile identificazione.�Titolo�Titolo sull'immagine�Solo titolo�Titolo o Cod. Art.�Titolo sotto l'immagine�Titolo:�Per aggiungere funzionalità extra al tuo negozio, trascina e rilascia gli elementi sul sito. Una volta terminato, puoi modificare le impostazioni.�Per aggiungere il negozio al tuo sito web, inserisci il tuo store ID %1$s nel campo sottostante. Se non hai ancora un account %1$s, creane uno gratis sul sito web <a %2$s>%1$s</a>.�Per consentire a %s di far accedere automaticamente i clienti al negozio, richiediamo l'autorizzazione per l'utilizzo dei dati dei clienti che accedono. <a %s>Utilizza questo link per procedere</a>}�Per poter scegliere un prodotto da inserire nei post e nelle pagine, devi ricollegare il sito al tuo negozio %s. Questa operazione ti chiederà solo di accettare la richiesta di autorizzazione, in modo che il plugin possa elencare i prodotti nella finestra di dialogo "Aggiungi prodotto".�Per creare la mappa del tuo sito Wordpress ti consigliamo di usare <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> o <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>.  plugins. Questi plugin sono perfettamente compatibili con Ecwid e permettono di generare una sitemap contenente link a categorie e pagine di prodotto; in questo modo, le pagine del negozio sono indicizzate più velocemente. Tieni presente che questa opzione è disponibile per <a target="_blank" href="https://www.ecwid.com/pricing">utenti Ecwid a pagamento</a>.�Per mostrare il tuo negozio su questo sito, devi autorizzare WordPress ad accedere ai tuoi prodotti %1$s. Premi connect per dare il consenso.�Per abilitare questa funzionalità, è necessario dare al plugin l'autorizzazione per leggere le informazioni dei prodotti del tuo negozio.�Per inserire un singolo prodotto in una pagina specifica o in un post del blog del sito, usa lo shortcode <b>[ecwid_product]</b>. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow"> Come usarlo.</a>�Per migliorare e gestire l'aspetto della pagina di prodotto, abilita l'opzione "Aspetto avanzato della pagina di prodotto in vetrina" nella dashboard del negozio ("<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Impostazioni → Cosa c'è di nuovo</a>").�Per migliorare e gestire l'aspetto della pagina di prodotto, abilita l'opzione "Aspetto avanzato della pagina di prodotto in vetrina" nella dashboard del negozio ("<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Impostazioni → Cosa c'è di nuovo</a>").�Per migliorare e gestire l'aspetto della pagina di prodotto, abilita l'opzione "Aspetto avanzato della pagina di prodotto in vetrina" nella dashboard del negozio ("<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Impostazioni → Cosa c'è di nuovo</a>").�Per accertarti che i tuoi clienti possano effettivamente accedere al sito e al negozio, abilita la registrazione nelle impostazioni del sito <a %s></a>.�Per gestire il tuo negozio, vai alla pagina <a %s>Dashboard del negozio</a>�Per vendere utilizzando %1$s, è necessario consentire a WordPress di accedere al plugin %1$s. Il pulsante connect ti indirizzerà al tuo account %1$s dove potrai dare l'autorizzazione.�Per mostrare la tua vetrina invece di un negozio demo, collega il tuo account %s esistente o creane uno nuovo.�Per iniziare a vendere, aggiungi al tuo sito una pagina che mostrerà la vetrina.�In alto a sinistra�In alto a destra�Fai un'altra ricerca�Scrivi qui il tuo messaggio�Slug URL�Aggiornamento�Aggiorna il tuo catalogo�Passa a un piano superiore per ottenere questa funzionalità�Rientro verticale�Thumbnail verticali�Grigio scuro�Grigio chiaro�Visualizza la pagina del negozio�Visualizza la pagina del negozio demo�Visualizza la pagina del negozio�Visita la vetrina�Blu turchese �Verde turchese brillante�Rosso brillante�Vuoi collegare un altro negozio %s?�Attenzione: alcune delle funzioni del tuo negozio online sono disabilitate. Ti invitiamo a contattare il tuo hosting provider per risolvere il problema.�Abbiamo notato che utilizzi WooCommerce. Il tuo negozio WooCommerce ha %1$s prodotti e %2$s categorie. Vuoi importarlo in %3$s?�Abbiamo notato che utilizzi WooCommerce. Se vuoi copiare facilmente i tuoi prodotti WooCommerce in %s, questo strumento ti aiuterà.�Stiamo sincronizzando i tuoi prodotti. L'operazione potrebbe richiedere qualche minuto. Non ricaricare la pagina.�Sito web�Di quali funzionalità hai bisogno?�Che cosa non ha funzionato?�Qual è il prossimo passo?�Se il negozio non è collegato, sul sito viene mostrato un negozio demo. Dai un'occhiata al sito per avere un'idea di come potrebbe apparire il tuo negozio.�Prezzi all'ingrosso�Puoi aggiungere la casella di ricerca dei prodotti, il widget del carrello e altro ancora nella pagina<a href="%s">"Aspetto / Widget"</a> del tuo sito admin. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets"> Maggiori dettagli.</a>�Puoi aggiungere l'intera vetrina, le categorie, i prodotti o il pulsante "Acquista ora" ad altre pagine del sito. Per fare ciò, apri una pagina nell'editor e aggiungi l'apposito blocco %s. �Puoi aggiungere il menu categorie del negozio al menu del sito per aiutare i clienti nella navigazione. Basta aprire "Aspetto > Menu" nel pannello di controllo WordPress e aggiungere la voce "Negozio con menu categorie" al menu del tuo sito. Un menu a tendina contenente le categorie del negozio apparirà automaticamente sul sito.�Puoi aggiungere il tuo negozio online alla tua pagina Facebook. Non sono necessarie estensioni. Ecwid sincronizzerà automaticamente prodotti, clienti, ordini e inventario tra le vetrine di WordPress e Facebook. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop"> Maggiori dettagli.</a>�Puoi gestire l'aspetto del negozio nella pagina <a %s>Impostazioni di design</a> nel pannello di controllo del negozio.�Puoi mostrare il tuo negozio sulla pagina principale del sito. Modifica le impostazioni "Lettura" del sito come descritto nell'<a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">Help Center.</a>�Puoi attivare un widget aggiuntivo per l'icona della borsa della spesa che apparirà sulle pagine del sito. Apri il menu "<a href="%1$s">Aspetto → Personalizza → %2$s</a>" per abilitarlo.�Puoi attivare i filtri nelle impostazioni del negozio: ("<a target="_blank" href="admin.php?page=ec-store-admin-product-filters-mode-main">Impostazioni → Filtri prodotto</a>").�Puoi inviare una nuova richiesta qui.�Non hai ancora visualizzato nessun prodotto. Apri il negozio.�Puoi iscriverti anche attraverso i tuoi attuali profili Google, Facebook o PayPal.�Il tuo negozio %s ha �Il tuo negozio %s è collegato<br /> al tuo sito WordPress�Il tuo negozio %s è ora collegato<br /> al tuo sito WordPress�La tua vetrina�Il tuo negozio WooCommerce ha �La tua email è stata inviata�Il tuo prodotto�Il pannello di controllo del tuo negozio. Proprio qui in WordPress.�Il tuo negozio è stato creato. La dashboard del negozio è in preparazione ...�Il tuo negozio è aggiunto a diverse pagine del sito. Scegli la pagina principale. I clienti vengono indirizzati alla pagina principale del negozio quando fanno clic sull'icona del carrello, sui link del negozio nel menu del sito e sui prodotti nella barra laterale.�Il tuo negozio è quasi pronto!�Il tuo negozio non è aggiunto a nessuna pagina del sito. Per permettere ai clienti di visitarlo e di effettuare ordini, crea una pagina dove sia visibile.�La pagina del tuo negozio�La pagina del negozio è attualmente in bozza. Quando è tutto pronto, pubblicala per permettere ai clienti di visitare il negozio e fare ordini.�La pagina del negozio è pubblicata. I clienti possono visitarlo all'indirizzo �Il tuo negozio sarà mostrato qui�Il tuo negozio sarà mostrato qui!�La tua vetrina (elenco prodotti e checkout) è perfettamente funzionante, ma le opzioni avanzate consentite come il SEO e i widget della barra laterale sono disabilitate. Per attivarle e assicurarti che il negozio funzioni correttamente, premi il pulsante qui sotto per collegare il tuo account %s. L'operazione richiederà meno di un minuto; ti verrà chiesto solo di accedere al tuo account per permettere al sito di ottenere i dati del tuo negozio.�[%s] Feedback di disattivazione del plugin WordPress (store ID: %s)�personalizza aspetto�Contenuto�Negozio�http://www.ecwid.com?partner=wporg�https://ecwid.to/ecwid-site�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products�https://support.ecwid.com/hc/en-us/search�https://www.ecwid.com/blog�o <a %s>Visita l'Help Center�Cod. Art. del prodotto�Prezzo del prodotto�seleziona prodotto�prodotto selezionato�Negozio online�Pulsante «Acquista ora»���������������������������������ecwid-shopping-cart/languages/ecwid-shopping-cart-it_IT.po������������������������������������������0000644�����������������00000321043�15122273603�0017602 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Translation of Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) in German # This file is distributed under the same license as the Plugins - Ecwid Ecommerce Shopping Cart - Stable (latest release) package. msgid "" msgstr "" "PO-Revision-Date: 2020-10-12 12:45\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: GlotPress/3.0.0-alpha.2\n" "Language: it\n" "Project-Id-Version: temporary-strings\n" "X-Crowdin-Project: temporary-strings\n" "X-Crowdin-Project-ID: 295314\n" "X-Crowdin-Language: it\n" "X-Crowdin-File: /Wordpress Plugin/wp-plugins-ecwid-shopping-cart-stable.po\n" "X-Crowdin-File-ID: 988\n" "Language-Team: Italian\n" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:92 msgid "You can control your store look and feel on the <a %s>Design settings page</a> in your store control panel." msgstr "Puoi gestire l'aspetto del negozio nella pagina <a %s>Impostazioni di design</a> nel pannello di controllo del negozio." #: includes/integrations/elementor/class-ec-elementor-widget-store.php:55 msgid "To manage your store, go to <a %s>the Store Dashboard page</a>" msgstr "Per gestire il tuo negozio, vai alla pagina <a %s>Dashboard del negozio</a>" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:39 msgid "The category that is shown by default on the Store Front Page" msgstr "La categoria che viene mostrata di default nella vetrina del negozio" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:38 msgid "Default category" msgstr "Categoria di default" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:29 msgid "Online Store" msgstr "Negozio online" #: includes/class-ecwid-stub-renderer.php:38 msgid "Buy Now" msgstr "Acquista ora" #: templates/admin/welcome-terms-privacy.php:5 msgid "By continuing, you agree to the <a %s>Terms of Service</a> and <a %s>Privacy Policy</a>." msgstr "Continuando, accetti i <a %s>Termini del servizio</a> e la <a %s>Privacy Policy</a>." #: js/gutenberg/blocks.build.js:1 msgid "Display shopping cart and checkout page" msgstr "Mostra il carrello della spesa e la pagina di checkout" #: js/gutenberg/blocks.build.js:1 msgid "Cart and Checkout" msgstr "Carrello e checkout" #: js/gutenberg/blocks.build.js:1 msgid "Filters" msgstr "Filtri" #: js/gutenberg/blocks.build.js:1 msgid "You can enable filters in the store settings: (“<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Settings → Product Filters</a>”)." msgstr "Puoi attivare i filtri nelle impostazioni del negozio: (\"<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Impostazioni → Filtri prodotto</a>\")." #: js/gutenberg/blocks.build.js:1 msgid "Search and Filters" msgstr "Cerca e filtra" #: js/gutenberg/blocks.build.js:1 msgid "Display search page with filters on a side" msgstr "Mostra la pagina di ricerca con filtri a lato" #: js/gutenberg/blocks.build.js:1 msgid "Product Search and filters" msgstr "Ricerca prodotto e filtri" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Per migliorare e gestire l'aspetto della pagina di prodotto, abilita l'opzione \"Aspetto avanzato della pagina di prodotto in vetrina\" nella dashboard del negozio (\"<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Impostazioni → Cosa c'è di nuovo</a>\")." #: js/gutenberg/blocks.build.js:1 msgid "Display product page with description and a buy button" msgstr "Mostra la pagina di prodotto con la descrizione e il pulsante di acquisto" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Large" msgstr "Scheda prodotto grande" #: js/gutenberg/blocks.build.js:1 msgid "Selected category" msgstr "Categoria selezionata" #: js/gutenberg/blocks.build.js:1 msgid "Select category" msgstr "Seleziona categoria" #: js/gutenberg/blocks.build.js:1 msgid "Add categories" msgstr "Aggiungi categoria" #: js/gutenberg/blocks.build.js:1 msgid "Display category page" msgstr "Mostra la pagina di categoria" #: js/gutenberg/blocks.build.js:1 msgid "Store Category Page" msgstr "Pagina di categoria del negozio" #: js/gutenberg/blocks.build.js:1 msgid "Display shopping bag link and summary" msgstr "Mostra link alla borsa della spesa e riepilogo" #: js/gutenberg/blocks.build.js:1 msgid "Shopping Cart Icon" msgstr "Icona del carrello della spesa" #: js/gutenberg/blocks.build.js:1 msgid "The block is hidden because you don't have categories in your store. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Add categories.</a>" msgstr "Il blocco è nascosto perché non hai categorie nel tuo negozio. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Aggiungi categorie.</a>" #: js/gutenberg/blocks.build.js:1 msgid "Categories" msgstr "Categorie" #: js/gutenberg/blocks.build.js:1 msgid "Display categories navigation bar" msgstr "Mostra la barra di navigazione delle categorie" #: js/gutenberg/blocks.build.js:1 msgid "Store Categories Menu" msgstr "Menu categorie del negozio" #: js/gutenberg/blocks.build.js:1 msgid "Product Search Box" msgstr "Box di ricerca prodotto" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:25 #: js/gutenberg/blocks.build.js:1 msgid "Linked product" msgstr "Prodotto collegato" #: js/gutenberg/blocks.build.js:1 msgid "Display a buy button" msgstr "Mostra pulsante di acquisto" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:10 #: js/gutenberg/blocks.build.js:1 msgid "Buy Now Button" msgstr "Pulsante Acquista ora" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:52 #: js/gutenberg/blocks.build.js:1 msgid "Show price inside the «Buy now» button" msgstr "Mostra il prezzo all'interno del pulsante «Acquista ora»" #: js/gutenberg/blocks.build.js:1 msgctxt "gutenberg-product-block" msgid "Content" msgstr "Contenuto" #: js/gutenberg/blocks.build.js:1 msgid "Change" msgstr "Cambia" #: js/gutenberg/blocks.build.js:1 msgid "Displayed product" msgstr "Prodotto visualizzato" #: js/gutenberg/blocks.build.js:1 msgid "Display product with a buy button" msgstr "Mostra il prodotto con pulsante di acquisto" #: js/gutenberg/blocks.build.js:1 msgid "Product Card Small" msgstr "Scheda prodotto piccola" #: js/gutenberg/blocks.build.js:1 msgid "Very dark gray" msgstr "Grigio scuro" #: js/gutenberg/blocks.build.js:1 msgid "Cyan bluish gray" msgstr "Grigio blu turchese" #: js/gutenberg/blocks.build.js:1 msgid "Very light gray" msgstr "Grigio chiaro" #: js/gutenberg/blocks.build.js:1 msgid "Vivid cyan blue" msgstr "Blu turchese " #: js/gutenberg/blocks.build.js:1 msgid "Pale cyan blue" msgstr "Turchese pallido" #: js/gutenberg/blocks.build.js:1 msgid "Vivid green cyan" msgstr "Verde turchese brillante" #: js/gutenberg/blocks.build.js:1 msgid "Light green cyan" msgstr "Verde turchese chiaro" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid amber" msgstr "Ambra" #: js/gutenberg/blocks.build.js:1 msgid "Luminous vivid orange" msgstr "Arancio brillante" #: js/gutenberg/blocks.build.js:1 msgid "Vivid red" msgstr "Rosso brillante" #: js/gutenberg/blocks.build.js:1 msgid "Pale pink" msgstr "Rosa pallido" #: js/gutenberg/blocks.build.js:1 msgid "Set manually" msgstr "Imposta manualmente" #: js/gutenberg/blocks.build.js:1 msgid "Detect automatically" msgstr "Rileva automaticamente" #: js/gutenberg/blocks.build.js:1 msgid "Color settings" msgstr "Impostazioni di colore" #: js/gutenberg/blocks.build.js:1 msgid "Store Navigation" msgstr "Navigazione nel negozio" #: js/gutenberg/blocks.build.js:1 msgid "Store Front Page" msgstr "Pagina della vetrina" #: js/gutenberg/blocks.build.js:1 msgid "Product sidebar content" msgstr "Contenuto della barra laterale di prodotto" #: js/gutenberg/blocks.build.js:1 msgid "Product Page Appearance" msgstr "Aspetto della pagina di prodotto" #: js/gutenberg/blocks.build.js:1 msgid "Product List Appearance" msgstr "Aspetto elenco dei prodotti " #: js/gutenberg/blocks.build.js:1 msgid "Category List Appearance" msgstr "Aspetto elenco delle categorie " #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your product page and manage its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Per migliorare e gestire l'aspetto della pagina di prodotto, abilita l'opzione \"Aspetto avanzato della pagina di prodotto in vetrina\" nella dashboard del negozio (\"<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Impostazioni → Cosa c'è di nuovo</a>\")." #: js/gutenberg/blocks.build.js:1 msgid "Display cart icon" msgstr "Mostra l'icona del carrello" #: js/gutenberg/blocks.build.js:1 msgid "To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Per migliorare e gestire l'aspetto della pagina di prodotto, abilita l'opzione \"Aspetto avanzato della pagina di prodotto in vetrina\" nella dashboard del negozio (\"<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Impostazioni → Cosa c'è di nuovo</a>\")." #: js/gutenberg/blocks.build.js:1 msgid "Add storefront (product listing)" msgstr "Aggiungi vetrina (elenco prodotti)" #: templates/admin/storefront/main.php:21 msgid "Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers." msgstr "I clienti non possono vedere la tua pagina del negozio perché è in bozza. Pubblica la pagina per renderla disponibile ai tuoi clienti." #: templates/admin/storefront/main.php:20 msgid "The store is not visible on your site" msgstr "Il negozio non è visibile sul tuo sito" #: templates/admin/storefront/main.php:4 msgid "Your Storefront" msgstr "La tua vetrina" #: templates/admin/storefront/area-promo.php:30 msgid "Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars." msgstr "Aiuta i clienti a trovare il tuo negozio sul sito. Aggiungi il link del negozio al menu del sito, crea ulteriori pagine del negozio e metti in evidenza i prodotti in altre pagine del sito e nelle barre laterali." #: templates/admin/storefront/area-promo.php:29 msgid "Promote your store" msgstr "Promuovi il tuo negozio" #: templates/admin/storefront/area-promo.php:26 msgid "Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store." msgstr "Rimani in contatto con i tuoi clienti. Aggiorna il contenuto del tuo negozio in qualsiasi momento per informare i clienti sulle promozioni in corso e sulle novità." #: templates/admin/storefront/area-promo.php:25 msgid "Change store content" msgstr "Cambia il contenuto del negozio" #: templates/admin/storefront/area-promo.php:22 msgid "Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand." msgstr "Personalizza l'aspetto del tuo negozio in base alle esigenze commerciali. Dai al negozio l'aspetto che meglio riflette il tuo marchio." #: templates/admin/storefront/area-promo.php:21 msgid "Customize store appearance" msgstr "Personalizza l'aspetto del negozio" #: templates/admin/storefront/area-promo.php:7 msgid "Add your %s store to the website and start selling in minutes." msgstr "Aggiungi il tuo negozio %s al sito web e inizia a vendere in pochi minuti." #: templates/admin/storefront/area-promo.php:3 msgid "What's next?" msgstr "Qual è il prossimo passo?" #: templates/admin/storefront/area-additional.php:224 msgid "Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar." msgstr "Il tuo negozio è aggiunto a diverse pagine del sito. Scegli la pagina principale. I clienti vengono indirizzati alla pagina principale del negozio quando fanno clic sull'icona del carrello, sui link del negozio nel menu del sito e sui prodotti nella barra laterale." #: templates/admin/storefront/area-additional.php:222 msgid "Choose the main store page" msgstr "Scegli la pagina principale del negozio" #: templates/admin/storefront/area-additional.php:200 msgid "Go to Pages" msgstr "Vai a Pages" #: templates/admin/storefront/area-additional.php:193 msgid "You can add the entire storefront, categories, products, or \"Buy now\" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block." msgstr "Puoi aggiungere l'intera vetrina, le categorie, i prodotti o il pulsante \"Acquista ora\" ad altre pagine del sito. Per fare ciò, apri una pagina nell'editor e aggiungi l'apposito blocco %s. " #: templates/admin/storefront/area-additional.php:189 msgid "Add your store to other site pages" msgstr "Aggiungi il tuo negozio ad altre pagine del sito" #: templates/admin/storefront/area-additional.php:166 msgid "Create Product Page" msgstr "Crea pagina di prodotto" #: templates/admin/storefront/area-additional.php:150 msgid "Pick Product" msgstr "Scegli prodotto" #: templates/admin/storefront/area-additional.php:136 #: templates/admin/storefront/area-additional.php:138 msgid "Create a landing page featuring one of your products." msgstr "Crea una landing page con uno dei tuoi prodotti." #: templates/admin/storefront/area-additional.php:132 msgid "Add a product page" msgstr "Aggiungi pagina di prodotto" #: templates/admin/storefront/area-additional.php:109 msgid "Create Category Page" msgstr "Crea pagina di categoria" #: templates/admin/storefront/area-additional.php:93 msgid "Pick Category" msgstr "Scegli categoria" #: templates/admin/storefront/area-additional.php:79 #: templates/admin/storefront/area-additional.php:81 msgid "Feature a specific store category on a separate page of your site." msgstr "Metti in evidenza una specifica categoria del negozio in una pagina diversa del tuo sito." #: templates/admin/storefront/area-additional.php:75 msgid "Add a category page" msgstr "Aggiungi pagina di categoria" #: templates/admin/storefront/area-additional.php:54 msgid "Create Search Page" msgstr "Crea pagina di ricerca" #: templates/admin/storefront/area-additional.php:50 msgid "Show customers that they can use a search and filters to find desired products faster." msgstr "Mostra ai clienti che possono fare una ricerca e utilizzare i filtri per trovare i prodotti desiderati più velocemente." #: templates/admin/storefront/area-additional.php:48 msgid "Add a search and filters page" msgstr "Aggiungi pagina di ricerca e pagina dei filtri" #: templates/admin/storefront/area-additional.php:27 msgid "Create Cart Page" msgstr "Crea pagina del carrello" #: templates/admin/storefront/area-additional.php:23 msgid "Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout." msgstr "I clienti vanno alla pagina del carrello per esaminare i prodotti che hanno aggiunto al carrello e procedere al pagamento." #: templates/admin/storefront/area-additional.php:21 msgid "Add cart and checkout page" msgstr "Aggiungi carrello e pagina di checkout" #: templates/admin/storefront/area-additional.php:4 msgid "Highlight products, categories, and other store pages by adding them to separate website pages." msgstr "Evidenzia i prodotti, le categorie e altre pagine del negozio aggiungendole a pagine specifiche del sito web." #: templates/admin/storefront/area-additional.php:3 msgid "Additional store pages" msgstr "Altre pagine di negozio" #: templates/admin/storefront/draft-message.php:2 msgid "Publish the page to use this option" msgstr "Pubblica la pagina per utilizzare questa opzione" #: templates/admin/storefront/area-design.php:55 msgid "Along with the store catalog, you can add other widgets and texts to the store page." msgstr "Oltre al catalogo del negozio, puoi aggiungere altri widget e testi alla pagina del negozio." #: templates/admin/storefront/area-design.php:54 msgid "Store page content" msgstr "Contenuto della pagina del negozio" #: templates/admin/storefront/area-design.php:25 #: templates/admin/storefront/area-design.php:27 msgid "Adjust your store design to fit your business needs." msgstr "Adatta il design del negozio alle tue esigenze commerciali." #: templates/admin/storefront/area-design.php:21 msgid "Store appearance" msgstr "Aspetto del negozio" #: templates/admin/storefront/area-design.php:4 msgid "Personalize your storefront's appearance and edit the content on the store page to reflect your brand and stay connected with your customers." msgstr "Personalizza l'aspetto della vetrina e modifica il contenuto della pagina del negozio in modo che rifletta al meglio il tuo marchio e per rimanere in contatto con i tuoi clienti." #: templates/admin/storefront/area-design.php:3 msgid "Design and content" msgstr "Design e contenuto" #: templates/admin/storefront/area-status.php:124 msgid "Create Store Page" msgstr "Crea la pagina del negozio" #: templates/admin/storefront/area-status.php:121 msgid "Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display." msgstr "Il tuo negozio non è aggiunto a nessuna pagina del sito. Per permettere ai clienti di visitarlo e di effettuare ordini, crea una pagina dove sia visibile." #: templates/admin/storefront/area-status.php:115 msgid "Set Up Your Store" msgstr "Configura il tuo negozio" #: templates/admin/storefront/area-status.php:109 msgid "To show your storefront instead of the demo store, connect your existing %s account or create a new one." msgstr "Per mostrare la tua vetrina invece di un negozio demo, collega il tuo account %s esistente o creane uno nuovo." #: templates/admin/storefront/area-status.php:101 msgid "Publish Store Page" msgstr "Pubblica la pagina del negozio" #: templates/admin/storefront/area-status.php:98 msgid "Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders." msgstr "La pagina del negozio è attualmente in bozza. Quando è tutto pronto, pubblicala per permettere ai clienti di visitare il negozio e fare ordini." #: templates/admin/storefront/area-status.php:92 msgid "View Store Page" msgstr "Visualizza la pagina del negozio" #: templates/admin/storefront/area-status.php:86 msgid "Your store page is published. Customers can browse your store at " msgstr "La pagina del negozio è pubblicata. I clienti possono visitarlo all'indirizzo " #: templates/admin/storefront/area-status.php:77 msgid "View demo store page" msgstr "Visualizza la pagina del negozio demo" #: templates/admin/storefront/area-status.php:46 msgid "Draft" msgstr "Bozza" #: templates/admin/storefront/area-status.php:45 msgid "Published" msgstr "Pubblicato" #: templates/admin/storefront/area-status.php:33 #: templates/admin/storefront/area-status.php:36 msgid "Status" msgstr "Stato" #: templates/admin/storefront/area-status.php:29 msgid "Add a store page" msgstr "Aggiungi pagina del negozio" #: templates/admin/storefront/area-status.php:24 msgid "Connect your %s store" msgstr "Collega il tuo negozio %s" #: templates/admin/storefront/area-status.php:21 msgid "Your store page" msgstr "La pagina del tuo negozio" #: templates/admin/storefront/area-status.php:10 msgid "To start selling, add a page to your site where the storefront will display." msgstr "Per iniziare a vendere, aggiungi al tuo sito una pagina che mostrerà la vetrina." #: templates/admin/storefront/area-status.php:7 msgid "While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site." msgstr "Se il negozio non è collegato, sul sito viene mostrato un negozio demo. Dai un'occhiata al sito per avere un'idea di come potrebbe apparire il tuo negozio." #: templates/admin/storefront/area-status.php:4 msgid "Store page on your site" msgstr "Pagina del negozio sul tuo sito" #: templates/admin/storefront/area-navigation.php:205 msgid "The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href=\"%s\" target=\"_blank\">adjust the cart icon appearance</a>." msgstr "L'icona del carrello della spesa mostra il numero di articoli presenti nel carrello e permette ai clienti di procedere al pagamento. Inoltre, puoi <a href=\"%s\" target=\"_blank\"> modificare l'aspetto dell'icona del carrello</a>." #: templates/admin/storefront/area-navigation.php:201 msgid "Display the shopping cart icon on site pages" msgstr "Mostra l'icona del carrello sulle pagine del sito" #: templates/admin/storefront/area-navigation.php:179 msgid "Manage Sidebar" msgstr "Gestisci la barra laterale" #: templates/admin/storefront/area-navigation.php:175 msgid "Highlight your best sellers or new products in the website sidebar." msgstr "Evidenzia i best seller o i nuovi prodotti nella barra laterale del sito." #: templates/admin/storefront/area-navigation.php:173 msgid "Feature your products in the sidebar" msgstr "Metti in evidenza i prodotti nella barra laterale" #: templates/admin/storefront/area-navigation.php:151 msgid "Add Store Page to Menu" msgstr "Aggiungi la pagina del negozio al menu" #: templates/admin/storefront/area-navigation.php:147 msgid "Make your store accessible from the site menu so your customers can easily find it." msgstr "Rendi il negozio accessibile dal menu del sito in modo che i tuoi clienti possano trovarlo facilmente." #: templates/admin/storefront/area-navigation.php:141 msgid "Add store page to the site menu" msgstr "Aggiungi la pagina del negozio al menu del sito" #: templates/admin/storefront/area-navigation.php:118 msgid "Edit URL Slug" msgstr "Modifica slug URL " #: templates/admin/storefront/area-navigation.php:102 msgid "Current URL slug: /<span data-ec-store-slug>%s</span>" msgstr "Attuale slug URL: /<span data-ec-store-slug>%s</span>" #: templates/admin/storefront/area-navigation.php:78 msgid "Save" msgstr "Salva" #: templates/admin/storefront/area-navigation.php:69 msgid "URL Slug" msgstr "Slug URL" #: templates/admin/storefront/area-navigation.php:60 #: templates/admin/storefront/area-navigation.php:113 msgid "A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use \"/shop\" or \"/products\"." msgstr "Lo slug è l'ultima parte di un URL. Puoi creare uno slug personalizzato della pagina del negozio. È meglio che sia breve perché i clienti e i motori di ricerca preferiscono gli URL brevi. Per esempio, usa \"/shop\" o \"/prodotti\"." #: templates/admin/storefront/area-navigation.php:56 #: templates/admin/storefront/area-navigation.php:98 msgid "Customize store page address" msgstr "Personalizza l'indirizzo della pagina del negozio" #: templates/admin/storefront/area-navigation.php:29 msgid "Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href=\"%s\" target=\"_blank\">WordPress Settings > Reading</a>" msgstr "Aggiungi la vetrina alla home page del sito web per renderla più visibile. Puoi anche modificare le impostazioni della home page del sito in <a href=\"%s\" target=\"_blank\">Impostazioni WordPress > Lettura</a>." #: templates/admin/storefront/area-navigation.php:21 msgid "Show your store on the home page" msgstr "Mostra il negozio in home page" #: templates/admin/storefront/area-navigation.php:4 msgid "Help customers find your store on the website." msgstr "Aiuta i clienti a trovare il tuo negozio sul sito web." #: templates/admin/storefront/area-navigation.php:3 msgid "Navigation" msgstr "Navigazione" #: templates/admin/welcome-no_oauth.php:12 msgid "Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>." msgstr "Lo store ID è un identificatore univoco del tuo account %1$s. Lo trovi nel pannello di controllo %1$s nella pagina <a %2$s>Dashboard </a>." #: templates/admin/welcome-create.php:11 msgid "Your store has been created. Preparing your store dashboard ..." msgstr "Il tuo negozio è stato creato. La dashboard del negozio è in preparazione ..." #: templates/admin/welcome-connect.php:8 msgid "Create store" msgstr "Crea negozio" #: templates/admin/welcome-connect.php:4 msgid "Connect Your Store" msgstr "Collega il tuo negozio" #: templates/admin/welcome-page.php:61 msgid "Provided by <a %s>%s</a>" msgstr "Realizzato da <a %s>%s</a>" #: templates/admin/welcome-page.php:33 msgid "To add your store to your website, put your %1$s Store ID in the field below. If you don't have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>." msgstr "Per aggiungere il negozio al tuo sito web, inserisci il tuo store ID %1$s nel campo sottostante. Se non hai ancora un account %1$s, creane uno gratis sul sito web <a %2$s>%1$s</a>." #: templates/admin/welcome-page.php:20 msgid "Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website." msgstr "Crea un nuovo negozio o collegane uno esistente, se disponi già di un account %s. Il plugin ti guiderà nella configurazione del negozio e ti aiuterà a pubblicarlo sul tuo sito web." #: templates/admin/welcome-page.php:12 msgid "Add an Online Store to Your Website" msgstr "Aggiungi un negozio online al tuo sito web" #: includes/class-ecwid-store-page.php:566 msgid "This is a demo store. Create your store to see your store products here." msgstr "Questo è un negozio demo. Crea qui il negozio con i tuoi prodotti." #: includes/class-ecwid-admin-storefront-page.php:539 msgid "Publish" msgstr "Pubblica" #: templates/admin/storefront/area-design.php:33 #: templates/admin/storefront/area-design.php:59 #: includes/class-ecwid-admin-storefront-page.php:532 msgid "Edit" msgstr "Modifica" #: includes/class-ecwid-admin-storefront-page.php:525 msgid "Preview" msgstr "Anteprima" #: includes/class-ecwid-admin-storefront-page.php:516 msgid "Switch to draft" msgstr "Passa a bozza" #: includes/class-ecwid-admin-storefront-page.php:506 msgid "Edit page" msgstr "Modifica pagina" #: includes/class-ecwid-admin-storefront-page.php:499 msgid "View store page" msgstr "Visualizza la pagina del negozio" #: includes/class-ecwid-admin-storefront-page.php:286 msgid "Search products" msgstr "Cerca prodotti" #: includes/class-ecwid-admin-storefront-page.php:265 msgid "Category" msgstr "Categoria" #: includes/class-ecwid-admin-storefront-page.php:240 msgid "Page with that name already exists." msgstr "Pagina con questo nome già esistente." #: includes/class-ecwid-admin.php:538 msgid "My Profile" msgstr "Il mio profilo" #: includes/class-ecwid-admin.php:533 msgid "Apps" msgstr "App" #: includes/class-ecwid-admin.php:523 msgid "Shipping & Pickup" msgstr "Spedizione e ritiro" #: includes/class-ecwid-admin.php:518 msgid "Payment" msgstr "Pagamento" #: includes/class-ecwid-admin.php:513 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:88 msgid "Design" msgstr "Design" #: includes/class-ecwid-admin.php:509 msgid "Configuration" msgstr "Configurazione" #: includes/class-ecwid-admin.php:504 msgid "All Sales Channels" msgstr "Tutti i canali di vendita" #: includes/class-ecwid-admin.php:499 msgid "Website" msgstr "Sito web" #: includes/class-ecwid-admin.php:494 msgid "Mobile" msgstr "Mobile" #: includes/class-ecwid-admin.php:485 msgid "Sales channels" msgstr "Canali di vendita" #: includes/class-ecwid-admin.php:480 msgid "Reports" msgstr "Report" #: includes/class-ecwid-admin.php:475 msgid "Marketing" msgstr "Marketing" #: includes/class-ecwid-admin.php:470 msgid "Catalog" msgstr "Catalogo" #: includes/class-ecwid-admin.php:465 msgid "My Sales" msgstr "Le mie vendite" #: includes/class-ecwid-admin.php:455 msgid "Store management" msgstr "Gestione del negozio" #: includes/class-ecwid-admin.php:344 msgid "Instant site" msgstr "Sito immediato" #: includes/class-ecwid-admin.php:153 includes/class-ecwid-admin.php:154 #: includes/class-ecwid-admin.php:309 msgid "Storefront" msgstr "Vetrina" #: ecwid-shopping-cart.php:1111 msgid "Manage storefront" msgstr "Gestisci la vetrina" #: ecwid-shopping-cart.php:1111 msgid "Customize design" msgstr "Personalizza il design" #: ecwid-shopping-cart.php:1103 msgid "Manage store" msgstr "Gestisci il negozio" #: templates/importer/woo-main.tpl.php:97 msgid "Start Import" msgstr "Inizia a importare" #: templates/importer/woo-main.tpl.php:87 msgid "Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target=\"_blank\">\"Billing & Plans\"</a></nobr> page in your Ecwid store control panel." msgstr "Fai attenzione al numero massimo di prodotti e categorie che puoi mostrare nel tuo negozio Ecwid. L'importazione si interromperà automaticamente al raggiungimento del limite massimo di prodotti. Per verificare il limite attuale del negozio o aumentarlo, consulta la pagina <nobr><a %s target=\"_blank\">\"Fatturazione & Piani\"</a></nobr> nel pannello di controllo del negozio Ecwid." #: templates/importer/woo-main.tpl.php:82 msgid "Import creates new products and update the existing products with matching SKUs." msgstr "Con Importa crei nuovi prodotti e aggiorni i prodotti esistenti con gli Cod. Art. corrispondenti." #: templates/importer/woo-main.tpl.php:60 msgid "Copying products and categories." msgstr "Copia di prodotti e categorie" #: templates/importer/woo-main.tpl.php:50 msgid "Import completed. <a href=\"%s\">Run again.</a>" msgstr "Procedura di importazione completata. <a href=\"%s\">Esegui di nuovo.</a>" #: templates/importer/woo-main.tpl.php:34 msgid "Import is in Progress" msgstr "Procedura di importazione in corso" #: templates/importer/woo-main.tpl.php:32 msgid "Import your products from Woocommerce to %s" msgstr "Importa i tuoi prodotti da Woocommerce in %s" #: templates/importer/woo-main.tpl.php:18 msgid "Update your catalog" msgstr "Aggiorna il tuo catalogo" #: templates/importer/woo-main.tpl.php:4 msgid "Import Your Products From Woocommerce to %s" msgstr "Importa i tuoi prodotti da Woocommerce in %s" #: templates/importer/import-no-token.tpl.php:3 msgid "Click the connect button to get rights to update the product catalog" msgstr "Fai clic sul pulsante connect e ottieni i permessi necessari per aggiornare il catalogo dei prodotti" #: templates/importer/woo-complete-alert.tpl.php:52 msgid "Go to Your %s Products" msgstr "Vai ai tuoi prodotti %s" #: templates/importer/woo-complete-alert.tpl.php:43 msgid "Download <a href=\"%s\">import log</a>" msgstr "Scarica <a href=\"%s\">importa log</a>" #: templates/importer/woo-complete-alert.tpl.php:32 msgid "Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>" msgstr "Una parte dei prodotti non è stata copiata in %1$s, perché hai raggiunto il limite massimo di prodotti consentito dal tuo piano tariffario in %1$s. Se desideri importare più prodotti, valuta la possibilità di effettuare <nobr><a %2$s> l'upgrade del tuo piano %1$s.</a></nobr>" #: templates/importer/woo-complete-alert.tpl.php:21 msgid "<b>%s</b> categories" msgstr "Categorie <b>%s</b>" #: templates/importer/woo-complete-alert.tpl.php:18 msgid "Imported <b>%s</b> products" msgstr "Prodotti <b>%s</b> importati" #: templates/importer/woo-complete-alert.tpl.php:15 msgid "Import completed" msgstr "Procedura di importazione completata" #: includes/integrations/elementor/class-ec-elementor-widget-store.php:10 #: includes/widgets/class-ecwid-widget-product-browser.php:12 msgid "Online store" msgstr "Negozio online" #: includes/class-ecwid-store-page.php:476 msgid "%s Store Page" msgstr "Pagina del negozio %s" #: templates/advanced-settings.php:79 msgid "Integration with search on your site" msgstr "Integrazione con la ricerca sul tuo sito" #: templates/sync.php:130 msgid "Deleted products synchronized: %1$s out of %2$s" msgstr "Prodotti cancellati sincronizzati: %1$s su %2$s" #: includes/class-ecwid-custom-admin-page.php:66 msgid "Themes for Ecwid" msgstr "Temi di Ecwid" #: includes/class-ecwid-custom-admin-page.php:33 msgid "Plugins for Ecwid" msgstr "Plugin per Ecwid" #: includes/class-ecwid-popup-deactivate.php:138 msgid "I use this WordPress theme: %s" msgstr "Uso questo tema WordPress: %s" #: includes/class-ecwid-popup-deactivate.php:132 msgid "I couldn’t find a WordPress theme that goes well with %s" msgstr "Non ho trovato un tema WordPress adatto a %s" #: includes/class-ecwid-product-browser.php:357 msgid "On the right" msgstr "Sulla destra" #: includes/class-ecwid-product-browser.php:353 msgid "On the left" msgstr "Sulla sinistra" #: includes/class-ecwid-product-browser.php:349 msgid "Filters panel position" msgstr "Posizione del pannello filtri" #: includes/class-ecwid-product-browser.php:209 msgid "Default product_ID" msgstr "ID prodotto predefinito" #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:73 msgid "Cart icon" msgstr "Icona del carrello" #: templates/shortcode-stub-store.tpl.php:4 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:20 #: js/gutenberg/blocks.build.js:1 msgid "Store Home Page" msgstr "Home page del negozio" #: ecwid-shopping-cart.php:431 msgid "Edit Category" msgstr "Modifica categoria" #: ecwid-shopping-cart.php:430 msgid "Edit Product" msgstr "Modifica prodotto" #: includes/class-ecwid-admin.php:142 includes/class-ecwid-admin.php:143 msgid "Online Store Apps" msgstr "Online Store Apps" #. Plugin Name of the plugin msgid "Ecwid Ecommerce Shopping Cart" msgstr "Carrello della spesa Ecwid Ecommerce" #: includes/class-ecwid-custom-admin-page.php:58 includes/faq_entries.php:76 msgid "Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href=\"%s\">TemplateMonster themes</a>" msgstr "Ecwid è compatibile con qualsiasi tema WordPress. Il tuo negozio Ecwid si adatta perfettamente sia a temi gratuiti del catalogo WordPress.org, che a temi premium di provider terzi, che a temi personalizzati. Se desideri un tema premium, consigliamo <a href=\"%s\">TemplateMonster</a>." #: includes/faq_entries.php:74 msgid "Is there a WordPress theme for Ecwid?" msgstr "Esiste un tema WordPress per Ecwid?" #: templates/admin-footer.php:19 msgid "<a href=\"admin.php?page=" msgstr "<a href=\"admin.php?page=" #: includes/integrations/class-ecwid-integration-gutenberg.php:113 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:25 msgid "You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href=\"%1$s\">Appearance → Customize → %2$s</a>” menu to enable it." msgstr "Puoi attivare un widget aggiuntivo per l'icona della borsa della spesa che apparirà sulle pagine del sito. Apri il menu \"<a href=\"%1$s\">Aspetto → Personalizza → %2$s</a>\" per abilitarlo." #: includes/integrations/class-ecwid-integration-gutenberg.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:18 msgctxt "gutenberg-store-block-stub" msgid "Store" msgstr "Negozio" #: includes/class-ecwid-product-browser.php:472 msgid "Image feed" msgstr "Feed immagini" #: includes/class-ecwid-product-browser.php:467 msgid "Vertical thumbnails" msgstr "Thumbnail verticali" #: includes/class-ecwid-product-browser.php:462 msgid "Horizontal thumbnails" msgstr "Thumbnail orizzontali" #: includes/class-ecwid-product-browser.php:452 msgid "3 columns, image on the right" msgstr "3 colonne, immagine sulla destra" #: includes/class-ecwid-product-browser.php:448 msgid "3 columns, image on the left" msgstr "3 colonne, immagine sulla sinistra" #: includes/class-ecwid-product-browser.php:444 msgid "2 columns, image on the right" msgstr "2 colonne, immagine sulla destra" #: includes/class-ecwid-product-browser.php:440 msgid "2 columns, image on the left" msgstr "2 colonne, immagine sulla sinistra" #: includes/class-ecwid-product-browser.php:429 msgid "Landscape 3:2" msgstr "Panorama 3:2" #: includes/class-ecwid-product-browser.php:424 msgid "Landscape 4:3" msgstr "Panorama 4:3" #: includes/class-ecwid-product-browser.php:419 msgid "Square 1:1" msgstr "Quadrato 1:1" #: includes/class-ecwid-product-browser.php:414 msgid "Portrait 3:4" msgstr "Ritratto 3:4" #: includes/class-ecwid-product-browser.php:409 msgid "Portrait 2:3" msgstr "Ritratto 2:3" #: includes/class-ecwid-product-browser.php:399 msgid "L" msgstr "L" #: includes/class-ecwid-product-browser.php:395 msgid "M" msgstr "M" #: includes/class-ecwid-product-browser.php:391 msgid "S" msgstr "S" #: includes/class-ecwid-product-browser.php:381 msgid "Show on hover" msgstr "Mostra al passaggio del mouse" #: includes/class-ecwid-product-browser.php:377 msgid "Hide" msgstr "Nascondi" #: includes/class-ecwid-product-browser.php:373 msgid "Show" msgstr "Mostra" #: includes/class-ecwid-product-browser.php:342 msgid "Background color" msgstr "Colore di sfondo" #: includes/class-ecwid-product-browser.php:335 msgid "Link color" msgstr "Colore dei link" #: includes/class-ecwid-product-browser.php:328 msgid "Price color" msgstr "Colore del prezzo" #: includes/class-ecwid-product-browser.php:321 msgid "Text color" msgstr "Colore di testo" #: includes/class-ecwid-product-browser.php:314 msgid "Button color" msgstr "Colore del pulsante" #: includes/class-ecwid-product-browser.php:299 msgid "Wholesale prices" msgstr "Prezzi all'ingrosso" #: includes/class-ecwid-product-browser.php:292 msgid "\"In stock\" label" msgstr "Etichetta \"in stock\"" #: includes/class-ecwid-product-browser.php:285 msgid "Available qty in stock" msgstr "Quantità disponibile in stock" #: includes/class-ecwid-product-browser.php:278 msgid "Product quantity" msgstr "Quantità del prodotto" #: includes/class-ecwid-product-browser.php:271 msgctxt "product-browser-attributes" msgid "Product price" msgstr "Prezzo del prodotto" #: includes/class-ecwid-product-browser.php:264 msgctxt "product-browser-attributes" msgid "Product SKU" msgstr "Cod. Art. del prodotto" #: includes/class-ecwid-product-browser.php:257 msgid "Breadcrumbs" msgstr "Navigazione breadcrumb" #: includes/class-ecwid-product-browser.php:241 msgid "Image gallery layout" msgstr "Layout della galleria immagini" #: includes/integrations/class-ecwid-integration-gutenberg.php:391 #: includes/class-ecwid-product-browser.php:224 #: includes/class-ecwid-product-browser.php:233 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:212 msgid "Show description under the image" msgstr "Mostra la descrizione sotto l'immagine" #: includes/class-ecwid-product-browser.php:216 msgid "Product page layout" msgstr "Layout della pagina di prodotto" #: includes/class-ecwid-product-browser.php:194 msgid "Display sort by link" msgstr "Mostra ordinamento per link" #: includes/class-ecwid-product-browser.php:186 #: includes/class-ecwid-product-browser.php:306 msgid "Display sign in link" msgstr "Mostra segno nel link" #: includes/class-ecwid-product-browser.php:178 msgid "Display footer menu" msgstr "Mostra menu nel footer" #: includes/class-ecwid-product-browser.php:170 msgid "Display breadcrumbs" msgstr "Mostra navigazione breadcrumbs" #: includes/class-ecwid-product-browser.php:163 js/gutenberg/blocks.build.js:1 msgid "Display search box" msgstr "Mostra casella di ricerca" #: includes/class-ecwid-product-browser.php:156 msgid "Display categories menu" msgstr "Mostra menu categorie" #: includes/class-ecwid-product-browser.php:148 msgid "Category thumbnail aspect ratio" msgstr "Categoria aspect ratio thumbnail" #: includes/class-ecwid-product-browser.php:140 msgid "Category thumbnail size" msgstr "Categoria dimensione thumbnail" #: includes/class-ecwid-product-browser.php:131 msgid "Image only" msgstr "Solo immagine" #: includes/class-ecwid-product-browser.php:127 msgid "Title only" msgstr "Solo titolo" #: includes/class-ecwid-product-browser.php:123 msgid "Image and title on mouse over" msgstr "Immagine e titolo al passaggio del mouse" #: includes/class-ecwid-product-browser.php:119 msgid "Title on image" msgstr "Titolo sull'immagine" #: includes/class-ecwid-product-browser.php:115 msgid "Title under image" msgstr "Titolo sotto l'immagine" #: includes/class-ecwid-product-browser.php:111 msgid "Category card layout" msgstr "Categoria layout scheda" #: includes/class-ecwid-product-browser.php:103 msgid "Show additional image on hover" msgstr "Mostra altre immagini al passaggio del mouse" #: includes/class-ecwid-product-browser.php:95 msgid "Buy now buttons" msgstr "Pulsanti Acquista ora" #: includes/class-ecwid-product-browser.php:87 msgid "Product SKU" msgstr "Cod. Art. prodotto" #: includes/class-ecwid-product-browser.php:79 msgid "Product price" msgstr "Prezzo del prodotto" #: includes/class-ecwid-product-browser.php:71 msgid "Product title" msgstr "Nome del prodotto" #: includes/class-ecwid-product-browser.php:61 msgid "Justify" msgstr "Giustifica" #: includes/class-ecwid-product-browser.php:56 msgid "Right" msgstr "Destra" #: includes/class-ecwid-product-browser.php:51 msgid "Center" msgstr "Al centro" #: includes/class-ecwid-product-browser.php:46 msgid "Left" msgstr "Sinistra" #: includes/class-ecwid-product-browser.php:42 msgid "Product card text align" msgstr "Allinea testo della scheda prodotto" #: includes/class-ecwid-product-browser.php:34 msgid "Show product card border" msgstr "Mostra bordo della scheda prodotto" #: includes/class-ecwid-product-browser.php:26 msgid "Product thumbnail aspect ratio" msgstr "Aspect ratio thumbnail di prodotto" #: includes/class-ecwid-product-browser.php:18 msgid "Product thumbnail size" msgstr "Dimensione thumbnail di prodotto" #: includes/class-ecwid-product-browser.php:10 msgid "Show product thumbnails" msgstr "Mostra thumbnail di prodotto" #. Author of the plugin msgid "Ecwid Ecommerce" msgstr "Ecommerce Ecwid" #: templates/importer/woo-summary.tpl.php:34 msgid "After import, your %s store will have " msgstr "Dopo l'importazione, il tuo negozio %s avrà " #: templates/importer/woo-summary.tpl.php:21 msgid "Your %s store has " msgstr "Il tuo negozio %s ha " #: templates/importer/woo-summary.tpl.php:10 msgid "Your WooCommerce store has " msgstr "Il tuo negozio WooCommerce ha " #: includes/integrations/class-ecwid-integration-elementor.php:64 #: includes/integrations/class-ecwid-integration-divibuilder.php:25 #: includes/integrations/class-ecwid-integration-gutenberg.php:94 msgid "%s Store" msgstr "Negozio %s" #: includes/importer/class-ecwid-import-page.php:184 msgid "%s products" msgstr "prodotti %s" #: includes/importer/class-ecwid-import-page.php:178 msgid "%s products and %s categories" msgstr "prodotti %s e categorie %s" #: includes/class-ecwid-stub-renderer.php:27 #: includes/class-ecwid-admin-storefront-page.php:272 msgid "Product" msgstr "Prodotto" #: includes/class-ecwid-message-manager.php:278 #: includes/class-ecwid-message-manager.php:297 #: includes/class-ecwid-message-manager.php:318 msgid "Warning: some of your online store features are disabled. Please contact your hosting provider to resolve." msgstr "Attenzione: alcune delle funzioni del tuo negozio online sono disabilitate. Ti invitiamo a contattare il tuo hosting provider per risolvere il problema." #: templates/admin/legacy-connect.tpl.php:39 msgid "Create new account" msgstr "Crea nuovo account" #: templates/admin/legacy-connect.tpl.php:33 msgid "Register at %s" msgstr "Registrati su %s" #: includes/class-ecwid-floating-minicart.php:155 msgid "Bottom left" msgstr "In basso a sinistra" #: includes/class-ecwid-floating-minicart.php:154 msgid "Top left" msgstr "In alto a sinistra" #: includes/class-ecwid-floating-minicart.php:113 msgid "Show on all pages" msgstr "Mostra in tutte le pagine" #: includes/class-ecwid-floating-minicart.php:112 msgid "Show on store pages" msgstr "Mostra nelle pagine del negozio" #: includes/class-ecwid-floating-minicart.php:111 msgid "Do not show" msgstr "Non mostrare" #: includes/class-ecwid-customizer.php:134 msgid "Vertical indent" msgstr "Rientro verticale" #: includes/class-ecwid-customizer.php:123 msgid "Horizontal indent" msgstr "Rientro orizzontale" #: includes/class-ecwid-customizer.php:97 msgid "Icon" msgstr "Icona" #: includes/class-ecwid-customizer.php:85 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:79 msgid "Border" msgstr "Bordo" #: includes/class-ecwid-customizer.php:72 #: includes/gutenberg/class-ecwid-gutenberg-block-minicart.php:67 msgid "Layout" msgstr "Layout" #: includes/class-ecwid-customizer.php:61 msgid "Show when empty" msgstr "Mostra quando è vuoto" #: includes/class-ecwid-customizer.php:49 msgid "Note: when enabled, the cart widget is always displayed in preview to make it easier to customize it. The \"Show on store pages\" and \"Show when empty\" options will apply to the cart widget on site when published" msgstr "Nota: quando è abilitato, il widget del carrello viene sempre mostrato in anteprima per facilitarne la personalizzazione. Le opzioni \"Mostra nelle pagine del negozio\" e \"Mostra quando è vuoto\" si applicano al widget del carrello sul sito al momento della pubblicazione" #: includes/class-ecwid-customizer.php:47 msgid "Display shopping cart" msgstr "Mostra il carrello della spesa" #: includes/class-ecwid-customizer.php:35 msgid "Shopping Cart Widget" msgstr "Widget del carrello della spesa" #. Author URI of the plugin msgid "https://ecwid.to/ecwid-site" msgstr "https://ecwid.to/ecwid-site" #: templates/product-popup.php:247 msgid "selected product" msgstr "prodotto selezionato" #: templates/product-popup.php:138 templates/product-popup.php:143 msgid "Selected Product" msgstr "Prodotto selezionato" #: templates/product-popup.php:124 msgid " Choose another product" msgstr " Scegli un altro prodotto" #: templates/importer/landing.tpl.php:20 msgid "Import your WooCommerce catalog to %s" msgstr "Importa il tuo catalogo WooCommerce in %s" #: includes/widgets/nsf-minicart-editor.tpl.php:35 msgid "Border:" msgstr "Bordo:" #: includes/widgets/nsf-minicart-editor.tpl.php:19 msgid "Cart icon:" msgstr "Icona del carrello:" #: includes/widgets/nsf-minicart-editor.tpl.php:3 msgid "Layout:" msgstr "Layout:" #: includes/class-ecwid-floating-minicart.php:145 msgid "No border" msgstr "Nessun bordo" #: includes/class-ecwid-floating-minicart.php:144 msgid "Pill" msgstr "Pillola" #: includes/class-ecwid-floating-minicart.php:143 msgid "Rectangle" msgstr "Rettangolo" #: includes/class-ecwid-floating-minicart.php:136 msgid "Basket" msgstr "Cestino" #: includes/class-ecwid-floating-minicart.php:134 msgid "Bag" msgstr "Borsa" #: includes/class-ecwid-floating-minicart.php:127 msgid "Icon, label, item count, subtotal and link" msgstr "Icona, etichetta, conteggio articoli, subtotale e link" #: includes/class-ecwid-floating-minicart.php:126 msgid "Icon, label, item count and subtotal" msgstr "Icona, etichetta, conteggio articoli e subtotale" #: includes/class-ecwid-floating-minicart.php:125 msgid "Icon, label and item count" msgstr "Icona, etichetta e conteggio articoli" #: includes/class-ecwid-floating-minicart.php:124 msgid "Icon and item count" msgstr "Icona e conteggio articoli" #: includes/class-ecwid-floating-minicart.php:123 msgid "Label and item count" msgstr "Etichetta e conteggio articoli" #: includes/class-ecwid-floating-minicart.php:122 msgid "Item count only" msgstr "Solo conteggio articoli" #: includes/class-ecwid-floating-minicart.php:121 msgid "Small icon and item count" msgstr "Icona piccola e conteggio articoli" #: includes/class-ecwid-floating-minicart.php:120 msgid "Small icon" msgstr "Icona piccola" #: includes/widgets/class-ecwid-widget-minicart.php:9 msgid "Shopping Cart (deprecated)" msgstr "Carrello della spesa (disattivato)" #: includes/widgets/class-ecwid-widget-minicart-miniview.php:9 msgid "Shopping Cart Mini (deprecated)" msgstr "Mini carrello della spesa (disattivato)" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:21 msgid "Shopping Cart Floating (deprecated)" msgstr "Carrello della spesa sospeso (disattivato)" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:69 msgid "Displays storefront: product listing and checkout" msgstr "Mostra la vetrina: elenco prodotti e checkout" #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:67 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:70 msgctxt "vc-tab" msgid "Online store" msgstr "Negozio online" #: includes/integrations/class-ecwid-integration-gutenberg.php:105 #: includes/gutenberg/class-ecwid-gutenberg.php:131 msgid "Your product" msgstr "Il tuo prodotto" #: templates/shortcode-stub-store.tpl.php:18 #: includes/integrations/class-ecwid-integration-gutenberg.php:103 #: includes/widgets/class-ecwid-widget-product-browser.php:11 #: includes/gutenberg/class-ecwid-gutenberg.php:129 msgid "Your store will be shown here" msgstr "Il tuo negozio sarà mostrato qui" #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:31 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:101 #: includes/integrations/class-ecwid-integration-gutenberg.php:101 #: includes/gutenberg/class-ecwid-gutenberg.php:127 #: js/gutenberg/blocks.build.js:1 msgid "Choose product" msgstr "Scegli il prodotto" #: includes/integrations/class-ecwid-integration-gutenberg.php:97 #: includes/gutenberg/class-ecwid-gutenberg.php:123 msgid "%s product" msgstr "prodotto %s" #: templates/wp-toolbox.tpl.php:4 msgid "Take advantage of powerful apps and extensions designed to enhance your store." msgstr "Approfitta di app ed estensioni efficienti progettate per migliorare il tuo negozio." #: templates/wp-toolbox.tpl.php:3 msgid "Extensions for your Store" msgstr "Estensioni per il tuo negozio" #: templates/importer/woo-summary.tpl.php:6 msgid "Import summary" msgstr "Importa riepilogo" #: templates/importer/woo-main.tpl.php:19 msgid "This import will copy your WooCommerce products and categories to your %s store." msgstr "Questa importazione copierà i prodotti e le categorie WooCommerce nel tuo negozio %s." #: templates/importer/woo-main.tpl.php:62 msgid "Importing %s of %s items" msgstr "%s articoli su %s in fase di importazione" #: templates/importer/woo-complete-alert.tpl.php:27 msgid "Some of the items could not be imported." msgstr "Non è stato possibile importare alcuni articoli." #: templates/importer/landing.tpl.php:33 msgid "Learn more" msgstr "Per saperne di più" #: templates/importer/landing.tpl.php:33 msgid "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" msgstr "https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products" #: templates/importer/landing.tpl.php:31 msgid "Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center" msgstr "Ecwid ti permette di caricare i tuoi prodotti sotto forma di file CSV. Per saperne di più su questo strumento visita l'Help Center Ecwid" #: templates/importer/landing.tpl.php:29 msgid "Import product catalog from other sources" msgstr "Importa catalogo prodotti da altre fonti" #: templates/importer/landing.tpl.php:23 msgid "(You will be able to confirm the changes before the actual import)" msgstr "(Potrai confermare le modifiche prima dell'importazione effettiva)" #: templates/importer/landing.tpl.php:12 msgid "We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?" msgstr "Abbiamo notato che utilizzi WooCommerce. Il tuo negozio WooCommerce ha %1$s prodotti e %2$s categorie. Vuoi importarlo in %3$s?" #: templates/importer/landing.tpl.php:9 msgid "Import product catalog from WooCommerce" msgstr "Importa catalogo prodotti da WooCommerce" #: templates/importer/landing.tpl.php:4 msgid "Here, we will help you uploading your product catalog to %s from another shopping cart or other sources." msgstr "Qui ti aiuteremo a caricare il tuo catalogo prodotti in %s da un altro carrello della spesa o da altre fonti." #: templates/importer/landing.tpl.php:1 msgid "Import products to your %s store" msgstr "Importa prodotti nel tuo negozio %s" #: templates/dashboard-blog-posts.tpl.php:20 msgid "Knowledge Base" msgstr "Knowledge Base" #: templates/dashboard-blog-posts.tpl.php:19 msgid "https://support.ecwid.com/hc/en-us" msgstr "https://support.ecwid.com/hc/en-us" #: templates/dashboard-blog-posts.tpl.php:14 msgid "https://www.ecwid.com/blog" msgstr "https://www.ecwid.com/blog" #: includes/importer/class-ecwid-import.php:39 msgid "Bulk import products and categories to your %s store" msgstr "Importa in blocco prodotti e categorie nel tuo negozio %s" #: includes/importer/class-ecwid-import.php:38 msgid "%s products and categories" msgstr "prodotti e categorie %s" #: templates/importer/woo-main.tpl.php:36 #: includes/importer/class-ecwid-import-page.php:52 #: includes/importer/class-ecwid-import-page.php:53 msgid "Import your products from WooCommerce to %s" msgstr "Importa i tuoi prodotti da WooCommerce in %s" #: includes/importer/class-ecwid-import-page.php:42 #: includes/importer/class-ecwid-import-page.php:43 msgid "Import" msgstr "Importa" #: templates/dashboard-blog-posts.tpl.php:15 #: includes/class-ecwid-wp-dashboard-feed.php:48 msgid "%s Blog" msgstr "Blog %s" #: includes/class-ecwid-message-manager.php:345 msgid "No Thanks" msgstr "No, grazie" #: includes/class-ecwid-message-manager.php:343 msgid "Import my products from WooCommerce" msgstr "Importa i miei prodotti da WooCommerce" #: includes/class-ecwid-message-manager.php:341 msgid "We noticed you have WooCommerce installed. If you want to easily copy your WooCommerce products to %s, this tool will help you." msgstr "Abbiamo notato che utilizzi WooCommerce. Se vuoi copiare facilmente i tuoi prodotti WooCommerce in %s, questo strumento ti aiuterà." #: includes/class-ecwid-message-manager.php:340 msgid "Need help importing your products from WooCommerce to %s?" msgstr "Hai bisogno di aiuto per importare i tuoi prodotti da WooCommerce in %s?" #: includes/class-ecwid-admin.php:213 includes/class-ecwid-admin.php:214 msgid "Customers" msgstr "Clienti" #: templates/help.php:28 msgid "or <a %s>Browse the Help Center" msgstr "o <a %s>Visita l'Help Center" #: templates/admin/welcome-connection-message.php:5 msgid "To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission." msgstr "Per mostrare il tuo negozio su questo sito, devi autorizzare WordPress ad accedere ai tuoi prodotti %1$s. Premi connect per dare il consenso." #: includes/faq_entries.php:40 msgid "Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target=\"_blank\" href=\"%s\">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans." msgstr "I 4 tipi di account disponibili variano in base al numero di prodotti, ai tipi di funzionalità e al livello di assistenza previsti. Per ulteriori informazioni, consulta la <a target=\"_blank\" href=\"%s\">pagina dei prezzi.</a><br /><br /> Suggerimento pro: puoi decidere di risparmiare iscrivendoti ad un piano annuale." #: includes/class-ecwid-popup-deactivate.php:59 msgid "[%s] WordPress plugin deactivation feedback (store ID: %s)" msgstr "[%s] Feedback di disattivazione del plugin WordPress (store ID: %s)" #: includes/class-ecwid-message-manager.php:289 msgid "Your storefront (product listing and checkout) is working fine, but the advanced store functions like SEO and sidebar widgets are disabled. To enable them and make sure your store works properly, please press the button below to connect your %s account. This will take less than a minute — you will only be asked to log in to your account and allow this site to get your store data." msgstr "La tua vetrina (elenco prodotti e checkout) è perfettamente funzionante, ma le opzioni avanzate consentite come il SEO e i widget della barra laterale sono disabilitate. Per attivarle e assicurarti che il negozio funzioni correttamente, premi il pulsante qui sotto per collegare il tuo account %s. L'operazione richiederà meno di un minuto; ti verrà chiesto solo di accedere al tuo account per permettere al sito di ottenere i dati del tuo negozio." #: includes/class-ecwid-message-manager.php:288 msgid "Action required: please connect your %s account" msgstr "Azione richiesta: collega il tuo account %s" #: templates/popup/deactivate.php:24 msgid "Contact Support" msgstr "Contatta l'assistenza" #: templates/popup/deactivate.php:1 msgid "If you have a moment, please let us know why you are deactivating:" msgstr "Se hai un momento, comunicaci perché stai procedendo con la disattivazione:" #: templates/admin/welcome-create.php:4 msgid "Create Store" msgstr "Crea negozio" #: templates/advanced-settings.php:1 msgid "%s — Advanced settings" msgstr "%s - Impostazioni avanzate" #: includes/widgets/class-ecwid-widget-random-products.php:10 msgid "Displays a list of random products." msgstr "Mostra un elenco di prodotti a caso." #: includes/widgets/class-ecwid-widget-random-products.php:9 msgid "Random Products" msgstr "Prodotti a caso" #: includes/widgets/class-ecwid-widget-random-product.php:9 #: includes/widgets/class-ecwid-widget-random-product.php:64 msgid "Random Product" msgstr "Prodotto a caso" #: includes/widgets/class-ecwid-widget-random-product.php:8 msgid "Displays a random product from your store to attract customer attention." msgstr "Mostra un prodotto a caso dal tuo negozio per attirare l'attenzione dei clienti" #: includes/widgets/class-ecwid-widget-latest-products.php:10 msgid "Displays the latest added products from your store. Show new products to returning customers to drive repeat sales." msgstr "Mostra gli ultimi prodotti aggiunti nel tuo negozio. Mostra i nuovi prodotti ai clienti di ritorno per promuovere vendite ricorrenti." #: includes/widgets/class-ecwid-widget-latest-products.php:9 msgid "Latest Products" msgstr "Ultimi prodotti" #: includes/class-ecwid-popup-deactivate.php:164 msgid "Can you share your feedback? What was wrong?" msgstr "Vuoi lasciarci il tuo feedback? Che cosa non ha funzionato?" #: includes/class-ecwid-popup-deactivate.php:161 msgid "Other" msgstr "Altro" #: includes/class-ecwid-popup-deactivate.php:155 msgid "It's a temporary deactivation. Please do not ask me again." msgstr "È una disattivazione temporanea. Per favore, non chiedermelo più." #: includes/class-ecwid-popup-deactivate.php:152 msgid "Can you share the name of the plugin you chose?" msgstr "Puoi comunicarci il nome del plugin che hai scelto?" #: includes/class-ecwid-popup-deactivate.php:149 msgid "I found a better plugin" msgstr "Ho trovato un plugin migliore" #: includes/class-ecwid-popup-deactivate.php:146 msgid "What feature do you need?" msgstr "Di quali funzionalità hai bisogno?" #: includes/class-ecwid-popup-deactivate.php:143 msgid "The plugin doesn't support the feature I want" msgstr "Il plugin non supporta la funzionalità che cerco" #: includes/class-ecwid-popup-deactivate.php:128 msgid "What was wrong?" msgstr "Che cosa non ha funzionato?" #: includes/class-ecwid-popup-deactivate.php:125 msgid "I have a problem using this plugin" msgstr "Ho un problema con questo plugin" #: includes/class-ecwid-popup-deactivate.php:112 msgid "Before You Go" msgstr "Prima di andare" #: templates/admin/storefront/area-navigation.php:79 #: includes/class-ecwid-popup-deactivate.php:105 msgid "Cancel" msgstr "Annulla" #: includes/class-ecwid-popup-deactivate.php:101 msgid "Submit & Deactivate" msgstr "Invia & Disattiva" #: includes/class-ecwid-message-manager.php:244 #: includes/class-ecwid-store-page.php:568 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:51 #: ecwid-shopping-cart.php:1082 js/gutenberg/blocks.build.js:1 msgid "Set up your store" msgstr "Configura il tuo negozio" #: templates/admin-head.php:8 includes/class-ecwid-admin.php:48 #: includes/integrations/class-ecwid-integration-gutenberg.php:45 #: includes/gutenberg/class-ecwid-gutenberg.php:69 msgid "%s" msgstr "%s" #: templates/product-popup.php:199 js/gutenberg/blocks.build.js:1 msgid "«Buy now» button" msgstr "Pulsante «Acquista ora»" #: templates/admin/simple-dashboard.php:10 msgid "%s Shopping Cart" msgstr "Carrello della spesa %s" #: templates/advanced-settings.php:42 msgid "Please subscribe to a paid plan to get this feature." msgstr "Iscriviti a un piano a pagamento per ottenere questa funzionalità." #: templates/admin-footer.php:9 msgid "Get %s mobile app" msgstr "Scarica l'app %s per mobile" #: includes/class-ecwid-message-manager.php:272 msgid "Rate %s at WordPress.org" msgstr "Valuta %s su WordPress.org" #: includes/class-ecwid-message-manager.php:268 msgid "Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site." msgstr "Sei soddisfatto del tuo negozio online %s? Ti saremmo grati se potessi lasciare una recensione e votare il plugin sul sito di WordPress." #: includes/class-ecwid-message-manager.php:260 msgid "To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings." msgstr "Per aggiungere funzionalità extra al tuo negozio, trascina e rilascia gli elementi sul sito. Una volta terminato, puoi modificare le impostazioni." #: templates/sync.php:114 msgid "Provide access." msgstr "Fornisci accesso" #: templates/sync.php:113 msgid "To enable this feature, the plugin needs a permission to read your store product information." msgstr "Per abilitare questa funzionalità, è necessario dare al plugin l'autorizzazione per leggere le informazioni dei prodotti del tuo negozio." #: templates/product-popup.php:137 templates/product-popup.php:147 msgid "Choose Product" msgstr "Scegli prodotto" #: templates/product-popup.php:96 msgid "Try another search." msgstr "Fai un'altra ricerca" #: templates/sync.php:152 msgid "Not synchronized yet" msgstr "Non ancora sincronizzato" #: templates/sync.php:149 msgid "Last update" msgstr "Ultimo aggiornamento" #: templates/sync.php:145 msgid "Products are successfully synchronized. The product pages are up to date." msgstr "Prodotti sincronizzati con successo. Le pagine dei prodotti sono aggiornate." #: templates/sync.php:138 msgid "Products synchronized: %1$s out of %2$s" msgstr "Prodotti sincronizzati: %1$s su %2$s" #: templates/sync.php:126 msgid "We're synchronizing your products. This may take a few minutes. Please do not reload the page." msgstr "Stiamo sincronizzando i tuoi prodotti. L'operazione potrebbe richiedere qualche minuto. Non ricaricare la pagina." #: templates/sync.php:119 msgid "Synchronize products" msgstr "Prodotti sincronizzati" #: templates/advanced-settings.php:83 msgid "%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site." msgstr "%s archivia i dati dei tuoi prodotti in un cloud storage sicuro. Le pagine dei prodotti vengono mostrate all'istante quando un cliente visita il tuo negozio. Quindi, in pratica, dato che i prodotti non sono archiviati sul sito, quando si effettua una ricerca nel sito, questa avviene tra le pagine del sito e i post, mentre le pagine dei prodotti non compaiono tra i risultati. Questa opzione abilita una modalità di memorizzazione locale: i prodotti sono memorizzati sia nel cloud che sul tuo sito. Tra i risultati delle ricerche effettuate nel sito vengono mostrate anche le pagine dei prodotti, oltre alle consuete pagine/post del sito." #: templates/product-popup.php:243 msgid "Insert" msgstr "Inserisci" #: templates/product-popup.php:242 msgid "select product" msgstr "seleziona prodotto" #: templates/product-popup.php:241 templates/product-popup.php:246 msgid "customize appearance" msgstr "personalizza aspetto" #: templates/product-popup.php:224 msgid "Show price inside the \"Buy now\" button" msgstr "Mostra prezzo all'interno del pulsante \"Acquista ora\"" #: templates/product-popup.php:229 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:62 #: js/gutenberg/blocks.build.js:1 msgid "Center align on a page" msgstr "Allinea al centro della pagina" #: templates/product-popup.php:219 js/gutenberg/blocks.build.js:1 msgid "Add border" msgstr "Aggiungi bordo" #: templates/product-popup.php:188 js/gutenberg/blocks.build.js:1 msgid "Quantity" msgstr "Quantità" #: templates/product-popup.php:178 js/gutenberg/blocks.build.js:1 msgid "Options" msgstr "Opzioni" #: templates/product-popup.php:173 js/gutenberg/blocks.build.js:1 msgid "Picture" msgstr "Immagine" #: templates/product-popup.php:163 msgid "Choose product properties to display in widget" msgstr "Scegli le caratteristiche del prodotto da mostrare nel widget" #: templates/product-popup.php:139 templates/product-popup.php:151 msgid "Customize widget" msgstr "Personalizza widget" #: templates/product-popup.php:97 msgid "Browse all products." msgstr "Sfoglia tutti i prodotti." #: templates/product-popup.php:94 msgid "Nothing found for <span class=\"empty-page__term\">\"{{ data.term }}\"</span>" msgstr "Nessun risultato per <span class=\"empty-page__term\">\"{{ data.term }}\"</span>" #: templates/product-popup.php:80 msgid "Next page" msgstr "Pagina seguente" #: templates/product-popup.php:69 msgid "Current Page" msgstr "Pagina corrente" #: templates/product-popup.php:49 msgid "Title or SKU" msgstr "Titolo o Cod. Art." #: templates/product-popup.php:47 templates/product-popup.php:53 #: templates/product-popup.php:56 msgid "Search" msgstr "Cerca" #: templates/product-popup.php:29 msgid "SKU" msgstr "Cod. Art." #: templates/product-popup.php:23 msgid "Name" msgstr "Nome" #: includes/class-ecwid-product-popup.php:150 msgid "Last Page" msgstr "Ultima pagina" #: includes/class-ecwid-product-popup.php:149 msgid "Next Page" msgstr "Pagina seguente" #: includes/class-ecwid-product-popup.php:148 msgid "Previous Page" msgstr "Pagina precedente" #: includes/class-ecwid-product-popup.php:147 msgid "First Page" msgstr "Prima pagina" #: includes/class-ecwid-product-popup.php:107 msgid "Add Product" msgstr "Aggiungi prodotto" #: includes/class-ecwid-oauth.php:366 msgid "To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the \"Add product\" dialog." msgstr "Per poter scegliere un prodotto da inserire nei post e nelle pagine, devi ricollegare il sito al tuo negozio %s. Questa operazione ti chiederà solo di accettare la richiesta di autorizzazione, in modo che il plugin possa elencare i prodotti nella finestra di dialogo \"Aggiungi prodotto\"." #: templates/advanced-settings.php:54 msgid "To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>" msgstr "Per accertarti che i tuoi clienti possano effettivamente accedere al sito e al negozio, abilita la registrazione nelle impostazioni del sito <a %s></a>." #: templates/advanced-settings.php:48 msgid "To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>" msgstr "Per consentire a %s di far accedere automaticamente i clienti al negozio, richiediamo l'autorizzazione per l'utilizzo dei dati dei clienti che accedono. <a %s>Utilizza questo link per procedere</a>}" #: templates/advanced-settings.php:39 msgid "Upgrade to get this feature" msgstr "Passa a un piano superiore per ottenere questa funzionalità" #: templates/advanced-settings.php:32 msgid "Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again." msgstr "Single Sign-On permette ai tuoi clienti di avere un unico login per WordPress e %s. Quando accederanno al tuo sito, saranno automaticamente connessi al loro account cliente anche nel negozio, senza bisogno di inserire nuovamente e-mail/password." #: templates/advanced-settings.php:27 msgid "Customer Single Sign-On" msgstr "Single sign-on per i clienti" #: includes/integrations/class-ecwid-integration-divibuilder.php:63 msgid "Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space." msgstr "Inserisci le classi CSS opzionali da utilizzare per questo modulo. Una classe CSS può essere usata per creare uno stile CSS personalizzato. Puoi aggiungere più classi, separate da uno spazio." #: includes/integrations/class-ecwid-integration-divibuilder.php:60 msgid "CSS Class" msgstr "Classe CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:57 msgid "Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page." msgstr "Inserisci un ID CSS opzionale da utilizzare per questo modulo. Un ID può essere usato per creare uno stile CSS personalizzato o per creare link a particolari sezioni della pagina." #: includes/integrations/class-ecwid-integration-divibuilder.php:54 msgid "CSS ID" msgstr "ID CSS" #: includes/integrations/class-ecwid-integration-divibuilder.php:51 msgid "This will change the label of the module in the builder for easy identification." msgstr "In questo modo l'etichetta del modulo nel generatore verrà cambiata per permettere una facile identificazione." #: includes/integrations/class-ecwid-integration-divibuilder.php:49 msgid "Admin Label" msgstr "Etichetta Admin" #: includes/integrations/class-ecwid-integration-divibuilder.php:44 msgid "Here you can create the content that will be used within the module." msgstr "Qui puoi creare il contenuto che verrà utilizzato all'interno del modulo." #: includes/integrations/class-ecwid-integration-divibuilder.php:41 msgid "Content" msgstr "Contenuto" #: templates/admin-footer.php:29 msgid "<a %s>Reconnect</a>" msgstr "<a %s>Riconnetti</a>" #: templates/help.php:15 msgid "https://support.ecwid.com/hc/en-us/search" msgstr "https://support.ecwid.com/hc/en-us/search" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:73 msgid "Browse by Category" msgstr "Sfoglia per categoria" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:15 msgid "Store Root Categories" msgstr "Categorie di root del negozio" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:14 msgid "Adds root categories list to the sidebar to let your customers navigate the store." msgstr "Aggiungi categorie di root alla barra laterale per consentire ai clienti di navigare nel negozio." #: templates/admin/welcome-connection-message.php:25 msgid "To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission." msgstr "Per vendere utilizzando %1$s, è necessario consentire a WordPress di accedere al plugin %1$s. Il pulsante connect ti indirizzerà al tuo account %1$s dove potrai dare l'autorizzazione." #: templates/admin-timeout.php:11 msgid "Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">our customer support team</a>." msgstr "Il nostro team è già al lavoro sul problema. Ti invitiamo ad aggiornare la pagina entro pochi minuti. Se il problema persiste, contatta <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\"> il nostro team di assistenza clienti</a>." #: templates/admin-timeout.php:9 msgid "Sorry we're having technical difficulties." msgstr "Ci scusiamo per le difficoltà tecniche." #: includes/class-ecwid-floating-minicart.php:153 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:143 msgid "Top right" msgstr "In alto a destra" #: includes/class-ecwid-floating-minicart.php:152 #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:138 msgid "Bottom right" msgstr "In basso a destra" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:135 #: includes/class-ecwid-customizer.php:110 msgid "Position" msgstr "Posizione" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:20 msgid "Adds a shopping cart widget to the top right corner of your site." msgstr "Aggiunge widget del carrello della spesa nell'angolo in alto a destra del sito." #: templates/help.php:215 msgid "You can send a new request here." msgstr "Puoi inviare una nuova richiesta qui." #: templates/help.php:214 msgid " Thank you very much for contacting us! We will get back to you shortly." msgstr " Grazie mille per averci contattato! Ti risponderemo a breve." #: templates/help.php:213 msgid "Your email has been sent" msgstr "La tua email è stata inviata" #: templates/help.php:207 msgid "Send message failed" msgstr "Impossibile inviare il messaggio" #: templates/help.php:196 msgid "Send Message" msgstr "Invia messaggio" #: templates/help.php:193 msgid "Type in your message here" msgstr "Scrivi qui il tuo messaggio" #: templates/help.php:192 msgid "Subject" msgstr "Oggetto" #: templates/help.php:186 msgid "Send a message to our support team" msgstr "Invia un messaggio al nostro team di assistenza" #: templates/help.php:177 msgid "Still have questions about Ecwid? Let us know!" msgstr "Hai ancora domande su Ecwid? Contattaci!" #: templates/help.php:176 msgid "Contact us" msgstr "Contattaci" #: templates/help.php:33 msgid "Frequently Asked Questions" msgstr "Domande frequenti" #: templates/help.php:21 msgid "Search the Knowledge Base" msgstr "Cerca nella Knowledge Base" #: templates/help.php:17 msgid "E.g. How to set up shipping" msgstr "Esempio: come impostare la spedizione" #: templates/help.php:11 msgid "How can we help you?" msgstr "Come possiamo aiutarti?" #: includes/faq_entries.php:68 msgid "You can display your store on the site main page. Adjust the \"Reading\" settings of your site as described in our <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">Help Center.</a>" msgstr "Puoi mostrare il tuo negozio sulla pagina principale del sito. Modifica le impostazioni \"Lettura\" del sito come descritto nell'<a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">Help Center.</a>" #: includes/faq_entries.php:67 msgid "Is it possible to display my store on the site home page?" msgstr "Posso mostrare il mio negozio nella home page del sito?" #: includes/faq_entries.php:61 msgid "To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">How to use it.</a>" msgstr "Per inserire un singolo prodotto in una pagina specifica o in un post del blog del sito, usa lo shortcode <b>[ecwid_product]</b>. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\"> Come usarlo.</a>" #: includes/faq_entries.php:60 msgid "How to add a single product with the add to bag button to the site pages?" msgstr "Come aggiungere alle pagine del sito un singolo prodotto con il pulsante \"aggiungi alla borsa\"?" #: includes/faq_entries.php:55 msgid "To create sitemap for your Wordpress site we suggest using <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> or <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">paid Ecwid users</a>." msgstr "Per creare la mappa del tuo sito Wordpress ti consigliamo di usare <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> o <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>.  plugins. Questi plugin sono perfettamente compatibili con Ecwid e permettono di generare una sitemap contenente link a categorie e pagine di prodotto; in questo modo, le pagine del negozio sono indicizzate più velocemente. Tieni presente che questa opzione è disponibile per <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">utenti Ecwid a pagamento</a>." #: includes/faq_entries.php:54 msgid "How do I put my products in the sitemap?" msgstr "Come posso inserire i miei prodotti nella sitemap?" #: includes/faq_entries.php:48 msgid "You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open \"Appearance > Menus\" in your WordPress control panel and add the \"Store with Categories Menu\" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site." msgstr "Puoi aggiungere il menu categorie del negozio al menu del sito per aiutare i clienti nella navigazione. Basta aprire \"Aspetto > Menu\" nel pannello di controllo WordPress e aggiungere la voce \"Negozio con menu categorie\" al menu del tuo sito. Un menu a tendina contenente le categorie del negozio apparirà automaticamente sul sito." #: includes/faq_entries.php:47 msgid "How do I add store categories to the site menu?" msgstr "Come posso aggiungere le categorie del negozio al menu del sito?" #: includes/faq_entries.php:38 msgid "How much does Ecwid cost?" msgstr "Quanto costa Ecwid?" #: includes/faq_entries.php:30 msgid "You can add product search box, cart widget and more on the <a href=\"%s\">\"Appearance / Widgets page\"</a> here in your site admin. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">More details.</a>" msgstr "Puoi aggiungere la casella di ricerca dei prodotti, il widget del carrello e altro ancora nella pagina<a href=\"%s\">\"Aspetto / Widget\"</a> del tuo sito admin. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\"> Maggiori dettagli.</a>" #: includes/faq_entries.php:28 msgid "How can I add a cart widget to my site sidebar?" msgstr "Come posso aggiungere il widget del carrello alla barra laterale del sito?" #: includes/faq_entries.php:21 msgid "You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">More details.</a>" msgstr "Puoi aggiungere il tuo negozio online alla tua pagina Facebook. Non sono necessarie estensioni. Ecwid sincronizzerà automaticamente prodotti, clienti, ordini e inventario tra le vetrine di WordPress e Facebook. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\"> Maggiori dettagli.</a>" #: includes/faq_entries.php:20 msgid "How to set up a storefront on Facebook with Ecwid?" msgstr "Come creare una vetrina su Facebook con Ecwid?" #: includes/faq_entries.php:13 msgid "Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">More details.</a>" msgstr "Ecwid realizza applicazioni mobili gratuite per iOS e Android per gestire il tuo negozio e vendere dove vuoi, quando vuoi. Scansiona i prodotti, monitora l'inventario, gestisci le vendite e accetta pagamenti utilizzando il tuo dispositivo mobile come lettore POS. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\"> Maggiori dettagli.</a>" #: includes/faq_entries.php:12 msgid "How can I manage my store from a mobile device?" msgstr "Come posso gestire il mio negozio da un dispositivo mobile?" #: includes/faq_entries.php:6 msgid "Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">More details.</a>" msgstr "Ecwid è certificato PCI DSS livello 1, che rappresenta il gold standard per le soluzioni di e-commerce in tutto il mondo. Ciò significa che la tua attività di vendita online con Ecwid non avrà problemi di conformità bancaria. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\"> Maggiori dettagli.</a>" #: includes/faq_entries.php:5 msgid "How secure is this plugin? Is my store PCI DSS compliant?" msgstr "Quanto è sicuro questo plugin? Il mio negozio è conforme agli standard PCI DSS?" #: includes/class-ecwid-nav-menus.php:32 msgid "Ecwid Menu Item" msgstr "Voce menu Ecwid" #: includes/class-ecwid-admin.php:179 includes/class-ecwid-admin.php:180 msgid "Help" msgstr "Aiuto" #: templates/admin-footer.php:27 msgid "Want to connect another %s store?" msgstr "Vuoi collegare un altro negozio %s?" #: templates/admin-footer.php:17 msgid "Questions?" msgstr "Domande?" #: templates/admin-footer.php:6 msgid "Manage Store on iPhone, iPad or Android" msgstr "Gestisci il negozio su iPhone, iPad o Android" #: includes/class-ecwid-message-manager.php:254 msgid "Complete Setup" msgstr "Completa configurazione" #: includes/class-ecwid-message-manager.php:253 msgid "Complete setup and start selling" msgstr "Completa l'installazione e inizia a vendere" #: includes/class-ecwid-message-manager.php:242 msgid "Greetings! Your %s plugin is now active." msgstr "Ciao! Il tuo plugin %s è ora attivo." #: templates/debug.php:12 msgid "Download log file" msgstr "Scarica il file di log" #: templates/help.php:67 includes/oembed.php:75 includes/oembed.php:104 msgid "See more" msgstr "Scopri di più" #: ecwid-shopping-cart.php:1051 msgid "I have a problem with my %s store" msgstr "Ho un problema con il mio negozio %s" #: includes/class-ecwid-message-manager.php:55 msgid "Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: \"The Wordpress function wp_remote_post() failed to connect a remote server because of some error: \"%s\". Seems like HTTP POST requests are disabled on this server\". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>." msgstr "Ci dispiace, c'è un problema. Questa pagina dovrebbe mostrare il pannello di controllo del tuo negozio. Tuttavia, questo sito Wordpress sembra non essere in grado di connettersi al server Ecwid per effettuare tale operazione. La causa potrebbe essere un errore di configurazione del server, che può essere risolto dal tuo hosting provider. Ecco una descrizione più tecnica del problema, che puoi inviare all'hosting provider: \"La funzione Wordpress wp_remote_post() non è riuscita a collegare un server remoto a causa di un errore: \"%s\". Sembra che le richieste HTTP POST siano disabilitate su questo server\". <br /><br />Non esitare a contattarci all'indirizzo <a %s>wordpress@ecwid.com</a>: ti aiuteremo a contattare il tuo hosting provider per risolvere il problema. <br /><br /> Nel frattempo, per gestire il tuo negozio, puoi usare il pannello di controllo web di Ecwid all'indirizzo <a %s>my.ecwid.com</a>. La vetrina del negozio è perfettamente funzionante, controlla qui: <a %s>%s</a>." #: templates/store-popup.php:249 msgid "Open store dashboard" msgstr "Apri dashboard del negozio" #: templates/store-popup.php:12 templates/store-popup.php:27 msgid "Store elements" msgstr "Archivia gli elementi" #: templates/reconnect-sso.php:10 msgid "Re-connect to Enable Control Panel" msgstr "Ricollega per abilitare il pannello di controllo" #: templates/reconnect-sso.php:8 msgid "Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page." msgstr "Gestisci i prodotti, monitora le vendite, modifica le impostazioni.<nobr> Tutto senza</nobr> lasciare questa pagina." #: templates/reconnect-sso.php:7 msgid "Your store Control Panel. Right here in WordPress." msgstr "Il pannello di controllo del tuo negozio. Proprio qui in WordPress." #: ecwid-shopping-cart.php:2114 msgid "Orders" msgstr "Ordini" #: includes/class-ecwid-nav-menus.php:168 ecwid-shopping-cart.php:2118 msgid "The store top-level categories are automatically added to this drop-down menu" msgstr "Le categorie principali del negozio vengono aggiunte automaticamente a questo menu a tendina" #: includes/class-ecwid-nav-menus.php:167 ecwid-shopping-cart.php:2117 msgid "Done" msgstr "Fatto" #: includes/class-ecwid-nav-menus.php:166 ecwid-shopping-cart.php:2116 msgid "Refresh categories list" msgstr "Aggiorna l'elenco delle categorie" #: includes/class-ecwid-nav-menus.php:165 msgid "Store Page" msgstr "Pagina del negozio" #: includes/class-ecwid-nav-menus.php:319 msgid "Add to Menu" msgstr "Aggiungi al menu" #: includes/class-ecwid-nav-menus.php:316 msgid "Select All" msgstr "Seleziona tutto" #: includes/class-ecwid-nav-menus.php:369 msgid "Store with Categories Menu" msgstr "Negozio con menu categorie" #: includes/class-ecwid-nav-menus.php:352 #: includes/class-ecwid-nav-menus.php:355 msgid "My Account" msgstr "Il mio account" #: includes/class-ecwid-nav-menus.php:335 #: includes/class-ecwid-floating-minicart.php:135 #: includes/class-ecwid-admin-storefront-page.php:279 msgid "Cart" msgstr "Carrello" #: includes/class-ecwid-admin.php:87 includes/class-ecwid-admin.php:88 #: includes/class-ecwid-products.php:228 ecwid-shopping-cart.php:2112 msgid "Products" msgstr "Prodotti" #: includes/class-ecwid-admin.php:79 includes/class-ecwid-admin.php:80 msgid "Sales" msgstr "Vendite" #: ecwid-shopping-cart.php:1119 msgid "Report a problem with the store" msgstr "Segnala un problema del negozio" #: ecwid-shopping-cart.php:1036 msgid "%s plugin doesn't work well with my \"%s\" theme" msgstr "Il plugin %s non funziona bene con il mio tema \"%s" #: templates/admin/welcome-connection-message.php:22 #: templates/admin/welcome-connection-message.php:28 msgid "Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL." msgstr "Sembra che il tuo sito non supporti richieste POST remote necessarie per il funzionamento delle API %s. Contatta il tuo hosting provider per abilitare cURL." #. Description of the plugin msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up." msgstr "Ecwid è un carrello della spesa completo e gratuito. Si integra facilmente con qualsiasi blog Wordpress e richiede meno di 5 minuti di configurazione." #. Plugin URI of the plugin msgid "http://www.ecwid.com?partner=wporg" msgstr "http://www.ecwid.com?partner=wporg" #: templates/store-svg.php:12 msgid "Demo Store" msgstr "Negozio demo" #: templates/store-svg.php:9 msgid "Your store will be shown here!" msgstr "Il tuo negozio sarà mostrato qui!" #: templates/product-popup.php:248 templates/store-popup.php:256 msgid "Update" msgstr "Aggiornamento" #: templates/store-popup.php:253 msgid "Insert into page" msgstr "Inserisci nella pagina" #: templates/store-popup.php:246 msgid "Demo store" msgstr "Negozio demo" #: templates/store-popup.php:80 msgid "Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>" msgstr "Inoltre, puoi aggiungere i controlli del negozio alla barra degli strumenti del tuo sito web utilizzando <a %s>widget originali WordPress</a>." #: templates/store-popup.php:74 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:86 msgid "Show categories" msgstr "Mostra categorie" #: templates/store-popup.php:66 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:94 msgid "Show minicart" msgstr "Mostra mini carrello" #: templates/store-popup.php:58 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:78 msgid "Show search" msgstr "Mostra ricerca" #: templates/store-popup.php:53 msgid "Product catalog will be shown automatically" msgstr "Il catalogo dei prodotti sarà mostrato automaticamente" #: templates/store-popup.php:52 msgid "Choose widgets to show" msgstr "Scegli i widget da mostrare" #: templates/admin/welcome-create.php:7 msgid "Connect your store" msgstr "Collega il tuo negozio" #: templates/admin/welcome-no_oauth.php:6 #: templates/importer/import-no-token.tpl.php:6 #: includes/class-ecwid-message-manager.php:291 msgid "Connect" msgstr "Collega" #: templates/admin/legacy-connect.tpl.php:68 msgid "Save and connect your %s store to the site" msgstr "Salva e collega il tuo negozio %s al sito" #: templates/admin/legacy-connect.tpl.php:59 msgid "Enter your Store ID here:" msgstr "Inserisci qui il tuo store ID:" #: templates/admin/legacy-connect.tpl.php:52 msgid "Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the \"Dashboard\" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration." msgstr "Lo store ID è un identificatore univoco di qualsiasi negozio %1$s, composto da diverse cifre. Lo trovi nella pagina \"Dashboard\" del pannello di controllo %1$s. Lo riceverai anche nella mail di benvenuto che ti invieremo dopo la registrazione." #: templates/admin/legacy-connect.tpl.php:50 msgid "Find your Store ID" msgstr "Trova il tuo store ID" #: templates/admin/legacy-connect.tpl.php:46 msgid "You will be able to sign up through your existing Google, Facebook or PayPal profiles as well." msgstr "Puoi iscriverti anche attraverso i tuoi attuali profili Google, Facebook o PayPal." #: templates/admin/legacy-connect.tpl.php:42 msgid "I already have an account, sign in" msgstr "Ho già un account, accedi" #: templates/admin/legacy-connect.tpl.php:35 msgid "Create a new %s account which you will use to manage your store and inventory. The registration is free." msgstr "Crea un nuovo account %s che utilizzerai per gestire il negozio e l'inventario. La registrazione è gratuita." #: templates/admin/legacy-connect.tpl.php:24 msgid "The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps." msgstr "Il primo passo per aprire il tuo business online: <br />Iniziamo subito aggiungendo un negozio al tuo sito WordPress in <strong>3</strong> semplici mosse." #: templates/admin/legacy-connect.tpl.php:21 msgid "Thank you for choosing %s to build your online store" msgstr "Grazie di aver scelto %s per realizzare il tuo negozio online" #: templates/admin/simple-dashboard.php:58 msgid "Open control panel" msgstr "Apri pannello di controllo" #: templates/admin/simple-dashboard.php:42 msgid "Your %s store is connected<br /> to your WordPress website" msgstr "Il tuo negozio %s è collegato<br /> al tuo sito WordPress" #: templates/admin/simple-dashboard.php:39 msgid "Greetings!" msgstr "Ciao!" #: templates/admin/simple-dashboard.php:34 msgid "Your %s store is now connected<br /> to your WordPress website" msgstr "Il tuo negozio %s è ora collegato<br /> al tuo sito WordPress" #: templates/admin/simple-dashboard.php:31 msgid "Congratulations!" msgstr "Congratulazioni!" #: templates/admin/simple-dashboard.php:18 msgid "Disconnect store" msgstr "Scollega il negozio" #: templates/admin/legacy-connect.tpl.php:65 #: templates/admin/simple-dashboard.php:14 templates/store-popup.php:244 #: templates/store-svg.php:14 #: includes/integrations/class-ecwid-integration-gutenberg.php:104 #: includes/gutenberg/class-ecwid-gutenberg.php:130 msgid "Store ID" msgstr "Store ID" #: templates/admin/welcome-connection-message.php:15 msgid "Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again." msgstr "Errore di connessione: dopo aver cliccato sul pulsante è necessario effettuare il login e dare il consenso per utilizzare il nostro plugin. Prova di nuovo." #: templates/admin/legacy-connect.tpl.php:57 #: templates/admin/welcome-no_oauth.php:3 msgid "Enter your Store ID" msgstr "Inserisci il tuo store ID" #: templates/store-popup.php:221 msgid "Default view mode on search results" msgstr "Modalità di visualizzazione predefinita dei risultati di ricerca" #: templates/store-popup.php:214 templates/store-popup.php:232 msgid "Table" msgstr "Tabella" #: templates/store-popup.php:211 templates/store-popup.php:229 msgid "List" msgstr "Elenco" #: templates/store-popup.php:208 templates/store-popup.php:226 msgid "Grid" msgstr "Griglia" #: templates/store-popup.php:204 msgid "Default view mode on product pages" msgstr "Modalità di visualizzazione predefinita delle pagine di prodotto" #: templates/store-popup.php:184 msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products." msgstr "Qui puoi controllare quanti prodotti sono visualizzati per pagina. Queste opzioni definiscono i valori massimi. Se non c'è abbastanza spazio per mostrare tutte le colonne dei prodotti, %s adatta il numero di colonne per contenere tutti i prodotti." #: templates/store-popup.php:169 msgid "Table view" msgstr "Vista tabella" #: templates/store-popup.php:152 msgid "List view" msgstr "Vista elenco" #: templates/store-popup.php:125 msgid "Grid view" msgstr "Vista griglia" #: templates/store-popup.php:123 msgid "Number of products per page" msgstr "Numero di prodotti per pagina" #: templates/store-popup.php:191 msgid "Number of categories per row" msgstr "Numero di categorie per riga" #: templates/advanced-settings.php:98 msgid "Save changes" msgstr "Salva le modifiche" #: includes/class-ecwid-product-browser.php:202 msgid "Default category ID" msgstr "ID categoria di default" #: templates/store-popup.php:98 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:127 #: includes/integrations/class-ecwid-integration-gutenberg.php:427 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:56 #: includes/gutenberg/class-ecwid-gutenberg-block-store.php:248 msgid "Store root category" msgstr "Categoria di root del negozio" #: templates/store-popup.php:90 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:101 msgid "Category shown by default" msgstr "Categoria mostrata di default" #: templates/admin-message.php:47 msgid "Never show this message again" msgstr "Non mostrare più questo messaggio" #: templates/product-popup.php:194 lib/ecwid_platform.php:209 #: js/gutenberg/blocks.build.js:1 msgid "Price" msgstr "Prezzo" #: includes/class-ecwid-store-editor.php:75 #: includes/integrations/class-ecwid-integration-gutenberg.php:102 #: includes/gutenberg/class-ecwid-gutenberg.php:128 msgid "Edit Appearance" msgstr "Modifica aspetto" #: includes/class-ecwid-store-editor.php:60 msgid "Edit Store" msgstr "Modifica negozio" #: templates/store-popup.php:11 templates/store-popup.php:21 #: includes/class-ecwid-store-editor.php:52 msgid "Add Store" msgstr "Aggiungi negozio" #: includes/class-ecwid-message-manager.php:261 msgid "Back to Store Settings" msgstr "Torna alle impostazioni del negozio" #: includes/class-ecwid-message-manager.php:252 msgid "Your store is almost ready!" msgstr "Il tuo negozio è quasi pronto!" #: includes/class-ecwid-message-manager.php:243 msgid "Take a few simple steps to complete store setup" msgstr "Per completare la configurazione del negozio, bastano poche semplici mosse" #: includes/widgets/class-ecwid-widget-products-base.php:205 msgid "Number of products to show" msgstr "Numero di prodotti da mostrare" #: includes/widgets/class-ecwid-widget-recently-viewed.php:89 msgid "Store Link Title" msgstr "Titolo del link del negozio" #: templates/product-popup.php:183 includes/class-ecwid-product-browser.php:249 #: includes/widgets/class-ecwid-widget-products-base.php:199 #: js/gutenberg/blocks.build.js:1 msgid "Title" msgstr "Titolo" #: includes/widgets/class-ecwid-widget-recently-viewed.php:69 #: includes/widgets/class-ecwid-widget-recently-viewed.php:91 msgid "You have not viewed any product yet. Open store." msgstr "Non hai ancora visualizzato nessun prodotto. Apri il negozio." #: includes/widgets/class-ecwid-widget-recently-viewed.php:11 msgid "Recently Viewed Products" msgstr "Prodotti visti di recente" #: includes/widgets/class-ecwid-widget-recently-viewed.php:12 msgid "Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop." msgstr "Mostra l'elenco dei prodotti visti di recente dai clienti nel tuo negozio per consentire loro di visualizzarli nuovamente con facilità." #: includes/widgets/class-ecwid-widget-store-link.php:35 msgid "Text" msgstr "Testo" #: includes/themes/class-ecwid-theme-twentyseventeen.php:48 #: includes/themes/class-ecwid-theme-twentyseventeen.php:54 #: includes/themes/class-ecwid-theme-twentyfifteen.php:34 #: includes/themes/class-ecwid-theme-twentyfifteen.php:40 #: includes/themes/class-ecwid-theme-twentysixteen.php:36 #: includes/themes/class-ecwid-theme-twentysixteen.php:42 #: includes/widgets/class-ecwid-widget-store-link.php:31 msgid "Shop" msgstr "Acquista" #: includes/widgets/class-ecwid-widget-store-link.php:10 msgid "Store Page Link" msgstr "Link alla pagina del negozio" #: includes/widgets/class-ecwid-widget-store-link.php:9 msgid "Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site." msgstr "Mostra nella barra laterale un link alla pagina del negozio per consentire al cliente di accedervi rapidamente da qualsiasi pagina del sito." #: includes/widgets/class-ecwid-widget-vcategories.php:9 msgid "Store Categories" msgstr "Categorie del negozio" #: includes/widgets/class-ecwid-widget-vcategories.php:8 msgid "Adds vertical categories block to let the customer navigate your store." msgstr "Aggiunge il blocco categorie in verticale per permettere al cliente di esplorare il negozio." #: includes/class-ecwid-nav-menus.php:344 #: includes/class-ecwid-nav-menus.php:347 #: includes/widgets/class-ecwid-widget-search.php:13 msgid "Product Search" msgstr "Ricerca prodotto" #: includes/widgets/class-ecwid-widget-search.php:12 msgid "Displays a simple search box for your customers to find a product in your store" msgstr "Mostra una semplice casella di ricerca per permettere ai clienti di trovare un prodotto nel negozio" #: includes/widgets/class-ecwid-widget-minicart-miniview.php:8 msgid "Adds a compact cart widget for customer to see the products they added to the cart." msgstr "Aggiunge un widget del carrello compatto che mostra al cliente i prodotti che ha aggiunto al carrello." #: includes/widgets/class-ecwid-widget-minicart.php:41 #: includes/widgets/class-ecwid-widget-random-product.php:67 #: includes/widgets/class-ecwid-widget-search.php:46 #: includes/widgets/nsf-minicart-editor.tpl.php:50 #: includes/widgets/class-ecwid-widget-minicart-miniview.php:41 #: includes/widgets/class-ecwid-widget-vcategories.php:39 #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:76 msgid "Title:" msgstr "Titolo:" #: includes/class-ecwid-nav-menus.php:338 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:20 msgid "Shopping Cart" msgstr "Carrello della spesa" #: includes/widgets/class-ecwid-widget-minicart.php:8 #: includes/widgets/class-ecwid-widget-nsf-minicart.php:19 msgid "Adds a cart widget for customer to see the products they added to the cart." msgstr "Aggiunge un widget del carrello che mostra al cliente i prodotti che ha aggiunto al carrello." #: includes/widgets/class-ecwid-widget-badge.php:51 #: includes/widgets/class-ecwid-widget-badge.php:63 msgid "Ecwid e-commerce widgets" msgstr "Widget e-commerce Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:45 #: includes/widgets/class-ecwid-widget-badge.php:57 msgid "Ecwid shopping cart" msgstr "Carrello della spesa Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:39 #: includes/widgets/class-ecwid-widget-badge.php:75 msgid "Ecwid free shopping cart" msgstr "Carrello della spesa gratuito Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:33 #: includes/widgets/class-ecwid-widget-badge.php:69 msgid "Ecwid ecommerce solution" msgstr "Soluzione ecommerce Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:21 #: includes/widgets/class-ecwid-widget-badge.php:27 msgid "Ecwid shopping cart widget" msgstr "Widget del carrello della spesa Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:14 msgid "Ecwid Badge" msgstr "Badge Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:13 msgid "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid." msgstr "Ti piace Ecwid e vuoi aiutarci a crescere? Aggiungi il badge 'Powered by Ecwid' sul tuo sito per mostrare ai tuoi visitatori che sei un utente Ecwid soddisfatto." #: ecwid-shopping-cart.php:2791 msgid "Recommendations for Your Online Store" msgstr "Raccomandazioni per il tuo negozio online" #: includes/class-ecwid-admin.php:528 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:77 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:87 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:95 #: includes/integrations/class-ecwid-integration-wpbakery-composer.php:103 #: ecwid-shopping-cart.php:2056 msgid "Settings" msgstr "Impostazioni" #: includes/class-ecwid-admin.php:165 msgid "Advanced" msgstr "Avanzato" #: includes/class-ecwid-admin.php:164 msgid "Advanced settings" msgstr "Impostazioni avanzate" #: templates/product-popup.php:206 templates/store-popup.php:14 #: templates/store-popup.php:34 #: includes/integrations/elementor/class-ec-elementor-widget-buynow.php:44 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:78 #: js/gutenberg/blocks.build.js:1 msgid "Appearance" msgstr "Aspetto" #: includes/class-ecwid-admin.php:28 includes/class-ecwid-admin.php:59 #: includes/class-ecwid-admin.php:459 ecwid-shopping-cart.php:2110 msgid "Dashboard" msgstr "Dashboard" #: includes/class-ecwid-admin.php:57 ecwid-shopping-cart.php:2056 msgid "Setup" msgstr "Configurazione" #: includes/class-ecwid-admin.php:47 msgid "%s shopping cart settings" msgstr "Impostazioni del carrello della spesa %s" #: includes/class-ecwid-nav-menus.php:132 #: includes/class-ecwid-nav-menus.php:361 #: includes/class-ecwid-nav-menus.php:364 #: includes/class-ecwid-nav-menus.php:372 includes/class-ecwid-admin.php:206 #: includes/class-ecwid-admin.php:207 includes/class-ecwid-admin.php:220 #: includes/class-ecwid-admin.php:221 #: includes/integrations/elementor/class-ec-elementor-widget-store.php:63 #: includes/class-ecwid-admin-storefront-page.php:257 #: ecwid-shopping-cart.php:1657 msgid "Store" msgstr "Negozio" #: ecwid-shopping-cart.php:1306 msgid "<a %s>Online store powered by %s</a>" msgstr "<a %s>Online store powered by %s</a>" #: includes/class-ecwid-admin.php:489 msgid "Sell on Facebook" msgstr "Vendi su Facebook" #: templates/admin/simple-dashboard.php:48 ecwid-shopping-cart.php:1094 msgid "Visit storefront" msgstr "Visita la vetrina" ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/languages/ecwid-shopping-cart.pot�����������������������������������������������0000644�����������������00000114316�15122273603�0016763 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Copyright (C) 2017 Ecwid Shopping Cart # This file is distributed under the same license as the Ecwid Shopping Cart package. msgid "" msgstr "" "Project-Id-Version: Ecwid Shopping Cart 5.4.1\n" "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/ecwid-shopping-" "cart\n" "POT-Creation-Date: 2017-07-05 09:05:23+00:00\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2017-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" #: ecwid-shopping-cart.php:847 msgid "%s plugin doesn't work well with my \"%s\" theme" msgstr "" #: ecwid-shopping-cart.php:862 msgid "I have a problem with my %s store" msgstr "" #: ecwid-shopping-cart.php:890 templates/dashboard.php:44 msgid "Visit storefront" msgstr "" #: ecwid-shopping-cart.php:898 msgid "Manage my store" msgstr "" #: ecwid-shopping-cart.php:906 msgid "Read FAQ" msgstr "" #: ecwid-shopping-cart.php:908 msgid "" "https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-" msgstr "" #: ecwid-shopping-cart.php:917 msgid "Report a problem with the store" msgstr "" #: ecwid-shopping-cart.php:1279 msgid "<a %s>Online store powered by %s</a>" msgstr "" #: ecwid-shopping-cart.php:1592 includes/class-ecwid-nav-menus.php:111 #: includes/class-ecwid-nav-menus.php:297 #: includes/class-ecwid-nav-menus.php:300 #: includes/class-ecwid-nav-menus.php:308 msgid "Store" msgstr "" #: ecwid-shopping-cart.php:1796 includes/class-ecwid-admin.php:31 msgid "Setup" msgstr "" #: ecwid-shopping-cart.php:1796 msgid "Settings" msgstr "" #: ecwid-shopping-cart.php:1857 includes/class-ecwid-admin.php:33 msgid "Dashboard" msgstr "" #: ecwid-shopping-cart.php:1859 includes/class-ecwid-admin.php:58 #: includes/class-ecwid-admin.php:59 includes/class-ecwid-products.php:242 msgid "Products" msgstr "" #: ecwid-shopping-cart.php:1861 msgid "Orders" msgstr "" #: ecwid-shopping-cart.php:1863 includes/class-ecwid-nav-menus.php:144 msgid "Refresh categories list" msgstr "" #: ecwid-shopping-cart.php:1864 includes/class-ecwid-nav-menus.php:145 msgid "Done" msgstr "" #: ecwid-shopping-cart.php:1865 includes/class-ecwid-nav-menus.php:146 msgid "" "The store top-level categories are automatically added to this drop-down menu" msgstr "" #: ecwid-shopping-cart.php:1974 includes/class-ecwid-oauth.php:336 msgid "" "To be able to choose a product to insert to your posts and pages, you will " "need to re-connect your site to your %s store. This will only require you to " "accept permissions request – so that the plugin will be able to list your " "products in the \"Add product\" dialog." msgstr "" #: ecwid-shopping-cart.php:2466 msgid "Recommendations for Your Online Store" msgstr "" #: includes/class-ecwid-admin.php:21 msgid "%s shopping cart settings" msgstr "" #: includes/class-ecwid-admin.php:22 msgid "%s Store" msgstr "" #: includes/class-ecwid-admin.php:48 includes/class-ecwid-admin.php:49 msgid "Sales" msgstr "" #: includes/class-ecwid-admin.php:69 msgid "Advanced settings" msgstr "" #: includes/class-ecwid-admin.php:70 msgid "Advanced" msgstr "" #: includes/class-ecwid-admin.php:83 includes/class-ecwid-admin.php:84 msgid "Help" msgstr "" #: includes/class-ecwid-integration-divibuilder.php:25 msgid "Ecwid" msgstr "" #: includes/class-ecwid-integration-divibuilder.php:41 msgid "Content" msgstr "" #: includes/class-ecwid-integration-divibuilder.php:44 msgid "Here you can create the content that will be used within the module." msgstr "" #: includes/class-ecwid-integration-divibuilder.php:49 msgid "Admin Label" msgstr "" #: includes/class-ecwid-integration-divibuilder.php:51 msgid "" "This will change the label of the module in the builder for easy " "identification." msgstr "" #: includes/class-ecwid-integration-divibuilder.php:54 msgid "CSS ID" msgstr "" #: includes/class-ecwid-integration-divibuilder.php:57 msgid "" "Enter an optional CSS ID to be used for this module. An ID can be used to " "create custom CSS styling, or to create links to particular sections of your " "page." msgstr "" #: includes/class-ecwid-integration-divibuilder.php:60 msgid "CSS Class" msgstr "" #: includes/class-ecwid-integration-divibuilder.php:63 msgid "" "Enter optional CSS classes to be used for this module. A CSS class can be " "used to create custom CSS styling. You can add multiple classes, separated " "with a space." msgstr "" #: includes/class-ecwid-message-manager.php:45 msgid "" "Sorry, there is a problem. This page is supposed to display your store " "Control Panel. However, this Wordpress site doesn't seem to be able to " "connect to the Ecwid server to show your store dashboard here. This is " "likely caused by your server misconfiguration and can be fixed by your " "hosting provider. Here is a more techy description of the problem, which you " "can send to your hosting provider: \"The Wordpress function wp_remote_post() " "failed to connect a remote server because of some error: \"%s\". Seems like " "HTTP POST requests are disabled on this server\". <br /><br />Please feel " "free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you " "contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, " "to manage your store, you can use the Ecwid Web Control Panel at <a %s>my." "ecwid.com</a>. Your store front is working fine as well and you can check it " "here: <a %s>%s</a>." msgstr "" #: includes/class-ecwid-message-manager.php:194 msgid "Greetings! Your %s plugin is now active." msgstr "" #: includes/class-ecwid-message-manager.php:195 msgid "Take a few simple steps to complete store setup" msgstr "" #: includes/class-ecwid-message-manager.php:196 msgid "Set up %s Store" msgstr "" #: includes/class-ecwid-message-manager.php:204 msgid "Your store is almost ready!" msgstr "" #: includes/class-ecwid-message-manager.php:205 msgid "Complete setup and start selling" msgstr "" #: includes/class-ecwid-message-manager.php:206 msgid "Complete Setup" msgstr "" #: includes/class-ecwid-message-manager.php:212 msgid "" "To add extra functions to your store, drag and drop %s store elements on " "your site. When you're done, you can get back to modifying your settings." msgstr "" #: includes/class-ecwid-message-manager.php:213 msgid "Back to Store Settings" msgstr "" #: includes/class-ecwid-message-manager.php:220 msgid "" "Do you like your %s online store? We'd appreciate it if you add your review " "and vote for the plugin on WordPress site." msgstr "" #: includes/class-ecwid-message-manager.php:224 msgid "Rate %s at WordPress.org" msgstr "" #: includes/class-ecwid-nav-menus.php:25 msgid "Ecwid Menu Item" msgstr "" #: includes/class-ecwid-nav-menus.php:143 msgid "Store Page" msgstr "" #: includes/class-ecwid-nav-menus.php:254 msgid "Select All" msgstr "" #: includes/class-ecwid-nav-menus.php:257 msgid "Add to Menu" msgstr "" #: includes/class-ecwid-nav-menus.php:273 msgid "Cart" msgstr "" #: includes/class-ecwid-nav-menus.php:276 #: includes/widgets/class-ecwid-widget-minicart.php:6 msgid "Shopping Cart" msgstr "" #: includes/class-ecwid-nav-menus.php:281 #: includes/class-ecwid-nav-menus.php:284 #: includes/widgets/class-ecwid-widget-search.php:10 msgid "Product Search" msgstr "" #: includes/class-ecwid-nav-menus.php:289 #: includes/class-ecwid-nav-menus.php:292 msgid "My Account" msgstr "" #: includes/class-ecwid-nav-menus.php:305 msgid "Store with Categories Menu" msgstr "" #: includes/class-ecwid-product-popup.php:94 msgid "Add Product" msgstr "" #: includes/class-ecwid-product-popup.php:134 msgid "First Page" msgstr "" #: includes/class-ecwid-product-popup.php:135 msgid "Previous Page" msgstr "" #: includes/class-ecwid-product-popup.php:136 msgid "Next Page" msgstr "" #: includes/class-ecwid-product-popup.php:137 msgid "Last Page" msgstr "" #: includes/class-ecwid-store-editor.php:44 templates/store-popup.php:11 #: templates/store-popup.php:19 msgid "Add Store" msgstr "" #: includes/class-ecwid-store-editor.php:52 msgid "Edit Store" msgstr "" #: includes/class-ecwid-store-editor.php:67 msgid "Edit Appearance" msgstr "" #: includes/faq_entries.php:5 msgid "How secure is this plugin? Is my store PCI DSS compliant?" msgstr "" #: includes/faq_entries.php:6 msgid "" "Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-" "commerce solutions worldwide. This means you won’t have any banking " "compliance issues when selling online with Ecwid. <a target=\"_blank\" href=" "\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-" "downloadable-#secureplugin\">More details.</a>" msgstr "" #: includes/faq_entries.php:12 msgid "How can I manage my store from a mobile device?" msgstr "" #: includes/faq_entries.php:13 msgid "" "Ecwid provides free mobile applications for iOS and Android to manage your " "store and sell on the go. Scan products, track inventory, manage sales and " "accept payments using your mobile device as a POS station. <a target=\"_blank" "\" href=\"https://www.ecwid.com/ecwid-mobile\">More details.</a>" msgstr "" #: includes/faq_entries.php:20 msgid "How to set up a storefront on Facebook with Ecwid?" msgstr "" #: includes/faq_entries.php:21 msgid "" "You can add your online store to your Facebook business page. No addons " "needed. Ecwid will automatically synchronize products, customers, orders and " "inventory between your WordPress and Facebook storefronts. <a target=\"_blank" "\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-" "downloadable-#How%20to%20add%20my%20store%20to%20Facebook\">More details.</a>" msgstr "" #: includes/faq_entries.php:28 msgid "How can I add a cart widget to my site sidebar?" msgstr "" #: includes/faq_entries.php:30 msgid "" "You can add product search box, cart widget and more on the <a href=\"%s\">" "\"Appearance / Widgets page\"</a> here in your site admin. <a target=\"_blank" "\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-" "downloadable-#Sidebar%%20widgets\">More details.</a>" msgstr "" #: includes/faq_entries.php:38 msgid "How much does Ecwid cost?" msgstr "" #: includes/faq_entries.php:39 msgid "" "Our 4 account types vary by number of products, types of functionality, and " "level of support. For more information, check out our <a target=\"_blank\" " "href=\"https://www.ecwid.com/pricing\">pricing page.</a><br /><br />Free - " "Up to 10 products<br />Venture - $15/month<br />Business - $35/month<br /" ">Unlimited - $99/month<br /><br />Pro Tip: You can also save money by " "enrolling in our annual plans." msgstr "" #: includes/faq_entries.php:45 msgid "How do I add store categories to the site menu." msgstr "" #: includes/faq_entries.php:46 msgid "" "You can add the store categories menu to your site menu to help your " "customers easily navigate your site. Just open \"Appearance > Menus\" in " "your WordPress control panel and add the \"Store with Categories Menu\" item " "to your site menu. A drop-down menu containing your store categories will " "automatically appear on your site." msgstr "" #: includes/faq_entries.php:52 msgid "How do I put my products in the sitemap?" msgstr "" #: includes/faq_entries.php:53 msgid "" "To create sitemap for your Wordpress site we suggest using <a target=\"_blank" "\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google " "XML Sitemaps</a> or <a target=\"_blank\" href=\"https://wordpress.org/" "plugins/wordpress-seo/\">Yoast Wordpress SEO</a>.  plugins. These " "plugins are fully compatible with Ecwid and allow to generate a sitemap that " "will contain links to categories and product pages, so the store pages will " "get indexed faster. Please note that this option is available to <a target=" "\"_blank\" href=\"https://www.ecwid.com/pricing\">paid Ecwid users</a>." msgstr "" #: includes/faq_entries.php:58 msgid "" "How to add a single product with the add to bag button to the site pages?" msgstr "" #: includes/faq_entries.php:59 msgid "" "To feature a single product on a separate page or blog post of your site, " "use <b>[ecwid_product]</b> shortcode. <a target=\"_blank\" href=\"https://" "support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-" "#Howtoembedasingleproductonapageorpostofmysite\">How to use it.</a>" msgstr "" #: includes/faq_entries.php:65 msgid "Is it possible to display my store on the site home page?" msgstr "" #: includes/faq_entries.php:66 msgid "" "You can display your store on the site main page. Adjust the \"Reading\" " "settings of your site as described in our <a target=\"_blank\" href=" "\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-" "downloadable-#displaystoreonhomepage\">Help Center.</a>" msgstr "" #: includes/oembed.php:68 includes/oembed.php:97 templates/help.php:96 msgid "See more" msgstr "" #: includes/themes/class-ecwid-theme-twentyfifteen.php:32 #: includes/themes/class-ecwid-theme-twentyfifteen.php:38 #: includes/themes/class-ecwid-theme-twentyseventeen.php:47 #: includes/themes/class-ecwid-theme-twentyseventeen.php:53 #: includes/themes/class-ecwid-theme-twentysixteen.php:35 #: includes/themes/class-ecwid-theme-twentysixteen.php:41 #: includes/widgets/class-ecwid-widget-store-link.php:29 msgid "Shop" msgstr "" #: includes/widgets/class-ecwid-widget-badge.php:9 msgid "" "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered " "by Ecwid' badge on your site to show your visitors that you're a proud user " "of Ecwid." msgstr "" #: includes/widgets/class-ecwid-widget-badge.php:10 msgid "Ecwid Badge" msgstr "" #: includes/widgets/class-ecwid-widget-badge.php:17 #: includes/widgets/class-ecwid-widget-badge.php:23 msgid "Ecwid shopping cart widget" msgstr "" #: includes/widgets/class-ecwid-widget-badge.php:29 #: includes/widgets/class-ecwid-widget-badge.php:65 msgid "Ecwid ecommerce solution" msgstr "" #: includes/widgets/class-ecwid-widget-badge.php:35 #: includes/widgets/class-ecwid-widget-badge.php:71 msgid "Ecwid free shopping cart" msgstr "" #: includes/widgets/class-ecwid-widget-badge.php:41 #: includes/widgets/class-ecwid-widget-badge.php:53 msgid "Ecwid shopping cart" msgstr "" #: includes/widgets/class-ecwid-widget-badge.php:47 #: includes/widgets/class-ecwid-widget-badge.php:59 msgid "Ecwid e-commerce widgets" msgstr "" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:15 msgid "Adds a shopping cart widget to the top right corner of your site." msgstr "" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:16 msgid "Shopping Cart (Floating)" msgstr "" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:114 msgid "Position" msgstr "" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:117 msgid "Bottom right" msgstr "" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:122 msgid "Top right" msgstr "" #: includes/widgets/class-ecwid-widget-minicart-miniview.php:5 msgid "" "Adds a compact cart widget for customer to see the products they added to " "the cart." msgstr "" #: includes/widgets/class-ecwid-widget-minicart-miniview.php:6 msgid "Shopping Cart (Mini)" msgstr "" #: includes/widgets/class-ecwid-widget-minicart-miniview.php:44 #: includes/widgets/class-ecwid-widget-minicart.php:44 #: includes/widgets/class-ecwid-widget-search.php:49 #: includes/widgets/class-ecwid-widget-vcategories.php:43 #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:71 msgid "Title:" msgstr "" #: includes/widgets/class-ecwid-widget-minicart.php:5 msgid "" "Adds a cart widget for customer to see the products they added to the cart." msgstr "" #: includes/widgets/class-ecwid-widget-recently-viewed.php:9 msgid "" "Displays a list of products recently viewed by the customer to easily return " "to the products they saw in your shop." msgstr "" #: includes/widgets/class-ecwid-widget-recently-viewed.php:10 #: includes/widgets/class-ecwid-widget-recently-viewed.php:151 msgid "Recently Viewed Products" msgstr "" #: includes/widgets/class-ecwid-widget-recently-viewed.php:122 #: includes/widgets/class-ecwid-widget-recently-viewed.php:152 msgid "You have not viewed any product yet. Open store." msgstr "" #: includes/widgets/class-ecwid-widget-recently-viewed.php:162 #: templates/product-popup.php:160 msgid "Title" msgstr "" #: includes/widgets/class-ecwid-widget-recently-viewed.php:163 msgid "Store Link Title" msgstr "" #: includes/widgets/class-ecwid-widget-recently-viewed.php:164 msgid "Number of products to show" msgstr "" #: includes/widgets/class-ecwid-widget-search.php:9 msgid "" "Displays a simple search box for your customers to find a product in your " "store" msgstr "" #: includes/widgets/class-ecwid-widget-store-link.php:5 msgid "" "Displays a link to the store page in sidebar for customer to quickly access " "your store from any page on the site." msgstr "" #: includes/widgets/class-ecwid-widget-store-link.php:6 msgid "Store Page Link" msgstr "" #: includes/widgets/class-ecwid-widget-store-link.php:33 msgid "Text" msgstr "" #: includes/widgets/class-ecwid-widget-vcategories.php:5 msgid "Adds vertical categories block to let the customer navigate your store." msgstr "" #: includes/widgets/class-ecwid-widget-vcategories.php:6 msgid "Store Categories" msgstr "" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:11 msgid "" "Adds root categories list to the sidebar to let your customers navigate the " "store." msgstr "" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:12 msgid "Store Root Categories" msgstr "" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:22 #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:68 msgid "Browse by Category" msgstr "" #: lib/ecwid_platform.php:59 templates/product-popup.php:171 msgid "Price" msgstr "" #: templates/admin-footer.php:4 msgid "Manage Store on iPhone, iPad or Android" msgstr "" #: templates/admin-footer.php:7 msgid "Get %s mobile app" msgstr "" #: templates/admin-footer.php:13 msgid "Questions?" msgstr "" #: templates/admin-footer.php:21 msgid "Want to connect another %s store?" msgstr "" #: templates/admin-footer.php:23 msgid "<a %s>Reconnect</a>" msgstr "" #: templates/admin-message.php:45 msgid "Never show this message again" msgstr "" #: templates/admin-timeout.php:9 msgid "Sorry we're having technical difficulties." msgstr "" #: templates/admin-timeout.php:11 msgid "" "Our team is already working on this issue. Please refresh the page in a few " "minutes. If the issue persists, please contact <a target=\"_blank\" href=" "\"https://help.ecwid.com/customer/portal/emails/new\">our customer support " "team</a>." msgstr "" #: templates/advanced-settings.php:1 msgid "%s Shopping Cart — Advanced settings" msgstr "" #: templates/advanced-settings.php:29 msgid "SEO friendly clean URLs" msgstr "" #: templates/advanced-settings.php:34 msgid "" "This enables new clean URLs format in your store. The new urls do not " "contain hash sign ('#'), so they look nicer and are better indexed by Google." msgstr "" #: templates/advanced-settings.php:38 msgid "" "To enable clean URLs in your store, you will need to enable pretty " "permalinks in your WordPress site settings. Navigate to <a%s>Settings-" ">Permalink</a> and enable the \"Post name\" permalink type." msgstr "" #: templates/advanced-settings.php:44 msgid "" "Note: the new URLs will be automatically enabled for every store in one of " "upcoming updates so please make sure to check how the new URLs work in your " "store and <a %s>let us know</a> if you face any trouble with them" msgstr "" #: templates/advanced-settings.php:44 templates/advanced-settings.php:188 msgid "https://support.ecwid.com/hc/en-us/requests/new" msgstr "" #: templates/advanced-settings.php:57 templates/store-popup.php:154 msgid "Category shown by default" msgstr "" #: templates/advanced-settings.php:61 templates/store-popup.php:161 msgid "Store root category" msgstr "" #: templates/advanced-settings.php:74 msgid "" "By default, the storefront shows a list of root categories. You can override " "this behavior and show a different category when customers open your store " "for the first time. This is useful if you only have one category or want to " "display a specific set of items (e.g. \"Featured Products\") to new visitors." msgstr "" #: templates/advanced-settings.php:97 msgid "Customer Single Sign-On" msgstr "" #: templates/advanced-settings.php:102 msgid "" "Single Sign-On allows your customers to have a single login for your " "WordPress site and your %s store. When someone logs in to your site, they " "will automatically be logged in to their customer account in your store as " "well with no need to enter their email/password again." msgstr "" #: templates/advanced-settings.php:109 msgid "Upgrade to get this feature" msgstr "" #: templates/advanced-settings.php:112 msgid "Please subscribe to a paid plan to get this feature." msgstr "" #: templates/advanced-settings.php:118 msgid "" "To allow %s automatically log in customers to your store, please provide it " "with a permission to use the customer data in the store. <a %s>Please use " "this link to do that</a>" msgstr "" #: templates/advanced-settings.php:124 msgid "" "To make sure your customer can actually log in to your site and store, " "enable registration in the <a %s>site settings</a>" msgstr "" #: templates/advanced-settings.php:146 msgid "Chameleon skin" msgstr "" #: templates/advanced-settings.php:150 msgid "" "Automatic adjustment of your store design to your WordPress theme. Whatever " "WordPress theme you use, %s will detect predominant colors and font and use " "them in your product catalog." msgstr "" #: templates/advanced-settings.php:153 msgid "" "Please note this functionality is in beta. So if you run into difficulties " "or find problems with Chameleon, please <a %s>let us know</a>." msgstr "" #: templates/advanced-settings.php:176 msgid "Integration with search on your site <sup>beta</sup>" msgstr "" #: templates/advanced-settings.php:180 msgid "" "%s stores your products data in a secure cloud storage. The product pages " "are displayed on the fly when a customer browses your store. So, basically, " "the products are not stored on the site, that's why the site search doesn't " "find product pages while looking through site pages and posts. This option " "enables a local storage mode: the products will be stored both in the cloud " "and on your site. The site search results will list product pages as well as " "regular pages/posts of your site." msgstr "" #: templates/advanced-settings.php:188 msgid "" "Please note this functionality is in beta. So if you run into difficulties " "or find problems with it, please <a %s>let us know</a>." msgstr "" #: templates/advanced-settings.php:197 msgid "Save changes" msgstr "" #: templates/connect.php:5 templates/dashboard.php:6 #: templates/reconnect-sso.php:5 templates/reconnect.php:5 msgid "%s Shopping Cart" msgstr "" #: templates/connect.php:13 templates/reconnect.php:13 msgid "Connect your store<br /> to this WordPress site" msgstr "" #: templates/connect.php:17 msgid "Enter your Store ID" msgstr "" #: templates/connect.php:20 templates/landing_old.php:27 #: templates/reconnect.php:23 msgid "Connect" msgstr "" #: templates/connect.php:21 msgid "Save and connect" msgstr "" #: templates/connect.php:27 templates/reconnect.php:46 msgid "" "To sell using %1$s, you must allow WordPress to access the %1$s plugin. The " "connect button will direct you to your %1$s account where you can provide " "permission." msgstr "" #: templates/connect.php:32 msgid "Where to find your Store ID:" msgstr "" #: templates/connect.php:34 msgid "" "Store ID is a unique identifier of your %1$s account. You can find it in " "your %1$s control panel: open the <a %2$s>Dashboard page</a> and find the " "\"<b>Store ID: NNNNNNN</b>\" text, where <b>NNNNNNN</b> is your Store " "ID." msgstr "" #: templates/connect.php:39 msgid "Don't have an %s account? Create one now." msgstr "" #: templates/dashboard.php:10 templates/store-popup.php:231 #: templates/store-svg.php:15 msgid "Store ID" msgstr "" #: templates/dashboard.php:14 msgid "Disconnect store" msgstr "" #: templates/dashboard.php:27 msgid "Congratulations!" msgstr "" #: templates/dashboard.php:30 msgid "Your %s store is now connected<br /> to your WordPress website" msgstr "" #: templates/dashboard.php:35 msgid "Greetings!" msgstr "" #: templates/dashboard.php:38 msgid "Your %s store is connected<br /> to your WordPress website" msgstr "" #: templates/dashboard.php:47 msgid "Open control panel" msgstr "" #: templates/debug.php:14 msgid "Download log file" msgstr "" #: templates/help.php:11 msgid "How can we help you?" msgstr "" #: templates/help.php:15 msgid "https://support.ecwid.com/hc/en-us/search" msgstr "" #: templates/help.php:17 msgid "E.g. How to set up shipping" msgstr "" #: templates/help.php:21 msgid "Search the Knowledge Base" msgstr "" #: templates/help.php:29 msgid "https://support.ecwid.com/hc/en-us/sections/201706719-Ecwid-Basics" msgstr "" #: templates/help.php:31 msgid "Ecwid Basics" msgstr "" #: templates/help.php:35 msgid "" "https://support.ecwid.com/hc/en-us/sections/201758475-Manage-Your-Ecwid-Store" msgstr "" #: templates/help.php:37 msgid "Manage Your Ecwid Store" msgstr "" #: templates/help.php:41 msgid "" "https://support.ecwid.com/hc/en-us/sections/201758445-Customize-Your-Store" msgstr "" #: templates/help.php:43 msgid "Customize Your Store" msgstr "" #: templates/help.php:47 msgid "https://support.ecwid.com/hc/en-us/sections/201706799-Billing-Questions" msgstr "" #: templates/help.php:49 msgid "Billing Questions" msgstr "" #: templates/help.php:53 msgid "" "https://support.ecwid.com/hc/en-us/sections/201702859-Technical-Reference" msgstr "" #: templates/help.php:55 msgid "Technical Reference" msgstr "" #: templates/help.php:62 msgid "Frequently Asked Questions" msgstr "" #: templates/help.php:205 msgid "Contact us" msgstr "" #: templates/help.php:206 msgid "Still have questions about Ecwid? Let us know!" msgstr "" #: templates/help.php:211 msgid "Forums" msgstr "" #: templates/help.php:212 msgid "" "Join the Ecwid community. Discuss support topics and store ideas with other " "Ecwid users." msgstr "" #: templates/help.php:221 msgid "Send a message to our support team" msgstr "" #: templates/help.php:227 msgid "Subject" msgstr "" #: templates/help.php:228 msgid "Type in your message here" msgstr "" #: templates/help.php:231 msgid "Send Message" msgstr "" #: templates/help.php:242 msgid "Send message failed" msgstr "" #: templates/help.php:248 msgid "Your email has been sent" msgstr "" #: templates/help.php:249 msgid "" " Thank you very much for contacting us! We will get back to you shortly." msgstr "" #: templates/help.php:250 msgid "You can send a new request here." msgstr "" #: templates/landing.php:8 msgid "Welcome to %s!" msgstr "" #: templates/landing.php:9 msgid "" "Thank you for choosing %s to build your online store. The first step to sell " "successfully online is to setup your store! Let’s get started and add a " "store to your website in a few simple steps." msgstr "" #: templates/landing.php:15 templates/landing.php:132 msgid "Create Free %s Store" msgstr "" #: templates/landing.php:31 templates/landing.php:148 msgid "Store is created" msgstr "" #: templates/landing.php:35 templates/landing.php:152 msgid "Creating store" msgstr "" #: templates/landing.php:39 templates/landing.php:156 msgid "Preparing your store dashboard" msgstr "" #: templates/landing.php:43 templates/landing_old.php:52 msgid "Free registration, No credit card required" msgstr "" #: templates/landing.php:46 msgid "" "Connection error: please click the button again and give permissions for " "this plugin<br /> to show your %s store on this site." msgstr "" #: templates/landing.php:49 templates/landing.php:160 msgid "Already have %s account?" msgstr "" #: templates/landing.php:50 templates/landing_old.php:62 msgid "Connect your store to Wordpress site" msgstr "" #: templates/landing.php:53 msgid "" "You will be asked to log in to your %s Control Panel<br />and give " "permissions to show your store on this site" msgstr "" #: templates/landing.php:56 templates/landing_old.php:75 msgid "Get ready to sell online" msgstr "" #: templates/landing.php:67 msgid "Sell Everywhere<br>with your %s store" msgstr "" #: templates/landing.php:68 templates/landing_old.php:87 msgid "" "Start selling on your WordPress site. Then mirror your shop on your Facebook " "page, blog and marketplaces like Google Shopping, Yahoo and Shopping.com." msgstr "" #: templates/landing.php:69 msgid "" "Use %s's mobile-POS to swipe credit cards and sell on the go. Your orders " "and inventory are always synchronized with your online store." msgstr "" #: templates/landing.php:75 templates/landing_old.php:94 msgid "Features" msgstr "" #: templates/landing.php:82 templates/landing_old.php:101 msgid "Compatible with your theme" msgstr "" #: templates/landing.php:83 msgid "%s is compatible with your<br>“%s” WordPress theme<br>out of the box." msgstr "" #: templates/landing.php:91 templates/landing_old.php:110 msgid "Free and always up to date" msgstr "" #: templates/landing.php:92 templates/landing_old.php:111 msgid "" "Free plan always available with tons of features<br>at no additional cost. " "Updates are seamless, automatic<br>and free of charge." msgstr "" #: templates/landing.php:102 templates/landing_old.php:121 msgid "Responsive design" msgstr "" #: templates/landing.php:103 templates/landing_old.php:122 msgid "Your store looks perfect<br />on all devices" msgstr "" #: templates/landing.php:111 templates/landing_old.php:130 msgid "PCI DSS Certified" msgstr "" #: templates/landing.php:112 templates/landing_old.php:131 msgid "Secure checkout with over 40<br />payment options" msgstr "" #: templates/landing.php:120 templates/landing_old.php:139 msgid "Global Reach" msgstr "" #: templates/landing.php:121 msgid "Over 1 million merchants in 175 countries" msgstr "" #: templates/landing.php:128 templates/landing_old.php:147 msgid "Start selling <br>on your WordPress <nobr>site for free</nobr>" msgstr "" #: templates/landing.php:161 templates/landing_old.php:158 msgid "Connect your store to this site" msgstr "" #: templates/landing_old.php:8 templates/landing_old.php:12 msgid "Plugin is installed successfully!" msgstr "" #: templates/landing_old.php:9 msgid "" "There are just a few steps left to start selling<br /> on your WordPress site" msgstr "" #: templates/landing_old.php:13 msgid "" "There are few little steps left to start selling<br /> on your WordPress site" msgstr "" #: templates/landing_old.php:19 msgid "Register" msgstr "" #: templates/landing_old.php:20 msgid "" "Create a free Ecwid account to manage your store and inventory.<br /> No " "credit card required" msgstr "" #: templates/landing_old.php:29 msgid "Add your Ecwid store to your site <nobr>in two clicks</nobr>" msgstr "" #: templates/landing_old.php:30 msgid "Connect your Ecwid store to this site <nobr>in two clicks</nobr>" msgstr "" #: templates/landing_old.php:39 msgid "Start selling" msgstr "" #: templates/landing_old.php:40 msgid "Your storefront is ready" msgstr "" #: templates/landing_old.php:46 msgid "Create Ecwid store" msgstr "" #: templates/landing_old.php:49 templates/landing_old.php:154 msgid "Connect your store" msgstr "" #: templates/landing_old.php:55 msgid "" "Connection error: please click the button again and give permissions for " "this plugin<br /> to show your Ecwid store on this site." msgstr "" #: templates/landing_old.php:58 templates/landing_old.php:69 msgid "" "You will be asked to log in to your Ecwid Control Panel<br />and give " "permissions to show your store on this site" msgstr "" #: templates/landing_old.php:61 templates/landing_old.php:157 msgid "Already have Ecwid account?" msgstr "" #: templates/landing_old.php:65 templates/landing_old.php:161 msgid "Don't have an Ecwid account?" msgstr "" #: templates/landing_old.php:66 templates/landing_old.php:162 msgid "Register at Ecwid for free" msgstr "" #: templates/landing_old.php:72 msgid "No credit card required" msgstr "" #: templates/landing_old.php:86 msgid "Sell Everywhere<br>with your Ecwid store" msgstr "" #: templates/landing_old.php:88 msgid "" "Use Ecwid's mobile-POS to swipe credit cards and sell on the go. Your orders " "and inventory are always synchronized with your online store." msgstr "" #: templates/landing_old.php:102 msgid "" "Ecwid is compatible with your<br>“%s” WordPress theme<br>out of the box." msgstr "" #: templates/landing_old.php:140 msgid "More than 800,000 merchants in 175 countries" msgstr "" #: templates/landing_old.php:151 msgid "Get Started, Create Ecwid Account" msgstr "" #: templates/product-popup.php:23 msgid "Name" msgstr "" #: templates/product-popup.php:29 msgid "SKU" msgstr "" #: templates/product-popup.php:47 templates/product-popup.php:53 #: templates/product-popup.php:56 msgid "Search" msgstr "" #: templates/product-popup.php:49 msgid "Title or SKU" msgstr "" #: templates/product-popup.php:69 msgid "Current Page" msgstr "" #: templates/product-popup.php:80 msgid "Next page" msgstr "" #: templates/product-popup.php:94 msgid "" "Nothing found for <span class=\"empty-page__term\">\"{{ data.term }}\"</span>" msgstr "" #: templates/product-popup.php:96 msgid "Try another search." msgstr "" #: templates/product-popup.php:97 msgid "Browse all products." msgstr "" #: templates/product-popup.php:122 templates/product-popup.php:127 msgid "Choose Product" msgstr "" #: templates/product-popup.php:123 templates/product-popup.php:131 msgid "Customize widget" msgstr "" #: templates/product-popup.php:140 msgid "Choose product properties to display in widget" msgstr "" #: templates/product-popup.php:150 msgid "Picture" msgstr "" #: templates/product-popup.php:155 msgid "Options" msgstr "" #: templates/product-popup.php:165 msgid "Quantity" msgstr "" #: templates/product-popup.php:176 msgid "«Buy now» button" msgstr "" #: templates/product-popup.php:183 templates/store-popup.php:13 #: templates/store-popup.php:31 msgid "Appearance" msgstr "" #: templates/product-popup.php:196 msgid "Add border" msgstr "" #: templates/product-popup.php:201 msgid "Show price inside the \"Buy now\" button" msgstr "" #: templates/product-popup.php:206 msgid "Center align on a page" msgstr "" #: templates/product-popup.php:218 msgid "customize appearance" msgstr "" #: templates/product-popup.php:219 msgid "select product" msgstr "" #: templates/product-popup.php:220 msgid "Insert" msgstr "" #: templates/reconnect-sso.php:11 msgid "Your store Control Panel. Right here in WordPress." msgstr "" #: templates/reconnect-sso.php:12 msgid "" "Manage products, track sales, adjust settings - <nobr>All without</nobr> " "leaving this page." msgstr "" #: templates/reconnect-sso.php:14 msgid "Re-connect to Enable Control Panel" msgstr "" #: templates/reconnect.php:31 msgid "" "Connection error - after clicking button you need to login and accept " "permissions to use our plugin. Please, try again." msgstr "" #: templates/reconnect.php:39 msgid "" "Looks like your site does not support remote POST requests that are required " "for %s API to work. Please, contact your hosting provider to enable cURL." msgstr "" #: templates/store-popup.php:12 templates/store-popup.php:25 msgid "Store elements" msgstr "" #: templates/store-popup.php:46 msgid "Choose widgets to show" msgstr "" #: templates/store-popup.php:47 msgid "Product catalog will be shown automatically" msgstr "" #: templates/store-popup.php:52 msgid "Show search" msgstr "" #: templates/store-popup.php:59 msgid "Show minicart" msgstr "" #: templates/store-popup.php:66 msgid "Show categories" msgstr "" #: templates/store-popup.php:72 msgid "" "Additionally, you can add store controls to your website's toolbar using <a " "%s>WordPress native widgets</a>" msgstr "" #: templates/store-popup.php:84 msgid "Number of products per page" msgstr "" #: templates/store-popup.php:86 msgid "Grid view" msgstr "" #: templates/store-popup.php:113 msgid "List view" msgstr "" #: templates/store-popup.php:130 msgid "Table view" msgstr "" #: templates/store-popup.php:145 msgid "" "Here you can control how many products will be displayed per page. These " "options define maximum values. If there is not enough space to show all " "product columns, %s will adapt the number of columns to hold all products." msgstr "" #: templates/store-popup.php:180 msgid "Number of categories per row" msgstr "" #: templates/store-popup.php:193 msgid "Default view mode on product pages" msgstr "" #: templates/store-popup.php:197 templates/store-popup.php:215 msgid "Grid" msgstr "" #: templates/store-popup.php:200 templates/store-popup.php:218 msgid "List" msgstr "" #: templates/store-popup.php:203 templates/store-popup.php:221 msgid "Table" msgstr "" #: templates/store-popup.php:210 msgid "Default view mode on search results" msgstr "" #: templates/store-popup.php:233 msgid "Demo store" msgstr "" #: templates/store-popup.php:236 msgid "Open store dashboard" msgstr "" #: templates/store-popup.php:240 msgid "Insert into page" msgstr "" #: templates/store-popup.php:243 msgid "Update" msgstr "" #: templates/store-svg.php:10 msgid "Your store will be shown here!" msgstr "" #: templates/store-svg.php:13 msgid "Demo Store" msgstr "" #: templates/sync.php:161 msgid "" "To enable this feature, the plugin needs a permission to read your store " "product information." msgstr "" #: templates/sync.php:162 msgid "Provide access." msgstr "" #: templates/sync.php:167 templates/sync.php:168 msgid "Synchronize products" msgstr "" #: templates/sync.php:175 msgid "" "We're synchronizing your products. This may take a few minutes. Please do " "not reload the page." msgstr "" #: templates/sync.php:179 msgid "Products synchronized: %s out of %s" msgstr "" #: templates/sync.php:186 msgid "" "Products are successfully synchronized. The product pages are up to date." msgstr "" #: templates/sync.php:190 msgid "Last update" msgstr "" #: templates/sync.php:193 msgid "Not synchronized yet" msgstr "" #. Plugin Name of the plugin/theme msgid "Ecwid Shopping Cart" msgstr "" #. #-#-#-#-# ecwid-shopping-cart.pot (Ecwid Shopping Cart 5.4.1) #-#-#-#-# #. Plugin URI of the plugin/theme #. #-#-#-#-# ecwid-shopping-cart.pot (Ecwid Shopping Cart 5.4.1) #-#-#-#-# #. Author URI of the plugin/theme msgid "http://www.ecwid.com?source=wporg" msgstr "" #. Description of the plugin/theme msgid "" "Ecwid is a free full-featured shopping cart. It can be easily integrated " "with any Wordpress blog and takes less than 5 minutes to set up." msgstr "" #. Author of the plugin/theme msgid "Ecwid Team" msgstr "" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/languages/ecwid-shopping-cart-pt_BR.mo������������������������������������������0000644�����������������00000133351�15122273603�0017600 0����������������������������������������������������������������������������������������������������ustar�00�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<����� ����������p��H���q�������&�����(����������I���$��.���n�����������$���������� ����� ����� ����� �����<�����k���B��K�����S�����A���N��R�����G����� ���+ �����7 �����@ �����R �����k �� ��� ����� ����� �����\!�����s!�� ���!�����!�����!��/��!�� ���"�����"�����"������#�����#�����1#�����@#��.���O#�����~#�����#�����#�� ���#�����#�����#��@���#�����:$��$���M$�����r$��/���$��w���$��~���:%�����%�� ���;&�����F&�����N&�����a&��]���v&�����&�� ���&�����&�����'�����'�� ���.'��"���8'��#���['�� ���'�� ���'�����'��!���'��!���'��q���'��s���\(��O���(����� )��v���)��)���9*�����c*�����*�����*�����*�����*�� ���*�� ���*�����*�� ���*�����*�����+�����+��C��8+�����|,��L���-����S-�����s.�����.�����.�� ���.��&���.�����.�����/�����/�����A0�����U0�� ���^0�����i0�����p0�����0��*��� 1�����81�����S1��!���e1�����1�� ���1�� ���1��(���1�����1�� ���1�����1�����1��D���2��/���3��/���F3�����v3��/���3��(���3�����3��9���3��I���84��2���4��!���4�����4�����4��4���4��9���$5��X���^5�� ���5�� ���5�����5�� ���5�����5��'���s6�����6�����6��[���6��,���7�� ���L7�����W7�����\7�� ���z7�� ���7�����7�����7�����7��I���8�����8�����8�����9�����29�����I9�����\9�����q9��c���y9��l���9�����J:����Q:�����;��)���<�����<������=�����=�����=��4���>��!���J>�����l>�����u>�� ���>�����>�����>��+���>�����>��I���>��#���6?�����Z?�����j?�� ���s?�����~?��"���?�����?�����?��%���?�����@�����@�����#@�����>@�����^@�����p@�����@�����@�����@�� ���@�����@�����@��1���@�����A�� ��� A��%���A��(���=A�� ���fA��"���sA�����A�����A�����A�����A�����A�� ���A�����A�����A����� B�� ���B��&���(B�� ���OB����[B��*���lC����C�� ���G��>���-G�����lG��.���H�����2H�����8H�����IH�����RH�����2I�� ���CI�����NI�����^I�����tI�����I�����I�����I�����I�����I�����I�� ���I��/���I�����!J�����5J�����:J�����J��M���K��M��� L��M���nL�����L��P���PM�����M�� ���M�����M�����M�����NN�� ��N��E��P�����MR��]���S����nS��y���T�����U�� ���U�����U�����U�����U����U�����V�����W�����W�����.X��!���?X��^���aX�����X�����X����X��C��Y��u��?[�����\�� ���]��0���]��T���^��n���]^��q���^��:���>_��>���y_�����_��2���_�����`��,��� `�����M`�����l`�����`��!���`��M���`��/��� a��)���:a��I���da��B���a��G���a��J���9b��M���b�����b�����b��"���b�����!c�����7c��X���"d�����{d��3���d��6���d�����d��@���e��/���Fe��)���ve��I��e��$���g�����h�����$h�����6h�����Eh�����Uh��?���gh�����h��_���.i��h���i��P���i��h���Hj��W���j����� k�� ���k�����#k�����>k�����Zk�� ���vk�����k�����k��&���il�����l�����l�����l�����l��c��l�� ���Yn�����dn�����kn�����tn�� ���n�����n�����n��:���n�����o�����0o�����Io��)���ao�� ���o�����o��@���o�����o��$���o�����p��0���4p�����ep��z���p��y���tq�����q�� ���r�����r�����"r��r���8r�����r�� ���r�����r�����r�����r�� ��� s��2���s��5���Fs�� ���|s�� ���s�����s��%���s��,���s�����s��y���t��Y���t�����Su��{���v��4���v�����v�����v�����v��$���v�����$w�� ���*w�� ���8w�����Ew�� ���Xw�����ew�����w��"���w��h��w�����+y��8���y��Q���z�����R{��#���l{�����{�� ���{��*���{��#���{�����{�����|�����u}�����}�����}�����}�����}�����}��:���a~�����~�����~�����~�����~������� �����'��������F�����K�����Z�����`��D���`��H�����D��������3��A���K��1����������E���Ӂ��_�����/���y��#��������͂�����Ղ��7�����:��� ��j���[�����ƃ�����փ�����������������*���������������j�����+����� ����������%���������������'��������.�����F��K��������k��!����������#���͇���������� �����"�����+����������7����?�������0��������5�����I�����P�������-�����#���ɍ�� �����'�������������0�����7��5���K�������V����� ���������� ����� ��������'��0���B�� ���s�����~��$���������� ���ޏ�������#��������+�����=�����X�����\�����c�����u�� �����!�����;����� ����������-��� ��/���9�����i��/���y����������đ�����ّ�� �����������������������/�����J�����]��/���s�����������/���Ǔ��������� ��D��������`��.��������,�����1�� ���D�����O�����M�����e�����u��������������������ɚ�������������������������!��E���2�����x���������������j��^���S��F�����O��������I��N��������C�����K�����Z�����c�����������o��Ρ�����>��j���*��0�������Ʀ�����]����������'�����>�� ���W��8��a��%�������������k�������!�����_���A������� �����8��ҫ��l�� ����x���� ��&���*��1���Q��Z��������ޱ�����^��7�����=���"��"���`��2����������8���ӳ����� �����)�����?��!���U��M���w��/���Ŵ��)�����I�����B���i��G�����J�����M���?������������ ����� ���ȶ��������v���*������������L���1�������������������������1������Y���������������������������������������@�������4������������������0���������_�������h����������5������������������� �����������������B��������������������������������-������K���2��S���;��� ��������������4����������������������;�����������������������~����������.�����������D�����������������J���P������3�����������a�����������������������)�����������|���������F������ ���e���C������q����������������z�������������o���x������`��������������������p������}���������� ���:������"�������������0�������� �������m������O���]���)���A���������M�������������6�������������R�����������T������$�����(��������������8��7��� �������������^���y��������������������������������<���U������������������������������������\���������#��(��!�������>������� ������i��� ��[���?���������u������8��� ����������������������,�����7���������������w���������������������������g������*��������������������r���+�����%����������������������� �����l�����������$�������2����������!��:���,���%�������������-������V���b��� �����������������+��=�������W���/��&���������������/���'����������<�����6���������t���������#������9������d�������������������"���������������k�������'���H���&������9�������Z������������������f��������������������������n���N���������I���������������������������X����������G����������������� ��c���j�����������������������������������Q���3��E����������������.���������5�������������{���s����������� Thank you very much for contacting us! We will get back to you shortly.�%s Shopping Cart�%s Shopping Cart — Advanced settings�%s Shopping Cart — Appearance settings�%s Store�%s is compatible with your<br>“%s” WordPress theme<br>out of the box.�%s plugin doesn't work well with my "%s" theme�%s shopping cart settings�%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site.�<a %s>Online store powered by %s</a>�<a %s>Reconnect</a>�Add Product�Add Store�Add border�Add to Menu�Add your Ecwid store to your site <nobr>in two clicks</nobr>�Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>�Adds a cart widget for customer to see the products they added to the cart.�Adds a compact cart widget for customer to see the products they added to the cart.�Adds a shopping cart widget to the top right corner of your site.�Adds root categories list to the sidebar to let your customers navigate the store.�Adds vertical categories block to let the customer navigate your store.�Admin Label�Advanced�Advanced settings�Already have %s account?�Already have Ecwid account?�Appearance�Appearance settings�Automatic adjustment of your store design to your WordPress theme. Whatever WordPress theme you use, %s will detect predominant colors and font and use them in your product catalog.�Back to Store Settings�Billing Questions�Bottom right�Browse all products.�Browse by Category�By default, the storefront shows a list of root categories. You can override this behavior and show a different category when customers open your store for the first time. This is useful if you only have one category or want to display a specific set of items (e.g. "Featured Products") to new visitors.�CSS Class�CSS ID�Cart�Category shown by default�Center align on a page�Chameleon skin�Choose Product�Choose product properties to display in widget�Choose widgets to show�Compatible with your theme�Complete Setup�Complete setup and start selling�Congratulations!�Connect�Connect your Ecwid store to this site <nobr>in two clicks</nobr>�Connect your store�Connect your store to Wordpress site�Connect your store to this site�Connect your store<br /> to this WordPress site�Connection error - after clicking button you need to login and accept permissions to use our plugin. Please, try again.�Connection error: please click the button again and give permissions for this plugin<br /> to show your %s store on this site.�Connection error: please click the button again and give permissions for this plugin<br /> to show your Ecwid store on this site.�Contact us�Content�Create Ecwid store�Create Free %s Store�Create a free Ecwid account to manage your store and inventory.<br /> No credit card required�Creating store�Current Page�Customer Single Sign-On�Customize Your Store�Customize widget�Dashboard�Default view mode on product pages�Default view mode on search results�Demo Store�Demo store�Disconnect store�Display categories above products�Display search box above products�Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site.�Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop.�Displays a simple search box for your customers to find a product in your store�Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid.�Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site.�Don't have an %s account? Create one now.�Don't have an Ecwid account?�Done�Download log file�E.g. How to set up shipping�Ecwid�Ecwid Badge�Ecwid Basics�Ecwid Menu Item�Ecwid Team�Ecwid e-commerce widgets�Ecwid ecommerce solution�Ecwid free shopping cart�Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won’t have any banking compliance issues when selling online with Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#secureplugin">More details.</a>�Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up.�Ecwid is compatible with your<br>“%s” WordPress theme<br>out of the box.�Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">More details.</a>�Ecwid shopping cart�Ecwid shopping cart widget�Edit Appearance�Edit Store�Enable minicart attached to categories�Enable the new category menu�Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page.�Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space.�Enter your Store ID�Features�First Page�Forums�Free and always up to date�Free plan always available with tons of features<br>at no additional cost. Updates are seamless, automatic<br>and free of charge.�Free registration, No credit card required�Frequently Asked Questions�Get %s mobile app�Get Started, Create Ecwid Account�Get ready to sell online�Global Reach�Greetings!�Greetings! Your %s plugin is now active.�Grid�Grid view�Help�Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products.�Here you can create the content that will be used within the module.�How can I add a cart widget to my site sidebar?�How can I manage my store from a mobile device?�How can we help you?�How do I add store categories to the site menu.�How do I put my products in the sitemap?�How much does Ecwid cost?�How secure is this plugin? Is my store PCI DSS compliant?�How to add a single product with the add to bag button to the site pages?�How to set up a storefront on Facebook with Ecwid?�I have a problem with my %s store�Insert�Insert into page�Integration with search on your site <sup>beta</sup>�Is it possible to display my store on the site home page?�Join the Ecwid community. Discuss support topics and store ideas with other Ecwid users.�Last Page�Last update�List�List view�Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL.�Manage Store on iPhone, iPad or Android�Manage Your Ecwid Store�Manage my store�Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page.�More than 800,000 merchants in 175 countries�My Account�Name�Never show this message again�Next Page�Next page�No credit card required�Not synchronized yet�Note: the new URLs will be automatically enabled for every store in one of upcoming updates so please make sure to check how the new URLs work in your store and <a %s>let us know</a> if you face any trouble with them�Nothing found for <span class="empty-page__term">"{{ data.term }}"</span>�Number of categories per row�Number of products per page�Number of products to show�Open %s store settings�Open control panel�Open store dashboard�Options�Or you can add search box to your website's toolbar using <a href="%s">WordPress native widgets</a>�Or you can add vertical categories to your website's toolbar using <a href="%s">WordPress native widgets</a>�Orders�Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target="_blank" href="https://www.ecwid.com/pricing">pricing page.</a><br /><br />Free - Up to 10 products<br />Venture - $15/month<br />Business - $35/month<br />Unlimited - $99/month<br /><br />Pro Tip: You can also save money by enrolling in our annual plans.�Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">our customer support team</a>.�Over 1 million merchants in 175 countries�PCI DSS Certified�Picture�Please note this functionality is in beta. So if you run into difficulties or find problems with Chameleon, please <a %s>let us know</a>.�Please note this functionality is in beta. So if you run into difficulties or find problems with it, please <a %s>let us know</a>.�Please subscribe to a paid plan to get this feature.�Plugin is installed successfully!�Position�Preparing your store dashboard�Previous Page�Price�Product Search�Product catalog will be shown automatically�Products�Products are successfully synchronized. The product pages are up to date.�Products synchronized: %s out of %s�Provide access.�Quantity�Questions?�Rate %s at WordPress.org�Re-connect to Enable Control Panel�Read FAQ�Recently Viewed Products�Recommendations for Your Online Store�Refresh categories list�Register�Register at Ecwid for free�Report a problem with the store�Responsive design�SEO friendly clean URLs�SKU�Sales�Save and connect�Save changes�Search�Search the Knowledge Base�Secure checkout with over 40<br />payment options�See more�Select All�Sell Everywhere<br>with your %s store�Sell Everywhere<br>with your Ecwid store�Send Message�Send a message to our support team�Send message failed�Set up %s Store�Settings�Setup�Shop�Shopping Cart�Shopping Cart (Floating)�Shopping Cart (Mini)�Show categories�Show minicart�Show price inside the "Buy now" button�Show search�Single Sign-On allows your customers to have a single login for your WordPress site and your %s store. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again.�Sorry we're having technical difficulties.�Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: "The Wordpress function wp_remote_post() failed to connect a remote server because of some error: "%s". Seems like HTTP POST requests are disabled on this server". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>.�Start selling�Start selling <br>on your WordPress <nobr>site for free</nobr>�Start selling on your WordPress site. Then mirror your shop on your Facebook page, blog and marketplaces like Google Shopping, Yahoo and Shopping.com.�Still have questions about Ecwid? Let us know!�Store�Store Categories�Store ID�Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel: open the <a %2$s>Dashboard page</a> and find the "<b>Store ID: NNNNNNN</b>" text, where <b>NNNNNNN</b> is your Store ID.�Store Link Title�Store Page�Store Page Link�Store Root Categories�Store elements�Store is created�Store root category�Store with Categories Menu�Subject�Synchronize products�Table�Table view�Take a few simple steps to complete store setup�Technical Reference�Text�Thank you for choosing %s to build your online store. The first step to sell successfully online is to setup your store! Let’s get started and add a store to your website in a few simple steps.�The new category menu looks better and is more mobile-friendly. If you haven't yet added category menu to your store page, you can do that in the <a %s>store page editor</a> (enable the "Show categories" option)�The store top-level categories are automatically added to this drop-down menu�There are few little steps left to start selling<br /> on your WordPress site�There are just a few steps left to start selling<br /> on your WordPress site�This enables new clean URLs format in your store. The new urls do not contain hash sign ('#'), so they look nicer and are better indexed by Google.�This will change the label of the module in the builder for easy identification.�Title�Title or SKU�Title:�To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings.�To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>�To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the "Add product" dialog.�To create sitemap for your Wordpress site we suggest using <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> or <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target="_blank" href="https://www.ecwid.com/pricing">paid Ecwid users</a>.�To enable clean URLs in your store, you will need to enable pretty permalinks in your WordPress site settings. Navigate to <a%s>Settings->Permalink</a> and enable the "Post name" permalink type.�To enable this feature, the plugin needs a permission to read your store product information.�To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#Howtoembedasingleproductonapageorpostofmysite">How to use it.</a>�To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>�To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission.�Top right�Try another search.�Type in your message here�Update�Updated %s widgets are available for your %s store. They are more mobile friendly and look better. Please enable them on the plugin settings page and check how they work in your store. The new widgets will be enabled automatically for all users in one of the upcoming plugin versions.�Upgrade to get this feature�Use %s's mobile-POS to swipe credit cards and sell on the go. Your orders and inventory are always synchronized with your online store.�Use Ecwid's mobile-POS to swipe credit cards and sell on the go. Your orders and inventory are always synchronized with your online store.�Visit storefront�Want to connect another %s store?�We're synchronizing your products. This may take a few minutes. Please do not reload the page.�Welcome to %s!�Where to find your Store ID:�You can add product search box, cart widget and more on the <a href="%s">"Appearance / Widgets page"</a> here in your site admin. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#Sidebar%%20widgets">More details.</a>�You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open "Appearance > Menus" in your WordPress control panel and add the "Store with Categories Menu" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site.�You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#How%20to%20add%20my%20store%20to%20Facebook">More details.</a>�You can display your store on the site main page. Adjust the "Reading" settings of your site as described in our <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">Help Center.</a>�You can send a new request here.�You have not viewed any product yet. Open store.�You should disable this option, if you added minicart to your website's sidebar�You will be asked to log in to your %s Control Panel<br />and give permissions to show your store on this site�You will be asked to log in to your Ecwid Control Panel<br />and give permissions to show your store on this site�Your %s store is connected<br /> to your WordPress website�Your %s store is now connected<br /> to your WordPress website�Your email has been sent�Your store Control Panel. Right here in WordPress.�Your store is almost ready!�Your store looks perfect<br />on all devices�Your store will be shown here!�Your storefront is ready�customize appearance�http://www.ecwid.com?source=wporg�https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-�https://support.ecwid.com/hc/en-us/requests/new�https://support.ecwid.com/hc/en-us/search�https://support.ecwid.com/hc/en-us/sections/201702859-Technical-Reference�https://support.ecwid.com/hc/en-us/sections/201706719-Ecwid-Basics�https://support.ecwid.com/hc/en-us/sections/201706799-Billing-Questions�https://support.ecwid.com/hc/en-us/sections/201758445-Customize-Your-Store�https://support.ecwid.com/hc/en-us/sections/201758475-Manage-Your-Ecwid-Store�https://www.ecwid.com/forums�select product�upgrade widgets messageCategories�«Add to bag» button�MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Generator: Poedit 2.2.1 Project-Id-Version: WP Ecwid Language: pt_BR POT-Creation-Date: PO-Revision-Date: Last-Translator: Language-Team: � Muito obrigado por entrar em contato conosco! Entraremos em contato com você em breve.�Carrinho de Compras %s�Carrinho de Compras %s - Configurações avançadas�Carrinho de Compras %s - Configurações de aparência�Loja %s�%s é compatível com o seu tema "%s" WordPress e fora da caixa.�O plugin %s não funciona bem com meu tema "%s"�Configurações de carrinho de compras %s�%s armazena seus dados de produtos em um armazenamento seguro em nuvem. As páginas do produto são exibidas instantaneamente quando um cliente navega em sua loja. Assim, basicamente, os produtos não são armazenados no site, é por isso que a pesquisa no site não encontra páginas de produtos enquanto olha através de páginas e posts do site. Esta opção permite um modo de armazenamento local: os produtos serão armazenados tanto na nuvem como no seu site. Os resultados de pesquisa do site irão listar páginas de produtos, bem como páginas / postagens normais do seu site.�<a %s>Online store powered by %s</a>�<a %s>Reconectar</a>�Adicionar Produto�Adicionar Loja�Adicionar borda�Adicionar ao menu�Adicione sua loja Ecwid a seu site <nobr>em dois cliques</nobr>�Além disso, você pode adicionar controles da loja à barra de ferramentas do seu site usando <a %s> widgets nativos do WordPress</a>�Adiciona um widget de carrinho para que o cliente veja os produtos que adicionaram ao carrinho.�Adiciona um widget de carrinho compacto para que o cliente veja os produtos que adicionaram ao carrinho.�Adiciona um widget de carrinho de compras ao canto superior direito do seu site.�Adiciona a lista de categorias raiz à barra lateral para permitir que seus clientes naveguem pela loja.�Adiciona bloco de categorias verticais para permitir que o cliente navegue em sua loja.�Administração�Avançado�Configurações avançadas�Já possui uma conta em %s?�Já possui uma conta Ecwid?�Aparência�Configurações de aparência�Ajuste automático do design da sua loja para o seu tema WordPress. Seja qual for o tema do WordPress que você usa, o %s detectará cores predominantes e a fonte e usará em seu catálogo de produtos.�Voltar para as configurações da loja�Questões sobre faturamento�Canto inferior direito�Procurar todos os produtos.�Navegar por Categoria�Por padrão, o front da loja mostra uma lista de categorias raiz. Você pode substituir esse comportamento e mostrar uma categoria diferente quando os clientes abrem sua loja pela primeira vez. Isso é útil se você tiver apenas uma categoria ou desejar exibir um conjunto específico de itens (por exemplo, "Produtos em destaque") para novos visitantes.�Classe CSS�ID CSS�Carrinho�Categoria exibida por padrão�Alinhar ao centro em uma página�Opção Camaleão�Selecionar produto�Selecione as propriedades do produto para exibir no widget�Escolher widgets para exibir�Compatível com seu tema�Configuração Completa�Configuração completa e inicie a vender�Parabéns!�Conectar�Conecte sua loja Ecwid a este site <nobr>em dois cliques</ nobr>�Conectar sua loja�Contectar sua loja ao site WordPress�Conecte sua loja a este site�Conecte sua loja <br /> a este site do WordPress�Erro de conexão - depois de clicar no botão você precisa fazer login e aceitar permissões para usar o nosso plugin. Por favor, tente novamente.�Erro de conexão: clique novamente no botão e dê permissões para este plugin <br /> para exibir sua loja %s neste site.�Erro de conexão: clique no botão novamente e dê permissões para este plugin <br /> mostrar sua loja Ecwid neste site.�Entre em contato conosco�Conteúdo�Criar loja Ecwid�Criar Loja %s Grátis�Cria uma conta grátis no Ecwid para gerencia sua loja e inventário.<br />Não é necessário cartão de crédito�Criando a loja�Página atual�Single Sign-On de Cliente�Personalize sua loja�Customizar widget�Dashboard�Modo de exibição padrão nas páginas do produto�Modo de exibição padrão nos resultados de pesquisa�Loja Demo�Loja demo�Desconectar loja�Mostrar categorias acima dos produtos�Mostrar caixa de pesquisa acima dos produtos�Exibe um link para a página da loja na barra lateral para que o cliente acesse rapidamente sua loja a partir de qualquer página no site.�Exibe uma lista de produtos vistos recentemente pelo cliente para retornar facilmente aos produtos que viram na sua loja.�Exibe uma caixa de pesquisa simples para seus clientes encontrarem um produto em sua loja�Você gosta de Ecwid e quer ajudá-lo a crescer? Você pode adicionar este emblema 'Powered by Ecwid' em seu site para mostrar aos seus visitantes que você é um usuário orgulhoso de Ecwid.�Gostou de sua loja %s? Agradeceríamos se você adicionasse seu comentário e votasse em nosso plugin no site do WordPress.�Não possui uma conta em %s? Faça o cadastro agora.�Não possui uma conta Ecwid?�Feito�Download arquivo de log�Por exemplo. Como configurar o envio�Ecwid�Emblema Ecwid�Ecwid Basics�Item de menu Ecwid�Equipe Ecwid�Widgets de e-commerce Ecwid�Solução de e-commerce Ecwid� Carrinho de compras grátis Ecwid�Ecwid possui certificado PCI DSS nível 1, que é o padrão ouro para soluções de e-commerce em todo o mundo. Isso significa que você não terá problemas de conformidade bancária ao vender on-line com esta plataforma. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#secureplugin"> Mais detalhes. </a>�O Ecwid é um carrinho de compras completo e gratuito. Pode ser facilmente integrado com qualquer blog WordPress e leva menos de 5 minutos para configurar.�Ecwid é compatível com o seu tema "%s" WordPress <br>.�O Ecwid fornece aplicativos gratuitos para iOS e Android para gerenciar sua loja e vender em qualquer lugar. Digitalize produtos, acompanhe o estoque, gerencie as vendas e aceite pagamentos usando seu dispositivo móvel como uma estação de Ponto de Venda. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">Mais detalhes.</a>�Carrinho de compras Ecwid�Widget do carrinho de compras Ecwid�Editar Aparência�Editar Loja�Habilitar mini carrinho para as categorias�Habilitar o novo menu de categorias�Informe uma ID CSS opcional para ser usado para este módulo. Um ID pode ser usado para criar estilo CSS personalizado, ou criar links para seções particulares de sua página.�Informe as classes CSS opcionais a serem usadas para este módulo. Uma classe CSS pode ser usada para criar estilo CSS personalizado. Você pode adicionar várias classes, separadas por um espaço.�Informe o ID de sua loja�Recursos�Primeira Página�Fóruns�Grátis e sempre atualizado�Plano gratuito sempre disponível com toneladas de recursos<br> sem custo adicional. As atualizações são integradas, automáticas<br>e gratuitas.�Cadastro gratuito, não é necessário cartão de crédito�Perguntas Frequentes�Baixe o aplicativo %s�Comece, Crie sua Conta Ecwid�Prepare-se para vender online�Alcance Global�Saudações!�Saudações! Seu plugin %s está ativo.�Grid�Visão de grid�Ajuda�Aqui você pode controlar quantos produtos serão exibidos por página. Essas opções definem valores máximos. Se não houver espaço suficiente para mostrar todas as colunas do produto,%s adaptará o número de colunas para armazenar todos os produtos.�Aqui você pode criar o conteúdo que será usado dentro do módulo.�Como posso adicionar um widget de carrinho à barra lateral do meu site?�Como posso gerenciar a minha loja a partir de um dispositivo móvel?�Como podemos ajudá-lo?�Como faço para adicionar categorias de loja para o menu do site.�Como faço para colocar meus produtos no sitemap?�Quanto custa Ecwid?�Quão seguro é esse plugin? A minha loja é compatível com PCI DSS?�Como adicionar um único produto com o botão "Adicionar ao carrinho" para as páginas do site?�Como configurar uma loja no Facebook com Ecwid?�Tenho um problema com minha loja %s�Inserir�Inserir na página�Integração com a pesquisa em seu site <sup>beta</sup>�É possível exibir minha loja na página inicial do site?�Participe da comunidade Ecwid. Discuta tópicos de suporte e ideias para lojas com outros usuários Ecwid.�Última Página�Última atualização�Lista�Visão de lista�Parece que seu site não oferece suporte a solicitações remotas POST que são necessárias para que a API do %s funcione. Entre em contato com o provedor de hospedagem para ativar cURL.�Gerencia a loja no iPhone, iPad ou Android�Gerencie Sua Loja Ecwid�Gerenciar minha loja�Gerenciar produtos, controlar vendas, ajustar configurações - <nobr>Tudo sem </nobr> sair desta página.�Mais de 800.000 comerciantes em 175 países�Minha Conta�Nome�Nunca mostrar esta mensagem novamente�Próxima Página�Próxima página�Não é necessário cartão de crédito�Não sincronizado ainda�Nota: as novas URLs serão ativadas automaticamente para cada loja em uma das próximas atualizações. Por favor, verifique se as novas URLs funcionam em sua loja e <a% s> nos avise </a> se tiver problemas com elas.�Nada encontrado para<span class="empty-page__term">"{{ data.term }}"</span>�Número de categorias por linha�Número de categorias por página�Número de produtos para exibir�Abrir as configurações da loja %s�Abrir painel de controle�Abrir dashboard da loja�Opções�Ou você pode adicionar a caixa de pesquisa à barra de ferramentas do seu site usando <a href="%s">widgets nativos do WordPress </a>�Ou você pode adicionar categorias verticais à barra de ferramentas do seu site usando <a href="%s">widgets nativos do WordPress</a>�Pedidos�Nossos 4 tipos de conta variam de acordo com o número de produtos, tipos de funcionalidade e níveis de suporte. Para obter mais informações, consulte nossa <a target="_blank" href="https://www.ecwid.com/pricing"> página de preços. </a> <br /> <br /> Grátis - Até 10 Produtos <br /> Venture - $ 15 / month <br /> Negócio - $ 35 / month <br /> Ilimitado - $ 99 / month <br /> Pro Dica: Você pode ter vantagens nos valores com nossos planos anuais .�Nossa equipe já está trabalhando nesta questão. Atualize a página em alguns minutos. Se o problema persistir, entre em contato com <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">nossa equipe de suporte ao cliente </a>.�Mais de 1 milhão de comerciantes em 175 países�Certificado PCI DSS�Imagem�Atenção: Observe que esta funcionalidade está em versão beta. Portanto, se enfrentar dificuldades ou encontrar problemas com o Camaleão, <a% s> deixe-nos saber </a>�Observe que esta funcionalidade está em versão beta. Portanto, se você tiver dificuldades ou encontrar problemas com a funcionalidade, <a %s>informe-nos</a>.�Assine um plano pago para obter esse recurso.�O plugin foi instalado com sucesso!�Posição�Preparando o painel de controle da loja�Página Anterior�Preço�Pesquisa de Produto�O catálogo de produtos será exibido automaticamente�Produtos�Os produtos foram sincronizados com êxito. As páginas do produto estão atualizadas.�Produtos sincronizados: %s de %s�Liberar acesso.�Quantidade�Dúvidas?�Avalie %s no WordPress.org�Reconecte-se para habilitar o Painel de Controle�Leia a FAQ�Produtos vistos recentemente�Recomendações para sua loja online�Atualizar lista de categorias�Cadastre-se�Cadastre-se grátis em Ecwid�Reportar um problema com minha loja�Design responsivo�SEO URLs amigáveis limpas�SKU�Vendas�Salvar e conectar�Salvar alterações�Pesquisar�Pesquisar na Base de Conhecimento�Checkout seguro com mais de 40 <br /> opções de pagamento�Veja mais�Selecionar tudo�Venda em todos os lugares<br> com sua loja %s�Venda em todos os lugares<br>com sua loja Ecwid�Enviar mensagem�Envie uma mensagem para nossa equipe de suporte�Falha ao enviar a mensagem�Configurar a Loja %s�Configurações�Instalação�Loja�Carrinho de Compras�Carrinho de compras (flutuante)�Carrinho de compras (mini)�Mostrar categorias�Mostrar mini carrinho�Mostrar preço dentro do botão "Comprar agora"�Mostrar pesquisa�O Single Sign-On permite que seus clientes tenham um login único para seu site WordPress e sua loja %s. Quando alguém fizer logon em seu site, ele será automaticamente conectado à sua conta de cliente em sua loja, sem necessidade de digitar seu e-mail / senha novamente.�Desculpe, estamos tendo dificuldades técnicas.�Desculpe, parece que há um problema. Esta página deve exibir o Painel de Controle da sua loja. No entanto, este site do Wordpress não parece ser capaz de se conectar ao servidor para mostrar o painel aqui. Isso provavelmente é causado por uma configuração incorreta do servidor e pode ser corrigido pelo seu provedor de hospedagem. Aqui está uma descrição mais técnica do problema, que você pode enviar para o seu provedor de hospedagem: "A função wp_remote_post () do Wordpress não conseguiu conectar um servidor remoto por causa de algum erro:"% s ". Parece que as solicitações HTTP POST estão desativadas neste servidor ". <br /> <br /> Sinta-se à vontade para entrar em contato conosco em <a% s> wordpress@ecwid.com </a> e nós ajudaremos a fazer contato com sua hospedagem e pedir-lhes para corrigir o problema. <br /> <br /> Enquanto isso, para gerenciar sua loja, você pode usar o Web Control Panel em <a% s> my.ecwid.com </a>. A página inicial da loja está funcional e você pode verificá-la aqui: <a% s>% s </a>.�Comece a vender�Comece a vender <br>no seu site WordPress <nobr>gratuitamente</nobr>�Comece a vender no seu site WordPress. Em seguida, replique sua loja em sua página do Facebook, blog e mercados como Google Shopping, Yahoo e Shopping.com.�Ainda tem dúvidas sobre o Ecwid? Nos informe!�Loja�Categorias da Loja�ID da loja�O ID da loja é um identificador exclusivo de sua conta %1$s. Você pode encontrá-lo no painel de controle de %1$s: abra a página <a %2$s> Dashboard </a> e localize o texto "<b> ID da loja: NNNNNNN </ b>", em que <b> NNNNNNN </ b> é o ID de sua loja.�Título do Link da Loja�Página da loja�Link da página da loja�Categorias raiz da loja�Elementos da loja�Loja está criada�Categoria raíz da loja�Loja com Menu de Categorias�Assunto�Sincronizar produtos�Tabela�Visão de tabela�Execute algumas etapas simples para concluir a configuração da loja�Referência técnica�Texto�Obrigado por ter escolhido %s para construir sua loja online. O primeiro passo para vender online com sucesso é configurar a sua loja! Vamos começar e adicionar uma loja para o seu site em algumas etapas simples.�O novo menu de categorias parece melhor e é mais responsivo. Se ainda não tiver adicionado o menu de categoria à sua página da loja, pode fazê-lo no <a% s> editor de páginas da loja </a> (active a opção "Mostrar categorias")�As categorias de nível superior da loja são automaticamente adicionadas a este menu suspenso�Você está próximo de começar a vender <br /> no seu site WordPress�Faltam apenas alguns passos para começar a vender <br /> no seu site WordPress�Isso possibilita o novo formato de URLs limpas em sua loja. As novas URLs não contêm sinal de hash ('#'), então ficam mais bonitas e são melhor indexadas pelo Google.�Isto alterará o rótulo do módulo no construtor para fácil identificação.�Título�Título ou SKU�Título:�Para adicionar funções extras à sua loja, arraste e solte elementos da loja% s no seu site. Quando terminar, pode voltar a modificar as suas definições.�Para permitir que %s inicie sessão automática de seus clientes em sua loja, forneça-lhe permissão para utilizar os dados de cliente em sua loja. <a %s>Utilize este link</a>�Para escolher um produto que deseja inserir em suas postagens e páginas, você precisará reconectar seu site à sua loja %s. Isso somente irá requerer que você aceite o pedido de permissões - liberando o plugin para listar seus produtos na caixa de diálogo "Adicionar produto".�Para criar sitemap para seu site Wordpress, sugerimos usar <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/"> Google Sitemaps XML </a> ou <a target = "_blank" href = "https://wordpress.org/plugins/wordpress-seo/"> Yoast Wordpress SEO </a>. & Nbsp; plugins. Estes plugins são totalmente compatíveis com o Ecwid e permitem gerar um sitemap que terá links para categorias e páginas de produtos, para que as páginas da loja sejam indexadas mais rapidamente. Saiba que esta opção está disponível para <a target="_blank" href="https://www.ecwid.com/pricing"> usuários pagos do Ecwid </a>�Para ativar URLs amigáveis em sua loja, você precisará habilitar permalinks amigáveis em suas configurações de site do WordPress. Navegue até <a %s> Configurações-> Link permanente </a> e ative o tipo de permalink "Post name".�Para ativar esse recurso, o plugin precisa de uma permissão para ler as informações do produto da loja.�Para apresentar um único produto em uma página separada ou postagem no blog do seu site, use <short code> <b> [ecwid_product] </ b>. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#Howtoembedasingleproductonapageorpostofmysite"> Como usá-lo. </a>�Para se certificar de que o seu cliente pode realmente efetuar login em seu site e em sua loja, ative o cadastro nas <a %s>configurações do site</a>�Para vender usando %1$s, você deve permitir que o WordPress acesse o plugin %1$s. O botão Conectar irá direcioná-lo para sua conta %1$s onde você pode fornecer a permissão.�Canto superior direito�Tentar outra pesquisa.�Digite sua mensagem aqui�Atualizar�Os widgets% s atualizados estão disponíveis para sua loja% s. Eles são mais amigáveis e mais atraentes. Ative-os na página de configurações do plug-in e veja como eles funcionam em sua loja. Os novos widgets serão ativados automaticamente para todos os usuários em uma das próximas versões de plug-in.�Faça upgrade para obter esse recurso�Use a opção mobile-POS da %s para passar os cartões de crédito e vender em qualquer lugar. Suas encomendas e estoque estão sempre sincronizados com sua loja on-line.�Use o Mobile-POS da Ecwid para aceitar cartões de crédito e vender em qualquer lugar. Suas encomendas e estoques estão sempre sincronizados com sua loja on-line.�Visitar a loja�Deseja conectar à outra loja %s?�Estamos sincronizando seus produtos. Isso pode levar alguns minutos. Não recarregue a página.�Bem-vindo a %s!�Onde encontrar o ID de sua loja:�Você pode adicionar a caixa de pesquisa do produto, o widget do carrinho e muito mais na página <a href="%s"> "Aparência / Widgets" </a> neste administrador do site. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#Sidebar%%20widgets"> Mais detalhes. </a>�Você pode adicionar o menu de categorias de sua loja ao menu do seu site para ajudar seus clientes a navegar facilmente no seu site. Basta abrir "Aparência > Menus" no painel de controle do WordPress e adicione o item "Loja com menu de categorias" no menu do seu site. Um menu suspenso que contém suas categorias de loja aparecerá automaticamente em seu site.�Você pode adicionar sua loja on-line à sua página de negócios do Facebook. Nenhum addon é necessário. Ecwid sincronizará automaticamente produtos, clientes, encomendas e estoques entre as suas lojas do WordPress e do Facebook. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#How%20to%20add%20my%20store%20to%20Facebook"> Mais detalhes. </a>�Você pode exibir sua loja na página principal do site. Ajuste as configurações de "Leitura" do seu site, conforme descrito em <a target = "_ blank" href = "https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage" > Central de Ajuda. </a>�Você pode enviar um novo pedido aqui.�Você ainda não viu nenhum produto. Abra a loja.�Você deve desativar esta opção, se adicionou mini carrinho à barra lateral de seu site�Você será solicitado a efetuar login no seu Painel de Controle de %s <br /> e dar permissões para exibir sua loja neste site�Será solicitado o seu login no seu Painel de Controle Ecwid <br /> para liberar as permissões e para que sua loja seja exposta neste site�Sua loja %s está conectada <br /> a seu site WordPress�Sua loja %s agora está conectada <br /> a seu site WordPress�Seu e-mail foi enviado com sucesso�Painel de controle da sua loja. Aqui no WordPress.�Sua loja está quase pronta!�Sua loja parece perfeita <br /> em todos os dispositivos�Sua loja será exibida aqui!�Sua loja está pronta�Customizar aparência�http://www.ecwid.com?source=wporg�https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-�https://support.ecwid.com/hc/en-us/requests/new�https://support.ecwid.com/hc/en-us/search�https://support.ecwid.com/hc/en-us/sections/201702859-Technical-Reference�https://support.ecwid.com/hc/en-us/sections/201706719-Ecwid-Basics�https://support.ecwid.com/hc/en-us/sections/201706799-Billing-Questions�https://support.ecwid.com/hc/en-us/sections/201758445-Customize-Your-Store�https://support.ecwid.com/hc/en-us/sections/201758475-Manage-Your-Ecwid-Store�https://www.ecwid.com/forums�selecionar produto�Categorias�Botão «Adicionar ao carrinho»����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/languages/ecwid-shopping-cart-pt_BR.po������������������������������������������0000644�����������������00000170252�15122273603�0017604 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������msgid "" msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: POEditor.com\n" "Project-Id-Version: WP Ecwid\n" "Language: pt-br\n" #: ecwid-shopping-cart.php:748 msgid "%s plugin doesn't work well with my \"%s\" theme" msgstr "O plugin %s não funciona bem com meu tema \"%s\"" #: ecwid-shopping-cart.php:763 msgid "I have a problem with my %s store" msgstr "Tenho um problema com minha loja %s" #: ecwid-shopping-cart.php:791 templates/dashboard.php:44 msgid "Visit storefront" msgstr "Visitar a loja" #: ecwid-shopping-cart.php:799 msgid "Manage my store" msgstr "Gerenciar minha loja" #: ecwid-shopping-cart.php:807 msgid "Read FAQ" msgstr "Leia a FAQ" #: ecwid-shopping-cart.php:809 msgid "https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-" msgstr "https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-" #: ecwid-shopping-cart.php:818 msgid "Report a problem with the store" msgstr "Reportar um problema com minha loja" #: ecwid-shopping-cart.php:1119 msgid "<a %s>Online store powered by %s</a>" msgstr "<a %s>Online store powered by %s</a>" #: ecwid-shopping-cart.php:1440 includes/class-ecwid-nav-menus.php:111 #: includes/class-ecwid-nav-menus.php:297 #: includes/class-ecwid-nav-menus.php:300 #: includes/class-ecwid-nav-menus.php:308 msgid "Store" msgstr "Loja" #: ecwid-shopping-cart.php:1684 includes/class-ecwid-admin.php:31 msgid "Setup" msgstr "Instalação" #: ecwid-shopping-cart.php:1684 msgid "Settings" msgstr "Configurações" #: ecwid-shopping-cart.php:1760 includes/class-ecwid-admin.php:33 msgid "Dashboard" msgstr "Dashboard" #: ecwid-shopping-cart.php:1762 includes/class-ecwid-admin.php:58 #: includes/class-ecwid-admin.php:59 includes/class-ecwid-products.php:234 msgid "Products" msgstr "Produtos" #: ecwid-shopping-cart.php:1764 msgid "Orders" msgstr "Pedidos" #: ecwid-shopping-cart.php:1766 includes/class-ecwid-nav-menus.php:144 msgid "Refresh categories list" msgstr "Atualizar lista de categorias" #: ecwid-shopping-cart.php:1767 includes/class-ecwid-nav-menus.php:145 msgid "Done" msgstr "Feito" #: ecwid-shopping-cart.php:1768 includes/class-ecwid-nav-menus.php:146 msgid "The store top-level categories are automatically added to this drop-down menu" msgstr "As categorias de nível superior da loja são automaticamente adicionadas a este menu suspenso" #: ecwid-shopping-cart.php:1877 includes/class-ecwid-oauth.php:335 msgid "To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s store. This will only require you to accept permissions request – so that the plugin will be able to list your products in the \"Add product\" dialog." msgstr "Para escolher um produto que deseja inserir em suas postagens e páginas, você precisará reconectar seu site à sua loja %s. Isso somente irá requerer que você aceite o pedido de permissões - liberando o plugin para listar seus produtos na caixa de diálogo \"Adicionar produto\"." #: ecwid-shopping-cart.php:2383 msgid "Recommendations for Your Online Store" msgstr "Recomendações para sua loja online" #: includes/class-ecwid-admin.php:21 msgid "%s shopping cart settings" msgstr "Configurações de carrinho de compras %s" #: includes/class-ecwid-admin.php:22 msgid "%s Store" msgstr "Loja %s" #: includes/class-ecwid-admin.php:48 includes/class-ecwid-admin.php:49 msgid "Sales" msgstr "Vendas" #: includes/class-ecwid-admin.php:68 msgid "Appearance settings" msgstr "Configurações de aparência" #: includes/class-ecwid-admin.php:69 templates/product-popup.php:183 #: templates/store-popup.php:13 templates/store-popup.php:31 msgid "Appearance" msgstr "Aparência" #: includes/class-ecwid-admin.php:79 msgid "Advanced settings" msgstr "Configurações avançadas" #: includes/class-ecwid-admin.php:80 msgid "Advanced" msgstr "Avançado" #: includes/class-ecwid-admin.php:93 includes/class-ecwid-admin.php:94 msgid "Help" msgstr "Ajuda" #: includes/class-ecwid-integration-divibuilder.php:25 msgid "Ecwid" msgstr "Ecwid" #: includes/class-ecwid-integration-divibuilder.php:41 msgid "Content" msgstr "Conteúdo" #: includes/class-ecwid-integration-divibuilder.php:44 msgid "Here you can create the content that will be used within the module." msgstr "Aqui você pode criar o conteúdo que será usado dentro do módulo." #: includes/class-ecwid-integration-divibuilder.php:49 msgid "Admin Label" msgstr "Administração" #: includes/class-ecwid-integration-divibuilder.php:51 msgid "This will change the label of the module in the builder for easy identification." msgstr "Isto alterará o rótulo do módulo no construtor para fácil identificação." #: includes/class-ecwid-integration-divibuilder.php:54 msgid "CSS ID" msgstr "ID CSS" #: includes/class-ecwid-integration-divibuilder.php:57 msgid "Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page." msgstr "Informe uma ID CSS opcional para ser usado para este módulo. Um ID pode ser usado para criar estilo CSS personalizado, ou criar links para seções particulares de sua página." #: includes/class-ecwid-integration-divibuilder.php:60 msgid "CSS Class" msgstr "Classe CSS" #: includes/class-ecwid-integration-divibuilder.php:63 msgid "Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space." msgstr "Informe as classes CSS opcionais a serem usadas para este módulo. Uma classe CSS pode ser usada para criar estilo CSS personalizado. Você pode adicionar várias classes, separadas por um espaço." #: includes/class-ecwid-message-manager.php:45 msgid "Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: \"The Wordpress function wp_remote_post() failed to connect a remote server because of some error: \"%s\". Seems like HTTP POST requests are disabled on this server\". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>." msgstr "Desculpe, parece que há um problema. Esta página deve exibir o Painel de Controle da sua loja. No entanto, este site do Wordpress não parece ser capaz de se conectar ao servidor para mostrar o painel aqui. Isso provavelmente é causado por uma configuração incorreta do servidor e pode ser corrigido pelo seu provedor de hospedagem. Aqui está uma descrição mais técnica do problema, que você pode enviar para o seu provedor de hospedagem: \"A função wp_remote_post () do Wordpress não conseguiu conectar um servidor remoto por causa de algum erro:\"% s \". Parece que as solicitações HTTP POST estão desativadas neste servidor \". <br /> <br /> Sinta-se à vontade para entrar em contato conosco em <a% s> wordpress@ecwid.com </a> e nós ajudaremos a fazer contato com sua hospedagem e pedir-lhes para corrigir o problema. <br /> <br /> Enquanto isso, para gerenciar sua loja, você pode usar o Web Control Panel em <a% s> my.ecwid.com </a>. A página inicial da loja está funcional e você pode verificá-la aqui: <a% s>% s </a>." #: includes/class-ecwid-message-manager.php:59 msgid "Updated %s widgets are available for your %s store. They are more mobile friendly and look better. Please enable them on the plugin settings page and check how they work in your store. The new widgets will be enabled automatically for all users in one of the upcoming plugin versions." msgstr "Os widgets% s atualizados estão disponíveis para sua loja% s. Eles são mais amigáveis e mais atraentes. Ative-os na página de configurações do plug-in e veja como eles funcionam em sua loja. Os novos widgets serão ativados automaticamente para todos os usuários em uma das próximas versões de plug-in." #: includes/class-ecwid-message-manager.php:61 msgctxt "upgrade widgets message" msgid "Categories" msgstr "Categorias" #: includes/class-ecwid-message-manager.php:203 msgid "Greetings! Your %s plugin is now active." msgstr "Saudações! Seu plugin %s está ativo." #: includes/class-ecwid-message-manager.php:204 msgid "Take a few simple steps to complete store setup" msgstr "Execute algumas etapas simples para concluir a configuração da loja" #: includes/class-ecwid-message-manager.php:205 msgid "Set up %s Store" msgstr "Configurar a Loja %s" #: includes/class-ecwid-message-manager.php:213 msgid "Your store is almost ready!" msgstr "Sua loja está quase pronta!" #: includes/class-ecwid-message-manager.php:214 msgid "Complete setup and start selling" msgstr "Configuração completa e inicie a vender" #: includes/class-ecwid-message-manager.php:215 msgid "Complete Setup" msgstr "Configuração Completa" #: includes/class-ecwid-message-manager.php:221 msgid "To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings." msgstr "Para adicionar funções extras à sua loja, arraste e solte elementos da loja% s no seu site. Quando terminar, pode voltar a modificar as suas definições." #: includes/class-ecwid-message-manager.php:222 msgid "Back to Store Settings" msgstr "Voltar para as configurações da loja" #: includes/class-ecwid-message-manager.php:229 msgid "Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site." msgstr "Gostou de sua loja %s? Agradeceríamos se você adicionasse seu comentário e votasse em nosso plugin no site do WordPress." #: includes/class-ecwid-message-manager.php:233 msgid "Rate %s at WordPress.org" msgstr "Avalie %s no WordPress.org" #: includes/class-ecwid-message-manager.php:248 msgid "Open %s store settings" msgstr "Abrir as configurações da loja %s" #: includes/class-ecwid-nav-menus.php:25 msgid "Ecwid Menu Item" msgstr "Item de menu Ecwid" #: includes/class-ecwid-nav-menus.php:143 msgid "Store Page" msgstr "Página da loja" #: includes/class-ecwid-nav-menus.php:254 msgid "Select All" msgstr "Selecionar tudo" #: includes/class-ecwid-nav-menus.php:257 msgid "Add to Menu" msgstr "Adicionar ao menu" #: includes/class-ecwid-nav-menus.php:273 msgid "Cart" msgstr "Carrinho" #: includes/class-ecwid-nav-menus.php:276 #: includes/widgets/class-ecwid-widget-minicart.php:6 msgid "Shopping Cart" msgstr "Carrinho de Compras" #: includes/class-ecwid-nav-menus.php:281 #: includes/class-ecwid-nav-menus.php:284 #: includes/widgets/class-ecwid-widget-search.php:10 msgid "Product Search" msgstr "Pesquisa de Produto" #: includes/class-ecwid-nav-menus.php:289 #: includes/class-ecwid-nav-menus.php:292 msgid "My Account" msgstr "Minha Conta" #: includes/class-ecwid-nav-menus.php:305 msgid "Store with Categories Menu" msgstr "Loja com Menu de Categorias" #: includes/class-ecwid-product-popup.php:91 msgid "Add Product" msgstr "Adicionar Produto" #: includes/class-ecwid-product-popup.php:117 msgid "First Page" msgstr "Primeira Página" #: includes/class-ecwid-product-popup.php:118 msgid "Previous Page" msgstr "Página Anterior" #: includes/class-ecwid-product-popup.php:119 msgid "Next Page" msgstr "Próxima Página" #: includes/class-ecwid-product-popup.php:120 msgid "Last Page" msgstr "Última Página" #: includes/class-ecwid-store-editor.php:44 templates/store-popup.php:11 #: templates/store-popup.php:19 msgid "Add Store" msgstr "Adicionar Loja" #: includes/class-ecwid-store-editor.php:52 msgid "Edit Store" msgstr "Editar Loja" #: includes/class-ecwid-store-editor.php:67 msgid "Edit Appearance" msgstr "Editar Aparência" #: includes/faq_entries.php:5 msgid "How secure is this plugin? Is my store PCI DSS compliant?" msgstr "Quão seguro é esse plugin? A minha loja é compatível com PCI DSS?" #: includes/faq_entries.php:6 msgid "Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won’t have any banking compliance issues when selling online with Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#secureplugin\">More details.</a>" msgstr "Ecwid possui certificado PCI DSS nível 1, que é o padrão ouro para soluções de e-commerce em todo o mundo. Isso significa que você não terá problemas de conformidade bancária ao vender on-line com esta plataforma. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#secureplugin\"> Mais detalhes. </a>" #: includes/faq_entries.php:12 msgid "How can I manage my store from a mobile device?" msgstr "Como posso gerenciar a minha loja a partir de um dispositivo móvel?" #: includes/faq_entries.php:13 msgid "Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">More details.</a>" msgstr "O Ecwid fornece aplicativos gratuitos para iOS e Android para gerenciar sua loja e vender em qualquer lugar. Digitalize produtos, acompanhe o estoque, gerencie as vendas e aceite pagamentos usando seu dispositivo móvel como uma estação de Ponto de Venda. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">Mais detalhes.</a>" #: includes/faq_entries.php:20 msgid "How to set up a storefront on Facebook with Ecwid?" msgstr "Como configurar uma loja no Facebook com Ecwid?" #: includes/faq_entries.php:21 msgid "You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#How%20to%20add%20my%20store%20to%20Facebook\">More details.</a>" msgstr "Você pode adicionar sua loja on-line à sua página de negócios do Facebook. Nenhum addon é necessário. Ecwid sincronizará automaticamente produtos, clientes, encomendas e estoques entre as suas lojas do WordPress e do Facebook. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#How%20to%20add%20my%20store%20to%20Facebook\"> Mais detalhes. </a>" #: includes/faq_entries.php:28 msgid "How can I add a cart widget to my site sidebar?" msgstr "Como posso adicionar um widget de carrinho à barra lateral do meu site?" #: includes/faq_entries.php:30 msgid "You can add product search box, cart widget and more on the <a href=\"%s\">\"Appearance / Widgets page\"</a> here in your site admin. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#Sidebar%%20widgets\">More details.</a>" msgstr "Você pode adicionar a caixa de pesquisa do produto, o widget do carrinho e muito mais na página <a href=\"%s\"> \"Aparência / Widgets\" </a> neste administrador do site. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#Sidebar%%20widgets\"> Mais detalhes. </a>" #: includes/faq_entries.php:38 msgid "How much does Ecwid cost?" msgstr "Quanto custa Ecwid?" #: includes/faq_entries.php:39 msgid "Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">pricing page.</a><br /><br />Free - Up to 10 products<br />Venture - $15/month<br />Business - $35/month<br />Unlimited - $99/month<br /><br />Pro Tip: You can also save money by enrolling in our annual plans." msgstr "Nossos 4 tipos de conta variam de acordo com o número de produtos, tipos de funcionalidade e níveis de suporte. Para obter mais informações, consulte nossa <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\"> página de preços. </a> <br /> <br /> Grátis - Até 10 Produtos <br /> Venture - $ 15 / month <br /> Negócio - $ 35 / month <br /> Ilimitado - $ 99 / month <br /> Pro Dica: Você pode ter vantagens nos valores com nossos planos anuais ." #: includes/faq_entries.php:45 msgid "How do I add store categories to the site menu." msgstr "Como faço para adicionar categorias de loja para o menu do site." #: includes/faq_entries.php:46 msgid "You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open \"Appearance > Menus\" in your WordPress control panel and add the \"Store with Categories Menu\" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site." msgstr "Você pode adicionar o menu de categorias de sua loja ao menu do seu site para ajudar seus clientes a navegar facilmente no seu site. Basta abrir \"Aparência > Menus\" no painel de controle do WordPress e adicione o item \"Loja com menu de categorias\" no menu do seu site. Um menu suspenso que contém suas categorias de loja aparecerá automaticamente em seu site." #: includes/faq_entries.php:52 msgid "How do I put my products in the sitemap?" msgstr "Como faço para colocar meus produtos no sitemap?" #: includes/faq_entries.php:53 msgid "To create sitemap for your Wordpress site we suggest using <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> or <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">paid Ecwid users</a>." msgstr "Para criar sitemap para seu site Wordpress, sugerimos usar <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\"> Google Sitemaps XML </a> ou <a target = \"_blank\" href = \"https://wordpress.org/plugins/wordpress-seo/\"> Yoast Wordpress SEO </a>. & Nbsp; plugins. Estes plugins são totalmente compatíveis com o Ecwid e permitem gerar um sitemap que terá links para categorias e páginas de produtos, para que as páginas da loja sejam indexadas mais rapidamente. Saiba que esta opção está disponível para <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\"> usuários pagos do Ecwid </a>" #: includes/faq_entries.php:58 msgid "How to add a single product with the add to bag button to the site pages?" msgstr "Como adicionar um único produto com o botão \"Adicionar ao carrinho\" para as páginas do site?" #: includes/faq_entries.php:59 msgid "To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#Howtoembedasingleproductonapageorpostofmysite\">How to use it.</a>" msgstr "Para apresentar um único produto em uma página separada ou postagem no blog do seu site, use <short code> <b> [ecwid_product] </ b>. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#Howtoembedasingleproductonapageorpostofmysite\"> Como usá-lo. </a>" #: includes/faq_entries.php:65 msgid "Is it possible to display my store on the site home page?" msgstr "É possível exibir minha loja na página inicial do site?" #: includes/faq_entries.php:66 msgid "You can display your store on the site main page. Adjust the \"Reading\" settings of your site as described in our <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">Help Center.</a>" msgstr "Você pode exibir sua loja na página principal do site. Ajuste as configurações de \"Leitura\" do seu site, conforme descrito em <a target = \"_ blank\" href = \"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\" > Central de Ajuda. </a>" #: includes/oembed.php:68 includes/oembed.php:97 templates/help.php:96 msgid "See more" msgstr "Veja mais" #: includes/themes/class-ecwid-theme-twentyfifteen.php:32 #: includes/themes/class-ecwid-theme-twentyfifteen.php:38 #: includes/themes/class-ecwid-theme-twentyseventeen.php:47 #: includes/themes/class-ecwid-theme-twentyseventeen.php:53 #: includes/themes/class-ecwid-theme-twentysixteen.php:35 #: includes/themes/class-ecwid-theme-twentysixteen.php:41 #: includes/widgets/class-ecwid-widget-store-link.php:29 msgid "Shop" msgstr "Loja" #: includes/widgets/class-ecwid-widget-badge.php:9 msgid "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid." msgstr "Você gosta de Ecwid e quer ajudá-lo a crescer? Você pode adicionar este emblema 'Powered by Ecwid' em seu site para mostrar aos seus visitantes que você é um usuário orgulhoso de Ecwid." #: includes/widgets/class-ecwid-widget-badge.php:10 msgid "Ecwid Badge" msgstr "Emblema Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:17 #: includes/widgets/class-ecwid-widget-badge.php:23 msgid "Ecwid shopping cart widget" msgstr "Widget do carrinho de compras Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:29 #: includes/widgets/class-ecwid-widget-badge.php:65 msgid "Ecwid ecommerce solution" msgstr "Solução de e-commerce Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:35 #: includes/widgets/class-ecwid-widget-badge.php:71 msgid "Ecwid free shopping cart" msgstr " Carrinho de compras grátis Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:41 #: includes/widgets/class-ecwid-widget-badge.php:53 msgid "Ecwid shopping cart" msgstr "Carrinho de compras Ecwid" #: includes/widgets/class-ecwid-widget-badge.php:47 #: includes/widgets/class-ecwid-widget-badge.php:59 msgid "Ecwid e-commerce widgets" msgstr "Widgets de e-commerce Ecwid" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:15 msgid "Adds a shopping cart widget to the top right corner of your site." msgstr "Adiciona um widget de carrinho de compras ao canto superior direito do seu site." #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:16 msgid "Shopping Cart (Floating)" msgstr "Carrinho de compras (flutuante)" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:110 msgid "Position" msgstr "Posição" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:113 msgid "Bottom right" msgstr "Canto inferior direito" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:118 msgid "Top right" msgstr "Canto superior direito" #: includes/widgets/class-ecwid-widget-minicart-miniview.php:5 msgid "Adds a compact cart widget for customer to see the products they added to the cart." msgstr "Adiciona um widget de carrinho compacto para que o cliente veja os produtos que adicionaram ao carrinho." #: includes/widgets/class-ecwid-widget-minicart-miniview.php:6 msgid "Shopping Cart (Mini)" msgstr "Carrinho de compras (mini)" #: includes/widgets/class-ecwid-widget-minicart-miniview.php:44 #: includes/widgets/class-ecwid-widget-minicart.php:44 #: includes/widgets/class-ecwid-widget-search.php:49 #: includes/widgets/class-ecwid-widget-vcategories.php:43 #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:71 msgid "Title:" msgstr "Título:" #: includes/widgets/class-ecwid-widget-minicart.php:5 msgid "Adds a cart widget for customer to see the products they added to the cart." msgstr "Adiciona um widget de carrinho para que o cliente veja os produtos que adicionaram ao carrinho." #: includes/widgets/class-ecwid-widget-recently-viewed.php:9 msgid "Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop." msgstr "Exibe uma lista de produtos vistos recentemente pelo cliente para retornar facilmente aos produtos que viram na sua loja." #: includes/widgets/class-ecwid-widget-recently-viewed.php:10 #: includes/widgets/class-ecwid-widget-recently-viewed.php:153 msgid "Recently Viewed Products" msgstr "Produtos vistos recentemente" #: includes/widgets/class-ecwid-widget-recently-viewed.php:124 #: includes/widgets/class-ecwid-widget-recently-viewed.php:154 msgid "You have not viewed any product yet. Open store." msgstr "Você ainda não viu nenhum produto. Abra a loja." #: includes/widgets/class-ecwid-widget-recently-viewed.php:164 #: templates/product-popup.php:160 msgid "Title" msgstr "Título" #: includes/widgets/class-ecwid-widget-recently-viewed.php:165 msgid "Store Link Title" msgstr "Título do Link da Loja" #: includes/widgets/class-ecwid-widget-recently-viewed.php:166 msgid "Number of products to show" msgstr "Número de produtos para exibir" #: includes/widgets/class-ecwid-widget-search.php:9 msgid "Displays a simple search box for your customers to find a product in your store" msgstr "Exibe uma caixa de pesquisa simples para seus clientes encontrarem um produto em sua loja" #: includes/widgets/class-ecwid-widget-store-link.php:5 msgid "Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site." msgstr "Exibe um link para a página da loja na barra lateral para que o cliente acesse rapidamente sua loja a partir de qualquer página no site." #: includes/widgets/class-ecwid-widget-store-link.php:6 msgid "Store Page Link" msgstr "Link da página da loja" #: includes/widgets/class-ecwid-widget-store-link.php:33 msgid "Text" msgstr "Texto" #: includes/widgets/class-ecwid-widget-vcategories.php:5 msgid "Adds vertical categories block to let the customer navigate your store." msgstr "Adiciona bloco de categorias verticais para permitir que o cliente navegue em sua loja." #: includes/widgets/class-ecwid-widget-vcategories.php:6 msgid "Store Categories" msgstr "Categorias da Loja" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:11 msgid "Adds root categories list to the sidebar to let your customers navigate the store." msgstr "Adiciona a lista de categorias raiz à barra lateral para permitir que seus clientes naveguem pela loja." #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:12 msgid "Store Root Categories" msgstr "Categorias raiz da loja" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:22 #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:68 msgid "Browse by Category" msgstr "Navegar por Categoria" #: lib/ecwid_platform.php:56 templates/product-popup.php:171 msgid "Price" msgstr "Preço" #: templates/admin-footer.php:4 msgid "Manage Store on iPhone, iPad or Android" msgstr "Gerencia a loja no iPhone, iPad ou Android" #: templates/admin-footer.php:7 msgid "Get %s mobile app" msgstr "Baixe o aplicativo %s" #: templates/admin-footer.php:13 msgid "Questions?" msgstr "Dúvidas?" #: templates/admin-footer.php:21 msgid "Want to connect another %s store?" msgstr "Deseja conectar à outra loja %s?" #: templates/admin-footer.php:23 msgid "<a %s>Reconnect</a>" msgstr "<a %s>Reconectar</a>" #: templates/admin-message.php:45 msgid "Never show this message again" msgstr "Nunca mostrar esta mensagem novamente" #: templates/admin-timeout.php:9 msgid "Sorry we're having technical difficulties." msgstr "Desculpe, estamos tendo dificuldades técnicas." #: templates/admin-timeout.php:11 msgid "Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">our customer support team</a>." msgstr "Nossa equipe já está trabalhando nesta questão. Atualize a página em alguns minutos. Se o problema persistir, entre em contato com <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">nossa equipe de suporte ao cliente </a>." #: templates/advanced-settings.php:1 msgid "%s Shopping Cart — Advanced settings" msgstr "Carrinho de Compras %s - Configurações avançadas" #: templates/advanced-settings.php:27 msgid "SEO friendly clean URLs" msgstr "SEO URLs amigáveis limpas" #: templates/advanced-settings.php:32 msgid "This enables new clean URLs format in your store. The new urls do not contain hash sign ('#'), so they look nicer and are better indexed by Google." msgstr "Isso possibilita o novo formato de URLs limpas em sua loja. As novas URLs não contêm sinal de hash ('#'), então ficam mais bonitas e são melhor indexadas pelo Google." #: templates/advanced-settings.php:36 msgid "To enable clean URLs in your store, you will need to enable pretty permalinks in your WordPress site settings. Navigate to <a%s>Settings->Permalink</a> and enable the \"Post name\" permalink type." msgstr "Para ativar URLs amigáveis em sua loja, você precisará habilitar permalinks amigáveis em suas configurações de site do WordPress. Navegue até <a %s> Configurações-> Link permanente </a> e ative o tipo de permalink \"Post name\"." #: templates/advanced-settings.php:42 msgid "Note: the new URLs will be automatically enabled for every store in one of upcoming updates so please make sure to check how the new URLs work in your store and <a %s>let us know</a> if you face any trouble with them" msgstr "Nota: as novas URLs serão ativadas automaticamente para cada loja em uma das próximas atualizações. Por favor, verifique se as novas URLs funcionam em sua loja e <a% s> nos avise </a> se tiver problemas com elas." #: templates/advanced-settings.php:42 templates/advanced-settings.php:212 msgid "https://support.ecwid.com/hc/en-us/requests/new" msgstr "https://support.ecwid.com/hc/en-us/requests/new" #: templates/advanced-settings.php:51 templates/store-popup.php:154 msgid "Category shown by default" msgstr "Categoria exibida por padrão" #: templates/advanced-settings.php:55 templates/store-popup.php:161 msgid "Store root category" msgstr "Categoria raíz da loja" #: templates/advanced-settings.php:68 msgid "By default, the storefront shows a list of root categories. You can override this behavior and show a different category when customers open your store for the first time. This is useful if you only have one category or want to display a specific set of items (e.g. \"Featured Products\") to new visitors." msgstr "Por padrão, o front da loja mostra uma lista de categorias raiz. Você pode substituir esse comportamento e mostrar uma categoria diferente quando os clientes abrem sua loja pela primeira vez. Isso é útil se você tiver apenas uma categoria ou desejar exibir um conjunto específico de itens (por exemplo, \"Produtos em destaque\") para novos visitantes." #: templates/advanced-settings.php:91 msgid "Customer Single Sign-On" msgstr "Single Sign-On de Cliente" #: templates/advanced-settings.php:96 msgid "Single Sign-On allows your customers to have a single login for your WordPress site and your %s store. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again." msgstr "O Single Sign-On permite que seus clientes tenham um login único para seu site WordPress e sua loja %s. Quando alguém fizer logon em seu site, ele será automaticamente conectado à sua conta de cliente em sua loja, sem necessidade de digitar seu e-mail / senha novamente." #: templates/advanced-settings.php:103 msgid "Upgrade to get this feature" msgstr "Faça upgrade para obter esse recurso" #: templates/advanced-settings.php:106 msgid "Please subscribe to a paid plan to get this feature." msgstr "Assine um plano pago para obter esse recurso." #: templates/advanced-settings.php:112 msgid "To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>" msgstr "Para permitir que %s inicie sessão automática de seus clientes em sua loja, forneça-lhe permissão para utilizar os dados de cliente em sua loja. <a %s>Utilize este link</a>" #: templates/advanced-settings.php:118 msgid "To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>" msgstr "Para se certificar de que o seu cliente pode realmente efetuar login em seu site e em sua loja, ative o cadastro nas <a %s>configurações do site</a>" #: templates/advanced-settings.php:140 msgid "Chameleon skin" msgstr "Opção Camaleão" #: templates/advanced-settings.php:144 msgid "Automatic adjustment of your store design to your WordPress theme. Whatever WordPress theme you use, %s will detect predominant colors and font and use them in your product catalog." msgstr "Ajuste automático do design da sua loja para o seu tema WordPress. Seja qual for o tema do WordPress que você usa, o %s detectará cores predominantes e a fonte e usará em seu catálogo de produtos." #: templates/advanced-settings.php:147 msgid "Please note this functionality is in beta. So if you run into difficulties or find problems with Chameleon, please <a %s>let us know</a>." msgstr "Atenção: Observe que esta funcionalidade está em versão beta. Portanto, se enfrentar dificuldades ou encontrar problemas com o Camaleão, <a% s> deixe-nos saber </a>" #: templates/advanced-settings.php:170 msgid "Enable the new category menu" msgstr "Habilitar o novo menu de categorias" #: templates/advanced-settings.php:175 msgid "The new category menu looks better and is more mobile-friendly. If you haven't yet added category menu to your store page, you can do that in the <a %s>store page editor</a> (enable the \"Show categories\" option)" msgstr "O novo menu de categorias parece melhor e é mais responsivo. Se ainda não tiver adicionado o menu de categoria à sua página da loja, pode fazê-lo no <a% s> editor de páginas da loja </a> (active a opção \"Mostrar categorias\")" #: templates/advanced-settings.php:200 msgid "Integration with search on your site <sup>beta</sup>" msgstr "Integração com a pesquisa em seu site <sup>beta</sup>" #: templates/advanced-settings.php:204 msgid "%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site." msgstr "%s armazena seus dados de produtos em um armazenamento seguro em nuvem. As páginas do produto são exibidas instantaneamente quando um cliente navega em sua loja. Assim, basicamente, os produtos não são armazenados no site, é por isso que a pesquisa no site não encontra páginas de produtos enquanto olha através de páginas e posts do site. Esta opção permite um modo de armazenamento local: os produtos serão armazenados tanto na nuvem como no seu site. Os resultados de pesquisa do site irão listar páginas de produtos, bem como páginas / postagens normais do seu site." #: templates/advanced-settings.php:212 msgid "Please note this functionality is in beta. So if you run into difficulties or find problems with it, please <a %s>let us know</a>." msgstr "Observe que esta funcionalidade está em versão beta. Portanto, se você tiver dificuldades ou encontrar problemas com a funcionalidade, <a %s>informe-nos</a>." #: templates/advanced-settings.php:221 templates/appearance-settings.php:217 msgid "Save changes" msgstr "Salvar alterações" #: templates/appearance-settings.php:1 msgid "%s Shopping Cart — Appearance settings" msgstr "Carrinho de Compras %s - Configurações de aparência" #: templates/appearance-settings.php:27 msgid "Display search box above products" msgstr "Mostrar caixa de pesquisa acima dos produtos" #: templates/appearance-settings.php:31 msgid "Or you can add search box to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>" msgstr "Ou você pode adicionar a caixa de pesquisa à barra de ferramentas do seu site usando <a href=\"%s\">widgets nativos do WordPress </a>" #: templates/appearance-settings.php:51 msgid "Display categories above products" msgstr "Mostrar categorias acima dos produtos" #: templates/appearance-settings.php:55 msgid "Or you can add vertical categories to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>" msgstr "Ou você pode adicionar categorias verticais à barra de ferramentas do seu site usando <a href=\"%s\">widgets nativos do WordPress</a>" #: templates/appearance-settings.php:76 msgid "Enable minicart attached to categories" msgstr "Habilitar mini carrinho para as categorias" #: templates/appearance-settings.php:80 msgid "You should disable this option, if you added minicart to your website's sidebar" msgstr "Você deve desativar esta opção, se adicionou mini carrinho à barra lateral de seu site" #: templates/appearance-settings.php:99 templates/store-popup.php:180 msgid "Number of categories per row" msgstr "Número de categorias por linha" #: templates/appearance-settings.php:110 templates/store-popup.php:84 msgid "Number of products per page" msgstr "Número de categorias por página" #: templates/appearance-settings.php:112 templates/store-popup.php:86 msgid "Grid view" msgstr "Visão de grid" #: templates/appearance-settings.php:139 templates/store-popup.php:113 msgid "List view" msgstr "Visão de lista" #: templates/appearance-settings.php:156 templates/store-popup.php:130 msgid "Table view" msgstr "Visão de tabela" #: templates/appearance-settings.php:171 templates/store-popup.php:145 msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products." msgstr "Aqui você pode controlar quantos produtos serão exibidos por página. Essas opções definem valores máximos. Se não houver espaço suficiente para mostrar todas as colunas do produto,%s adaptará o número de colunas para armazenar todos os produtos." #: templates/appearance-settings.php:178 templates/store-popup.php:193 msgid "Default view mode on product pages" msgstr "Modo de exibição padrão nas páginas do produto" #: templates/appearance-settings.php:183 templates/appearance-settings.php:201 #: templates/store-popup.php:197 templates/store-popup.php:215 msgid "Grid" msgstr "Grid" #: templates/appearance-settings.php:186 templates/appearance-settings.php:204 #: templates/store-popup.php:200 templates/store-popup.php:218 msgid "List" msgstr "Lista" #: templates/appearance-settings.php:189 templates/appearance-settings.php:207 #: templates/store-popup.php:203 templates/store-popup.php:221 msgid "Table" msgstr "Tabela" #: templates/appearance-settings.php:196 templates/store-popup.php:210 msgid "Default view mode on search results" msgstr "Modo de exibição padrão nos resultados de pesquisa" #: templates/connect.php:5 templates/dashboard.php:6 #: templates/reconnect-sso.php:5 templates/reconnect.php:5 msgid "%s Shopping Cart" msgstr "Carrinho de Compras %s" #: templates/connect.php:13 templates/reconnect.php:13 msgid "Connect your store<br /> to this WordPress site" msgstr "Conecte sua loja <br /> a este site do WordPress" #: templates/connect.php:17 msgid "Enter your Store ID" msgstr "Informe o ID de sua loja" #: templates/connect.php:20 templates/landing_old.php:27 #: templates/reconnect.php:23 msgid "Connect" msgstr "Conectar" #: templates/connect.php:21 msgid "Save and connect" msgstr "Salvar e conectar" #: templates/connect.php:27 templates/reconnect.php:46 msgid "To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission." msgstr "Para vender usando %1$s, você deve permitir que o WordPress acesse o plugin %1$s. O botão Conectar irá direcioná-lo para sua conta %1$s onde você pode fornecer a permissão." #: templates/connect.php:32 msgid "Where to find your Store ID:" msgstr "Onde encontrar o ID de sua loja:" #: templates/connect.php:34 msgid "Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel: open the <a %2$s>Dashboard page</a> and find the \"<b>Store ID: NNNNNNN</b>\" text, where <b>NNNNNNN</b> is your Store ID." msgstr "O ID da loja é um identificador exclusivo de sua conta %1$s. Você pode encontrá-lo no painel de controle de %1$s: abra a página <a %2$s> Dashboard </a> e localize o texto \"<b> ID da loja: NNNNNNN </ b>\", em que <b> NNNNNNN </ b> é o ID de sua loja." #: templates/connect.php:39 msgid "Don't have an %s account? Create one now." msgstr "Não possui uma conta em %s? Faça o cadastro agora." #: templates/dashboard.php:10 templates/store-popup.php:231 #: templates/store-svg.php:15 msgid "Store ID" msgstr "ID da loja" #: templates/dashboard.php:14 msgid "Disconnect store" msgstr "Desconectar loja" #: templates/dashboard.php:27 msgid "Congratulations!" msgstr "Parabéns!" #: templates/dashboard.php:30 msgid "Your %s store is now connected<br /> to your WordPress website" msgstr "Sua loja %s agora está conectada <br /> a seu site WordPress" #: templates/dashboard.php:35 msgid "Greetings!" msgstr "Saudações!" #: templates/dashboard.php:38 msgid "Your %s store is connected<br /> to your WordPress website" msgstr "Sua loja %s está conectada <br /> a seu site WordPress" #: templates/dashboard.php:47 msgid "Open control panel" msgstr "Abrir painel de controle" #: templates/debug.php:14 msgid "Download log file" msgstr "Download arquivo de log" #: templates/help.php:11 msgid "How can we help you?" msgstr "Como podemos ajudá-lo?" #: templates/help.php:15 msgid "https://support.ecwid.com/hc/en-us/search" msgstr "https://support.ecwid.com/hc/en-us/search" #: templates/help.php:17 msgid "E.g. How to set up shipping" msgstr "Por exemplo. Como configurar o envio" #: templates/help.php:21 msgid "Search the Knowledge Base" msgstr "Pesquisar na Base de Conhecimento" #: templates/help.php:29 msgid "https://support.ecwid.com/hc/en-us/sections/201706719-Ecwid-Basics" msgstr "https://support.ecwid.com/hc/en-us/sections/201706719-Ecwid-Basics" #: templates/help.php:31 msgid "Ecwid Basics" msgstr "Ecwid Basics" #: templates/help.php:35 msgid "https://support.ecwid.com/hc/en-us/sections/201758475-Manage-Your-Ecwid-Store" msgstr "https://support.ecwid.com/hc/en-us/sections/201758475-Manage-Your-Ecwid-Store" #: templates/help.php:37 msgid "Manage Your Ecwid Store" msgstr "Gerencie Sua Loja Ecwid" #: templates/help.php:41 msgid "https://support.ecwid.com/hc/en-us/sections/201758445-Customize-Your-Store" msgstr "https://support.ecwid.com/hc/en-us/sections/201758445-Customize-Your-Store" #: templates/help.php:43 msgid "Customize Your Store" msgstr "Personalize sua loja" #: templates/help.php:47 msgid "https://support.ecwid.com/hc/en-us/sections/201706799-Billing-Questions" msgstr "https://support.ecwid.com/hc/en-us/sections/201706799-Billing-Questions" #: templates/help.php:49 msgid "Billing Questions" msgstr "Questões sobre faturamento" #: templates/help.php:53 msgid "https://support.ecwid.com/hc/en-us/sections/201702859-Technical-Reference" msgstr "https://support.ecwid.com/hc/en-us/sections/201702859-Technical-Reference" #: templates/help.php:55 msgid "Technical Reference" msgstr "Referência técnica" #: templates/help.php:62 msgid "Frequently Asked Questions" msgstr "Perguntas Frequentes" #: templates/help.php:205 msgid "Contact us" msgstr "Entre em contato conosco" #: templates/help.php:206 msgid "Still have questions about Ecwid? Let us know!" msgstr "Ainda tem dúvidas sobre o Ecwid? Nos informe!" #: templates/help.php:211 msgid "Forums" msgstr "Fóruns" #: templates/help.php:212 msgid "Join the Ecwid community. Discuss support topics and store ideas with other Ecwid users." msgstr "Participe da comunidade Ecwid. Discuta tópicos de suporte e ideias para lojas com outros usuários Ecwid." #: templates/help.php:221 msgid "Send a message to our support team" msgstr "Envie uma mensagem para nossa equipe de suporte" #: templates/help.php:227 msgid "Subject" msgstr "Assunto" #: templates/help.php:228 msgid "Type in your message here" msgstr "Digite sua mensagem aqui" #: templates/help.php:231 msgid "Send Message" msgstr "Enviar mensagem" #: templates/help.php:242 msgid "Send message failed" msgstr "Falha ao enviar a mensagem" #: templates/help.php:248 msgid "Your email has been sent" msgstr "Seu e-mail foi enviado com sucesso" #: templates/help.php:249 msgid " Thank you very much for contacting us! We will get back to you shortly." msgstr " Muito obrigado por entrar em contato conosco! Entraremos em contato com você em breve." #: templates/help.php:250 msgid "You can send a new request here." msgstr "Você pode enviar um novo pedido aqui." #: templates/landing.php:8 msgid "Welcome to %s!" msgstr "Bem-vindo a %s!" #: templates/landing.php:9 msgid "Thank you for choosing %s to build your online store. The first step to sell successfully online is to setup your store! Let’s get started and add a store to your website in a few simple steps." msgstr "Obrigado por ter escolhido %s para construir sua loja online. O primeiro passo para vender online com sucesso é configurar a sua loja! Vamos começar e adicionar uma loja para o seu site em algumas etapas simples." #: templates/landing.php:15 templates/landing.php:132 msgid "Create Free %s Store" msgstr "Criar Loja %s Grátis" #: templates/landing.php:31 templates/landing.php:148 msgid "Store is created" msgstr "Loja está criada" #: templates/landing.php:35 templates/landing.php:152 msgid "Creating store" msgstr "Criando a loja" #: templates/landing.php:39 templates/landing.php:156 msgid "Preparing your store dashboard" msgstr "Preparando o painel de controle da loja" #: templates/landing.php:43 templates/landing_old.php:52 msgid "Free registration, No credit card required" msgstr "Cadastro gratuito, não é necessário cartão de crédito" #: templates/landing.php:46 msgid "Connection error: please click the button again and give permissions for this plugin<br /> to show your %s store on this site." msgstr "Erro de conexão: clique novamente no botão e dê permissões para este plugin <br /> para exibir sua loja %s neste site." #: templates/landing.php:49 templates/landing.php:160 msgid "Already have %s account?" msgstr "Já possui uma conta em %s?" #: templates/landing.php:50 templates/landing_old.php:62 msgid "Connect your store to Wordpress site" msgstr "Contectar sua loja ao site WordPress" #: templates/landing.php:53 msgid "You will be asked to log in to your %s Control Panel<br />and give permissions to show your store on this site" msgstr "Você será solicitado a efetuar login no seu Painel de Controle de %s <br /> e dar permissões para exibir sua loja neste site" #: templates/landing.php:56 templates/landing_old.php:75 msgid "Get ready to sell online" msgstr "Prepare-se para vender online" #: templates/landing.php:67 msgid "Sell Everywhere<br>with your %s store" msgstr "Venda em todos os lugares<br> com sua loja %s" #: templates/landing.php:68 templates/landing_old.php:87 msgid "Start selling on your WordPress site. Then mirror your shop on your Facebook page, blog and marketplaces like Google Shopping, Yahoo and Shopping.com." msgstr "Comece a vender no seu site WordPress. Em seguida, replique sua loja em sua página do Facebook, blog e mercados como Google Shopping, Yahoo e Shopping.com." #: templates/landing.php:69 msgid "Use %s's mobile-POS to swipe credit cards and sell on the go. Your orders and inventory are always synchronized with your online store." msgstr "Use a opção mobile-POS da %s para passar os cartões de crédito e vender em qualquer lugar. Suas encomendas e estoque estão sempre sincronizados com sua loja on-line." #: templates/landing.php:75 templates/landing_old.php:94 msgid "Features" msgstr "Recursos" #: templates/landing.php:82 templates/landing_old.php:101 msgid "Compatible with your theme" msgstr "Compatível com seu tema" #: templates/landing.php:83 msgid "%s is compatible with your<br>“%s” WordPress theme<br>out of the box." msgstr "%s é compatível com o seu tema \"%s\" WordPress e fora da caixa." #: templates/landing.php:91 templates/landing_old.php:110 msgid "Free and always up to date" msgstr "Grátis e sempre atualizado" #: templates/landing.php:92 templates/landing_old.php:111 msgid "Free plan always available with tons of features<br>at no additional cost. Updates are seamless, automatic<br>and free of charge." msgstr "Plano gratuito sempre disponível com toneladas de recursos<br> sem custo adicional. As atualizações são integradas, automáticas<br>e gratuitas." #: templates/landing.php:102 templates/landing_old.php:121 msgid "Responsive design" msgstr "Design responsivo" #: templates/landing.php:103 templates/landing_old.php:122 msgid "Your store looks perfect<br />on all devices" msgstr "Sua loja parece perfeita <br /> em todos os dispositivos" #: templates/landing.php:111 templates/landing_old.php:130 msgid "PCI DSS Certified" msgstr "Certificado PCI DSS" #: templates/landing.php:112 templates/landing_old.php:131 msgid "Secure checkout with over 40<br />payment options" msgstr "Checkout seguro com mais de 40 <br /> opções de pagamento" #: templates/landing.php:120 templates/landing_old.php:139 msgid "Global Reach" msgstr "Alcance Global" #: templates/landing.php:121 msgid "Over 1 million merchants in 175 countries" msgstr "Mais de 1 milhão de comerciantes em 175 países" #: templates/landing.php:128 templates/landing_old.php:147 msgid "Start selling <br>on your WordPress <nobr>site for free</nobr>" msgstr "Comece a vender <br>no seu site WordPress <nobr>gratuitamente</nobr>" #: templates/landing.php:161 templates/landing_old.php:158 msgid "Connect your store to this site" msgstr "Conecte sua loja a este site" #: templates/landing_old.php:8 templates/landing_old.php:12 msgid "Plugin is installed successfully!" msgstr "O plugin foi instalado com sucesso!" #: templates/landing_old.php:9 msgid "There are just a few steps left to start selling<br /> on your WordPress site" msgstr "Faltam apenas alguns passos para começar a vender <br /> no seu site WordPress" #: templates/landing_old.php:13 msgid "There are few little steps left to start selling<br /> on your WordPress site" msgstr "Você está próximo de começar a vender <br /> no seu site WordPress" #: templates/landing_old.php:19 msgid "Register" msgstr "Cadastre-se" #: templates/landing_old.php:20 msgid "Create a free Ecwid account to manage your store and inventory.<br /> No credit card required" msgstr "Cria uma conta grátis no Ecwid para gerencia sua loja e inventário.<br />Não é necessário cartão de crédito" #: templates/landing_old.php:29 msgid "Add your Ecwid store to your site <nobr>in two clicks</nobr>" msgstr "Adicione sua loja Ecwid a seu site <nobr>em dois cliques</nobr>" #: templates/landing_old.php:30 msgid "Connect your Ecwid store to this site <nobr>in two clicks</nobr>" msgstr "Conecte sua loja Ecwid a este site <nobr>em dois cliques</ nobr>" #: templates/landing_old.php:39 msgid "Start selling" msgstr "Comece a vender" #: templates/landing_old.php:40 msgid "Your storefront is ready" msgstr "Sua loja está pronta" #: templates/landing_old.php:46 msgid "Create Ecwid store" msgstr "Criar loja Ecwid" #: templates/landing_old.php:49 templates/landing_old.php:154 msgid "Connect your store" msgstr "Conectar sua loja" #: templates/landing_old.php:55 msgid "Connection error: please click the button again and give permissions for this plugin<br /> to show your Ecwid store on this site." msgstr "Erro de conexão: clique no botão novamente e dê permissões para este plugin <br /> mostrar sua loja Ecwid neste site." #: templates/landing_old.php:58 templates/landing_old.php:69 msgid "You will be asked to log in to your Ecwid Control Panel<br />and give permissions to show your store on this site" msgstr "Será solicitado o seu login no seu Painel de Controle Ecwid <br /> para liberar as permissões e para que sua loja seja exposta neste site" #: templates/landing_old.php:61 templates/landing_old.php:157 msgid "Already have Ecwid account?" msgstr "Já possui uma conta Ecwid?" #: templates/landing_old.php:65 templates/landing_old.php:161 msgid "Don't have an Ecwid account?" msgstr "Não possui uma conta Ecwid?" #: templates/landing_old.php:66 templates/landing_old.php:162 msgid "Register at Ecwid for free" msgstr "Cadastre-se grátis em Ecwid" #: templates/landing_old.php:72 msgid "No credit card required" msgstr "Não é necessário cartão de crédito" #: templates/landing_old.php:86 msgid "Sell Everywhere<br>with your Ecwid store" msgstr "Venda em todos os lugares<br>com sua loja Ecwid" #: templates/landing_old.php:88 msgid "Use Ecwid's mobile-POS to swipe credit cards and sell on the go. Your orders and inventory are always synchronized with your online store." msgstr "Use o Mobile-POS da Ecwid para aceitar cartões de crédito e vender em qualquer lugar. Suas encomendas e estoques estão sempre sincronizados com sua loja on-line." #: templates/landing_old.php:102 msgid "Ecwid is compatible with your<br>“%s” WordPress theme<br>out of the box." msgstr "Ecwid é compatível com o seu tema \"%s\" WordPress <br>." #: templates/landing_old.php:140 msgid "More than 800,000 merchants in 175 countries" msgstr "Mais de 800.000 comerciantes em 175 países" #: templates/landing_old.php:151 msgid "Get Started, Create Ecwid Account" msgstr "Comece, Crie sua Conta Ecwid" #: templates/product-popup.php:23 msgid "Name" msgstr "Nome" #: templates/product-popup.php:29 msgid "SKU" msgstr "SKU" #: templates/product-popup.php:47 templates/product-popup.php:53 #: templates/product-popup.php:56 msgid "Search" msgstr "Pesquisar" #: templates/product-popup.php:49 msgid "Title or SKU" msgstr "Título ou SKU" #: templates/product-popup.php:69 msgid "Current Page" msgstr "Página atual" #: templates/product-popup.php:80 msgid "Next page" msgstr "Próxima página" #: templates/product-popup.php:94 msgid "Nothing found for <span class=\"empty-page__term\">\"{{ data.term }}\"</span>" msgstr "Nada encontrado para<span class=\"empty-page__term\">\"{{ data.term }}\"</span>" #: templates/product-popup.php:96 msgid "Try another search." msgstr "Tentar outra pesquisa." #: templates/product-popup.php:97 msgid "Browse all products." msgstr "Procurar todos os produtos." #: templates/product-popup.php:122 templates/product-popup.php:127 msgid "Choose Product" msgstr "Selecionar produto" #: templates/product-popup.php:123 templates/product-popup.php:131 msgid "Customize widget" msgstr "Customizar widget" #: templates/product-popup.php:140 msgid "Choose product properties to display in widget" msgstr "Selecione as propriedades do produto para exibir no widget" #: templates/product-popup.php:150 msgid "Picture" msgstr "Imagem" #: templates/product-popup.php:155 msgid "Options" msgstr "Opções" #: templates/product-popup.php:165 msgid "Quantity" msgstr "Quantidade" #: templates/product-popup.php:176 msgid "«Add to bag» button" msgstr "Botão «Adicionar ao carrinho»" #: templates/product-popup.php:196 msgid "Add border" msgstr "Adicionar borda" #: templates/product-popup.php:201 msgid "Show price inside the \"Buy now\" button" msgstr "Mostrar preço dentro do botão \"Comprar agora\"" #: templates/product-popup.php:206 msgid "Center align on a page" msgstr "Alinhar ao centro em uma página" #: templates/product-popup.php:218 msgid "customize appearance" msgstr "Customizar aparência" #: templates/product-popup.php:219 msgid "select product" msgstr "selecionar produto" #: templates/product-popup.php:220 msgid "Insert" msgstr "Inserir" #: templates/reconnect-sso.php:11 msgid "Your store Control Panel. Right here in WordPress." msgstr "Painel de controle da sua loja. Aqui no WordPress." #: templates/reconnect-sso.php:12 msgid "Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page." msgstr "Gerenciar produtos, controlar vendas, ajustar configurações - <nobr>Tudo sem </nobr> sair desta página." #: templates/reconnect-sso.php:14 msgid "Re-connect to Enable Control Panel" msgstr "Reconecte-se para habilitar o Painel de Controle" #: templates/reconnect.php:31 msgid "Connection error - after clicking button you need to login and accept permissions to use our plugin. Please, try again." msgstr "Erro de conexão - depois de clicar no botão você precisa fazer login e aceitar permissões para usar o nosso plugin. Por favor, tente novamente." #: templates/reconnect.php:39 msgid "Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL." msgstr "Parece que seu site não oferece suporte a solicitações remotas POST que são necessárias para que a API do %s funcione. Entre em contato com o provedor de hospedagem para ativar cURL." #: templates/store-popup.php:12 templates/store-popup.php:25 msgid "Store elements" msgstr "Elementos da loja" #: templates/store-popup.php:46 msgid "Choose widgets to show" msgstr "Escolher widgets para exibir" #: templates/store-popup.php:47 msgid "Product catalog will be shown automatically" msgstr "O catálogo de produtos será exibido automaticamente" #: templates/store-popup.php:52 msgid "Show search" msgstr "Mostrar pesquisa" #: templates/store-popup.php:59 msgid "Show minicart" msgstr "Mostrar mini carrinho" #: templates/store-popup.php:66 msgid "Show categories" msgstr "Mostrar categorias" #: templates/store-popup.php:72 msgid "Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>" msgstr "Além disso, você pode adicionar controles da loja à barra de ferramentas do seu site usando <a %s> widgets nativos do WordPress</a>" #: templates/store-popup.php:233 msgid "Demo store" msgstr "Loja demo" #: templates/store-popup.php:236 msgid "Open store dashboard" msgstr "Abrir dashboard da loja" #: templates/store-popup.php:240 msgid "Insert into page" msgstr "Inserir na página" #: templates/store-popup.php:243 msgid "Update" msgstr "Atualizar" #: templates/store-svg.php:10 msgid "Your store will be shown here!" msgstr "Sua loja será exibida aqui!" #: templates/store-svg.php:13 msgid "Demo Store" msgstr "Loja Demo" #: templates/sync.php:161 msgid "To enable this feature, the plugin needs a permission to read your store product information." msgstr "Para ativar esse recurso, o plugin precisa de uma permissão para ler as informações do produto da loja." #: templates/sync.php:162 msgid "Provide access." msgstr "Liberar acesso." #: templates/sync.php:167 templates/sync.php:168 msgid "Synchronize products" msgstr "Sincronizar produtos" #: templates/sync.php:175 msgid "We're synchronizing your products. This may take a few minutes. Please do not reload the page." msgstr "Estamos sincronizando seus produtos. Isso pode levar alguns minutos. Não recarregue a página." #: templates/sync.php:179 msgid "Products synchronized: %s out of %s" msgstr "Produtos sincronizados: %s de %s" #: templates/sync.php:186 msgid "Products are successfully synchronized. The product pages are up to date." msgstr "Os produtos foram sincronizados com êxito. As páginas do produto estão atualizadas." #: templates/sync.php:190 msgid "Last update" msgstr "Última atualização" #: templates/sync.php:193 msgid "Not synchronized yet" msgstr "Não sincronizado ainda" #. Plugin Name of the plugin/theme #: msgid "Ecwid Shopping Cart" msgstr "" #. #-#-#-#-# ecwid-shopping-cart.pot (Ecwid Shopping Cart 5.0.7) #-#-#-#-# #. Plugin URI of the plugin/theme #. #-#-#-#-# ecwid-shopping-cart.pot (Ecwid Shopping Cart 5.0.7) #-#-#-#-# #. Author URI of the plugin/theme #: msgid "http://www.ecwid.com?source=wporg" msgstr "http://www.ecwid.com?source=wporg" #. Description of the plugin/theme #: msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up." msgstr "O Ecwid é um carrinho de compras completo e gratuito. Pode ser facilmente integrado com qualquer blog WordPress e leva menos de 5 minutos para configurar." #. Author of the plugin/theme #: msgid "Ecwid Team" msgstr "Equipe Ecwid" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/languages/ecwid-shopping-cart-ru_RU-ecwid-gutenberg-store.json������������������0000644�����������������00000013431�15122273603�0024363 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{locale_data:{messages:{ "": {}, "Add storefront (product listing)": ["Витрина магазина"], "Store Home Page": ["Домашняя страница магазина"], "To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”).": ["Чтобы обновить дизайн своего магазина и управлять настройками вида в редакторе, включите опцию “Обновленный внешний вид каталога товаров на витрине” в панели управления магазина (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Настройки → Обновления</a>)"], "To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”).": ["Чтобы обновить дизайн страницы товара и управлять настройками вида в редакторе, включите опцию “Обновленный внешний вид страницы товара” в панели управления магазина (<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Настройки → Обновления</a>)"], "Category List Appearance": ["Дизайн списка категорий"], "Product List Appearance": ["Дизайн списка товаров"], "Product Page Appearance": ["Дизайн страницы товара"], "Product sidebar content": ["Информация на странице"], "Store Front Page": ["Главная страница магазина"], "Store Navigation": ["Навигация магазина"], "Color settings": ["Настройки цвета"], "Buy Now Button": ["Кнопка «Купить»"], "Display a buy button": ["Кнопка \"Купить\""], "Linked product": ["Товар"], "Change": ["Изменить"], "Choose product": ["Выбрать товар"], "Appearance": ["Внешний вид"], "Show price inside the «Buy now» button": ["Показывать цену в кнопке «Купить»"], "Center align on a page": ["Выровнять карточку по центру страницы"], "Cart and Checkout": ["Страница корзины"], "Display shopping cart and checkout page": ["Страница корзины и оформления заказа"], "Store Categories Menu": ["Меню категорий"], "Display categories navigation bar": ["Строка меню категорий магазина"], "Categories": ["Категории"], "The block is hidden because you don\"t have categories in your store. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Add categories.</a>": ["Блок скрыт, потому что в магазине нет категорий. <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-category-id-0-mode-edit\">Добавить категории.</a>"], "Store Category Page": ["Категория магазина"], "Display category page": ["Страница категории с листингом товаров"], "Display cart icon": ["Показывать иконку корзины"], "Add categories": ["Добавить категории"], "Select category": ["Выбрать категорию"], "Selected category": ["Выбранная категория"], "Search and Filters": ["Поиск и фильтры"], "Product Search and filters": ["Страница поиска и фильтров"], "Display search page with filters on a side": ["Страница поиска с листингом товаров и полоской фильтров"], "Set up your store": ["Настроить магазин"], "You can enable filters in the store settings: (“<a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Settings → Product Filters</a>”).": ["Включить фильтры можно в настройках магазина: <a target=\"_blank\" href=\"admin.php?page=ec-store-admin-product-filters-mode-main\">Настройки -> Товарные фильтры</a>"], "Filters": ["Фильтры"], "Detect automatically": ["Определять автоматически"], "Set manually": ["Выставить вручную"], "Shopping Cart Icon": ["Иконка корзины"], "Display shopping bag link and summary": ["Ссылка на корзину и количество товаров в корзине"], "Product card small": ["Карточка товара"], "Display product with a buy button": ["Товар с кнопкой \"Купить\""], "Displayed product": ["Выбранный товар"], "gutenberg-product-block\u0004Content": ["Элементы виджета"], "Picture": ["Изображение"], "Title": ["Название"], "Price": ["Цена"], "Options": ["Параметры"], "Quantity": ["Количество"], "«Buy now» button": ["Кнопка «Купить»"], "Add border": ["Показывать рамку"], "Product Card Large": ["Страница товара"], "Display product page with description and a buy button": ["Страница товара с описанием и кнопкой \"Купить\""], "Product Search Box": ["Поле поиска товаров"], "Display search box": [""] }}}���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/languages/ecwid-shopping-cart-ru_RU.mo������������������������������������������0000644�����������������00000202243�15122273603�0017623 0����������������������������������������������������������������������������������������������������ustar�00����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\ ��9��������#��H���#�����#�����#�����#��(���#�����$�� ���&$��I���4$��.���~$�� ���$�����$�� ���$�����$�����$����%�����&�����'����� '�����>'�����['��$���y'�����'�����'�� ���'�� ���'�� ���'�� ���'�� ���(��<���(��k���X(��K���(��S���)��A���d)��R���)��G���)�����A*�����J*��/���\*�����*�����*�� ���*�����*�����*�����+�����+�����+�����+�� ���+�� ���+������,�����,��4���(,�� ���],�����j,��/��z,��5���-�����-�����-�����-�����.�����-.�����M.�����e.�����l.�����.�����.�����.�����.��.���.�����.�����.����� /�����'/�� ���6/�����W/�����h/��@���p/�����/�����/��/���/��w���0��~���0����� 1�� ���1�����1�� ���1��]���1�����2�� ���%2�����22�����J2�����_2�� ���p2�����z2��"���2��#���2��/���2�� ���3�� ���3�����3�����03�����A3�����U3��!���g3�����3�����3��!���3�����3��!���3����� 4�����!4�����64��q���H4��s���4��H���.5��O���w5��1���5��s���5�����m6��v���7��)���7�����7�����7�����7�����7������8�� ���8�� ���8�����8�����/8�����H8�����a8��=��z8�����9����B:��L���Z;����;�����<�����<�����<�����<�� ��� =�� ���=�� ���'=��&���2=�����Y=�����m=�����v=�� ���=�����=�����=�����=��*���<>�����g>�����>��!���>�����>�� ���>�� ���>��(���>�����?�� ���?�����?�����$?������@�����@��/���@��/���K@�����{@��/���@��(���@�����@��9���A��I���=A��2���A��:���A��!���A�����B�����6B�� ���TB�����_B�� ���tB�����B�����B��$���B��9���B��%���B��X���C�����uC�����}C�����C�� ���C�� ���C�� ���C�� ���C�����C�����C�� ���C�����C�� ���C�����C�����D�����D��'���D�����D�����D��[���D�����IE��,���ZE�� ���E�����E�����E�� ���E�� ���E�����E�����E�����E��I���F�����G�����6G�����RG�� ���mG�� ���yG�����G�����G�����G�����G��c���G��l���,H�����H�����H�����I��)���J�����J�����J�����J�����SK��4���K��!��� L�����-L�� ���?L�� ���LL�����YL�����bL�� ���L�����L�� ���L�����L�����L�� ���L�����L�����L��+���M�����0M�� ���DM�����RM�����cM�����{M�����M�� ���M�����M��I���M��'���N�����:N�����JN�� ���SN�����^N�����mN��"���N�����N�����N��%���N�����N����� O�����O�����-O�����MO�����_O�����eO�����gO�����O�����O�����O�� ���O�����O�����O��1���O�����O�� ���P�����P��(���P�� ���GP��"���TP�����wP�� ���P�����P�����P�����P�� ���P�����P�� ���P�����P�����P�����Q����� Q�����,Q�� ���<Q�� ���]Q�� ���kQ��&���yQ��(���Q�����Q�����Q�� ���Q�� ��R��*���S�� ���<S�� ���GS��>���US�����S��.���+T�����ZT�����`T�����qT�����T�����T�����kU�����|U�� ���U�����U�����U�����U�����U�����U�����U����� V�����V�����*V�� ���0V��/���;V�����kV�����V�� ���V�����V��M���TW�����W��M���W��M���X��\���OX�����X�����@Y�����FY�� ���UY�� ���`Y�����mY�����Y�����Y��M���Z�����gZ����[��E��\�����`^�����^��]���_����� `����`��*��b��y���Ec�����c�� ���rd�����|d�����d��{���d�����&e�����-e�����Ie�����e�����\f�����pf��!���f��^���f�����g�����g�����.g�� ��?g��C��Jh��B��i�����j�����k�� ���{l��0���l�����l��T���ym��n���m��q���=n��:���n��>���n�����)o�� ���Bo��2���Oo�����o��,���o�����o�����o�����p�����p�� ���8p��"���Yp��s���|p��/���p��)��� q��I���Jq��B���q��G���q��J���r��M���jr�����r��&���r��(���r�����#s�����2s�����Hs�����\s��K��os��=���t�����t�� ���u��"���$u��B���Gu�����u��$���u��X���u��S���v�� ���nv��6���|v�����v�����v�����v����v��6���z��3���z��5���){��3���_{��5���{��L���{��i���|��4���|�����|�����|�����|�����}�����-}��g���J}�����}�����~�������i��������0����������D��/���a��l�����%�����/���$�����T��,���j��1����&���Ƀ��*�������������-�����>��!���V��%���x��#��������„�����a�����w��X����s��������d��,���s��0�����D���ш��6�����6���M�������F��������݉���������� �����$��L���>��.����������)���؊��'�����J���*�����u��#�����g�����#�����>���=��N���|�����ˌ���������A��(���P��0���y����������ȏ��!���X�����z��3�����!���ΐ������������D�����B���Z��S�����F�����/���8��/���h��/�����%���Ȓ��6�����0���%��Y���V��H�����9�����+���3��7���_��U�����2�����2��� �����S�����q�����D�����?��b���̗��i���/��\�����e�������\��H�����/���^�� ����������;����� ������������������5��J���T��J�����Z�������E��O���3������`���-������*���o��9��������Ԥ��(�����-�����%���G��#���m��B�����)���ԥ�������0����� ���H�� ���U��5���`������`�����.�����?���,��2���l��8�����#���ب�������&����� ���=�����H�� ���\����i����������%��[���@��U����������B�����H���Q��%�����#�����k�����5���P��`�����F�����"���.��1���Q��3����������#���Ӯ�������$�����6���-��N���d��7�������������ذ������������� ����� ���#�� ���D��-���O�����}������������ ���Ʊ�����ӱ��'���������0�����@���D��'�����%��������ӳ�������U���������������@��� �����L�����_��5���r��!�������ʵ��l�����1�����=���-��A���k�� ����� �����,���Ÿ��0�����#���#�����G�����Z������� ���������P��l��B�����%���������&����=�����Z��y���+��1�����(����������������(���:��6���c�����������������(�����*�������������:��2���T��N�����*���������������*���7��0���b��0���������� �����q�����1���a��`������������� �����"��$���@��6���e�������'�����0�����0�����"���?��7���b��$�����!������������������������ �������.���'��%���V�� ���|��%�������������e�������?�����?����������/���*��9���Z�������!���������������#�������������+��#���:�����^�����x��U����������E��������E��7���]��<�����>�����=�����:���O�� �����;����D����������!���/��i���Q��6����f��������Y��#���h��0����������E���������#���3��!���W�� ���y��4���������������4�����-���/�����]��-���f������������f�����+���"�����N�����f��T��|��v��������H�����e��������������B�����W��,���h�������&�����0�������� ������p���3��v����A������]�����{�����������`��>��������9�������2���������/��������3����G�����I��n���Z���������������0�����A���5�����w��&���$��&���K�����r�����������������$������=��� ��o���^��l�������;������������O�����^�����'���E�� ���m��X���x��%����������E�����9�����(��������C�����c�������@�����,�����&�������8�}����c���i��������c���� ����$����3����<����V����v����������������������)��������y��������q�������������>�����;�������������C��W���������'��������������������������z������L���i����� ��������������������c��\������l�������������-��E��R��,���o��2���5��w���������q��e���?������@���������(���������r������i���������t��*���������|��������^�� ��}��������2������������H�������c�����������%���������=��������>���X������������������F��"������v�������������������������������:�������m��������O���J�������j�������f���������g������������ ���������=���"�������3��J��������������������������H�����8��U���������������������������K������������������M�������������������������`��#�����������,��{���]��.������%���}���;���������~����������d��:������h������������������������_������_��������������r��F����������Q��� ���D������`���������������&����������������+��������������?��~��6��B��������������^������w�����������f�������y����������n����� ������]������������� �������V���9��������5���S��G��M���!�����������������������'���s���������z��/�������I������T�����u��������7���[����������������p������������������x������������n���������$������������[��������������C���S��������I���#���������������������� ���7��@����������o���1�����m�������������a�������k������������Q��a��������������������������������\��������������� ���4��N��*���K��������O��x�����������U����������������u�������������)���������������W������������{�����-�������|���T��8���P���������������������������R��������<����������������������Y������������p�������������������������0��������E���������������0��(�������L��Y��t���l��&���������.�������P������������v��������g���b���/�����G��������������D�����������������������k��d�������A��<������j����������N���9�����4���������������1������Z���!���B��������������h����3��������������� �����s��6�������������������������������A������+����������������X��b��e�������������� ������������������������������V��$������������Z�������������������� �������� ��������� Thank you very much for contacting us! We will get back to you shortly.�"In stock" label�%s Blog�%s Shopping Cart�%s Shopping Cart — Appearance settings�%s Store�%s Store Page�%s is compatible with your<br>“%s” WordPress theme<br>out of the box.�%s plugin doesn't work well with my "%s" theme�%s product�%s products and categories�%s settings�%s shopping cart settings�%s store�%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site.�%s — Advanced settings�2 columns, image on the left�2 columns, image on the right�3 columns, image on the left�3 columns, image on the right�<a %s>Online store powered by %s</a>�<a %s>Reconnect</a>�Access to %s Control Panel�Add Product�Add Store�Add border�Add storefront (product listing)�Add to Menu�Add your Ecwid store to your site <nobr>in two clicks</nobr>�Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>�Adds a cart widget for customer to see the products they added to the cart.�Adds a compact cart widget for customer to see the products they added to the cart.�Adds a shopping cart widget to the top right corner of your site.�Adds root categories list to the sidebar to let your customers navigate the store.�Adds vertical categories block to let the customer navigate your store.�Advanced�Advanced settings�Allow this user to access the %s Control Panel.�Already have %s account?�Already have Ecwid account?�Appearance�Appearance settings�Automatic adjustment of your store design to your WordPress theme. Whatever WordPress theme you use, %s will detect predominant colors and font and use them in your product catalog.�Available qty in stock�Back to Store Settings�Background color�Billing Questions�Bottom right�Breadcrumbs�Browse all products.�Browse by Category�Bulk import products and categories to your %s store�Button color�Buy now buttons�By default, the storefront shows a list of root categories. You can override this behavior and show a different category when customers open your store for the first time. This is useful if you only have one category or want to display a specific set of items (e.g. "Featured Products") to new visitors.�Cache and speed up the store home page <sup>new</sup>�Cart�Category List Appearance�Category card layout�Category shown by default�Category thumbnail aspect ratio�Category thumbnail size�Center�Center align on a page�Chameleon skin�Change�Choose Product�Choose product�Choose product properties to display in widget�Choose widgets to show�Color settings�Compatible with your theme�Complete Setup�Complete setup and start selling�Congratulations!�Connect�Connect your Ecwid store to this site <nobr>in two clicks</nobr>�Connect your store�Connect your store to this site�Connect your store<br /> to this WordPress site�Connection error - after clicking button you need to login and accept permissions to use our plugin. Please, try again.�Connection error: please click the button again and give permissions for this plugin<br /> to show your %s store on this site.�Connection error: please click the button again and give permissions for this plugin<br /> to show your Ecwid store on this site.�Contact us�Create Ecwid store�Create Store�Create a free Ecwid account to manage your store and inventory.<br /> No credit card required�Creating store�Current Page�Customer Single Sign-On�Customize Your Store�Customize widget�Dashboard�Default category ID�Default view mode on product pages�Default view mode on search results�Deleted products synchronized: %1$s out of %2$s�Demo Store�Demo store�Detect automatically�Disconnect store�Display breadcrumbs�Display cart icon�Display categories above products�Display categories menu�Display footer menu�Display product with a buy button�Display search box�Display search box above products�Display sign in link�Display sort by link�Displayed product�Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site.�Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop.�Displays a random product from your store to attract customer attention.�Displays a simple search box for your customers to find a product in your store�Displays storefront: product listing and checkout�Displays the latest added products from your store. Show new products to returning customers to drive repeat sales.�Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid.�Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site.�Don't have an %s account? Create one now.�Don't have an Ecwid account?�Done�Download log file�E.g. How to set up shipping�Ecwid�Ecwid Badge�Ecwid Basics�Ecwid Menu Item�Ecwid e-commerce widgets�Ecwid ecommerce solution�Ecwid free shopping cart�Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security">More details.</a>�Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up.�Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href="%s">TemplateMonster themes</a>�Ecwid is compatible with your<br>“%s” WordPress theme<br>out of the box.�Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target="_blank" href="https://www.ecwid.com/ecwid-mobile">More details.</a>�Ecwid shopping cart�Ecwid shopping cart widget�Edit �Edit Appearance�Edit Category�Edit Product�Edit Store�Enable minicart attached to categories�Enter your Store ID�Features�Filters panel position�First Page�Forums�Free and always up to date�Free plan always available with tons of features<br>at no additional cost. Updates are seamless, automatic<br>and free of charge.�Free registration, No credit card required�Frequently Asked Questions�Get %s mobile app�Get Started, Create Ecwid Account�Get ready to sell online�Global Reach�Greetings!�Greetings! Your %s plugin is now active.�Grid�Grid view�Help�Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products.�Hide�Horizontal thumbnails�How can I add a cart widget to my site sidebar?�How can I manage my store from a mobile device?�How can we help you?�How do I add store categories to the site menu?�How do I put my products in the sitemap?�How much does Ecwid cost?�How secure is this plugin? Is my store PCI DSS compliant?�How to add a single product with the add to bag button to the site pages?�How to set up a storefront on Facebook with Ecwid?�I couldn’t find a WordPress theme that goes well with %s�I have a problem with my %s store�I use this WordPress theme: %s�Image and title on mouse over�Image feed�Image gallery layout�Image only�Insert�Insert into page�Integration with search on your site�Is it possible to display my store on the site home page?�Is there a WordPress theme for Ecwid?�Join the Ecwid community. Discuss support topics and store ideas with other Ecwid users.�Justify�Knowledge Base�L�Landscape 3:2�Landscape 4:3�Last Page�Last update�Latest Products�Left�Link color�List�List view�Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL.�M�Main storefront page�Manage Store on iPhone, iPad or Android�Manage Your Ecwid Store�Manage my store�Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page.�More information�More than 800,000 merchants in 175 countries�My Account�Name�Never show this message again�Next Page�Next page�No credit card required�Not synchronized yet�Note: the new URLs will be automatically enabled for every store in one of upcoming updates so please make sure to check how the new URLs work in your store and <a %s>let us know</a> if you face any trouble with them�Nothing found for <span class="empty-page__term">"{{ data.term }}"</span>�Number of categories per row�Number of products per page�Number of products to show�On the left�On the right�Online Store Apps�Open control panel�Open store dashboard�Options�Or you can add search box to your website's toolbar using <a href="%s">WordPress native widgets</a>�Or you can add vertical categories to your website's toolbar using <a href="%s">WordPress native widgets</a>�Orders�Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target="_blank" href="%s">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans.�Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">our customer support team</a>.�Over 1 million merchants in 175 countries�PCI DSS Certified�Picture�Please note this functionality is in beta. So if you run into difficulties or find problems with Chameleon, please <a %s>let us know</a>.�Please note this functionality is in beta. So if you run into difficulties or find problems with it, please <a %s>let us know</a>.�Please subscribe to a paid plan to get this feature.�Plugin is installed successfully!�Plugins for Ecwid�Portrait 2:3�Portrait 3:4�Position�Preparing your store dashboard�Previous Page�Price�Price color�Product List Appearance�Product Page Appearance�Product SKU�Product Search�Product card text align�Product catalog will be shown automatically�Product page layout�Product price�Product quantity�Product sidebar content�Product thumbnail aspect ratio�Product thumbnail size�Product title�Products�Products are successfully synchronized. The product pages are up to date.�Products synchronized: %1$s out of %2$s�Provide access.�Quantity�Questions?�Random Product�Rate %s at WordPress.org�Re-connect to Enable Control Panel�Read FAQ�Recently Viewed Products�Recommendations for Your Online Store�Refresh categories list�Register�Register at Ecwid for free�Report a problem with the store�Responsive design�Right�S�SEO friendly clean URLs�SKU�Sales�Save and connect�Save changes�Search�Search the Knowledge Base�Secure checkout with over 40<br />payment options�See more�Select All�Sell Everywhere�Sell Everywhere<br>with your Ecwid store�Send Message�Send a message to our support team�Send message failed�Set manually�Set up your store�Settings�Setup�Share buttons�Shop�Shopping Cart�Shopping Cart (Floating)�Shopping Cart (Mini)�Show�Show additional image on hover�Show categories�Show description under the image�Show minicart�Show on hover�Show price inside the "Buy now" button�Show price inside the «Buy now» button�Show product card border�Show product thumbnails�Show search�Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again.�Sorry we're having technical difficulties.�Square 1:1�Start selling�Start selling <br>on your WordPress <nobr>site for free</nobr>�Start selling on your WordPress site. Then mirror your shop on your Facebook page, blog and marketplaces like Google Shopping, Yahoo and Shopping.com.�Still have questions about Ecwid? Let us know!�Store�Store Categories�Store Front Page�Store ID�Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel: open the <a %2$s>Dashboard page</a> and find the "<b>Store ID: NNNNNNN</b>" text, where <b>NNNNNNN</b> is your Store ID.�Store Link Title�Store Navigation�Store Page�Store Page Link�Store Root Categories�Store elements�Store is created�Store root category�Store with Categories Menu�Subject�Synchronize products�Table�Table view�Take a few simple steps to complete store setup�Technical Reference�Text�Text color�Thank you for choosing %s to build your online store. The first step to sell successfully online is to set up your store! Let’s get started and add a store to your website in a few simple steps.�The store top-level categories are automatically added to this drop-down menu�Themes for Ecwid�There are few little steps left to start selling<br /> on your WordPress site�There are just a few steps left to start selling<br /> on your WordPress site�This caches your store home page on your site to make it load way faster for your customers.�This enables new clean URLs format in your store. The new urls do not contain hash sign ('#'), so they look nicer and are better indexed by Google.�Title�Title on image�Title only�Title or SKU�Title under image�Title:�To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings.�To add your store to your website, put your %1$s Store ID in the field below.�To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>�To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s. This will only require you to accept permissions request – so that the plugin will be able to list your products in the "Add product" dialog.�To create sitemap for your Wordpress site we suggest using <a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">Google XML Sitemaps</a> or <a target="_blank" href="https://wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target="_blank" href="https://www.ecwid.com/pricing">paid Ecwid users</a>.�To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission.�To enable clean URLs in your store, you will need to enable pretty permalinks in your WordPress site settings. Navigate to <a%s>Settings->Permalink</a> and enable the "Post name" permalink type.�To enable this feature, the plugin needs a permission to read your store product information.�To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow">How to use it.</a>�To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (<a href="admin.php?page=ec-store-admin-whatsnew">Settings → What’s New</a>).�To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront” option in your store dashboard (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Settings → What’s New</a>”).�To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>�To use this functionality, please enable the “Next-gen look and feel of the product list on the storefront” option in your store dashboard (<a%s>Settings → What's New</a>).�Top right�Try another search.�Type in your message here�Unfortunately, creating a new account is currently unavailable for your country. You can still connect an existing account.�Update�Upgrade to get this feature�Use %s's mobile-POS to swipe credit cards and sell on the go. Your orders and inventory are always synchronized with your online store.�Use Ecwid's mobile-POS to swipe credit cards and sell on the go. Your orders and inventory are always synchronized with your online store.�Vertical thumbnails�Visit storefront�Want to connect another %s store?�We're synchronizing your products. This may take a few minutes. Please do not reload the page.�Welcome to %s!�Where to find your Store ID:�Wholesale prices�You can add product search box, cart widget and more on the <a href="%s">"Appearance / Widgets page"</a> here in your site admin. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets">More details.</a>�You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open "Appearance > Menus" in your WordPress control panel and add the "Store with Categories Menu" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site.�You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop">More details.</a>�You can display your store on the site main page. Adjust the "Reading" settings of your site as described in our <a target="_blank" href="https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage">Help Center.</a>�You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href="%1$s">Appearance → Customize → %2$s</a>” menu to enable it.�You can send a new request here.�You have not viewed any product yet. Open store.�You have your storefront added to several pages on your site. You can choose the main storefront page here — the store navigation menus and sidebar widgets will open it.�You should disable this option, if you added minicart to your website's sidebar�You will be asked to log in to your %s Control Panel<br />and give permissions to show your store on this site�You will be asked to log in to your Ecwid Control Panel<br />and give permissions to show your store on this site�Your %s store is connected<br /> to your WordPress website�Your %s store is now connected<br /> to your WordPress website�Your email has been sent�Your product�Your store Control Panel. Right here in WordPress.�Your store is almost ready!�Your store looks perfect<br />on all devices�Your store will be shown here!�Your storefront is ready�customize appearance�gutenberg-product-blockContent�gutenberg-store-block-stubStore�https://support.ecwid.com/hc/en-us�https://support.ecwid.com/hc/en-us/articles/360000635709-Customizing-design-of-your-Ecwid-store-on-a-Wordpress-site�https://support.ecwid.com/hc/en-us/requests/new�https://support.ecwid.com/hc/en-us/search�https://support.ecwid.com/hc/en-us/sections/201702859-Technical-Reference�https://support.ecwid.com/hc/en-us/sections/201706719-Ecwid-Basics�https://support.ecwid.com/hc/en-us/sections/201706799-Billing-Questions�https://support.ecwid.com/hc/en-us/sections/201758445-Customize-Your-Store�https://support.ecwid.com/hc/en-us/sections/201758475-Manage-Your-Ecwid-Store�https://www.ecwid.com/blog�product-browser-attributesProduct SKU�product-browser-attributesProduct price�select product�vc-blockOnline store�vc-tabOnline store�«Buy now» button�Project-Id-Version: Ecwid Shopping Cart 4.9.4 Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/ecwid-shopping-cart PO-Revision-Date: 2019-06-13 13:39+0400 Last-Translator: Language-Team: Language: ru_RU MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Generator: Poedit 3.4.1 �Спасибо! Мы скоро свяжемся с вами.�Метка "В наличии"�Блог %s�Интернет-магазин %s�Магазин %s — Настройки внешнего вида�Магазин %s�Страница %s-магазина�%s совместим с темой<br>"%s" вашего сайта из коробки.�Плагин %s работает неправильно с моей "%s" темой�%s товар�Товары и категории магазина %s�Настройки %s�Настройки %s�Витрина магазина�%s хранит данные товаров магазина в защищенном облачном хранилище, и показывает их прямо на странице магазина, когда посетитель открывает товар. Поэтому данные товаров не хранятся на вашем сайте, а поиск по сайту находит только страницы и записи сайта — не находит товары магазина. Эта настройка включает локальное хранение товаров: данные товаров будут храниться и в облачном хранилище, и прямо на вашем сайте. Поиск по сайту будет показывать страницы товаров магазина так же, как записи или страницы, размещенные на сайте.�%s — Дополнительные настройки�2 колонки, изображение слева�2 колонки, изображение справа�3 колонки, изображение слева�3 колонки, изображение справа�<a %s>Интернет магазин построен на Эквиде</a>�<a %s>Отвязать Эквид-аккаунт от сайта и подключить другой</a>�Доступ к панели управления %s�Добавить товар�Добавить магазин�Показывать рамку�Список товаров�Добавить в меню�Подключите свой Эквид-магазин к сайту <nobr>в два клика</nobr>�Кроме того, вы можете добавить отдельные элементы магазина в сайдбар сайта используя <a %s>встроенные виджеты WordPress</a>�Добавляет виджет корзины покупателя для быстрого доступа к добавленным товарам.�Добавляет компактный виджет корзины покупателя для быстрого доступа к добавленным товарам.�Добавляет плавающий виджет корзины со счетчиком товаров.�Показывает список корневых категорий для удобной навигации по магазину.�Показывает вертикальный список категорий для удобной навигации по магазину.�Дополнительные�Дополнительные настройки�Разрешить этому пользователю доступ к панели управления %s.�Уже есть аккаунт в %s?�Уже есть аккаунт в Эквиде?�Внешний вид�Настройки внешнего вида�Автоматическая подстройка внешнего вида магазина под стили темы сайта. Включите эту опцию, чтобы %s определял цвета и шрифты сайта и использовал их в каталоге товаров.�Количество в наличии�Вернуться к настройкам�Цвет фона�Подписка�Справа внизу�Цепочка навигации�Показать все товары.�Категории магазина�Загрузка товаров и категорий в магазин из внешних источников или других e-commerce решений�Цвет кнопок�Кнопка “Купить”�По умолчанию, магазин показывает корневые категории. Здесь можно выбрать другую категорию для отображения, когда покупатель впервые открывает ваш магазин. Это может быть полезно, если у вас есть только одна категория или вы хотите показывать определённые набор товаров (например, специальные предложения) новым пользователям.�Кеширование и ускорение главной страницы магазина <sup>новое</sup>�Корзина�Дизайн списка категорий�Формат карточки категории�Категория, показываемая по умолчанию�Формат изображения категории�Размер изображения категории�По центру�Выровнять карточку по центру страницы�Тема "Хамелеон"�Изменить�Выбрать товар�Выбрать товар�Выберите элементы товара для отображения�Виджеты витрины магазина�Настройки цвета�Работает с вашей темой�Продолжить установку�Завершите установку и начните продавать�Поздравляем!�Подключите магазин�Подключите свой Эквид-магазин к сайту <nobr>в два клика</nobr>�Подключить магазин�Подключить магазин к своему сайту�Подключите магазин<br /> к своему WordPress сайту�Ошибка подключения: после нажатия на кнопку, авторизуйтесь в Эквиде и предоставьте запрашиваемые права.�Ошибка подключения: после нажатия на кнопку, авторизуйтесь в %s и предоставьте запрашиваемые права.�Ошибка подключения: пожалуйста, нажмите кнопку ещё раз и предоставьте права доступа плагину<br /> для публикации своего Эквид-магазина на этом сайте.�Связь с техподдержкой�Создать магазин бесплатно�Создать магазин�Зарегистрируйте бесплатный аккаунт в Эквиде.<br /> Кредитная карта не требуется�Создание магазина�Текущая страница�Единый вход для покупателей�Изменение дизайна�Внешний вид�Консоль�Категория, показываемая по умолчанию�Вид страницы продуктов по умолчанию�Вид страницы результатов поиска по умолчанию�Обработано удалённых товаров: %1$s из %2$s�Демонстрационный магазин�Демонстрационный магазин�Определять автоматически�Отсоединить магазин�Показывать цепочку навигации�Показывать иконку корзины�Показывать меню категорий над списком продуктов�Показывать меню категорий над витриной�Показывать меню внизу страницы�Товар с кнопкой "Купить"�Показывать поиск над витриной�Показывать форму поиска над списком продуктов�Показывать ссылку “Войти”�Показывать меню сортировки�Выбранный товар�Показывает ссылку на страницу магазина, позволяющую покупателю быстро открыть магазин из любой страницы на сайте.�Показывает список товаров, просмотренных покупателем. Позволяет покупателю быстро перейти к товарам, которые их заинтересовали раньше.�Показывает случайный товар из магазина, чтобы привлечь внимание покупателя.�Показывает покупателю поле поиска товаров в магазине�Показывает витрину магазина, корзину и оформление заказа�Список последних добавленных товаров из магазина.�Если вам нравится Эквид и вы хотите помочь ему стать самым популярным конструктором интернет-магазинов, вы можете добавить значок на сайт, чтобы показать посетителям, что вы пользуетесь Эквидом.�Вам нравится ваш магазин? Будем благодарны, если вы оставите отзыв и проголосуете за %s на сайте WordPress.�Ещё нет аккаунта в %s? Зарегистрируйтесь�Ещё нет аккаунта в Эквиде?�Готово�Скачать лог-файл�Например, как настроить платежи?�Эквид�Значок Эквида�Начало работы�Пункт меню Эквид�Виджеты для электронной коммерции Эквид�Решение для электронной коммерции Эквид�Беспланный конструктов интернет-магазинов Эквид�Эквид сертифицирован по стандарту PCI DSS Level 1. Это высший уровень соответствия мировым требованиям безопасной передачи данных: информация вашего магазина и ваших клиентов надёжно защищена. <a target="_blank" href="https://support.ecwid.com/hc/ru/articles/207101259-Wordpress#security">Подробнее о безопасности.</a>�Эквид — это конструктор интернет-магазина.�Эквид совместим с любой темой, будь то бесплатная тема из каталога WordPress.org, платная тема или заказная разработка. Ваш магазин должен работать хорошо в любом случае. Если вы ищете хорошие премиум-темы, мы рекомендуем <a href="%s">TemplateMonster</a>�Эквид совместим с темой<br>"%s" вашего сайта из коробки.�Лучший способ быстро изменить что-либо в товаре – воспользоваться мобильным приложение. Приложение Эквида для iOS и Android доступно с любым платным тарифным планом и поможет вам управлять заказами, вносить изменения в каталог товаров и регистрировать новые покупки при личных встречах с покупателями где бы вы ни находились. <a target="_blank" href="https://www.ecwid.ru/blog/quick-mobile-connect.html">Подробнее о мобильном приложении.</a>�Интернет-магазин Эквид�Виджет интернет-магазина Эквид�Задать вручную�Настроить внешний вид�Редактировать категорию�Редактировать товар�Настройки магазина�Показывать корзину у меню категорий�Введите ваш ID Магазина�Преимущества�Положение панели фильтров�Начало�Форум�Бесплатный план и обновления�Всегда доступный бесплатный план с множеством<br>возможностей. Обновления магазина автоматизированы,<br> бесплатны и не требуют вашего участия.�Регистрация бесплатна, кредитная карта не требуется�Часто Задаваемые Вопросы�Установить мобильное приложение %s�Зарегистрировать аккаунт %s�Продавать онлайн – это просто�Глобальное решение�Приветствуем!�Добро пожаловать в %s!�Сетка�Вид "сетка"�Помощь�Здесь вы можете задать количество отображаемых продуктов на странице. Эти цифры определяют максимальные значения. Если на странице в сетке продуктов будет недостаточно места для отображения всех столбцов, %s уменьшит их количество.�Скрывать�Горизонтально�Как добавить корзину в боковую панель сайта (sidebar)?�Как быстро внести изменения в каталог товаров?�Как вам помочь?�Как добавить категории в меню сайта?�Как добавить товары в карту сайта (sitemap)?�Сколько стоит Эквид?�Безопасен ли Эквид?�Как добавить отдельный товар с корзиной на страницу сайта?�Как добавить магазин на Facebook?�Я не смог подобрать тему, которая хорошо работает с %s�У меня возникла проблема с %s-магазином�Тема моего сайта: %s�Название по наведению мыши�Полноразмерные изображения�Формат галереи�Только изображение�Вставить�Вставить в страницу�Интеграция с поиском на сайте�Как добавить магазин на домашнюю страницу?�Существуют ли темы для Эквида?�Общайтесь с другими пользователями Эквида и командой поддержки клиентов по любым вопросам, связанным с работой вашего магазина.�По ширине�База знаний�L�Горизонтальные 3:2�Горизонтальные 4:3�Конец�Последняя синхронизация�Новые товары�По левому краю�Цвет ссылок�Список�Вид "список"�Похоже, что ваш сервер не поддерживает удаленные POST запросы, которые необходимы для работы %s API. Пожалуйста, свяжитесь с хостинг-провайдером, чтобы исправить это.�M�Главная страница магазина�Управляйте магазином с iPhone, iPad, Android�Управление магазином�Управлять магазином�Вы сможете добавлять товары, обрабатывать заказы и управлять магазином прямо на этой странице.�Подробнее�Эквид уже используют 800,000 продавцов из 175 стран�Профиль�Название�Больше не показывать это сообщение�Следующая�Следующая�Кредитная карта не требуется�Не синхронизовано�Новые SEO URLs магазина будут включены по умолчанию в одной из будущих версий плагина. Поэтому мы рекомендуем вам включить эту опцию и попробовать SEO URLs на своём сайте. Если вы заметите какие-либо проблемы, пожалуйста, <a %s>дайте нам знать</a>, мы поможем.�По запросу <span class="empty-page__term">"{{ data.term }}"</span> ничего не найдено�Количество категорий в ряд�Количество продуктов на странице�Количество товаров для отображения�Слева�Справа�Приложения для магазина�Открыть панель управления�Настройки магазина�Параметры�Или вы можете добавить форму поиска на ваш сайт с помощью <a href="%s">виджетов WordPress</a>�Или вы можете добавить вертикальное меню категорий на ваш сайт с помощью <a href="%s">виджетов WordPress</a>�Заказы�Мы предлагаем 4 тарифных плана: от бесплатного с 10 товарами до безлимитного. Платные тарифные планы расширяют возможности магазина и открывают персональную техническую поддержку в реальном времени.<br /><a target="_blank" href="%s">Подробнее о расценках.</a>�Мы уже работаем над исправлением проблемы. Перезагрузите страницу через пару минут. Если проблема сохранится, пожалуйста, <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">свяжитесь с нами</a>.�Более миллиона продавцов из 175 стран�Сертификация по PCI DSS�Изображение�Мы добавили этот инструмент недавно, и он сейчас работает в бета-режиме. Если вы обнаружите какие-либо проблемы в его работе, пожалуйста, <a %s>сообщите нам</a>.�Эта функция сейчас работает в бета-режиме. Если вы обнаружите проблемы в её работе, пожалуйста, <a %s>сообщите нам</a>.�Подпишитесь на платный план, чтобы получить эту функциональность.�Плагин успешно установлен!�Приложения для Эквида�Вертикальные 2:3�Вертикальные 3:4�Положение на странице�Подготовка панели управления�Предыдущая�Цена�Цвет цены�Дизайн списка товаров�Дизайн страницы товара�Артикул товара�Поиск товаров�Выравнивание данных товара�Каталог товаров отображается по умолчанию�Формат карточки товара�Цена товара�Поле "Количество"�Информация на странице�Формат изображения товара�Размер изображения товара�Название товара�Товары�Товары успешно синхронизированы. Страницы товаров обновлены.�Загружено товаров: %1$s из %2$s�Перейдите по этой ссылке, чтобы предоставить доступ.�Количество�Есть вопросы?�Случайный товар�Оценить %s на WordPress.org�Подключить панель управления�Посмотреть FAQ�Просмотренные товары�Рекомендации для магазина�Обновить список категорий�Зарегистрируйтесь�Зарегистрироваться бесплатно�Сообщить о проблеме�Адаптивный дизайн�По правому краю�S�SEO URLs�Артикул�Продажи�Сохранить и присоединить�Сохранить изменения�Поиск�Искать в базе знаний�Эквид сертифицирован по стандарту Level 1 PCI DSS – самому высокому уровню безопасности передачи данных.�Посмотреть все�Выбрать все�Продавайте там,<br> где ваши клиенты�Продавайте там,<br> где ваши клиенты�Отправить�Письмо в службу поддержки�Не удалось отправить сообщение�Задать вручную�Настроить магазин�Настройки�Установка�Кнопки "Поделиться"�Магазин�Корзина�Корзина (Плавающая)�Корзина (Мини)�Показывать�Показывать доп.изображение при наведении мыши�Меню категорий�Показывать описание под изображением�Мини-корзина�Показывать при наведении мыши�Показывать цену в кнопке "Купить"�Показывать цену в кнопке «Купить»�Показывать рамку карточки товара�Показывать изображения товаров�Поиск�Объединяет учетную запись покупателя на сайте с его учетной записью в %s. Когда единый вход включен, покупателю не нужно логиниться дважды – на сайте и в магазине. После входа в свой аккаунт на сайте покупатель может смотреть историю своих заказов и оформлять новый заказ с предзаполненным email и адресом доставки.�Простите, у нас технические проблемы.�Квадратные 1:1�Начните продавать�Начните продавать<br>на своём WordPress <nobr>сайте бесплатно</nobr>�Откройте продажи на своём WordPress сайте, а затем разместите витрину магазина в социальных сетях, блоге, и выгрузите товары на торговые площадки Яндекс.Маркет, eBay и Google Shopping.�Есть вопросы? Свяжитесь с нами, мы будем рады вам помочь.�Магазин�Категории магазина�Главная страница магазина�ID Магазина�ID магазина – это уникальный номер аккаунта в %1$s. Вы можете его найти в панели управления %1$s-магазина: откройте страницу "<a %2$s>Консоль</a>" и найдите текст "<b>ID Магазина NNNNNNN</b>". �Название блока�Навигация магазина�Страница магазина�Ссылка на магазин�Корневые категории магазина�Витрина�Магазин создан�Корневая категория магазина�Магазин с меню категорий�Тема�Синхронизировать товары�Таблица�Вид "таблица"�Магазин почти готов — осталось несколько простых шагов�Техническая информация�Текст ссылки�Цвет текста�Спасибо, что выбрали %s для создания вашего интернет-магазина. Первый шаг к успешной онлайн торговле — настройка магазина! Давайте добавим магазин на ваш сайт за несколько простых шагов.�Корневые категории добавляются в выпадающее меню автоматически�Темы для Эквида�До открытия магазина на вашем WordPress сайте<br /> осталось несколько простых шагов�До открытия магазина на вашем WordPress сайте<br /> осталось несколько простых шагов�Включает кеширование главной страницы магазина для ускорения загрузки витрины в браузере покупателя.�Включает новый "чистый" формат ссылок на товары и категории в магазине. Новые ссылки не содержат символа "#" и лучше индексируются поисковыми системами.�Название�Название на изображении�Только название�Название или артикул�Название под изображением�Название:�Добавьте дополнительные элементы магазина, перетащив виджеты %s в нужное место сайта. После установки виджетов можете вернуться к настройкам магазина.�Чтобы добавить магазин на сайт, введите ID вашего Ecwid-магазина.�Чтобы плагин автоматически объединял учетные записи пользователя на сайте и в магазине %s, нужно дать ему доступ до данных покупателей в магазине. <a %s>Перейдите по этой ссылке, чтобы предоставить доступ</a>.�Чтобы показать товары магазина в диалоге вставки товара, плагину нужно подключиться к вашему магазину %s. От вас потребуется только разрешить плагину доступ к вашему магазину.�Для создания карты сайта мы рекомендуем использовать плагин <a target="_blank" href="https://ru.wordpress.org/plugins/google-sitemap-plugin/">Google XML Sitemaps</a> или <a target="_blank" href="https://ru.wordpress.org/plugins/wordpress-seo/">Yoast Wordpress SEO</a>. После установки плагин создаст карту сайта, содержащую ссылки на страницы товаров и категорий, и ускорит их индексацию поисковыми движками. Чтобы воспользоваться этой возможностью подпишитесь на любой <a target="_blank" href="https://www.ecwid.ru/pricing">платный тарифный план</a>.�Нажмите на кнопку, авторизуйтесь в %1$s и выдайте запрошенные права доступа�Чтобы включить SEO URLs в магазине, вам потребуется для начала включить улучшенную структуру постоянных ссылок в настройках Wordpress. Для этого в меню "<a%s>Настройки -> Постоянные ссылки</a>" выберите тип ссылок "Название записи".�Чтобы включить интеграцию с поиском, нужно дать плагину доступ до данных товаров в магазине.�Чтобы разместить товар магазина на страницах сайта отдельно от остальных, используйте короткий код [ecwid_product]. <a target="_blank" href="https://support.ecwid.com/hc/ru/articles/207101259-Wordpress#embedasingleproduct">Пошаговая инструкция.</a>�Чтобы обновить дизайн страницы товара и управлять настройками вида в редакторе, включите опцию “Обновленный внешний вид страницы товара” в панели управления магазина (<a href="admin.php?page=ec-store-admin-whatsnew">Настройки → Обновления</a>)�Чтобы обновить дизайн своего магазина и управлять настройками вида в редакторе, включите опцию “Обновленный внешний вид каталога товаров на витрине” в панели управления магазина (“<a href="admin.php?page=ec-store&ec-store-page=whatsnew">Настройки → Обновления</a>”)�Чтобы покупатели смогли регистрироваться, убедитесь, что регистрация включена в <a %s>настройках сайта</a>�Чтобы использовать этот функционал, включите опцию “Обновленный внешний вид каталога товаров на витрине” в панели управления магазина (<a%s>Настройки → Обновления</a>)�Справа вверху�Попробуйте другой запрос.�Ваш вопрос�К сожалению, создание новой учетной записи в настоящее время недоступно для вашей страны. Вы можете подключить существующую учетную запись.�Обновить�Подпишитесь на платный план, чтобы получить эту возможность�Используйте мобильное приложение %s, чтобы получать и обрабатывать заказы в любой точке продаж. Все изменения синхронизируются с магазином на лету.�Используйте наше мобильное приложение, чтобы получать и обрабатывать заказы в любой точке продаж. Все изменения синхронизируются с магазином на лету.�Вертикально�Открыть страницу магазина�Хотите подключить другой %s-магазин?�Товары загружаются. Это может занять несколько минут. Пожалуйста, не перезагружайте страницу.�Добро пожаловать в %s!�Где найти ID Магазина:�Оптовые цены�Вы можете добавить корзину, форму для поиска товаров и другие элементы магазина в боковую панель на странице <a href="%s">«Внешний вид > Виджеты»</a>.�Перейдите на страницу «Внешний вид > Меню», добавьте элемент «Магазин с меню категорий» в меню и сохраните изменения. Сразу после сохранения меню сайта пополнится выпадающим списком категорий вашего магазина.�Вы можете разместить магазин не только на своём WordPress-сайте, но и на любой другой странице включая Facebook. Зеркальная копия витрины мгновенно отражает любые изменения в магазине. Новые товары в каталоге, наличие на складе, заказы и покупатели – все данные распространяются между витринами на лету. <a target="_blank" href="https://support.ecwid.com/hc/ru/articles/115005892705-%D0%9C%D0%B0%D0%B3%D0%B0%D0%B7%D0%B8%D0%BD-%D0%BD%D0%B0-%D0%A4%D0%B5%D0%B9%D1%81%D0%B1%D1%83%D0%BA%D0%B5">Подробнее об установке на Facebook.</a>�Перейдите на страницу <a href="options-reading.php">«Настройки > Чтение»</a> и выберите «Магазин » в выпадающем списке главной страницы.�Включите дополнительный плавающий виджет корзины, который будет появляться на страницах сайта. Доступно в меню “<a href="%1$s">Внешний вид → Настроить → %2$s</a>”�Тут можно отправить новый запрос.�Вы пока что не просмотрели ни одного товара. Открыть магазин.�Вы добавили витрину магазина на несколько страниц сайта. С помощью этой настройки вы можете выбрать, какую из страниц считать главной витриной — на неё будут ссылаться пункты меню и сайдбар-виджеты.�Если вы добавили виджет корзины в боковое меню, следует отключить эту настройку�Вам будет предложено войти в панель управления %s<br />и предоставить права доступа для отображения магазина на вашем сайте�Вам будет предложено войти в панель управления Эквида<br />и предоставить права доступа для отображения магазина на вашем сайте�%s-магазин подключен<br /> к вашему WordPress сайту�%s-магазин успешно подключен<br /> к вашему WordPress сайту�Сообщение отправлено�Товар�Панель управления магазином, встроенная в Wordpress.�Магазин почти готов!�Ваш магазин выглядит превосходно<br />на любом устройстве: планшете, смартфоне и ноутбуке.�Здесь будет отображаться ваш магазин.�Магазин открыт для покупателей�настроить внешний вид�Элементы виджета�Витрина магазина�https://support.ecwid.com/hc/ru�https://support.ecwid.com/hc/ru/articles/207101259-Wordpress-ORG�https://support.ecwid.com/hc/ru/requests/new�https://support.ecwid.com/hc/ru/search�https://support.ecwid.com/hc/ru/sections/201702859-%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F-%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F�https://support.ecwid.com/hc/ru/sections/201706719-%D0%9D%D0%B0%D1%87%D0%B0%D0%BB%D0%BE-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-�https://support.ecwid.com/hc/ru/sections/201706799-%D0%9F%D0%BE%D0%B4%D0%BF%D0%B8%D1%81%D0%BA%D0%B0�https://support.ecwid.com/hc/ru/sections/201758445-%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B4%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD%D0%B0-�https://support.ecwid.com/hc/ru/sections/201758475-%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BC%D0%B0%D0%B3%D0%B0%D0%B7%D0%B8%D0%BD%D0%BE%D0%BC�https://www.ecwid.ru/blog�Артикул�Цена�выбрать товар�Витрина магазина�Магазин�Кнопка «Купить»��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/languages/ecwid-shopping-cart-ru_RU.po������������������������������������������0000644�����������������00000251554�15122273603�0017637 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Copyright (C) 2017 Ecwid Shopping Cart # This file is distributed under the same license as the Ecwid Shopping Cart package. msgid "" msgstr "" "Project-Id-Version: Ecwid Shopping Cart 4.9.4\n" "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/ecwid-shopping-cart\n" "POT-Creation-Date: 2017-05-30 19:04:12+00:00\n" "PO-Revision-Date: 2019-06-13 13:39+0400\n" "Language: ru_RU\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Last-Translator: \n" "Language-Team: \n" "X-Generator: Poedit 2.2.3\n" #: ecwid-shopping-cart.php:820 msgid "%s plugin doesn't work well with my \"%s\" theme" msgstr "Плагин %s работает неправильно с моей \"%s\" темой" #: ecwid-shopping-cart.php:835 msgid "I have a problem with my %s store" msgstr "У меня возникла проблема с %s-магазином" #: ecwid-shopping-cart.php:863 templates/dashboard.php:44 msgid "Visit storefront" msgstr "Открыть страницу магазина" #: ecwid-shopping-cart.php:871 msgid "Manage my store" msgstr "Управлять магазином" #: ecwid-shopping-cart.php:879 msgid "Read FAQ" msgstr "Посмотреть FAQ" #: ecwid-shopping-cart.php:881 msgid "https://support.ecwid.com/hc/en-us/articles/360000635709-Customizing-design-of-your-Ecwid-store-on-a-Wordpress-site" msgstr "https://support.ecwid.com/hc/ru/articles/207101259-Wordpress-ORG" #: ecwid-shopping-cart.php:890 msgid "Report a problem with the store" msgstr "Сообщить о проблеме" #: ecwid-shopping-cart.php:1175 msgid "<a %s>Online store powered by %s</a>" msgstr "<a %s>Интернет магазин построен на Эквиде</a>" #: ecwid-shopping-cart.php:1497 includes/class-ecwid-nav-menus.php:111 #: includes/class-ecwid-nav-menus.php:297 #: includes/class-ecwid-nav-menus.php:300 #: includes/class-ecwid-nav-menus.php:308 msgid "Store" msgstr "Магазин" #: ecwid-shopping-cart.php:1555 msgid "%s settings" msgstr "Настройки %s" #: ecwid-shopping-cart.php:1723 includes/class-ecwid-admin.php:31 msgid "Setup" msgstr "Установка" #: ecwid-shopping-cart.php:1723 msgid "Settings" msgstr "Настройки" #: ecwid-shopping-cart.php:1799 includes/class-ecwid-admin.php:33 msgid "Dashboard" msgstr "Консоль" #: ecwid-shopping-cart.php:1801 includes/class-ecwid-admin.php:58 #: includes/class-ecwid-admin.php:59 includes/class-ecwid-products.php:242 msgid "Products" msgstr "Товары" #: ecwid-shopping-cart.php:1803 msgid "Orders" msgstr "Заказы" #: ecwid-shopping-cart.php:1805 includes/class-ecwid-nav-menus.php:144 msgid "Refresh categories list" msgstr "Обновить список категорий" #: ecwid-shopping-cart.php:1806 includes/class-ecwid-nav-menus.php:145 msgid "Done" msgstr "Готово" #: ecwid-shopping-cart.php:1807 includes/class-ecwid-nav-menus.php:146 msgid "The store top-level categories are automatically added to this drop-down menu" msgstr "Корневые категории добавляются в выпадающее меню автоматически" #: ecwid-shopping-cart.php:1916 includes/class-ecwid-oauth.php:336 msgid "To be able to choose a product to insert to your posts and pages, you will need to re-connect your site to your %s. This will only require you to accept permissions request – so that the plugin will be able to list your products in the \"Add product\" dialog." msgstr "Чтобы показать товары магазина в диалоге вставки товара, плагину нужно подключиться к вашему магазину %s. От вас потребуется только разрешить плагину доступ к вашему магазину." #: ecwid-shopping-cart.php:2420 msgid "Recommendations for Your Online Store" msgstr "Рекомендации для магазина" #: includes/class-ecwid-admin.php:21 msgid "%s shopping cart settings" msgstr "Настройки %s" #: includes/class-ecwid-admin.php:22 msgid "%s Store" msgstr "Магазин %s" #: includes/class-ecwid-admin.php:48 includes/class-ecwid-admin.php:49 msgid "Sales" msgstr "Продажи" #: includes/class-ecwid-admin.php:68 msgid "Appearance settings" msgstr "Настройки внешнего вида" #: includes/class-ecwid-admin.php:69 templates/product-popup.php:183 #: templates/store-popup.php:13 templates/store-popup.php:31 msgid "Appearance" msgstr "Внешний вид" #: includes/class-ecwid-admin.php:79 msgid "Advanced settings" msgstr "Дополнительные настройки" #: includes/class-ecwid-admin.php:80 msgid "Advanced" msgstr "Дополнительные" #: includes/class-ecwid-admin.php:93 includes/class-ecwid-admin.php:94 msgid "Help" msgstr "Помощь" #: includes/class-ecwid-integration-divibuilder.php:25 msgid "Ecwid" msgstr "Эквид" #: includes/class-ecwid-integration-divibuilder.php:41 msgid "Content" msgstr "" #: includes/class-ecwid-integration-divibuilder.php:44 msgid "Here you can create the content that will be used within the module." msgstr "" #: includes/class-ecwid-integration-divibuilder.php:49 msgid "Admin Label" msgstr "" #: includes/class-ecwid-integration-divibuilder.php:51 msgid "This will change the label of the module in the builder for easy identification." msgstr "" #: includes/class-ecwid-integration-divibuilder.php:54 msgid "CSS ID" msgstr "" #: includes/class-ecwid-integration-divibuilder.php:57 msgid "Enter an optional CSS ID to be used for this module. An ID can be used to create custom CSS styling, or to create links to particular sections of your page." msgstr "" #: includes/class-ecwid-integration-divibuilder.php:60 msgid "CSS Class" msgstr "" #: includes/class-ecwid-integration-divibuilder.php:63 msgid "Enter optional CSS classes to be used for this module. A CSS class can be used to create custom CSS styling. You can add multiple classes, separated with a space." msgstr "" #: includes/class-ecwid-message-manager.php:45 msgid "Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn't seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: \"The Wordpress function wp_remote_post() failed to connect a remote server because of some error: \"%s\". Seems like HTTP POST requests are disabled on this server\". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>." msgstr "" #: includes/class-ecwid-message-manager.php:194 msgid "Greetings! Your %s plugin is now active." msgstr "Добро пожаловать в %s!" #: includes/class-ecwid-message-manager.php:195 msgid "Take a few simple steps to complete store setup" msgstr "Магазин почти готов — осталось несколько простых шагов" #: includes/class-ecwid-message-manager.php:205 msgid "Set up your store" msgstr "Настроить магазин" #: includes/class-ecwid-message-manager.php:204 msgid "Your store is almost ready!" msgstr "Магазин почти готов!" #: includes/class-ecwid-message-manager.php:205 msgid "Complete setup and start selling" msgstr "Завершите установку и начните продавать" #: includes/class-ecwid-message-manager.php:206 msgid "Complete Setup" msgstr "Продолжить установку" #: includes/class-ecwid-message-manager.php:212 msgid "To add extra functions to your store, drag and drop %s store elements on your site. When you're done, you can get back to modifying your settings." msgstr "Добавьте дополнительные элементы магазина, перетащив виджеты %s в нужное место сайта. После установки виджетов можете вернуться к настройкам магазина." #: includes/class-ecwid-message-manager.php:213 msgid "Back to Store Settings" msgstr "Вернуться к настройкам" #: includes/class-ecwid-message-manager.php:220 msgid "Do you like your %s online store? We'd appreciate it if you add your review and vote for the plugin on WordPress site." msgstr "Вам нравится ваш магазин? Будем благодарны, если вы оставите отзыв и проголосуете за %s на сайте WordPress." #: includes/class-ecwid-message-manager.php:224 msgid "Rate %s at WordPress.org" msgstr "Оценить %s на WordPress.org" #: includes/class-ecwid-nav-menus.php:25 msgid "Ecwid Menu Item" msgstr "Пункт меню Эквид" #: includes/class-ecwid-nav-menus.php:143 msgid "Store Page" msgstr "Страница магазина" #: includes/class-ecwid-nav-menus.php:254 msgid "Select All" msgstr "Выбрать все" #: includes/class-ecwid-nav-menus.php:257 msgid "Add to Menu" msgstr "Добавить в меню" #: includes/class-ecwid-nav-menus.php:273 msgid "Cart" msgstr "Корзина" #: includes/class-ecwid-nav-menus.php:276 #: includes/widgets/class-ecwid-widget-minicart.php:6 msgid "Shopping Cart" msgstr "Корзина" #: includes/class-ecwid-nav-menus.php:281 #: includes/class-ecwid-nav-menus.php:284 #: includes/widgets/class-ecwid-widget-search.php:10 msgid "Product Search" msgstr "Поиск товаров" #: includes/class-ecwid-nav-menus.php:289 #: includes/class-ecwid-nav-menus.php:292 msgid "My Account" msgstr "Профиль" #: includes/class-ecwid-nav-menus.php:305 msgid "Store with Categories Menu" msgstr "Магазин с меню категорий" #: includes/class-ecwid-product-popup.php:94 msgid "Add Product" msgstr "Добавить товар" #: includes/class-ecwid-product-popup.php:134 msgid "First Page" msgstr "Начало" #: includes/class-ecwid-product-popup.php:135 msgid "Previous Page" msgstr "Предыдущая" #: includes/class-ecwid-product-popup.php:136 msgid "Next Page" msgstr "Следующая" #: includes/class-ecwid-product-popup.php:137 msgid "Last Page" msgstr "Конец" #: includes/class-ecwid-store-editor.php:44 templates/store-popup.php:11 #: templates/store-popup.php:19 msgid "Add Store" msgstr "Добавить магазин" #: includes/class-ecwid-store-editor.php:52 msgid "Edit Store" msgstr "Настройки магазина" #: includes/class-ecwid-store-editor.php:67 msgid "Edit Appearance" msgstr "Настроить внешний вид" #: includes/faq_entries.php:5 msgid "How secure is this plugin? Is my store PCI DSS compliant?" msgstr "Безопасен ли Эквид?" #: includes/faq_entries.php:6 msgid "Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means you won't have any banking compliance issues when selling online with Ecwid. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#security\">More details.</a>" msgstr "Эквид сертифицирован по стандарту PCI DSS Level 1. Это высший уровень соответствия мировым требованиям безопасной передачи данных: информация вашего магазина и ваших клиентов надёжно защищена. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/ru/articles/207101259-Wordpress#security\">Подробнее о безопасности.</a>" #: includes/faq_entries.php:12 msgid "How can I manage my store from a mobile device?" msgstr "Как быстро внести изменения в каталог товаров?" #: includes/faq_entries.php:13 msgid "Ecwid provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. <a target=\"_blank\" href=\"https://www.ecwid.com/ecwid-mobile\">More details.</a>" msgstr "Лучший способ быстро изменить что-либо в товаре – воспользоваться мобильным приложение. Приложение Эквида для iOS и Android доступно с любым платным тарифным планом и поможет вам управлять заказами, вносить изменения в каталог товаров и регистрировать новые покупки при личных встречах с покупателями где бы вы ни находились. <a target=\"_blank\" href=\"https://www.ecwid.ru/blog/quick-mobile-connect.html\">Подробнее о мобильном приложении.</a>" #: includes/faq_entries.php:20 msgid "How to set up a storefront on Facebook with Ecwid?" msgstr "Как добавить магазин на Facebook?" #: includes/faq_entries.php:21 msgid "You can add your online store to your Facebook business page. No addons needed. Ecwid will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/115005892705-Facebook-Shop\">More details.</a>" msgstr "Вы можете разместить магазин не только на своём WordPress-сайте, но и на любой другой странице включая Facebook. Зеркальная копия витрины мгновенно отражает любые изменения в магазине. Новые товары в каталоге, наличие на складе, заказы и покупатели – все данные распространяются между витринами на лету. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/ru/articles/115005892705-%D0%9C%D0%B0%D0%B3%D0%B0%D0%B7%D0%B8%D0%BD-%D0%BD%D0%B0-%D0%A4%D0%B5%D0%B9%D1%81%D0%B1%D1%83%D0%BA%D0%B5\">Подробнее об установке на Facebook.</a>" #: includes/faq_entries.php:28 msgid "How can I add a cart widget to my site sidebar?" msgstr "Как добавить корзину в боковую панель сайта (sidebar)?" #: includes/faq_entries.php:30 msgid "You can add product search box, cart widget and more on the <a href=\"%s\">\"Appearance / Widgets page\"</a> here in your site admin. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#sidebarwidgets\">More details.</a>" msgstr "Вы можете добавить корзину, форму для поиска товаров и другие элементы магазина в боковую панель на странице <a href=\"%s\">«Внешний вид > Виджеты»</a>." #: includes/faq_entries.php:38 msgid "How much does Ecwid cost?" msgstr "Сколько стоит Эквид?" #: includes/faq_entries.php:39 msgid "Our 4 account types vary by number of products, types of functionality, and level of support. For more information, check out our <a target=\"_blank\" href=\"%s\">pricing page.</a><br /><br />Pro Tip: You can also save money by enrolling in our annual plans." msgstr "Мы предлагаем 4 тарифных плана: от бесплатного с 10 товарами до безлимитного. Платные тарифные планы расширяют возможности магазина и открывают персональную техническую поддержку в реальном времени.<br /><a target=\"_blank\" href=\"%s\">Подробнее о расценках.</a>" #: includes/faq_entries.php:45 msgid "How do I add store categories to the site menu?" msgstr "Как добавить категории в меню сайта?" #: includes/faq_entries.php:46 msgid "You can add the store categories menu to your site menu to help your customers easily navigate your site. Just open \"Appearance > Menus\" in your WordPress control panel and add the \"Store with Categories Menu\" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site." msgstr "Перейдите на страницу «Внешний вид > Меню», добавьте элемент «Магазин с меню категорий» в меню и сохраните изменения. Сразу после сохранения меню сайта пополнится выпадающим списком категорий вашего магазина." #: includes/faq_entries.php:52 msgid "How do I put my products in the sitemap?" msgstr "Как добавить товары в карту сайта (sitemap)?" #: includes/faq_entries.php:53 msgid "To create sitemap for your Wordpress site we suggest using <a target=\"_blank\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google XML Sitemaps</a> or <a target=\"_blank\" href=\"https://wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>.  plugins. These plugins are fully compatible with Ecwid and allow to generate a sitemap that will contain links to categories and product pages, so the store pages will get indexed faster. Please note that this option is available to <a target=\"_blank\" href=\"https://www.ecwid.com/pricing\">paid Ecwid users</a>." msgstr "Для создания карты сайта мы рекомендуем использовать плагин <a target=\"_blank\" href=\"https://ru.wordpress.org/plugins/google-sitemap-plugin/\">Google XML Sitemaps</a> или <a target=\"_blank\" href=\"https://ru.wordpress.org/plugins/wordpress-seo/\">Yoast Wordpress SEO</a>. После установки плагин создаст карту сайта, содержащую ссылки на страницы товаров и категорий, и ускорит их индексацию поисковыми движками. Чтобы воспользоваться этой возможностью подпишитесь на любой <a target=\"_blank\" href=\"https://www.ecwid.ru/pricing\">платный тарифный план</a>." #: includes/faq_entries.php:58 msgid "How to add a single product with the add to bag button to the site pages?" msgstr "Как добавить отдельный товар с корзиной на страницу сайта?" #: includes/faq_entries.php:59 msgid "To feature a single product on a separate page or blog post of your site, use <b>[ecwid_product]</b> shortcode. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#buynow\">How to use it.</a>" msgstr "Чтобы разместить товар магазина на страницах сайта отдельно от остальных, используйте короткий код [ecwid_product]. <a target=\"_blank\" href=\"https://support.ecwid.com/hc/ru/articles/207101259-Wordpress#embedasingleproduct\">Пошаговая инструкция.</a>" #: includes/faq_entries.php:65 msgid "Is it possible to display my store on the site home page?" msgstr "Как добавить магазин на домашнюю страницу?" #: includes/faq_entries.php:66 msgid "You can display your store on the site main page. Adjust the \"Reading\" settings of your site as described in our <a target=\"_blank\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#displaystoreonhomepage\">Help Center.</a>" msgstr "Перейдите на страницу <a href=\"options-reading.php\">«Настройки > Чтение»</a> и выберите «Магазин\t» в выпадающем списке главной страницы." msgid "Is there a WordPress theme for Ecwid?" msgstr "Существуют ли темы для Эквида?" #: includes/faq_entries.php:66 msgid "Ecwid is compatible with any WordPress theme. Be it a free theme from WordPress.org catalog, a premium theme by a third-party vendor or a custom-made theme, your Ecwid store will work good with it. If you want a premium theme, we recommend <a href=\"%s\">TemplateMonster themes</a>" msgstr "Эквид совместим с любой темой, будь то бесплатная тема из каталога WordPress.org, платная тема или заказная разработка. Ваш магазин должен работать хорошо в любом случае. Если вы ищете хорошие премиум-темы, мы рекомендуем <a href=\"%s\">TemplateMonster</a>" #: includes/oembed.php:68 includes/oembed.php:97 templates/help.php:96 msgid "See more" msgstr "Посмотреть все" #: includes/themes/class-ecwid-theme-twentyfifteen.php:32 #: includes/themes/class-ecwid-theme-twentyfifteen.php:38 #: includes/themes/class-ecwid-theme-twentyseventeen.php:47 #: includes/themes/class-ecwid-theme-twentyseventeen.php:53 #: includes/themes/class-ecwid-theme-twentysixteen.php:35 #: includes/themes/class-ecwid-theme-twentysixteen.php:41 #: includes/widgets/class-ecwid-widget-store-link.php:29 msgid "Shop" msgstr "Магазин" #: includes/widgets/class-ecwid-widget-badge.php:9 msgid "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid." msgstr "Если вам нравится Эквид и вы хотите помочь ему стать самым популярным конструктором интернет-магазинов, вы можете добавить значок на сайт, чтобы показать посетителям, что вы пользуетесь Эквидом." #: includes/widgets/class-ecwid-widget-badge.php:10 msgid "Ecwid Badge" msgstr "Значок Эквида" #: includes/widgets/class-ecwid-widget-badge.php:17 #: includes/widgets/class-ecwid-widget-badge.php:23 msgid "Ecwid shopping cart widget" msgstr "Виджет интернет-магазина Эквид" #: includes/widgets/class-ecwid-widget-badge.php:29 #: includes/widgets/class-ecwid-widget-badge.php:65 msgid "Ecwid ecommerce solution" msgstr "Решение для электронной коммерции Эквид" #: includes/widgets/class-ecwid-widget-badge.php:35 #: includes/widgets/class-ecwid-widget-badge.php:71 msgid "Ecwid free shopping cart" msgstr "Беспланный конструктов интернет-магазинов Эквид" #: includes/widgets/class-ecwid-widget-badge.php:41 #: includes/widgets/class-ecwid-widget-badge.php:53 msgid "Ecwid shopping cart" msgstr "Интернет-магазин Эквид" #: includes/widgets/class-ecwid-widget-badge.php:47 #: includes/widgets/class-ecwid-widget-badge.php:59 msgid "Ecwid e-commerce widgets" msgstr "Виджеты для электронной коммерции Эквид" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:15 msgid "Adds a shopping cart widget to the top right corner of your site." msgstr "Добавляет плавающий виджет корзины со счетчиком товаров." #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:16 msgid "Shopping Cart (Floating)" msgstr "Корзина (Плавающая)" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:110 msgid "Position" msgstr "Положение на странице" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:113 msgid "Bottom right" msgstr "Справа внизу" #: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:118 msgid "Top right" msgstr "Справа вверху" #: includes/widgets/class-ecwid-widget-minicart-miniview.php:5 msgid "Adds a compact cart widget for customer to see the products they added to the cart." msgstr "Добавляет компактный виджет корзины покупателя для быстрого доступа к добавленным товарам." #: includes/widgets/class-ecwid-widget-minicart-miniview.php:6 msgid "Shopping Cart (Mini)" msgstr "Корзина (Мини)" #: includes/widgets/class-ecwid-widget-minicart-miniview.php:44 #: includes/widgets/class-ecwid-widget-minicart.php:44 #: includes/widgets/class-ecwid-widget-search.php:49 #: includes/widgets/class-ecwid-widget-vcategories.php:43 #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:71 msgid "Title:" msgstr "Название:" #: includes/widgets/class-ecwid-widget-minicart.php:5 msgid "Adds a cart widget for customer to see the products they added to the cart." msgstr "Добавляет виджет корзины покупателя для быстрого доступа к добавленным товарам." #: includes/widgets/class-ecwid-widget-recently-viewed.php:9 msgid "Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop." msgstr "Показывает список товаров, просмотренных покупателем. Позволяет покупателю быстро перейти к товарам, которые их заинтересовали раньше." #: includes/widgets/class-ecwid-widget-recently-viewed.php:10 #: includes/widgets/class-ecwid-widget-recently-viewed.php:153 msgid "Recently Viewed Products" msgstr "Просмотренные товары" #: includes/widgets/class-ecwid-widget-recently-viewed.php:124 #: includes/widgets/class-ecwid-widget-recently-viewed.php:154 msgid "You have not viewed any product yet. Open store." msgstr "Вы пока что не просмотрели ни одного товара. Открыть магазин." #: includes/widgets/class-ecwid-widget-recently-viewed.php:164 #: templates/product-popup.php:160 msgid "Title" msgstr "Название" #: includes/widgets/class-ecwid-widget-recently-viewed.php:165 msgid "Store Link Title" msgstr "Название блока" #: includes/widgets/class-ecwid-widget-recently-viewed.php:166 msgid "Number of products to show" msgstr "Количество товаров для отображения" #: includes/widgets/class-ecwid-widget-search.php:9 msgid "Displays a simple search box for your customers to find a product in your store" msgstr "Показывает покупателю поле поиска товаров в магазине" #: includes/widgets/class-ecwid-widget-store-link.php:5 msgid "Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site." msgstr "Показывает ссылку на страницу магазина, позволяющую покупателю быстро открыть магазин из любой страницы на сайте." #: includes/widgets/class-ecwid-widget-store-link.php:6 msgid "Store Page Link" msgstr "Ссылка на магазин" #: includes/widgets/class-ecwid-widget-store-link.php:33 msgid "Text" msgstr "Текст ссылки" #: includes/widgets/class-ecwid-widget-vcategories.php:5 msgid "Adds vertical categories block to let the customer navigate your store." msgstr "Показывает вертикальный список категорий для удобной навигации по магазину." #: includes/widgets/class-ecwid-widget-vcategories.php:6 msgid "Store Categories" msgstr "Категории магазина" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:11 msgid "Adds root categories list to the sidebar to let your customers navigate the store." msgstr "Показывает список корневых категорий для удобной навигации по магазину." #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:12 msgid "Store Root Categories" msgstr "Корневые категории магазина" #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:22 #: includes/widgets/class-ecwid-widget-vertical-categories-list.php:68 msgid "Browse by Category" msgstr "Категории магазина" #: lib/ecwid_platform.php:59 templates/product-popup.php:171 msgid "Price" msgstr "Цена" #: templates/admin-footer.php:4 msgid "Manage Store on iPhone, iPad or Android" msgstr "Управляйте магазином с iPhone, iPad, Android" #: templates/admin-footer.php:7 msgid "Get %s mobile app" msgstr "Установить мобильное приложение %s" #: templates/admin-footer.php:13 msgid "Questions?" msgstr "Есть вопросы?" #: templates/admin-footer.php:21 msgid "Want to connect another %s store?" msgstr "Хотите подключить другой %s-магазин?" #: templates/admin-footer.php:23 msgid "<a %s>Reconnect</a>" msgstr "<a %s>Отвязать Эквид-аккаунт от сайта и подключить другой</a>" #: templates/admin-message.php:45 msgid "Never show this message again" msgstr "Больше не показывать это сообщение" #: templates/admin-timeout.php:9 msgid "Sorry we're having technical difficulties." msgstr "Простите, у нас технические проблемы." #: templates/admin-timeout.php:11 msgid "Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">our customer support team</a>." msgstr "Мы уже работаем над исправлением проблемы. Перезагрузите страницу через пару минут. Если проблема сохранится, пожалуйста, <a target=\"_blank\" href=\"https://help.ecwid.com/customer/portal/emails/new\">свяжитесь с нами</a>." #: templates/advanced-settings.php:1 msgid "%s — Advanced settings" msgstr "%s — Дополнительные настройки" #: templates/advanced-settings.php:29 msgid "SEO friendly clean URLs" msgstr "SEO URLs" #: templates/advanced-settings.php:34 msgid "This enables new clean URLs format in your store. The new urls do not contain hash sign ('#'), so they look nicer and are better indexed by Google." msgstr "Включает новый \"чистый\" формат ссылок на товары и категории в магазине. Новые ссылки не содержат символа \"#\" и лучше индексируются поисковыми системами." #: templates/advanced-settings.php:38 msgid "To enable clean URLs in your store, you will need to enable pretty permalinks in your WordPress site settings. Navigate to <a%s>Settings->Permalink</a> and enable the \"Post name\" permalink type." msgstr "Чтобы включить SEO URLs в магазине, вам потребуется для начала включить улучшенную структуру постоянных ссылок в настройках Wordpress. Для этого в меню \"<a%s>Настройки -> Постоянные ссылки</a>\" выберите тип ссылок \"Название записи\"." #: templates/advanced-settings.php:44 msgid "Note: the new URLs will be automatically enabled for every store in one of upcoming updates so please make sure to check how the new URLs work in your store and <a %s>let us know</a> if you face any trouble with them" msgstr "Новые SEO URLs магазина будут включены по умолчанию в одной из будущих версий плагина. Поэтому мы рекомендуем вам включить эту опцию и попробовать SEO URLs на своём сайте. Если вы заметите какие-либо проблемы, пожалуйста, <a %s>дайте нам знать</a>, мы поможем." #: templates/advanced-settings.php:44 templates/advanced-settings.php:188 msgid "https://support.ecwid.com/hc/en-us/requests/new" msgstr "https://support.ecwid.com/hc/ru/requests/new" #: templates/advanced-settings.php:57 templates/store-popup.php:154 msgid "Category shown by default" msgstr "Категория, показываемая по умолчанию" #: templates/advanced-settings.php:61 templates/store-popup.php:161 msgid "Store root category" msgstr "Корневая категория магазина" #: templates/advanced-settings.php:74 msgid "By default, the storefront shows a list of root categories. You can override this behavior and show a different category when customers open your store for the first time. This is useful if you only have one category or want to display a specific set of items (e.g. \"Featured Products\") to new visitors." msgstr "По умолчанию, магазин показывает корневые категории. Здесь можно выбрать другую категорию для отображения, когда покупатель впервые открывает ваш магазин. Это может быть полезно, если у вас есть только одна категория или вы хотите показывать определённые набор товаров (например, специальные предложения) новым пользователям." #: templates/advanced-settings.php:97 msgid "Customer Single Sign-On" msgstr "Единый вход для покупателей" #: templates/advanced-settings.php:102 msgid "Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again." msgstr "Объединяет учетную запись покупателя на сайте с его учетной записью в %s. Когда единый вход включен, покупателю не нужно логиниться дважды – на сайте и в магазине. После входа в свой аккаунт на сайте покупатель может смотреть историю своих заказов и оформлять новый заказ с предзаполненным email и адресом доставки." #: templates/advanced-settings.php:109 msgid "Upgrade to get this feature" msgstr "Подпишитесь на платный план, чтобы получить эту возможность" #: templates/advanced-settings.php:112 msgid "Please subscribe to a paid plan to get this feature." msgstr "Подпишитесь на платный план, чтобы получить эту функциональность." #: templates/advanced-settings.php:118 msgid "To allow %s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %s>Please use this link to do that</a>" msgstr "Чтобы плагин автоматически объединял учетные записи пользователя на сайте и в магазине %s, нужно дать ему доступ до данных покупателей в магазине. <a %s>Перейдите по этой ссылке, чтобы предоставить доступ</a>." #: templates/advanced-settings.php:124 msgid "To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>" msgstr "Чтобы покупатели смогли регистрироваться, убедитесь, что регистрация включена в <a %s>настройках сайта</a>" #: templates/advanced-settings.php:146 msgid "Chameleon skin" msgstr "Тема \"Хамелеон\"" #: templates/advanced-settings.php:150 msgid "Automatic adjustment of your store design to your WordPress theme. Whatever WordPress theme you use, %s will detect predominant colors and font and use them in your product catalog." msgstr "Автоматическая подстройка внешнего вида магазина под стили темы сайта. Включите эту опцию, чтобы %s определял цвета и шрифты сайта и использовал их в каталоге товаров." #: templates/advanced-settings.php:153 msgid "Please note this functionality is in beta. So if you run into difficulties or find problems with Chameleon, please <a %s>let us know</a>." msgstr "Мы добавили этот инструмент недавно, и он сейчас работает в бета-режиме. Если вы обнаружите какие-либо проблемы в его работе, пожалуйста, <a %s>сообщите нам</a>." #: templates/advanced-settings.php:164 msgid "Integration with search on your site" msgstr "Интеграция с поиском на сайте" #: templates/advanced-settings.php:180 msgid "%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that's why the site search doesn't find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site." msgstr "%s хранит данные товаров магазина в защищенном облачном хранилище, и показывает их прямо на странице магазина, когда посетитель открывает товар. Поэтому данные товаров не хранятся на вашем сайте, а поиск по сайту находит только страницы и записи сайта — не находит товары магазина. Эта настройка включает локальное хранение товаров: данные товаров будут храниться и в облачном хранилище, и прямо на вашем сайте. Поиск по сайту будет показывать страницы товаров магазина так же, как записи или страницы, размещенные на сайте." #: templates/advanced-settings.php:188 msgid "Please note this functionality is in beta. So if you run into difficulties or find problems with it, please <a %s>let us know</a>." msgstr "Эта функция сейчас работает в бета-режиме. Если вы обнаружите проблемы в её работе, пожалуйста, <a %s>сообщите нам</a>." #: templates/advanced-settings.php:202 msgid "Cache and speed up the store home page <sup>new</sup>" msgstr "Кеширование и ускорение главной страницы магазина <sup>новое</sup>" #: templates/advanced-settings.php:206 msgid "This caches your store home page on your site to make it load way faster for your customers." msgstr "Включает кеширование главной страницы магазина для ускорения загрузки витрины в браузере покупателя." #: templates/advanced-settings.php:197 templates/appearance-settings.php:217 msgid "Save changes" msgstr "Сохранить изменения" #: templates/appearance-settings.php:1 msgid "%s Shopping Cart — Appearance settings" msgstr "Магазин %s — Настройки внешнего вида" #: templates/appearance-settings.php:27 msgid "Display search box above products" msgstr "Показывать форму поиска над списком продуктов" #: templates/appearance-settings.php:31 msgid "Or you can add search box to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>" msgstr "Или вы можете добавить форму поиска на ваш сайт с помощью <a href=\"%s\">виджетов WordPress</a>" #: templates/appearance-settings.php:51 msgid "Display categories above products" msgstr "Показывать меню категорий над списком продуктов" #: templates/appearance-settings.php:55 msgid "Or you can add vertical categories to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>" msgstr "Или вы можете добавить вертикальное меню категорий на ваш сайт с помощью <a href=\"%s\">виджетов WordPress</a>" #: templates/appearance-settings.php:76 msgid "Enable minicart attached to categories" msgstr "Показывать корзину у меню категорий" #: templates/appearance-settings.php:80 msgid "You should disable this option, if you added minicart to your website's sidebar" msgstr "Если вы добавили виджет корзины в боковое меню, следует отключить эту настройку" #: templates/appearance-settings.php:99 templates/store-popup.php:180 msgid "Number of categories per row" msgstr "Количество категорий в ряд" #: templates/appearance-settings.php:110 templates/store-popup.php:84 msgid "Number of products per page" msgstr "Количество продуктов на странице" #: templates/appearance-settings.php:112 templates/store-popup.php:86 msgid "Grid view" msgstr "Вид \"сетка\"" #: templates/appearance-settings.php:139 templates/store-popup.php:113 msgid "List view" msgstr "Вид \"список\"" #: templates/appearance-settings.php:156 templates/store-popup.php:130 msgid "Table view" msgstr "Вид \"таблица\"" #: templates/appearance-settings.php:171 templates/store-popup.php:145 msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products." msgstr "Здесь вы можете задать количество отображаемых продуктов на странице. Эти цифры определяют максимальные значения. Если на странице в сетке продуктов будет недостаточно места для отображения всех столбцов, %s уменьшит их количество." #: templates/appearance-settings.php:178 templates/store-popup.php:193 msgid "Default view mode on product pages" msgstr "Вид страницы продуктов по умолчанию" #: templates/appearance-settings.php:183 templates/appearance-settings.php:201 #: templates/store-popup.php:197 templates/store-popup.php:215 msgid "Grid" msgstr "Сетка" #: templates/appearance-settings.php:186 templates/appearance-settings.php:204 #: templates/store-popup.php:200 templates/store-popup.php:218 msgid "List" msgstr "Список" #: templates/appearance-settings.php:189 templates/appearance-settings.php:207 #: templates/store-popup.php:203 templates/store-popup.php:221 msgid "Table" msgstr "Таблица" #: templates/appearance-settings.php:196 templates/store-popup.php:210 msgid "Default view mode on search results" msgstr "Вид страницы результатов поиска по умолчанию" #: templates/connect.php:5 templates/dashboard.php:6 #: templates/reconnect-sso.php:5 templates/reconnect.php:5 msgid "%s Shopping Cart" msgstr "Интернет-магазин %s" #: templates/connect.php:13 templates/reconnect.php:13 msgid "Connect your store<br /> to this WordPress site" msgstr "Подключите магазин<br /> к своему WordPress сайту" #: templates/connect.php:17 msgid "Enter your Store ID" msgstr "Введите ваш ID Магазина" #: templates/connect.php:20 templates/landing_old.php:27 #: templates/reconnect.php:23 msgid "Connect" msgstr "Подключите магазин" #: templates/connect.php:21 msgid "Save and connect" msgstr "Сохранить и присоединить" #: templates/connect.php:27 templates/reconnect.php:46 msgid "To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission." msgstr "Нажмите на кнопку, авторизуйтесь в %1$s и выдайте запрошенные права доступа" #: templates/connect.php:32 msgid "Where to find your Store ID:" msgstr "Где найти ID Магазина:" #: templates/connect.php:34 msgid "Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel: open the <a %2$s>Dashboard page</a> and find the \"<b>Store ID: NNNNNNN</b>\" text, where <b>NNNNNNN</b> is your Store ID." msgstr "ID магазина – это уникальный номер аккаунта в %1$s. Вы можете его найти в панели управления %1$s-магазина: откройте страницу \"<a %2$s>Консоль</a>\" и найдите текст \"<b>ID Магазина NNNNNNN</b>\". " #: templates/connect.php:39 msgid "Don't have an %s account? Create one now." msgstr "Ещё нет аккаунта в %s? Зарегистрируйтесь" #: templates/dashboard.php:10 templates/store-popup.php:231 #: templates/store-svg.php:15 msgid "Store ID" msgstr "ID Магазина" #: templates/dashboard.php:14 msgid "Disconnect store" msgstr "Отсоединить магазин" #: templates/dashboard.php:27 msgid "Congratulations!" msgstr "Поздравляем!" #: templates/dashboard.php:30 msgid "Your %s store is now connected<br /> to your WordPress website" msgstr "%s-магазин успешно подключен<br /> к вашему WordPress сайту" #: templates/dashboard.php:35 msgid "Greetings!" msgstr "Приветствуем!" #: templates/dashboard.php:38 msgid "Your %s store is connected<br /> to your WordPress website" msgstr "%s-магазин подключен<br /> к вашему WordPress сайту" #: templates/dashboard.php:47 msgid "Open control panel" msgstr "Открыть панель управления" #: templates/debug.php:14 msgid "Download log file" msgstr "Скачать лог-файл" #: templates/help.php:11 msgid "How can we help you?" msgstr "Как вам помочь?" #: templates/help.php:15 msgid "https://support.ecwid.com/hc/en-us/search" msgstr "https://support.ecwid.com/hc/ru/search" #: templates/help.php:17 msgid "E.g. How to set up shipping" msgstr "Например, как настроить платежи?" #: templates/help.php:21 msgid "Search the Knowledge Base" msgstr "Искать в базе знаний" #: templates/help.php:29 msgid "https://support.ecwid.com/hc/en-us/sections/201706719-Ecwid-Basics" msgstr "https://support.ecwid.com/hc/ru/sections/201706719-%D0%9D%D0%B0%D1%87%D0%B0%D0%BB%D0%BE-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-" #: templates/help.php:31 msgid "Ecwid Basics" msgstr "Начало работы" #: templates/help.php:35 msgid "https://support.ecwid.com/hc/en-us/sections/201758475-Manage-Your-Ecwid-Store" msgstr "https://support.ecwid.com/hc/ru/sections/201758475-%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BC%D0%B0%D0%B3%D0%B0%D0%B7%D0%B8%D0%BD%D0%BE%D0%BC" #: templates/help.php:37 msgid "Manage Your Ecwid Store" msgstr "Управление магазином" #: templates/help.php:41 msgid "https://support.ecwid.com/hc/en-us/sections/201758445-Customize-Your-Store" msgstr "https://support.ecwid.com/hc/ru/sections/201758445-%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B4%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD%D0%B0-" #: templates/help.php:43 msgid "Customize Your Store" msgstr "Изменение дизайна" #: templates/help.php:47 msgid "https://support.ecwid.com/hc/en-us/sections/201706799-Billing-Questions" msgstr "https://support.ecwid.com/hc/ru/sections/201706799-%D0%9F%D0%BE%D0%B4%D0%BF%D0%B8%D1%81%D0%BA%D0%B0" #: templates/help.php:49 msgid "Billing Questions" msgstr "Подписка" #: templates/help.php:53 msgid "https://support.ecwid.com/hc/en-us/sections/201702859-Technical-Reference" msgstr "https://support.ecwid.com/hc/ru/sections/201702859-%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F-%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F" #: templates/help.php:55 msgid "Technical Reference" msgstr "Техническая информация" #: templates/help.php:62 msgid "Frequently Asked Questions" msgstr "Часто Задаваемые Вопросы" #: templates/help.php:205 msgid "Contact us" msgstr "Связь с техподдержкой" #: templates/help.php:206 msgid "Still have questions about Ecwid? Let us know!" msgstr "Есть вопросы? Свяжитесь с нами, мы будем рады вам помочь." #: templates/help.php:211 msgid "Forums" msgstr "Форум" #: templates/help.php:212 msgid "Join the Ecwid community. Discuss support topics and store ideas with other Ecwid users." msgstr "Общайтесь с другими пользователями Эквида и командой поддержки клиентов по любым вопросам, связанным с работой вашего магазина." #: templates/help.php:221 msgid "Send a message to our support team" msgstr "Письмо в службу поддержки" #: templates/help.php:227 msgid "Subject" msgstr "Тема" #: templates/help.php:228 msgid "Type in your message here" msgstr "Ваш вопрос" #: templates/help.php:231 msgid "Send Message" msgstr "Отправить" #: templates/help.php:242 msgid "Send message failed" msgstr "Не удалось отправить сообщение" #: templates/help.php:248 msgid "Your email has been sent" msgstr "Сообщение отправлено" #: templates/help.php:249 msgid " Thank you very much for contacting us! We will get back to you shortly." msgstr "Спасибо! Мы скоро свяжемся с вами." #: templates/help.php:250 msgid "You can send a new request here." msgstr "Тут можно отправить новый запрос." #: templates/landing.php:8 msgid "Welcome to %s!" msgstr "Добро пожаловать в %s!" #: templates/landing.php:9 msgid "Thank you for choosing %s to build your online store. The first step to sell successfully online is to set up your store! Let’s get started and add a store to your website in a few simple steps." msgstr "Спасибо, что выбрали %s для создания вашего интернет-магазина. Первый шаг к успешной онлайн торговле — настройка магазина! Давайте добавим магазин на ваш сайт за несколько простых шагов." #: templates/landing.php:15 templates/landing.php:132 msgid "Create Store" msgstr "Создать магазин" #: templates/landing.php:31 templates/landing.php:148 msgid "Store is created" msgstr "Магазин создан" #: templates/landing.php:35 templates/landing.php:152 msgid "Creating store" msgstr "Создание магазина" #: templates/landing.php:39 templates/landing.php:156 msgid "Preparing your store dashboard" msgstr "Подготовка панели управления" #: templates/landing.php:43 templates/landing_old.php:52 msgid "Free registration, No credit card required" msgstr "Регистрация бесплатна, кредитная карта не требуется" #: templates/landing.php:46 msgid "Connection error: please click the button again and give permissions for this plugin<br /> to show your %s store on this site." msgstr "Ошибка подключения: после нажатия на кнопку, авторизуйтесь в %s и предоставьте запрашиваемые права." #: templates/landing.php:49 templates/landing.php:160 msgid "Already have %s account?" msgstr "Уже есть аккаунт в %s?" #: templates/landing.php:53 msgid "You will be asked to log in to your %s Control Panel<br />and give permissions to show your store on this site" msgstr "Вам будет предложено войти в панель управления %s<br />и предоставить права доступа для отображения магазина на вашем сайте" #: templates/landing.php:56 templates/landing_old.php:75 msgid "Get ready to sell online" msgstr "Продавать онлайн – это просто" #: templates/landing.php:67 msgid "Sell Everywhere" msgstr "Продавайте там,<br> где ваши клиенты" #: templates/landing.php:68 templates/landing_old.php:87 msgid "Start selling on your WordPress site. Then mirror your shop on your Facebook page, blog and marketplaces like Google Shopping, Yahoo and Shopping.com." msgstr "Откройте продажи на своём WordPress сайте, а затем разместите витрину магазина в социальных сетях, блоге, и выгрузите товары на торговые площадки Яндекс.Маркет, eBay и Google Shopping." #: templates/landing.php:69 msgid "Use %s's mobile-POS to swipe credit cards and sell on the go. Your orders and inventory are always synchronized with your online store." msgstr "Используйте мобильное приложение %s, чтобы получать и обрабатывать заказы в любой точке продаж. Все изменения синхронизируются с магазином на лету." #: templates/landing.php:75 templates/landing_old.php:94 msgid "Features" msgstr "Преимущества" #: templates/landing.php:82 templates/landing_old.php:101 msgid "Compatible with your theme" msgstr "Работает с вашей темой" #: templates/landing.php:83 msgid "%s is compatible with your<br>“%s” WordPress theme<br>out of the box." msgstr "%s совместим с темой<br>\"%s\" вашего сайта из коробки." #: templates/landing.php:91 templates/landing_old.php:110 msgid "Free and always up to date" msgstr "Бесплатный план и обновления" #: templates/landing.php:92 templates/landing_old.php:111 msgid "Free plan always available with tons of features<br>at no additional cost. Updates are seamless, automatic<br>and free of charge." msgstr "Всегда доступный бесплатный план с множеством<br>возможностей. Обновления магазина автоматизированы,<br> бесплатны и не требуют вашего участия." #: templates/landing.php:102 templates/landing_old.php:121 msgid "Responsive design" msgstr "Адаптивный дизайн" #: templates/landing.php:103 templates/landing_old.php:122 msgid "Your store looks perfect<br />on all devices" msgstr "Ваш магазин выглядит превосходно<br />на любом устройстве: планшете, смартфоне и ноутбуке." #: templates/landing.php:111 templates/landing_old.php:130 msgid "PCI DSS Certified" msgstr "Сертификация по PCI DSS" #: templates/landing.php:112 templates/landing_old.php:131 msgid "Secure checkout with over 40<br />payment options" msgstr "Эквид сертифицирован по стандарту Level 1 PCI DSS – самому высокому уровню безопасности передачи данных." #: templates/landing.php:120 templates/landing_old.php:139 msgid "Global Reach" msgstr "Глобальное решение" #: templates/landing.php:121 msgid "Over 1 million merchants in 175 countries" msgstr "Более миллиона продавцов из 175 стран" #: templates/landing.php:128 templates/landing_old.php:147 msgid "Start selling <br>on your WordPress <nobr>site for free</nobr>" msgstr "Начните продавать<br>на своём WordPress <nobr>сайте бесплатно</nobr>" #: templates/landing.php:161 templates/landing_old.php:158 msgid "Connect your store to this site" msgstr "Подключить магазин к своему сайту" #: templates/landing_old.php:8 templates/landing_old.php:12 msgid "Plugin is installed successfully!" msgstr "Плагин успешно установлен!" #: templates/landing_old.php:9 msgid "There are just a few steps left to start selling<br /> on your WordPress site" msgstr "До открытия магазина на вашем WordPress сайте<br /> осталось несколько простых шагов" #: templates/landing_old.php:13 msgid "There are few little steps left to start selling<br /> on your WordPress site" msgstr "До открытия магазина на вашем WordPress сайте<br /> осталось несколько простых шагов" #: templates/landing_old.php:19 msgid "Register" msgstr "Зарегистрируйтесь" #: templates/landing_old.php:20 msgid "Create a free Ecwid account to manage your store and inventory.<br /> No credit card required" msgstr "Зарегистрируйте бесплатный аккаунт в Эквиде.<br /> Кредитная карта не требуется" #: templates/landing_old.php:29 msgid "Add your Ecwid store to your site <nobr>in two clicks</nobr>" msgstr "Подключите свой Эквид-магазин к сайту <nobr>в два клика</nobr>" #: templates/landing_old.php:30 msgid "Connect your Ecwid store to this site <nobr>in two clicks</nobr>" msgstr "Подключите свой Эквид-магазин к сайту <nobr>в два клика</nobr>" #: templates/landing_old.php:39 msgid "Start selling" msgstr "Начните продавать" #: templates/landing_old.php:40 msgid "Your storefront is ready" msgstr "Магазин открыт для покупателей" #: templates/landing_old.php:46 msgid "Create Ecwid store" msgstr "Создать магазин бесплатно" #: templates/landing_old.php:49 templates/landing_old.php:154 msgid "Connect your store" msgstr "Подключить магазин" #: templates/landing_old.php:55 msgid "Connection error: please click the button again and give permissions for this plugin<br /> to show your Ecwid store on this site." msgstr "Ошибка подключения: пожалуйста, нажмите кнопку ещё раз и предоставьте права доступа плагину<br /> для публикации своего Эквид-магазина на этом сайте." #: templates/landing_old.php:58 templates/landing_old.php:69 msgid "You will be asked to log in to your Ecwid Control Panel<br />and give permissions to show your store on this site" msgstr "Вам будет предложено войти в панель управления Эквида<br />и предоставить права доступа для отображения магазина на вашем сайте" #: templates/landing_old.php:61 templates/landing_old.php:157 msgid "Already have Ecwid account?" msgstr "Уже есть аккаунт в Эквиде?" #: templates/landing_old.php:65 templates/landing_old.php:161 msgid "Don't have an Ecwid account?" msgstr "Ещё нет аккаунта в Эквиде?" #: templates/landing_old.php:66 templates/landing_old.php:162 msgid "Register at Ecwid for free" msgstr "Зарегистрироваться бесплатно" #: templates/landing_old.php:72 msgid "No credit card required" msgstr "Кредитная карта не требуется" #: templates/landing_old.php:86 msgid "Sell Everywhere<br>with your Ecwid store" msgstr "Продавайте там,<br> где ваши клиенты" #: templates/landing_old.php:88 msgid "Use Ecwid's mobile-POS to swipe credit cards and sell on the go. Your orders and inventory are always synchronized with your online store." msgstr "Используйте наше мобильное приложение, чтобы получать и обрабатывать заказы в любой точке продаж. Все изменения синхронизируются с магазином на лету." #: templates/landing_old.php:102 msgid "Ecwid is compatible with your<br>“%s” WordPress theme<br>out of the box." msgstr "Эквид совместим с темой<br>\"%s\" вашего сайта из коробки." #: templates/landing_old.php:140 msgid "More than 800,000 merchants in 175 countries" msgstr "Эквид уже используют 800,000 продавцов из 175 стран" #: templates/landing_old.php:151 msgid "Get Started, Create Ecwid Account" msgstr "Зарегистрировать аккаунт %s" #: templates/product-popup.php:23 msgid "Name" msgstr "Название" #: templates/product-popup.php:29 msgid "SKU" msgstr "Артикул" #: templates/product-popup.php:47 templates/product-popup.php:53 #: templates/product-popup.php:56 msgid "Search" msgstr "Поиск" #: templates/product-popup.php:49 msgid "Title or SKU" msgstr "Название или артикул" #: templates/product-popup.php:69 msgid "Current Page" msgstr "Текущая страница" #: templates/product-popup.php:80 msgid "Next page" msgstr "Следующая" #: templates/product-popup.php:94 msgid "Nothing found for <span class=\"empty-page__term\">\"{{ data.term }}\"</span>" msgstr "По запросу <span class=\"empty-page__term\">\"{{ data.term }}\"</span> ничего не найдено" #: templates/product-popup.php:96 msgid "Try another search." msgstr "Попробуйте другой запрос." #: templates/product-popup.php:97 msgid "Browse all products." msgstr "Показать все товары." #: templates/product-popup.php:122 templates/product-popup.php:127 msgid "Choose Product" msgstr "Выбрать товар" #: templates/product-popup.php:123 templates/product-popup.php:131 msgid "Customize widget" msgstr "Внешний вид" #: templates/product-popup.php:140 msgid "Choose product properties to display in widget" msgstr "Выберите элементы товара для отображения" #: templates/product-popup.php:150 msgid "Picture" msgstr "Изображение" #: templates/product-popup.php:155 msgid "Options" msgstr "Параметры" #: templates/product-popup.php:165 msgid "Quantity" msgstr "Количество" #: templates/product-popup.php:176 msgid "«Buy now» button" msgstr "Кнопка «Купить»" #: templates/product-popup.php:196 msgid "Add border" msgstr "Показывать рамку" #: templates/product-popup.php:201 msgid "Show price inside the \"Buy now\" button" msgstr "Показывать цену в кнопке \"Купить\"" #: templates/product-popup.php:201 msgid "Show price inside the «Buy now» button" msgstr "Показывать цену в кнопке «Купить»" #: templates/product-popup.php:206 msgid "Center align on a page" msgstr "Выровнять карточку по центру страницы" #: templates/product-popup.php:218 msgid "customize appearance" msgstr "настроить внешний вид" #: templates/product-popup.php:219 msgid "select product" msgstr "выбрать товар" #: templates/product-popup.php:220 msgid "Insert" msgstr "Вставить" msgid "Display product with a buy button" msgstr "Товар с кнопкой \"Купить\"" msgctxt "gutenberg-product-block" msgid "Content" msgstr "Элементы виджета" msgid "Displayed product" msgstr "Выбранный товар" msgid "Change" msgstr "Изменить" msgid "Choose product" msgstr "Выбрать товар" msgid "Your product" msgstr "Товар" msgid "%s product" msgstr "%s товар" #: templates/reconnect-sso.php:11 msgid "Your store Control Panel. Right here in WordPress." msgstr "Панель управления магазином, встроенная в Wordpress." #: templates/reconnect-sso.php:12 msgid "Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page." msgstr "Вы сможете добавлять товары, обрабатывать заказы и управлять магазином прямо на этой странице." #: templates/reconnect-sso.php:14 msgid "Re-connect to Enable Control Panel" msgstr "Подключить панель управления" #: templates/reconnect.php:31 msgid "Connection error - after clicking button you need to login and accept permissions to use our plugin. Please, try again." msgstr "Ошибка подключения: после нажатия на кнопку, авторизуйтесь в Эквиде и предоставьте запрашиваемые права." #: templates/reconnect.php:39 msgid "Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL." msgstr "Похоже, что ваш сервер не поддерживает удаленные POST запросы, которые необходимы для работы %s API. Пожалуйста, свяжитесь с хостинг-провайдером, чтобы исправить это." #: templates/store-popup.php:12 templates/store-popup.php:25 msgid "Store elements" msgstr "Витрина" #: templates/store-popup.php:46 msgid "Choose widgets to show" msgstr "Виджеты витрины магазина" #: templates/store-popup.php:47 msgid "Product catalog will be shown automatically" msgstr "Каталог товаров отображается по умолчанию" #: templates/store-popup.php:52 msgid "Show search" msgstr "Поиск" #: templates/store-popup.php:59 msgid "Show minicart" msgstr "Мини-корзина" #: templates/store-popup.php:66 msgid "Show categories" msgstr "Меню категорий" #: templates/store-popup.php:72 msgid "Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>" msgstr "Кроме того, вы можете добавить отдельные элементы магазина в сайдбар сайта используя <a %s>встроенные виджеты WordPress</a>" #: templates/store-popup.php:233 msgid "Demo store" msgstr "Демонстрационный магазин" #: templates/store-popup.php:236 msgid "Open store dashboard" msgstr "Настройки магазина" #: templates/store-popup.php:240 msgid "Insert into page" msgstr "Вставить в страницу" #: templates/store-popup.php:243 msgid "Update" msgstr "Обновить" #: templates/store-svg.php:10 msgid "Your store will be shown here!" msgstr "Здесь будет отображаться ваш магазин." #: templates/store-svg.php:13 msgid "Demo Store" msgstr "Демонстрационный магазин" #: templates/sync.php:161 msgid "To enable this feature, the plugin needs a permission to read your store product information." msgstr "Чтобы включить интеграцию с поиском, нужно дать плагину доступ до данных товаров в магазине." #: templates/sync.php:162 msgid "Provide access." msgstr "Перейдите по этой ссылке, чтобы предоставить доступ." #: templates/sync.php:167 templates/sync.php:168 msgid "Synchronize products" msgstr "Синхронизировать товары" #: templates/sync.php:175 msgid "We're synchronizing your products. This may take a few minutes. Please do not reload the page." msgstr "Товары загружаются. Это может занять несколько минут. Пожалуйста, не перезагружайте страницу." #: templates/sync.php:179 msgid "Products synchronized: %1$s out of %2$s" msgstr "Загружено товаров: %1$s из %2$s" #: templates/sync.php:179 msgid "Deleted products synchronized: %1$s out of %2$s" msgstr "Обработано удалённых товаров: %1$s из %2$s" #: templates/sync.php:186 msgid "Products are successfully synchronized. The product pages are up to date." msgstr "Товары успешно синхронизированы. Страницы товаров обновлены." #: templates/sync.php:190 msgid "Last update" msgstr "Последняя синхронизация" #: templates/sync.php:193 msgid "Not synchronized yet" msgstr "Не синхронизовано" msgid "Random Product" msgstr "Случайный товар" msgid "Displays a random product from your store to attract customer attention." msgstr "Показывает случайный товар из магазина, чтобы привлечь внимание покупателя." msgid "Latest Products" msgstr "Новые товары" msgid "Displays the latest added products from your store. Show new products to returning customers to drive repeat sales." msgstr "Список последних добавленных товаров из магазина." msgid "%s Blog" msgstr "Блог %s" msgid "Knowledge Base" msgstr "База знаний" msgid "https://www.ecwid.com/blog" msgstr "https://www.ecwid.ru/blog" msgid "https://support.ecwid.com/hc/en-us" msgstr "https://support.ecwid.com/hc/ru" #. Plugin Name of the plugin/theme msgid "Ecwid Shopping Cart" msgstr "" msgid "%s products and categories" msgstr "Товары и категории магазина %s" msgid "Bulk import products and categories to your %s store" msgstr "Загрузка товаров и категорий в магазин из внешних источников или других e-commerce решений" msgctxt "vc-tab" msgid "Online store" msgstr "Магазин" msgctxt "vc-block" msgid "Online store" msgstr "Витрина магазина" msgid "Displays storefront: product listing and checkout" msgstr "Показывает витрину магазина, корзину и оформление заказа" msgid "Main storefront page" msgstr "Главная страница магазина" msgid "You have your storefront added to several pages on your site. You can choose the main storefront page here — the store navigation menus and sidebar widgets will open it." msgstr "Вы добавили витрину магазина на несколько страниц сайта. С помощью этой настройки вы можете выбрать, какую из страниц считать главной витриной — на неё будут ссылаться пункты меню и сайдбар-виджеты." msgid "Product List Appearance" msgstr "Дизайн списка товаров" msgid "%s store" msgstr "Витрина магазина" msgid "Add storefront (product listing)" msgstr "Список товаров" #: includes/class-ecwid-product-browser.php:10 msgid "Show product thumbnails" msgstr "Показывать изображения товаров" #: includes/class-ecwid-product-browser.php:18 msgid "Product thumbnail size" msgstr "Размер изображения товара" #: includes/class-ecwid-product-browser.php:26 msgid "Product thumbnail aspect ratio" msgstr "Формат изображения товара" #: includes/class-ecwid-product-browser.php:34 msgid "Show product card border" msgstr "Показывать рамку карточки товара" #: includes/class-ecwid-product-browser.php:42 msgid "Product card text align" msgstr "Выравнивание данных товара" #: includes/class-ecwid-product-browser.php:46 msgid "Left" msgstr "По левому краю" #: includes/class-ecwid-product-browser.php:51 msgid "Center" msgstr "По центру" #: includes/class-ecwid-product-browser.php:56 msgid "Right" msgstr "По правому краю" #: includes/class-ecwid-product-browser.php:61 msgid "Justify" msgstr "По ширине" #: includes/class-ecwid-product-browser.php:71 msgid "Product title" msgstr "Название товара" #: includes/class-ecwid-product-browser.php:79 msgid "Product price" msgstr "Цена товара" #: includes/class-ecwid-product-browser.php:87 msgid "Product SKU" msgstr "Артикул товара" #: includes/class-ecwid-product-browser.php:95 msgid "Buy now buttons" msgstr "Кнопка “Купить”" #: includes/class-ecwid-product-browser.php:103 msgid "Show additional image on hover" msgstr "Показывать доп.изображение при наведении мыши" #: includes/class-ecwid-product-browser.php:111 msgid "Category card layout" msgstr "Формат карточки категории" #: includes/class-ecwid-product-browser.php:115 msgid "Title under image" msgstr "Название под изображением" #: includes/class-ecwid-product-browser.php:119 msgid "Title on image" msgstr "Название на изображении" #: includes/class-ecwid-product-browser.php:123 msgid "Image and title on mouse over" msgstr "Название по наведению мыши" #: includes/class-ecwid-product-browser.php:127 msgid "Title only" msgstr "Только название" #: includes/class-ecwid-product-browser.php:131 msgid "Image only" msgstr "Только изображение" #: includes/class-ecwid-product-browser.php:140 msgid "Category thumbnail size" msgstr "Размер изображения категории" #: includes/class-ecwid-product-browser.php:148 msgid "Category thumbnail aspect ratio" msgstr "Формат изображения категории" #: includes/class-ecwid-product-browser.php:156 msgid "Display categories menu" msgstr "Показывать меню категорий над витриной" #: includes/class-ecwid-product-browser.php:163 msgid "Display search box" msgstr "Показывать поиск над витриной" #: includes/class-ecwid-product-browser.php:170 msgid "Display breadcrumbs" msgstr "Показывать цепочку навигации" #: includes/class-ecwid-product-browser.php:178 msgid "Display footer menu" msgstr "Показывать меню внизу страницы" #: includes/class-ecwid-product-browser.php:186 msgid "Display sign in link" msgstr "Показывать ссылку “Войти”" #: includes/class-ecwid-product-browser.php:194 msgid "Display sort by link" msgstr "Показывать меню сортировки" #: includes/class-ecwid-product-browser.php:202 msgid "Default category ID" msgstr "Категория, показываемая по умолчанию" #: includes/class-ecwid-product-browser.php:214 msgid "Show" msgstr "Показывать" #: includes/class-ecwid-product-browser.php:218 msgid "Hide" msgstr "Скрывать" #: includes/class-ecwid-product-browser.php:222 msgid "Show on hover" msgstr "Показывать при наведении мыши" #: includes/class-ecwid-product-browser.php:232 msgid "S" msgstr "S" #: includes/class-ecwid-product-browser.php:236 msgid "M" msgstr "M" #: includes/class-ecwid-product-browser.php:240 msgid "L" msgstr "L" #: includes/class-ecwid-product-browser.php:250 msgid "Portrait 2:3" msgstr "Вертикальные 2:3" #: includes/class-ecwid-product-browser.php:255 msgid "Portrait 3:4" msgstr "Вертикальные 3:4" #: includes/class-ecwid-product-browser.php:260 msgid "Square 1:1" msgstr "Квадратные 1:1" #: includes/class-ecwid-product-browser.php:265 msgid "Landscape 4:3" msgstr "Горизонтальные 4:3" #: includes/class-ecwid-product-browser.php:270 msgid "Landscape 3:2" msgstr "Горизонтальные 3:2" msgid "Online Store Apps" msgstr "Приложения для магазина" msgid "Plugins for Ecwid" msgstr "Приложения для Эквида" msgid "Themes for Ecwid" msgstr "Темы для Эквида" msgid "Migration warning" msgstr "" msgid "To improve the look and feel of your store and manage your storefront appearance here, please enable the “Next-gen look and feel of the product list on the storefront” option in your store dashboard (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Settings → What’s New</a>”)." msgstr "Чтобы обновить дизайн своего магазина и управлять настройками вида в редакторе, включите опцию “Обновленный внешний вид каталога товаров на витрине” в панели управления магазина (“<a href=\"admin.php?page=ec-store&ec-store-page=whatsnew\">Настройки → Обновления</a>”)" msgid "Display cart icon" msgstr "Показывать иконку корзины" msgid "You can enable an extra shopping bag icon widget that will appear on your site pages. Open “<a href=\"%1$s\">Appearance → Customize → %2$s</a>” menu to enable it." msgstr "Включите дополнительный плавающий виджет корзины, который будет появляться на страницах сайта. Доступно в меню “<a href=\"%1$s\">Внешний вид → Настроить → %2$s</a>”" msgid "Category List Appearance" msgstr "Дизайн списка категорий" msgid "Store Navigation" msgstr "Навигация магазина" msgid "Store Front Page" msgstr "Главная страница магазина" msgid "Product Page Appearance" msgstr "Дизайн страницы товара" msgid "Product page layout" msgstr "Формат карточки товара" msgid "2 columns, image on the right" msgstr "2 колонки, изображение справа" msgid "2 columns, image on the left" msgstr "2 колонки, изображение слева" msgid "3 columns, image on the right" msgstr "3 колонки, изображение справа" msgid "3 columns, image on the left" msgstr "3 колонки, изображение слева" msgid "Filters panel position" msgstr "Положение панели фильтров" msgid "On the left" msgstr "Слева" msgid "On the right" msgstr "Справа" msgid "Show description under the image" msgstr "Показывать описание под изображением" msgid "Image gallery layout" msgstr "Формат галереи" msgid "Horizontal thumbnails" msgstr "Горизонтально" msgid "Vertical thumbnails" msgstr "Вертикально" msgid "Image feed" msgstr "Полноразмерные изображения" msgid "Product sidebar content" msgstr "Информация на странице" msgid "Breadcrumbs" msgstr "Цепочка навигации" msgctxt "product-browser-attributes" msgid "Product SKU" msgstr "Артикул" msgctxt "product-browser-attributes" msgid "Product price" msgstr "Цена" msgid "Product quantity" msgstr "Поле \"Количество\"" msgid "Available qty in stock" msgstr "Количество в наличии" msgid "\"In stock\" label" msgstr "Метка \"В наличии\"" msgid "Wholesale prices" msgstr "Оптовые цены" msgid "Share buttons" msgstr "Кнопки \"Поделиться\"" msgid "Text color" msgstr "Цвет текста" msgid "Button color" msgstr "Цвет кнопок" msgid "Price color" msgstr "Цвет цены" msgid "Link color" msgstr "Цвет ссылок" msgid "Background color" msgstr "Цвет фона" msgid "Color settings" msgstr "Настройки цвета" msgid "Detect automatically" msgstr "Определять автоматически" msgid "Set manually" msgstr "Задать вручную" msgid "Edit " msgstr "Задать вручную" msgctxt "gutenberg-store-block-stub" msgid "Store" msgstr "Витрина магазина" msgid "Edit Product" msgstr "Редактировать товар" msgid "Edit Category" msgstr "Редактировать категорию" msgid "I couldn’t find a WordPress theme that goes well with %s" msgstr "Я не смог подобрать тему, которая хорошо работает с %s" msgid "I use this WordPress theme: %s" msgstr "Тема моего сайта: %s" msgid "To improve the look and feel of your product page and manage your its appearance here, please enable the “Next-gen look and feel of the product page on the storefront” option in your store dashboard (<a href=\"admin.php?page=ec-store-admin-whatsnew\">Settings → What’s New</a>)." msgstr "Чтобы обновить дизайн страницы товара и управлять настройками вида в редакторе, включите опцию “Обновленный внешний вид страницы товара” в панели управления магазина (<a href=\"admin.php?page=ec-store-admin-whatsnew\">Настройки → Обновления</a>)" msgid "To use this functionality, please enable the “Next-gen look and feel of the product list on the storefront” option in your store dashboard (<a%s>Settings → What's New</a>)." msgstr "Чтобы использовать этот функционал, включите опцию “Обновленный внешний вид каталога товаров на витрине” в панели управления магазина (<a%s>Настройки → Обновления</a>)" msgid "%s Store Page" msgstr "Страница %s-магазина" msgid "To add your store to your website, put your %1$s Store ID in the field below." msgstr "Чтобы добавить магазин на сайт, введите ID вашего Ecwid-магазина." msgid "Unfortunately, creating a new account is currently unavailable for your country. You can still connect an existing account." msgstr "К сожалению, создание новой учетной записи в настоящее время недоступно для вашей страны. Вы можете подключить существующую учетную запись." msgid "Access to %s Control Panel" msgstr "Доступ к панели управления %s" msgid "Allow this user to access the %s Control Panel." msgstr "Разрешить этому пользователю доступ к панели управления %s." msgid "More information" msgstr "Подробнее" #. Plugin URI of the plugin/theme #. Author URI of the plugin/theme msgid "http://www.ecwid.com?source=wporg" msgstr "" #. Description of the plugin/theme msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up." msgstr "Эквид — это конструктор интернет-магазина." #. Author of the plugin/theme msgid "Ecwid Team" msgstr "" #~ msgid "Updated %s widgets are available for your %s store. They are more mobile friendly and look better. Please enable them on the plugin settings page and check how they work in your store. The new widgets will be enabled automatically for all users in one of the upcoming plugin versions." #~ msgstr "Блоки %s в вашем %s-магазине обновлены – теперь они выглядят приятнее и лучше работают на мобильных. Пожалуйста, включите новый вид блоков поиска и категорий на странице настроек плагина. В одном следующих обновлений плагина они будут включены автоматически для всех пользователей." #~ msgctxt "upgrade widgets message" #~ msgid "Categories" #~ msgstr "Категорий" #~ msgid "Open %s store settings" #~ msgstr "Открыть настройки плагина %s" #~ msgid "<a href=\"admin.php?page=ecwid-help\">Read FAQ or contact support</a>" #~ msgstr "<a href=\"admin.php?page=ecwid-help\">Посетите Центр поддержки Эквида или напишите нам</a>" #~ msgid "Enable the new category menu" #~ msgstr "Включить новое меню категорий" #~ msgid "The new category menu looks better and is more mobile-friendly. If you haven't yet added category menu to your store page, you can do that in the <a %s>store page editor</a> (enable the \"Show categories\" option)" #~ msgstr "Новое меню категорий лучше выглядит и отлично работает на мобильных устройствах. Если у вас на странице магазина пока нет меню категорий, добавьте его в <a %s>настройках страницы магазина</a> (включите виджет \"Категории\")." ����������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/languages/ecwid-shopping-cart-tr_TR.mo������������������������������������������0000644�����������������00000053342�15122273603�0017625 0����������������������������������������������������������������������������������������������������ustar�00�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������|����� ������p��'���q�� ����� �����q�����<���6��k���s��K�����S���+��G���������������P��������3�� ���O�����Z�����n�����'��/��>�����n������������������������������������������M���4��@����������$����������/�����w���K����������E��]���X�� ����������"�����#����� ����� ���&�����1��!���B��!���d��q�����s�����P���l�������y���_��(���������� �����)���+��+���U�� ����� ������������������������������L���I��������������������������� �����&��������:�����W�����k�����t�����-�����H��*�����!�����3��������K�����T�� ���m�����z��8����� �����*���������� �������� ����� ��2�� ��]���+"�����"�� ���"�����"�����"��,���"�����"��A��� #�����L#��-���d#�����#�����#�����#�����#��c���#��l���]$�����$�����$��!���f%�����%�����%��+���%��/���%��W���%�����Q&�����m&��%���&�����&��1���&�����&�����&�����'�����*'�� ���;'��1���H'��(���z'��)���'�����'�����'�����'�� ���'�����'�����(�� ���(�� ���,(�����8(��T��R(�� ���)��>���)�����)�����*�����*�����*�����*�����+�����+�����+�����+�����+�� ���+��/���+�����,��M���,��M���2-�����-�����.�����.�����.�����.��0���.��T���/��q���f/��=���/��A���0�����X0��,���t0�����0�����0�����0�����0��+���1��(���1�� ���&2�����32��<���2��k���2��K���g3��S���3��G���4�� ���O4�����Z4��a���m4�����4�� ���4�����4����� 5�����5��E��5��!���#7�����E7�����d7�����{7�����7�� ���7�����7�����7�����7��T���7��@���H8�����8��$���8�����8��/���8�����9�����9�����):��]���C:�����:�����:��,���:��.���:�����$;�� ���6;�����A;��!���^;��,���;��q���;��s���<��P���<�����<�����=��+���>�����C>�� ���`>��0���n>��2���>�����>�� ���>�����>����� ?��#���%?�����I?�����%@��L���@����� A�����6A��#���PA��!���tA�����A�����A��&���A�����A�����B�����B�����!B�����B�����B��-���wC��!���C��3���C�� ���C����� D�� ���"D�����/D��>���FD�� ���D��*���D�����D�����D�����D�����E��2��E��[���G�����uG�����{G�����G�����G��,���G�����G��A��� H�����LH��4���bH��!���H�����H�����H�����H��d���I�����mI�����I�����J�����J�����J�����J��+���J��/���J��n���K��5���K�����K��'���K�����L��1���L�� ���IL�����SL�����qL�����L�����L��1���L��(���L��/���M�����7M�����NM�����VM�� ���^M�����lM�����M�� ���M�� ���M��+���M��g��M�����?O��>���RO�����O�����(P�����0P�� ���AP�����LP�����,Q�����=Q�����MQ�����eQ�����tQ�����zQ��8���Q�����Q��M���R��M���R�����6S�����S�����T�����T�����T��0���T��[���T��q���WU��=���U��A���V�����IV��,���gV�����V�����V�����V���������������-����������K���>���!���������u�������������)���G���b���]��� �������X���v���?������j������<���t��������������������Y����������f���|���^���o���g���������P���c���r������n����������#���V������I���������M������8�����������y�������������_��� ���T��������������������d���������������H�������E���l�������������}�������x���i�������B������R���D�������2���m�������������'���[���e���$���(�������q������U���`�������Q������z�������p���.���A�������:�����������6������������0��������������������w���������L����������S��� ��� ���k�����������������O���;���������������������W����������&���Z����������J���������N����������/���F���1���%������ ������=���+�������7������������@����������������� ����������������������"���a���9������{�������������������������~��������������������������������������\���C���4�������*������������h�������5���3���,������s����<a %s>Online store powered by Ecwid</a>�Add Product Slider to Your Store�Add Store�Add a fancy product slider to your site using a free WP Widgets Avalanche plugin which works perfectly with Ecwid�Add your Ecwid store to your site <nobr>in two clicks</nobr>�Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>�Adds a cart widget for customer to see the products they added to the cart.�Adds a compact cart widget for customer to see the products they added to the cart.�Adds vertical categories block to let the customer navigate your store.�Advanced�Advanced settings�After clicking button you need to login and accept permissions to use our plugin�Already have Ecwid account?�Appearance�Appearance settings�Automatic adjustment of your store design to your Wordpress theme. Whatever Wordpress theme you use, Ecwid will detect predominant colors and font and use them in your product catalog.�Back to Store Settings�By default, the storefront shows a list of root categories. You can override this behavior and show a different category when customers open your store for the first time. This is useful if you only have one category or want to display a specific set of items (e.g. "Featured Products") to new visitors.�Category shown by default�Chameleon skin <sup>beta</sup>�Choose widgets to show�Compatible with your theme�Configure Appearance�Congratulations!�Connect�Connect Ecwid store�Connect Your Ecwid Store�Connect your Ecwid account with this site to complete setup and start selling�Connect your Ecwid store to this site <nobr>in two clicks</nobr>�Connect your store�Connect your store to Wordpress site�Connect your store to this site�Connect your store<br /> to this WordPress site�Connection error - after clicking button you need to login and accept permissions to use our plugin. Please, try again.�Connection error: please click the button again and give permissions for this plugin<br /> to show your Ecwid store on this site.�Create Ecwid store�Create a free Ecwid account to manage your store and inventory.<br /> No credit card required�Dashboard�Default category ID�Default view mode on product pages�Default view mode on search results�Demo Store�Demo store�Disconnect store�Display categories above products�Display search box above products�Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site.�Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop.�Displays a simple search box for your customers to find a product in your storex�Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid.�Do you like your Ecwid online store? We'd appreciate it if you add your review and vote for the plugin on Wordpress site.�Don't have Ecwid account? Create it here�Don't have an Ecwid account?�Ecwid Badge�Ecwid Shopping Cart — Advanced settings�Ecwid Shopping Cart — Appearance settings�Ecwid Store�Ecwid Team�Ecwid e-commerce widgets�Ecwid ecommerce solution�Ecwid free shopping cart�Ecwid iOS app allows you to manage your online store, sell your products on the go, and accept payments with your phone. Just download the Ecwid app, connect it to your Ecwid shop and have your sales at your fingertips!�Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up.�Ecwid is compatible with your<br>“%s” WordPress theme<br>out of the box.�Ecwid plugin settings�Ecwid shopping cart�Ecwid shopping cart settings�Ecwid shopping cart widget�Edit Appearance�Edit Store�Enable minicart attached to categories�Enable the new category menu�Enter your Store ID�Features�Free Google XML Sitemaps plugin creates a sitemap that includes your store product links. This makes your product pages more visible to search engines and appear in the search results.�Free and always up to date�Free plan always available with tons of features<br>at no additional cost. Updates are seamless, automatic<br>and free of charge.�Free registration, No credit card required�Get Started, Create Ecwid Account�Get Your Products Found on Google using XML Sitemap�Get help�Get ready to sell online�Global Reach�Go to Ecwid site�Good job! Your store is set up and you're ready to sell.�Greetings!�Greetings! Your Ecwid store is now active.�Grid�Grid view�Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, Ecwid will adapt the number of columns to hold all products.�Hidden category�In order to enable this feature, opt to use a secret key. You will find this key in your Ecwid control panel, at "System Settings > Apps > Legacy API Keys > Single Sign-On Secret Key" page. This feature is available for <a href="http://www.ecwid.com/compare-plans.html" target="_blank">paid users</a> only.�In order to set this option, <a %s>find an ID of the necessary category</a> and save it here.�List�List view�Manage my store�Manage plugin settings�More than 800,000 merchants in 175 countries�Never show this message again�New features available, reconnect to be in touch with our updates�No credit card required�Now you can fine-tune your store's appearance�Number of categories per row�Number of products per page�Number of products to show�Open control panel�Or you can add search box to your website's toolbar using <a href="%s">WordPress native widgets</a>�Or you can add vertical categories to your website's toolbar using <a href="%s">WordPress native widgets</a>�PCI-DSS Certified�Please note this functionality is in beta. So if you run into difficulties or find problems with Chameleon, please <a %s>let us know</a>.�Plugin is installed successfully!�Price�Product Search�Product catalog will be shown automatically�Questions? Visit <a %s>Ecwid support center</a>�Questions? Visit <a href="http://help.ecwid.com/?source=wporg">Ecwid support center</a>�Rate Ecwid at WordPress.org�Recently Viewed Products�Recommendations for Your Online Store�Reconnect Ecwid store�Reconnect your store<br /> to this WordPress site�Register�Register at Ecwid for free�Responsive design�Save and connect�Save changes�Secure checkout with over 40<br />payment options�Sell Everywhere<br>with your Ecwid store�Sell On The Go with Ecwid iOS Application�Set up Ecwid Store�Setup�Shop�Shopping Cart�Shopping Cart (Mini)�Show categories�Show minicart�Show search�Single Sign-On Secret Key�Single Sign-On Secret Key is an option that allows your customers access to your WordPress site as well as the Ecwid shopping cart. When customers log in to your site, they will automatically be logged in to your Ecwid store as well. It makes sense to enable this feature if your visitors actually create accounts in your WordPress website.�Start selling�Start selling <br>on your WordPress <nobr>site for free</nobr>�Start selling on your WordPress site. Then mirror your shop on your Facebook page, blog and marketplaces like Google Shopping, Yahoo and Shopping.com.�Store�Store Categories�Store ID�Store ID is a unique identifier of your Ecwid account. You can find it in your Ecwid control panel: open the <a %s>Dashboard page</a> and find the "<b>Store ID: NNNNNNN</b>" text, where <b>NNNNNNN</b> is your Store ID.�Store Link Title�Store Page Link�Store root category�Store settings�Table�Table view�Take a few simple steps to complete store setup�The new category menu looks better and is more mobile-friendly. If you haven't yet added category menu to your store page, you can do that in the <a %s>store page editor</a> (enable the "Show categories" option)�There are few little steps left to start selling<br /> on your WordPress site�There are just a few steps left to start selling<br /> on your WordPress site�To add extra functions to your store, drag and drop Ecwid store elements on your site. When you're done, you can get back to modifying your settings.�Use Ecwid's mobile-POS to swipe credit cards and sell on the go. Your orders and inventory are always synchronized with your online store.�Visit Storefront�Visit storefront�Where to find your Store ID:�You have not viewed any product yet. Open store.�You should disable this option, if you added minicart to your website's sidebar�You will be asked to log in to your Ecwid Control Panel<br />and give permissions to show your store on this site�Your Ecwid store is connected<br /> to your WordPress website�Your Ecwid store is now connected<br /> to your WordPress website�Your store is almost ready!�Your store looks perfect<br />on all devices�Your store will be shown here!�Your storefront is ready�→ Sell on Facebook�Project-Id-Version: POT-Creation-Date: PO-Revision-Date: Last-Translator: Language-Team: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: tr_TR X-Generator: Poedit 2.2.1 �<a %s>Ecwid online mağaza çözümleri</a>�Mağazanıza Ürün Kaydırıcı Ekleyin�Mağaza Ekle�Ecwid ile mükemmel bir şekilde çalışan WP Widgets Avalanche eklentisini indirerek sitenize süslü bir ürün kaydırıcısı ekleyin�Add your Ecwid store to your site <nobr>in two clicks</nobr>�Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>�Adds a cart widget for customer to see the products they added to the cart.�Adds a compact cart widget for customer to see the products they added to the cart.�Adds vertical categories block to let the customer navigate your store.�Gelişmiş�Gelişmiş ayarlar�Düğmeye tıkladıktan sonra eklentiyi kullanmak için giriş yapıp izinleri onaylamalısınız�Already have Ecwid account?�Görünüm�Görünüm ayarları�Automatic adjustment of your store design to your Wordpress theme. Whatever Wordpress theme you use, Ecwid will detect predominant colors and font and use them in your product catalog.�Mağaza Ayarlarına Dön�Mağaza varsayılan olarak kök kategorilerin listesini görüntüler. Bu ayarı değiştirerek müşterilerinize belirli kategoriler görüntüleyebilirsiniz. Müşterilerinize mağazanızı ilk ziyaretlerinde belirli kategoriler veya ürünler (örn. "Yeni Ürünler") göstermek istiyorsanız bu ayar işinize yarayabilir.�Varsayılan kategori görünümü�Chameleon skin <sup>beta</sup>�Choose widgets to show�Compatible with your theme�Görünümü Değiştir�Tebrikler!�Bağlan�Connect Ecwid store�Ecwid Mağazanıza Bağlanın�Kurulumu tamamlamak ve satışa başlayabilmek için Ecwid hesabınıza bağlananın�Connect your Ecwid store to this site <nobr>in two clicks</nobr>�Mağazanızı bağlayın�Connect your store to Wordpress site�Connect your store to this site�Connect your store<br /> to this WordPress site�Bağlantı hatası - düğmeye tıkladıktan sonra eklentiyi kullanmak için giriş yapıp izinleri onaylamalısınız. Lütfen tekrar deneyin.�Connection error: please click the button again and give permissions for this plugin<br /> to show your Ecwid store on this site.�Ecwid Mağazası oluştur�Create a free Ecwid account to manage your store and inventory.<br /> No credit card required�Kontrol paneli�Varsayılan kategori ID�Ürün sayfasının varsayılan görünümü�Arama sonuçlarının varsayılan görünümü�Deneme mağazası�Demo store�Mağaza bağlantısını kes�Display categories above products�Arama kutusunu ürünlerin üzerinde göster�Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site.�Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop.�Displays a simple search box for your customers to find a product in your storex�Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid.�Ecwid online mağazasını sevdiniz mi? Wordpress sayfasında eklentimizi oylamanız ve görüşlerinizi bildirmeniz bizi çok memnun edecektir.�Ecwid hesabınız yok mu? Burada oluşturun�Don't have an Ecwid account?�Ecwid Yaması�Ecwid Alışveriş Sepeti — Gelişmiş ayarlar�Ecwid Alışveriş Sepeti — Görünüm ayarları�Eсwid Mağazası�Ecwid Team�Ecwid e-ticaret widgetleri�Ecwid e-ticaret çözümü�Ecwid ücretsiz alışveriş sepeti�Ecwid iOS app allows you to manage your online store, sell your products on the go, and accept payments with your phone. Just download the Ecwid app, connect it to your Ecwid shop and have your sales at your fingertips!�Ecwid, ücretsiz ve tam özellikli bir alışveriş sepetidir. Beş dakikadan daha kısa bir sürede kurulabilir ve her hangi bir Wordpress bloğuyla bütünleştirilebilir.�Ecwid is compatible with your<br>“%s” WordPress theme<br>out of the box.�Ecwid plugin settings�Ecwid alışveriş sepeti�Ecwid alışveriş sepeti ayarları�Ecwid alışveriş sepeti widgeti�Görünümü Düzenle�Mağazayı Düzenle�Enable minicart attached to categories�Enable the new category menu�Enter your Store ID�Features�Free Google XML Sitemaps plugin creates a sitemap that includes your store product links. This makes your product pages more visible to search engines and appear in the search results.�Free and always up to date�Free plan always available with tons of features<br>at no additional cost. Updates are seamless, automatic<br>and free of charge.�Ücretsiz kayıt, kredi kartı gerekli değil�Get Started, Create Ecwid Account�Get Your Products Found on Google using XML Sitemap�Yardım alın�Get ready to sell online�Global Reach�Ecwid web sitesine git�Güzel! Mağazanız kuruldu, siparişleri kabul edebilirsiniz.�Tebrikler!�Tebrikler! Ecwid mağazanız artık etkin.�Izgara�Izgara görünümü�Sayfa başına kaç adet ürün görüntüleneceğini belirleyebilirsiniz. Bu seçenekler azami miktarları belirtmektedir. Tüm ürünleri görüntülemek için yeterli alan yok ise Ecwid sütunları tüm ürünleri gösterecek şekilde değiştirecektir.�Gizli kategori�In order to enable this feature, opt to use a secret key. You will find this key in your Ecwid control panel, at "System Settings > Apps > Legacy API Keys > Single Sign-On Secret Key" page. This feature is available for <a href="http://www.ecwid.com/compare-plans.html" target="_blank">paid users</a> only.�Bu ayarı değiştirmek için, <a %s>gerekli kategori IDsini bulun ve </a> buraya kaydedin.�Liste�Liste görünümü�Mağaza yönetimi�Plugin ayarlarını değiştir�More than 800,000 merchants in 175 countries�Bu mesajı bir daha gösterme�New features available, reconnect to be in touch with our updates�Kredi kartı gerekmez�Artık mağaza görünümünü değiştirebilirsiniz�Satır başına kategori sayısı�Sayfa başına ürün sayısı�Number of products to show�Kontrol panelini aç�Ya da arama kutusunu <a href="%s">WordPress yerleşik widgetlerını</a> kullanarak ekleyebilirsiniz�Ya da dikey kategorileri sitenin araç çubuğuna <a href="%s">WordPress yerleşik widgetlerını</a> kullanarak ekleyebilirsiniz�PCI-DSS Certified�Please note this functionality is in beta. So if you run into difficulties or find problems with Chameleon, please <a %s>let us know</a>.�Eklenti başarıyla yüklendi!�Fiyat�Product Search�Product catalog will be shown automatically�Questions? Visit <a %s>Ecwid support center</a>�Sorun mu yaşıyorsunuz? <a href="http://help.ecwid.com/?source=wporg">Ecwid destek merkezini</a> ziyaret edin�WordPress.org sitesinde Ecwid uygulamasını oylayın�Recently Viewed Products�Çevrimiçi Mağazanız için Öneriler�Reconnect Ecwid store�Reconnect your store<br /> to this WordPress site�Kayıt Ol�Ecwid'e ücretsiz kayıt olun�Responsive design�Save and connect�Değişiklikleri kaydet�Secure checkout with over 40<br />payment options�Ecwid mağazası<br>ile Her Yerde Satın�Ecwid iOS uygulamasıyla Hareket Halinde Satın�Ecwid Mağaza Kurulumu�Kurulum�Mağaza�Shopping Cart�Shopping Cart (Mini)�Show categories�Show minicart�Show search�Tek giriş (Single Sign-On) Gizli Anahtarı�Tek giriş (Single Sign-On) gizli anahtarı müşterilerinizin WordPress sayfanızı Ecwid sayfanızı ziyaret eder gibi görüntülemelerini sağlar. Müşteriler sitenize giriş yaptıklarında otomatik olarak Ecwid mağazanıza da giriş yaparlar. Ziyaretçileriniz WordPress sayfanızda hesap oluşturmaya başladığında bu özelliği kullanabilirsiniz.�Satmaya başlayın�Start selling <br>on your WordPress <nobr>site for free</nobr>�Start selling on your WordPress site. Then mirror your shop on your Facebook page, blog and marketplaces like Google Shopping, Yahoo and Shopping.com.�Mağaza�Store Categories�Mağaza ID�Store ID is a unique identifier of your Ecwid account. You can find it in your Ecwid control panel: open the <a %s>Dashboard page</a> and find the "<b>Store ID: NNNNNNN</b>" text, where <b>NNNNNNN</b> is your Store ID.�Store Link Title�Store Page Link�Mağaza kök kategorisi�Store settings�Tablo�Tablo görünümü�Mağaza kurulumu için birkaç basit adımı tamamlayın�The new category menu looks better and is more mobile-friendly. If you haven't yet added category menu to your store page, you can do that in the <a %s>store page editor</a> (enable the "Show categories" option)�There are few little steps left to start selling<br /> on your WordPress site�There are just a few steps left to start selling<br /> on your WordPress site�Ek özellikleri kullanabilmek için Ecwid mağaza elemanlarını sitenize sürükleyerek bırakınız. İşlemlerinizi tamamladıktan sonra ayarlarınızı değiştirmeye devam edebilirsiniz.�Use Ecwid's mobile-POS to swipe credit cards and sell on the go. Your orders and inventory are always synchronized with your online store.�Mağazayı Ziyaret Et�Mağazayı ziyaret et�Where to find your Store ID:�You have not viewed any product yet. Open store.�Web sitenize küçük alışveriş sepeti eklediyseniz bu ayarı devre dışı bırakınız�You will be asked to log in to your Ecwid Control Panel<br />and give permissions to show your store on this site�Your Ecwid store is connected<br /> to your WordPress website�Your Ecwid store is now connected<br /> to your WordPress website�Mağazanız neredeyse hazır!�Your store looks perfect<br />on all devices�Mağazanız burada görünecek!�Your storefront is ready�→ Facebook ile sat�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/languages/ecwid-shopping-cart-tr_TR.po������������������������������������������0000644�����������������00000051737�15122273603�0017636 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������msgid "Ecwid Shopping Cart" msgstr "" msgid "Ecwid Team" msgstr "Ecwid Team" msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up." msgstr "Ecwid, ücretsiz ve tam özellikli bir alışveriş sepetidir. Beş dakikadan daha kısa bir sürede kurulabilir ve her hangi bir Wordpress bloğuyla bütünleştirilebilir." msgid "Get help" msgstr "Yardım alın" msgid "Go to Ecwid site" msgstr "Ecwid web sitesine git" msgid "Visit storefront" msgstr "Mağazayı ziyaret et" msgid "Manage my store" msgstr "Mağaza yönetimi" msgid "Manage plugin settings" msgstr "Plugin ayarlarını değiştir" msgid "→ Sell on Facebook" msgstr "→ Facebook ile sat" msgid "<a %s>Online store powered by Ecwid</a>" msgstr "<a %s>Ecwid online mağaza çözümleri</a>" msgid "Store" msgstr "Mağaza" msgid "Ecwid shopping cart settings" msgstr "Ecwid alışveriş sepeti ayarları" msgid "Ecwid Store" msgstr "Eсwid Mağazası" msgid "Setup" msgstr "Kurulum" msgid "Dashboard" msgstr "Kontrol paneli" msgid "Appearance settings" msgstr "Görünüm ayarları" msgid "Appearance" msgstr "Görünüm" msgid "Advanced settings" msgstr "Gelişmiş ayarlar" msgid "Advanced" msgstr "Gelişmiş" msgid "Hidden category" msgstr "Gizli kategori" msgid "Recommendations for Your Online Store" msgstr "Çevrimiçi Mağazanız için Öneriler" msgid "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid." msgstr "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid." msgid "Ecwid Badge" msgstr "Ecwid Yaması" msgid "Ecwid shopping cart widget" msgstr "Ecwid alışveriş sepeti widgeti" msgid "Ecwid ecommerce solution" msgstr "Ecwid e-ticaret çözümü" msgid "Ecwid free shopping cart" msgstr "Ecwid ücretsiz alışveriş sepeti" msgid "Ecwid shopping cart" msgstr "Ecwid alışveriş sepeti" msgid "Ecwid e-commerce widgets" msgstr "Ecwid e-ticaret widgetleri" msgid "Adds a cart widget for customer to see the products they added to the cart." msgstr "Adds a cart widget for customer to see the products they added to the cart." msgid "Shopping Cart" msgstr "Shopping Cart" msgid "Adds a compact cart widget for customer to see the products they added to the cart." msgstr "Adds a compact cart widget for customer to see the products they added to the cart." msgid "Shopping Cart (Mini)" msgstr "Shopping Cart (Mini)" msgid "Displays a simple search box for your customers to find a product in your storex" msgstr "Displays a simple search box for your customers to find a product in your storex" msgid "Product Search" msgstr "Product Search" msgid "Adds vertical categories block to let the customer navigate your store." msgstr "Adds vertical categories block to let the customer navigate your store." msgid "Store Categories" msgstr "Store Categories" msgid "Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site." msgstr "Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site." msgid "Store Page Link" msgstr "Store Page Link" msgid "Shop" msgstr "Mağaza" msgid "Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop." msgstr "Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop." msgid "Recently Viewed Products" msgstr "Recently Viewed Products" msgid "You have not viewed any product yet. Open store." msgstr "You have not viewed any product yet. Open store." msgid "Store Link Title" msgstr "Store Link Title" msgid "Number of products to show" msgstr "Number of products to show" msgid "Greetings! Your Ecwid store is now active." msgstr "Tebrikler! Ecwid mağazanız artık etkin." msgid "Take a few simple steps to complete store setup" msgstr "Mağaza kurulumu için birkaç basit adımı tamamlayın" msgid "Set up Ecwid Store" msgstr "Ecwid Mağaza Kurulumu" msgid "Good job! Your store is set up and you're ready to sell." msgstr "Güzel! Mağazanız kuruldu, siparişleri kabul edebilirsiniz." msgid "Now you can fine-tune your store's appearance" msgstr "Artık mağaza görünümünü değiştirebilirsiniz" msgid "Visit Storefront" msgstr "Mağazayı Ziyaret Et" msgid "Configure Appearance" msgstr "Görünümü Değiştir" msgid "Your store is almost ready!" msgstr "Mağazanız neredeyse hazır!" msgid "Connect your Ecwid account with this site to complete setup and start selling" msgstr "Kurulumu tamamlamak ve satışa başlayabilmek için Ecwid hesabınıza bağlananın" msgid "Connect Your Ecwid Store" msgstr "Ecwid Mağazanıza Bağlanın" msgid "To add extra functions to your store, drag and drop Ecwid store elements on your site. When you're done, you can get back to modifying your settings." msgstr "Ek özellikleri kullanabilmek için Ecwid mağaza elemanlarını sitenize sürükleyerek bırakınız. İşlemlerinizi tamamladıktan sonra ayarlarınızı değiştirmeye devam edebilirsiniz." msgid "Back to Store Settings" msgstr "Mağaza Ayarlarına Dön" msgid "Do you like your Ecwid online store? We'd appreciate it if you add your review and vote for the plugin on Wordpress site." msgstr "Ecwid online mağazasını sevdiniz mi? Wordpress sayfasında eklentimizi oylamanız ve görüşlerinizi bildirmeniz bizi çok memnun edecektir." msgid "Rate Ecwid at WordPress.org" msgstr "WordPress.org sitesinde Ecwid uygulamasını oylayın" msgid "Add Store" msgstr "Mağaza Ekle" msgid "Edit Store" msgstr "Mağazayı Düzenle" msgid "Edit Appearance" msgstr "Görünümü Düzenle" msgid "Price" msgstr "Fiyat" msgid "Never show this message again" msgstr "Bu mesajı bir daha gösterme" msgid "Ecwid Shopping Cart — Advanced settings" msgstr "Ecwid Alışveriş Sepeti — Gelişmiş ayarlar" msgid "Category shown by default" msgstr "Varsayılan kategori görünümü" msgid "Store root category" msgstr "Mağaza kök kategorisi" msgid "Default category ID" msgstr "Varsayılan kategori ID" msgid "By default, the storefront shows a list of root categories. You can override this behavior and show a different category when customers open your store for the first time. This is useful if you only have one category or want to display a specific set of items (e.g. \"Featured Products\") to new visitors." msgstr "Mağaza varsayılan olarak kök kategorilerin listesini görüntüler. Bu ayarı değiştirerek müşterilerinize belirli kategoriler görüntüleyebilirsiniz. Müşterilerinize mağazanızı ilk ziyaretlerinde belirli kategoriler veya ürünler (örn. \"Yeni Ürünler\") göstermek istiyorsanız bu ayar işinize yarayabilir." msgid "In order to set this option, <a %s>find an ID of the necessary category</a> and save it here." msgstr "Bu ayarı değiştirmek için, <a %s>gerekli kategori IDsini bulun ve </a> buraya kaydedin." msgid "Single Sign-On Secret Key" msgstr "Tek giriş (Single Sign-On) Gizli Anahtarı" msgid "Single Sign-On Secret Key is an option that allows your customers access to your WordPress site as well as the Ecwid shopping cart. When customers log in to your site, they will automatically be logged in to your Ecwid store as well. It makes sense to enable this feature if your visitors actually create accounts in your WordPress website." msgstr "Tek giriş (Single Sign-On) gizli anahtarı müşterilerinizin WordPress sayfanızı Ecwid sayfanızı ziyaret eder gibi görüntülemelerini sağlar. Müşteriler sitenize giriş yaptıklarında otomatik olarak Ecwid mağazanıza da giriş yaparlar. Ziyaretçileriniz WordPress sayfanızda hesap oluşturmaya başladığında bu özelliği kullanabilirsiniz." msgid "In order to enable this feature, opt to use a secret key. You will find this key in your Ecwid control panel, at \"System Settings > Apps > Legacy API Keys > Single Sign-On Secret Key\" page. This feature is available for <a href=\"http://www.ecwid.com/compare-plans.html\" target=\"_blank\">paid users</a> only." msgstr "In order to enable this feature, opt to use a secret key. You will find this key in your Ecwid control panel, at \"System Settings > Apps > Legacy API Keys > Single Sign-On Secret Key\" page. This feature is available for <a href=\"http://www.ecwid.com/compare-plans.html\" target=\"_blank\">paid users</a> only." msgid "Chameleon skin <sup>beta</sup>" msgstr "Chameleon skin <sup>beta</sup>" msgid "Automatic adjustment of your store design to your Wordpress theme. Whatever Wordpress theme you use, Ecwid will detect predominant colors and font and use them in your product catalog." msgstr "Automatic adjustment of your store design to your Wordpress theme. Whatever Wordpress theme you use, Ecwid will detect predominant colors and font and use them in your product catalog." msgid "Please note this functionality is in beta. So if you run into difficulties or find problems with Chameleon, please <a %s>let us know</a>." msgstr "Please note this functionality is in beta. So if you run into difficulties or find problems with Chameleon, please <a %s>let us know</a>." msgid "Enable the new category menu" msgstr "Enable the new category menu" msgid "The new category menu looks better and is more mobile-friendly. If you haven't yet added category menu to your store page, you can do that in the <a %s>store page editor</a> (enable the \"Show categories\" option)" msgstr "The new category menu looks better and is more mobile-friendly. If you haven't yet added category menu to your store page, you can do that in the <a %s>store page editor</a> (enable the \"Show categories\" option)" msgid "Save changes" msgstr "Değişiklikleri kaydet" msgid "Ecwid Shopping Cart — Appearance settings" msgstr "Ecwid Alışveriş Sepeti — Görünüm ayarları" msgid "Display search box above products" msgstr "Arama kutusunu ürünlerin üzerinde göster" msgid "Or you can add search box to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>" msgstr "Ya da arama kutusunu <a href=\"%s\">WordPress yerleşik widgetlerını</a> kullanarak ekleyebilirsiniz" msgid "Display categories above products" msgstr "Display categories above products" msgid "Or you can add vertical categories to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>" msgstr "Ya da dikey kategorileri sitenin araç çubuğuna <a href=\"%s\">WordPress yerleşik widgetlerını</a> kullanarak ekleyebilirsiniz" msgid "Enable minicart attached to categories" msgstr "Enable minicart attached to categories" msgid "You should disable this option, if you added minicart to your website's sidebar" msgstr "Web sitenize küçük alışveriş sepeti eklediyseniz bu ayarı devre dışı bırakınız" msgid "Number of categories per row" msgstr "Satır başına kategori sayısı" msgid "Number of products per page" msgstr "Sayfa başına ürün sayısı" msgid "Grid view" msgstr "Izgara görünümü" msgid "List view" msgstr "Liste görünümü" msgid "Table view" msgstr "Tablo görünümü" msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, Ecwid will adapt the number of columns to hold all products." msgstr "Sayfa başına kaç adet ürün görüntüleneceğini belirleyebilirsiniz. Bu seçenekler azami miktarları belirtmektedir. Tüm ürünleri görüntülemek için yeterli alan yok ise Ecwid sütunları tüm ürünleri gösterecek şekilde değiştirecektir." msgid "Default view mode on product pages" msgstr "Ürün sayfasının varsayılan görünümü" msgid "Grid" msgstr "Izgara" msgid "List" msgstr "Liste" msgid "Table" msgstr "Tablo" msgid "Default view mode on search results" msgstr "Arama sonuçlarının varsayılan görünümü" msgid "Connect your store<br /> to this WordPress site" msgstr "Connect your store<br /> to this WordPress site" msgid "Enter your Store ID" msgstr "Enter your Store ID" msgid "Connect Ecwid store" msgstr "Connect Ecwid store" msgid "Save and connect" msgstr "Save and connect" msgid "After clicking button you need to login and accept permissions to use our plugin" msgstr "Düğmeye tıkladıktan sonra eklentiyi kullanmak için giriş yapıp izinleri onaylamalısınız" msgid "Connection error - after clicking button you need to login and accept permissions to use our plugin. Please, try again." msgstr "Bağlantı hatası - düğmeye tıkladıktan sonra eklentiyi kullanmak için giriş yapıp izinleri onaylamalısınız. Lütfen tekrar deneyin." msgid "Where to find your Store ID:" msgstr "Where to find your Store ID:" msgid "Store ID is a unique identifier of your Ecwid account. You can find it in your Ecwid control panel: open the <a %s>Dashboard page</a> and find the \"<b>Store ID: NNNNNNN</b>\" text, where <b>NNNNNNN</b> is your Store ID." msgstr "Store ID is a unique identifier of your Ecwid account. You can find it in your Ecwid control panel: open the <a %s>Dashboard page</a> and find the \"<b>Store ID: NNNNNNN</b>\" text, where <b>NNNNNNN</b> is your Store ID." msgid "Don't have Ecwid account? Create it here" msgstr "Ecwid hesabınız yok mu? Burada oluşturun" msgid "Questions? Visit <a %s>Ecwid support center</a>" msgstr "Questions? Visit <a %s>Ecwid support center</a>" msgid "Store ID" msgstr "Mağaza ID" msgid "Disconnect store" msgstr "Mağaza bağlantısını kes" msgid "Congratulations!" msgstr "Tebrikler!" msgid "Your Ecwid store is now connected<br /> to your WordPress website" msgstr "Your Ecwid store is now connected<br /> to your WordPress website" msgid "Greetings!" msgstr "Tebrikler!" msgid "Your Ecwid store is connected<br /> to your WordPress website" msgstr "Your Ecwid store is connected<br /> to your WordPress website" msgid "Open control panel" msgstr "Kontrol panelini aç" msgid "Plugin is installed successfully!" msgstr "Eklenti başarıyla yüklendi!" msgid "There are just a few steps left to start selling<br /> on your WordPress site" msgstr "There are just a few steps left to start selling<br /> on your WordPress site" msgid "There are few little steps left to start selling<br /> on your WordPress site" msgstr "There are few little steps left to start selling<br /> on your WordPress site" msgid "Register" msgstr "Kayıt Ol" msgid "Create a free Ecwid account to manage your store and inventory.<br /> No credit card required" msgstr "Create a free Ecwid account to manage your store and inventory.<br /> No credit card required" msgid "Connect" msgstr "Bağlan" msgid "Add your Ecwid store to your site <nobr>in two clicks</nobr>" msgstr "Add your Ecwid store to your site <nobr>in two clicks</nobr>" msgid "Connect your Ecwid store to this site <nobr>in two clicks</nobr>" msgstr "Connect your Ecwid store to this site <nobr>in two clicks</nobr>" msgid "Start selling" msgstr "Satmaya başlayın" msgid "Your storefront is ready" msgstr "Your storefront is ready" msgid "Create Ecwid store" msgstr "Ecwid Mağazası oluştur" msgid "Connect your store" msgstr "Mağazanızı bağlayın" msgid "Free registration, No credit card required" msgstr "Ücretsiz kayıt, kredi kartı gerekli değil" msgid "Connection error: please click the button again and give permissions for this plugin<br /> to show your Ecwid store on this site." msgstr "Connection error: please click the button again and give permissions for this plugin<br /> to show your Ecwid store on this site." msgid "You will be asked to log in to your Ecwid Control Panel<br />and give permissions to show your store on this site" msgstr "You will be asked to log in to your Ecwid Control Panel<br />and give permissions to show your store on this site" msgid "Already have Ecwid account?" msgstr "Already have Ecwid account?" msgid "Connect your store to Wordpress site" msgstr "Connect your store to Wordpress site" msgid "Don't have an Ecwid account?" msgstr "Don't have an Ecwid account?" msgid "Register at Ecwid for free" msgstr "Ecwid'e ücretsiz kayıt olun" msgid "No credit card required" msgstr "Kredi kartı gerekmez" msgid "Get ready to sell online" msgstr "Get ready to sell online" msgid "Sell Everywhere<br>with your Ecwid store" msgstr "Ecwid mağazası<br>ile Her Yerde Satın" msgid "Start selling on your WordPress site. Then mirror your shop on your Facebook page, blog and marketplaces like Google Shopping, Yahoo and Shopping.com." msgstr "Start selling on your WordPress site. Then mirror your shop on your Facebook page, blog and marketplaces like Google Shopping, Yahoo and Shopping.com." msgid "Use Ecwid's mobile-POS to swipe credit cards and sell on the go. Your orders and inventory are always synchronized with your online store." msgstr "Use Ecwid's mobile-POS to swipe credit cards and sell on the go. Your orders and inventory are always synchronized with your online store." msgid "Features" msgstr "Features" msgid "Compatible with your theme" msgstr "Compatible with your theme" msgid "Ecwid is compatible with your<br>“%s” WordPress theme<br>out of the box." msgstr "Ecwid is compatible with your<br>“%s” WordPress theme<br>out of the box." msgid "Free and always up to date" msgstr "Free and always up to date" msgid "Free plan always available with tons of features<br>at no additional cost. Updates are seamless, automatic<br>and free of charge." msgstr "Free plan always available with tons of features<br>at no additional cost. Updates are seamless, automatic<br>and free of charge." msgid "Responsive design" msgstr "Responsive design" msgid "Your store looks perfect<br />on all devices" msgstr "Your store looks perfect<br />on all devices" msgid "PCI-DSS Certified" msgstr "PCI-DSS Certified" msgid "Secure checkout with over 40<br />payment options" msgstr "Secure checkout with over 40<br />payment options" msgid "Global Reach" msgstr "Global Reach" msgid "More than 800,000 merchants in 175 countries" msgstr "More than 800,000 merchants in 175 countries" msgid "Start selling <br>on your WordPress <nobr>site for free</nobr>" msgstr "Start selling <br>on your WordPress <nobr>site for free</nobr>" msgid "Get Started, Create Ecwid Account" msgstr "Get Started, Create Ecwid Account" msgid "Connect your store to this site" msgstr "Connect your store to this site" msgid "Reconnect your store<br /> to this WordPress site" msgstr "Reconnect your store<br /> to this WordPress site" msgid "Reconnect Ecwid store" msgstr "Reconnect Ecwid store" msgid "New features available, reconnect to be in touch with our updates" msgstr "New features available, reconnect to be in touch with our updates" msgid "Questions? Visit <a href=\"http://help.ecwid.com/?source=wporg\">Ecwid support center</a>" msgstr "Sorun mu yaşıyorsunuz? <a href=\"http://help.ecwid.com/?source=wporg\">Ecwid destek merkezini</a> ziyaret edin" msgid "Store settings" msgstr "Store settings" msgid "Choose widgets to show" msgstr "Choose widgets to show" msgid "Product catalog will be shown automatically" msgstr "Product catalog will be shown automatically" msgid "Show search" msgstr "Show search" msgid "Show minicart" msgstr "Show minicart" msgid "Show categories" msgstr "Show categories" msgid "Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>" msgstr "Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>" msgid "Demo store" msgstr "Demo store" msgid "Ecwid plugin settings" msgstr "Ecwid plugin settings" msgid "Your store will be shown here!" msgstr "Mağazanız burada görünecek!" msgid "Demo Store" msgstr "Deneme mağazası" msgid "Sell On The Go with Ecwid iOS Application" msgstr "Ecwid iOS uygulamasıyla Hareket Halinde Satın" msgid "Ecwid iOS app allows you to manage your online store, sell your products on the go, and accept payments with your phone. Just download the Ecwid app, connect it to your Ecwid shop and have your sales at your fingertips!" msgstr "Ecwid iOS app allows you to manage your online store, sell your products on the go, and accept payments with your phone. Just download the Ecwid app, connect it to your Ecwid shop and have your sales at your fingertips!" msgid "Get Your Products Found on Google using XML Sitemap" msgstr "Get Your Products Found on Google using XML Sitemap" msgid "Free Google XML Sitemaps plugin creates a sitemap that includes your store product links. This makes your product pages more visible to search engines and appear in the search results." msgstr "Free Google XML Sitemaps plugin creates a sitemap that includes your store product links. This makes your product pages more visible to search engines and appear in the search results." msgid "Add Product Slider to Your Store" msgstr "Mağazanıza Ürün Kaydırıcı Ekleyin" msgid "Add a fancy product slider to your site using a free WP Widgets Avalanche plugin which works perfectly with Ecwid" msgstr "Ecwid ile mükemmel bir şekilde çalışan WP Widgets Avalanche eklentisini indirerek sitenize süslü bir ürün kaydırıcısı ekleyin" ���������������������������������ecwid-shopping-cart/lib/html-catalog-templates/category.php�����������������������������������������0000644�����������������00000002257�15122273603�0020066 0����������������������������������������������������������������������������������������������������ustar�00������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� <?php if ( $main_category ): ?> <h1 class="category-name"><?php echo esc_html( $main_category->name ); ?></h1> <?php if ( $main_category->description ): ?> <div class="category-description"><?php echo wp_kses_post( $main_category->description ); ?></div> <?php endif; ?> <?php endif; ?> <?php if ( $categories ): foreach ( $categories as $category ): ?> <div class="category-<?php echo esc_attr( $category->id ); ?>"> <a href="<?php $cat = Ecwid_Category::get_by_id( $category->id ); echo esc_url( $cat->get_link( $this->store_base_url ) ); ?>"> <?php echo esc_html( $category->name ); ?> </a> </div> <?php endforeach; endif; ?> <?php if ( $products ): foreach ( $products as $product ): ?> <?php $product = Ecwid_Product::get_by_id($product->id); ?> <div class="product-<?php echo esc_attr( $product->id ); ?>"> <span class="product-name"> <a href="<?php echo esc_url( $product->get_link( $this->store_base_url ) ); ?>"> <?php echo esc_html( $product->name ); ?> </a> </span> <span class="product-price"> <?php echo esc_html( $product->defaultDisplayedPrice . ' ' . $formats->currency ); ?> </span> </div> <?php endforeach; endif; ?> �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/lib/html-catalog-templates/product.php������������������������������������������0000644�����������������00000007320�15122273603�0017725 0����������������������������������������������������������������������������������������������������ustar�00������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� <div itemscope itemtype="http://schema.org/Product"> <h1 itemprop="name"><?php echo esc_html( $product->name ); ?></h1> <p itemprop="sku"><?php echo esc_html( $product->sku ); ?></p> <img itemprop="image" src="<?php echo esc_attr( $product->originalImageUrl ); ?>" alt="<?php echo esc_attr( $product->name . ' ' . $product->sku); ?>" /> <div itemprop="description"><?php echo isset( $product->seoDescription )&& !empty( $product->seoDescription ) ? wp_kses_post( $product->seoDescription ) : wp_kses_post( $product->description ); ?></div> <div itemprop="offers" itemscope itemtype="http://schema.org/Offer"> <span itemprop="price" content="<?php echo esc_html( $product->defaultDisplayedPrice ); ?>"><?php echo esc_html( $formats->currencyPrefix . $product->defaultDisplayedPrice . $formats->currencySuffix ); ?></span> <span itemprop="priceCurrency" content="<?php echo esc_attr( $formats->currency ); ?>"></span> <?php if ( !isset( $product->quantity) || $product->quantity > 0): ?><link itemprop="availability" href="http://schema.org/InStock" />In stock<?php endif; ?> <link itemprop="url" href="<?php if( !empty($product->seo_link) ) { echo esc_attr( $product->seo_link ); } else { echo esc_attr( $product->url ); }?>" /> </div> <?php if ( isset( $product->attributes ) && is_array( $product->attributes ) && !empty( $product->attributes) ): ?> <div class="attributes"> <?php foreach ( $product->attributes as $attribute ): ?> <div><?php echo esc_html( $attribute->name ) . ':'; if ( isset( $attribute->internalName ) && $attribute->internalName == 'Brand' || isset( $attribute->type ) && $attribute->type == 'BRAND' ): ?><span itemprop="brand"><?php echo esc_html( $attribute->value ); ?></span><?php else: echo esc_html( $attribute->value ); endif; ?></div> <?php endforeach; ?></div> <?php endif; ?> <?php if ( isset( $product->options) && is_array( $product->options ) && !empty( $product->options ) ): ?> <?php foreach ( $product->options as $option ): ?> <div class="option"> <span class="name"><?php echo esc_attr( $option->name ); ?></span> <span class="input"><?php if ( $option->type == 'TEXTAREA' ): ?> <textarea name="<?php echo esc_attr( $option->name ); ?>"></textarea> <?php elseif ( $option->type == 'SELECT' ): ?> <select name="<?php echo esc_attr( $option->name ); ?>"><?php foreach( $option->choices as $param ): ?> <option value="<?php echo esc_attr( $param->text ); ?>"><?php echo esc_html( $param->text ); echo ' '; echo esc_html( $param->priceModifier ); ?></option><?php endforeach; ?> </select><?php elseif ( $option->type == 'RADIO' ): foreach ( $option->choices as $param ): ?> <?php echo sprintf( '<input type="radio" name="%s" value="%s" />%s (%s)', esc_attr( $option->name ), esc_attr( $param->text ), esc_html( $param->text ), esc_html( $param->priceModifier ) ); ?> <?php endforeach; ?> <?php elseif ( $option->type == 'CHECKBOX'): foreach ( $option->choices as $param ): ?> <?php echo sprintf( '<input type="checkbox" name="%s[]" value="%s" />%s (%s)', esc_attr( $option->name ), esc_attr( $param->text ), esc_html( $param->text ), esc_html( $param->priceModifier ) ); ?> <?php endforeach; ?> <?php else: ?> <input type="text" name="<?php echo esc_attr( $option->name ); ?>" /><?php endif; ?> </span> </div> <?php endforeach; endif; ?> <?php if ( $product->galleryImages ) foreach ( $product->galleryImages as $image): ?><img src="<?php echo esc_attr( $image->url ); ?>" alt="<?php echo esc_attr( isset( $image->alt ) ? $image->alt : $product->name ); ?>" /> <?php endforeach; ?> </div>����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/lib/phpseclib/AES.php�����������������������������������������������������������0000644�����������������00000014150�15122273603�0014255 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?php /** * Pure-PHP implementation of AES. * * Uses mcrypt, if available/possible, and an internal implementation, otherwise. * * PHP versions 4 and 5 * * NOTE: Since AES.php is (for compatibility and phpseclib-historical reasons) virtually * just a wrapper to Rijndael.php you may consider using Rijndael.php instead of * to save one include_once(). * * If {@link Crypt_AES::setKeyLength() setKeyLength()} isn't called, it'll be calculated from * {@link Crypt_AES::setKey() setKey()}. ie. if the key is 128-bits, the key length will be 128-bits. If it's 136-bits * it'll be null-padded to 192-bits and 192 bits will be the key length until {@link Crypt_AES::setKey() setKey()} * is called, again, at which point, it'll be recalculated. * * Since Crypt_AES extends Crypt_Rijndael, some functions are available to be called that, in the context of AES, don't * make a whole lot of sense. {@link Crypt_AES::setBlockLength() setBlockLength()}, for instance. Calling that function, * however possible, won't do anything (AES has a fixed block length whereas Rijndael has a variable one). * * Here's a short example of how to use this library: * <code> * <?php * include 'Crypt/AES.php'; * * $aes = new Crypt_AES(); * * $aes->setKey('abcdefghijklmnop'); * * $size = 10 * 1024; * $plaintext = ''; * for ($i = 0; $i < $size; $i++) { * $plaintext.= 'a'; * } * * echo $aes->decrypt($aes->encrypt($plaintext)); * ?> * </code> * * LICENSE: Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. * * @category Crypt * @package Crypt_AES * @author Jim Wigginton <terrafrost@php.net> * @copyright 2008 Jim Wigginton * @license http://www.opensource.org/licenses/mit-license.html MIT License * @link http://phpseclib.sourceforge.net */ /** * Include Crypt_Rijndael */ if (!class_exists('Ecwid_Crypt_Rijndael')) { include_once 'Rijndael.php'; } /**#@+ * @access public * @see Crypt_AES::encrypt() * @see Crypt_AES::decrypt() */ /** * Encrypt / decrypt using the Counter mode. * * Set to -1 since that's what Crypt/Random.php uses to index the CTR mode. * * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Counter_.28CTR.29 */ define('CRYPT_AES_MODE_CTR', CRYPT_MODE_CTR); /** * Encrypt / decrypt using the Electronic Code Book mode. * * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Electronic_codebook_.28ECB.29 */ define('CRYPT_AES_MODE_ECB', CRYPT_MODE_ECB); /** * Encrypt / decrypt using the Code Book Chaining mode. * * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher-block_chaining_.28CBC.29 */ define('CRYPT_AES_MODE_CBC', CRYPT_MODE_CBC); /** * Encrypt / decrypt using the Cipher Feedback mode. * * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher_feedback_.28CFB.29 */ define('CRYPT_AES_MODE_CFB', CRYPT_MODE_CFB); /** * Encrypt / decrypt using the Cipher Feedback mode. * * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Output_feedback_.28OFB.29 */ define('CRYPT_AES_MODE_OFB', CRYPT_MODE_OFB); /**#@-*/ /** * Pure-PHP implementation of AES. * * @package Crypt_AES * @author Jim Wigginton <terrafrost@php.net> * @access public */ class Ecwid_Crypt_AES extends Ecwid_Crypt_Rijndael { /** * The namespace used by the cipher for its constants. * * @see Crypt_Base::const_namespace * @var string * @access private */ var $const_namespace = 'AES'; /** * Dummy function * * Since Crypt_AES extends Crypt_Rijndael, this function is, technically, available, but it doesn't do anything. * * @see Crypt_Rijndael::setBlockLength() * @access public * @param int $length */ function setBlockLength($length) { return; } /** * Sets the key length * * Valid key lengths are 128, 192, and 256. If the length is less than 128, it will be rounded up to * 128. If the length is greater than 128 and invalid, it will be rounded down to the closest valid amount. * * @see Crypt_Rijndael:setKeyLength() * @access public * @param int $length */ function setKeyLength($length) { switch ($length) { case 160: $length = 192; break; case 224: $length = 256; } parent::setKeyLength($length); } /** * Sets the key. * * Rijndael supports five different key lengths, AES only supports three. * * @see Crypt_Rijndael:setKey() * @see setKeyLength() * @access public * @param string $key */ function setKey($key) { parent::setKey($key); if (!$this->explicit_key_length) { $length = strlen($key); switch (true) { case $length <= 16: $this->key_length = 16; break; case $length <= 24: $this->key_length = 24; break; default: $this->key_length = 32; } $this->_setEngine(); } } } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/lib/phpseclib/Base.php����������������������������������������������������������0000644�����������������00000262516�15122273603�0014532 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?php /** * Base Class for all Crypt_* cipher classes * * PHP versions 4 and 5 * * Internally for phpseclib developers: * If you plan to add a new cipher class, please note following rules: * * - The new Crypt_* cipher class should extend Crypt_Base * * - Following methods are then required to be overridden/overloaded: * * - _encryptBlock() * * - _decryptBlock() * * - _setupKey() * * - All other methods are optional to be overridden/overloaded * * - Look at the source code of the current ciphers how they extend Crypt_Base * and take one of them as a start up for the new cipher class. * * - Please read all the other comments/notes/hints here also for each class var/method * * LICENSE: Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. * * @category Crypt * @package Crypt_Base * @author Jim Wigginton <terrafrost@php.net> * @author Hans-Juergen Petrich <petrich@tronic-media.com> * @copyright 2007 Jim Wigginton * @license http://www.opensource.org/licenses/mit-license.html MIT License * @link http://phpseclib.sourceforge.net */ /**#@+ * @access public * @see Crypt_Base::encrypt() * @see Crypt_Base::decrypt() */ /** * Encrypt / decrypt using the Counter mode. * * Set to -1 since that's what Crypt/Random.php uses to index the CTR mode. * * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Counter_.28CTR.29 */ define('CRYPT_MODE_CTR', -1); /** * Encrypt / decrypt using the Electronic Code Book mode. * * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Electronic_codebook_.28ECB.29 */ define('CRYPT_MODE_ECB', 1); /** * Encrypt / decrypt using the Code Book Chaining mode. * * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher-block_chaining_.28CBC.29 */ define('CRYPT_MODE_CBC', 2); /** * Encrypt / decrypt using the Cipher Feedback mode. * * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher_feedback_.28CFB.29 */ define('CRYPT_MODE_CFB', 3); /** * Encrypt / decrypt using the Output Feedback mode. * * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Output_feedback_.28OFB.29 */ define('CRYPT_MODE_OFB', 4); /** * Encrypt / decrypt using streaming mode. */ define('CRYPT_MODE_STREAM', 5); /**#@-*/ /**#@+ * @access private * @see Crypt_Base::Crypt_Base() * @internal These constants are for internal use only */ /** * Base value for the internal implementation $engine switch */ define('CRYPT_ENGINE_INTERNAL', 1); /** * Base value for the mcrypt implementation $engine switch */ define('CRYPT_ENGINE_MCRYPT', 2); /** * Base value for the OpenSSL implementation $engine switch */ define('CRYPT_ENGINE_OPENSSL', 3); /**#@-*/ /** * Base Class for all Crypt_* cipher classes * * @package Crypt_Base * @author Jim Wigginton <terrafrost@php.net> * @author Hans-Juergen Petrich <petrich@tronic-media.com> * @access public */ class Ecwid_Crypt_Base { /** * The Encryption Mode * * @see Crypt_Base::Crypt_Base() * @var int * @access private */ var $mode; /** * The Block Length of the block cipher * * @var int * @access private */ var $block_size = 16; /** * The Key * * @see Crypt_Base::setKey() * @var string * @access private */ var $key = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; /** * The Initialization Vector * * @see Crypt_Base::setIV() * @var string * @access private */ var $iv; /** * A "sliding" Initialization Vector * * @see Crypt_Base::enableContinuousBuffer() * @see Crypt_Base::_clearBuffers() * @var string * @access private */ var $encryptIV; /** * A "sliding" Initialization Vector * * @see Crypt_Base::enableContinuousBuffer() * @see Crypt_Base::_clearBuffers() * @var string * @access private */ var $decryptIV; /** * Continuous Buffer status * * @see Crypt_Base::enableContinuousBuffer() * @var bool * @access private */ var $continuousBuffer = false; /** * Encryption buffer for CTR, OFB and CFB modes * * @see Crypt_Base::encrypt() * @see Crypt_Base::_clearBuffers() * @var array * @access private */ var $enbuffer; /** * Decryption buffer for CTR, OFB and CFB modes * * @see Crypt_Base::decrypt() * @see Crypt_Base::_clearBuffers() * @var array * @access private */ var $debuffer; /** * mcrypt resource for encryption * * The mcrypt resource can be recreated every time something needs to be created or it can be created just once. * Since mcrypt operates in continuous mode, by default, it'll need to be recreated when in non-continuous mode. * * @see Crypt_Base::encrypt() * @var resource * @access private */ var $enmcrypt; /** * mcrypt resource for decryption * * The mcrypt resource can be recreated every time something needs to be created or it can be created just once. * Since mcrypt operates in continuous mode, by default, it'll need to be recreated when in non-continuous mode. * * @see Crypt_Base::decrypt() * @var resource * @access private */ var $demcrypt; /** * Does the enmcrypt resource need to be (re)initialized? * * @see Crypt_Twofish::setKey() * @see Crypt_Twofish::setIV() * @var bool * @access private */ var $enchanged = true; /** * Does the demcrypt resource need to be (re)initialized? * * @see Crypt_Twofish::setKey() * @see Crypt_Twofish::setIV() * @var bool * @access private */ var $dechanged = true; /** * mcrypt resource for CFB mode * * mcrypt's CFB mode, in (and only in) buffered context, * is broken, so phpseclib implements the CFB mode by it self, * even when the mcrypt php extension is available. * * In order to do the CFB-mode work (fast) phpseclib * use a separate ECB-mode mcrypt resource. * * @link http://phpseclib.sourceforge.net/cfb-demo.phps * @see Crypt_Base::encrypt() * @see Crypt_Base::decrypt() * @see Crypt_Base::_setupMcrypt() * @var resource * @access private */ var $ecb; /** * Optimizing value while CFB-encrypting * * Only relevant if $continuousBuffer enabled * and $engine == CRYPT_ENGINE_MCRYPT * * It's faster to re-init $enmcrypt if * $buffer bytes > $cfb_init_len than * using the $ecb resource furthermore. * * This value depends of the chosen cipher * and the time it would be needed for it's * initialization [by mcrypt_generic_init()] * which, typically, depends on the complexity * on its internaly Key-expanding algorithm. * * @see Crypt_Base::encrypt() * @var int * @access private */ var $cfb_init_len = 600; /** * Does internal cipher state need to be (re)initialized? * * @see setKey() * @see setIV() * @see disableContinuousBuffer() * @var bool * @access private */ var $changed = true; /** * Padding status * * @see Crypt_Base::enablePadding() * @var bool * @access private */ var $padding = true; /** * Is the mode one that is paddable? * * @see Crypt_Base::Crypt_Base() * @var bool * @access private */ var $paddable = false; /** * Holds which crypt engine internaly should be use, * which will be determined automatically on __construct() * * Currently available $engines are: * - CRYPT_ENGINE_OPENSSL (very fast, php-extension: openssl, extension_loaded('openssl') required) * - CRYPT_ENGINE_MCRYPT (fast, php-extension: mcrypt, extension_loaded('mcrypt') required) * - CRYPT_ENGINE_INTERNAL (slower, pure php-engine, no php-extension required) * * @see Crypt_Base::_setEngine() * @see Crypt_Base::encrypt() * @see Crypt_Base::decrypt() * @var int * @access private */ var $engine; /** * Holds the preferred crypt engine * * @see Crypt_Base::_setEngine() * @see Crypt_Base::setPreferredEngine() * @var int * @access private */ var $preferredEngine; /** * The mcrypt specific name of the cipher * * Only used if $engine == CRYPT_ENGINE_MCRYPT * * @link http://www.php.net/mcrypt_module_open * @link http://www.php.net/mcrypt_list_algorithms * @see Crypt_Base::_setupMcrypt() * @var string * @access private */ var $cipher_name_mcrypt; /** * The openssl specific name of the cipher * * Only used if $engine == CRYPT_ENGINE_OPENSSL * * @link http://www.php.net/openssl-get-cipher-methods * @var string * @access private */ var $cipher_name_openssl; /** * The openssl specific name of the cipher in ECB mode * * If OpenSSL does not support the mode we're trying to use (CTR) * it can still be emulated with ECB mode. * * @link http://www.php.net/openssl-get-cipher-methods * @var string * @access private */ var $cipher_name_openssl_ecb; /** * The default salt used by setPassword() * * @see Crypt_Base::setPassword() * @var string * @access private */ var $password_default_salt = 'phpseclib/salt'; /** * The namespace used by the cipher for its constants. * * ie: AES.php is using CRYPT_AES_MODE_* for its constants * so $const_namespace is AES * * DES.php is using CRYPT_DES_MODE_* for its constants * so $const_namespace is DES... and so on * * All CRYPT_<$const_namespace>_MODE_* are aliases of * the generic CRYPT_MODE_* constants, so both could be used * for each cipher. * * Example: * $aes = new Crypt_AES(CRYPT_AES_MODE_CFB); // $aes will operate in cfb mode * $aes = new Crypt_AES(CRYPT_MODE_CFB); // identical * * @see Crypt_Base::Crypt_Base() * @var string * @access private */ var $const_namespace; /** * The name of the performance-optimized callback function * * Used by encrypt() / decrypt() * only if $engine == CRYPT_ENGINE_INTERNAL * * @see Crypt_Base::encrypt() * @see Crypt_Base::decrypt() * @see Crypt_Base::_setupInlineCrypt() * @see Crypt_Base::$use_inline_crypt * @var Callback * @access private */ var $inline_crypt; /** * Holds whether performance-optimized $inline_crypt() can/should be used. * * @see Crypt_Base::encrypt() * @see Crypt_Base::decrypt() * @see Crypt_Base::inline_crypt * @var mixed * @access private */ var $use_inline_crypt; /** * If OpenSSL can be used in ECB but not in CTR we can emulate CTR * * @see Crypt_Base::_openssl_ctr_process() * @var bool * @access private */ var $openssl_emulate_ctr = false; /** * Determines what options are passed to openssl_encrypt/decrypt * * @see Crypt_Base::isValidEngine() * @var mixed * @access private */ var $openssl_options; /** * Has the key length explicitly been set or should it be derived from the key, itself? * * @see self::setKeyLength() * @var bool * @access private */ var $explicit_key_length = false; /** * Don't truncate / null pad key * * @see self::_clearBuffers() * @var bool * @access private */ var $skip_key_adjustment = false; /** * Default Constructor. * * Determines whether or not the mcrypt extension should be used. * * $mode could be: * * - CRYPT_MODE_ECB * * - CRYPT_MODE_CBC * * - CRYPT_MODE_CTR * * - CRYPT_MODE_CFB * * - CRYPT_MODE_OFB * * (or the alias constants of the chosen cipher, for example for AES: CRYPT_AES_MODE_ECB or CRYPT_AES_MODE_CBC ...) * * If not explicitly set, CRYPT_MODE_CBC will be used. * * @param int $mode * @access public */ function __construct($mode = CRYPT_MODE_CBC) { $this->Ecwid_Crypt_Base($mode); } function Ecwid_Crypt_Base($mode = CRYPT_MODE_CBC) { // $mode dependent settings switch ($mode) { case CRYPT_MODE_ECB: $this->paddable = true; $this->mode = CRYPT_MODE_ECB; break; case CRYPT_MODE_CTR: case CRYPT_MODE_CFB: case CRYPT_MODE_OFB: case CRYPT_MODE_STREAM: $this->mode = $mode; break; case CRYPT_MODE_CBC: default: $this->paddable = true; $this->mode = CRYPT_MODE_CBC; } $this->_setEngine(); // Determining whether inline crypting can be used by the cipher if ($this->use_inline_crypt !== false && function_exists('create_function')) { $this->use_inline_crypt = true; } } /** * Sets the initialization vector. (optional) * * SetIV is not required when CRYPT_MODE_ECB (or ie for AES: CRYPT_AES_MODE_ECB) is being used. If not explicitly set, it'll be assumed * to be all zero's. * * @access public * @param string $iv * @internal Can be overwritten by a sub class, but does not have to be */ function setIV($iv) { if ($this->mode == CRYPT_MODE_ECB) { return; } $this->iv = $iv; $this->changed = true; } /** * Sets the key length. * * Keys with explicitly set lengths need to be treated accordingly * * @access public * @param int $length */ function setKeyLength($length) { $this->explicit_key_length = true; $this->changed = true; $this->_setEngine(); } /** * Returns the current key length in bits * * @access public * @return int */ function getKeyLength() { return $this->key_length << 3; } /** * Returns the current block length in bits * * @access public * @return int */ function getBlockLength() { return $this->block_size << 3; } /** * Sets the key. * * The min/max length(s) of the key depends on the cipher which is used. * If the key not fits the length(s) of the cipher it will paded with null bytes * up to the closest valid key length. If the key is more than max length, * we trim the excess bits. * * If the key is not explicitly set, it'll be assumed to be all null bytes. * * @access public * @param string $key * @internal Could, but not must, extend by the child Crypt_* class */ function setKey($key) { if (!$this->explicit_key_length) { $this->setKeyLength(strlen($key) << 3); $this->explicit_key_length = false; } $this->key = $key; $this->changed = true; $this->_setEngine(); } /** * Sets the password. * * Depending on what $method is set to, setPassword()'s (optional) parameters are as follows: * {@link http://en.wikipedia.org/wiki/PBKDF2 pbkdf2} or pbkdf1: * $hash, $salt, $count, $dkLen * * Where $hash (default = sha1) currently supports the following hashes: see: Crypt/Hash.php * * @see Crypt/Hash.php * @param string $password * @param string $method * @return bool * @access public * @internal Could, but not must, extend by the child Crypt_* class */ function setPassword($password, $method = 'pbkdf2') { $key = ''; switch ($method) { default: // 'pbkdf2' or 'pbkdf1' $func_args = func_get_args(); // Hash function $hash = isset($func_args[2]) ? $func_args[2] : 'sha1'; // WPA and WPA2 use the SSID as the salt $salt = isset($func_args[3]) ? $func_args[3] : $this->password_default_salt; // RFC2898#section-4.2 uses 1,000 iterations by default // WPA and WPA2 use 4,096. $count = isset($func_args[4]) ? $func_args[4] : 1000; // Keylength if (isset($func_args[5])) { $dkLen = $func_args[5]; } else { $dkLen = $method == 'pbkdf1' ? 2 * $this->key_length : $this->key_length; } switch (true) { case $method == 'pbkdf1': if (!class_exists('Crypt_Hash')) { include_once 'Crypt/Hash.php'; } $hashObj = new Crypt_Hash(); $hashObj->setHash($hash); if ($dkLen > $hashObj->getLength()) { user_error('Derived key too long'); return false; } $t = $password . $salt; for ($i = 0; $i < $count; ++$i) { $t = $hashObj->hash($t); } $key = substr($t, 0, $dkLen); $this->setKey(substr($key, 0, $dkLen >> 1)); $this->setIV(substr($key, $dkLen >> 1)); return true; // Determining if php[>=5.5.0]'s hash_pbkdf2() function avail- and useable case !function_exists('hash_pbkdf2'): case !function_exists('hash_algos'): case !in_array($hash, hash_algos()): if (!class_exists('Crypt_Hash')) { include_once 'Crypt/Hash.php'; } $i = 1; while (strlen($key) < $dkLen) { $hmac = new Crypt_Hash(); $hmac->setHash($hash); $hmac->setKey($password); $f = $u = $hmac->hash($salt . pack('N', $i++)); for ($j = 2; $j <= $count; ++$j) { $u = $hmac->hash($u); $f^= $u; } $key.= $f; } $key = substr($key, 0, $dkLen); break; default: $key = hash_pbkdf2($hash, $password, $salt, $count, $dkLen, true); } } $this->setKey($key); return true; } /** * Encrypts a message. * * $plaintext will be padded with additional bytes such that it's length is a multiple of the block size. Other cipher * implementations may or may not pad in the same manner. Other common approaches to padding and the reasons why it's * necessary are discussed in the following * URL: * * {@link http://www.di-mgt.com.au/cryptopad.html http://www.di-mgt.com.au/cryptopad.html} * * An alternative to padding is to, separately, send the length of the file. This is what SSH, in fact, does. * strlen($plaintext) will still need to be a multiple of the block size, however, arbitrary values can be added to make it that * length. * * @see Crypt_Base::decrypt() * @access public * @param string $plaintext * @return string $ciphertext * @internal Could, but not must, extend by the child Crypt_* class */ function encrypt($plaintext) { if ($this->paddable) { $plaintext = $this->_pad($plaintext); } if ($this->engine === CRYPT_ENGINE_OPENSSL) { if ($this->changed) { $this->_clearBuffers(); $this->changed = false; } switch ($this->mode) { case CRYPT_MODE_STREAM: return openssl_encrypt($plaintext, $this->cipher_name_openssl, $this->key, $this->openssl_options); case CRYPT_MODE_ECB: $result = openssl_encrypt($plaintext, $this->cipher_name_openssl, $this->key, $this->openssl_options); return !defined('OPENSSL_RAW_DATA') ? substr($result, 0, -$this->block_size) : $result; case CRYPT_MODE_CBC: $result = openssl_encrypt($plaintext, $this->cipher_name_openssl, $this->key, $this->openssl_options, $this->encryptIV); if ($this->continuousBuffer) { $this->encryptIV = substr($result, -$this->block_size); } return !defined('OPENSSL_RAW_DATA') ? substr($result, 0, -$this->block_size) : $result; case CRYPT_MODE_CTR: return $this->_openssl_ctr_process($plaintext, $this->encryptIV, $this->enbuffer); case CRYPT_MODE_CFB: // cfb loosely routines inspired by openssl's: // {@link http://cvs.openssl.org/fileview?f=openssl/crypto/modes/cfb128.c&v=1.3.2.2.2.1} $ciphertext = ''; if ($this->continuousBuffer) { $iv = &$this->encryptIV; $pos = &$this->enbuffer['pos']; } else { $iv = $this->encryptIV; $pos = 0; } $len = strlen($plaintext); $i = 0; if ($pos) { $orig_pos = $pos; $max = $this->block_size - $pos; if ($len >= $max) { $i = $max; $len-= $max; $pos = 0; } else { $i = $len; $pos+= $len; $len = 0; } // ie. $i = min($max, $len), $len-= $i, $pos+= $i, $pos%= $blocksize $ciphertext = substr($iv, $orig_pos) ^ $plaintext; $iv = substr_replace($iv, $ciphertext, $orig_pos, $i); $plaintext = substr($plaintext, $i); } $overflow = $len % $this->block_size; if ($overflow) { $ciphertext.= openssl_encrypt(substr($plaintext, 0, -$overflow) . str_repeat("\0", $this->block_size), $this->cipher_name_openssl, $this->key, $this->openssl_options, $iv); $iv = $this->_string_pop($ciphertext, $this->block_size); $size = $len - $overflow; $block = $iv ^ substr($plaintext, -$overflow); $iv = substr_replace($iv, $block, 0, $overflow); $ciphertext.= $block; $pos = $overflow; } elseif ($len) { $ciphertext = openssl_encrypt($plaintext, $this->cipher_name_openssl, $this->key, $this->openssl_options, $iv); $iv = substr($ciphertext, -$this->block_size); } return $ciphertext; case CRYPT_MODE_OFB: return $this->_openssl_ofb_process($plaintext, $this->encryptIV, $this->enbuffer); } } if ($this->changed) { $this->_setup(); $this->changed = false; } if ($this->use_inline_crypt) { $inline = $this->inline_crypt; return $inline('encrypt', $this, $plaintext); } $buffer = &$this->enbuffer; $block_size = $this->block_size; $ciphertext = ''; switch ($this->mode) { case CRYPT_MODE_ECB: for ($i = 0; $i < strlen($plaintext); $i+=$block_size) { $ciphertext.= $this->_encryptBlock(substr($plaintext, $i, $block_size)); } break; case CRYPT_MODE_CBC: $xor = $this->encryptIV; for ($i = 0; $i < strlen($plaintext); $i+=$block_size) { $block = substr($plaintext, $i, $block_size); $block = $this->_encryptBlock($block ^ $xor); $xor = $block; $ciphertext.= $block; } if ($this->continuousBuffer) { $this->encryptIV = $xor; } break; case CRYPT_MODE_CTR: $xor = $this->encryptIV; if (strlen($buffer['ciphertext'])) { for ($i = 0; $i < strlen($plaintext); $i+=$block_size) { $block = substr($plaintext, $i, $block_size); if (strlen($block) > strlen($buffer['ciphertext'])) { $buffer['ciphertext'].= $this->_encryptBlock($xor); } $this->_increment_str($xor); $key = $this->_string_shift($buffer['ciphertext'], $block_size); $ciphertext.= $block ^ $key; } } else { for ($i = 0; $i < strlen($plaintext); $i+=$block_size) { $block = substr($plaintext, $i, $block_size); $key = $this->_encryptBlock($xor); $this->_increment_str($xor); $ciphertext.= $block ^ $key; } } if ($this->continuousBuffer) { $this->encryptIV = $xor; if ($start = strlen($plaintext) % $block_size) { $buffer['ciphertext'] = substr($key, $start) . $buffer['ciphertext']; } } break; case CRYPT_MODE_CFB: // cfb loosely routines inspired by openssl's: // {@link http://cvs.openssl.org/fileview?f=openssl/crypto/modes/cfb128.c&v=1.3.2.2.2.1} if ($this->continuousBuffer) { $iv = &$this->encryptIV; $pos = &$buffer['pos']; } else { $iv = $this->encryptIV; $pos = 0; } $len = strlen($plaintext); $i = 0; if ($pos) { $orig_pos = $pos; $max = $block_size - $pos; if ($len >= $max) { $i = $max; $len-= $max; $pos = 0; } else { $i = $len; $pos+= $len; $len = 0; } // ie. $i = min($max, $len), $len-= $i, $pos+= $i, $pos%= $blocksize $ciphertext = substr($iv, $orig_pos) ^ $plaintext; $iv = substr_replace($iv, $ciphertext, $orig_pos, $i); } while ($len >= $block_size) { $iv = $this->_encryptBlock($iv) ^ substr($plaintext, $i, $block_size); $ciphertext.= $iv; $len-= $block_size; $i+= $block_size; } if ($len) { $iv = $this->_encryptBlock($iv); $block = $iv ^ substr($plaintext, $i); $iv = substr_replace($iv, $block, 0, $len); $ciphertext.= $block; $pos = $len; } break; case CRYPT_MODE_OFB: $xor = $this->encryptIV; if (strlen($buffer['xor'])) { for ($i = 0; $i < strlen($plaintext); $i+=$block_size) { $block = substr($plaintext, $i, $block_size); if (strlen($block) > strlen($buffer['xor'])) { $xor = $this->_encryptBlock($xor); $buffer['xor'].= $xor; } $key = $this->_string_shift($buffer['xor'], $block_size); $ciphertext.= $block ^ $key; } } else { for ($i = 0; $i < strlen($plaintext); $i+=$block_size) { $xor = $this->_encryptBlock($xor); $ciphertext.= substr($plaintext, $i, $block_size) ^ $xor; } $key = $xor; } if ($this->continuousBuffer) { $this->encryptIV = $xor; if ($start = strlen($plaintext) % $block_size) { $buffer['xor'] = substr($key, $start) . $buffer['xor']; } } break; case CRYPT_MODE_STREAM: $ciphertext = $this->_encryptBlock($plaintext); break; } return $ciphertext; } /** * Decrypts a message. * * If strlen($ciphertext) is not a multiple of the block size, null bytes will be added to the end of the string until * it is. * * @see Crypt_Base::encrypt() * @access public * @param string $ciphertext * @return string $plaintext * @internal Could, but not must, extend by the child Crypt_* class */ function decrypt($ciphertext) { if ($this->paddable) { // we pad with chr(0) since that's what mcrypt_generic does. to quote from {@link http://www.php.net/function.mcrypt-generic}: // "The data is padded with "\0" to make sure the length of the data is n * blocksize." $ciphertext = str_pad($ciphertext, strlen($ciphertext) + ($this->block_size - strlen($ciphertext) % $this->block_size) % $this->block_size, chr(0)); } if ($this->engine === CRYPT_ENGINE_OPENSSL) { if ($this->changed) { $this->_clearBuffers(); $this->changed = false; } switch ($this->mode) { case CRYPT_MODE_STREAM: $plaintext = openssl_decrypt($ciphertext, $this->cipher_name_openssl, $this->key, $this->openssl_options); break; case CRYPT_MODE_ECB: if (!defined('OPENSSL_RAW_DATA')) { $ciphertext.= openssl_encrypt('', $this->cipher_name_openssl_ecb, $this->key, true); } $plaintext = openssl_decrypt($ciphertext, $this->cipher_name_openssl, $this->key, $this->openssl_options); break; case CRYPT_MODE_CBC: if (!defined('OPENSSL_RAW_DATA')) { $padding = str_repeat(chr($this->block_size), $this->block_size) ^ substr($ciphertext, -$this->block_size); $ciphertext.= substr(@openssl_encrypt($padding, $this->cipher_name_openssl_ecb, $this->key, true), 0, $this->block_size); } $plaintext = openssl_decrypt($ciphertext, $this->cipher_name_openssl, $this->key, $this->openssl_options, $this->decryptIV); if ($this->continuousBuffer) { $this->decryptIV = substr($ciphertext, -$this->block_size); } break; case CRYPT_MODE_CTR: $plaintext = $this->_openssl_ctr_process($ciphertext, $this->decryptIV, $this->debuffer); break; case CRYPT_MODE_CFB: // cfb loosely routines inspired by openssl's: // {@link http://cvs.openssl.org/fileview?f=openssl/crypto/modes/cfb128.c&v=1.3.2.2.2.1} $plaintext = ''; if ($this->continuousBuffer) { $iv = &$this->decryptIV; $pos = &$this->buffer['pos']; } else { $iv = $this->decryptIV; $pos = 0; } $len = strlen($ciphertext); $i = 0; if ($pos) { $orig_pos = $pos; $max = $this->block_size - $pos; if ($len >= $max) { $i = $max; $len-= $max; $pos = 0; } else { $i = $len; $pos+= $len; $len = 0; } // ie. $i = min($max, $len), $len-= $i, $pos+= $i, $pos%= $this->blocksize $plaintext = substr($iv, $orig_pos) ^ $ciphertext; $iv = substr_replace($iv, substr($ciphertext, 0, $i), $orig_pos, $i); $ciphertext = substr($ciphertext, $i); } $overflow = $len % $this->block_size; if ($overflow) { $plaintext.= openssl_decrypt(substr($ciphertext, 0, -$overflow), $this->cipher_name_openssl, $this->key, $this->openssl_options, $iv); if ($len - $overflow) { $iv = substr($ciphertext, -$overflow - $this->block_size, -$overflow); } $iv = openssl_encrypt(str_repeat("\0", $this->block_size), $this->cipher_name_openssl, $this->key, $this->openssl_options, $iv); $plaintext.= $iv ^ substr($ciphertext, -$overflow); $iv = substr_replace($iv, substr($ciphertext, -$overflow), 0, $overflow); $pos = $overflow; } elseif ($len) { $plaintext.= openssl_decrypt($ciphertext, $this->cipher_name_openssl, $this->key, $this->openssl_options, $iv); $iv = substr($ciphertext, -$this->block_size); } break; case CRYPT_MODE_OFB: $plaintext = $this->_openssl_ofb_process($ciphertext, $this->decryptIV, $this->debuffer); } return $this->paddable ? $this->_unpad($plaintext) : $plaintext; } if ($this->changed) { $this->_setup(); $this->changed = false; } if ($this->use_inline_crypt) { $inline = $this->inline_crypt; return $inline('decrypt', $this, $ciphertext); } $block_size = $this->block_size; $buffer = &$this->debuffer; $plaintext = ''; switch ($this->mode) { case CRYPT_MODE_ECB: for ($i = 0; $i < strlen($ciphertext); $i+=$block_size) { $plaintext.= $this->_decryptBlock(substr($ciphertext, $i, $block_size)); } break; case CRYPT_MODE_CBC: $xor = $this->decryptIV; for ($i = 0; $i < strlen($ciphertext); $i+=$block_size) { $block = substr($ciphertext, $i, $block_size); $plaintext.= $this->_decryptBlock($block) ^ $xor; $xor = $block; } if ($this->continuousBuffer) { $this->decryptIV = $xor; } break; case CRYPT_MODE_CTR: $xor = $this->decryptIV; if (strlen($buffer['ciphertext'])) { for ($i = 0; $i < strlen($ciphertext); $i+=$block_size) { $block = substr($ciphertext, $i, $block_size); if (strlen($block) > strlen($buffer['ciphertext'])) { $buffer['ciphertext'].= $this->_encryptBlock($xor); $this->_increment_str($xor); } $key = $this->_string_shift($buffer['ciphertext'], $block_size); $plaintext.= $block ^ $key; } } else { for ($i = 0; $i < strlen($ciphertext); $i+=$block_size) { $block = substr($ciphertext, $i, $block_size); $key = $this->_encryptBlock($xor); $this->_increment_str($xor); $plaintext.= $block ^ $key; } } if ($this->continuousBuffer) { $this->decryptIV = $xor; if ($start = strlen($ciphertext) % $block_size) { $buffer['ciphertext'] = substr($key, $start) . $buffer['ciphertext']; } } break; case CRYPT_MODE_CFB: if ($this->continuousBuffer) { $iv = &$this->decryptIV; $pos = &$buffer['pos']; } else { $iv = $this->decryptIV; $pos = 0; } $len = strlen($ciphertext); $i = 0; if ($pos) { $orig_pos = $pos; $max = $block_size - $pos; if ($len >= $max) { $i = $max; $len-= $max; $pos = 0; } else { $i = $len; $pos+= $len; $len = 0; } // ie. $i = min($max, $len), $len-= $i, $pos+= $i, $pos%= $blocksize $plaintext = substr($iv, $orig_pos) ^ $ciphertext; $iv = substr_replace($iv, substr($ciphertext, 0, $i), $orig_pos, $i); } while ($len >= $block_size) { $iv = $this->_encryptBlock($iv); $cb = substr($ciphertext, $i, $block_size); $plaintext.= $iv ^ $cb; $iv = $cb; $len-= $block_size; $i+= $block_size; } if ($len) { $iv = $this->_encryptBlock($iv); $plaintext.= $iv ^ substr($ciphertext, $i); $iv = substr_replace($iv, substr($ciphertext, $i), 0, $len); $pos = $len; } break; case CRYPT_MODE_OFB: $xor = $this->decryptIV; if (strlen($buffer['xor'])) { for ($i = 0; $i < strlen($ciphertext); $i+=$block_size) { $block = substr($ciphertext, $i, $block_size); if (strlen($block) > strlen($buffer['xor'])) { $xor = $this->_encryptBlock($xor); $buffer['xor'].= $xor; } $key = $this->_string_shift($buffer['xor'], $block_size); $plaintext.= $block ^ $key; } } else { for ($i = 0; $i < strlen($ciphertext); $i+=$block_size) { $xor = $this->_encryptBlock($xor); $plaintext.= substr($ciphertext, $i, $block_size) ^ $xor; } $key = $xor; } if ($this->continuousBuffer) { $this->decryptIV = $xor; if ($start = strlen($ciphertext) % $block_size) { $buffer['xor'] = substr($key, $start) . $buffer['xor']; } } break; case CRYPT_MODE_STREAM: $plaintext = $this->_decryptBlock($ciphertext); break; } return $this->paddable ? $this->_unpad($plaintext) : $plaintext; } /** * OpenSSL CTR Processor * * PHP's OpenSSL bindings do not operate in continuous mode so we'll wrap around it. Since the keystream * for CTR is the same for both encrypting and decrypting this function is re-used by both Crypt_Base::encrypt() * and Crypt_Base::decrypt(). Also, OpenSSL doesn't implement CTR for all of it's symmetric ciphers so this * function will emulate CTR with ECB when necesary. * * @see Crypt_Base::encrypt() * @see Crypt_Base::decrypt() * @param string $plaintext * @param string $encryptIV * @param array $buffer * @return string * @access private */ function _openssl_ctr_process($plaintext, &$encryptIV, &$buffer) { $ciphertext = ''; $block_size = $this->block_size; $key = $this->key; if ($this->openssl_emulate_ctr) { $xor = $encryptIV; if (strlen($buffer['ciphertext'])) { for ($i = 0; $i < strlen($plaintext); $i+=$block_size) { $block = substr($plaintext, $i, $block_size); if (strlen($block) > strlen($buffer['ciphertext'])) { $result = @openssl_encrypt($xor, $this->cipher_name_openssl_ecb, $key, $this->openssl_options); $result = !defined('OPENSSL_RAW_DATA') ? substr($result, 0, -$this->block_size) : $result; $buffer['ciphertext'].= $result; } $this->_increment_str($xor); $otp = $this->_string_shift($buffer['ciphertext'], $block_size); $ciphertext.= $block ^ $otp; } } else { for ($i = 0; $i < strlen($plaintext); $i+=$block_size) { $block = substr($plaintext, $i, $block_size); $otp = @openssl_encrypt($xor, $this->cipher_name_openssl_ecb, $key, $this->openssl_options); $otp = !defined('OPENSSL_RAW_DATA') ? substr($otp, 0, -$this->block_size) : $otp; $this->_increment_str($xor); $ciphertext.= $block ^ $otp; } } if ($this->continuousBuffer) { $encryptIV = $xor; if ($start = strlen($plaintext) % $block_size) { $buffer['ciphertext'] = substr($key, $start) . $buffer['ciphertext']; } } return $ciphertext; } if (strlen($buffer['ciphertext'])) { $ciphertext = $plaintext ^ $this->_string_shift($buffer['ciphertext'], strlen($plaintext)); $plaintext = substr($plaintext, strlen($ciphertext)); if (!strlen($plaintext)) { return $ciphertext; } } $overflow = strlen($plaintext) % $block_size; if ($overflow) { $plaintext2 = $this->_string_pop($plaintext, $overflow); // ie. trim $plaintext to a multiple of $block_size and put rest of $plaintext in $plaintext2 $encrypted = openssl_encrypt($plaintext . str_repeat("\0", $block_size), $this->cipher_name_openssl, $key, $this->openssl_options, $encryptIV); $temp = $this->_string_pop($encrypted, $block_size); $ciphertext.= $encrypted . ($plaintext2 ^ $temp); if ($this->continuousBuffer) { $buffer['ciphertext'] = substr($temp, $overflow); $encryptIV = $temp; } } elseif (!strlen($buffer['ciphertext'])) { $ciphertext.= openssl_encrypt($plaintext . str_repeat("\0", $block_size), $this->cipher_name_openssl, $key, $this->openssl_options, $encryptIV); $temp = $this->_string_pop($ciphertext, $block_size); if ($this->continuousBuffer) { $encryptIV = $temp; } } if ($this->continuousBuffer) { if (!defined('OPENSSL_RAW_DATA')) { $encryptIV.= @openssl_encrypt('', $this->cipher_name_openssl_ecb, $key, $this->openssl_options); } $encryptIV = @openssl_decrypt($encryptIV, $this->cipher_name_openssl_ecb, $key, $this->openssl_options); if ($overflow) { $this->_increment_str($encryptIV); } } return $ciphertext; } /** * OpenSSL OFB Processor * * PHP's OpenSSL bindings do not operate in continuous mode so we'll wrap around it. Since the keystream * for OFB is the same for both encrypting and decrypting this function is re-used by both Crypt_Base::encrypt() * and Crypt_Base::decrypt(). * * @see Crypt_Base::encrypt() * @see Crypt_Base::decrypt() * @param string $plaintext * @param string $encryptIV * @param array $buffer * @return string * @access private */ function _openssl_ofb_process($plaintext, &$encryptIV, &$buffer) { if (strlen($buffer['xor'])) { $ciphertext = $plaintext ^ $buffer['xor']; $buffer['xor'] = substr($buffer['xor'], strlen($ciphertext)); $plaintext = substr($plaintext, strlen($ciphertext)); } else { $ciphertext = ''; } $block_size = $this->block_size; $len = strlen($plaintext); $key = $this->key; $overflow = $len % $block_size; if (strlen($plaintext)) { if ($overflow) { $ciphertext.= openssl_encrypt(substr($plaintext, 0, -$overflow) . str_repeat("\0", $block_size), $this->cipher_name_openssl, $key, $this->openssl_options, $encryptIV); $xor = $this->_string_pop($ciphertext, $block_size); if ($this->continuousBuffer) { $encryptIV = $xor; } $ciphertext.= $this->_string_shift($xor, $overflow) ^ substr($plaintext, -$overflow); if ($this->continuousBuffer) { $buffer['xor'] = $xor; } } else { $ciphertext = openssl_encrypt($plaintext, $this->cipher_name_openssl, $key, $this->openssl_options, $encryptIV); if ($this->continuousBuffer) { $encryptIV = substr($ciphertext, -$block_size) ^ substr($plaintext, -$block_size); } } } return $ciphertext; } /** * phpseclib <-> OpenSSL Mode Mapper * * May need to be overwritten by classes extending this one in some cases * * @return int * @access private */ function _openssl_translate_mode() { switch ($this->mode) { case CRYPT_MODE_ECB: return 'ecb'; case CRYPT_MODE_CBC: return 'cbc'; case CRYPT_MODE_CTR: return 'ctr'; case CRYPT_MODE_CFB: return 'cfb'; case CRYPT_MODE_OFB: return 'ofb'; } } /** * Pad "packets". * * Block ciphers working by encrypting between their specified [$this->]block_size at a time * If you ever need to encrypt or decrypt something that isn't of the proper length, it becomes necessary to * pad the input so that it is of the proper length. * * Padding is enabled by default. Sometimes, however, it is undesirable to pad strings. Such is the case in SSH, * where "packets" are padded with random bytes before being encrypted. Unpad these packets and you risk stripping * away characters that shouldn't be stripped away. (SSH knows how many bytes are added because the length is * transmitted separately) * * @see Crypt_Base::disablePadding() * @access public */ function enablePadding() { $this->padding = true; } /** * Do not pad packets. * * @see Crypt_Base::enablePadding() * @access public */ function disablePadding() { $this->padding = false; } /** * Treat consecutive "packets" as if they are a continuous buffer. * * Say you have a 32-byte plaintext $plaintext. Using the default behavior, the two following code snippets * will yield different outputs: * * <code> * echo $rijndael->encrypt(substr($plaintext, 0, 16)); * echo $rijndael->encrypt(substr($plaintext, 16, 16)); * </code> * <code> * echo $rijndael->encrypt($plaintext); * </code> * * The solution is to enable the continuous buffer. Although this will resolve the above discrepancy, it creates * another, as demonstrated with the following: * * <code> * $rijndael->encrypt(substr($plaintext, 0, 16)); * echo $rijndael->decrypt($rijndael->encrypt(substr($plaintext, 16, 16))); * </code> * <code> * echo $rijndael->decrypt($rijndael->encrypt(substr($plaintext, 16, 16))); * </code> * * With the continuous buffer disabled, these would yield the same output. With it enabled, they yield different * outputs. The reason is due to the fact that the initialization vector's change after every encryption / * decryption round when the continuous buffer is enabled. When it's disabled, they remain constant. * * Put another way, when the continuous buffer is enabled, the state of the Crypt_*() object changes after each * encryption / decryption round, whereas otherwise, it'd remain constant. For this reason, it's recommended that * continuous buffers not be used. They do offer better security and are, in fact, sometimes required (SSH uses them), * however, they are also less intuitive and more likely to cause you problems. * * @see Crypt_Base::disableContinuousBuffer() * @access public * @internal Could, but not must, extend by the child Crypt_* class */ function enableContinuousBuffer() { if ($this->mode == CRYPT_MODE_ECB) { return; } $this->continuousBuffer = true; $this->_setEngine(); } /** * Treat consecutive packets as if they are a discontinuous buffer. * * The default behavior. * * @see Crypt_Base::enableContinuousBuffer() * @access public * @internal Could, but not must, extend by the child Crypt_* class */ function disableContinuousBuffer() { if ($this->mode == CRYPT_MODE_ECB) { return; } if (!$this->continuousBuffer) { return; } $this->continuousBuffer = false; $this->changed = true; $this->_setEngine(); } /** * Test for engine validity * * @see Crypt_Base::Crypt_Base() * @param int $engine * @access public * @return bool */ function isValidEngine($engine) { switch ($engine) { case CRYPT_ENGINE_OPENSSL: if ($this->mode == CRYPT_MODE_STREAM && $this->continuousBuffer) { return false; } $this->openssl_emulate_ctr = false; $result = $this->cipher_name_openssl && extension_loaded('openssl') && // PHP 5.3.0 - 5.3.2 did not let you set IV's version_compare(PHP_VERSION, '5.3.3', '>='); if (!$result) { return false; } // prior to PHP 5.4.0 OPENSSL_RAW_DATA and OPENSSL_ZERO_PADDING were not defined. instead of expecting an integer // $options openssl_encrypt expected a boolean $raw_data. if (!defined('OPENSSL_RAW_DATA')) { $this->openssl_options = true; } else { $this->openssl_options = OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING; } $methods = openssl_get_cipher_methods(); if (in_array($this->cipher_name_openssl, $methods)) { return true; } // not all of openssl's symmetric cipher's support ctr. for those // that don't we'll emulate it switch ($this->mode) { case CRYPT_MODE_CTR: if (in_array($this->cipher_name_openssl_ecb, $methods)) { $this->openssl_emulate_ctr = true; return true; } } return false; case CRYPT_ENGINE_INTERNAL: return true; } return false; } /** * Sets the preferred crypt engine * * Currently, $engine could be: * * - CRYPT_ENGINE_OPENSSL [very fast] * * - CRYPT_ENGINE_MCRYPT [fast] * * - CRYPT_ENGINE_INTERNAL [slow] * * If the preferred crypt engine is not available the fastest available one will be used * * @see Crypt_Base::Crypt_Base() * @param int $engine * @access public */ function setPreferredEngine($engine) { switch ($engine) { //case CRYPT_ENGINE_OPENSSL: case CRYPT_ENGINE_MCRYPT: case CRYPT_ENGINE_INTERNAL: $this->preferredEngine = $engine; break; default: $this->preferredEngine = CRYPT_ENGINE_OPENSSL; } $this->_setEngine(); } /** * Returns the engine currently being utilized * * @see Crypt_Base::_setEngine() * @access public */ function getEngine() { return $this->engine; } /** * Sets the engine as appropriate * * @see Crypt_Base::Crypt_Base() * @access private */ function _setEngine() { $this->engine = null; $candidateEngines = array( $this->preferredEngine, CRYPT_ENGINE_OPENSSL, CRYPT_ENGINE_MCRYPT ); foreach ($candidateEngines as $engine) { if ($this->isValidEngine($engine)) { $this->engine = $engine; break; } } if (!$this->engine) { $this->engine = CRYPT_ENGINE_INTERNAL; } $this->changed = true; } /** * Encrypts a block * * @access private * @param string $in * @return string * @internal Must be extended by the child Crypt_* class */ function _encryptBlock($in) { user_error((version_compare(PHP_VERSION, '5.0.0', '>=') ? __METHOD__ : __FUNCTION__) . '() must extend by class ' . get_class($this), E_USER_ERROR);//phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } /** * Decrypts a block * * @access private * @param string $in * @return string * @internal Must be extended by the child Crypt_* class */ function _decryptBlock($in) { user_error((version_compare(PHP_VERSION, '5.0.0', '>=') ? __METHOD__ : __FUNCTION__) . '() must extend by class ' . get_class($this), E_USER_ERROR);//phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } /** * Setup the key (expansion) * * Only used if $engine == CRYPT_ENGINE_INTERNAL * * @see Crypt_Base::_setup() * @access private * @internal Must be extended by the child Crypt_* class */ function _setupKey() { user_error((version_compare(PHP_VERSION, '5.0.0', '>=') ? __METHOD__ : __FUNCTION__) . '() must extend by class ' . get_class($this), E_USER_ERROR);//phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } /** * Setup the CRYPT_ENGINE_INTERNAL $engine * * (re)init, if necessary, the internal cipher $engine and flush all $buffers * Used (only) if $engine == CRYPT_ENGINE_INTERNAL * * _setup() will be called each time if $changed === true * typically this happens when using one or more of following public methods: * * - setKey() * * - setIV() * * - disableContinuousBuffer() * * - First run of encrypt() / decrypt() with no init-settings * * @see setKey() * @see setIV() * @see disableContinuousBuffer() * @access private * @internal _setup() is always called before en/decryption. * @internal Could, but not must, extend by the child Crypt_* class */ function _setup() { $this->_clearBuffers(); $this->_setupKey(); if ($this->use_inline_crypt) { $this->_setupInlineCrypt(); } } /** * Pads a string * * Pads a string using the RSA PKCS padding standards so that its length is a multiple of the blocksize. * $this->block_size - (strlen($text) % $this->block_size) bytes are added, each of which is equal to * chr($this->block_size - (strlen($text) % $this->block_size) * * If padding is disabled and $text is not a multiple of the blocksize, the string will be padded regardless * and padding will, hence forth, be enabled. * * @see Crypt_Base::_unpad() * @param string $text * @access private * @return string */ function _pad($text) { $length = strlen($text); if (!$this->padding) { if ($length % $this->block_size == 0) { return $text; } else { user_error("The plaintext's length ($length) is not a multiple of the block size ({$this->block_size})");//phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped $this->padding = true; } } $pad = $this->block_size - ($length % $this->block_size); return str_pad($text, $length + $pad, chr($pad)); } /** * Unpads a string. * * If padding is enabled and the reported padding length is invalid the encryption key will be assumed to be wrong * and false will be returned. * * @see Crypt_Base::_pad() * @param string $text * @access private * @return string */ function _unpad($text) { if (!$this->padding) { return $text; } $length = ord($text[strlen($text) - 1]); if (!$length || $length > $this->block_size) { return false; } return substr($text, 0, -$length); } /** * Clears internal buffers * * Clearing/resetting the internal buffers is done everytime * after disableContinuousBuffer() or on cipher $engine (re)init * ie after setKey() or setIV() * * @access public * @internal Could, but not must, extend by the child Crypt_* class */ function _clearBuffers() { $this->enbuffer = $this->debuffer = array('ciphertext' => '', 'xor' => '', 'pos' => 0, 'enmcrypt_init' => true); // mcrypt's handling of invalid's $iv: // $this->encryptIV = $this->decryptIV = strlen($this->iv) == $this->block_size ? $this->iv : str_repeat("\0", $this->block_size); $this->encryptIV = $this->decryptIV = str_pad(substr($this->iv, 0, $this->block_size), $this->block_size, "\0"); if (!$this->skip_key_adjustment) { $this->key = str_pad(substr($this->key, 0, $this->key_length), $this->key_length, "\0"); } } /** * String Shift * * Inspired by array_shift * * @param string $string * @param int $index * @access private * @return string */ function _string_shift(&$string, $index = 1) { $substr = substr($string, 0, $index); $string = substr($string, $index); return $substr; } /** * String Pop * * Inspired by array_pop * * @param string $string * @param int $index * @access private * @return string */ function _string_pop(&$string, $index = 1) { $substr = substr($string, -$index); $string = substr($string, 0, -$index); return $substr; } /** * Increment the current string * * @see Crypt_Base::decrypt() * @see Crypt_Base::encrypt() * @param string $var * @access private */ function _increment_str(&$var) { for ($i = 4; $i <= strlen($var); $i+= 4) { $temp = substr($var, -$i, 4); switch ($temp) { case "\xFF\xFF\xFF\xFF": $var = substr_replace($var, "\x00\x00\x00\x00", -$i, 4); break; case "\x7F\xFF\xFF\xFF": $var = substr_replace($var, "\x80\x00\x00\x00", -$i, 4); return; default: $temp = unpack('Nnum', $temp); $var = substr_replace($var, pack('N', $temp['num'] + 1), -$i, 4); return; } } $remainder = strlen($var) % 4; if ($remainder == 0) { return; } $temp = unpack('Nnum', str_pad(substr($var, 0, $remainder), 4, "\0", STR_PAD_LEFT)); $temp = substr(pack('N', $temp['num'] + 1), -$remainder); $var = substr_replace($var, $temp, 0, $remainder); } /** * Setup the performance-optimized function for de/encrypt() * * Stores the created (or existing) callback function-name * in $this->inline_crypt * * Internally for phpseclib developers: * * _setupInlineCrypt() would be called only if: * * - $engine == CRYPT_ENGINE_INTERNAL and * * - $use_inline_crypt === true * * - each time on _setup(), after(!) _setupKey() * * * This ensures that _setupInlineCrypt() has always a * full ready2go initializated internal cipher $engine state * where, for example, the keys allready expanded, * keys/block_size calculated and such. * * It is, each time if called, the responsibility of _setupInlineCrypt(): * * - to set $this->inline_crypt to a valid and fully working callback function * as a (faster) replacement for encrypt() / decrypt() * * - NOT to create unlimited callback functions (for memory reasons!) * no matter how often _setupInlineCrypt() would be called. At some * point of amount they must be generic re-useable. * * - the code of _setupInlineCrypt() it self, * and the generated callback code, * must be, in following order: * - 100% safe * - 100% compatible to encrypt()/decrypt() * - using only php5+ features/lang-constructs/php-extensions if * compatibility (down to php4) or fallback is provided * - readable/maintainable/understandable/commented and... not-cryptic-styled-code :-) * - >= 10% faster than encrypt()/decrypt() [which is, by the way, * the reason for the existence of _setupInlineCrypt() :-)] * - memory-nice * - short (as good as possible) * * Note: - _setupInlineCrypt() is using _createInlineCryptFunction() to create the full callback function code. * - In case of using inline crypting, _setupInlineCrypt() must extend by the child Crypt_* class. * - The following variable names are reserved: * - $_* (all variable names prefixed with an underscore) * - $self (object reference to it self. Do not use $this, but $self instead) * - $in (the content of $in has to en/decrypt by the generated code) * - The callback function should not use the 'return' statement, but en/decrypt'ing the content of $in only * * * @see Crypt_Base::_setup() * @see Crypt_Base::_createInlineCryptFunction() * @see Crypt_Base::encrypt() * @see Crypt_Base::decrypt() * @access private * @internal If a Crypt_* class providing inline crypting it must extend _setupInlineCrypt() */ function _setupInlineCrypt() { // If, for any reason, an extending Crypt_Base() Crypt_* class // not using inline crypting then it must be ensured that: $this->use_inline_crypt = false // ie in the class var declaration of $use_inline_crypt in general for the Crypt_* class, // in the constructor at object instance-time // or, if it's runtime-specific, at runtime $this->use_inline_crypt = false; } /** * Creates the performance-optimized function for en/decrypt() * * Internally for phpseclib developers: * * _createInlineCryptFunction(): * * - merge the $cipher_code [setup'ed by _setupInlineCrypt()] * with the current [$this->]mode of operation code * * - create the $inline function, which called by encrypt() / decrypt() * as its replacement to speed up the en/decryption operations. * * - return the name of the created $inline callback function * * - used to speed up en/decryption * * * * The main reason why can speed up things [up to 50%] this way are: * * - using variables more effective then regular. * (ie no use of expensive arrays but integers $k_0, $k_1 ... * or even, for example, the pure $key[] values hardcoded) * * - avoiding 1000's of function calls of ie _encryptBlock() * but inlining the crypt operations. * in the mode of operation for() loop. * * - full loop unroll the (sometimes key-dependent) rounds * avoiding this way ++$i counters and runtime-if's etc... * * The basic code architectur of the generated $inline en/decrypt() * lambda function, in pseudo php, is: * * <code> * +----------------------------------------------------------------------------------------------+ * | callback $inline = create_function: | * | lambda_function_0001_crypt_ECB($action, $text) | * | { | * | INSERT PHP CODE OF: | * | $cipher_code['init_crypt']; // general init code. | * | // ie: $sbox'es declarations used for | * | // encrypt and decrypt'ing. | * | | * | switch ($action) { | * | case 'encrypt': | * | INSERT PHP CODE OF: | * | $cipher_code['init_encrypt']; // encrypt sepcific init code. | * | ie: specified $key or $box | * | declarations for encrypt'ing. | * | | * | foreach ($ciphertext) { | * | $in = $block_size of $ciphertext; | * | | * | INSERT PHP CODE OF: | * | $cipher_code['encrypt_block']; // encrypt's (string) $in, which is always: | * | // strlen($in) == $this->block_size | * | // here comes the cipher algorithm in action | * | // for encryption. | * | // $cipher_code['encrypt_block'] has to | * | // encrypt the content of the $in variable | * | | * | $plaintext .= $in; | * | } | * | return $plaintext; | * | | * | case 'decrypt': | * | INSERT PHP CODE OF: | * | $cipher_code['init_decrypt']; // decrypt sepcific init code | * | ie: specified $key or $box | * | declarations for decrypt'ing. | * | foreach ($plaintext) { | * | $in = $block_size of $plaintext; | * | | * | INSERT PHP CODE OF: | * | $cipher_code['decrypt_block']; // decrypt's (string) $in, which is always | * | // strlen($in) == $this->block_size | * | // here comes the cipher algorithm in action | * | // for decryption. | * | // $cipher_code['decrypt_block'] has to | * | // decrypt the content of the $in variable | * | $ciphertext .= $in; | * | } | * | return $ciphertext; | * | } | * | } | * +----------------------------------------------------------------------------------------------+ * </code> * * See also the Crypt_*::_setupInlineCrypt()'s for * productive inline $cipher_code's how they works. * * Structure of: * <code> * $cipher_code = array( * 'init_crypt' => (string) '', // optional * 'init_encrypt' => (string) '', // optional * 'init_decrypt' => (string) '', // optional * 'encrypt_block' => (string) '', // required * 'decrypt_block' => (string) '' // required * ); * </code> * * @see Crypt_Base::_setupInlineCrypt() * @see Crypt_Base::encrypt() * @see Crypt_Base::decrypt() * @param array $cipher_code * @access private * @return string (the name of the created callback function) */ function _createInlineCryptFunction($cipher_code) { $block_size = $this->block_size; // optional $init_crypt = isset($cipher_code['init_crypt']) ? $cipher_code['init_crypt'] : ''; $init_encrypt = isset($cipher_code['init_encrypt']) ? $cipher_code['init_encrypt'] : ''; $init_decrypt = isset($cipher_code['init_decrypt']) ? $cipher_code['init_decrypt'] : ''; // required $encrypt_block = $cipher_code['encrypt_block']; $decrypt_block = $cipher_code['decrypt_block']; // Generating mode of operation inline code, // merged with the $cipher_code algorithm // for encrypt- and decryption. switch ($this->mode) { case CRYPT_MODE_ECB: $encrypt = $init_encrypt . ' $_ciphertext = ""; $_plaintext_len = strlen($_text); for ($_i = 0; $_i < $_plaintext_len; $_i+= '.$block_size.') { $in = substr($_text, $_i, '.$block_size.'); '.$encrypt_block.' $_ciphertext.= $in; } return $_ciphertext; '; $decrypt = $init_decrypt . ' $_plaintext = ""; $_text = str_pad($_text, strlen($_text) + ('.$block_size.' - strlen($_text) % '.$block_size.') % '.$block_size.', chr(0)); $_ciphertext_len = strlen($_text); for ($_i = 0; $_i < $_ciphertext_len; $_i+= '.$block_size.') { $in = substr($_text, $_i, '.$block_size.'); '.$decrypt_block.' $_plaintext.= $in; } return $self->_unpad($_plaintext); '; break; case CRYPT_MODE_CTR: $encrypt = $init_encrypt . ' $_ciphertext = ""; $_plaintext_len = strlen($_text); $_xor = $self->encryptIV; $_buffer = &$self->enbuffer; if (strlen($_buffer["ciphertext"])) { for ($_i = 0; $_i < $_plaintext_len; $_i+= '.$block_size.') { $_block = substr($_text, $_i, '.$block_size.'); if (strlen($_block) > strlen($_buffer["ciphertext"])) { $in = $_xor; '.$encrypt_block.' $self->_increment_str($_xor); $_buffer["ciphertext"].= $in; } $_key = $self->_string_shift($_buffer["ciphertext"], '.$block_size.'); $_ciphertext.= $_block ^ $_key; } } else { for ($_i = 0; $_i < $_plaintext_len; $_i+= '.$block_size.') { $_block = substr($_text, $_i, '.$block_size.'); $in = $_xor; '.$encrypt_block.' $self->_increment_str($_xor); $_key = $in; $_ciphertext.= $_block ^ $_key; } } if ($self->continuousBuffer) { $self->encryptIV = $_xor; if ($_start = $_plaintext_len % '.$block_size.') { $_buffer["ciphertext"] = substr($_key, $_start) . $_buffer["ciphertext"]; } } return $_ciphertext; '; $decrypt = $init_encrypt . ' $_plaintext = ""; $_ciphertext_len = strlen($_text); $_xor = $self->decryptIV; $_buffer = &$self->debuffer; if (strlen($_buffer["ciphertext"])) { for ($_i = 0; $_i < $_ciphertext_len; $_i+= '.$block_size.') { $_block = substr($_text, $_i, '.$block_size.'); if (strlen($_block) > strlen($_buffer["ciphertext"])) { $in = $_xor; '.$encrypt_block.' $self->_increment_str($_xor); $_buffer["ciphertext"].= $in; } $_key = $self->_string_shift($_buffer["ciphertext"], '.$block_size.'); $_plaintext.= $_block ^ $_key; } } else { for ($_i = 0; $_i < $_ciphertext_len; $_i+= '.$block_size.') { $_block = substr($_text, $_i, '.$block_size.'); $in = $_xor; '.$encrypt_block.' $self->_increment_str($_xor); $_key = $in; $_plaintext.= $_block ^ $_key; } } if ($self->continuousBuffer) { $self->decryptIV = $_xor; if ($_start = $_ciphertext_len % '.$block_size.') { $_buffer["ciphertext"] = substr($_key, $_start) . $_buffer["ciphertext"]; } } return $_plaintext; '; break; case CRYPT_MODE_CFB: $encrypt = $init_encrypt . ' $_ciphertext = ""; $_buffer = &$self->enbuffer; if ($self->continuousBuffer) { $_iv = &$self->encryptIV; $_pos = &$_buffer["pos"]; } else { $_iv = $self->encryptIV; $_pos = 0; } $_len = strlen($_text); $_i = 0; if ($_pos) { $_orig_pos = $_pos; $_max = '.$block_size.' - $_pos; if ($_len >= $_max) { $_i = $_max; $_len-= $_max; $_pos = 0; } else { $_i = $_len; $_pos+= $_len; $_len = 0; } $_ciphertext = substr($_iv, $_orig_pos) ^ $_text; $_iv = substr_replace($_iv, $_ciphertext, $_orig_pos, $_i); } while ($_len >= '.$block_size.') { $in = $_iv; '.$encrypt_block.'; $_iv = $in ^ substr($_text, $_i, '.$block_size.'); $_ciphertext.= $_iv; $_len-= '.$block_size.'; $_i+= '.$block_size.'; } if ($_len) { $in = $_iv; '.$encrypt_block.' $_iv = $in; $_block = $_iv ^ substr($_text, $_i); $_iv = substr_replace($_iv, $_block, 0, $_len); $_ciphertext.= $_block; $_pos = $_len; } return $_ciphertext; '; $decrypt = $init_encrypt . ' $_plaintext = ""; $_buffer = &$self->debuffer; if ($self->continuousBuffer) { $_iv = &$self->decryptIV; $_pos = &$_buffer["pos"]; } else { $_iv = $self->decryptIV; $_pos = 0; } $_len = strlen($_text); $_i = 0; if ($_pos) { $_orig_pos = $_pos; $_max = '.$block_size.' - $_pos; if ($_len >= $_max) { $_i = $_max; $_len-= $_max; $_pos = 0; } else { $_i = $_len; $_pos+= $_len; $_len = 0; } $_plaintext = substr($_iv, $_orig_pos) ^ $_text; $_iv = substr_replace($_iv, substr($_text, 0, $_i), $_orig_pos, $_i); } while ($_len >= '.$block_size.') { $in = $_iv; '.$encrypt_block.' $_iv = $in; $cb = substr($_text, $_i, '.$block_size.'); $_plaintext.= $_iv ^ $cb; $_iv = $cb; $_len-= '.$block_size.'; $_i+= '.$block_size.'; } if ($_len) { $in = $_iv; '.$encrypt_block.' $_iv = $in; $_plaintext.= $_iv ^ substr($_text, $_i); $_iv = substr_replace($_iv, substr($_text, $_i), 0, $_len); $_pos = $_len; } return $_plaintext; '; break; case CRYPT_MODE_OFB: $encrypt = $init_encrypt . ' $_ciphertext = ""; $_plaintext_len = strlen($_text); $_xor = $self->encryptIV; $_buffer = &$self->enbuffer; if (strlen($_buffer["xor"])) { for ($_i = 0; $_i < $_plaintext_len; $_i+= '.$block_size.') { $_block = substr($_text, $_i, '.$block_size.'); if (strlen($_block) > strlen($_buffer["xor"])) { $in = $_xor; '.$encrypt_block.' $_xor = $in; $_buffer["xor"].= $_xor; } $_key = $self->_string_shift($_buffer["xor"], '.$block_size.'); $_ciphertext.= $_block ^ $_key; } } else { for ($_i = 0; $_i < $_plaintext_len; $_i+= '.$block_size.') { $in = $_xor; '.$encrypt_block.' $_xor = $in; $_ciphertext.= substr($_text, $_i, '.$block_size.') ^ $_xor; } $_key = $_xor; } if ($self->continuousBuffer) { $self->encryptIV = $_xor; if ($_start = $_plaintext_len % '.$block_size.') { $_buffer["xor"] = substr($_key, $_start) . $_buffer["xor"]; } } return $_ciphertext; '; $decrypt = $init_encrypt . ' $_plaintext = ""; $_ciphertext_len = strlen($_text); $_xor = $self->decryptIV; $_buffer = &$self->debuffer; if (strlen($_buffer["xor"])) { for ($_i = 0; $_i < $_ciphertext_len; $_i+= '.$block_size.') { $_block = substr($_text, $_i, '.$block_size.'); if (strlen($_block) > strlen($_buffer["xor"])) { $in = $_xor; '.$encrypt_block.' $_xor = $in; $_buffer["xor"].= $_xor; } $_key = $self->_string_shift($_buffer["xor"], '.$block_size.'); $_plaintext.= $_block ^ $_key; } } else { for ($_i = 0; $_i < $_ciphertext_len; $_i+= '.$block_size.') { $in = $_xor; '.$encrypt_block.' $_xor = $in; $_plaintext.= substr($_text, $_i, '.$block_size.') ^ $_xor; } $_key = $_xor; } if ($self->continuousBuffer) { $self->decryptIV = $_xor; if ($_start = $_ciphertext_len % '.$block_size.') { $_buffer["xor"] = substr($_key, $_start) . $_buffer["xor"]; } } return $_plaintext; '; break; case CRYPT_MODE_STREAM: $encrypt = $init_encrypt . ' $_ciphertext = ""; '.$encrypt_block.' return $_ciphertext; '; $decrypt = $init_decrypt . ' $_plaintext = ""; '.$decrypt_block.' return $_plaintext; '; break; // case CRYPT_MODE_CBC: default: $encrypt = $init_encrypt . ' $_ciphertext = ""; $_plaintext_len = strlen($_text); $in = $self->encryptIV; for ($_i = 0; $_i < $_plaintext_len; $_i+= '.$block_size.') { $in = substr($_text, $_i, '.$block_size.') ^ $in; '.$encrypt_block.' $_ciphertext.= $in; } if ($self->continuousBuffer) { $self->encryptIV = $in; } return $_ciphertext; '; $decrypt = $init_decrypt . ' $_plaintext = ""; $_text = str_pad($_text, strlen($_text) + ('.$block_size.' - strlen($_text) % '.$block_size.') % '.$block_size.', chr(0)); $_ciphertext_len = strlen($_text); $_iv = $self->decryptIV; for ($_i = 0; $_i < $_ciphertext_len; $_i+= '.$block_size.') { $in = $_block = substr($_text, $_i, '.$block_size.'); '.$decrypt_block.' $_plaintext.= $in ^ $_iv; $_iv = $_block; } if ($self->continuousBuffer) { $self->decryptIV = $_iv; } return $self->_unpad($_plaintext); '; break; } $inline_code = $init_crypt . 'if ($_action == "encrypt") { ' . $encrypt . ' } else { ' . $decrypt . ' }'; // Create the $inline function and return its name as string. Ready to run! if( version_compare(PHP_VERSION, '7.2.0', '>=') ) { eval('$func = function ($_action, &$self, $_text) { ' . $inline_code . '};'); return Closure::bind($func, $this); } else { return create_function('$_action, &$self, $_text', $inline_code); } } /** * Holds the lambda_functions table (classwide) * * Each name of the lambda function, created from * _setupInlineCrypt() && _createInlineCryptFunction() * is stored, classwide (!), here for reusing. * * The string-based index of $function is a classwide * uniqe value representing, at least, the $mode of * operation (or more... depends of the optimizing level) * for which $mode the lambda function was created. * * @access private * @return array &$functions */ function &_getLambdaFunctions() { static $functions = array(); return $functions; } /** * Generates a digest from $bytes * * @see _setupInlineCrypt() * @access private * @param $bytes * @return string */ function _hashInlineCryptFunction($bytes) { if (!defined('CRYPT_BASE_WHIRLPOOL_AVAILABLE')) { define('CRYPT_BASE_WHIRLPOOL_AVAILABLE', (bool)(extension_loaded('hash') && in_array('whirlpool', hash_algos()))); } $result = ''; $hash = $bytes; switch (true) { case CRYPT_BASE_WHIRLPOOL_AVAILABLE: foreach (str_split($bytes, 64) as $t) { $hash = hash('whirlpool', $hash, true); $result .= $t ^ $hash; } return $result . hash('whirlpool', $hash, true); default: $len = strlen($bytes); for ($i = 0; $i < $len; $i+=20) { $t = substr($bytes, $i, 20); $hash = pack('H*', sha1($hash)); $result .= $t ^ $hash; } return $result . pack('H*', sha1($hash)); } } } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/lib/phpseclib/LICENSE�����������������������������������������������������������0000644�����������������00000002130�15122273603�0014134 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Copyright 2007-2013 TerraFrost and other contributors http://phpseclib.sourceforge.net/ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/lib/phpseclib/Rijndael.php������������������������������������������������������0000644�����������������00000127507�15122273603�0015410 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?php /** * Pure-PHP implementation of Rijndael. * * Uses mcrypt, if available/possible, and an internal implementation, otherwise. * * PHP versions 4 and 5 * * If {@link Crypt_Rijndael::setBlockLength() setBlockLength()} isn't called, it'll be assumed to be 128 bits. If * {@link Crypt_Rijndael::setKeyLength() setKeyLength()} isn't called, it'll be calculated from * {@link Crypt_Rijndael::setKey() setKey()}. ie. if the key is 128-bits, the key length will be 128-bits. If it's * 136-bits it'll be null-padded to 192-bits and 192 bits will be the key length until * {@link Crypt_Rijndael::setKey() setKey()} is called, again, at which point, it'll be recalculated. * * Not all Rijndael implementations may support 160-bits or 224-bits as the block length / key length. mcrypt, for example, * does not. AES, itself, only supports block lengths of 128 and key lengths of 128, 192, and 256. * {@link http://csrc.nist.gov/archive/aes/rijndael/Rijndael-ammended.pdf#page=10 Rijndael-ammended.pdf#page=10} defines the * algorithm for block lengths of 192 and 256 but not for block lengths / key lengths of 160 and 224. Indeed, 160 and 224 * are first defined as valid key / block lengths in * {@link http://csrc.nist.gov/archive/aes/rijndael/Rijndael-ammended.pdf#page=44 Rijndael-ammended.pdf#page=44}: * Extensions: Other block and Cipher Key lengths. * Note: Use of 160/224-bit Keys must be explicitly set by setKeyLength(160) respectively setKeyLength(224). * * {@internal The variable names are the same as those in * {@link http://www.csrc.nist.gov/publications/fips/fips197/fips-197.pdf#page=10 fips-197.pdf#page=10}.}} * * Here's a short example of how to use this library: * <code> * <?php * include 'Crypt/Rijndael.php'; * * $rijndael = new Crypt_Rijndael(); * * $rijndael->setKey('abcdefghijklmnop'); * * $size = 10 * 1024; * $plaintext = ''; * for ($i = 0; $i < $size; $i++) { * $plaintext.= 'a'; * } * * echo $rijndael->decrypt($rijndael->encrypt($plaintext)); * ?> * </code> * * LICENSE: Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. * * @category Crypt * @package Crypt_Rijndael * @author Jim Wigginton <terrafrost@php.net> * @copyright 2008 Jim Wigginton * @license http://www.opensource.org/licenses/mit-license.html MIT License * @link http://phpseclib.sourceforge.net */ /** * Include Crypt_Base * * Base cipher class */ if (!class_exists('Ecwid_Crypt_Base')) { include_once dirname(__FILE__) . '/Base.php'; } /**#@+ * @access public * @see Crypt_Rijndael::encrypt() * @see Crypt_Rijndael::decrypt() */ /** * Encrypt / decrypt using the Counter mode. * * Set to -1 since that's what Crypt/Random.php uses to index the CTR mode. * * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Counter_.28CTR.29 */ define('CRYPT_RIJNDAEL_MODE_CTR', CRYPT_MODE_CTR); /** * Encrypt / decrypt using the Electronic Code Book mode. * * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Electronic_codebook_.28ECB.29 */ define('CRYPT_RIJNDAEL_MODE_ECB', CRYPT_MODE_ECB); /** * Encrypt / decrypt using the Code Book Chaining mode. * * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher-block_chaining_.28CBC.29 */ define('CRYPT_RIJNDAEL_MODE_CBC', CRYPT_MODE_CBC); /** * Encrypt / decrypt using the Cipher Feedback mode. * * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher_feedback_.28CFB.29 */ define('CRYPT_RIJNDAEL_MODE_CFB', CRYPT_MODE_CFB); /** * Encrypt / decrypt using the Cipher Feedback mode. * * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Output_feedback_.28OFB.29 */ define('CRYPT_RIJNDAEL_MODE_OFB', CRYPT_MODE_OFB); /**#@-*/ /** * Pure-PHP implementation of Rijndael. * * @package Crypt_Rijndael * @author Jim Wigginton <terrafrost@php.net> * @access public */ class Ecwid_Crypt_Rijndael extends Ecwid_Crypt_Base { /** * The namespace used by the cipher for its constants. * * @see Crypt_Base::const_namespace * @var string * @access private */ var $const_namespace = 'RIJNDAEL'; /** * The mcrypt specific name of the cipher * * Mcrypt is useable for 128/192/256-bit $block_size/$key_length. For 160/224 not. * Crypt_Rijndael determines automatically whether mcrypt is useable * or not for the current $block_size/$key_length. * In case of, $cipher_name_mcrypt will be set dynamically at run time accordingly. * * @see Crypt_Base::cipher_name_mcrypt * @see Crypt_Base::engine * @see isValidEngine() * @var string * @access private */ var $cipher_name_mcrypt = 'rijndael-128'; /** * The default salt used by setPassword() * * @see Crypt_Base::password_default_salt * @see Crypt_Base::setPassword() * @var string * @access private */ var $password_default_salt = 'phpseclib'; /** * The Key Schedule * * @see _setup() * @var array * @access private */ var $w; /** * The Inverse Key Schedule * * @see _setup() * @var array * @access private */ var $dw; /** * The Block Length divided by 32 * * @see setBlockLength() * @var int * @access private * @internal The max value is 256 / 32 = 8, the min value is 128 / 32 = 4. Exists in conjunction with $block_size * because the encryption / decryption / key schedule creation requires this number and not $block_size. We could * derive this from $block_size or vice versa, but that'd mean we'd have to do multiple shift operations, so in lieu * of that, we'll just precompute it once. */ var $Nb = 4; /** * The Key Length (in bytes) * * @see setKeyLength() * @var int * @access private * @internal The max value is 256 / 8 = 32, the min value is 128 / 8 = 16. Exists in conjunction with $Nk * because the encryption / decryption / key schedule creation requires this number and not $key_length. We could * derive this from $key_length or vice versa, but that'd mean we'd have to do multiple shift operations, so in lieu * of that, we'll just precompute it once. */ var $key_length = 16; /** * The Key Length divided by 32 * * @see setKeyLength() * @var int * @access private * @internal The max value is 256 / 32 = 8, the min value is 128 / 32 = 4 */ var $Nk = 4; /** * The Number of Rounds * * @var int * @access private * @internal The max value is 14, the min value is 10. */ var $Nr; /** * Shift offsets * * @var array * @access private */ var $c; /** * Holds the last used key- and block_size information * * @var array * @access private */ var $kl; /** * Default Constructor. * * Determines whether or not the mcrypt extension should be used. * * $mode could be: * * - CRYPT_RIJNDAEL_MODE_ECB * * - CRYPT_RIJNDAEL_MODE_CBC * * - CRYPT_RIJNDAEL_MODE_CTR * * - CRYPT_RIJNDAEL_MODE_CFB * * - CRYPT_RIJNDAEL_MODE_OFB * * If not explictly set, CRYPT_RIJNDAEL_MODE_CBC will be used. * * @see Crypt_Base::Crypt_Base() * @param int $mode * @access public */ function __construct($mode = CRYPT_RIJNDAEL_MODE_CBC) { parent::__construct($mode = CRYPT_RIJNDAEL_MODE_CBC); } function Ecwid_Crypt_Rijndael($mode = CRYPT_RIJNDAEL_MODE_CBC) { parent::Ecwid_Crypt_Base($mode); } /** * Sets the key length. * * Valid key lengths are 128, 160, 192, 224, and 256. If the length is less than 128, it will be rounded up to * 128. If the length is greater than 128 and invalid, it will be rounded down to the closest valid amount. * * Note: phpseclib extends Rijndael (and AES) for using 160- and 224-bit keys but they are officially not defined * and the most (if not all) implementations are not able using 160/224-bit keys but round/pad them up to * 192/256 bits as, for example, mcrypt will do. * * That said, if you want be compatible with other Rijndael and AES implementations, * you should not setKeyLength(160) or setKeyLength(224). * * Additional: In case of 160- and 224-bit keys, phpseclib will/can, for that reason, not use * the mcrypt php extension, even if available. * This results then in slower encryption. * * @access public * @param int $length */ function setKeyLength($length) { switch (true) { case $length <= 128: $this->key_length = 16; break; case $length <= 160: $this->key_length = 20; break; case $length <= 192: $this->key_length = 24; break; case $length <= 224: $this->key_length = 28; break; default: $this->key_length = 32; } parent::setKeyLength($length); } /** * Sets the block length * * Valid block lengths are 128, 160, 192, 224, and 256. If the length is less than 128, it will be rounded up to * 128. If the length is greater than 128 and invalid, it will be rounded down to the closest valid amount. * * @access public * @param int $length */ function setBlockLength($length) { $length >>= 5; if ($length > 8) { $length = 8; } elseif ($length < 4) { $length = 4; } $this->Nb = $length; $this->block_size = $length << 2; $this->changed = true; $this->_setEngine(); } /** * Test for engine validity * * This is mainly just a wrapper to set things up for Crypt_Base::isValidEngine() * * @see Crypt_Base::Crypt_Base() * @param int $engine * @access public * @return bool */ function isValidEngine($engine) { switch ($engine) { case CRYPT_ENGINE_OPENSSL: if ($this->block_size != 16) { return false; } $this->cipher_name_openssl_ecb = 'aes-' . ($this->key_length << 3) . '-ecb'; $this->cipher_name_openssl = 'aes-' . ($this->key_length << 3) . '-' . $this->_openssl_translate_mode(); break; } return parent::isValidEngine($engine); } /** * Encrypts a block * * @access private * @param string $in * @return string */ function _encryptBlock($in) { static $tables; if (empty($tables)) { $tables = &$this->_getTables(); } $t0 = $tables[0]; $t1 = $tables[1]; $t2 = $tables[2]; $t3 = $tables[3]; $sbox = $tables[4]; $state = array(); $words = unpack('N*', $in); $c = $this->c; $w = $this->w; $Nb = $this->Nb; $Nr = $this->Nr; // addRoundKey $wc = $Nb - 1; foreach ($words as $word) { $state[] = $word ^ $w[++$wc]; } // fips-197.pdf#page=19, "Figure 5. Pseudo Code for the Cipher", states that this loop has four components - // subBytes, shiftRows, mixColumns, and addRoundKey. fips-197.pdf#page=30, "Implementation Suggestions Regarding // Various Platforms" suggests that performs enhanced implementations are described in Rijndael-ammended.pdf. // Rijndael-ammended.pdf#page=20, "Implementation aspects / 32-bit processor", discusses such an optimization. // Unfortunately, the description given there is not quite correct. Per aes.spec.v316.pdf#page=19 [1], // equation (7.4.7) is supposed to use addition instead of subtraction, so we'll do that here, as well. // [1] http://fp.gladman.plus.com/cryptography_technology/rijndael/aes.spec.v316.pdf $temp = array(); for ($round = 1; $round < $Nr; ++$round) { $i = 0; // $c[0] == 0 $j = $c[1]; $k = $c[2]; $l = $c[3]; while ($i < $Nb) { $temp[$i] = $t0[$state[$i] >> 24 & 0x000000FF] ^ $t1[$state[$j] >> 16 & 0x000000FF] ^ $t2[$state[$k] >> 8 & 0x000000FF] ^ $t3[$state[$l] & 0x000000FF] ^ $w[++$wc]; ++$i; $j = ($j + 1) % $Nb; $k = ($k + 1) % $Nb; $l = ($l + 1) % $Nb; } $state = $temp; } // subWord for ($i = 0; $i < $Nb; ++$i) { $state[$i] = $sbox[$state[$i] & 0x000000FF] | ($sbox[$state[$i] >> 8 & 0x000000FF] << 8) | ($sbox[$state[$i] >> 16 & 0x000000FF] << 16) | ($sbox[$state[$i] >> 24 & 0x000000FF] << 24); } // shiftRows + addRoundKey $i = 0; // $c[0] == 0 $j = $c[1]; $k = $c[2]; $l = $c[3]; while ($i < $Nb) { $temp[$i] = ($state[$i] & 0xFF000000) ^ ($state[$j] & 0x00FF0000) ^ ($state[$k] & 0x0000FF00) ^ ($state[$l] & 0x000000FF) ^ $w[$i]; ++$i; $j = ($j + 1) % $Nb; $k = ($k + 1) % $Nb; $l = ($l + 1) % $Nb; } switch ($Nb) { case 8: return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4], $temp[5], $temp[6], $temp[7]); case 7: return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4], $temp[5], $temp[6]); case 6: return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4], $temp[5]); case 5: return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4]); default: return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3]); } } /** * Decrypts a block * * @access private * @param string $in * @return string */ function _decryptBlock($in) { static $invtables; if (empty($invtables)) { $invtables = &$this->_getInvTables(); } $dt0 = $invtables[0]; $dt1 = $invtables[1]; $dt2 = $invtables[2]; $dt3 = $invtables[3]; $isbox = $invtables[4]; $state = array(); $words = unpack('N*', $in); $c = $this->c; $dw = $this->dw; $Nb = $this->Nb; $Nr = $this->Nr; // addRoundKey $wc = $Nb - 1; foreach ($words as $word) { $state[] = $word ^ $dw[++$wc]; } $temp = array(); for ($round = $Nr - 1; $round > 0; --$round) { $i = 0; // $c[0] == 0 $j = $Nb - $c[1]; $k = $Nb - $c[2]; $l = $Nb - $c[3]; while ($i < $Nb) { $temp[$i] = $dt0[$state[$i] >> 24 & 0x000000FF] ^ $dt1[$state[$j] >> 16 & 0x000000FF] ^ $dt2[$state[$k] >> 8 & 0x000000FF] ^ $dt3[$state[$l] & 0x000000FF] ^ $dw[++$wc]; ++$i; $j = ($j + 1) % $Nb; $k = ($k + 1) % $Nb; $l = ($l + 1) % $Nb; } $state = $temp; } // invShiftRows + invSubWord + addRoundKey $i = 0; // $c[0] == 0 $j = $Nb - $c[1]; $k = $Nb - $c[2]; $l = $Nb - $c[3]; while ($i < $Nb) { $word = ($state[$i] & 0xFF000000) | ($state[$j] & 0x00FF0000) | ($state[$k] & 0x0000FF00) | ($state[$l] & 0x000000FF); $temp[$i] = $dw[$i] ^ ($isbox[$word & 0x000000FF] | ($isbox[$word >> 8 & 0x000000FF] << 8) | ($isbox[$word >> 16 & 0x000000FF] << 16) | ($isbox[$word >> 24 & 0x000000FF] << 24)); ++$i; $j = ($j + 1) % $Nb; $k = ($k + 1) % $Nb; $l = ($l + 1) % $Nb; } switch ($Nb) { case 8: return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4], $temp[5], $temp[6], $temp[7]); case 7: return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4], $temp[5], $temp[6]); case 6: return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4], $temp[5]); case 5: return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4]); default: return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3]); } } /** * Setup the key (expansion) * * @see Crypt_Base::_setupKey() * @access private */ function _setupKey() { // Each number in $rcon is equal to the previous number multiplied by two in Rijndael's finite field. // See http://en.wikipedia.org/wiki/Finite_field_arithmetic#Multiplicative_inverse static $rcon = array(0, 0x01000000, 0x02000000, 0x04000000, 0x08000000, 0x10000000, 0x20000000, 0x40000000, 0x80000000, 0x1B000000, 0x36000000, 0x6C000000, 0xD8000000, 0xAB000000, 0x4D000000, 0x9A000000, 0x2F000000, 0x5E000000, 0xBC000000, 0x63000000, 0xC6000000, 0x97000000, 0x35000000, 0x6A000000, 0xD4000000, 0xB3000000, 0x7D000000, 0xFA000000, 0xEF000000, 0xC5000000, 0x91000000 ); if (isset($this->kl['key']) && $this->key === $this->kl['key'] && $this->key_length === $this->kl['key_length'] && $this->block_size === $this->kl['block_size']) { // already expanded return; } $this->kl = array('key' => $this->key, 'key_length' => $this->key_length, 'block_size' => $this->block_size); $this->Nk = $this->key_length >> 2; // see Rijndael-ammended.pdf#page=44 $this->Nr = max($this->Nk, $this->Nb) + 6; // shift offsets for Nb = 5, 7 are defined in Rijndael-ammended.pdf#page=44, // "Table 8: Shift offsets in Shiftrow for the alternative block lengths" // shift offsets for Nb = 4, 6, 8 are defined in Rijndael-ammended.pdf#page=14, // "Table 2: Shift offsets for different block lengths" switch ($this->Nb) { case 4: case 5: case 6: $this->c = array(0, 1, 2, 3); break; case 7: $this->c = array(0, 1, 2, 4); break; case 8: $this->c = array(0, 1, 3, 4); } $w = array_values(unpack('N*words', $this->key)); $length = $this->Nb * ($this->Nr + 1); for ($i = $this->Nk; $i < $length; $i++) { $temp = $w[$i - 1]; if ($i % $this->Nk == 0) { // according to <http://php.net/language.types.integer>, "the size of an integer is platform-dependent". // on a 32-bit machine, it's 32-bits, and on a 64-bit machine, it's 64-bits. on a 32-bit machine, // 0xFFFFFFFF << 8 == 0xFFFFFF00, but on a 64-bit machine, it equals 0xFFFFFFFF00. as such, doing 'and' // with 0xFFFFFFFF (or 0xFFFFFF00) on a 32-bit machine is unnecessary, but on a 64-bit machine, it is. $temp = (($temp << 8) & 0xFFFFFF00) | (($temp >> 24) & 0x000000FF); // rotWord $temp = $this->_subWord($temp) ^ $rcon[$i / $this->Nk]; } elseif ($this->Nk > 6 && $i % $this->Nk == 4) { $temp = $this->_subWord($temp); } $w[$i] = $w[$i - $this->Nk] ^ $temp; } // convert the key schedule from a vector of $Nb * ($Nr + 1) length to a matrix with $Nr + 1 rows and $Nb columns // and generate the inverse key schedule. more specifically, // according to <http://csrc.nist.gov/archive/aes/rijndael/Rijndael-ammended.pdf#page=23> (section 5.3.3), // "The key expansion for the Inverse Cipher is defined as follows: // 1. Apply the Key Expansion. // 2. Apply InvMixColumn to all Round Keys except the first and the last one." // also, see fips-197.pdf#page=27, "5.3.5 Equivalent Inverse Cipher" list($dt0, $dt1, $dt2, $dt3) = $this->_getInvTables(); $temp = $this->w = $this->dw = array(); for ($i = $row = $col = 0; $i < $length; $i++, $col++) { if ($col == $this->Nb) { if ($row == 0) { $this->dw[0] = $this->w[0]; } else { // subWord + invMixColumn + invSubWord = invMixColumn $j = 0; while ($j < $this->Nb) { $dw = $this->_subWord($this->w[$row][$j]); $temp[$j] = $dt0[$dw >> 24 & 0x000000FF] ^ $dt1[$dw >> 16 & 0x000000FF] ^ $dt2[$dw >> 8 & 0x000000FF] ^ $dt3[$dw & 0x000000FF]; $j++; } $this->dw[$row] = $temp; } $col = 0; $row++; } $this->w[$row][$col] = $w[$i]; } $this->dw[$row] = $this->w[$row]; // Converting to 1-dim key arrays (both ascending) $this->dw = array_reverse($this->dw); $w = array_pop($this->w); $dw = array_pop($this->dw); foreach ($this->w as $r => $wr) { foreach ($wr as $c => $wc) { $w[] = $wc; $dw[] = $this->dw[$r][$c]; } } $this->w = $w; $this->dw = $dw; } /** * Performs S-Box substitutions * * @access private * @param int $word */ function _subWord($word) { static $sbox; if (empty($sbox)) { list(, , , , $sbox) = $this->_getTables(); } return $sbox[$word & 0x000000FF] | ($sbox[$word >> 8 & 0x000000FF] << 8) | ($sbox[$word >> 16 & 0x000000FF] << 16) | ($sbox[$word >> 24 & 0x000000FF] << 24); } /** * Provides the mixColumns and sboxes tables * * @see Crypt_Rijndael:_encryptBlock() * @see Crypt_Rijndael:_setupInlineCrypt() * @see Crypt_Rijndael:_subWord() * @access private * @return array &$tables */ function &_getTables() { static $tables; if (empty($tables)) { // according to <http://csrc.nist.gov/archive/aes/rijndael/Rijndael-ammended.pdf#page=19> (section 5.2.1), // precomputed tables can be used in the mixColumns phase. in that example, they're assigned t0...t3, so // those are the names we'll use. $t3 = array_map('intval', array( // with array_map('intval', ...) we ensure we have only int's and not // some slower floats converted by php automatically on high values 0x6363A5C6, 0x7C7C84F8, 0x777799EE, 0x7B7B8DF6, 0xF2F20DFF, 0x6B6BBDD6, 0x6F6FB1DE, 0xC5C55491, 0x30305060, 0x01010302, 0x6767A9CE, 0x2B2B7D56, 0xFEFE19E7, 0xD7D762B5, 0xABABE64D, 0x76769AEC, 0xCACA458F, 0x82829D1F, 0xC9C94089, 0x7D7D87FA, 0xFAFA15EF, 0x5959EBB2, 0x4747C98E, 0xF0F00BFB, 0xADADEC41, 0xD4D467B3, 0xA2A2FD5F, 0xAFAFEA45, 0x9C9CBF23, 0xA4A4F753, 0x727296E4, 0xC0C05B9B, 0xB7B7C275, 0xFDFD1CE1, 0x9393AE3D, 0x26266A4C, 0x36365A6C, 0x3F3F417E, 0xF7F702F5, 0xCCCC4F83, 0x34345C68, 0xA5A5F451, 0xE5E534D1, 0xF1F108F9, 0x717193E2, 0xD8D873AB, 0x31315362, 0x15153F2A, 0x04040C08, 0xC7C75295, 0x23236546, 0xC3C35E9D, 0x18182830, 0x9696A137, 0x05050F0A, 0x9A9AB52F, 0x0707090E, 0x12123624, 0x80809B1B, 0xE2E23DDF, 0xEBEB26CD, 0x2727694E, 0xB2B2CD7F, 0x75759FEA, 0x09091B12, 0x83839E1D, 0x2C2C7458, 0x1A1A2E34, 0x1B1B2D36, 0x6E6EB2DC, 0x5A5AEEB4, 0xA0A0FB5B, 0x5252F6A4, 0x3B3B4D76, 0xD6D661B7, 0xB3B3CE7D, 0x29297B52, 0xE3E33EDD, 0x2F2F715E, 0x84849713, 0x5353F5A6, 0xD1D168B9, 0x00000000, 0xEDED2CC1, 0x20206040, 0xFCFC1FE3, 0xB1B1C879, 0x5B5BEDB6, 0x6A6ABED4, 0xCBCB468D, 0xBEBED967, 0x39394B72, 0x4A4ADE94, 0x4C4CD498, 0x5858E8B0, 0xCFCF4A85, 0xD0D06BBB, 0xEFEF2AC5, 0xAAAAE54F, 0xFBFB16ED, 0x4343C586, 0x4D4DD79A, 0x33335566, 0x85859411, 0x4545CF8A, 0xF9F910E9, 0x02020604, 0x7F7F81FE, 0x5050F0A0, 0x3C3C4478, 0x9F9FBA25, 0xA8A8E34B, 0x5151F3A2, 0xA3A3FE5D, 0x4040C080, 0x8F8F8A05, 0x9292AD3F, 0x9D9DBC21, 0x38384870, 0xF5F504F1, 0xBCBCDF63, 0xB6B6C177, 0xDADA75AF, 0x21216342, 0x10103020, 0xFFFF1AE5, 0xF3F30EFD, 0xD2D26DBF, 0xCDCD4C81, 0x0C0C1418, 0x13133526, 0xECEC2FC3, 0x5F5FE1BE, 0x9797A235, 0x4444CC88, 0x1717392E, 0xC4C45793, 0xA7A7F255, 0x7E7E82FC, 0x3D3D477A, 0x6464ACC8, 0x5D5DE7BA, 0x19192B32, 0x737395E6, 0x6060A0C0, 0x81819819, 0x4F4FD19E, 0xDCDC7FA3, 0x22226644, 0x2A2A7E54, 0x9090AB3B, 0x8888830B, 0x4646CA8C, 0xEEEE29C7, 0xB8B8D36B, 0x14143C28, 0xDEDE79A7, 0x5E5EE2BC, 0x0B0B1D16, 0xDBDB76AD, 0xE0E03BDB, 0x32325664, 0x3A3A4E74, 0x0A0A1E14, 0x4949DB92, 0x06060A0C, 0x24246C48, 0x5C5CE4B8, 0xC2C25D9F, 0xD3D36EBD, 0xACACEF43, 0x6262A6C4, 0x9191A839, 0x9595A431, 0xE4E437D3, 0x79798BF2, 0xE7E732D5, 0xC8C8438B, 0x3737596E, 0x6D6DB7DA, 0x8D8D8C01, 0xD5D564B1, 0x4E4ED29C, 0xA9A9E049, 0x6C6CB4D8, 0x5656FAAC, 0xF4F407F3, 0xEAEA25CF, 0x6565AFCA, 0x7A7A8EF4, 0xAEAEE947, 0x08081810, 0xBABAD56F, 0x787888F0, 0x25256F4A, 0x2E2E725C, 0x1C1C2438, 0xA6A6F157, 0xB4B4C773, 0xC6C65197, 0xE8E823CB, 0xDDDD7CA1, 0x74749CE8, 0x1F1F213E, 0x4B4BDD96, 0xBDBDDC61, 0x8B8B860D, 0x8A8A850F, 0x707090E0, 0x3E3E427C, 0xB5B5C471, 0x6666AACC, 0x4848D890, 0x03030506, 0xF6F601F7, 0x0E0E121C, 0x6161A3C2, 0x35355F6A, 0x5757F9AE, 0xB9B9D069, 0x86869117, 0xC1C15899, 0x1D1D273A, 0x9E9EB927, 0xE1E138D9, 0xF8F813EB, 0x9898B32B, 0x11113322, 0x6969BBD2, 0xD9D970A9, 0x8E8E8907, 0x9494A733, 0x9B9BB62D, 0x1E1E223C, 0x87879215, 0xE9E920C9, 0xCECE4987, 0x5555FFAA, 0x28287850, 0xDFDF7AA5, 0x8C8C8F03, 0xA1A1F859, 0x89898009, 0x0D0D171A, 0xBFBFDA65, 0xE6E631D7, 0x4242C684, 0x6868B8D0, 0x4141C382, 0x9999B029, 0x2D2D775A, 0x0F0F111E, 0xB0B0CB7B, 0x5454FCA8, 0xBBBBD66D, 0x16163A2C )); foreach ($t3 as $t3i) { $t0[] = (($t3i << 24) & 0xFF000000) | (($t3i >> 8) & 0x00FFFFFF); $t1[] = (($t3i << 16) & 0xFFFF0000) | (($t3i >> 16) & 0x0000FFFF); $t2[] = (($t3i << 8) & 0xFFFFFF00) | (($t3i >> 24) & 0x000000FF); } $tables = array( // The Precomputed mixColumns tables t0 - t3 $t0, $t1, $t2, $t3, // The SubByte S-Box array( 0x63, 0x7C, 0x77, 0x7B, 0xF2, 0x6B, 0x6F, 0xC5, 0x30, 0x01, 0x67, 0x2B, 0xFE, 0xD7, 0xAB, 0x76, 0xCA, 0x82, 0xC9, 0x7D, 0xFA, 0x59, 0x47, 0xF0, 0xAD, 0xD4, 0xA2, 0xAF, 0x9C, 0xA4, 0x72, 0xC0, 0xB7, 0xFD, 0x93, 0x26, 0x36, 0x3F, 0xF7, 0xCC, 0x34, 0xA5, 0xE5, 0xF1, 0x71, 0xD8, 0x31, 0x15, 0x04, 0xC7, 0x23, 0xC3, 0x18, 0x96, 0x05, 0x9A, 0x07, 0x12, 0x80, 0xE2, 0xEB, 0x27, 0xB2, 0x75, 0x09, 0x83, 0x2C, 0x1A, 0x1B, 0x6E, 0x5A, 0xA0, 0x52, 0x3B, 0xD6, 0xB3, 0x29, 0xE3, 0x2F, 0x84, 0x53, 0xD1, 0x00, 0xED, 0x20, 0xFC, 0xB1, 0x5B, 0x6A, 0xCB, 0xBE, 0x39, 0x4A, 0x4C, 0x58, 0xCF, 0xD0, 0xEF, 0xAA, 0xFB, 0x43, 0x4D, 0x33, 0x85, 0x45, 0xF9, 0x02, 0x7F, 0x50, 0x3C, 0x9F, 0xA8, 0x51, 0xA3, 0x40, 0x8F, 0x92, 0x9D, 0x38, 0xF5, 0xBC, 0xB6, 0xDA, 0x21, 0x10, 0xFF, 0xF3, 0xD2, 0xCD, 0x0C, 0x13, 0xEC, 0x5F, 0x97, 0x44, 0x17, 0xC4, 0xA7, 0x7E, 0x3D, 0x64, 0x5D, 0x19, 0x73, 0x60, 0x81, 0x4F, 0xDC, 0x22, 0x2A, 0x90, 0x88, 0x46, 0xEE, 0xB8, 0x14, 0xDE, 0x5E, 0x0B, 0xDB, 0xE0, 0x32, 0x3A, 0x0A, 0x49, 0x06, 0x24, 0x5C, 0xC2, 0xD3, 0xAC, 0x62, 0x91, 0x95, 0xE4, 0x79, 0xE7, 0xC8, 0x37, 0x6D, 0x8D, 0xD5, 0x4E, 0xA9, 0x6C, 0x56, 0xF4, 0xEA, 0x65, 0x7A, 0xAE, 0x08, 0xBA, 0x78, 0x25, 0x2E, 0x1C, 0xA6, 0xB4, 0xC6, 0xE8, 0xDD, 0x74, 0x1F, 0x4B, 0xBD, 0x8B, 0x8A, 0x70, 0x3E, 0xB5, 0x66, 0x48, 0x03, 0xF6, 0x0E, 0x61, 0x35, 0x57, 0xB9, 0x86, 0xC1, 0x1D, 0x9E, 0xE1, 0xF8, 0x98, 0x11, 0x69, 0xD9, 0x8E, 0x94, 0x9B, 0x1E, 0x87, 0xE9, 0xCE, 0x55, 0x28, 0xDF, 0x8C, 0xA1, 0x89, 0x0D, 0xBF, 0xE6, 0x42, 0x68, 0x41, 0x99, 0x2D, 0x0F, 0xB0, 0x54, 0xBB, 0x16 ) ); } return $tables; } /** * Provides the inverse mixColumns and inverse sboxes tables * * @see Crypt_Rijndael:_decryptBlock() * @see Crypt_Rijndael:_setupInlineCrypt() * @see Crypt_Rijndael:_setupKey() * @access private * @return array &$tables */ function &_getInvTables() { static $tables; if (empty($tables)) { $dt3 = array_map('intval', array( 0xF4A75051, 0x4165537E, 0x17A4C31A, 0x275E963A, 0xAB6BCB3B, 0x9D45F11F, 0xFA58ABAC, 0xE303934B, 0x30FA5520, 0x766DF6AD, 0xCC769188, 0x024C25F5, 0xE5D7FC4F, 0x2ACBD7C5, 0x35448026, 0x62A38FB5, 0xB15A49DE, 0xBA1B6725, 0xEA0E9845, 0xFEC0E15D, 0x2F7502C3, 0x4CF01281, 0x4697A38D, 0xD3F9C66B, 0x8F5FE703, 0x929C9515, 0x6D7AEBBF, 0x5259DA95, 0xBE832DD4, 0x7421D358, 0xE0692949, 0xC9C8448E, 0xC2896A75, 0x8E7978F4, 0x583E6B99, 0xB971DD27, 0xE14FB6BE, 0x88AD17F0, 0x20AC66C9, 0xCE3AB47D, 0xDF4A1863, 0x1A3182E5, 0x51336097, 0x537F4562, 0x6477E0B1, 0x6BAE84BB, 0x81A01CFE, 0x082B94F9, 0x48685870, 0x45FD198F, 0xDE6C8794, 0x7BF8B752, 0x73D323AB, 0x4B02E272, 0x1F8F57E3, 0x55AB2A66, 0xEB2807B2, 0xB5C2032F, 0xC57B9A86, 0x3708A5D3, 0x2887F230, 0xBFA5B223, 0x036ABA02, 0x16825CED, 0xCF1C2B8A, 0x79B492A7, 0x07F2F0F3, 0x69E2A14E, 0xDAF4CD65, 0x05BED506, 0x34621FD1, 0xA6FE8AC4, 0x2E539D34, 0xF355A0A2, 0x8AE13205, 0xF6EB75A4, 0x83EC390B, 0x60EFAA40, 0x719F065E, 0x6E1051BD, 0x218AF93E, 0xDD063D96, 0x3E05AEDD, 0xE6BD464D, 0x548DB591, 0xC45D0571, 0x06D46F04, 0x5015FF60, 0x98FB2419, 0xBDE997D6, 0x4043CC89, 0xD99E7767, 0xE842BDB0, 0x898B8807, 0x195B38E7, 0xC8EEDB79, 0x7C0A47A1, 0x420FE97C, 0x841EC9F8, 0x00000000, 0x80868309, 0x2BED4832, 0x1170AC1E, 0x5A724E6C, 0x0EFFFBFD, 0x8538560F, 0xAED51E3D, 0x2D392736, 0x0FD9640A, 0x5CA62168, 0x5B54D19B, 0x362E3A24, 0x0A67B10C, 0x57E70F93, 0xEE96D2B4, 0x9B919E1B, 0xC0C54F80, 0xDC20A261, 0x774B695A, 0x121A161C, 0x93BA0AE2, 0xA02AE5C0, 0x22E0433C, 0x1B171D12, 0x090D0B0E, 0x8BC7ADF2, 0xB6A8B92D, 0x1EA9C814, 0xF1198557, 0x75074CAF, 0x99DDBBEE, 0x7F60FDA3, 0x01269FF7, 0x72F5BC5C, 0x663BC544, 0xFB7E345B, 0x4329768B, 0x23C6DCCB, 0xEDFC68B6, 0xE4F163B8, 0x31DCCAD7, 0x63851042, 0x97224013, 0xC6112084, 0x4A247D85, 0xBB3DF8D2, 0xF93211AE, 0x29A16DC7, 0x9E2F4B1D, 0xB230F3DC, 0x8652EC0D, 0xC1E3D077, 0xB3166C2B, 0x70B999A9, 0x9448FA11, 0xE9642247, 0xFC8CC4A8, 0xF03F1AA0, 0x7D2CD856, 0x3390EF22, 0x494EC787, 0x38D1C1D9, 0xCAA2FE8C, 0xD40B3698, 0xF581CFA6, 0x7ADE28A5, 0xB78E26DA, 0xADBFA43F, 0x3A9DE42C, 0x78920D50, 0x5FCC9B6A, 0x7E466254, 0x8D13C2F6, 0xD8B8E890, 0x39F75E2E, 0xC3AFF582, 0x5D80BE9F, 0xD0937C69, 0xD52DA96F, 0x2512B3CF, 0xAC993BC8, 0x187DA710, 0x9C636EE8, 0x3BBB7BDB, 0x267809CD, 0x5918F46E, 0x9AB701EC, 0x4F9AA883, 0x956E65E6, 0xFFE67EAA, 0xBCCF0821, 0x15E8E6EF, 0xE79BD9BA, 0x6F36CE4A, 0x9F09D4EA, 0xB07CD629, 0xA4B2AF31, 0x3F23312A, 0xA59430C6, 0xA266C035, 0x4EBC3774, 0x82CAA6FC, 0x90D0B0E0, 0xA7D81533, 0x04984AF1, 0xECDAF741, 0xCD500E7F, 0x91F62F17, 0x4DD68D76, 0xEFB04D43, 0xAA4D54CC, 0x9604DFE4, 0xD1B5E39E, 0x6A881B4C, 0x2C1FB8C1, 0x65517F46, 0x5EEA049D, 0x8C355D01, 0x877473FA, 0x0B412EFB, 0x671D5AB3, 0xDBD25292, 0x105633E9, 0xD647136D, 0xD7618C9A, 0xA10C7A37, 0xF8148E59, 0x133C89EB, 0xA927EECE, 0x61C935B7, 0x1CE5EDE1, 0x47B13C7A, 0xD2DF599C, 0xF2733F55, 0x14CE7918, 0xC737BF73, 0xF7CDEA53, 0xFDAA5B5F, 0x3D6F14DF, 0x44DB8678, 0xAFF381CA, 0x68C43EB9, 0x24342C38, 0xA3405FC2, 0x1DC37216, 0xE2250CBC, 0x3C498B28, 0x0D9541FF, 0xA8017139, 0x0CB3DE08, 0xB4E49CD8, 0x56C19064, 0xCB84617B, 0x32B670D5, 0x6C5C7448, 0xB85742D0 )); foreach ($dt3 as $dt3i) { $dt0[] = (($dt3i << 24) & 0xFF000000) | (($dt3i >> 8) & 0x00FFFFFF); $dt1[] = (($dt3i << 16) & 0xFFFF0000) | (($dt3i >> 16) & 0x0000FFFF); $dt2[] = (($dt3i << 8) & 0xFFFFFF00) | (($dt3i >> 24) & 0x000000FF); }; $tables = array( // The Precomputed inverse mixColumns tables dt0 - dt3 $dt0, $dt1, $dt2, $dt3, // The inverse SubByte S-Box array( 0x52, 0x09, 0x6A, 0xD5, 0x30, 0x36, 0xA5, 0x38, 0xBF, 0x40, 0xA3, 0x9E, 0x81, 0xF3, 0xD7, 0xFB, 0x7C, 0xE3, 0x39, 0x82, 0x9B, 0x2F, 0xFF, 0x87, 0x34, 0x8E, 0x43, 0x44, 0xC4, 0xDE, 0xE9, 0xCB, 0x54, 0x7B, 0x94, 0x32, 0xA6, 0xC2, 0x23, 0x3D, 0xEE, 0x4C, 0x95, 0x0B, 0x42, 0xFA, 0xC3, 0x4E, 0x08, 0x2E, 0xA1, 0x66, 0x28, 0xD9, 0x24, 0xB2, 0x76, 0x5B, 0xA2, 0x49, 0x6D, 0x8B, 0xD1, 0x25, 0x72, 0xF8, 0xF6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xD4, 0xA4, 0x5C, 0xCC, 0x5D, 0x65, 0xB6, 0x92, 0x6C, 0x70, 0x48, 0x50, 0xFD, 0xED, 0xB9, 0xDA, 0x5E, 0x15, 0x46, 0x57, 0xA7, 0x8D, 0x9D, 0x84, 0x90, 0xD8, 0xAB, 0x00, 0x8C, 0xBC, 0xD3, 0x0A, 0xF7, 0xE4, 0x58, 0x05, 0xB8, 0xB3, 0x45, 0x06, 0xD0, 0x2C, 0x1E, 0x8F, 0xCA, 0x3F, 0x0F, 0x02, 0xC1, 0xAF, 0xBD, 0x03, 0x01, 0x13, 0x8A, 0x6B, 0x3A, 0x91, 0x11, 0x41, 0x4F, 0x67, 0xDC, 0xEA, 0x97, 0xF2, 0xCF, 0xCE, 0xF0, 0xB4, 0xE6, 0x73, 0x96, 0xAC, 0x74, 0x22, 0xE7, 0xAD, 0x35, 0x85, 0xE2, 0xF9, 0x37, 0xE8, 0x1C, 0x75, 0xDF, 0x6E, 0x47, 0xF1, 0x1A, 0x71, 0x1D, 0x29, 0xC5, 0x89, 0x6F, 0xB7, 0x62, 0x0E, 0xAA, 0x18, 0xBE, 0x1B, 0xFC, 0x56, 0x3E, 0x4B, 0xC6, 0xD2, 0x79, 0x20, 0x9A, 0xDB, 0xC0, 0xFE, 0x78, 0xCD, 0x5A, 0xF4, 0x1F, 0xDD, 0xA8, 0x33, 0x88, 0x07, 0xC7, 0x31, 0xB1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xEC, 0x5F, 0x60, 0x51, 0x7F, 0xA9, 0x19, 0xB5, 0x4A, 0x0D, 0x2D, 0xE5, 0x7A, 0x9F, 0x93, 0xC9, 0x9C, 0xEF, 0xA0, 0xE0, 0x3B, 0x4D, 0xAE, 0x2A, 0xF5, 0xB0, 0xC8, 0xEB, 0xBB, 0x3C, 0x83, 0x53, 0x99, 0x61, 0x17, 0x2B, 0x04, 0x7E, 0xBA, 0x77, 0xD6, 0x26, 0xE1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0C, 0x7D ) ); } return $tables; } /** * Setup the performance-optimized function for de/encrypt() * * @see Crypt_Base::_setupInlineCrypt() * @access private */ function _setupInlineCrypt() { // Note: _setupInlineCrypt() will be called only if $this->changed === true // So here we are'nt under the same heavy timing-stress as we are in _de/encryptBlock() or de/encrypt(). // However...the here generated function- $code, stored as php callback in $this->inline_crypt, must work as fast as even possible. $lambda_functions =& Ecwid_Crypt_Rijndael::_getLambdaFunctions(); // We create max. 10 hi-optimized code for memory reason. Means: For each $key one ultra fast inline-crypt function. // (Currently, for Crypt_Rijndael/AES, one generated $lambda_function cost on php5.5@32bit ~80kb unfreeable mem and ~130kb on php5.5@64bit) // After that, we'll still create very fast optimized code but not the hi-ultimative code, for each $mode one. $gen_hi_opt_code = (bool)(count($lambda_functions) < 10); // Generation of a uniqe hash for our generated code $code_hash = "Crypt_Rijndael, {$this->mode}, {$this->Nr}, {$this->Nb}"; if ($gen_hi_opt_code) { $code_hash = str_pad($code_hash, 32) . $this->_hashInlineCryptFunction($this->key); } if (!isset($lambda_functions[$code_hash])) { switch (true) { case $gen_hi_opt_code: // The hi-optimized $lambda_functions will use the key-words hardcoded for better performance. $w = $this->w; $dw = $this->dw; $init_encrypt = ''; $init_decrypt = ''; break; default: for ($i = 0, $cw = count($this->w); $i < $cw; ++$i) { $w[] = '$w[' . $i . ']'; $dw[] = '$dw[' . $i . ']'; } $init_encrypt = '$w = $self->w;'; $init_decrypt = '$dw = $self->dw;'; } $Nr = $this->Nr; $Nb = $this->Nb; $c = $this->c; // Generating encrypt code: $init_encrypt.= ' static $tables; if (empty($tables)) { $tables = &$self->_getTables(); } $t0 = $tables[0]; $t1 = $tables[1]; $t2 = $tables[2]; $t3 = $tables[3]; $sbox = $tables[4]; '; $s = 'e'; $e = 's'; $wc = $Nb - 1; // Preround: addRoundKey $encrypt_block = '$in = unpack("N*", $in);'."\n"; for ($i = 0; $i < $Nb; ++$i) { $encrypt_block .= '$s'.$i.' = $in['.($i + 1).'] ^ '.$w[++$wc].";\n"; } // Mainrounds: shiftRows + subWord + mixColumns + addRoundKey for ($round = 1; $round < $Nr; ++$round) { list($s, $e) = array($e, $s); for ($i = 0; $i < $Nb; ++$i) { $encrypt_block.= '$'.$e.$i.' = $t0[($'.$s.$i .' >> 24) & 0xff] ^ $t1[($'.$s.(($i + $c[1]) % $Nb).' >> 16) & 0xff] ^ $t2[($'.$s.(($i + $c[2]) % $Nb).' >> 8) & 0xff] ^ $t3[ $'.$s.(($i + $c[3]) % $Nb).' & 0xff] ^ '.$w[++$wc].";\n"; } } // Finalround: subWord + shiftRows + addRoundKey for ($i = 0; $i < $Nb; ++$i) { $encrypt_block.= '$'.$e.$i.' = $sbox[ $'.$e.$i.' & 0xff] | ($sbox[($'.$e.$i.' >> 8) & 0xff] << 8) | ($sbox[($'.$e.$i.' >> 16) & 0xff] << 16) | ($sbox[($'.$e.$i.' >> 24) & 0xff] << 24);'."\n"; } $encrypt_block .= '$in = pack("N*"'."\n"; for ($i = 0; $i < $Nb; ++$i) { $encrypt_block.= ', ($'.$e.$i .' & '.((int)0xFF000000).') ^ ($'.$e.(($i + $c[1]) % $Nb).' & 0x00FF0000 ) ^ ($'.$e.(($i + $c[2]) % $Nb).' & 0x0000FF00 ) ^ ($'.$e.(($i + $c[3]) % $Nb).' & 0x000000FF ) ^ '.$w[$i]."\n"; } $encrypt_block .= ');'; // Generating decrypt code: $init_decrypt.= ' static $invtables; if (empty($invtables)) { $invtables = &$self->_getInvTables(); } $dt0 = $invtables[0]; $dt1 = $invtables[1]; $dt2 = $invtables[2]; $dt3 = $invtables[3]; $isbox = $invtables[4]; '; $s = 'e'; $e = 's'; $wc = $Nb - 1; // Preround: addRoundKey $decrypt_block = '$in = unpack("N*", $in);'."\n"; for ($i = 0; $i < $Nb; ++$i) { $decrypt_block .= '$s'.$i.' = $in['.($i + 1).'] ^ '.$dw[++$wc].';'."\n"; } // Mainrounds: shiftRows + subWord + mixColumns + addRoundKey for ($round = 1; $round < $Nr; ++$round) { list($s, $e) = array($e, $s); for ($i = 0; $i < $Nb; ++$i) { $decrypt_block.= '$'.$e.$i.' = $dt0[($'.$s.$i .' >> 24) & 0xff] ^ $dt1[($'.$s.(($Nb + $i - $c[1]) % $Nb).' >> 16) & 0xff] ^ $dt2[($'.$s.(($Nb + $i - $c[2]) % $Nb).' >> 8) & 0xff] ^ $dt3[ $'.$s.(($Nb + $i - $c[3]) % $Nb).' & 0xff] ^ '.$dw[++$wc].";\n"; } } // Finalround: subWord + shiftRows + addRoundKey for ($i = 0; $i < $Nb; ++$i) { $decrypt_block.= '$'.$e.$i.' = $isbox[ $'.$e.$i.' & 0xff] | ($isbox[($'.$e.$i.' >> 8) & 0xff] << 8) | ($isbox[($'.$e.$i.' >> 16) & 0xff] << 16) | ($isbox[($'.$e.$i.' >> 24) & 0xff] << 24);'."\n"; } $decrypt_block .= '$in = pack("N*"'."\n"; for ($i = 0; $i < $Nb; ++$i) { $decrypt_block.= ', ($'.$e.$i. ' & '.((int)0xFF000000).') ^ ($'.$e.(($Nb + $i - $c[1]) % $Nb).' & 0x00FF0000 ) ^ ($'.$e.(($Nb + $i - $c[2]) % $Nb).' & 0x0000FF00 ) ^ ($'.$e.(($Nb + $i - $c[3]) % $Nb).' & 0x000000FF ) ^ '.$dw[$i]."\n"; } $decrypt_block .= ');'; $lambda_functions[$code_hash] = $this->_createInlineCryptFunction( array( 'init_crypt' => '', 'init_encrypt' => $init_encrypt, 'init_decrypt' => $init_decrypt, 'encrypt_block' => $encrypt_block, 'decrypt_block' => $decrypt_block ) ); } $this->inline_crypt = $lambda_functions[$code_hash]; } } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/lib/ecwid_api_v3.php������������������������������������������������������������0000644�����������������00000072115�15122273603�0014235 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?php require_once dirname( __FILE__ ) . '/ecwid_platform.php'; //phpcs:ignore class Ecwid_Api_V3 { const APP_ID = 'RD4o2KQimiGUrFZc'; const APP_PUBLIC_KEY = 'jEPVdcA3KbzKVrG8FZDgNnsY3wKHDTF8'; const TOKEN_OPTION_NAME = 'ecwid_oauth_token'; const PROFILE_CACHE_NAME = 'apiv3_store_profile'; const UPDATE_STATS_CACHE_NAME = 'apiv3_store_latest_stats'; const OPTION_API_STATUS = 'ecwid_api_status'; const API_STATUS_OK = 'ok'; const API_STATUS_UNDEFINED = null; const API_STATUS_ERROR_TLS = 'fail_old_tls'; const API_STATUS_ERROR_OTHER = 'fail_other'; const API_STATUS_ERROR_TOKEN = 'fail_token'; const FEATURE_NEW_PRODUCT_LIST = 'NEW_PRODUCT_LIST'; const FEATURE_PRODUCT_FILTERS = 'PRODUCT_FILTERS'; const FEATURE_PRODUCT_SUBTITLES = 'PRODUCT_SUBTITLES_FEATURE'; public static function get_api_status_list() { return array( self::API_STATUS_UNDEFINED, self::API_STATUS_OK, self::API_STATUS_ERROR_TOKEN, self::API_STATUS_ERROR_TLS, self::API_STATUS_ERROR_OTHER, ); } const FEATURE_VARIATIONS = 'COMBINATIONS'; const FEATURE_NEW_DETAILS_PAGE = 'NEW_DETAILS_PAGE'; public $store_id = null; protected static $profile = null; protected $_api_url; protected $_stores_api_url; protected $_categories_api_url; protected $_products_api_url; protected $_profile_api_url; protected $_starter_site_api_url; protected $_batch_requests_api_url; public function __construct() { $this->store_id = EcwidPlatform::get_store_id(); $this->_api_url = 'https://' . Ecwid_Config::get_api_domain() . '/api/v3/'; $this->_stores_api_url = $this->_api_url . 'stores'; $this->_categories_api_url = $this->_api_url . $this->store_id . '/categories'; $this->_products_api_url = $this->_api_url . $this->store_id . '/products'; $this->_profile_api_url = $this->_api_url . $this->store_id . '/profile'; $this->_starter_site_api_url = $this->_api_url . $this->store_id . '/startersite'; $this->_batch_requests_api_url = $this->_api_url . $this->store_id . '/batch'; add_option( self::OPTION_API_STATUS, self::API_STATUS_UNDEFINED ); } public static function is_available() { $status = self::get_api_status(); return self::check_api_status(); } public static function connection_fails() { $status = self::get_api_status(); return in_array( $status, array( self::API_STATUS_ERROR_OTHER, self::API_STATUS_ERROR_TLS ) ); } public static function reset_api_status() { update_option( self::OPTION_API_STATUS, self::API_STATUS_UNDEFINED ); } public static function set_api_status( $new_status ) { if ( in_array( $new_status, self::get_api_status_list() ) ) { update_option( self::OPTION_API_STATUS, $new_status ); } return $new_status == self::API_STATUS_OK; } public static function get_api_status() { return get_option( self::OPTION_API_STATUS ); } public static function check_api_status() { if ( ecwid_is_demo_store() ) { return self::set_api_status( self::API_STATUS_OK ); } $api = new Ecwid_Api_V3(); $token = self::_load_token(); if ( ! $token ) { return self::set_api_status( self::API_STATUS_ERROR_TOKEN ); } $update_stats = EcwidPlatform::cache_get( self::UPDATE_STATS_CACHE_NAME ); if ( ! $update_stats ) { $update_stats = $api->get_store_update_stats(); EcwidPlatform::cache_set( self::UPDATE_STATS_CACHE_NAME, $update_stats, 60 * 5 ); } if ( $update_stats ) { return self::set_api_status( self::API_STATUS_OK ); } $transports = stream_get_transports(); $tls_fails = true; foreach ( $transports as $transport ) { $matches = array(); $is_tls = preg_match( '!tlsv(.*)!', $transport, $matches ); if ( $is_tls ) { if ( version_compare( $matches[1], '1.1', '>=' ) ) { $tls_fails = false; break; } } } if ( -$tls_fails ) { return self::set_api_status( self::API_STATUS_ERROR_TLS ); } return self::set_api_status( self::API_STATUS_ERROR_OTHER ); } public static function save_token( $token ) { if ( ! $token ) { update_option( self::TOKEN_OPTION_NAME, '' ); } else { EcwidPlatform::init_crypt( true ); $value = base64_encode( EcwidPlatform::encrypt( $token ) ); update_option( self::TOKEN_OPTION_NAME, $value ); } self::reset_api_status(); } public function get_categories( $input_params ) { if ( ecwid_is_demo_store() && ! ecwid_get_demo_store_public_key() ) { return false; } $params = array(); if ( array_key_exists( 'parent', $input_params ) ) { $params['parent'] = $input_params['parent']; } $passthru = array( 'offset', 'limit', 'parent', 'baseUrl', 'cleanUrls', 'hidden_categories' ); foreach ( $passthru as $name ) { if ( array_key_exists( $name, $input_params ) ) { $params[ $name ] = $input_params[ $name ]; } } if ( ! isset( $params['baseUrl'] ) ) { $params['baseUrl'] = Ecwid_Store_Page::get_store_url(); } if ( Ecwid_Seo_Links::is_enabled() ) { $params['cleanUrls'] = 'true'; } $options = $this->build_request_headers(); $url = $this->build_request_url( $this->_categories_api_url, $params ); $result = EcwidPlatform::get_from_categories_cache( $url ); if ( ! $result ) { $result = EcwidPlatform::fetch_url( $url, $options ); } if ( $result['code'] != '200' ) { return false; } EcwidPlatform::store_in_categories_cache( $url, $result ); $result = json_decode( $result['data'] ); if ( ! empty( $result->items ) ) { foreach ( $result->items as $item ) { if ( Ecwid_Seo_Links::is_enabled() && ! empty( $item->url ) ) { $item->seo_link = $item->url; } Ecwid_Category::from_stdclass( $item ); } } return $result; } public function has_public_categories() { $cats = $this->get_categories( array( 'limit' => 1 ) ); if ( ! isset( $cats->total ) ) { return false; } return $cats->total > 0; } public function get_category( $category_id ) { if ( ! isset( $category_id ) || $category_id == 0 ) { return false; } $params = array(); if ( ! isset( $params['baseUrl'] ) ) { $params['baseUrl'] = Ecwid_Store_Page::get_store_url(); } if ( Ecwid_Seo_Links::is_enabled() ) { $params['cleanUrls'] = 'true'; } $options = $this->build_request_headers(); $url = $this->build_request_url( $this->_categories_api_url . '/' . $category_id, $params ); $result = EcwidPlatform::get_from_categories_cache( $url ); if ( ! $result ) { $result = EcwidPlatform::fetch_url( $url, $options ); } if ( $result['code'] != '200' ) { return false; } EcwidPlatform::store_in_categories_cache( $url, $result ); $result = json_decode( $result['data'] ); return $result; } public function get_product( $product_id ) { if ( ! $product_id ) { return false; } $params = array(); if ( ! isset( $params['baseUrl'] ) ) { $params['baseUrl'] = Ecwid_Store_Page::get_store_url(); } if ( Ecwid_Seo_Links::is_enabled() ) { $params['cleanUrls'] = 'true'; } else { $params['cleanUrls'] = 'false'; } $options = $this->build_request_headers(); $url = $this->build_request_url( $this->_products_api_url . '/' . $product_id, $params ); $result = EcwidPlatform::get_from_products_cache( $url ); if ( ! $result ) { $result = EcwidPlatform::fetch_url( $url, $options ); if ( $result['code'] != '200' ) { return false; } EcwidPlatform::store_in_products_cache( $url, $result ); } $result = json_decode( $result['data'] ); return $result; } public function search_products( $input_params ) { $params = array(); $passthru = array( 'updatedFrom', 'offset', 'limit', 'sortBy', 'keyword', 'baseUrl', 'cleanUrls', 'category', 'productId' ); foreach ( $passthru as $name ) { if ( array_key_exists( $name, $input_params ) ) { $params[ $name ] = (string) $input_params[ $name ]; } } if ( ! isset( $params['baseUrl'] ) ) { $params['baseUrl'] = Ecwid_Store_Page::get_store_url(); } if ( Ecwid_Seo_Links::is_enabled() ) { $params['cleanUrls'] = 'true'; } $params['enabled'] = 'true'; if ( EcwidPlatform::get( 'hide_out_of_stock' ) ) { $params['inStock'] = 'true'; } $options = $this->build_request_headers(); $url = $this->build_request_url( $this->_products_api_url, $params ); $result = EcwidPlatform::get_from_products_cache( $url ); if ( ! $result ) { $result = EcwidPlatform::fetch_url( $url, $options ); if ( $result['code'] != '200' ) { return false; } EcwidPlatform::store_in_products_cache( $url, $result ); } $result = json_decode( $result['data'] ); if ( ! empty( $result->items ) ) { foreach ( $result->items as $item ) { if ( Ecwid_Seo_Links::is_enabled() ) { $item->seo_link = $item->url; } Ecwid_Product::init_from_stdclass( $item ); } } $this->_maybe_remember_all_products( $params, $result, $url ); return $result; } public function get_deleted_products( $input_params ) { $params = array(); if ( array_key_exists( 'from_date', $input_params ) ) { $params['from_date'] = $input_params['from_date']; } if ( array_key_exists( 'offset', $input_params ) ) { $params['offset'] = $input_params['offset']; } if ( array_key_exists( 'limit', $input_params ) ) { $params['limit'] = $input_params['limit']; } $options = $this->build_request_headers(); $url = $this->build_request_url( $this->_products_api_url . '/deleted', $params ); $result = EcwidPlatform::fetch_url( $url, $options ); if ( $result['code'] != '200' ) { return false; } $result = json_decode( $result['data'] ); return $result; } public function get_products( $input_params ) { $params = array(); $passthru = array( 'updatedFrom', 'offset', 'limit', 'sortBy', 'keyword', 'createdFrom', 'createdTo', 'sku', 'enabled' ); foreach ( $passthru as $name ) { if ( array_key_exists( $name, $input_params ) ) { $params[ $name ] = $input_params[ $name ]; } } if ( isset( $params['createdTo'] ) ) { // For some reason createdTo does not include the exact timestamp while createdFrom does ++$params['createdTo']; } $options = $this->build_request_headers(); $url = $this->build_request_url( $this->_products_api_url, $params ); $result = EcwidPlatform::fetch_url( $url, $options ); if ( $result['code'] != '200' ) { return false; } $result = json_decode( $result['data'] ); return $result; } protected static function _load_token() { $db_value = get_option( self::TOKEN_OPTION_NAME ); if ( empty( $db_value ) ) { return false; } if ( strlen( $db_value ) == 64 ) { $encrypted = base64_decode( $db_value ); if ( empty( $encrypted ) ) { return false; } $token = EcwidPlatform::decrypt( $encrypted ); if ( $token == $db_value ) { return false; } } else { $token = $db_value; } return $token; } public static function get_token() { if ( ecwid_is_demo_store() ) { return ecwid_get_demo_store_public_key(); } $config_value = Ecwid_Config::get_token(); if ( $config_value ) { return $config_value; } return self::_load_token(); } public function get_oauth_dialog_url( $redirect_uri, $scope ) { if ( ! $scope || ! $redirect_uri ) { return null; } $url = Ecwid_Config::get_oauth_auth_url(); $query = array(); $query['source'] = 'wporg'; $query['client_id'] = Ecwid_Config::get_oauth_appid(); $query['redirect_uri'] = $redirect_uri; $query['response_type'] = 'code'; $query['scope'] = $scope; if ( Ecwid_Config::get_channel_id() && ! Ecwid_Config::is_wl() ) { $query['partner'] = Ecwid_Config::get_channel_id(); } $is_default_wl_domain = strpos( $url, 'shopsettings.com' ) !== false || strpos( $url, 'business.shop' ) !== false; if ( ! isset( $query['partner'] ) && Ecwid_Config::is_wl() && $is_default_wl_domain ) { $query['partner'] = Ecwid_Config::get_channel_id(); } foreach ( $query as $key => $value ) { $query[ $key ] = rawurlencode( $value ); } return $url . '?' . build_query( $query ); } public function does_store_exist( $email ) { $params = array( 'appClientId', 'appSecretKey', 'email' => $email, ); $url = $this->build_request_url( $this->_stores_api_url, $params ); $request = Ecwid_Http::create_get( 'does_store_exist', $url, array( Ecwid_Http::POLICY_RETURN_VERBOSE, ) ); if ( ! $request ) { return false; } $result = $request->do_request(); return @$result['code'] == 200; } public function get_store_update_stats( $additional_params = false ) { static $stats = null; if ( $stats ) { return $stats; } $url = $this->_api_url . $this->store_id . '/latest-stats'; $params = array(); if ( is_array( $additional_params ) ) { $params = array_merge( $additional_params, $params ); } $options = $this->build_request_headers(); $url = $this->build_request_url( $url, $params ); $result = EcwidPlatform::fetch_url( $url, $options ); if ( ! isset( $result['data'] ) ) { if ( isset( $result['message'] ) ) { ecwid_log_error( $result['message'] ); } return null; } $stats = json_decode( $result['data'] ); return $stats; } public function get_store_profile( $disable_cache = false ) { if ( ecwid_is_demo_store() ) { return false; } $profile = EcwidPlatform::cache_get( self::PROFILE_CACHE_NAME ); if ( ! empty( $profile ) && ! $disable_cache ) { return $profile; } if ( ! self::get_token() ) { self::set_api_status( self::API_STATUS_ERROR_TOKEN ); return false; } $params = array(); $options = $this->build_request_headers(); $url = $this->build_request_url( $this->_profile_api_url, $params ); $result = EcwidPlatform::fetch_url( $url, $options ); if ( @$result['code'] == '403' ) { if ( get_option( EcwidPlatform::OPTION_ECWID_CHECK_API_RETRY_AFTER, 0 ) == 0 ) { self::set_api_status( self::API_STATUS_ERROR_TOKEN ); self::save_token( '' ); } else { update_option( EcwidPlatform::OPTION_ECWID_CHECK_API_RETRY_AFTER, time() + 5 * MINUTE_IN_SECONDS ); } return false; } if ( self::get_api_status() == self::API_STATUS_OK && ( @$result['code'] != '200' || empty( $result['data'] ) ) ) { ecwid_log_error( var_export( $result, true ) ); self::set_api_status( self::API_STATUS_UNDEFINED ); return false; } $profile = json_decode( $result['data'] ); EcwidPlatform::cache_set( self::PROFILE_CACHE_NAME, $profile, 10 * MINUTE_IN_SECONDS ); if ( $profile && isset( $profile->settings ) && isset( $profile->settings->hideOutOfStockProductsInStorefront ) ) { EcwidPlatform::set( 'hide_out_of_stock', $profile->settings->hideOutOfStockProductsInStorefront ); } add_action( 'wp', array( 'Ecwid_Store_Page', 'set_store_url' ) ); return $profile; } public function update_store_profile( $params ) { $request_params = array(); $url = $this->build_request_url( $this->_profile_api_url, $request_params ); $result = $this->_do_put( $url, $params ); if ( ! is_wp_error( $result ) && @$result['response']['code'] == '200' ) { return $result; } return false; } public function is_store_feature_enabled( $feature_name ) { static $features = array(); if ( ! empty( $features ) && array_key_exists( $feature_name, $features ) ) { return $features[ $feature_name ]['enabled']; } $profile = $this->get_store_profile(); if ( ! $profile ) { return false; } $toggles = @$profile->featureToggles; if ( ! $toggles ) { return false; } foreach ( $toggles as $feature ) { if ( $feature->name == $feature_name ) { $features[ $feature_name ] = array(); $features[ $feature_name ]['enabled'] = $feature->enabled; return $feature->enabled; } } return false; } public function is_store_feature_available( $feature_name ) { $profile = $this->get_store_profile(); if ( $profile && property_exists( $profile, 'account' ) && property_exists( $profile->account, 'availableFeatures' ) && is_array( $profile->account->availableFeatures ) && in_array( $feature_name, $profile->account->availableFeatures ) ) { return true; } return false; } public function create_store() { global $current_user; $admin_email = $current_user->user_email; $admin_first = get_user_meta( $current_user->ID, 'first_name', true ); if ( ! $admin_first ) { $admin_first = get_user_meta( $current_user->ID, 'nickname', true ); } $admin_last = get_user_meta( $current_user->ID, 'last_name', true ); if ( ! $admin_last ) { $admin_last = get_user_meta( $current_user->ID, 'nickname', true ); } $admin_name = "$admin_first $admin_last"; $admin_nickname = $current_user->display_name; $store_url = Ecwid_Store_Page::get_store_url(); $site_name = get_bloginfo( 'name' ); $site_email = get_option( 'admin_email' ); $timezone = get_option( 'timezone_string', 'UTC+0' ); $params = array( 'merchant' => array( 'email' => $admin_email, 'name' => $admin_name, 'password' => wp_generate_password( 8 ), ), 'affiliatePartner' => array( 'source' => 'wporg', ), 'profile' => array( 'generalInfo' => array( 'storeUrl' => $store_url, ), 'account' => array( 'accountName' => $admin_name, 'accountNickName' => $admin_nickname, 'accountEmail' => $admin_email, ), 'settings' => array( 'storeName' => $site_name, ), 'mailNotifications' => array( 'adminNotificationEmails' => array( $site_email ), 'customerNotificationFromEmail' => $site_email, ), 'formatsAndUnits' => array( 'timezone' => $timezone, ), ), ); if ( isset( $_SERVER['REMOTE_ADDR'] ) && ! in_array( $_SERVER['REMOTE_ADDR'], array( '127.0.0.1', '::1' ) ) ) { $params['merchant']['ip'] = sanitize_text_field( wp_unslash( $_SERVER['REMOTE_ADDR'] ) ); } $ref = apply_filters( 'ecwid_get_new_store_ref_id', '' ); if ( $ref ) { $params['affiliatePartner']['ambassador'] = array( 'ref' => $ref, ); } $request_params = array( 'appClientId', 'appSecretKey', 'returnApiToken' => 'true', ); $url = $this->build_request_url( $this->_stores_api_url, $request_params ); $result = EcwidPlatform::http_post_request( $url, json_encode( $params ), array( 'timeout' => 20, 'headers' => array( 'Content-Type' => 'application/json;charset="utf-8"', ), ) ); return $result; } public static function format_time( $time ) { return date_i18n( 'Y-m-d H:i:s', $time ); } protected function build_request_url( $url, $input_params ) { $params = array(); foreach ( $input_params as $key => $param ) { if ( ! is_string( $key ) ) { if ( $param == 'appClientId' ) { $params['appClientId'] = Ecwid_Config::get_oauth_appid(); } elseif ( $param == 'appSecretKey' ) { $params['appSecretKey'] = Ecwid_Config::get_oauth_appsecret(); } elseif ( $param == 'token' ) { $params['token'] = self::get_token(); } } else { $params[ $key ] = rawurlencode( $param ); } } $lang = apply_filters( 'ecwid_lang', null ); if ( ! empty( $lang ) ) { $params['lang'] = $lang; } return $url . '?' . build_query( $params ); } protected function build_request_headers() { $headers = array( 'headers' => array( 'Authorization' => 'Bearer ' . self::get_token(), ), ); return $headers; } public function create_product( $params ) { $request_params = array(); $url = $this->build_request_url( $this->_products_api_url, $request_params ); $params = $this->_sanitize_product_data( $params ); $result = $this->_do_post( $url, $params ); return $result; } public function create_product_variation( $params ) { $request_params = array(); $url = $this->build_request_url( $this->_products_api_url . '/' . $params['productId'] . '/combinations', $request_params ); $result = $this->_do_post( $url, $params ); return $result; } public function update_product( $params, $product_id ) { $request_params = array(); $url = $this->build_request_url( $this->_products_api_url . '/' . $product_id, $request_params ); $params = $this->_sanitize_product_data( $params ); $result = $this->_do_put( $url, $params ); return $result; } protected function _sanitize_product_data( $data ) { $int_fields = array( 'quantity', 'defaultCategoryId', 'showOnFrontPage' ); foreach ( $int_fields as $field ) { if ( array_key_exists( $field, $data ) ) { $data[ $field ] = intval( $data[ $field ] ); } } $float_fields = array( 'price' ); foreach ( $float_fields as $field ) { if ( array_key_exists( $field, $data ) ) { $data[ $field ] = floatval( $data[ $field ] ); } } if ( array_key_exists( 'categoryIds', $data ) ) { foreach ( $data['categoryIds'] as $key => $id ) { $data['categoryIds'][ $key ] = intval( $id ); } } return $data; } public function create_category( $params ) { $request_params = array(); $url = $this->build_request_url( $this->_categories_api_url, $request_params ); $params = $this->_sanitize_category_data( $params ); $result = $this->_do_post( $url, $params ); return $result; } public function update_category( $params, $category_id ) { $request_params = array(); $url = $this->build_request_url( $this->_categories_api_url . '/' . $category_id, $request_params ); $params = $this->_sanitize_category_data( $params ); $result = $this->_do_put( $url, $params ); return $result; } protected function _sanitize_category_data( $data ) { $result = array(); $int_fields = array( 'parentId', 'orderBy' ); foreach ( $int_fields as $field ) { if ( array_key_exists( $field, $data ) ) { $data[ $field ] = intval( $data[ $field ] ); } } return $data; } public function delete_products( $ids ) { $request_params = array(); $requests = array(); foreach ( $ids as $id ) { $requests[] = array( 'type' => Requests::DELETE, 'headers' => array( 'Authorization' => 'Bearer ' . self::get_token(), ), 'url' => $this->build_request_url( $this->_products_api_url . '/' . $id, $request_params ), ); } $result = Requests::request_multiple( $requests ); return $result; } public function upload_category_image( $params ) { $request_params = array(); $url = $this->build_request_url( $this->_categories_api_url . '/' . $params['categoryId'] . '/image', $request_params ); $result = $this->_do_post( $url, $params['data'], true ); return $result; } public function upload_product_image( $params ) { $request_params = array(); $url = $this->build_request_url( $this->_products_api_url . '/' . $params['productId'] . '/image', $request_params ); $result = $this->_do_post( $url, $params['data'], true ); return $result; } public function upload_product_gallery_image( $params ) { $request_params = array(); $url = $this->build_request_url( $this->_products_api_url . '/' . $params['productId'] . '/gallery', $request_params ); $result = $this->_do_post( $url, $params['data'], true ); return $result; } public function upload_product_variation_image( $params ) { $request_params = array(); $url = $this->build_request_url( $this->_products_api_url . '/' . $params['productId'] . '/combinations/' . $params['variationId'] . '/image', $request_params ); $result = $this->_do_post( $url, $params['data'], true ); return $result; } public function get_starter_site_info() { $request_params = array(); $options = $this->build_request_headers(); $url = $this->build_request_url( $this->_starter_site_api_url, $request_params ); $result = EcwidPlatform::fetch_url( $url, $options ); if ( ! isset( $result['data'] ) ) { return null; } $data = json_decode( $result['data'] ); return $data; } protected function _do_post( $url, $data, $raw = false ) { $result = wp_remote_post( $url, array( 'body' => $raw ? $data : json_encode( $data ), 'timeout' => 20, 'headers' => array( 'Content-Type' => 'application/json;charset="utf-8"', 'Authorization' => 'Bearer ' . self::get_token(), ), ) ); if ( is_array( $result ) ) { $result['http_message'] = $this->_get_response_message_from_wp_remote_results( $result ); $json_result = $result['body']; $api_error = json_decode( $json_result ); if ( is_object( $api_error ) ) { $result['api_code'] = @$api_error->errorCode; //phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase $result['api_message'] = @$api_error->errorMessage; //phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase } } return $result; } protected function _do_put( $url, $data, $raw = false ) { $result = wp_remote_post( $url, array( 'body' => $raw ? $data : json_encode( $data ), 'timeout' => 20, 'headers' => array( 'Content-Type' => 'application/json;charset="utf-8"', 'Authorization' => 'Bearer ' . self::get_token(), ), 'method' => 'PUT', ) ); if ( is_array( $result ) ) { $result['api_message'] = $this->_get_response_message_from_wp_remote_results( $result ); } return $result; } protected function _get_response_message_from_wp_remote_results( $result ) { $raw = $result['http_response']->get_response_object()->raw; $pattern = '!HTTP/1.1 [0-9][0-9][0-9] (.*)!'; if ( preg_match( $pattern, $raw, $matches ) ) { return substr( $matches[1], 0, strlen( $matches[1] ) - 1 ); } return null; } protected function _maybe_remember_all_products( $params, $result, $url ) { $limiting_params = array( 'updatedFrom', 'keyword', 'category', 'productId', ); $all = true; foreach ( $limiting_params as $param ) { if ( array_key_exists( $param, $params ) ) { $all = false; break; } } if ( $all ) { EcwidPlatform::store_in_products_cache( 'ecwid_total_products', $result->total ); if ( $result->total < 100 && $result->count == $result->total ) { EcwidPlatform::store_in_products_cache( 'ecwid_all_products_request', $url ); } else { EcwidPlatform::store_in_products_cache( 'ecwid_all_products_request', '' ); } } } public function create_batch( $params ) { $request_params = array( 'stopOnFirstFailure' => 'false', ); $url = $this->build_request_url( $this->_batch_requests_api_url, $request_params ); $result = $this->_do_post( $url, $params ); return $result; } public function get_batch_status( $ticket ) { $params = array( 'ticket' => $ticket, ); $options = $this->build_request_headers(); $url = $this->build_request_url( $this->_batch_requests_api_url, $params ); $result = EcwidPlatform::fetch_url( $url, $options ); if ( @$result['code'] != '200' ) { return false; } return $result; } public function compose_batch_item( $path, $method = 'GET', $body = false, $batch_id = false ) { $result = array( 'path' => $path, 'method' => $method, ); if ( ! empty( $body ) ) { $result['body'] = $body; } if ( ! empty( $batch_id ) ) { $result['id'] = $batch_id; } return $result; } public function batch_create_product( $params, $batch_id = false ) { return $this->compose_batch_item( '/products', 'POST', $this->_sanitize_product_data( $params ), $batch_id ); } public function batch_update_product( $params, $product_id, $batch_id = false ) { return $this->compose_batch_item( '/products/' . $product_id, 'PUT', $this->_sanitize_product_data( $params ), $batch_id ); } public function batch_delete_product( $product_id, $batch_id = false ) { return $this->compose_batch_item( '/products/' . $product_id, 'DELETE', false, $batch_id ); } public function batch_upload_category_image_async( $params, $category_id, $batch_id = false ) { $url = $this->build_request_url( '/categories/' . $category_id . '/image/async', array() ); return $this->compose_batch_item( $url, 'POST', $params, $batch_id ); } public function batch_upload_product_image_async( $params, $product_id, $batch_id = false ) { $url = $this->build_request_url( '/products/' . $product_id . '/image/async', array() ); return $this->compose_batch_item( $url, 'POST', $params, $batch_id ); } public function batch_upload_product_gallery_image_async( $params, $product_id, $batch_id = false ) { $url = $this->build_request_url( '/products/' . $product_id . '/gallery/async', array() ); return $this->compose_batch_item( $url, 'POST', $params, $batch_id ); } public function batch_delete_all_gallery_image( $product_id, $batch_id = false ) { return $this->compose_batch_item( '/products/' . $product_id . '/gallery', 'DELETE', false, $batch_id ); } public function batch_upload_product_variation_image( $params, $product_id, $variation_id, $batch_id = false ) { $url = $this->build_request_url( '/products/' . $product_id . '/combinations/' . $variation_id . '/image', $params ); return $this->compose_batch_item( $url, 'POST', false, $batch_id ); } public function batch_create_product_variation( $params, $product_id, $batch_id = false ) { return $this->compose_batch_item( '/products/' . $product_id . '/combinations', 'POST', $params, $batch_id ); } } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/lib/ecwid_catalog_entry.php�����������������������������������������������������0000644�����������������00000005052�15122273603�0015703 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?php abstract class Ecwid_Catalog_Entry { protected $_data; protected $_cache_name_prefix = null; protected $_link_prefix = null; protected function __construct() { $this->_data = new stdClass(); } public function __get( $name ) { if ( $name == 'link' ) { return $this->get_link(); } if ( isset( $this->_data->$name ) ) { return $this->_data->$name; } return null; } public function __isset( $name ) { if ( $name == 'link' ) { $link = $this->get_link(); return (bool) $link; } return isset( $this->_data->$name ); } public static function from_stdclass( $data ) { trigger_error( 'from_stdclass should never be called from Ecwid_catalog_Entry' ); return false; } public static function get_by_id( $id ) { trigger_error( 'get_by_id should never be called from Ecwid_catalog_Entry' ); return false; } public function get_link( $baseUrl = false ) { if ( ! isset( $this->_data->id ) ) { return false; } if ( Ecwid_Seo_Links::is_enabled() ) { return $this->get_seo_link( $baseUrl ); } else { if ( ! $baseUrl ) { $baseUrl = Ecwid_Store_Page::get_store_url(); } $url = $baseUrl . '#!/'; if ( isset( $this->_data->name ) ) { $url .= $this->_linkify( $this->_data->name ) . '/'; } $url .= $this->_link_prefix . '/' . $this->_data->id; return $url; } return false; } public function get_seo_link( $baseUrl = '' ) { if ( $this->_data->id && isset( $this->_data->name ) ) { if ( ! $baseUrl ) { if ( Ecwid_Store_Page::is_store_page() ) { $baseUrl = get_permalink(); } else { $baseUrl = Ecwid_Store_Page::get_store_url(); } } $url = $baseUrl; $query = parse_url( $url, PHP_URL_QUERY ); if ( ! empty( $query ) ) { $exploded_url = explode( '?', $url ); $url = $exploded_url[0]; } if ( $url && strlen( $url ) > 0 && strrpos( $url, '/' ) != strlen( $url ) - 1 ) { $url .= '/'; } $url .= $this->_linkify( $this->_data->name ) . '-' . $this->_link_prefix . $this->_data->id; if ( ! empty( $query ) ) { $url .= '/?' . $query; } return $url; } elseif ( isset( $this->_data->seo_link ) ) { return $this->_data->seo_link; }//end if return false; } protected function _get_cache_key_by_id( $id ) { return $this->_cache_name_prefix . $id; } protected function _linkify( $str ) { $match = array(); $result = preg_match_all( '#[\p{L}0-9\-_]+#u', $str, $match ); if ( $result && count( @$match[0] ) > 0 ) { return implode( '-', $match[0] ); } return rawurlencode( $str ); } } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/lib/ecwid_catalog.php�����������������������������������������������������������0000644�����������������00000006231�15122273603�0014462 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?php class EcwidCatalog { var $store_id = 0; var $store_base_url = ''; public function __construct($store_id, $store_base_url) { $this->store_id = intval($store_id); $this->store_base_url = $store_base_url; } public function warmup_store_page( $category_id ) { $this->_get_data_for_category( $category_id, null ); } public function get_product($id) { $result = $this->_get_data_for_product($id); if ( !$result ) { return ''; } ob_start(); $product = $result->product; $formats = $result->formats; require dirname(__FILE__) . '/html-catalog-templates/product.php'; $return = ob_get_contents(); ob_end_clean(); return $return; } public function get_category($id) { $offset = ( isset($_GET['offset']) ) ? intval($_GET['offset']) : 0; $data = $this->_get_data_for_category( $id, $offset ); if ( !$data ) { return ''; } $main_category = null; if ($id > 0) { $main_category = $data->main_category; } $categories = $data->categories; $products = $data->products; $formats = $data->formats; ob_start(); require dirname(__FILE__) . '/html-catalog-templates/category.php'; $return = ob_get_contents(); ob_end_clean(); return $return; } protected function _get_data_for_product( $id ) { if ( Ecwid_Api_V3::is_available() ) { $api = new Ecwid_Api_V3(); $product = Ecwid_Product::get_by_id( $id ); $profile = $api->get_store_profile(); if (!$profile) { return null; } return (object) array( 'product' => $product, 'formats' => @$profile->formatsAndUnits ); } return null; } protected function _get_data_for_category( $id, $offset = 0 ) { if ( Ecwid_Api_V3::is_available() ) { $api = new Ecwid_Api_V3(); $main_category = null; if ($id > 0) { $main_category = $api->get_category( $id ); } $get_categories_params = array( 'parent' => $id ); if ($offset && $offset > 0) { $get_categories_params['offset'] = $offset; } $categories = $api->get_categories( $get_categories_params ); $get_products_params = array( 'category' => $id ); if ($offset) { $get_products_params['offset'] = $offset; } $products = $api->search_products( $get_products_params ); $profile = $api->get_store_profile(); if ( is_null( $profile ) || !isset( $categories->items ) || !isset( $products->items ) ) { return null; } return (object) array( 'main_category' => $main_category, 'categories' => $categories->items, 'products' => $products->items, 'formats' => @$profile->formatsAndUnits ); } return null; } public function parse_escaped_fragment($escaped_fragment) { $fragment = urldecode($escaped_fragment); $return = array(); if (preg_match('/^(\/~\/)([a-z]+)\/(.*)$/', $fragment, $matches)) { parse_str($matches[3], $return); $return['mode'] = $matches[2]; } elseif (preg_match('!.*/(p|c)/([0-9]*)!', $fragment, $matches)) { if (count($matches) == 3 && in_array($matches[1], array('p', 'c'))) { $return = array( 'mode' => 'p' == $matches[1] ? 'product' : 'category', 'id' => $matches[2] ); } } return $return; } } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/lib/ecwid_category.php����������������������������������������������������������0000644�����������������00000004023�15122273603�0014662 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?php require_once __DIR__ . '/ecwid_catalog_entry.php'; class Ecwid_Category extends Ecwid_Catalog_Entry { protected static $categories = array(); protected $_cache_name_prefix = 'ecwid-category-'; protected $_link_prefix = 'c'; public static function usort_callback() { return array( 'Ecwid_Category', 'usort_categories_orderby' ); } public static function usort_categories_orderby( $a, $b ) { if ( @$a->orderBy > @$b->orderBy ) { return 1; } else { return -1; } } protected function _get_from_local_object_cache( $id ) { if ( isset( self::$categories[ $id ] ) ) { return self::$categories[ $id ]; } return null; } protected function _put_into_local_object_cache( $obj ) { if ( ! isset( $obj->id ) ) { return false; } self::$categories[ $obj->id ] = $obj; } public static function from_stdclass( $data ) { $entry = new Ecwid_Category(); $entry->_init_from_stdclass( $data ); $entry->_put_into_local_object_cache( $entry ); } public static function get_by_id( $id ) { $e = new Ecwid_Category(); if ( $cat = $e->_get_from_local_object_cache( $id ) ) { return $cat; } $entry_data = $e->_get_from_cache( $id ); if ( ! $entry_data ) { $e->_load( $id ); } else { $e->_init_from_stdclass( $entry_data ); } if ( ! $e->_data ) { return null; } $e->_put_into_local_object_cache( $e ); return $e; } protected function _get_from_cache( $id ) { return EcwidPlatform::get_from_categories_cache( $this->_get_cache_key_by_id( $id ) ); } protected function _init_from_stdclass( $data ) { $this->_data = $data; EcwidPlatform::store_in_categories_cache( $this->_get_cache_key_by_id( $data->id ), $data ); } protected function _load( $id ) { $data = null; if ( Ecwid_Api_V3::is_available() ) { $api = new Ecwid_Api_V3(); $data = $api->get_category( $id ); if ( $data && Ecwid_Seo_Links::is_enabled() ) { $data->seo_link = $data->url; } } if ( $data ) { $this->_init_from_stdclass( $data ); } return $data; } } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/lib/ecwid_platform.php����������������������������������������������������������0000644�����������������00000033524�15122273603�0014701 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?php require_once 'ecwid_requests.php'; require_once ECWID_PLUGIN_DIR . 'lib/phpseclib/AES.php'; class EcwidPlatform { protected static $crypt = null; protected static $ecwid_plugin_data = null; const FORCES_CATALOG_CACHE_RESET_VALID_FROM = 'forced_catalog_cache_reset_valid_from'; const CATEGORIES_CACHE_VALID_FROM = 'categories_cache_valid_from'; const PRODUCTS_CACHE_VALID_FROM = 'products_cache_valid_from'; const PROFILE_CACHE_VALID_FROM = 'profile_cache_valid_from'; const CATALOG_CACHE_VALID_FROM = 'catalog_valid_from'; const OPTION_LOG_CACHE = 'ecwid_log_cache'; const OPTION_ECWID_PLUGIN_DATA = 'ecwid_plugin_data'; const OPTION_ECWID_CHECK_API_RETRY_AFTER = 'ecwid_api_check_retry_after'; const TRANSIENTS_LIMIT = 500; public static function get_store_id() { return get_ecwid_store_id(); } public static function init_crypt( $force = false ) { if ( $force || is_null( self::$crypt ) ) { self::$crypt = new Ecwid_Crypt_AES(); self::_init_crypt(); } } /* * @throws InvalidArgumentException if $file can't be slugified at all */ public static function enqueue_script( $file, $deps = array(), $in_footer = false, $handle = false ) { $filename = $file; if ( strpos( $file, '.js' ) == strlen( $file ) - 3 ) { $filename = substr( $filename, 0, strlen( $file ) - 3 ); } $handle = self::make_handle( $file ); $filename .= '.js'; if ( defined( 'WP_DEBUG' ) ) { $path = ECWID_PLUGIN_DIR . 'js/' . $filename; $ver = filemtime( $path ); } else { $ver = get_option( 'ecwid_plugin_version' ); } wp_enqueue_script( $handle, ECWID_PLUGIN_URL . 'js/' . $filename, $deps, $ver, $in_footer ); } public static function make_handle( $file ) { $filename = $file; if ( strpos( $file, '.js' ) == strlen( $file ) - 3 ) { $filename = substr( $filename, 0, strlen( $file ) - 3 ); } $prefix = 'ecwid-'; if ( strpos( $file, $prefix ) === 0 ) { $filename = substr( $filename, strlen( $prefix ) ); } $handle = self::slugify( $filename ); $handle = $prefix . $handle; return $handle; } /* * @throws InvalidArgumentException if $file can't be slugified at all */ public static function enqueue_style( $file, $deps = array(), $handle = false ) { $filename = $file; if ( strpos( $file, '.css' ) == strlen( $file ) - 4 ) { $filename = substr( $filename, 0, strlen( $file ) - 4 ); } if ( ! $handle ) { $handle = self::slugify( $filename ); } $handle = 'ecwid-' . $handle; $file = $filename . '.css'; if ( defined( 'WP_DEBUG' ) ) { $path = ECWID_PLUGIN_DIR . 'css/' . $file; $ver = filemtime( $path ); } else { $ver = get_option( 'ecwid_plugin_version' ); } wp_enqueue_style( $handle, ECWID_PLUGIN_URL . 'css/' . $file, $deps, $ver ); } public static function slugify( $string ) { $match = array(); $result = preg_match_all( '#[\p{L}0-9\-_]+#u', strtolower( $string ), $match ); if ( $result && count( @$match[0] ) > 0 ) { $handle = implode( '-', $match[0] ); } else { throw new InvalidArgumentException( 'Can\'t make slug from ' . $string ); } return $handle; } protected static function _init_crypt() { $salt = ''; $key = ''; // It turns out sometimes there is no salt is wp-config. And since it is already seeded // with the SECURE_AUTH_KEY, and to avoid breaking someones encryption // we use 'SECURE_AUTH_SALT' as string if ( defined( 'SECURE_AUTH_SALT' ) ) { $salt = SECURE_AUTH_SALT; } else { $salt = 'SECURE_AUTH_SALT'; } if ( defined( 'SECURE_AUTH_KEY' ) ) { $key = SECURE_AUTH_KEY; } else { $key = 'SECURE_AUTH_KEY'; } self::$crypt->setIV( substr( md5( $salt . get_option( 'ecwid_store_id' ) ), 0, 16 ) ); self::$crypt->setKey( $key ); } public static function encrypt( $what ) { self::init_crypt(); return self::$crypt->encrypt( $what ); } public static function decrypt( $what ) { self::init_crypt(); return self::$crypt->decrypt( $what ); } public static function cache_log_record( $operation, $params = array() ) { if ( ! get_option( self::OPTION_LOG_CACHE, false ) ) { return; } $backtrace = debug_backtrace( false ); //phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_debug_backtrace $file = ''; $line = ''; foreach ( $backtrace as $entry ) { if ( strpos( @$entry['file'], 'ecwid_platform.php' ) !== false ) { continue; } @$file = $entry['file']; @$line = $entry['line']; } $log_entry = array( 'operation' => $operation, 'file' => $file, 'line' => $line, 'timestamp' => time(), ); $log_entry = array_merge( $log_entry, $params ); $cache = get_option( 'ecwid_cache_log' ); if ( ! $cache ) { $cache = array(); } $cache[] = $log_entry; update_option( 'ecwid_cache_log', $cache ); } public static function cache_get( $name, $default = false ) { $result = get_transient( 'ecwid_' . $name ); self::cache_log_record( 'get', array( 'name' => $name, 'default' => $default, 'result' => $result, ) ); if ( $default !== false && $result === false ) { return $default; } return $result; } public static function cache_set( $name, $value, $expires_after = 0 ) { self::cache_log_record( 'set', array( 'name' => $name, 'value' => $value, 'expires' => $expires_after, ) ); set_transient( 'ecwid_' . $name, $value, $expires_after ); } public static function cache_reset( $name ) { self::cache_log_record( 'reset', array( 'name' => $name ) ); delete_transient( 'ecwid_' . $name ); } public static function parse_args( $args, $defaults ) { return wp_parse_args( $args, $defaults ); } public static function report_error( $error ) { ecwid_log_error( wp_json_encode( $error ) ); } public static function fetch_url( $url, $options = array() ) { $api_check_retry_after = get_option( self::OPTION_ECWID_CHECK_API_RETRY_AFTER, 0 ); if ( $api_check_retry_after > time() ) { return array( 'code' => '429', 'data' => '', 'message' => 'Too Many Requests', ); } $default_timeout = 10; $result = wp_remote_get( $url, array_merge( array( 'timeout' => get_option( 'ecwid_remote_get_timeout', $default_timeout ), ), $options ) ); if ( wp_remote_retrieve_response_code( $result ) == '429' ) { $retry_after = intval( wp_remote_retrieve_header( $result, 'retry-after' ) ); if ( $retry_after > 0 ) { update_option( self::OPTION_ECWID_CHECK_API_RETRY_AFTER, time() + $retry_after ); } } $return = array( 'code' => '', 'data' => '', 'message' => '', ); if ( is_string( $result ) ) { $return['code'] = 200; $return['data'] = $result; } if ( is_array( $result ) ) { $return = array( 'code' => $result['response']['code'], 'data' => $result['body'], ); } elseif ( is_object( $result ) ) { $return = array( 'code' => $result->get_error_code(), 'data' => $result->get_error_data(), 'message' => $result->get_error_message(), ); } if ( $return['code'] == 200 ) { update_option( self::OPTION_ECWID_CHECK_API_RETRY_AFTER, 0 ); } return $return; } public static function http_get_request( $url ) { return self::fetch_url( $url ); } public static function http_post_request( $url, $data = array(), $params = array() ) { $result = null; $args = array(); if ( ! empty( $params ) ) { $args = $params; } $args['body'] = $data; $result = wp_remote_post( $url, $args ); return $result; } public static function get( $name, $default = null ) { if ( ! self::$ecwid_plugin_data ) { self::$ecwid_plugin_data = get_option( self::OPTION_ECWID_PLUGIN_DATA ); } if ( is_array( self::$ecwid_plugin_data ) && array_key_exists( $name, self::$ecwid_plugin_data ) ) { return self::$ecwid_plugin_data[ $name ]; } return $default; } public static function set( $name, $value ) { if ( is_null( self::$ecwid_plugin_data ) ) { self::$ecwid_plugin_data = get_option( self::OPTION_ECWID_PLUGIN_DATA ); } if ( ! is_array( self::$ecwid_plugin_data ) ) { self::$ecwid_plugin_data = array(); } self::$ecwid_plugin_data[ $name ] = $value; update_option( self::OPTION_ECWID_PLUGIN_DATA, self::$ecwid_plugin_data ); } public static function reset( $name ) { if ( ! self::$ecwid_plugin_data ) { self::$ecwid_plugin_data = get_option( self::OPTION_ECWID_PLUGIN_DATA ); } $options = get_option( self::OPTION_ECWID_PLUGIN_DATA ); if ( ! is_array( self::$ecwid_plugin_data ) || ! array_key_exists( $name, self::$ecwid_plugin_data ) ) { return; } unset( self::$ecwid_plugin_data[ $name ] ); update_option( self::OPTION_ECWID_PLUGIN_DATA, self::$ecwid_plugin_data ); } public static function store_in_products_cache( $url, $data ) { self::store_in_cache( $url, 'products', $data, WEEK_IN_SECONDS ); } public static function store_in_categories_cache( $url, $data ) { self::store_in_cache( $url, 'categories', $data, WEEK_IN_SECONDS ); } public static function store_in_static_pages_cache( $url, $data ) { self::store_in_cache( $url, 'catalog', $data, WEEK_IN_SECONDS ); } protected static function store_in_cache( $url, $type, $data, $expires_after ) { $name = self::_build_cache_name( $url, $type ); $to_store = array( 'time' => time(), 'data' => $data, ); self::cache_set( $name, $to_store, $expires_after ); self::cache_log_record( 'store_in_entity_cache', array( 'name' => $url, 'type' => $type, 'data' => $data, ), 'set' ); } public static function get_from_categories_cache( $key ) { $cache_name = self::_build_cache_name( $key, 'categories' ); $result = self::cache_get( $cache_name ); self::cache_log_record( 'get_from_categories_cache', array( 'name' => $key, 'result' => $result, 'valid_from' => self::get( self::CATEGORIES_CACHE_VALID_FROM ), ) ); if ( $result && $result['time'] > self::get( self::CATEGORIES_CACHE_VALID_FROM ) ) { return $result['data']; } return false; } public static function get_from_products_cache( $key ) { $cache_name = self::_build_cache_name( $key, 'products' ); $result = self::cache_get( $cache_name ); self::cache_log_record( 'get_from_products_cache', array( 'name' => $key, 'result' => $result, 'valid_from' => self::get( self::CATEGORIES_CACHE_VALID_FROM ), ) ); if ( $result && $result['time'] > self::get( self::PRODUCTS_CACHE_VALID_FROM ) ) { return $result['data']; } return false; } public static function get_from_static_pages_cache( $key ) { $cache_name = self::_build_cache_name( $key, 'catalog' ); $result = self::cache_get( $cache_name ); $valid_from = max( self::get( self::CATEGORIES_CACHE_VALID_FROM ), self::get( self::PRODUCTS_CACHE_VALID_FROM ), self::get( self::PROFILE_CACHE_VALID_FROM ), self::get( self::FORCES_CATALOG_CACHE_RESET_VALID_FROM ) ); self::cache_log_record( 'get_from_static_pages_cache', array( 'name' => $key, 'result' => $result, 'valid_from' => $valid_from, ) ); if ( $result && isset( $result['data']->lastUpdated ) && $result['data']->lastUpdated > $valid_from ) { return $result['data']; } else { self::cache_reset( $cache_name ); if ( ! empty( get_the_ID() ) ) { do_action( 'ecwid_clean_external_cache_for_page', get_the_ID() ); } } return false; } public static function is_static_pages_cache_trusted() { $valid_from = max( self::get( self::CATEGORIES_CACHE_VALID_FROM ), self::get( self::PRODUCTS_CACHE_VALID_FROM ), self::get( self::PROFILE_CACHE_VALID_FROM ) ); self::cache_log_record( 'is_trusted', array( 'result' => time() - $valid_from > 10, 'time' => time(), 'cats' => self::get( self::CATEGORIES_CACHE_VALID_FROM ), 'prods' => self::get( self::PRODUCTS_CACHE_VALID_FROM ), ) ); return time() - $valid_from > 10; } protected static function _build_cache_name( $url, $type ) { return $type . '_' . md5( $url ); } protected static function _invalidate_cache_from( $name, $time ) { $time = is_null( $time ) ? time() : $time; $old = self::get( $name ); if ( $old > $time ) { return; } self::set( $name, $time ); self::cache_log_record( 'invalidate_cache_' . $name, array( 'time' => $time, ) ); } public static function invalidate_products_cache_from( $time = null ) { self::_invalidate_cache_from( self::PRODUCTS_CACHE_VALID_FROM, $time ); } public static function invalidate_categories_cache_from( $time = null ) { self::_invalidate_cache_from( self::CATEGORIES_CACHE_VALID_FROM, $time ); } public static function invalidate_profile_cache_from( $time = null ) { self::_invalidate_cache_from( self::PROFILE_CACHE_VALID_FROM, $time ); } public static function invalidate_static_pages_cache_from( $time = null ) { self::_invalidate_cache_from( self::CATALOG_CACHE_VALID_FROM, $time ); } public static function force_static_pages_cache_reset( $time = null ) { $time = is_null( $time ) ? time() : $time; self::set( self::FORCES_CATALOG_CACHE_RESET_VALID_FROM, $time ); } public static function is_need_clear_transients() { global $wpdb; $count_transients = $wpdb->get_var( //phpcs:ignore WordPress.DB.DirectDatabaseQuery " SELECT COUNT(*) FROM {$wpdb->options} WHERE option_name LIKE '\_transient\_ecwid\_%' " ); if ( $count_transients >= self::TRANSIENTS_LIMIT ) { return true; } return false; } public static function clear_all_transients() { global $wpdb; $wpdb->query( //phpcs:ignore WordPress.DB.DirectDatabaseQuery " DELETE FROM {$wpdb->options} WHERE option_name LIKE '\_transient\_ecwid\_%' OR option_name LIKE '\_transient\_timeout\_ecwid\_%' " ); $wpdb->query( //phpcs:ignore WordPress.DB.DirectDatabaseQuery "OPTIMIZE TABLE {$wpdb->options}" ); do_action( 'ecwid_clean_external_cache' ); } } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/lib/ecwid_product_api.php�������������������������������������������������������0000644�����������������00000003623�15122273603�0015363 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?php /* * This API is deprecated. Please use the official Ecwid API to extend your plugin functionality: * https://developers.ecwid.com/api-documentation * If you have any feedback on the Ecwid WordPress plugin or the Ecwid API, please contact us at plugins-feedback@ecwid.com */ _deprecated_file( basename( __FILE__ ), '6.8.1', 'the official API (https://developers.ecwid.com/api-documentation)' ); class EcwidProductApi { function __construct($store_id) { _deprecated_function( __FUNCTION__, '6.8.1' ); } function get_request($url) { _deprecated_function( __FUNCTION__, '6.8.1' ); } function process_request($url) { _deprecated_function( __FUNCTION__, '6.8.1' ); } function get_all_categories() { _deprecated_function( __FUNCTION__, '6.8.1' ); } function get_subcategories_by_id($parent_category_id = 0) { _deprecated_function( __FUNCTION__, '6.8.1' ); } function get_all_products() { _deprecated_function( __FUNCTION__, '6.8.1' ); } function get_products_by_category_id($category_id = 0) { _deprecated_function( __FUNCTION__, '6.8.1' ); } function get_product($product_id) { _deprecated_function( __FUNCTION__, '6.8.1' ); } function get_product_https($product_id) { _deprecated_function( __FUNCTION__, '6.8.1' ); } function get_category($category_id) { _deprecated_function( __FUNCTION__, '6.8.1' ); } function get_batch_request($params) { _deprecated_function( __FUNCTION__, '6.8.1' ); } function get_random_products($count) { _deprecated_function( __FUNCTION__, '6.8.1' ); } function get_profile() { _deprecated_function( __FUNCTION__, '6.8.1' ); } function is_api_enabled() { _deprecated_function( __FUNCTION__, '6.8.1' ); } function get_method_response_stream($method) { _deprecated_function( __FUNCTION__, '6.8.1' ); } } ?>�������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/lib/ecwid_product.php�����������������������������������������������������������0000644�����������������00000006731�15122273603�0014535 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?php require_once dirname( __FILE__ ) . '/ecwid_catalog_entry.php'; class Ecwid_Product extends Ecwid_Catalog_Entry { protected static $products = array(); protected $_cache_name_prefix = 'ecwid-product-'; protected $_link_prefix = 'p'; public static function get_by_id( $id ) { $p = new Ecwid_Product(); $product_data = $p->_get_from_cache( $id ); if ( ! $product_data ) { $p->_load( $id ); if ( ! $p->_data ) { return null; } $p->_persist(); } else { $p->_data = $product_data; } return $p; } public static function get_random_product() { $total = EcwidPlatform::get_from_products_cache( 'ecwid_total_products' ); $all_products = false; if ( $total < 100 && $total > 0 && EcwidPlatform::get_from_products_cache( 'ecwid_all_products_request' ) ) { $all_products = EcwidPlatform::get_from_products_cache( EcwidPlatform::get_from_products_cache( 'ecwid_all_products_request' ) ); } if ( $all_products ) { $index = rand( 0, $total - 1 ); $result = json_decode( $all_products['data'] ); $random_product_id = $result->items[ $index ]->id; } else { $index = rand( 0, $total ); $offset = floor( $index / 100 ) * 100; $api = new Ecwid_Api_V3(); $result = $api->search_products( array( 'offset' => $offset, ) ); if ( ! @$result->items ) { return null; } if ( count( $result->items ) < ( $index - $offset ) ) { $random_product = current( $result->items ); $random_product_id = $random_product->id; } else { if ( ! empty( $result->items[ $index - $offset ] ) ) { $random_product_id = $result->items[ $index - $offset ]->id; } else { $random_product = current( $result->items ); $random_product_id = $random_product->id; } } }//end if return self::get_by_id( $random_product_id ); } public static function get_without_loading( $id, $fallback_object = null ) { $p = new Ecwid_Product(); $product_data = $p->_get_from_cache( $id ); if ( ! $product_data ) { if ( $fallback_object ) { $product_data = $fallback_object; } else { $product_data = new stdClass(); } $product_data->id = $id; } $p->_data = $product_data; return $p; } public static function init_from_stdclass( $data ) { $p = new Ecwid_Product(); $p->_data = $data; $p->_persist(); return $p; } public static function preload_by_ids( $ids ) { if ( ! is_array( $ids ) || empty( $ids ) || ! Ecwid_Api_V3::is_available() ) { return; } $ids_string = implode( ',', $ids ); $api = new Ecwid_Api_V3(); $data = $api->search_products( array( 'productId' => $ids_string ) ); if ( $data && $data->count > 0 ) { foreach ( $data->items as $product_data ) { $p = new Ecwid_Product(); $p->_data = $product_data; $p->_persist(); } } } protected function _get_from_cache( $id ) { return EcwidPlatform::get_from_products_cache( $this->_get_cache_key_by_id( $id ) ); } protected function _load( $id ) { $data = null; if ( Ecwid_Api_V3::is_available() ) { $api = new Ecwid_Api_V3(); $data = $api->get_product( $id ); if ( $data && Ecwid_Seo_Links::is_enabled() ) { $data->seo_link = $data->url; } } if ( $data ) { $this->_data = $data; } return $data; } protected function _persist() { if ( ! property_exists( $this->_data, 'id' ) ) { return; } EcwidPlatform::store_in_products_cache( $this->_get_cache_key_by_id( $this->_data->id ), $this->_data ); } } ���������������������������������������ecwid-shopping-cart/lib/ecwid_requests.php����������������������������������������������������������0000644�����������������00000012453�15122273603�0014726 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?php abstract class Ecwid_Http { protected $name = ''; protected $url = ''; protected $policies; protected $error_message = ''; protected $raw_result; protected $processed_data; protected $timeout; protected $jsonp_callback = null; protected $code; protected $message; protected $headers; public $is_error = false; public $error; const TRANSPORT_CHECK_EXPIRATION = 86400; /** * No error handling whatsoever */ const POLICY_IGNORE_ERRORS = 'ignore_errors'; /** * Data sent and received will be treated like jsonp */ const POLICY_RETURN_JSON = 'return_json'; /** * Data received will be interpreted as json array */ const POLICY_RETURN_JSON_ARRAY = 'expect_json_array'; /** * Data sent and received will be treated like jsonp */ const POLICY_EXPECT_JSONP = 'expect_jsonp'; /** * Returns all response data with headers and such instead of data only */ const POLICY_RETURN_VERBOSE = 'return_verbose'; abstract protected function _do_request($url, $args); public function __construct($name, $url, $policies) { $this->name = $name; $this->url = $url; $this->policies = $policies; } public function get_response_meta() { return array( 'data' => $this->raw_result, 'code' => $this->code, 'message' => $this->message, 'headers' => $this->headers ); } public function do_request($args = array()) { $url = $this->_preprocess_url($this->url); $data = $this->_do_request($url, $args); if ( is_null( $data ) || $this->is_error ) { if( is_wp_error($data) ) { ecwid_log_error( $data->get_error_message('http_request_failed') ); } return null; } $this->_process_data($data); return $this->processed_data; } public static function create_get($name, $url, $params) { $transport_class = self::_get_transport(); $transport = new $transport_class($name, $url, $params); return $transport; } public static function create_post($name, $url, $params) { $transport_class = self::_post_transport(); $transport = new $transport_class($name, $url, $params); return $transport; } protected static function _set_transport_for_request($name, $transport) { EcwidPlatform::set('get_transport_' . $name, $transport); } protected static function _get_transport_for_request($name) { return EcwidPlatform::get('get_transport_' . $name); } protected static function _get_transport() { return 'Ecwid_HTTP_Get_WpRemoteGet'; } protected static function _post_transport() { return 'Ecwid_HTTP_Post_WpRemotePost'; } protected function _trigger_error() { $this->is_error = true; $this->error = $this->raw_result; self::_set_transport_for_request($this->name, null); if ( $this->_has_policy(self::POLICY_IGNORE_ERRORS) ) { return false; } return true; } protected function _has_policy( $policy ) { return in_array( $policy, $this->policies ); } protected function _process_data($raw_data) { $result = $raw_data; if ( in_array( self::POLICY_EXPECT_JSONP, $this->policies ) ) { $prefix_length = strlen($this->jsonp_callback . '('); $suffix_length = strlen(');'); $result = substr($raw_data, $prefix_length, strlen($result) - $suffix_length - $prefix_length - 1); $result = json_decode($result); } if ( in_array( self::POLICY_RETURN_JSON_ARRAY, $this->policies ) ) { $result = json_decode($raw_data, true); } if ( in_array( self::POLICY_RETURN_JSON, $this->policies ) ) { $result = json_decode($raw_data); } if ( $this->_has_policy( self::POLICY_RETURN_VERBOSE ) ) { $result = $this->get_response_meta(); $result['data'] = $raw_data; } $this->processed_data = $result; } protected function _preprocess_url($url) { if ( in_array( 'expect_jsonp', $this->policies ) ) { $this->jsonp_callback = 'jsoncallback' . time(); $url .= '&callback=' . $this->jsonp_callback; } return $url; } } abstract class Ecwid_HTTP_Get extends Ecwid_Http { protected function _trigger_error() { $continue = parent::_trigger_error(); if (!$continue) { return false; } update_option('ecwid_remote_get_fails', 1); ecwid_log_error($this->message); } } class Ecwid_HTTP_Get_WpRemoteGet extends Ecwid_HTTP_Get { protected function _do_request($url, $args) { $this->raw_result = wp_remote_get( $url, $args ); if (is_wp_error($this->raw_result)) { $this->error = $this->raw_result; $this->_trigger_error(); return $this->raw_result; } $this->code = $this->raw_result['response']['code']; $this->message = $this->raw_result['response']['message']; $this->headers = $this->raw_result['headers']; return $this->raw_result['body']; } protected function _trigger_error() { if (is_wp_error($this->error)) { $a = new WP_Error; $this->error_message = $this->error->get_error_message(); } return parent::_trigger_error(); } } abstract class Ecwid_HTTP_Post extends Ecwid_Http { } class Ecwid_HTTP_Post_WpRemotePost extends Ecwid_Http_Post { protected function _do_request($url, $args) { $this->raw_result = wp_remote_post( $url, $args ); if (is_wp_error($this->raw_result)) { $this->_trigger_error(); return $this->raw_result; } $this->code = $this->raw_result['response']['code']; $this->message = $this->raw_result['response']['message']; $this->headers = $this->raw_result['headers']; return $this->raw_result['body']; } }���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/templates/admin/storefront/area-additional.php����������������������������������0000644�����������������00000025112�15122273603�0021437 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div class="named-area" data-ec-state="publish draft"> <div class="named-area__header"> <div class="named-area__titles"><div class="named-area__title"><?php esc_html_e( 'Additional store pages', 'ecwid-shopping-cart' ); ?></div></div> <div class="named-area__description"><?php esc_html_e( 'Highlight products, categories, and other store pages by adding them to separate website pages.', 'ecwid-shopping-cart' ); ?></div> </div> <div class="named-area__body"> <div class="a-card a-card--compact"> <div class="a-card__paddings"> <div class="iconable-block iconable-block--hide-in-mobile"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <?php ecwid_embed_svg( 'admin-storefront/icons/cart-checkout' ); ?> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"><?php esc_html_e( 'Add cart and checkout page', 'ecwid-shopping-cart' ); ?></div> <div class="cta-block__content"> <?php esc_html_e( 'Customers go to the cart page to review products they’ve added to the cart and proceed to the checkout.', 'ecwid-shopping-cart' ); ?> </div> </div> <div class="cta-block__cta"> <a href="#" class="btn btn-default btn-medium" data-storefront-create-page="cart"><?php esc_html_e( 'Create Cart Page', 'ecwid-shopping-cart' ); ?></a> </div> </div> </div> </div> </div> </div> <div class="a-card a-card--compact"> <div class="a-card__paddings"> <div class="iconable-block iconable-block--hide-in-mobile"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <?php ecwid_embed_svg( 'admin-storefront/icons/search-filters' ); ?> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"><?php esc_html_e( 'Add a search and filters page', 'ecwid-shopping-cart' ); ?></div> <div class="cta-block__content"> <?php esc_html_e( 'Show customers that they can use a search and filters to find desired products faster.', 'ecwid-shopping-cart' ); ?> </div> </div> <div class="cta-block__cta"> <a href="#" class="btn btn-default btn-medium" data-storefront-create-page="search"><?php esc_html_e( 'Create Search Page', 'ecwid-shopping-cart' ); ?></a> </div> </div> </div> </div> </div> </div> <div class="a-card a-card--compact"> <div class="a-card__paddings"> <div class="iconable-block iconable-block--hide-in-mobile"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <?php ecwid_embed_svg( 'admin-storefront/icons/category' ); ?> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"><?php esc_html_e( 'Add a category page', 'ecwid-shopping-cart' ); ?></div> <div class="cta-block__content"> <?php if ( $categories && count( $categories ) > 0 && count( $categories ) <= 100 ) { esc_html_e( 'Feature a specific store category on a separate page of your site.', 'ecwid-shopping-cart' ); } else { esc_html_e( 'Feature a specific store category on a separate page of your site.', 'ecwid-shopping-cart' ); } ?> </div> </div> <div class="cta-block__cta"> <?php if ( $categories && count( $categories ) > 0 && count( $categories ) <= 100 ) { ?> <div class="btn-group dropdown-toggle drop-right"> <button data-storefront-create-page="category" type="button" class="btn btn-default btn-medium" aria-hidden="true" style="display: none;"></button> <div class="btn btn-default btn-dropdown btn-medium list-dropdown-no-general-text"> <span class="btn-dropdown-container"> <span class="actions"><?php esc_html_e( 'Pick Category', 'ecwid-shopping-cart' ); ?></span> </span> <span class="icon-arr-down"></span> </div> <div class="list-dropdown list-dropdown-medium list-dropdown-scroll"> <ul> <?php foreach ( $categories as $category ) { ?> <li data-storefront-create-page="category" data-storefront-item-id="<?php echo esc_attr( $category->id ); ?>" ><a><?php echo esc_html( $category->name ); ?></a></li> <?php } ?> </ul> </div> </div> <?php } else { ?> <a href="#" class="btn btn-default btn-medium" data-storefront-create-page="category"><?php esc_html_e( 'Create Category Page', 'ecwid-shopping-cart' ); ?></a> <?php }//end if ?> </div> </div> </div> </div> </div> </div> <div class="a-card a-card--compact"> <div class="a-card__paddings"> <div class="iconable-block iconable-block--hide-in-mobile"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <?php ecwid_embed_svg( 'admin-storefront/icons/product' ); ?> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"><?php esc_html_e( 'Add a product page', 'ecwid-shopping-cart' ); ?></div> <div class="cta-block__content"> <?php if ( $products_total > 0 && $products_total <= 100 ) { esc_html_e( 'Create a landing page featuring one of your products.', 'ecwid-shopping-cart' ); } else { esc_html_e( 'Create a landing page featuring one of your products.', 'ecwid-shopping-cart' ); } ?> </div> </div> <div class="cta-block__cta"> <?php if ( $products_total > 0 && $products_total <= 100 ) { ?> <div class="btn-group dropdown-toggle drop-right"> <button data-storefront-create-page="category" type="button" class="btn btn-default btn-medium" aria-hidden="true" style="display: none;"></button> <div class="btn btn-default btn-dropdown btn-medium list-dropdown-no-general-text"> <span class="btn-dropdown-container"> <span class="actions"><?php esc_html_e( 'Pick Product', 'ecwid-shopping-cart' ); ?></span> </span> <span class="icon-arr-down"></span> </div> <div class="list-dropdown list-dropdown-medium list-dropdown-scroll"> <ul> <?php foreach ( $products as $product ) { ?> <li data-storefront-create-page="product" data-storefront-item-id="<?php echo esc_attr( $product->id ); ?>" ><a><?php echo esc_html( $product->name ); ?></a></li> <?php } ?> </ul> </div> </div> <?php } else { ?> <a href="#" class="btn btn-default btn-medium" data-storefront-create-page="product"><?php esc_html_e( 'Create Product Page', 'ecwid-shopping-cart' ); ?></a> <?php }//end if ?> </div> </div> </div> </div> </div> </div> <div class="a-card a-card--compact"> <div class="a-card__paddings"> <div class="iconable-block iconable-block--hide-in-mobile"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <?php ecwid_embed_svg( 'admin-storefront/icons/add-another-page' ); ?> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"><?php esc_html_e( 'Add your store to other site pages', 'ecwid-shopping-cart' ); ?></div> <div class="cta-block__content"> <?php echo esc_html( sprintf( __( 'You can add the entire storefront, categories, products, or "Buy now" buttons to other pages on your site. To do that, open a page in the editor and add an appropriate %s block.', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ) ); ?> </div> </div> <div class="cta-block__cta"> <a href="<?php echo esc_url( admin_url( 'edit.php?post_type=page' ) ); ?>" target="_blank" class="btn btn-default btn-medium"><?php esc_html_e( 'Go to Pages', 'ecwid-shopping-cart' ); ?></a> </div> </div> </div> </div> </div> </div> <?php if ( $store_pages ) { ?> <div class="a-card a-card--compact"> <div class="a-card__paddings"> <div class="iconable-block iconable-block--hide-in-mobile"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <?php ecwid_embed_svg( 'admin-storefront/icons/choose-main-page' ); ?> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"><?php esc_html_e( 'Choose the main store page', 'ecwid-shopping-cart' ); ?></div> <div class="cta-block__content"> <?php esc_html_e( 'Your store is added to several pages on the site. Choose the main page. Customers are directed to the main store page when they click on the cart icon, store links in the site menu, and products in the sidebar.', 'ecwid-shopping-cart' ); ?> </div> <div class="cta-block__content"> <div class="fieldset fieldset--select fieldset--no-label"> <div class="field field--medium field--filled"> <select class="field__select" data-storefront-save-main-page="1"> <?php foreach ( $store_pages as $id ) : ?> <option value="<?php echo esc_attr( $id ); ?>" <?php if ( $id == $page_id ) : ?> selected="selected" <?php endif; ?> ><?php esc_html_e( get_post( $id )->post_title ); ?></option> <?php endforeach; ?> </select> <span class="field__arrow"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 26 26" focusable="false"><path d="M7.85 10l5.02 4.9 5.27-4.9c.65-.66 1.71-.66 2.36 0 .65.67.65 1.74 0 2.4l-6.45 6.1c-.33.33-.76.5-1.18.5-.43 0-.86-.17-1.18-.5l-6.21-6.1c-.65-.66-.65-1.74 0-2.41.66-.65 1.72-.65 2.37.01z"></path></svg></span> </div> </div> </div> </div> <div class="cta-block__cta"></div> </div> </div> </div> </div> </div> <?php }//end if ?> </div> </div> ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/templates/admin/storefront/area-design.php��������������������������������������0000644�����������������00000005266�15122273603�0020610 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div class="named-area" data-ec-state="publish draft"> <div class="named-area__header"> <div class="named-area__titles"><div class="named-area__title"><?php esc_html_e( 'Design and content', 'ecwid-shopping-cart' ); ?></div></div> <div class="named-area__description"><?php esc_html_e( 'Personalize your storefront\'s appearance and edit the content on the store page to reflect your brand and stay connected with your customers.', 'ecwid-shopping-cart' ); ?></div> </div> <div class="named-area__body"> <div class="a-card a-card--compact"> <div class="a-card__paddings"> <div class="iconable-block"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <?php ecwid_embed_svg( 'admin-storefront/icons/site-appearance' ); ?> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"><?php esc_html_e( 'Store appearance', 'ecwid-shopping-cart' ); ?></div> <div class="cta-block__content"> <?php if ( self::is_gutenberg_active() ) { esc_html_e( 'Adjust your store design to fit your business needs.', 'ecwid-shopping-cart' ); } else { esc_html_e( 'Adjust your store design to fit your business needs.', 'ecwid-shopping-cart' ); } ?> </div> </div> <div class="cta-block__cta"> <a href="<?php echo esc_url( $design_edit_link ); ?>" target="_blank" class="btn btn-default btn-medium"><?php esc_html_e( 'Edit', 'ecwid-shopping-cart' ); ?></a> </div> </div> </div> </div> </div> </div> <div class="a-card a-card--compact"> <div class="a-card__paddings"> <div class="iconable-block"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <?php ecwid_embed_svg( 'admin-storefront/icons/site-content' ); ?> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"><?php esc_html_e( 'Store page content', 'ecwid-shopping-cart' ); ?></div> <div class="cta-block__content"><?php esc_html_e( 'Along with the store catalog, you can add other widgets and texts to the store page.', 'ecwid-shopping-cart' ); ?></div> </div> <div class="cta-block__cta"> <a href="<?php echo esc_url( $page_edit_link ); ?>" target="_blank" class="btn btn-default btn-medium"> <?php esc_html_e( 'Edit', 'ecwid-shopping-cart' ); ?> </a> </div> </div> </div> </div> </div> </div> </div> </div> ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/templates/admin/storefront/area-navigation.php����������������������������������0000644�����������������00000023347�15122273603�0021476 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div class="named-area" data-ec-state="publish draft"> <div class="named-area__header"> <div class="named-area__titles"><div class="named-area__title"><?php esc_html_e( 'Navigation', 'ecwid-shopping-cart' ); ?></div></div> <div class="named-area__description"><?php esc_html_e( 'Help customers find your store on the website.', 'ecwid-shopping-cart' ); ?></div> </div> <div class="named-area__body"> <div class="a-card a-card--compact" data-ec-storefront-disabled-card="draft"> <div class="a-card__paddings"> <div class="iconable-block iconable-block--hide-in-mobile"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <?php ecwid_embed_svg( 'admin-storefront/icons/store-on-home-page' ); ?> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"><?php esc_html_e( 'Show your store on the home page', 'ecwid-shopping-cart' ); ?></div> <div class="cta-block__content"> <?php require self::$templates_dir . '/draft-message.php'; ?> <div> <?php echo wp_kses_post( sprintf( __( 'Add your storefront to the website home page to make it more prominent. You can also tweak the site home page settings in <a href="%s" target="_blank">WordPress Settings > Reading</a>', 'ecwid-shopping-cart' ), admin_url( 'options-reading.php' ) ) ); ?> </div> </div> </div> <div class="cta-block__cta"> <label class="checkbox big"> <input name="" type="checkbox" <?php if ( $store_on_front ) { ?> checked=""<?php } ?> data-storefront-checkbox="store_on_front"> <div data-on="enabled" data-off="disabled"> <div></div> </div> <span class="checkbox__on-text-placeholder">enabled</span> <span class="checkbox__off-text-placeholder">disabled</span> </label> </div> </div> </div> </div> </div> </div> <?php if ( Ecwid_Seo_Links::is_feature_available() ) { ?> <div class="a-card a-card--normal" data-storefront-card="change-link-form" style="display: none;"> <div class="a-card__paddings"> <div class="form-area"> <div class="form-area__title"><?php esc_html_e( 'Customize store page address', 'ecwid-shopping-cart' ); ?></div> <div class="form-area__content"> <div class="fieldsets-batch"> <?php esc_html_e( 'A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use "/shop" or "/products".', 'ecwid-shopping-cart' ); ?> </div> <div class="fieldsets-batch"> <div class="fieldset fieldset--no-label fieldset--with-prefix"> <div class="fieldset__field-wrapper"> <div class="field field--medium"> <label class="field__label"></label> <input type="text" class="field__input" maxlength="64" name="post_name" value="<?php echo esc_attr( $page_slug ); ?>" data-ec-store-slug-input="1"> <div class="field__placeholder"><?php esc_html_e( 'URL Slug', 'ecwid-shopping-cart' ); ?></div> </div> <div class="fieldset__field-prefix"><?php echo esc_url( get_site_url() ); ?>/</div> </div> <div class="field__error" aria-hidden="true" style="display: none;"></div> </div> </div> </div> <div class="form-area__action"> <button type="button" class="btn btn-primary btn-medium" data-storefront-save-slug><?php esc_html_e( 'Save', 'ecwid-shopping-cart' ); ?></button> <button type="button" class="btn btn-link btn-medium" data-storefront-show-card="change-link"><?php esc_html_e( 'Cancel', 'ecwid-shopping-cart' ); ?></button> </div> </div> </div> </div> <div class="a-card a-card--compact" data-storefront-card="change-link" data-ec-storefront-disabled-card="draft"> <div class="a-card__paddings"> <div class="iconable-block iconable-block--hide-in-mobile"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <?php ecwid_embed_svg( 'admin-storefront/icons/customize-page-link' ); ?> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"><?php esc_html_e( 'Customize store page address', 'ecwid-shopping-cart' ); ?></div> <div class="cta-block__content" data-ec-state="publish"> <b> <?php echo wp_kses_post( sprintf( __( 'Current URL slug: /<span data-ec-store-slug>%s</span>', 'ecwid-shopping-cart' ), $page_slug ) ); ?> </b> </div> <div class="cta-block__content"> <?php require self::$templates_dir . '/draft-message.php'; ?> <?php esc_html_e( 'A slug is the last part of a URL. You can create a custom slug for your store page. It’s better to keep it short since customers and search engines prefer short URLs. For example, use "/shop" or "/products".', 'ecwid-shopping-cart' ); ?> </div> </div> <div class="cta-block__cta"> <a href="<?php echo esc_url( $page_edit_link ); ?>" target="_blank" class="btn btn-default btn-medium" data-storefront-show-card="change-link-form"><?php esc_html_e( 'Edit URL Slug', 'ecwid-shopping-cart' ); ?></a> </div> </div> </div> </div> </div> </div> <?php }//end if ?> <div class="a-card a-card--compact" data-ec-storefront-disabled-card="draft"> <div class="a-card__paddings"> <div class="iconable-block iconable-block--hide-in-mobile"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <?php ecwid_embed_svg( 'admin-storefront/icons/add-page-to-menu' ); ?> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"><?php esc_html_e( 'Add store page to the site menu', 'ecwid-shopping-cart' ); ?></div> <div class="cta-block__content"> <?php require self::$templates_dir . '/draft-message.php'; ?> <div><?php esc_html_e( 'Make your store accessible from the site menu so your customers can easily find it.', 'ecwid-shopping-cart' ); ?></div> </div> </div> <div class="cta-block__cta"> <a href="<?php echo esc_url( admin_url( 'nav-menus.php' ) ); ?>" target="_blank" class="btn btn-default btn-medium"><?php esc_html_e( 'Add Store Page to Menu', 'ecwid-shopping-cart' ); ?></a> </div> </div> </div> </div> </div> </div> <div class="a-card a-card--compact"> <div class="a-card__paddings"> <div class="iconable-block iconable-block--hide-in-mobile"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <?php ecwid_embed_svg( 'admin-storefront/icons/feature-sidebar' ); ?> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"><?php esc_html_e( 'Feature your products in the sidebar', 'ecwid-shopping-cart' ); ?></div> <div class="cta-block__content"> <?php esc_html_e( 'Highlight your best sellers or new products in the website sidebar.', 'ecwid-shopping-cart' ); ?> </div> </div> <div class="cta-block__cta"> <a href="<?php echo esc_url( admin_url( 'widgets.php?highlight-ec-widgets=1' ) ); ?>" target="_blank" class="btn btn-default btn-medium"><?php esc_html_e( 'Manage Sidebar', 'ecwid-shopping-cart' ); ?></a> </div> </div> </div> </div> </div> </div> <?php if ( class_exists( 'Ecwid_Floating_Minicart' ) ) { ?> <div class="a-card a-card--compact"> <div class="a-card__paddings"> <div class="iconable-block iconable-block--hide-in-mobile"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <?php ecwid_embed_svg( 'admin-storefront/icons/show-shopping-cart-icon' ); ?> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"><?php esc_html_e( 'Display the shopping cart icon on site pages', 'ecwid-shopping-cart' ); ?></div> <div class="cta-block__content"> <?php echo wp_kses_post( sprintf( __( 'The shopping cart icon shows the number of items in the cart and helps customers proceed to the checkout. Additionally, you can <a href="%s" target="_blank">adjust the cart icon appearance</a>.', 'ecwid-shopping-cart' ), $customizer_minicart_link ) ); ?> </div> </div> <div class="cta-block__cta"> <label class="checkbox big"> <input name="" type="checkbox" <?php if ( ! $minicart_hide ) { ?> checked="" <?php } ?> data-storefront-checkbox="display_cart_icon"> <div data-on="enabled" data-off="disabled"> <div></div> </div> <span class="checkbox__on-text-placeholder">enabled</span> <span class="checkbox__off-text-placeholder">disabled</span> </label> </div> </div> </div> </div> </div> </div> <?php }//end if ?> </div> </div> �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/templates/admin/storefront/area-promo.php���������������������������������������0000644�����������������00000004265�15122273603�0020471 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div class="named-area" data-ec-state="demo no-pages"> <div class="named-area__header"> <div class="named-area__titles"><div class="named-area__title"><?php esc_html_e( "What's next?", 'ecwid-shopping-cart' ); ?></div></div> <div class="named-area__description"> <?php echo esc_html( sprintf( __( 'Add your %s store to the website and start selling in minutes.', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ) ); ?> </div> </div> <div class="named-area__body"> <div class="a-card a-card--compact"> <div class="a-card__paddings"> <div class="promo-row"> <div class="promo-row__content"> <ul class="titled-items-list titled-items-list--ordered"> <li class="titled-items-list__item titled-item"> <div class="titled-item__title"><?php esc_html_e( 'Customize store appearance', 'ecwid-shopping-cart' ); ?></div> <div class="titled-item__content"><?php esc_html_e( 'Customize your store’s appearance to fit your business needs. Give your store the exact look and feel that reflects your brand.', 'ecwid-shopping-cart' ); ?></div> </li> <li class="titled-items-list__item titled-item"> <div class="titled-item__title"><?php esc_html_e( 'Change store content', 'ecwid-shopping-cart' ); ?></div> <div class="titled-item__content"><?php esc_html_e( "Stay connected with your customers. Update the content of your store anytime to tell customers about ongoing promotions and what's new in your store.", 'ecwid-shopping-cart' ); ?></div> </li> <li class="titled-items-list__item titled-item"> <div class="titled-item__title"><?php esc_html_e( 'Promote your store', 'ecwid-shopping-cart' ); ?></div> <div class="titled-item__content"><?php esc_html_e( 'Help customers find your store on the site. Add the store link to the site menu, create additional store pages, and highlight store products on other site pages and in sidebars.', 'ecwid-shopping-cart' ); ?></div> </li> </ul> </div> <div class="promo-row__image"><img src="<?php echo esc_attr( ECWID_PLUGIN_URL ); ?>/images/admin-storefront/customize-promo.png"></div> </div> </div> </div> </div> </div> �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/templates/admin/storefront/area-status.php��������������������������������������0000644�����������������00000017602�15122273603�0020657 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div class="named-area"> <div class="named-area__header"> <div class="named-area__titles"> <div class="named-area__title"><?php esc_html_e( 'Store page on your site', 'ecwid-shopping-cart' ); ?></div> <div class="named-area__subtitle" data-ec-state="demo"> <?php esc_html_e( 'While your store is not connected, a demo store displays on your site. Check it to get the idea of how your store may look on the site.', 'ecwid-shopping-cart' ); ?> </div> <div class="named-area__subtitle" data-ec-state="no-pages"> <?php esc_html_e( 'To start selling, add a page to your site where the storefront will display.', 'ecwid-shopping-cart' ); ?> </div> </div> </div> <div class="named-area__body"> <div class="a-card a-card--normal"> <div class="a-card__paddings"> <div class="feature-element has-picture"> <div class="feature-element__core"> <div class="feature-element__data"> <div class="feature-element__title" data-ec-state="publish draft"><?php esc_html_e( 'Your store page', 'ecwid-shopping-cart' ); ?></div> <div class="feature-element__title" data-ec-state="demo"> <?php echo esc_html( sprintf( __( 'Connect your %s store', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ) ); ?> </div> <div class="feature-element__title" data-ec-state="no-pages"><?php esc_html_e( 'Add a store page', 'ecwid-shopping-cart' ); ?></div> <div class="feature-element__status" data-ec-state="publish draft"> <span class="feature-element__status-title success" data-ec-state="publish"> <?php esc_html_e( 'Status', 'ecwid-shopping-cart' ); ?>: </span> <span class="feature-element__status-title error" data-ec-state="draft"> <?php esc_html_e( 'Status', 'ecwid-shopping-cart' ); ?>: </span> <div class="feature-element__status-dropdown-container"> <div class="dropdown-menu text-default"> <div class="dropdown-menu__link"> <a class="iconable-link"> <div class="iconable-link__text" data-ec-state="publish"><?php esc_html_e( 'Published', 'ecwid-shopping-cart' ); ?></div> <div class="iconable-link__text" data-ec-state="draft"><?php esc_html_e( 'Draft', 'ecwid-shopping-cart' ); ?></div> ‍ <span class="iconable-link__icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 28" focusable="false"><path d="M3.3 9.5l5.6 5.1 6-5.1c.8-.7 1.9-.7 2.6 0 .8.7.8 1.8 0 2.5l-7.2 6.4c-.5.4-1 .6-1.4.6s-1-.2-1.3-.5L.7 12.1c-.8-.7-.8-1.8 0-2.5.6-.8 1.9-.8 2.6-.1z"></path></svg> </span> </a> </div> <div class="list-dropdown list-dropdown-medium" style="display: none;" aria-hidden="true"> <ul data-ec-state="publish"> <?php self::render_dropdown_list_items( self::get_dropdown_items( 'publish', $page_data ) ); ?> </ul> <ul data-ec-state="draft"> <?php self::render_dropdown_list_items( self::get_dropdown_items( 'draft', $page_data ) ); ?> </ul> </div> </div> <a class="iconable-link text-default simple-svg-loader" style="display: none;" aria-hidden="true"> <div class="iconable-link__text"><?php echo esc_html__( ucfirst( $page_status ) ); ?></div> ‍ <span class="iconable-link__icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 28 28" width="28" height="28" focusable="false"><path d="M14,27C6.83,27,1,21.17,1,14c0-1.56,0.27-3.08,0.81-4.52C2.1,8.7,2.96,8.31,3.74,8.59c0.78,0.29,1.17,1.15,0.88,1.93 C4.21,11.63,4,12.8,4,14c0,5.51,4.49,10,10,10c5.51,0,10-4.49,10-10c0-5.51-4.49-10-10-10c-0.83,0-1.5-0.67-1.5-1.5S13.17,1,14,1 c7.17,0,13,5.83,13,13C27,21.17,21.17,27,14,27z"></path></svg> </span> </a> </div> </div> <div class="feature-element__status" data-ec-state="demo"> <a class="iconable-link iconable-link--append" href="<?php echo esc_url( $page_link ); ?>" target="_blank"> <span class="iconable-link__text"><?php esc_html_e( 'View demo store page', 'ecwid-shopping-cart' ); ?></span> <span class="iconable-link__icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 28 28"><path d="M25.5 15.39c-.83 0-1.5.67-1.5 1.5v4.41c0 1.49-1.21 2.71-2.71 2.71H6.71A2.72 2.72 0 0 1 4 21.29V6.71C4 5.21 5.21 4 6.71 4h4.45c.83 0 1.5-.67 1.5-1.5S11.99 1 11.16 1H6.71C3.56 1 1 3.56 1 6.71v14.58C1 24.44 3.56 27 6.71 27h14.58c3.15 0 5.71-2.56 5.71-5.71v-4.41c0-.82-.67-1.49-1.5-1.49z"></path><path d="M25.05 1h-7.37c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5h4.2l-9.94 9.94a1.49 1.49 0 0 0 0 2.12c.29.29.68.44 1.06.44s.77-.15 1.06-.44L24 6.12v4.2c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5V2.95C27 1.87 26.13 1 25.05 1z"></path></svg></span> </a> </div> <div class="feature-element__content" data-ec-state="publish"> <div class="feature-element__text"> <?php esc_html_e( 'Your store page is published. Customers can browse your store at ', 'ecwid-shopping-cart' ); echo wp_kses_post( sprintf( '<a href="%s" target="_blank" data-ec-store-link="1">%s</a>', $page_link, urldecode( $page_link ) ) ); ?> </div> <div class="feature-element__action"> <a href="<?php echo esc_url( $page_link ); ?>" class="feature-element__button btn btn-default btn-medium" target="_blank"><?php esc_html_e( 'View Store Page', 'ecwid-shopping-cart' ); ?></a> </div> </div> <div class="feature-element__content" data-ec-state="draft"> <div class="feature-element__text"> <p><?php esc_html_e( 'Your store page is currently in draft. Once you are ready, publish it to let customers browse the store and place orders.', 'ecwid-shopping-cart' ); ?></p> </div> <div class="feature-element__action"> <a class="feature-element__button btn btn-primary btn-medium" data-storefront-status="1"><?php esc_html_e( 'Publish Store Page', 'ecwid-shopping-cart' ); ?></a> </div> </div> <div class="feature-element__content" data-ec-state="demo"> <div class="feature-element__text"> <p> <?php echo esc_html( sprintf( __( 'To show your storefront instead of the demo store, connect your existing %s account or create a new one.', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ) ); ?> </p> </div> <div class="feature-element__action"> <a href="<?php echo esc_url( admin_url( 'admin.php?page=ec-store&return-url=' ) . rawurlencode( self::get_relative_page_url() ) ); ?>" class="feature-element__button btn btn-primary btn-medium"><?php esc_html_e( 'Set Up Your Store', 'ecwid-shopping-cart' ); ?></a> </div> </div> <div class="feature-element__content" data-ec-state="no-pages"> <div class="feature-element__text"> <p><?php esc_html_e( 'Your store is not added to any page on your site. To let customers browse your store and place orders, create a page where the store will display.', 'ecwid-shopping-cart' ); ?></p> </div> <div class="feature-element__action"> <a class="feature-element__button btn btn-primary btn-medium" data-storefront-create-page="store"><?php esc_html_e( 'Create Store Page', 'ecwid-shopping-cart' ); ?></a> </div> </div> </div> <div class="feature-element__picture"> <img src="<?php echo esc_attr( ECWID_PLUGIN_URL ); ?>/images/admin-storefront/store-default.png" data-ec-state="publish"/> <img src="<?php echo esc_attr( ECWID_PLUGIN_URL ); ?>/images/admin-storefront/store-draft.png" data-ec-state="draft"/> <img src="<?php echo esc_attr( ECWID_PLUGIN_URL ); ?>/images/admin-storefront/store-create.png" data-ec-state="demo no-pages"/> </div> </div> </div> </div> </div> </div> </div> ������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/templates/admin/storefront/draft-message.php������������������������������������0000644�����������������00000000235�15122273603�0021142 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div class="text-default warning" data-ec-state="draft"> <b><?php esc_html_e( 'Publish the page to use this option', 'ecwid-shopping-cart' ); ?></b> </div> �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/templates/admin/storefront/main.php���������������������������������������������0000644�����������������00000004117�15122273603�0017347 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div id="ec-storefront-settings" class="settings-page ec-ui-framework-page" data-ec-storefront-status="<?php echo esc_attr( $page_status ); ?>" > <div class="settings-page__header"> <div class="settings-page__titles settings-page__titles--left"> <h1 class="settings-page__title"><?php esc_html_e( 'Your Storefront', 'ecwid-shopping-cart' ); ?></h1> <div class="settings-page__subtitle"></div> </div> <?php if ( isset( $need_show_draft_warning ) && $need_show_draft_warning ) { ?> <div class="a-card a-card--compact a-card--warning" data-ec-state="draft"> <div class="a-card__paddings"> <div class="iconable-block iconable-block--hide-in-mobile iconable-block--warning"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 70 70" focusable="false"><path d="M34.5 67C16.58 67 2 52.42 2 34.5S16.58 2 34.5 2 67 16.58 67 34.5 52.42 67 34.5 67zm0-62C18.23 5 5 18.23 5 34.5S18.23 64 34.5 64 64 50.77 64 34.5 50.77 5 34.5 5z"></path><path d="M34.5 49c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5zM35.5 38.57h-2l-1-14c0-1.17.89-2.07 2-2.07s2 .9 2 2l-1 14.07z"></path></svg></span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"><?php esc_html_e( 'The store is not visible on your site', 'ecwid-shopping-cart' ); ?></div> <div class="cta-block__content"><?php esc_html_e( 'Customers can’t see your store page because it’s in draft. Publish the page to make it available for your customers.', 'ecwid-shopping-cart' ); ?></div> </div> </div> </div> </div> </div> </div> <?php }//end if ?> <?php require self::$templates_dir . '/area-status.php'; ?> <?php require self::$templates_dir . '/area-design.php'; ?> <?php require self::$templates_dir . '/area-navigation.php'; ?> <?php require self::$templates_dir . '/area-additional.php'; ?> <?php require self::$templates_dir . '/area-promo.php'; ?> </div> </div> �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/templates/admin/developers.php��������������������������������������������������0000644�����������������00000150125�15122273603�0016367 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div id="ec-store-developers" class="settings-page ec-ui-framework-page"> <div class="settings-page__header"> <div class="settings-page__titles settings-page__titles--left"> <h1 class="settings-page__title"><?php echo esc_html__( 'Developers', 'ecwid-shopping-cart' ); ?></h1> <div class="settings-page__subtitle"> <?php echo esc_html__( 'Build the store your client needs and realize your own vision with Ecwid. Use the Ecwid plugin, powerful API, apps and integrations to design stores and build your own solutions. Become an Ecwid partner and grow your business effectively.', 'ecwid-shopping-cart' ); ?> </div> </div> </div> <div class="settings-page__body" style="padding-bottom: .1px"> <div class="named-area"> <div class="named-area__header"> <div class="named-area__titles"> <div class="named-area__title"> <?php echo esc_html__( 'Ecwid plugin features', 'ecwid-shopping-cart' ); ?> </div> <div class="named-area__subtitle"> <?php echo esc_html__( 'Extend your site with an easy-to-use plugin compatible with WordPress page builders and editors.', 'ecwid-shopping-cart' ); ?> </div> </div> <div class="named-area__description"></div> <div class="named-area__additional"></div> </div> <div class="named-area__body"> <div class="a-card-stack"> <div class="a-card a-card--normal"> <div class="a-card__paddings"> <div class="feature-element has-icon"> <div class="feature-element__core"> <div class="feature-element__data"> <div class="feature-element__title"> <?php echo esc_html__( 'Store blocks for your website', 'ecwid-shopping-cart' ); ?> </div> <div class="feature-element__content"> <div class="feature-element__text"> <div class="titled-item"> <div class="titled-item__title"></div> <div class="titled-item__content"> <div> <?php echo esc_html__( 'Add store components to any place of your WordPress site using shortcodes or WordPress site builders and editors.', 'ecwid-shopping-cart' ); ?> </div> </div> </div> </div> </div> </div> <div class="feature-element__icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 56 56"> <path d="M28 1.68a26.3 26.3 0 0114.71 4.49 26.6 26.6 0 017.12 7.12 26.33 26.33 0 010 29.42 26.6 26.6 0 01-7.12 7.12 26.33 26.33 0 01-29.42 0 26.6 26.6 0 01-7.12-7.12 26.33 26.33 0 010-29.42 26.6 26.6 0 017.12-7.12A26.3 26.3 0 0128 1.68M28 0a28 28 0 1028 28A28 28 0 0028 0" fill="#32373c" /> <path d="M4.67 28a23.33 23.33 0 0013.15 21L6.69 18.5a23.18 23.18 0 00-2 9.5m39.08-1.18a12.25 12.25 0 00-1.92-6.43c-1.18-1.93-2.29-3.55-2.29-5.48a4 4 0 013.91-4.14h.31A23.35 23.35 0 008.5 15.18h1.51c2.44 0 6.22-.3 6.22-.3a1 1 0 01.14 1.93s-1.26.15-2.67.22l8.5 25.27L27.31 27l-3.64-10c-1.25-.07-2.44-.22-2.44-.22a1 1 0 01.14-1.93s3.86.3 6.15.3c2.44 0 6.22-.3 6.22-.3a1 1 0 01.15 1.93s-1.27.15-2.67.22l8.43 25.08 2.41-7.63c1.06-3.33 1.69-5.69 1.69-7.69M28.41 30l-7 20.34a23.13 23.13 0 006.59.95A23.4 23.4 0 0035.75 50a3.24 3.24 0 01-.17-.32zm20.07-13.19a17.92 17.92 0 01.15 2.39 22 22 0 01-1.77 8.36l-7.13 20.61a23.35 23.35 0 008.75-31.36" fill="#32373c" /> </svg> </div> </div> </div> </div> </div> <div class="a-card a-card--normal"> <div class="a-card__paddings"> <div class="iconable-block"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 56 56"><defs><style>.shortcode-cls-3{fill:#6d839b}</style></defs><path d="M3 17h50v29a4 4 0 0 1-4 4H7a4 4 0 0 1-4-4V17Z" fill="#fff"/><path d="M6.62 6h42.27A4.11 4.11 0 0 1 53 10.11V17H3V9.62A3.62 3.62 0 0 1 6.62 6Z" fill="#fbd88e"/><path class="shortcode-cls-3" d="M54 10.11A5.11 5.11 0 0 0 48.89 5H6.61A4.62 4.62 0 0 0 2 9.62V46a5 5 0 0 0 5 5h42.3a4.75 4.75 0 0 0 4.7-4.74ZM6.61 7h42.28A3.11 3.11 0 0 1 52 10.11V16H4V9.62A2.61 2.61 0 0 1 6.61 7ZM49.3 49H7a3 3 0 0 1-3-3V18h48v28.26A2.74 2.74 0 0 1 49.3 49Z"/><path class="shortcode-cls-3" d="M8 10h3v3H8zM14 10h3v3h-3zM20 10h3v3h-3zM19 43h-6a1 1 0 0 1-1-1V25a1 1 0 0 1 1-1h6v2h-5v15h5ZM43 43h-6v-2h5V26h-5v-2h6a1 1 0 0 1 1 1v17a1 1 0 0 1-1 1Z"/><path class="shortcode-cls-3" transform="rotate(-70.81 28 33.5)" d="M15.82 32.5h24.35v2H15.82z"/></svg> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"> <?php echo esc_html__( 'Shortcodes', 'ecwid-shopping-cart' ); ?> </div> <div class="cta-block__content"> <?php echo esc_html__( 'Add shortcodes to the WordPress site to apply basic changes to your store appearance.', 'ecwid-shopping-cart' ); ?> </div> </div> <div class="cta-block__cta"> <a href="https://support.ecwid.com/hc/en-us/articles/360002137520?utm_source=wp-plugin" target="_blank" type="button" class="btn btn-default btn-medium"> <span><?php echo esc_html__( 'Learn More', 'ecwid-shopping-cart' ); ?></span> </a> </div> </div> </div> </div> </div> </div> <div class="a-card a-card--normal"> <div class="a-card__paddings"> <div class="iconable-block"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 56 56"><defs><style>.blocks-cls-2{fill:#6d839b}.blocks-cls-3{fill:#edf7fd}</style></defs><path d="M6.63 4H23v29H3V7.63A3.63 3.63 0 0 1 6.63 4Z" fill="#fbd88e"/><path class="blocks-cls-2" d="M24 34H2V7.63A4.64 4.64 0 0 1 6.63 3H24ZM4 32h18V5H6.63A2.63 2.63 0 0 0 4 7.63Z"/><path class="blocks-cls-3" d="M3 38h20v14H7a4 4 0 0 1-4-4V38Z"/><path class="blocks-cls-2" d="M24 53H7a5 5 0 0 1-5-5V37h22ZM4 39v9a3 3 0 0 0 3 3h15V39Z"/><path class="blocks-cls-3" d="M28 4h21.37A3.63 3.63 0 0 1 53 7.63V19H28V4Z"/><path class="blocks-cls-2" d="M54 20H27V3h22.37A4.64 4.64 0 0 1 54 7.63Zm-25-2h23V7.63A2.63 2.63 0 0 0 49.37 5H29Z"/><path d="M28 24h25v24.26A3.74 3.74 0 0 1 49.26 52H28V24Z" fill="#cbe87c"/><path class="blocks-cls-2" d="M49.26 53H27V23h27v25.26A4.75 4.75 0 0 1 49.26 53ZM29 51h20.26A2.74 2.74 0 0 0 52 48.26V25H29Z"/></svg> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"> <?php echo esc_html__( 'Store blocks for Gutenberg', 'ecwid-shopping-cart' ); ?> </div> <div class="cta-block__content"> <?php echo esc_html__( 'Add store plugin to the WordPress site in Gutenberg block editor, with no HTML or shortcodes.', 'ecwid-shopping-cart' ); ?> </div> </div> <div class="cta-block__cta"> <a href="https://support.ecwid.com/hc/en-us/articles/4489063443612?utm_source=wp-plugin" target="_blank" type="button" class="btn btn-default btn-medium"> <span><?php echo esc_html__( 'Learn More', 'ecwid-shopping-cart' ); ?></span> </a> </div> </div> </div> </div> </div> </div> <div class="a-card a-card--normal"> <div class="a-card__paddings"> <div class="iconable-block"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 56 56"><defs><style>.elementor-cls-2{fill:#fff}</style></defs><g id="_109-elementor" data-name="109-elementor"><path d="M51.4 2H4.6A2.59 2.59 0 0 0 2 4.6v46.8A2.59 2.59 0 0 0 4.6 54h46.8a2.59 2.59 0 0 0 2.6-2.6V4.6A2.59 2.59 0 0 0 51.4 2" fill="#d63362"/><path class="elementor-cls-2" d="M16.96 16.96h4.46v22.32h-4.46zM25.89 34.81h13.4v4.46h-13.4zM25.89 25.89h13.4v4.46h-13.4zM25.89 16.95h13.4v4.46h-13.4z"/></g></svg> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"> <?php echo esc_html__( 'Store blocks for Elementor', 'ecwid-shopping-cart' ); ?> </div> <div class="cta-block__content"> <?php echo esc_html__( 'Create a store from your website with the Ecwid plugin and Elementor page builder, with no coding required.', 'ecwid-shopping-cart' ); ?> </div> </div> <div class="cta-block__cta"> <a href="https://support.ecwid.com/hc/en-us/articles/4489039710364?utm_source=wp-plugin" target="_blank" type="button" class="btn btn-default btn-medium"> <span><?php echo esc_html__( 'Learn More', 'ecwid-shopping-cart' ); ?></span> </a> </div> </div> </div> </div> </div> </div> </div> <div class="a-card-stack"> <div class="a-card a-card--normal"> <div class="a-card__paddings"> <div class="feature-element has-icon"> <div class="feature-element__core"> <div class="feature-element__data"> <div class="feature-element__title"> <?php echo esc_html__( 'Advanced customization', 'ecwid-shopping-cart' ); ?> </div> <div class="feature-element__content"> <div class="feature-element__text"> <div class="titled-item"> <div class="titled-item__title"></div> <div class="titled-item__content"> <div> <?php echo esc_html__( 'Use advanced settings and Ecwid API capabilities to tailor the look and functionality of your site.', 'ecwid-shopping-cart' ); ?> </div> </div> </div> </div> </div> </div> <div class="feature-element__icon"> <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 56 56"><defs><style>.settings-cls-3{fill:#6d839b}</style></defs><path d="M37.73 31.73a17.75 17.75 0 0 0 1.78-4.21l5.2-.77a21.81 21.81 0 0 0 0-7.12l-5.19-.87a15.12 15.12 0 0 0-.64-2.18 16.89 16.89 0 0 0-1-2L41 10.31a21.92 21.92 0 0 0-5-5.09l-4.27 3.05a17.75 17.75 0 0 0-4.21-1.78l-.77-5.2a21.81 21.81 0 0 0-7.12 0l-.87 5.19a15.41 15.41 0 0 0-2.18.71 16.89 16.89 0 0 0-2 1l-4.27-3.12a21.88 21.88 0 0 0-5.09 5l3.05 4.29a17.86 17.86 0 0 0-1.78 4.2l-5.2.78a21.81 21.81 0 0 0 0 7.12l5.19.86a18 18 0 0 0 .69 2.19 18 18 0 0 0 .95 2L5 35.69a21.92 21.92 0 0 0 5 5.09l4.28-3.05a17.75 17.75 0 0 0 4.21 1.78l.77 5.2a21.81 21.81 0 0 0 7.12 0l.87-5.19a15.41 15.41 0 0 0 2.18-.71 18.08 18.08 0 0 0 2-.93M23 30a7 7 0 1 1 7-7 7 7 0 0 1-7 7Z" fill="#edf7fd"/><path d="M51.1 36.91a10.38 10.38 0 0 0-.63-1.3l2-2.69a13.88 13.88 0 0 0-3.17-3.23l-2.73 1.94a10.67 10.67 0 0 0-2.67-1.13l-.5-3.31a13.77 13.77 0 0 0-4.53 0l-.55 3.3a8.66 8.66 0 0 0-1.39.45 10.45 10.45 0 0 0-1.3.64l-2.69-2a13.88 13.88 0 0 0-3.23 3.17l1.94 2.73a11 11 0 0 0-1.13 2.67l-3.31.5a13.77 13.77 0 0 0 0 4.53l3.3.55a9.75 9.75 0 0 0 .44 1.39 10.35 10.35 0 0 0 .6 1.26l-2 2.69a13.88 13.88 0 0 0 3.17 3.23l2.73-1.94a10.67 10.67 0 0 0 2.67 1.13l.5 3.31a13.77 13.77 0 0 0 4.53 0l.55-3.3a8.66 8.66 0 0 0 1.39-.45 12.64 12.64 0 0 0 1.3-.59l2.69 2a13.88 13.88 0 0 0 3.23-3.17l-1.94-2.73a10.67 10.67 0 0 0 1.13-2.67l3.31-.5a13.77 13.77 0 0 0 0-4.53l-3.3-.55a10 10 0 0 0-.41-1.4ZM41 45a4 4 0 1 1 4-4 4 4 0 0 1-4 4Z" fill="#f9d485"/><path class="settings-cls-3" d="M31 23a8 8 0 1 0-8 8 8 8 0 0 0 8-8Zm-8 6a6 6 0 1 1 6-6 6 6 0 0 1-6 6ZM41 36a5 5 0 1 0 5 5 5 5 0 0 0-5-5Zm0 8a3 3 0 1 1 3-3 3 3 0 0 1-3 3Z"/><path class="settings-cls-3" d="m55.8 38.69-.12-.69-3.36-.55a8 8 0 0 0-.28-.87c-.12-.28-.24-.56-.38-.84l2-2.75-.41-.59a14.74 14.74 0 0 0-3.4-3.47l-.58-.43-2.8 2a11.84 11.84 0 0 0-1.72-.73l-.29-1.94 1.09-.15.12-.72a22.72 22.72 0 0 0 0-7.45l-.11-.7-5.24-.87a15.06 15.06 0 0 0-.54-1.69c-.22-.54-.47-1.07-.74-1.59l3.17-4.29-.42-.59a22.79 22.79 0 0 0-5.2-5.31L36 4l-4.35 3.1a18.5 18.5 0 0 0-3.25-1.37L27.63.42l-.72-.11a22.72 22.72 0 0 0-7.45 0l-.7.11-.88 5.26a16.66 16.66 0 0 0-1.68.58c-.54.23-1.07.47-1.59.75l-4.29-3.17-.59.41a22.84 22.84 0 0 0-5.31 5.21L4 10l3.1 4.36a18.19 18.19 0 0 0-1.37 3.25l-5.29.79-.12.72a22.66 22.66 0 0 0 0 7.44l.11.71 5.26.88a17.31 17.31 0 0 0 .57 1.67c.2.52.44 1 .69 1.53l-3.18 4.33.42.59a22.79 22.79 0 0 0 5.2 5.31L10 42l4.35-3.1a18.5 18.5 0 0 0 3.25 1.37l.79 5.3.72.11a22.54 22.54 0 0 0 7.45 0l.7-.11.28-1.32 2.17.36c.09.3.2.59.31.88s.23.54.36.8l-2 2.76.41.59a14.74 14.74 0 0 0 3.4 3.47l.58.43 2.8-2a11.84 11.84 0 0 0 1.72.73l.51 3.4.71.12a14.86 14.86 0 0 0 4.86 0l.7-.12.57-3.37c.3-.1.59-.2.86-.31s.57-.23.85-.36l2.77 2 .59-.41a14.93 14.93 0 0 0 3.47-3.4l.43-.58-2-2.8a11.84 11.84 0 0 0 .73-1.72l3.4-.51.12-.71a14.68 14.68 0 0 0-.06-4.81Zm-35.67 5.14-.76-5.12-.63-.17a15.89 15.89 0 0 1-4-1.68l-.56-.32-4.22 3a21.69 21.69 0 0 1-3.72-3.84l3.07-4.15L9 31a18.65 18.65 0 0 1-.9-1.86 17.1 17.1 0 0 1-.65-2.07l-.16-.63-5.12-.86a21 21 0 0 1 0-5.37l5.12-.76.17-.63a16.27 16.27 0 0 1 1.68-4l.33-.56-3-4.22a21.36 21.36 0 0 1 3.83-3.73l4.16 3.07.54-.32a15.09 15.09 0 0 1 2-.94 13.52 13.52 0 0 1 2-.67l.64-.16.86-5.12a21 21 0 0 1 5.37 0l.76 5.12.63.17a15.89 15.89 0 0 1 4 1.68l.56.32 4.22-3a21.69 21.69 0 0 1 3.76 3.84l-3.07 4.16.27.54a16 16 0 0 1 .93 1.91 13.36 13.36 0 0 1 .6 2.05l.15.66 5.14.85a21.06 21.06 0 0 1 0 5.38l-1.35.2a14.6 14.6 0 0 0-3.79.13l-.7.12-.57 3.37c-.3.1-.6.2-.89.32s-.56.25-.84.39l-2.75-2-.59.41a14.93 14.93 0 0 0-3.47 3.4l-.43.58 2 2.81a11.72 11.72 0 0 0-.73 1.71l-3.4.51-.12.72a15.29 15.29 0 0 0-.2 2.34l-.5 3a21 21 0 0 1-5.36-.03Zm33.79-1.32-3.21.49-.17.62a10.28 10.28 0 0 1-1 2.44l-.33.56 1.89 2.65a13.58 13.58 0 0 1-2 2l-2.6-1.92-.56.3a12.27 12.27 0 0 1-1.21.55 9.55 9.55 0 0 1-1.25.4l-.64.16-.54 3.22a12.31 12.31 0 0 1-2.78 0L39 50.71l-.62-.17a9.88 9.88 0 0 1-2.44-1l-.55-.33-2.66 1.89a13.11 13.11 0 0 1-2-2l1.93-2.61-.31-.57a9 9 0 0 1-.55-1.13 9.82 9.82 0 0 1-.4-1.27l-.16-.64-3.22-.54a11.75 11.75 0 0 1 0-2.78l3.21-.48.17-.63a10.21 10.21 0 0 1 1-2.43l.33-.56-1.89-2.65a12.65 12.65 0 0 1 2-1.95l2.62 1.93.56-.33c.39-.21.79-.41 1.19-.58a9.55 9.55 0 0 1 1.25-.4l.64-.16.54-3.22a12.31 12.31 0 0 1 2.78 0l.58 3.19.62.17a9.88 9.88 0 0 1 2.44 1l.55.33 2.66-1.89a13.11 13.11 0 0 1 2 2l-1.93 2.62.32.56a9.14 9.14 0 0 1 .57 1.18 8.84 8.84 0 0 1 .37 1.24l.14.66 3.24.54a11.84 11.84 0 0 1-.06 2.81Z"/></svg> </div> </div> </div> </div> </div> <?php if ( current_user_can( 'manage_options' ) ) { ?> <div class="a-card a-card--normal"> <div class="a-card__paddings"> <div class="iconable-block"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 56 56"><defs><style>.hidden-cls-2{fill:#6d839b}</style></defs><rect x="3" y="4" width="50" height="48" rx="4" fill="#edf7fd"/><path class="hidden-cls-2" d="M49 53H7a5 5 0 0 1-5-5V8a5 5 0 0 1 5-5h42a5 5 0 0 1 5 5v40a5 5 0 0 1-5 5ZM7 5a3 3 0 0 0-3 3v40a3 3 0 0 0 3 3h42a3 3 0 0 0 3-3V8a3 3 0 0 0-3-3Z"/><rect x="10" y="21" width="10" height="7" rx="2" fill="#bcdbf2"/><rect x="23" y="29" width="10" height="7" rx="2" fill="#cbe87c"/><rect x="36" y="17" width="10" height="7" rx="2" fill="#fbd88e"/><path class="hidden-cls-2" d="M18 20h-1v-5a2 2 0 0 0-4 0v5h-1a3 3 0 0 0-3 3v3a3 3 0 0 0 3 3h1v12a2 2 0 0 0 4 0V29h1a3 3 0 0 0 3-3v-3a3 3 0 0 0-3-3Zm1 6a1 1 0 0 1-1 1h-6a1 1 0 0 1-1-1v-3a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1ZM31 28h-1V15a2 2 0 0 0-4 0v13h-1a3 3 0 0 0-3 3v3a3 3 0 0 0 3 3h1v4a2 2 0 0 0 4 0v-4h1a3 3 0 0 0 3-3v-3a3 3 0 0 0-3-3Zm1 6a1 1 0 0 1-1 1h-6a1 1 0 0 1-1-1v-3a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1ZM44 16h-1v-1a2 2 0 0 0-4 0v1h-1a3 3 0 0 0-3 3v3a3 3 0 0 0 3 3h1v16a2 2 0 0 0 4 0V25h1a3 3 0 0 0 3-3v-3a3 3 0 0 0-3-3Zm1 6a1 1 0 0 1-1 1h-6a1 1 0 0 1-1-1v-3a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1Z"/></svg> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"> <?php echo esc_html__( 'Advanced settings', 'ecwid-shopping-cart' ); ?> </div> <div class="cta-block__content"> <?php echo esc_html__( 'Change functionality of the plugin with advanced settings, like dashboard visibility for webmasters, display of store components, clean URLs, and more.', 'ecwid-shopping-cart' ); ?> </div> </div> <div class="cta-block__cta"> <a href="<?php echo esc_url( admin_url( 'admin.php?page=ec-params' ) ); ?>" target="_blank" type="button" class="btn btn-default btn-medium"> <span><?php echo esc_html__( 'Go to Settings', 'ecwid-shopping-cart' ); ?></span> </a> </div> </div> </div> </div> </div> </div> <?php }//end if ?> <div class="a-card a-card--normal"> <div class="a-card__paddings"> <div class="iconable-block"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 56 56"><defs><style>.api-settings-cls-3{fill:#6d839b}</style></defs><path d="M47.49 20.12a22.58 22.58 0 0 0-1.23-2.52l3.83-5.18A27 27 0 0 0 44 6.18l-5.29 3.75a21.36 21.36 0 0 0-5.16-2.19l-.95-6.38a26.7 26.7 0 0 0-8.74 0L22.8 7.72a19.53 19.53 0 0 0-2.68.88 20.9 20.9 0 0 0-2.52 1.22L12.42 6a27 27 0 0 0-6.24 6.11l3.75 5.26a21.53 21.53 0 0 0-2.19 5.16l-6.38 1a26.64 26.64 0 0 0 0 8.73l6.36 1.06A21.56 21.56 0 0 0 8.58 36a20.77 20.77 0 0 0 1.16 2.4l-3.83 5.18A27 27 0 0 0 12 49.82l5.26-3.75a21.36 21.36 0 0 0 5.16 2.19l.95 6.38a26.7 26.7 0 0 0 8.74 0l1.06-6.36a19.53 19.53 0 0 0 2.68-.88 21.87 21.87 0 0 0 2.52-1.14l5.18 3.83A27 27 0 0 0 49.82 44l-3.75-5.26a21.36 21.36 0 0 0 2.19-5.16l6.38-.95a26.7 26.7 0 0 0 0-8.74l-6.36-1.09a19.16 19.16 0 0 0-.79-2.68Z" fill="#ecf5fe"/><path class="api-settings-cls-3" d="M27.77 56a27.59 27.59 0 0 1-4.53-.37 1 1 0 0 1-.82-.84L21.55 49a23.12 23.12 0 0 1-4.2-1.78l-4.74 3.37a1 1 0 0 1-1.17 0 27.66 27.66 0 0 1-6.35-6.47 1 1 0 0 1 0-1.17l3.45-4.67A20.27 20.27 0 0 1 6.9 34.1l-5.7-.89a1 1 0 0 1-.83-.82 27.61 27.61 0 0 1 0-9.07 1 1 0 0 1 .84-.82L7 21.64a22.92 22.92 0 0 1 1.78-4.21l-3.41-4.74a1 1 0 0 1 0-1.17 27.62 27.62 0 0 1 6.47-6.34 1 1 0 0 1 1.17 0l4.66 3.45a22.72 22.72 0 0 1 2.06-1 20.76 20.76 0 0 1 2.18-.75l1-5.73a1 1 0 0 1 .79-.78 28.1 28.1 0 0 1 9.06 0 1 1 0 0 1 .82.84L34.45 7a23.12 23.12 0 0 1 4.2 1.78l4.74-3.37a1 1 0 0 1 1.17 0 27.66 27.66 0 0 1 6.35 6.47 1 1 0 0 1 0 1.17l-3.44 4.66a22.63 22.63 0 0 1 1 2.06 19.88 19.88 0 0 1 .68 2.15l5.7 1a1 1 0 0 1 .83.82 27.55 27.55 0 0 1 0 9.06 1 1 0 0 1-.84.82l-5.84.83a23.12 23.12 0 0 1-1.78 4.2l3.37 4.74a1 1 0 0 1 0 1.17 27.86 27.86 0 0 1-6.47 6.35 1 1 0 0 1-1.17 0l-4.65-3.48a22.21 22.21 0 0 1-2.06.91 21.1 21.1 0 0 1-2.16.74l-1 5.73a1 1 0 0 1-.82.82 27.5 27.5 0 0 1-4.49.37Zm-3.49-2.24a25.57 25.57 0 0 0 7 0l.94-5.65a1 1 0 0 1 .75-.8 19.84 19.84 0 0 0 2.54-.83 20.65 20.65 0 0 0 2.43-1.1 1 1 0 0 1 1.06.08l4.59 3.39a25.74 25.74 0 0 0 5-4.89l-3.32-4.67a1 1 0 0 1 0-1.09 20 20 0 0 0 2.08-4.91 1 1 0 0 1 .82-.73l5.65-.84a25.57 25.57 0 0 0 0-7l-5.65-.94a1 1 0 0 1-.87-.78 19.85 19.85 0 0 0-.74-2.53 21.85 21.85 0 0 0-1.17-2.38 1 1 0 0 1 .07-1.09l3.39-4.59a25.74 25.74 0 0 0-4.89-5l-4.67 3.32a1 1 0 0 1-1.09 0 20 20 0 0 0-4.91-2.08 1 1 0 0 1-.73-.82l-.84-5.65a25.57 25.57 0 0 0-7 0l-.94 5.65a1 1 0 0 1-.75.8 19.84 19.84 0 0 0-2.54.83 20.48 20.48 0 0 0-2.4 1.17 1 1 0 0 1-1.09 0l-4.59-3.4a25.79 25.79 0 0 0-5 4.9l3.32 4.66a1 1 0 0 1 0 1.09 19.94 19.94 0 0 0-2.02 4.92 1 1 0 0 1-.82.72l-5.65.85a25.5 25.5 0 0 0 0 7l5.65.95a1 1 0 0 1 .8.74 21.17 21.17 0 0 0 .82 2.56 19.54 19.54 0 0 0 1.1 2.31 1 1 0 0 1-.07 1.07l-3.39 4.58a25.74 25.74 0 0 0 4.89 5l4.67-3.32a1 1 0 0 1 1.09 0 20 20 0 0 0 4.91 2.08 1 1 0 0 1 .73.82Z"/><path class="api-settings-cls-3" d="M20.59 21h-3.67l-5.34 14H15l.86-2.37h5.92l.81 2.37H26Zm-4 9 2.16-6 2.15 6ZM33.56 21H27.1v14H30v-5h3.52a4.34 4.34 0 0 0 4.62-4.05 3.09 3.09 0 0 0 0-.43A4.32 4.32 0 0 0 34.05 21a2.66 2.66 0 0 0-.49 0Zm-.4 6.36H30v-3.73h3.12a1.87 1.87 0 0 1 2 1.73 1.84 1.84 0 0 1-1.72 2ZM40 21v14h3V21Z"/></svg> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"> <?php echo esc_html__( 'Customization with API', 'ecwid-shopping-cart' ); ?> </div> <div class="cta-block__content"> <?php echo esc_html__( 'Use the powerful Ecwid API to customize your store design, layout, and functionality.', 'ecwid-shopping-cart' ); ?> </div> </div> <div class="cta-block__cta"> <a href="https://api-docs.ecwid.com/reference/customize-appearance?utm_source=wp-plugin" target="_blank" type="button" class="btn btn-default btn-medium"> <span><?php echo esc_html__( 'Learn More', 'ecwid-shopping-cart' ); ?></span> </a> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div class="named-area"> <div class="named-area__header"> <div class="named-area__titles"> <div class="named-area__title"> <?php echo esc_html__( 'Apps and integrations', 'ecwid-shopping-cart' ); ?> </div> <div class="named-area__subtitle"> <?php echo esc_html__( 'Integrate your store with external services to enhance its functionality.', 'ecwid-shopping-cart' ); ?> </div> </div> <div class="named-area__description"></div> <div class="named-area__additional"></div> </div> <div class="named-area__body"> <div class="a-card a-card--normal"> <div class="a-card__paddings"> <div class="iconable-block"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 56 56"><defs><style>.woo-cls-2{fill:#6d839b}</style></defs><path fill="#fbd88e" d="M1 1v9h3v32h44V10h3V1H1z"/><path class="woo-cls-2" d="M51 0H1a1 1 0 0 0-1 1v9a1 1 0 0 0 1 1h2v31a1 1 0 0 0 1 1h44a1 1 0 0 0 1-1V11h2a1 1 0 0 0 1-1V1a1 1 0 0 0-1-1Zm-4 41H5V11h42Zm3-32H2V2h48Z"/><path d="M20.3 36.53a3.35 3.35 0 0 1 3-2h29.29A3.34 3.34 0 0 1 56 37.91v11.22a3.36 3.36 0 0 1-3.17 3.23H42.16l1.44 3.54c-2.13-1.17-4.21-2.37-6.35-3.52h-14A3.37 3.37 0 0 1 20 49.13v-11a4 4 0 0 1 .28-1.63" fill-rule="evenodd" fill="#945c87"/><path d="M34.59 36.8a1.3 1.3 0 0 1 2 .26 1.21 1.21 0 0 1 0 1.15A17.11 17.11 0 0 0 35.27 43a31.15 31.15 0 0 0-.52 6.39 1.24 1.24 0 0 1-.81 1.34 1.56 1.56 0 0 1-1.42-.63 15.3 15.3 0 0 1-3.15-6.14l-1.94 3.89a9.16 9.16 0 0 1-1.63 2.49c-.3.3-.81.57-1.2.27a4.44 4.44 0 0 1-1-2 87.67 87.67 0 0 1-2-9.9 1.24 1.24 0 0 1 .65-1.44 1.43 1.43 0 0 1 1.4.14 1.47 1.47 0 0 1 .39.94 80 80 0 0 0 1.47 7.68c1.06-2 2.12-4 3.18-6.07a2 2 0 0 1 .64-.78 1 1 0 0 1 1.29.13 2 2 0 0 1 .44 1.06 28.71 28.71 0 0 0 1.36 4.9 28.71 28.71 0 0 1 1.47-7.06 5 5 0 0 1 .69-1.34m6 1.29a3.7 3.7 0 0 1 3.17 1.11 4.93 4.93 0 0 1 1.11 2.6 8 8 0 0 1-.86 4.67 5.21 5.21 0 0 1-1.83 2.09 3.72 3.72 0 0 1-3.92-.12 4.33 4.33 0 0 1-1.65-2.76A7.58 7.58 0 0 1 38.72 39a3.5 3.5 0 0 1 1.87-.86m.23 2.47a2.52 2.52 0 0 0-1.2 1.15 4.37 4.37 0 0 0-.36 4.07 1.23 1.23 0 0 0 .82.78 1.42 1.42 0 0 0 1.11-.44 4.13 4.13 0 0 0 1.19-2.32 4 4 0 0 0-.48-2.9 1 1 0 0 0-1.08-.34m9-2.47a3.7 3.7 0 0 1 3.12 1 4.87 4.87 0 0 1 1.18 2.8 7.93 7.93 0 0 1-.87 4.56 5.16 5.16 0 0 1-1.87 2.14 3.78 3.78 0 0 1-3.79-.05A3.92 3.92 0 0 1 46 46.51a7.62 7.62 0 0 1 1.71-7.41 3.9 3.9 0 0 1 2.09-1m.2 2.46a2.78 2.78 0 0 0-1.27 1.31 4.32 4.32 0 0 0-.23 4 1.08 1.08 0 0 0 .86.71 1.62 1.62 0 0 0 1.17-.58 4.17 4.17 0 0 0 1.1-2.56 3.71 3.71 0 0 0-.55-2.55 1 1 0 0 0-1.08-.33" fill="#fff" fill-rule="evenodd"/><path class="woo-cls-2" d="M29 31v-8h3l-6-7-6 7h3v8h6z"/></svg> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"> <?php echo esc_html__( 'Import product catalog from WooCommerce', 'ecwid-shopping-cart' ); ?> </div> <div class="cta-block__content"> <?php echo esc_html__( 'If you want to move your WooCommerce store to Ecwid or have another store outside WooCommerce, use the Ecwid migration tool to import your products in bulk.', 'ecwid-shopping-cart' ); ?> </div> </div> <div class="cta-block__cta"> <?php if ( class_exists( 'woocommerce' ) && class_exists( 'Ecwid_Importer' ) ) { ?> <a href="<?php echo esc_url( admin_url( 'admin.php?page=ec-store-import-woocommerce' ) ); ?>" target="_blank" type="button" class="btn btn-default btn-medium"> <span><?php echo esc_html__( 'Go to Import Page', 'ecwid-shopping-cart' ); ?></span> </a> <?php } else { ?> <a href="https://support.ecwid.com/hc/en-us/articles/360000049040?utm_source=wp-plugin" target="_blank" type="button" class="btn btn-default btn-medium"> <span><?php echo esc_html__( 'Learn More', 'ecwid-shopping-cart' ); ?></span> </a> <?php } ?> </div> </div> </div> </div> </div> </div> <div class="a-card a-card--normal"> <div class="a-card__paddings"> <div class="iconable-block"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 56 56"><defs><style>.app-market-cls-5{fill:#6d839b}</style></defs><rect x="2.98" y="3" width="25" height="25" rx="4" fill="#cbe87c"/><rect x="3" y="28" width="25" height="25" rx="4" fill="#cfe7ff"/><rect x="28" y="28" width="25" height="25" rx="4" fill="#fbd88e"/><rect x="28" y="3" width="25" height="25" rx="4" fill="#ecf5fe"/><path class="app-market-cls-5" d="M17.2 9.25h-3.46l-5 13h3.16l.81-2.2h5.56l.8 2.2h3.17Zm-3.76 8.35 2-5.58 2 5.58ZM43.1 9.22a3.53 3.53 0 0 0-.46 0h-6.07v13h2.76v-4.63h3.31A4.07 4.07 0 0 0 47 13.82v-.4a4.06 4.06 0 0 0-3.9-4.2Zm-.56 6h-3.21v-3.53h2.94a1.76 1.76 0 1 1 .27 3.5ZM18.57 34.18a3.87 3.87 0 0 0-1.27 0h-6.07v13H14v-4.64h3.3a4.23 4.23 0 1 0 1.27-8.36Zm-1.6 6H14v-3.57h3a1.77 1.77 0 1 1 0 3.53ZM34.44 45.29l1.49-2.11a5.71 5.71 0 0 0 1.88 1.3 5.79 5.79 0 0 0 2.25.45c1.51 0 2.25-.7 2.25-1.45 0-2.29-7.47-.72-7.47-5.59 0-2.11 1.86-4 4.91-4a7.26 7.26 0 0 1 5.07 1.8l-1.55 2a5.55 5.55 0 0 0-3.77-1.41c-1.18 0-1.85.53-1.85 1.3 0 2.06 7.4.68 7.4 5.53 0 2.38-1.69 4.16-5.19 4.16a7.38 7.38 0 0 1-5.42-1.98Z"/><path class="app-market-cls-5" d="M54 24V7a5 5 0 0 0-5-5H32a5 5 0 0 0-4 2 5 5 0 0 0-4-2H7a5 5 0 0 0-5 5v17a5 5 0 0 0 2 4 5 5 0 0 0-2 4v17a5 5 0 0 0 5 5h17a5 5 0 0 0 4-2 5 5 0 0 0 4 2h17a5 5 0 0 0 5-5V32a5 5 0 0 0-2-4 5 5 0 0 0 2-4Zm-25 4ZM4 24V7a3 3 0 0 1 3-3h17a3 3 0 0 1 3 3v17a3 3 0 0 1-3 3H7a3 3 0 0 1-3-3Zm23 25a3 3 0 0 1-3 3H7a3 3 0 0 1-3-3V32a3 3 0 0 1 3-3h17a3 3 0 0 1 3 3Zm1-20Zm24 3v17a3 3 0 0 1-3 3H32a3 3 0 0 1-3-3V32a3 3 0 0 1 3-3h17a3 3 0 0 1 3 3Zm0-8a3 3 0 0 1-3 3H32a3 3 0 0 1-3-3V7a3 3 0 0 1 3-3h17a3 3 0 0 1 3 3Z"/></svg> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"> <?php echo esc_html__( 'App Market', 'ecwid-shopping-cart' ); ?> </div> <div class="cta-block__content"> <?php echo esc_html__( 'Enhance your store functionality, add new features, or connect backend systems with powerful apps, tools, and extensions.', 'ecwid-shopping-cart' ); ?> </div> </div> <div class="cta-block__cta"> <?php if ( ecwid_is_demo_store() ) { $app_market_link = 'https://www.ecwid.com/apps?utm_source=wp-plugin'; } else { $app_market_link = admin_url( 'admin.php?page=ec-store-admin-appmarket' ); } ?> <a href="<?php echo esc_url( $app_market_link ); ?>" target="_blank" type="button" class="btn btn-default btn-medium"> <span><?php echo esc_html__( 'Go to App Market', 'ecwid-shopping-cart' ); ?></span> </a> </div> </div> </div> </div> </div> </div> <div class="a-card a-card--normal"> <div class="a-card__paddings"> <div class="iconable-block"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <svg data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 56 56"><rect x="2" y="2" width="52" height="52" rx="4" fill="#ff4a00"/><path d="M33 28a11.94 11.94 0 0 1-.77 4.22A11.94 11.94 0 0 1 28 33a11.84 11.84 0 0 1-4.22-.77A11.94 11.94 0 0 1 23 28a11.94 11.94 0 0 1 .77-4.22A11.94 11.94 0 0 1 28 23a11.94 11.94 0 0 1 4.22.77A11.94 11.94 0 0 1 33 28Zm14.72-3.34H36.05l8.25-8.26a20.22 20.22 0 0 0-2.16-2.55 20.22 20.22 0 0 0-2.55-2.16L31.33 20V8.28A19.49 19.49 0 0 0 28 8a20.19 20.19 0 0 0-3.32.28V20l-8.27-8.3a20.22 20.22 0 0 0-2.55 2.16 20.15 20.15 0 0 0-2.15 2.55L20 24.67H8.28S8 26.86 8 28a20.19 20.19 0 0 0 .28 3.32H20l-8.3 8.27a20.25 20.25 0 0 0 4.71 4.71l8.26-8.25v11.67A19.32 19.32 0 0 0 28 48a19.32 19.32 0 0 0 3.32-.28V36.05l8.26 8.25a19.42 19.42 0 0 0 2.55-2.16 20.22 20.22 0 0 0 2.16-2.55l-8.25-8.26h11.68A20.1 20.1 0 0 0 48 28a20.1 20.1 0 0 0-.28-3.32Z" fill="#fff"/></svg> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"> <?php echo esc_html__( 'Zapier integration', 'ecwid-shopping-cart' ); ?> </div> <div class="cta-block__content"> <?php echo esc_html__( 'Connect thousands of popular apps to your online store with Zapier integration and streamline store management workflows without writing code.', 'ecwid-shopping-cart' ); ?> </div> </div> <div class="cta-block__cta"> <a href="https://www.ecwid.com/blog/how-to-connect-ecwid-with-2000-online-business-tools.html?utm_source=wp-plugin" target="_blank" type="button" class="btn btn-default btn-medium"> <span><?php echo esc_html__( 'Learn More', 'ecwid-shopping-cart' ); ?></span> </a> </div> </div> </div> </div> </div> </div> <div class="a-card a-card--normal"> <div class="a-card__paddings"> <div class="iconable-block"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 56 56"><defs><style>.api-cls-3{fill:#6d839b}</style></defs><path d="M53 41H8a5 5 0 0 0-5 5 5 5 0 0 0 5 5h45" fill="#fff"/><path d="M8 1a5 5 0 0 0-5 5v39h.1A5 5 0 0 1 8 41h45V1Z" fill="#edf7fd"/><path class="api-cls-3" d="M23.87 14h-3.68l-5.33 13.76h3.37l.87-2.34H25l.85 2.34h3.37Zm-4 8.88L22 16.89l2.15 5.94ZM36.83 13.92h-6.46V27.8h2.94v-5h3.52a4.33 4.33 0 0 0 4.63-4 3.09 3.09 0 0 0 0-.43 4.31 4.31 0 0 0-4.14-4.47Zm-.39 6.32h-3.13v-3.69h3.13a1.86 1.86 0 0 1 2 1.71 1.83 1.83 0 0 1-1.71 2ZM42.53 13.92V27.8h2.94V13.92Z"/><path fill="#fe948d" d="M33 45h12v10l-6-4-6 4V45z"/><path class="api-cls-3" d="M54 41.92V0H8a6 6 0 0 0-6 6v40.08A6 6 0 0 0 8 52h24v3a1 1 0 0 0 .53.88 1 1 0 0 0 1-.05L39 52.2l5.45 3.63A1 1 0 0 0 46 55v-3h8v-5h-8v-2a1 1 0 0 0-1-1H33a1 1 0 0 0-1 1v2H8a4 4 0 0 1-3.69-2.54A4 4 0 0 1 8 42h45ZM34 46h10v7.13l-4.45-3a1 1 0 0 0-1.1 0l-4.45 3ZM8 40a6 6 0 0 0-4 1.54V6a4 4 0 0 1 4-4Zm2-38h42v38H10Z"/></svg> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"> <?php echo esc_html__( 'API for catalog and sales', 'ecwid-shopping-cart' ); ?> </div> <div class="cta-block__content"> <?php echo esc_html__( 'Use a powerful RESTful API to manage your store, mass update your product catalog and orders.', 'ecwid-shopping-cart' ); ?> </div> </div> <div class="cta-block__cta"> <a href="https://api-docs.ecwid.com/reference/rest-api?utm_source=wp-plugin" target="_blank" type="button" class="btn btn-default btn-medium"> <span><?php echo esc_html__( 'Learn More', 'ecwid-shopping-cart' ); ?></span> </a> </div> </div> </div> </div> </div> </div> </div> </div> <div class="named-area"> <div class="named-area__header"> <div class="named-area__titles"> <div class="named-area__title"> <?php echo esc_html__( 'Partnership', 'ecwid-shopping-cart' ); ?> </div> <div class="named-area__subtitle"> <?php echo wp_kses_post( sprintf( __( 'Join our partnership program to build and scale your offering in ecommerce. <a %s>More about partnership</a>', 'ecwid-shopping-cart' ), 'href="https://www.ecwid.com/partners/?utm_source=wp-plugin" target="_blank"' ) ); ?> </div> </div> <div class="named-area__description"></div> <div class="named-area__additional"></div> </div> <div class="named-area__body"> <div class="a-card a-card--normal"> <div class="a-card__paddings"> <div class="iconable-block"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 56 56"><defs><style>.affiliate-cls-2{fill:#fbd88e}.affiliate-cls-3{fill:#6d839b}</style></defs><circle cx="28" cy="28" r="21" fill="#ecf5fe"/><path class="affiliate-cls-2" d="M28 12a7.31 7.31 0 0 1 7 7.57v2.16c0 4.19-3.13 8.69-7 8.69s-7-4.42-7-8.68v-2.16A7.3 7.3 0 0 1 28 12"/><path class="affiliate-cls-3" d="M28 31.44c-4.58 0-8-5.12-8-9.7v-2.16A8.31 8.31 0 0 1 28 11a8.31 8.31 0 0 1 8 8.57v2.17c0 4.58-3.42 9.7-8 9.7ZM28 13a6.31 6.31 0 0 0-6 6.57v2.17c0 3.56 2.62 7.7 6 7.7s6-4.14 6-7.7v-2.16A6.32 6.32 0 0 0 28 13Z"/><path class="affiliate-cls-2" d="M43.38 42.27v-2.5a5.55 5.55 0 0 0-3.5-5.15l-6.08-2.17h-.06a8.34 8.34 0 0 1-5.74 2 8.39 8.39 0 0 1-5.72-2l-.08-.07-6.08 2.17a5.55 5.55 0 0 0-3.5 5.15v2.5A20.94 20.94 0 0 0 28 49a20.94 20.94 0 0 0 15.38-6.73Z"/><path class="affiliate-cls-3" d="M28 50a22.06 22.06 0 0 1-16.11-7l-.27-.29v-2.94a6.51 6.51 0 0 1 4.13-6.08l6.71-2.4.45.45A7.42 7.42 0 0 0 28 33.49a7.41 7.41 0 0 0 5-1.71l.53-.53.56.26 6.08 2.17a6.52 6.52 0 0 1 4.16 6.09v2.89l-.27.29A22.06 22.06 0 0 1 28 50Zm-14.38-8.13a19.93 19.93 0 0 0 28.76 0v-2.1a4.53 4.53 0 0 0-2.86-4.22l-5.5-2a9.54 9.54 0 0 1-6 1.9 9.64 9.64 0 0 1-6-1.9l-5.53 2a4.52 4.52 0 0 0-2.83 4.21Z"/><path class="affiliate-cls-3" d="M51 46a5 5 0 0 0-2.75.83l-4-4a22 22 0 0 0 0-29.66l4-4a5 5 0 1 0-1.42-1.42l-4 4a22 22 0 0 0-29.66 0l-4-4a5 5 0 1 0-1.42 1.42l4 4a22 22 0 0 0 0 29.66l-4 4a5 5 0 1 0 1.42 1.42l4-4a22 22 0 0 0 29.66 0l4 4A5 5 0 1 0 51 46Zm-15.66.59-.21.08c-.49.18-1 .36-1.49.51l-.51.13c-.42.11-.85.23-1.28.31s-.62.1-.93.14-.63.11-1 .14c-.65.06-1.31.1-2 .1s-1.32 0-2-.1c-.32 0-.63-.09-1-.14s-.62-.08-.93-.14-.86-.2-1.28-.31l-.51-.13c-.51-.15-1-.33-1.49-.51l-.21-.08A20 20 0 0 1 9.41 35.34c0-.07-.05-.14-.08-.2-.18-.5-.36-1-.51-1.5l-.13-.5c-.11-.43-.23-.86-.31-1.29s-.1-.62-.14-.93-.11-.63-.14-1C8 29.32 8 28.66 8 28s0-1.32.1-2c0-.32.09-.63.14-1s.08-.62.14-.93.2-.86.31-1.29l.13-.5c.15-.51.33-1 .51-1.5 0-.06.05-.13.08-.2A20 20 0 0 1 20.66 9.41l.21-.08c.49-.18 1-.36 1.49-.51l.51-.13c.42-.11.85-.23 1.28-.31s.62-.1.93-.14.63-.11 1-.14C26.68 8 27.34 8 28 8s1.32 0 2 .1c.32 0 .63.09 1 .14s.62.08.93.14.86.2 1.28.31l.51.13c.51.15 1 .33 1.49.51l.21.08a20 20 0 0 1 11.17 11.25c0 .07 0 .14.08.2.18.5.36 1 .51 1.5 0 .16.08.34.13.5.11.43.23.86.31 1.29s.1.62.14.93.11.63.14 1c.06.65.1 1.31.1 2s0 1.32-.1 2c0 .32-.09.63-.14 1s-.08.62-.14.93-.2.86-.31 1.29l-.13.5c-.15.51-.33 1-.51 1.5 0 .06-.05.13-.08.2a20 20 0 0 1-11.25 11.09Z"/></svg> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"> <?php echo esc_html__( 'Become an Ecwid Referral Partner', 'ecwid-shopping-cart' ); ?> </div> <div class="cta-block__content"> <?php echo esc_html__( 'Recommend Ecwid within your network and get a 20% lifetime commission for every referral that creates an account through your link.', 'ecwid-shopping-cart' ); ?> </div> </div> <div class="cta-block__cta"> <a href="https://www.ecwid.com/partners/referral?utm_source=wp-plugin" target="_blank" type="button" class="btn btn-default btn-medium"> <span><?php echo esc_html__( 'Learn More', 'ecwid-shopping-cart' ); ?></span> </a> </div> </div> </div> </div> </div> </div> <div class="a-card a-card--normal"> <div class="a-card__paddings"> <div class="iconable-block"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 56 56"><path d="M16.33 22.28l-13.2 13.2a3.78 3.78 0 000 5.35l8.71 8.71a3.78 3.78 0 005.35 0l13.2-13.19" fill="#fe948d"/><path d="M50.94 30.85L22.19 2.09l-6.72 19.64-13 13A4.74 4.74 0 001 38.15a4.79 4.79 0 001.4 3.39l8.71 8.71a4.75 4.75 0 003.38 1.4 4.79 4.79 0 003.39-1.4l4.6-4.6L32.87 56l5.44-5.44-10.37-10.35 3.1-3.1zM32.87 53.19L24 44.28l2.61-2.62 8.91 8.92zM23 5.77l24.2 24.17-16.52 5.19L17.51 22zm-6.52 43.06a2.74 2.74 0 01-2 .82 2.77 2.77 0 01-2-.82l-8.7-8.71a2.74 2.74 0 01-.82-2 2.77 2.77 0 01.82-2l12.6-12.47L29 36.3zM36.32 12.55a2 2 0 011.4.58l2.46 2.47a2 2 0 010 2.79l1.42 1.42a4 4 0 000-5.62l-2.47-2.47a4 4 0 00-2.81-1.17 4 4 0 00-2.81 1.17l1.41 1.41a2 2 0 011.4-.58zM36 0h2v7h-2zM44.801 7.98l4.64-5.08 1.477 1.348-4.64 5.08zM47 15h8v2h-8z" fill="#7e94aa"/></svg> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"> <?php echo esc_html__( 'Promote your services as Ecwid Expert', 'ecwid-shopping-cart' ); ?> </div> <div class="cta-block__content"> <?php echo esc_html__( 'Join our community of experts and promote your services to clients who need help with store setup, design, or customization.', 'ecwid-shopping-cart' ); ?> </div> </div> <div class="cta-block__cta"> <a href="https://www.ecwid.com/experts?utm_source=wp-plugin" target="_blank" type="button" class="btn btn-default btn-medium"> <span><?php echo esc_html__( 'Learn More', 'ecwid-shopping-cart' ); ?></span> </a> </div> </div> </div> </div> </div> </div> <div class="a-card a-card--normal"> <div class="a-card__paddings"> <div class="iconable-block"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 56 56"><path fill="#FBD88E" d="M28.09 3.79c-.61 0-1.23.32-1.55.96l-7.02 14.22-15.68 2.28c-1.41.21-1.98 1.94-.96 2.94l11.35 11.07-2.68 15.63c-.19 1.11.69 2.02 1.7 2.02.26 0 .54-.06.8-.2l14.03-7.38 14.03 7.38c.26.14.54.2.8.2 1 0 1.89-.9 1.7-2.02l-2.68-15.63L53.3 24.19c1.02-1 .46-2.73-.96-2.94l-15.69-2.28-7.02-14.22c-.31-.64-.93-.96-1.54-.96z"/><path fill="#7E94AA" d="M28.09 3.79c.61 0 1.23.32 1.55.96l7.02 14.22 15.69 2.28c1.41.21 1.98 1.94.96 2.94L41.94 35.25l2.68 15.63c.19 1.11-.69 2.02-1.7 2.02-.26 0-.54-.06-.8-.2l-14.03-7.38-14.03 7.38c-.26.14-.54.2-.8.2-1 0-1.89-.9-1.7-2.02l2.68-15.63L2.88 24.19c-1.02-1-.46-2.73.96-2.94l15.69-2.28 7.02-14.22c.31-.64.92-.96 1.54-.96m0-2.03c-1.44 0-2.73.8-3.36 2.09l-6.55 13.26-14.63 2.13a3.74 3.74 0 00-3.03 2.55c-.44 1.37-.08 2.84.95 3.84l10.59 10.32-2.5 14.58c-.19 1.09.11 2.2.82 3.04.72.85 1.77 1.34 2.87 1.34.6 0 1.2-.15 1.74-.43l13.09-6.88 13.09 6.88a3.751 3.751 0 004.62-.91c.71-.84 1.01-1.95.82-3.04l-2.5-14.58L54.7 25.63c1.03-1 1.39-2.48.95-3.84a3.698 3.698 0 00-3.03-2.55L38 17.12 31.45 3.85a3.712 3.712 0 00-3.36-2.09z"/><path fill="#D8AB50" d="M39.33 48.61c-.37 0-.73-.09-1.07-.27L28.09 43l-10.17 5.35c-.96.5-2.16.25-2.84-.56-.44-.52-.62-1.2-.5-1.87l1.94-11.33-8.23-8.02c-.63-.62-.86-1.52-.58-2.36.27-.84.99-1.44 1.86-1.57l11.37-1.65 5.09-10.3c.39-.79 1.18-1.29 2.07-1.29s1.68.49 2.07 1.29l5.08 10.3 11.37 1.65c.88.13 1.59.73 1.86 1.57.27.84.05 1.75-.58 2.36l-8.23 8.02 1.94 11.33c.12.67-.07 1.35-.5 1.87-.45.52-1.1.82-1.78.82zm-11.24-7.87l11.1 5.84c.13.07.29.03.38-.08.06-.07.08-.15.06-.24L37.51 33.9l8.98-8.75c.11-.11.1-.23.08-.31a.281.281 0 00-.25-.21l-12.41-1.8-5.55-11.25c-.14-.28-.41-.28-.55 0l-5.55 11.25-12.41 1.8c-.16.02-.22.13-.25.21-.02.07-.04.2.08.31l8.98 8.75-2.12 12.36c-.02.09 0 .17.06.24.09.11.24.15.38.08l11.11-5.84z"/></svg> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"> <?php echo esc_html__( 'Use Ecwid premium plan for free', 'ecwid-shopping-cart' ); ?> </div> <div class="cta-block__content"> <?php echo esc_html__( 'If you’re developing sites on WordPress, you can get a free subscription to the Ecwid premium plan. Use it to build and test stores on the WordPress sites, check out the platform features, and get access to Ecwid API. Just apply for the free subscription, and we’ll get in touch with you soon.', 'ecwid-shopping-cart' ); ?> </div> </div> <div class="cta-block__cta"> <a href="https://ecommerce-store.typeform.com/to/Heh5d4?utm_source=wp-plugin" target="_blank" type="button" class="btn btn-default btn-medium"> <span><?php echo esc_html__( 'Apply for Free Plan', 'ecwid-shopping-cart' ); ?></span> </a> </div> </div> </div> </div> </div> </div> </div> </div> <div class="named-area"> <div class="named-area__header"> <div class="named-area__titles"> <div class="named-area__title"> <?php echo esc_html__( 'Need a hand?', 'ecwid-shopping-cart' ); ?> </div> <div class="named-area__subtitle"></div> </div> <div class="named-area__description"></div> <div class="named-area__additional"></div> </div> <div class="named-area__body"> <div class="a-card a-card--normal"> <div class="a-card__paddings"> <div class="iconable-block"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <svg data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 56 56"><path d="M21.08 2a5.2 5.2 0 0 0 0 10.4h5.19V7.2A5.19 5.19 0 0 0 21.08 2m0 13.87H7.24a5.2 5.2 0 0 0 0 10.4h13.84a5.2 5.2 0 0 0 0-10.4Z" fill-rule="evenodd" fill="#46bce6"/><path d="M54 21.07a5.19 5.19 0 1 0-10.38 0v5.2h5.19a5.2 5.2 0 0 0 5.19-5.2Zm-13.84 0V7.2a5.19 5.19 0 1 0-10.38 0v13.87a5.19 5.19 0 1 0 10.38 0Z" fill="#3bac7b" fill-rule="evenodd"/><path d="M34.92 54a5.2 5.2 0 0 0 0-10.4h-5.19v5.2a5.19 5.19 0 0 0 5.19 5.2Zm0-13.87h13.84a5.2 5.2 0 0 0 0-10.4H34.92a5.2 5.2 0 0 0 0 10.4Z" fill="#e9b244" fill-rule="evenodd"/><path d="M2.05 34.93a5.19 5.19 0 1 0 10.38 0v-5.2H7.24a5.2 5.2 0 0 0-5.19 5.2Zm13.84 0V48.8a5.19 5.19 0 1 0 10.38 0V34.94a5.19 5.19 0 1 0-10.38 0" fill="#da355f" fill-rule="evenodd"/></svg> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"> <?php echo esc_html__( 'Join developer community on Slack', 'ecwid-shopping-cart' ); ?> </div> <div class="cta-block__content"> <?php echo esc_html__( 'Join the community of professionals to get help with questions that are not covered by Help Center or API documentation.', 'ecwid-shopping-cart' ); ?> </div> </div> <div class="cta-block__cta"> <a href="https://join.slack.com/t/lightspeed-ecom-comm/shared_invite/zt-1hvv9uar5-BtF5AQGJHqd~T7fR2~Boyw" target="_blank" type="button" class="btn btn-default btn-medium"> <span>Join Community</span> </a> </div> </div> </div> </div> </div> </div> <div class="a-card a-card--normal"> <div class="a-card__paddings"> <div class="iconable-block"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 80 80"><path fill="#FFF" d="M11 37.11v33.4c0 1.93 1.44 3.49 3.22 3.49h52.56c1.78 0 3.22-1.56 3.22-3.49V37"/><path fill-rule="evenodd" clip-rule="evenodd" fill="#FBD88E" d="M46 49.34c0-2.4 2.02-4.34 4.5-4.34h9.02c2.49 0 4.5 1.95 4.5 4.34v20.32c0 2.4-2.02 4.34-4.5 4.34H50.5c-2.49 0-4.5-1.95-4.5-4.34V49.34z"/><path fill="#FE948D" d="M8 28l4.64-14c0-2.22 2.14-2 2.79-2h8.12L21 28"/><path fill="#FBD88E" d="M21 28l2.54-16h11.39L34 28"/><path fill="#CBE87C" d="M34 28l.93-16h11.14L47 28"/><path fill="#BCDEFA" d="M47 28l-.93-16h11.39L60 28"/><path fill="#FE948D" d="M60 28l-2.54-16h8.12c.64 0 2.79-.22 2.79 2L73 28"/><path fill="#ECF5FE" d="M17 49.72c0-2.61 1.92-4.72 4.33-4.72h14.35c2.39 0 4.33 2.11 4.33 4.72v12.56c0 2.61-1.92 4.72-4.33 4.72H21.33C18.94 67 17 64.89 17 62.28V49.72z"/><path fill="#7E94AA" d="M35.67 68H21.33C18.39 68 16 65.43 16 62.28V49.72c0-3.15 2.39-5.72 5.33-5.72h14.35c2.94 0 5.33 2.57 5.33 5.72v12.56C41 65.43 38.61 68 35.67 68zM21.33 46C19.49 46 18 47.67 18 49.72v12.56c0 2.05 1.49 3.72 3.33 3.72h14.35c1.83 0 3.33-1.67 3.33-3.72V49.72c0-2.05-1.49-3.72-3.33-3.72H21.33z"/><path fill-rule="evenodd" clip-rule="evenodd" fill="#ECF5FE" d="M17 49.72c0-2.61 1.92-4.72 4.33-4.72h14.35c2.39 0 4.33 2.11 4.33 4.72v12.56c0 2.61-1.92 4.72-4.33 4.72H21.33C18.94 67 17 64.89 17 62.28V49.72z"/><path fill="#7E94AA" d="M52.61 61h-3.23c-.76 0-1.38-.67-1.38-1.5s.62-1.5 1.39-1.5h3.23c.76 0 1.39.67 1.39 1.5-.01.83-.63 1.5-1.4 1.5z"/><path fill="#FE948D" d="M14.5 40.01c-3.58 0-6.5-2.92-6.5-6.5v-4.33c0-.64.53-1.17 1.17-1.17h10.66c.64 0 1.17.53 1.17 1.17v4.33c0 3.57-2.92 6.5-6.5 6.5z"/><path fill="#FBD88E" d="M27.5 40.01c-3.58 0-6.5-2.92-6.5-6.5v-4.33c0-.64.53-1.17 1.17-1.17h10.66c.64 0 1.17.53 1.17 1.17v4.33c0 3.57-2.92 6.5-6.5 6.5z"/><path fill="#CBE87C" d="M40.5 40.01c-3.58 0-6.5-2.92-6.5-6.5v-4.33c0-.64.53-1.17 1.17-1.17h10.66c.64 0 1.17.53 1.17 1.17v4.33c0 3.57-2.92 6.5-6.5 6.5z"/><path fill="#BCDEFA" d="M53.5 40.01c-3.58 0-6.5-2.92-6.5-6.5v-4.33c0-.64.53-1.17 1.17-1.17h10.66c.64 0 1.17.53 1.17 1.17v4.33c0 3.57-2.92 6.5-6.5 6.5z"/><path fill="#FE948D" d="M66.5 40.01c-3.58 0-6.5-2.92-6.5-6.5v-4.33c0-.64.53-1.17 1.17-1.17h10.66c.64 0 1.17.53 1.17 1.17v4.33c0 3.57-2.92 6.5-6.5 6.5z"/><path fill="#BCDEFA" d="M14.98 63.86c0-.47 2.26-.86 5.08-.86H36.9c2.81 0 5.08.38 5.08.86v2.28c0 .47-2.26.86-5.08.86H20.06c-2.81 0-5.08-.38-5.08-.86v-2.28z"/><path fill="#7E94AA" d="M36.9 68H20.06c-6.08 0-6.08-1.3-6.08-1.86v-2.28c0-.56 0-1.86 6.08-1.86H36.9c6.08 0 6.08 1.3 6.08 1.86v2.28c0 .56 0 1.86-6.08 1.86zm-20.92-2.38c.59.16 1.95.38 4.08.38H36.9c2.13 0 3.49-.21 4.08-.37v-1.25c-.59-.17-1.95-.38-4.08-.38H20.06c-2.13 0-3.49.21-4.08.37v1.25z"/><path fill-rule="evenodd" clip-rule="evenodd" fill="#CBE87C" d="M14.98 63.86c0-.47-.37-.86 2.46-.86h22.1c2.81 0 2.46.38 2.46.86v2.28c0 .47.37.86-2.46.86h-22.1c-2.81 0-2.46-.38-2.46-.86v-2.28z"/><path fill="#7E94AA" d="M78 73h-7.71c.45-.71.71-1.57.71-2.49V39.49a7.48 7.48 0 003-5.99s.04-5.55-.05-5.82l-4.59-13.86c-.9-2.79-3.02-2.85-3.64-2.83H15.29c-.62-.02-2.62.04-3.64 2.83l-4.6 13.86c-.09.28-.05 5.83-.05 5.83a7.48 7.48 0 003 5.99v31.02c0 .92.26 1.78.71 2.49H2c-.55 0-1 .45-1 1s.45 1 1 1h76c.55 0 1-.45 1-1S78.55 73 78 73zm-6-39.49c0 3.03-2.47 5.5-5.5 5.5s-5.5-2.47-5.5-5.5v-4.33c0-.09.08-.17.17-.17h10.66c.09 0 .17.08.17.17v4.33zm-50-4.33c0-.09.08-.17.17-.17h10.66c.09 0 .17.08.17.17v4.33c0 3.03-2.47 5.5-5.5 5.5s-5.5-2.47-5.5-5.5v-4.33zm23.94-2.16c-.04 0-.07-.01-.11-.01H35.17c-.04 0-.07.01-.11.01L35.87 13h9.26l.81 14.02zM35 29.18c0-.09.08-.17.17-.17h10.66c.09 0 .17.08.17.17v4.33c0 3.03-2.47 5.5-5.5 5.5s-5.5-2.47-5.5-5.5v-4.33zm13 0c0-.09.08-.17.17-.17h10.66c.09 0 .17.08.17.17v4.33c0 3.03-2.47 5.5-5.5 5.5s-5.5-2.47-5.5-5.5v-4.33zM65.57 13h.18c.35-.01 1.09-.02 1.39.28.14.14.21.38.21.73 0 .11.02.21.05.31l4.21 12.69H61.17c-.11 0-.21.02-.31.03L58.63 13h6.94zm-8.97 0l2.23 14.01H48.17c-.08 0-.15.01-.22.02L47.13 13h9.47zM33.05 27.03c-.07-.01-.15-.02-.22-.02H22.17L24.4 13h9.47l-.82 14.03zM13.59 14.31c.03-.1.05-.21.05-.31 0-.34.07-.59.21-.73.3-.3 1.04-.29 1.39-.28h7.13l-2.23 14.04c-.1-.01-.2-.03-.31-.03H9.38l4.21-12.69zM9 33.51v-4.33c0-.09.08-.17.17-.17h10.66c.09 0 .17.08.17.17v4.33c0 3.03-2.47 5.5-5.5 5.5S9 36.54 9 33.51zM50.5 73c-1.93 0-3.5-1.5-3.5-3.34V49.34C47 47.5 48.57 46 50.5 46h9.02c1.93 0 3.5 1.5 3.5 3.34v20.32c0 1.84-1.57 3.34-3.5 3.34H50.5zm13.31 0a5.23 5.23 0 001.22-3.34V49.34c0-2.95-2.47-5.34-5.5-5.34H50.5c-3.03 0-5.5 2.4-5.5 5.34v20.32c0 1.26.46 2.43 1.22 3.34h-32C13 73 12 71.88 12 70.51V40.57c.78.28 1.62.44 2.5.44 2.78 0 5.2-1.52 6.5-3.77 1.3 2.25 3.72 3.77 6.5 3.77s5.2-1.52 6.5-3.77c1.3 2.25 3.72 3.77 6.5 3.77s5.2-1.52 6.5-3.77c1.3 2.25 3.72 3.77 6.5 3.77s5.2-1.52 6.5-3.77c1.3 2.25 3.72 3.77 6.5 3.77.88 0 1.72-.16 2.5-.44v29.94c0 1.37-1 2.49-2.22 2.49h-2.97z"/><path fill="#7E94AA" d="M42.99 63.79c.02-.21.06-.71-.34-1.14-.31-.34-.78-.52-1.65-.6V49.72c0-3.15-2.39-5.72-5.33-5.72H21.33C18.39 44 16 46.57 16 49.72v12.33c-.9.08-1.37.26-1.69.6-.4.43-.35.93-.33 1.21v2.35c-.02.21-.06.71.34 1.14.46.49 1.21.65 3.12.65h22.1c1.91 0 2.67-.16 3.12-.65.4-.43.36-.93.33-1.21v-2.35zM21.33 46h14.35c1.83 0 3.33 1.67 3.33 3.72V62H18V49.72c0-2.05 1.49-3.72 3.33-3.72zm19.65 19.94c-.26.03-.7.06-1.45.06h-22.1c-.75 0-1.19-.03-1.46-.06v-1.88c.26-.03.71-.06 1.46-.06h22.1c.75 0 1.19.03 1.46.06v1.88z"/></svg> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"> <?php echo esc_html__( 'Request custom development', 'ecwid-shopping-cart' ); ?> </div> <div class="cta-block__content"> <?php echo esc_html__( 'The Ecwid team can help you build the desired features and options that Ecwid does not have out of the box — from integrations with other tools to your own mobile app. Custom development is a paid service, the price depends on the complexity of the request.', 'ecwid-shopping-cart' ); ?> </div> </div> <div class="cta-block__cta"> <a href="https://support.ecwid.com/hc/en-us/articles/115005821245?utm_source=wp-plugin" target="_blank" type="button" class="btn btn-default btn-medium"> <span><?php echo esc_html__( 'Submit Request', 'ecwid-shopping-cart' ); ?></span> </a> </div> </div> </div> </div> </div> </div> <div class="a-card a-card--normal"> <div class="a-card__paddings"> <div class="iconable-block"> <div class="iconable-block__infographics"> <span class="iconable-block__icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 56 56"><path d="M4.59 37A3.76 3.76 0 011 33.08V4.92A3.76 3.76 0 014.59 1h28.82A3.76 3.76 0 0137 4.92v28.16A3.76 3.76 0 0133.41 37z" fill="#fbd88e"/><path fill="#7e94aa" d="M33.41 38H4.59A4.77 4.77 0 010 33.08V4.92A4.77 4.77 0 014.59 0h28.82A4.77 4.77 0 0138 4.92v28.16A4.77 4.77 0 0133.41 38zM4.59 2A2.77 2.77 0 002 4.92v28.16A2.77 2.77 0 004.59 36h28.82A2.77 2.77 0 0036 33.08V4.92A2.77 2.77 0 0033.41 2z"/><path fill="#fff" d="M21 47h18.08L47 53.63V47h4a4 4 0 004-4V16a4 4 0 00-4-4H21a4 4 0 00-4 4v27a4 4 0 004 4z"/><path fill="#7e94aa" d="M48 55.77L38.71 48H21a5 5 0 01-5-5V16a5 5 0 015-5h30a5 5 0 015 5v27a5 5 0 01-5 5h-3zM21 13a3 3 0 00-3 3v27a3 3 0 003 3h18.44L46 51.49V46h5a3 3 0 003-3V16a3 3 0 00-3-3z"/><path fill="#ffbf09" d="M36.09 17.61l3.66 7.25 8.2 1.16-5.93 5.64 1.4 7.97-7.33-3.76-7.33 3.76 1.4-7.97-5.93-5.64 8.19-1.16 3.67-7.25z"/></svg> </span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"> <?php echo esc_html__( 'Leave feedback', 'ecwid-shopping-cart' ); ?> </div> <div class="cta-block__content"> <?php echo esc_html__( 'Tell us what can be improved regarding Ecwid features, integrations, and functionality.', 'ecwid-shopping-cart' ); ?> </div> </div> <div class="cta-block__cta"> <a href="https://ecommerce-store.typeform.com/to/qMgJpSBq?utm_source=wp-plugin#store_id=<?php echo esc_attr( get_ecwid_store_id() ); ?>&email=<?php echo esc_attr( $admin_email ); ?>" target="_blank" type="button" class="btn btn-default btn-medium"> <span><?php echo esc_html__( 'Leave Feedback', 'ecwid-shopping-cart' ); ?></span> </a> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/templates/admin/legacy-connect.tpl.php������������������������������������������0000644�����������������00000007404�15122273603�0017711 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div class="wrap ecwid-admin"> <div class="ec-store-box"> <?php require ECWID_PLUGIN_DIR . 'templates/admin-head.php'; ?> <form method="POST" action="options.php" class="pure-form ecwid-settings general-settings"> <?php settings_fields( 'ecwid_options_page' ); ?> <fieldset> <input type="hidden" name="settings_section" value="general" /> <div class="greeting-box"> <div class="image-container"> <img class="greeting-image" src="<?php echo esc_attr( ECWID_PLUGIN_URL ); ?>/images/store_inprogress.png" width="142" /> </div> <div class="messages-container"> <div class="main-message"> <?php echo esc_html( sprintf( __( 'Thank you for choosing %s to build your online store', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ) ); ?> </div> <div class="secondary-message"> <?php echo wp_kses_post( __( 'The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps.', 'ecwid-shopping-cart' ) ); ?> </div> </div> </div> <hr /> <ol> <li> <h4><?php echo esc_html( sprintf( __( 'Register at %s', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ) ); ?></h4> <div> <?php echo esc_html( sprintf( __( 'Create a new %s account which you will use to manage your store and inventory. The registration is free.', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ) ); ?> </div> <div class="ecwid-account-buttons"> <?php if ( ! $this->_is_registration_blocked_locale() ) { ?> <a class="pure-button pure-button-secondary" target="_blank" href="<?php echo esc_url( ecwid_get_register_link() ); ?>"> <?php esc_html_e( 'Create new account', 'ecwid-shopping-cart' ); ?> </a> <?php } ?> <a class="pure-button pure-button-secondary" target="_blank" href="<?php echo esc_url( 'https://' . Ecwid_Config::get_cpanel_domain() ); ?>"> <?php esc_html_e( 'I already have an account, sign in', 'ecwid-shopping-cart' ); ?> </a> </div> <div class="note"> <?php esc_html_e( 'You will be able to sign up through your existing Google, Facebook or PayPal profiles as well.', 'ecwid-shopping-cart' ); ?> </div> </li> <li> <h4><?php esc_html_e( 'Find your Store ID', 'ecwid-shopping-cart' ); ?></h4> <div> <?php echo esc_html( sprintf( __( 'Store ID is a unique identifier of any %1$s store, it consists of several digits. You can find it on the "Dashboard" page of %1$s control panel. Also the Store ID will be sent in the Welcome email after the registration.', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ) ); ?> </div> </li> <li> <h4> <?php esc_html_e( 'Enter your Store ID', 'ecwid-shopping-cart' ); ?> </h4> <div><label for="ecwid_store_id"><?php esc_html_e( 'Enter your Store ID here:', 'ecwid-shopping-cart' ); ?></label></div> <div class="pure-control-group store-id"> <input id="ecwid_store_id" name="ecwid_store_id" type="text" placeholder="<?php esc_html_e( 'Store ID', 'ecwid-shopping-cart' ); ?>" value=" <?php if ( ! ecwid_is_demo_store() ) { echo esc_attr( get_ecwid_store_id() );} ?> " /> <button type="submit" class="<?php echo esc_attr( ECWID_MAIN_BUTTON_CLASS ); ?>"><?php echo esc_html( sprintf( __( 'Save and connect your %s store to the site', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ) ); ?></button> </div> </li> </ol> </fieldset> </form> </div> <?php require ECWID_PLUGIN_DIR . 'templates/admin-footer.php'; ?> </div> ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/templates/admin/simple-dashboard.php��������������������������������������������0000644�����������������00000004501�15122273603�0017431 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div class="wrap ecwid-admin ecwid-dashboard"> <div class="ec-store-box"> <div class="head"> <?php if ( ! Ecwid_Config::is_wl() ) { ecwid_embed_svg( 'ecwid-logo-blue' ); } ?> <h3> <?php echo esc_html( sprintf( __( '%s Shopping Cart', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ) ); ?> </h3> <div class="store-id drop-down"> <span> <?php esc_html_e( 'Store ID', 'ecwid-shopping-cart' ); ?> : <?php echo esc_html( get_ecwid_store_id() ); ?> </span> <ul> <li> <a href="admin.php?page=ec-store&reconnect"><?php esc_html_e( 'Disconnect store', 'ecwid-shopping-cart' ); ?></a> </li> </ul> </div> </div> <div class="body"> <div class="greeting-image"> <img src="<?php echo esc_attr( ECWID_PLUGIN_URL ); ?>/images/store_ready.png" width="142" /> </div> <div class="greeting"> <?php if ( isset( $_GET['settings-updated'] ) ) : ?> <div class="greeting-title"> <?php esc_html_e( 'Congratulations!', 'ecwid-shopping-cart' ); ?> </div> <div class="greeting-message mobile-br"> <?php echo wp_kses_post( sprintf( __( 'Your %s store is now connected<br /> to your WordPress website', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ) ); ?> </div> <?php else : ?> <div class="greeting-title"> <?php esc_html_e( 'Greetings!', 'ecwid-shopping-cart' ); ?> </div> <div class="greeting-message mobile-br"> <?php echo wp_kses_post( sprintf( __( 'Your %s store is connected<br /> to your WordPress website', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ) ); ?> </div> <?php endif; ?> <ul class="greeting-links"> <li> <a target="_blank" href="<?php echo esc_url( Ecwid_Store_Page::get_store_url() ); ?>"><?php esc_html_e( 'Visit storefront', 'ecwid-shopping-cart' ); ?></a> </li> <li> <a target="_blank" <?php if ( Ecwid_Api_V3::is_available() && ecwid_get_admin_sso_url( time(), '' ) ) : ?> href="admin-post.php?action=ecwid-do-sso" <?php else : ?> href="<?php echo esc_url( 'https://' . Ecwid_Config::get_cpanel_domain() ); ?>/cp" <?php endif; ?> ><?php esc_html_e( 'Open control panel', 'ecwid-shopping-cart' ); ?></a> </li> </ul> </div> </div> </div> <?php require ECWID_PLUGIN_DIR . 'templates/admin-footer.php'; ?> </div> �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/templates/admin/welcome-connection-message.php����������������������������������0000644�����������������00000003224�15122273603�0021426 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?php if ( ! $connection_error ) { $note = sprintf( __( 'To display your store on this site, you need to allow WordPress to access your %1$s products. Please press connect to provide permission.', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ); if ( $state == 'connect' ) { echo wp_kses_post( $this->get_welcome_page_note( $note ) ); } } else { $error_note = __( 'Connection error - after clicking button you need to login and provide permissions to use our plugin. Please, try again.', 'ecwid-shopping-cart' ); $oauth_error = $ecwid_oauth->get_error(); if ( ! empty( $oauth_error ) ) { if ( $ecwid_oauth->get_error() == 'other' ) { $error_note = sprintf( __( 'Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL.', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ); } else { $error_note = sprintf( __( 'To sell using %1$s, you must allow WordPress to access the %1$s plugin. The connect button will direct you to your %1$s account where you can provide permission.', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ); } } elseif ( ! ecwid_test_oauth() ) { $error_note = sprintf( __( 'Looks like your site does not support remote POST requests that are required for %s API to work. Please, contact your hosting provider to enable cURL.', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ); } echo wp_kses_post( $this->get_welcome_page_note( $error_note, 'ec-connection-error' ) ); }//end if if ( $ecwid_oauth->get_reconnect_message() ) { echo wp_kses_post( $this->get_welcome_page_note( $ecwid_oauth->get_reconnect_message() ) ); } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/templates/admin/welcome-connect.php���������������������������������������������0000644�����������������00000001316�15122273603�0017276 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div class="ec-form"> <div class="ec-button"> <form action="<?php echo esc_url( $connect_url ); ?>" method="post"> <button type="submit" class="btn btn--large btn--orange"><?php esc_html_e( 'Connect Your Store', 'ecwid-shopping-cart' ); ?></button> </form> </div> <?php if ( ! Ecwid_Config::is_no_reg_wl() && ! $this->_is_registration_blocked_locale() ) { ?> <a target="_blank" href="<?php echo esc_attr( ecwid_get_register_link() ); ?>"><?php esc_html_e( 'Create store', 'ecwid-shopping-cart' ); ?> ›</a> <?php } ?> </div> <?php require_once ECWID_ADMIN_TEMPLATES_DIR . '/welcome-connection-message.php'; ?> <?php require_once ECWID_ADMIN_TEMPLATES_DIR . '/welcome-terms-privacy.php'; ?> ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/templates/admin/welcome-create.php����������������������������������������������0000644�����������������00000002041�15122273603�0017104 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div class="ec-form"> <?php if ( ! $this->_is_registration_blocked_locale() ) { ?> <div class="ec-button"> <button type="button" class="ec-create-store-button btn btn--large btn--orange"><?php esc_html_e( 'Create Store', 'ecwid-shopping-cart' ); ?></button> </div> <a href="<?php echo esc_url( $connect_url ); ?>" class="ec-connect-store"><?php esc_html_e( 'Connect your store', 'ecwid-shopping-cart' ); ?> ›</a> <?php } else { ?> <div class="ec-button"> <form action="<?php echo esc_url( $connect_url ); ?>" method="post"> <button type="submit" class="btn btn--large btn--orange"><?php esc_html_e( 'Connect your store', 'ecwid-shopping-cart' ); ?></button> </form> </div> <?php } ?> </div> <div class="ec-note ec-create-store-success-note"> <?php esc_html_e( 'Your store has been created. Preparing your store dashboard ...', 'ecwid-shopping-cart' ); ?> </div> <?php require_once ECWID_ADMIN_TEMPLATES_DIR . '/welcome-connection-message.php'; ?> <?php require_once ECWID_ADMIN_TEMPLATES_DIR . '/welcome-terms-privacy.php'; ?> �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/templates/admin/welcome-no_oauth.php��������������������������������������������0000644�����������������00000001772�15122273603�0017467 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div class="form-block"> <div class="form-block__input"> <input type="input" id="ecwid-store-id" class="form-block__element" placeholder="<?php esc_attr_e( 'Enter your Store ID', 'ecwid-shopping-cart' ); ?>" value="" size="32" /> </div> <div class="form-block__group-append"> <button id="ecwid-connect-no-oauth" data-href="admin-post.php?action=ec_connect" class="btn btn--orange btn--medium btn--no-animate form-block__btn form-block__element" type="button"><?php esc_html_e( 'Connect', 'ecwid-shopping-cart' ); ?></button> </div> </div> <div class="ec-note"> <?php echo wp_kses_post( sprintf( __( 'Store ID is a unique identifier of your %1$s account. You can find it in your %1$s control panel on the <a %2$s>Dashboard page</a>.', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand(), 'href="https://' . Ecwid_Config::get_cpanel_domain() . '/cp/CP.html?partner=wporg#dashboard" target="_blank"' ) ); ?> </div> <?php require_once ECWID_ADMIN_TEMPLATES_DIR . '/welcome-terms-privacy.php'; ?> ������ecwid-shopping-cart/templates/admin/welcome-page.php������������������������������������������������0000644�����������������00000005210�15122273603�0016556 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div class="ec-page ec-page--welcome calypso-page"> <div class="ec-page__body"> <div class="ec-content"> <div class="ec-logo"> <?php if ( ! Ecwid_Config::is_wl() ) { ecwid_embed_svg( 'ec-logo' ); } ?> </div> <h2> <?php esc_html_e( 'Add an Online Store to Your Website', 'ecwid-shopping-cart' ); ?> </h2> <?php if ( $state == 'create' || $state == 'connect' ) { ?> <div class="ec-subheading"> <p> <?php echo esc_html( sprintf( __( 'Create a new store or connect an existing one, if you already have an %s account. The plugin will guide you through store setup and help publish it on your website.', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ) ); ?> </p> </div> <?php } ?> <?php if ( $state == 'no_oauth' ) { ?> <div class="ec-subheading"> <p> <?php if ( $this->_is_registration_blocked_locale() ) { echo esc_html( sprintf( __( 'To add your store to your website, put your %1$s Store ID in the field below.', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ) ); } else { echo wp_kses_post( sprintf( __( 'To add your store to your website, put your %1$s Store ID in the field below. If you don\'t have an %1$s account yet, create one for free on the <a %2$s>%1$s website</a>.', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand(), 'href="' . esc_attr( ecwid_get_register_link() ) . '" target="_blank"' ) ); } ?> </p> </div> <?php }//end if ?> <?php if ( $this->_is_registration_blocked_locale() ) { ?> <div class="ec-subheading"> <p> <?php echo wp_kses_post( $this->get_welcome_page_note( __( 'Unfortunately, creating a new account is currently unavailable for your country. You can still connect an existing account.', 'ecwid-shopping-cart' ), 'ec-connection-error' ) ); ?> </p> </div> <?php } ?> <?php if ( $state == 'create' ) { require_once ECWID_ADMIN_TEMPLATES_DIR . '/welcome-create.php'; } if ( $state == 'connect' ) { require_once ECWID_ADMIN_TEMPLATES_DIR . '/welcome-connect.php'; } if ( $state == 'no_oauth' ) { require_once ECWID_ADMIN_TEMPLATES_DIR . '/welcome-no_oauth.php'; } ?> </div> <?php if ( ! Ecwid_Config::is_wl() ) { ?> <div class="ec-poweredby"> <?php echo wp_kses_post( sprintf( __( 'Provided by <a %1$s>%2$s</a>', 'ecwid-shopping-cart' ), 'href="https://www.ecwid.com?partner=wporg" target="_blank"', 'ecwid.com' ) ); ?> </div> <?php } ?> </div> </div> ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/templates/admin/welcome-terms-privacy.php���������������������������������������0000644�����������������00000000733�15122273603�0020454 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?php if ( ! Ecwid_Config::is_wl() ) { ?> <div class="ec-note" style="padding-top: 16px;"> <?php echo wp_kses_post( sprintf( /* translators: links on terms and privacy policy */ __( 'By continuing, you agree to the <a %1$s>Terms of Service</a> and <a %2$s>Privacy Policy</a>.', 'ecwid-shopping-cart' ), 'href="http://www.ecwid.com/terms-of-service" target="_blank"', 'href="https://www.ecwid.com/privacy-policy" target="_blank"' ) ); ?> </div> <?php } ?> �������������������������������������ecwid-shopping-cart/templates/importer/import-no-token.tpl.php��������������������������������������0000644�����������������00000000732�15122273603�0020626 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div class="feature-element__content"> <div class="feature-element__text"> <p><?php esc_html_e( 'Click the connect button to get rights to update the product catalog', 'ecwid-shopping-cart' ); ?></p> </div> <div class="feature-element__action"> <a class="btn btn-primary btn-medium" id="reconnect-button" href="admin.php?page=<?php echo esc_attr( self::PAGE_SLUG_WOO ); ?>&action=reconnect"><?php esc_html_e( 'Connect', 'ecwid-shopping-cart' ); ?></a> </div> </div> ��������������������������������������ecwid-shopping-cart/templates/importer/import-picture-feature.png�����������������������������������0000644�����������������00000040354�15122273603�0021403 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR��\�����MS���sRGB,��� pHYs�� �� ���zPLTE���Y5����x+�q@ِ0Ϡp `PԬş~ߥ‡є读[ӗߒİꞯߖo tӷδf\ͮpǤӸκ{~~y|ustylI���~tRNS� !,8BMYH3S>&eced`7Pq"xƻoe\_deeee`t@P`EFr��>IDATxcǵ HhHcl##0`@HHpKBpmܛSL]]{W'#t}SNS;@09zldX,O<o�?9:r¸TGGNNK'GN۵d(ёQZ@#'GOb bb0_UcG|)�夅"at&, "|#tΈU26zl�MLN ;1>.S'M^H26z[�Lw,s D ,E~0ʪ3uo,~>׬o�~ݬ\Y90Q)'LƔuelZT�LM{#),rr�;I00d @t&-c GaҢ18L^&GN[m�@<X(r,by@/=S'3z=`B. hl ;C@ieR.H2=aP^Ӿ8 eX^o *1Ie\^8|S˂\8$ 0MO-;r Id_Ǝ\Ć@Ajٓ׃@L~x߼i}/HS><c߫3߾o4QwݚUWJ$}XoATH3O-+c|O4}}t|aEsRq3y\-V|~S'zj tvarr �l0Y\ܪ8Y"((v'Ӓ+0}XwEőXvZrӿ=�OTHJ@r$IG|`79Fv -Qr]1p}|]Bry'aIhPݮÙ+La d wJI'. JI'.hJHw}SL]]JQ`S90(VrUr T * +t4:ȱZR+p sɯC\9Nի\DYO=TLF ꛐ/zϋLnG ЂLFRrEp.,:цLFRrP1§Էߟ=b�YdBB![ Ǽv0Drt^aH \LM\+7c A.w,Rr]e@wci8CE +z`WHl\ι@u$S 5JK2vh;@.GP\ %d+'\K ɖ!! :sMuO8^- W)'vSBrqGܯ["%+( @|ENnktyzOEutn7aB''W5?k1 >Ք=q箞[yjMXphQLre)lDQՂU+NC9բ,>bkPPJe-98M,,;WO^L\`W2Җy#Q9GM\;/Qn&<�j]rfj&8HT_~ U$Adq#*'qPrf lv"ǣ8JT:ƤkIvye<5J<jRT_VI#9Mr]^Qx2]&`J.v\Xh aJB#V@.[f~步w\|CW.:.d'2{Dt2"{ւvA+MhZ+hUڥ-=虥LETP#<ST I,Wa$&2$ݕUb)<Q.ȗ9/Eπt F.8q=亷,#a!h`G'vZ.hnoR5W}A 3]Ħ/[TDm"9xO\̋QKM:{);Tku=DrÙSx-..>\)??*g ʛk嚀seJY am70疞\׋4V 3xZ4+!j8à[ZrtD-\tO]nI\Pniu?.4i%P AS\e&亟KAJD*J+'<fRpkŬ 0I.-ULW\dR&2rx1얪\[&ID yB8/O "~n7,$-c-ErV;"#&TU-ǰݱ*WU#6dڕ7)CwKM­%pDQa\r:s9^~]>DN޸3Rkcn墷xآ*z1] 0pdڕ R\+]sxe?d\Pk nu=etf隸ǣNdvՃ"WJ0G<Ꮵ AE&rA 츥 oԌi*p*( %un+ aKnnVaE{ԌCo"[(nB.Hjǖ[Z܂kVC )L Nܥڭ]e05ZuM\]%Cy_'f2sOEWNtImս-J s\hm� Co /y26=V.0=+-A]wЮsU ; sKrN`ӭrur8�u-7"滰e-Op5MZ'VKvs⪗9+\H%U 0ɵ͉^.CR%5&e &\8cݖҨ- Ko2suŴ+ Džt\XIC~> v1r|BQ5,R?)Eֵ(]X \:6E 71R\W\O"CM,nks =0@fC"\l!-&-DF˞iLIm- t1*l/<A#V7 9 rV}y\ۥ$|Nnvu$QdxS^οĄg 7XOfV$ 6ݏ4Oׯѹt\WdڴF|ȵ|F\2y2;-,<$>Tô5m6rݎW.ԅp94UZ+.5'*8If da\UWΕkJ`MlvmQxDч8If @ u95nn2Tb_B`% W }<9 >T Ir lNAJB` g ȅ5d-' e.f{4'͙#e.{{,S\=nJlCYlS\$!zo E.! ysV=:wOdpVTr1\Oa9\I#ڴn#t%K2 rj.]8}0j`\.Jn44 Ky8qS<!บ&\Ar|u 3}r Bp^8vD捄ͮ W8hHi>(ANfW3+o%4jp}rM\ W(Kip\SXrw W(q:J*quNik&&<V- +((lWq+b.<N݄dᇀ\t`^.n$t5r;S6regk5sr)M 1#9@<e3z -Mxxх\C98<얀\v/uKrA:KmFuZ:Ҳٱ₠]>aB$H@y[ TCٽ5uG((1S Xq,|doixDr*\6?)HZ< }[  S_XP+ըt:yn- -IQ͘zW!3!iUƤ..=r +W.ȭD\xfrWj~=ƮIU^aM|3{ tѭ\cu 1�rYJݗEP9'.khRUtΌ\g/u] {JD3A]e`.TZd^zfe\0u!|O\ E.VUU|Չճkwcĕ\*s=:2=_!UpizŚ=�&DzFJK.,WJkJDwk\H%Bb1ĕ\uӢ)N\5saMɇolSה7TDƅ|vOXO76oUaN"r}P'7;q w6sUaN"rƅ<t«%_xT嵏$ӧч^<lƣ^S!U/pܧzj Rm\aFSФ"W]Fˬ!dVu._p䮍+OUȹ0?I]6^j<|t"ݩד(q򈝉+�6%1uyhA<NiP\ C;=&ѩ+ dDBr}T&|s?%%W>O&HI.o1kBlmh#;F $ГP亱|wGe٭J:\ZRö[ C=3kݠV5P3ғ+Ё[@RHNp:­6Ch/IOP2[W$FINr~b]EZa4$)G ߷WOȐ#*`r*Hi#93JRˣ^n꥕w֒\~akzdPQar _g>O; L**L]Gg{r,\}w64Š A=VTrͦ W*aE l r%R`XTZn/ܺy㺝J#XTJ7^]]ZZy]{6 ȕFF0gHu}6c򭕎 \ITim!'fvүJJ#\'.ֽuX rxPrN\ZVܨ奵%V^Iȕ@I8'4ug? պu#Z a$k[ 2?t0Z,[~`$!WoMr,\t`]U8z4uhJC跺BKuw fgWYX)*$6Ґ+]/K\(Kj#˥]E|ϼvHDȷyT+X<$\^)y?n ý]r-r|"rE~Z8Guru.YsKv%"W[]!V piwC_!R+..\KLܔU+ݱ+. pŗpr)n7gd7| T:. pŕHMTUL+ҞdW;]s\.W.,sB˛<2s\8Ÿ\f ghrHF {<hdtf"ʬ*`IGx4kvk6I oc/ґ+޸﷖- Vj ?<F yL/#Wqa[Ȍ\lVWmܧ m\Bu]rC&$qX"|%*@nnhʲy~FBrwd>&BPmۊ׈j)FJrEwd>&:Ҙ>tLJrEwd>+[-G7PKG&SBRk·vpnk]ݦD9ֱbkMJryN'0l/ʂ[Ĩ#ZŅ?u[y')<Yf?#u%*-D4y7aRrEy~~~[\7ټ] [dcMUR7$%WOwuV`)6(֕ù)HK4% 7;}F)g/+'"Mؿoz\1i8zfmFe)tJՕSimy=kߟSWFQоJuIbrŗw,nr*JF`/零p?37;Z%NZ7&%Ӎ䊯cI&~*ŝtL&<t\\uL:w`HH&o2|;ीwS+x,1`E:o⺫+,~ݓ\<u rqkV:i_䊮{&rK4{̼GEjrŶr͕s- rfn8<h0Hd.\[2k7\y+EWHrʹHF)٢ˁ\j@&F.0 kU*-osaW;Y7uvf9r\_&E}֣ikI5kU.5uU^wf"?n=Z 4ւhm/L\Z{țٿhOQ \7#:B\˃5fA6- U^%`T,HL\mFgv ;r7OeҒkfʭɉ Z't\LET0"W~ sԷ&zdߴqle){BYDzMK:QFlgꧮ籚d0*թ:omv]=m#.U+md7`O]ѻEa\e@k "zY:W<u;_|BkB?s͠Vٯf_Ckr$WD lԅ[u kPGhhaW/{a p/ő\#0\[۾+O? ~bkj!|eo @j/ő\e4t!hBӔk1zRߣj-c\e3"h5S| H( jRwJDSߟr=DvU~ba9t*}A̒FG!hR(\Lx2rm3Ý6r%: v�%ןX,-vC5fyCВ,Fr}a+Hw1G.5Ӵ~PxN4F V~4W:QW>y7t5+y\"?gJܟ+Z3e $&.WrMvrT$\Y!ڙ,JmntY렿_.C)Ґ Kr(H7 D;\ǝ O:+t\Up8eHCr"rǚ r)W4B}&11ו7ֶL^Gg%C4T)&*wȉ˙\T˵EE4P=͗|-(ӽ©MPG.<O3 q͒E\ 5{=vr&W4ՅraY03(>\,?ٕ8U4uG 9+Buf�> Y\hU2#%Ȱߩ\imL.r+P\Փ44!Wn(m22q)W,x6<<Tv`r٬ܵ*װ|m7ușs&W4xw .pr,.*p=a5K"ū'~preʼnQUnWɭ\tzEEH\TQ]rUXnW&Rh6Tf"PF.Ņ6aLޥ\lt>ah3QW2`"tdl:å\lt˵Ge\Xޙ(B\r٪ܵ)Ȥ4t3bi:1(NQ_X*[\hW.R3F3϶r#|2\D�3@.TaWu1 .Iz*B/]grdssSZo+ qLɕÏ=^ɐA\_rYܵ)PB ۚ.jq!O<4NrEV E:Kg\ L*<SrbQ.b$sVm)~\YX>LOD.V"�vm6pDCʵ7CØsYyĖWv.Ņ jQR袋3ТkS+IwW.jr BuJ5 U),Vk BrESŗk_?"Br1E�}d~T-)7rm1ŴsuU.v\# Bȥŗk_ݚ4ڹV:GD. 4kJ5ׯORbqSE *tOYb$7v% 6N*vQmx*wsB_Rvʼn<_Wv+"N(ϽbmV+KsZ2fK-]ȗkKfq[P2m2KG9 Jwra]v 6nBxļ:L#Zu!_],RL;W^b& rmswa0"2W.JآxŅ~4ݪlxRhpRJ?n\8k-JĻG$ )ʵ'ΕWɈ5-& #K8#f˕ g)#fqkv%daDr j4ۻ_V08Y2\lQ|LrqNp,I.~KWV=`w9rZ5"kK.]/~ .''r \1%Xtefh;D+Ur퉖\1%*Jak9,R.^Q|Dr ]3KpCWgq &$]rmVW/"vJKt|!PpȑKH.kŅn&qψJ#L24?D-׎q3׀IFd7nr=6m^'1E++XX ^a�-͹̷F2Al|,LI.kŅzrm [Ö+ޭBH53ӯhorR|Ds}&@'wI@.}Udrׄ uPx7�FtJHlnS\Uj3¦ڢ5?+F;ÏZ;_u0˨m}1 D&~[-jU~2dm~r1 ~xfV }`Q\wKW2\zXP1S�drqjC;ޠsV̓  ѽR+Umo~7OfujT\¸p,E~kn&NqV+]0MC\'Nmp3VK6N0¸܌!F&Ju5;HogŦ >"E(vCħZg0Yɶ?-ʷ \svg6]dr[j0:q!v"P5AJ>W_N]yk.2|fVk O45g ];䍫2{2F\ =m+M/LN!p =P%A}!b[A} o\7\%{ѝ|7m}Y5يKn?W헎n7CwqOaM^&]Jr}kr׀\l8K'{L`)N[>og*? ȷ eDU<[V_Clk1[ Ԥ4vȥ\ew, t!]a.~6#=dDӑ9vRШ(r٨5"rf`3ٞ0ӈm9&E,\ 4KPa!]FnS  AEͅhx '>}7\D\LwOa9l~1"Xtz8t!kP;c2erא\>e!UAmS e# V\rE+/LA,Ѡ)]`8+L5L]6o2\ PC,b2C.܊1h|Pzng_ W@rv,ypRq2oEG0j(/?k-#*1ĵƭ آv#9gFiՊ6\yG<Vr v<p`WY;fSPdpu@LSWv3❐ y{1y:,6w Ovt^|Bߠ!-׋B|a@.KFO52˜镑x أ1aVǍBVgd:eq.dP.bkIݾi+sN[Xo<DE zw0\]=t&'6"SW&c\;ס0享^. 0ڋ+6L9qy?3ݬ6h0pM 'k^<ו++.l؜PE56\)}]m8<rWϞ%j'AhK.1K}_aȪrEن|l_BEr{l0GT3dE8튵>v's2RraS'OZ$?+^'Cr=W_T~dr5 f8hLe3FmNs?^jt /`*!)î%g=\!-䂺xOMӖ~Sdu4"rɺ夭طq/h' ra^5q-<w)/ܽnjѲ48/;9q!ZWj2D~ ߾_"-(>/.\rnb_r!ā7wP/˟]\1r{@K"׈%uKՒ>Cb[J.a;WQljXoøbB&rr~[TJg[l. -Vȗ ?}j޺r]\sa!ixrrUL?j}E}-i:DZ.[k+<h%׾ K<U,o)W5_nRֽ~m!ί 5Lȵjj3_("΃X5r[(k-/ڰ0Qte1=[KdsŅF(- "HL]rx^IاzxP][f?d>QEF.Trgta&$L|[*?taU> k.0/yƼqI*wWN$#C8je5zj)'W]é:SEﶔkϑ\1w0]rUƐLxSZV z??y <{#_3Ņ(*l}\|BQ;d&~vypKd_+BBX[r,K-%+y\9Ur)EI-r +3VDu?̗\XF\:'"yMo畻9Z<P ]|]]r\媄~$_>Ǽ~\&SOտKHqmtȕr2ķ[]HʔOCLf"EJV!'RmNIlR8I.~"d .rq W%-dXخVxN4VsDNvr.JK2ڹ 媪կ bi_/V?\~8qGϥ:W6/jWJRWU[R lV#\-+N\Nrc'5r`HO\aބ_7r[z;"&Fil&\UV0qeJAe.W##iDq >tT錂b%o/Wx#Q5UDK9υ]KVBggYtO2Q%G\[K^W%K` D QLUM%?\قg4sUgdvfz%N@q}IOp* "A~7 ]̨-W蕻{Ί#\|:\\NHg’z? f%̕Or j\u\C/.Z=hWLfU"&W+/2)9U:")(>prV?ilSWLKfgU)`Bܜ*</!2<i@+w?+ݒtOad |Nj􌜸Zqsbꢟ~ Er\\x}pKzr.&. y$UMJҵU`5Pr%oK) P(W%Ob7WQGhraNĚD#0r)S|P2DRŇ[Rxa*$& ]􎒫Z ˟%EvaNhqYHxg-sK9Yh9pUA.<WԷ›Ȉ/ fD+*gߵr=5<^].x0n\;)w8B=7B>;^W[&0_+RaS5o7xZbMr(P|[*/%~ڳ7MmQ|xOjar&j.>$h.Xֺ"Q__Zk%~.u}}0O8h]PI.XjIi_%/HW֗ Y"v3sWވJrSդFlWAU!VBY\r8dxS[']/(6lzJ/:y2~yzW%ˢ*vKС[+L5z^.Q,'\̣bjj 0ێ'gK]kkVOO.K.]ԅrEk.Tҭ~ LgB^rQ;]O&[4n:-.,C6VjrH,~I$щfbzN(C=|YNnȥGrm[&}d",E.ȇ!bW2~!.Đ\!VVdG|n0gU³ǟ|MO<Kʉ_o+BL\<frl\[.<� Y~|'".y W;\]K'Yh%A<S'zzraqϬ�x7!:4 EAVRɵa<Aa;`}-!3 S/&93܊r-t2rgz|NWr/(/n({*1 W Ņb2r*7IZ*^.P⩨@ ;\K#o>4ݐʪln <>< $?eMaXi7Vϟ+{[=L\< 辒Kp 8*Fs! fRn-,n[ .ag"t22-Zxa67њrn5Ň_\7?{v6r->8y=}.ފB\rR\Ջ_OLV-YO:G-/C US;WŅxshov.2[eY6Fh,\zxcxh>\ ;^ $ rW7Yh* V䦲LEk$ rW_.#xHZWx>Pu۹/.ě9� `=1kxe6=iX\ڙx#xpK4 ]W //!WؕڙxrMx lp\ags'C^7_ek-xkaU Ɯ:OsQ|B\<e-38>D..4!V.2tPfCt^.L^.2_z?Av+w d҅!|˅j..4ב 2߽ee"LYj安Lr.2ѲW Hs]k"Y \EyqN7nȥ \*@}ۡ'Hreś`&fgw�}FqeI\#FlCJZ'O(LQ<#br]ad\bbtBegߐ#DCr͵: Ӥ+o{rة [`f.2YmD(cv:'O[Cn%,lౝ2E\{kLhP :! ҕ ?Oû3%@4%t<L W'M%Y4!%bD;\&Gfj2ʌ1$o%%SWM}:zjSrI�YB{4\߷k䉉};{&5&Fj 6-raDȰgϘ\ sPkj+wۿar%\REŅr=n/7rj6|`rc/Srm׵}Rmz(ܕezDG#Srմ`oT;WSq cF$.d8!BM;S#F< 1V:DH\]9̧Msq#?]{madjQԀ!/d#^z7LPZa F.wIrO{ 2ܒ\*we02un!t>\*Ņ5e8{P;c6O1XqU@-+)W\+fxady\F@-,Vqa:y#sEZ2�qLyed+ Fr}%-f#j˯93ߘ\v|`٢x3ŅM-jE$؆,_t#;J_҅c2P+ACݦqOr -cOK/VD(lQFhN(v[+;~)@͍t�5$+irW^(klErɶs+.ldjiy7fFr{ qtkߢ/28D\*w嘚e]8=HP;#6F^.Ņ2LMg]EWo%^Iv08:r60~n8Xa\u\v+w[ptztRL|Hi*|QqaMNLL0h x4<=3 L.#0Ou۹[rH/w\ $Fry(.�KD(w-S A\ @.rozNq!!OE `۹V Er^\tjrP.'\P o Ӣ(*w{$+ Ņ=@. D?G}|G?dѳ%.�q*4$(Xҭ`鱭(λsVJ{�Dʑe4.ۦ |;9uS6N{'Rڐ]6NvjJ]/h Ϳ$kZ>?kͿӛ bQ+ߛ\X�������������������������������@}'DD����IENDB`������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/templates/importer/landing.tpl.php����������������������������������������������0000644�����������������00000003511�15122273603�0017176 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div class="wrap"><h1><?php echo esc_html( sprintf( __( 'Import products to your %s store', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ) ); ?></h1> <p> <?php echo esc_html( sprintf( __( 'Here, we will help you uploading your product catalog to %s from another shopping cart or other sources.', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ) ); ?> </p> <?php if ( $this->_need_to_show_woo() ) : ?> <div class="card"> <h2><?php esc_html_e( 'Import product catalog from WooCommerce', 'ecwid-shopping-cart' ); ?></h2> <p> <?php echo esc_html( sprintf( __( 'We found you have a WooCommerce installed. Your WooCommerce store has %1$s products and %2$s categories. Would you like to import it to %3$s?', 'ecwid-shopping-cart' ), Ecwid_Importer::count_woo_products(), Ecwid_Importer::count_woo_categories(), Ecwid_Config::get_brand() ) ); ?> </p> <a href="admin.php?page=<?php echo esc_attr( self::PAGE_SLUG_WOO ); ?>"> <?php echo esc_html( sprintf( __( 'Import your WooCommerce catalog to %s', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ) ); ?> </a> <p><?php esc_html_e( '(You will be able to confirm the changes before the actual import)', 'ecwid-shopping-cart' ); ?></p> </div> <?php endif; ?> <?php if ( ! Ecwid_Config::is_wl() ) : ?> <div class="card"> <h2><?php esc_html_e( 'Import product catalog from other sources', 'ecwid-shopping-cart' ); ?></h2> <p><?php esc_html_e( 'Ecwid allows you to upload your products in a form of CSV file. Learn more about this tool in the Ecwid Help Center', 'ecwid-shopping-cart' ); ?></p> <p> <a href="<?php esc_html_e( 'https://support.ecwid.com/hc/en-us/articles/208079105-Importing-products', 'ecwid-shopping-cart' ); ?>"><?php esc_html_e( 'Learn more', 'ecwid-shopping-cart' ); ?></a> </p> </div> <?php endif; ?> </div> ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/templates/importer/woo-complete-alert.tpl.php�����������������������������������0000644�����������������00000006703�15122273603�0021307 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div class="a-card a-card--compact" id="ec-importer-alert" style="display: none;"> <div class="a-card__paddings"> <div class="iconable-block iconable-block--hide-in-mobile"> <div class="iconable-block__infographics"> <span class="iconable-block__icon" data-ec-importer-alert="warning"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 70 70" focusable="false"><path d="M34.5 67C16.58 67 2 52.42 2 34.5S16.58 2 34.5 2 67 16.58 67 34.5 52.42 67 34.5 67zm0-62C18.23 5 5 18.23 5 34.5S18.23 64 34.5 64 64 50.77 64 34.5 50.77 5 34.5 5z"></path><path d="M34.5 49c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5zM35.5 38.57h-2l-1-14c0-1.17.89-2.07 2-2.07s2 .9 2 2l-1 14.07z"></path></svg></span> <span class="iconable-block__icon" data-ec-importer-alert="success"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 70 70"><path d="M34.5 67h-.13c-8.68-.03-16.83-3.45-22.94-9.61C5.32 51.23 1.97 43.06 2 34.38 2.07 16.52 16.65 2 34.5 2h.13c8.68.03 16.83 3.45 22.94 9.61 6.12 6.16 9.46 14.34 9.43 23.02C66.93 52.48 52.35 67 34.5 67zm0-62C18.3 5 5.06 18.18 5 34.39c-.03 7.88 3.01 15.3 8.56 20.89 5.55 5.59 12.95 8.69 20.83 8.72h.12c16.2 0 29.44-13.18 29.5-29.39.03-7.88-3.01-15.3-8.56-20.89C49.89 8.13 42.49 5.03 34.61 5h-.11z"></path><path d="M32.17 46.67l-10.7-10.08c-.6-.57-.63-1.52-.06-2.12.57-.6 1.52-.63 2.12-.06l8.41 7.92 14.42-16.81c.54-.63 1.49-.7 2.12-.16.63.54.7 1.49.16 2.12L32.17 46.67z"></path></svg></span> </div> <div class="iconable-block__content"> <div class="cta-block"> <div class="cta-block__central"> <div class="cta-block__title"><?php esc_html_e( 'Import completed', 'ecwid-shopping-cart' ); ?></div> <div class="cta-block__content"> <?php echo wp_kses_post( sprintf( __( 'Imported <b>%s</b> products', 'ecwid-shopping-cart' ), '<span id="import-results-products">0</span>' ) ); if ( ecwid_is_paid_account() ) { echo ', '; echo wp_kses_post( sprintf( __( '<b>%s</b> categories', 'ecwid-shopping-cart' ), '<span id="import-results-categories">0</span>' ) ); } ?> </div> <div class="cta-block__content" data-ec-importer-alert="warning"> <?php esc_html_e( 'Some of the items could not be imported.', 'ecwid-shopping-cart' ); ?> <span data-ec-importer-alert="limit"> <?php echo wp_kses_post( sprintf( __( 'Part of the products have not been copied to %1$s, because you reached the products limit on your pricing plan in %1$s. If you want to import more products, please consider <nobr><a %2$s>upgrading your %1$s plan.</a></nobr>', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand(), 'href="' . esc_url( $this->_get_billing_page_url() ) . '"' ) ); ?> </span> </div> <div class="cta-block__content" data-ec-importer-alert="warning"> <?php echo sprintf( wp_kses_post( __( 'Download <a href="%s">import log</a>', 'ecwid-shopping-cart' ) ), 'admin-post.php?action=' . esc_attr( Ecwid_Import_Page::ACTION_GET_WOO_IMPORT_LOG ) ); ?> </div> </div> <div class="cta-block__cta"> <a class="btn btn-primary btn-medium" href="admin.php?page=<?php echo esc_attr( Ecwid_Admin::ADMIN_SLUG ); ?>-admin-products"> <?php echo esc_html( sprintf( __( 'Go to Your %s Products', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ) ); ?> </a> </div> </div> </div> </div> </div> </div> �������������������������������������������������������������ecwid-shopping-cart/templates/importer/woo-main.tpl.php���������������������������������������������0000644�����������������00000014237�15122273603�0017317 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div class="settings-page"> <div class="settings-page__header"> <div class="settings-page__titles settings-page__titles--left"> <h1 class="settings-page__title"><?php echo esc_html( sprintf( __( 'Import Your Products From Woocommerce to %s', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ) ); ?></h1> <div class="settings-page__subtitle"></div> </div> <?php if ( $this->_is_token_ok() ) { require __DIR__ . '/woo-complete-alert.tpl.php'; } ?> <div class="named-area"> <div class="named-area__header"> <div class="named-area__titles"> <div class="named-area__title"><?php esc_html_e( 'Update your catalog', 'ecwid-shopping-cart' ); ?></div> <div class="named-area__subtitle"><?php echo esc_html__( sprintf( __( 'This import will copy your WooCommerce products and categories to your %s store.', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ) ); ?></div> </div> </div> <div class="named-area__body"> <div class="a-card-stack" data-ec-importer-card-stack> <div class="a-card a-card--normal"> <div class="a-card__paddings"> <div class="feature-element has-picture"> <div class="feature-element__core"> <div class="feature-element__data"> <div class="feature-element__title" data-ec-importer-state="default"><?php echo esc_html( sprintf( __( 'Import your products from Woocommerce to %s', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ) ); ?></div> <div class="feature-element__title" data-ec-importer-state="process"><?php esc_html_e( 'Import is in Progress', 'ecwid-shopping-cart' ); ?></div> <div class="feature-element__title" data-ec-importer-state="complete"><?php echo esc_html( sprintf( __( 'Import your products from WooCommerce to %s', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ) ); ?></div> <?php if ( ! $this->_is_token_ok() ) { require __DIR__ . '/import-no-token.tpl.php'; } ?> <?php if ( $this->_is_token_ok() ) { ?> <div class="feature-element__status" data-ec-importer-state="complete"> <span class="feature-element__status-title success"> <?php echo sprintf( __( 'Import completed. <a href="%s">Run again.</a>', 'ecwid-shopping-cart' ), //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped esc_url( admin_url( 'admin.php?page=' . Ecwid_Import_Page::PAGE_SLUG_WOO ) ) ); ?> </span> </div> <div class="feature-element__status" data-ec-importer-state="process"> <div class="canonical-status canonical-status--has-icon canonical-status--loading canonical-status--prepend-icon canonical-status--warning"> <div class="canonical-status__text"> <?php esc_html_e( 'Copying products and categories.', 'ecwid-shopping-cart' ); ?> <?php echo wp_kses_post( sprintf( __( 'Importing %1$s of %2$s items', 'ecwid-shopping-cart' ), '<span id="import-progress-current">0</span>', '<span id="import-progress-total">' . ( Ecwid_Importer::count_woo_products() + Ecwid_Importer::count_woo_categories() ) . '</span>' ) ); ?> </div> <div class="canonical-status__text" data-ec-importer-process-images style="display: none;"> <?php esc_html_e( 'Copying images.', 'ecwid-shopping-cart' ); ?> <?php echo wp_kses_post( sprintf( __( 'Importing %1$s of %2$s items', 'ecwid-shopping-cart' ), '<span id="import-images-progress-current">0</span>', '<span id="import-images-progress-total">0</span>' ) ); ?> </div> <div class="canonical-status__icon"> <span> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 28 28" width="28" height="28" focusable="false"> <path d="M14,27C6.83,27,1,21.17,1,14c0-1.56,0.27-3.08,0.81-4.52C2.1,8.7,2.96,8.31,3.74,8.59c0.78,0.29,1.17,1.15,0.88,1.93 C4.21,11.63,4,12.8,4,14c0,5.51,4.49,10,10,10c5.51,0,10-4.49,10-10c0-5.51-4.49-10-10-10c-0.83,0-1.5-0.67-1.5-1.5S13.17,1,14,1 c7.17,0,13,5.83,13,13C27,21.17,21.17,27,14,27z"></path> </svg> </span> </div> </div> </div> <div class="feature-element__content"> <div class="feature-element__text"> <p> <?php esc_html_e( 'Import creates new products and update the existing products with matching SKUs.', 'ecwid-shopping-cart' ); ?> <?php if ( ! Ecwid_Config::is_wl() ) { echo wp_kses_post( sprintf( __( 'Please mind the maximum number of products and categories you can have in your Ecwid store. This import tool will automatically stop when the store products limit is reached. To check the current store limit or increase it, please see the <nobr><a %s target="_blank">"Billing & Plans"</a></nobr> page in your Ecwid store control panel.', 'ecwid-shopping-cart' ), 'href="admin.php?page=ec-store-admin-billing"' ) ); } ?> </p> </div> <div class="feature-element__action" data-ec-importer-state="default"> <button type="button" class="btn btn-primary btn-medium" id="ec-importer-woo-go"> <span><?php esc_html_e( 'Start Import', 'ecwid-shopping-cart' ); ?></span> </button> </div> </div> <?php }//end if ?> </div> <div class="feature-element__picture"> <img src="<?php echo( esc_attr( ECWID_PLUGIN_URL ) ); ?>templates/importer/import-picture-feature.png" alt="" /> </div> </div> </div> </div> </div> <?php if ( $this->_is_token_ok() ) { require __DIR__ . '/woo-summary.tpl.php'; } ?> </div> </div> </div> </div> </div> �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/templates/importer/woo-summary.tpl.php������������������������������������������0000644�����������������00000003075�15122273603�0020066 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div class="a-card a-card--normal" data-ec-importer-state="default"> <div class="a-card__paddings"> <ul class="titled-items-list"> <li class="titled-items-list__item titled-item"> <div class="titled-item__title"><?php esc_html_e( 'Import summary', 'ecwid-shopping-cart' ); ?></div> <div class="titled-item__content"> — <?php esc_html_e( 'Your WooCommerce store has ', 'ecwid-shopping-cart' ); echo esc_html( $this->_get_products_categories_message( Ecwid_Importer::count_woo_products(), Ecwid_Importer::count_woo_categories() ) ); ?> </div> <div class="titled-item__content"> — <?php echo esc_html( sprintf( __( 'Your %s store has ', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ) ); echo esc_html( $this->_get_products_categories_message( Ecwid_Importer::count_ecwid_products(), Ecwid_Importer::count_ecwid_categories() ) ); ?> </div> <div class="titled-item__content"> — <?php echo esc_html( sprintf( __( 'After import, your %s store will have ', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ) ); echo esc_html( $this->_get_products_categories_message( Ecwid_Importer::count_ecwid_products() + Ecwid_Importer::count_woo_products(), Ecwid_Importer::count_ecwid_categories() + Ecwid_Importer::count_woo_categories() ) ); ?> </div> </li> </ul> </div> </div> �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/templates/importer/post-catalog/index.php���������������������������������������0000444�����������������00000000000�15122273603�0020454 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/templates/popup/deactivate.php��������������������������������������������������0000644�����������������00000002623�15122273603�0016402 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<h3><?php esc_html_e( 'If you have a moment, please let us know why you are deactivating:', 'ecwid-shopping-cart' ); ?></h3> <ul class="reasons-list"> <?php foreach ( $reasons as $key => $reason ) : ?> <li class="reasons-list-item" data-option-key="<?php echo esc_attr( $key ); ?>"> <label> <span> <input type="radio" name="reason" value="<?php echo esc_attr( $key ); ?>" data-text="<?php esc_attr_e( $reason['text'] ); ?>"/> </span> <span> <?php echo esc_html( $reason['text'] ); ?> </span> </label> <?php if ( isset( $reason['has_message'] ) && $reason['has_message'] ) : ?> <div class="message"> <?php $message_hint = ''; if ( $reason['code'] === 'theme' ) { $message_hint = $reason['message_hint']; } ?> <textarea name="message[<?php echo esc_attr( $key ); ?>]" placeholder="<?php echo esc_attr( $reason['message_hint'] ); ?>"><?php echo esc_textarea( $message_hint ); ?></textarea> <div class="ec-deactivate-notice"> <?php echo sprintf( __( 'You can <a %1$s>contact %2$s support</a> and let us help you with the problem you are facing, instead of removing the plugin.', 'ecwid-shopping-cart' ), //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped 'href="' . esc_url( $support_link ) . '" target="_blank"', esc_html( Ecwid_Config::get_brand() ) ); ?> </div> </div> <?php endif; ?> </li> <?php endforeach; ?> </ul> �������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/templates/popup/footer.php������������������������������������������������������0000644�����������������00000000310�15122273603�0015556 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?php foreach ( $this->_get_footer_buttons() as $button ) : ?> <button class="button <?php echo esc_attr( $button->class ); ?>"><?php echo esc_html( $button->title ); ?></button> <?php endforeach; ?> ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/templates/popup/header.php������������������������������������������������������0000644�����������������00000000071�15122273603�0015514 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<h3><?php echo esc_html( $this->_get_header() ); ?></h3> �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/templates/popup/popup.php�������������������������������������������������������0000644�����������������00000000540�15122273603�0015430 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div class="ecwid-popup <?php echo esc_html($this->_class); ?>"> <div class="ecwid-popup-window"> <div class="ecwid-popup-header"> <?php $this->_render_header(); ?> </div> <div class="ecwid-popup-body"> <?php $this->_render_body(); ?> </div> <div class="ecwid-popup-footer"> <?php $this->_render_footer(); ?> </div> </div> </div>����������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/templates/admin-footer.php������������������������������������������������������0000644�����������������00000002115�15122273603�0015506 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div class="ecwid-admin-footer"> <?php if ( @$show_reconnect && Ecwid_Config::should_show_reconnect_in_footer() ) { ?> <div class="ecwid-admin-footer-block"> <h4 class="ecwid-admin-footer-title"><?php echo __( 'Store ID', 'ecwid-shopping-cart' ); ?> <?php echo esc_html( get_ecwid_store_id() ); ?></h4> <div class="ecwid-admin-footer-text"> <?php echo esc_html( sprintf( __( 'Want to connect another %s store?', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ) ); ?> <?php echo wp_kses_post( sprintf( __( '<a %s>Reconnect</a>', 'ecwid-shopping-cart' ), 'href="' . Ecwid_Admin::get_dashboard_url() . '&reconnect"' ) ); ?> </div> </div> <?php } ?> <?php if ( ! Ecwid_Config::is_wl() ) { ?> <div class="ecwid-admin-footer-block"> <h4 class="ecwid-admin-footer-title"><?php esc_html_e( 'Questions?', 'ecwid-shopping-cart' ); ?></h4> <div class="ecwid-admin-footer-text"> <?php echo wp_kses_post( __( '<a href="admin.php?page=' . Ecwid_Admin::ADMIN_SLUG . '-help">Read FAQ or contact support</a>', 'ecwid-shopping-cart' ) ); ?> </div> </div> <?php } ?> </div> ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/templates/admin-head.php��������������������������������������������������������0000644�����������������00000000344�15122273603�0015113 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div class="head"> <?php if ( ! Ecwid_Config::is_wl() ) { ecwid_embed_svg( 'ecwid-logo-blue' ); } ?> <h3> <?php echo esc_html( sprintf( __( '%s', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ) ); ?> </h3> </div> ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/templates/admin-message.php�����������������������������������������������������0000644�����������������00000002631�15122273603�0015637 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div class="ecwid-message <?php echo esc_attr( $type ); ?>"> <?php if ( $title ) : ?> <div class="ecwid-message-title"> <?php echo esc_html( $title ); ?> </div> <?php endif; ?> <div class="ecwid-message-content"> <?php echo wp_kses_post( $message ); ?> </div> <?php if ( $primary_button || $secondary_button || $do_not_show_again ) : ?> <div class="ecwid-message-buttons"> <?php if ( $primary_button ) : ?> <div> <a class="button button-primary" href="<?php echo esc_attr( $primary_url ); ?>" <?php if ( $primary_blank ) : ?> target="_blank" <?php endif; ?> > <?php echo esc_html( $primary_title ); ?> </a> </div> <?php endif; ?> <?php if ( $secondary_button ) : ?> <div> <a class="button <?php if ( $secondary_hide ) : ?> ecwid-message-hide <?php endif; ?>" href="<?php echo esc_attr( $secondary_url ); ?>" name="<?php echo esc_attr( $name ); ?>" <?php if ( $secondary_blank ) : ?> target="_blank" <?php endif; ?> > <?php echo esc_html( $secondary_title ); ?> </a> </div> <?php endif; ?> <div class="hide-wrapper"> <?php if ( $do_not_show_again ) : ?> <a class="ecwid-message-hide" name="<?php echo esc_attr( $name ); ?>" href="javascript: void(0);"> <?php echo esc_html( __( 'Never show this message again', 'ecwid-shopping-cart' ) ); ?> </a> <?php endif; ?> </div> </div> <?php endif; ?> </div> �������������������������������������������������������������������������������������������������������ecwid-shopping-cart/templates/admin-params.php������������������������������������������������������0000644�����������������00000005400�15122273603�0015473 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<h2>Online store hidden parameters</h2> <div style="max-width: 800px"> <b style="color: red">WARNING: ADVANCED CONFIGURATION AHEAD!</b> Changing these settings may significantly affect the plugin functionality, including admin settings and storefront. You should only continue if you are sure of what you are doing. <br /> <br /> Having a problem working with the Online store plugin? Visit our <a target="_blank" href="https://support.ecwid.com">Help center</a> if you haven't yet. </div> <br /> <form method="POST" type="multipart/form-data" action="admin-post.php?action=<?php echo esc_attr( ecwid_get_update_params_action() ); ?>"> <input type="hidden" name="_wpnonce" value="<?php echo esc_attr( wp_create_nonce( ecwid_get_update_params_action() ) ); ?>" /> <style type="text/css"> #ec-params-table { border-collapse: collapse; border-spacing: 0; margin-bottom: 5px; } #ec-params-table td { padding: 3px; } #ec-params-table tr:hover { background-color: lightblue; } #ec-params-table select { min-width: 70px; } </style> <table id="ec-params-table"> <?php foreach ( ecwid_get_update_params_options() as $key => $option ) : ?> <tr style="padding: 0 0 5px;"> <td><?php echo esc_html( $key ); ?>: </td> <td> <?php if ( isset( $option['type'] ) && $option['type'] === 'bool' ) : ?> <select name="option[<?php echo esc_attr( $key ); ?>]"> <option value="" <?php if ( get_option( $key ) === '' ) : ?> selected="selected"<?php endif; ?>>off</option> <option value="Y" <?php if ( get_option( $key ) ) : ?> selected="selected"<?php endif; ?>>on</option> </select> <?php elseif ( isset( $option['type'] ) && $option['type'] === 'string' ) : ?> <input type="text" name="option[<?php echo esc_attr( $key ); ?>]" value="<?php echo esc_attr( get_option( $key ) ); ?>"> <?php elseif ( isset( $option['type'] ) && $option['type'] === 'html' ) : ?> <textarea name="option[<?php echo esc_attr( $key ); ?>]" style="width:500px"><?php echo esc_textarea( get_option( $key ) ); ?></textarea> <?php elseif ( ! empty( $option['values'] ) ) : ?> <select name="option[<?php echo esc_attr( $key ); ?>]"> <?php foreach ( $option['values'] as $value ) : ?> <option value="<?php echo esc_attr( $value ); ?>" <?php if ( $value === get_option( $key ) ) { ?> selected="selected" <?php } ?> ><?php echo esc_html( $value ); ?></option> <?php endforeach; ?> </select> <?php endif; ?> <?php echo esc_attr( get_option( $key ) ); ?> </td> </tr> <?php endforeach; ?> </table> <button class="btn btn-primary">Save</button> </form> <br /> <h2>Clear plugin cache</h2> <a href="?<?php echo esc_attr( ecwid_get_clear_all_cache_action() ); ?>&redirect_back">Clear all caches</a> ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/templates/admin-timeout.php�����������������������������������������������������0000644�����������������00000001710�15122273603�0015676 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div class="ecwid-admin-timeout"> <div class="ec-store-box"> <div class="logo"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 70 70"> <path d="M34.5 67C16.58 67 2 52.42 2 34.5S16.58 2 34.5 2 67 16.58 67 34.5 52.42 67 34.5 67zm0-62C18.23 5 5 18.23 5 34.5S18.23 64 34.5 64 64 50.77 64 34.5 50.77 5 34.5 5z"></path> <path d="M34.5 49c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5zM35.5 38.57h-2l-1-14c0-1.17.89-2.07 2-2.07s2 .9 2 2l-1 14.07z"></path> </svg> </div> <h3 class="title"><?php esc_html_e( "Sorry we're having technical difficulties.", 'ecwid-shopping-cart' ); ?></h3> <div class="text"> <?php echo wp_kses_post( __( 'Our team is already working on this issue. Please refresh the page in a few minutes. If the issue persists, please contact <a target="_blank" href="https://help.ecwid.com/customer/portal/emails/new">our customer support team</a>.', 'ecwid-shopping-cart' ) ); ?> </div> </div> ��������������������������������������������������������ecwid-shopping-cart/templates/advanced-settings.php�������������������������������������������������0000644�����������������00000010770�15122273603�0016533 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<h2><?php echo esc_html( sprintf( __( '%s — Advanced settings', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ) ); ?></h2> <div class="wrap"> <form class="pure-form pure-form-aligned ecwid-settings advanced-settings" method="POST" action="options.php"> <?php settings_fields( 'ecwid_options_page' ); ?> <input type="hidden" name="settings_section" value="advanced" /> <fieldset> <div class="pure-control-group checkbox"> <div class="label"> <label for="ecwid_is_sso_enabled" class="premium-feature"> <input id="ecwid_is_sso_enabled" name="ecwid_is_sso_enabled" type="checkbox" <?php if ( $is_sso_enabled ) : ?> checked="checked" <?php endif; ?> <?php if ( $is_sso_checkbox_disabled ) : ?> disabled="disabled" <?php endif; ?> /> <?php esc_html_e( 'Customer Single Sign-On', 'ecwid-shopping-cart' ); ?> <?php ecwid_embed_svg( 'star' ); ?> </label> <div class="note"> <?php echo esc_html( sprintf( __( 'Single Sign-On allows your customers to have a single login for your WordPress site and your %s. When someone logs in to your site, they will automatically be logged in to their customer account in your store as well with no need to enter their email/password again.', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ) ); ?> </div> <?php if ( ! ecwid_is_paid_account() ) : ?> <div class="upgrade-note"> <a class="button ecwid-button button-green" target="_blank" href="<?php echo esc_url( Ecwid_Admin::get_dashboard_url() ); ?>&ec-page=<?php echo rawurlencode( Ecwid_Admin_Main_Page::PAGE_HASH_UPGRADE ); ?>"> <?php esc_html_e( 'Upgrade to get this feature', 'ecwid-shopping-cart' ); ?> </a> <div class="note grayed-links"> <?php echo esc_html( sprintf( __( 'Please subscribe to a paid plan to get this feature.', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ) ); ?> </div> </div> <?php endif; ?> <?php if ( ! $is_sso_enabled && ecwid_is_paid_account() && ! get_option( 'ecwid_sso_secret_key' ) && ! $has_create_customers_scope ) : ?> <div class="note"> <?php echo wp_kses_post( sprintf( __( 'To allow %1$s automatically log in customers to your store, please provide it with a permission to use the customer data in the store. <a %2$s>Please use this link to do that</a>', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand(), 'href="' . $reconnect_link . '"' ) ); ?> </div> <?php endif; ?> <?php if ( ! get_option( 'users_can_register' ) ) : ?> <div class="note"> <?php echo wp_kses_post( sprintf( __( 'To make sure your customer can actually log in to your site and store, enable registration in the <a %s>site settings</a>', 'ecwid-shopping-cart' ), 'href="options-general.php"' ) ); ?> </div> <?php endif; ?> </div> </div> <hr /> <?php if ( Ecwid_Products::is_enabled() ) : ?> <div class="pure-control-group checkbox"> <div class="label"> <label for="<?php echo esc_attr( Ecwid_Products::OPTION_ENABLED ); ?>"> <input id="<?php echo esc_attr( Ecwid_Products::OPTION_ENABLED ); ?>" name="<?php echo esc_attr( Ecwid_Products::OPTION_ENABLED ); ?>" type="checkbox" <?php if ( Ecwid_Products::is_enabled() ) : ?> checked="checked" <?php endif; ?> value="Y" <?php if ( ! Ecwid_Products::is_feature_available() ) : ?> disabled="disabled" <?php endif; ?> /> <?php esc_html_e( 'Integration with search on your site', 'ecwid-shopping-cart' ); ?> </label> <div class="note"> <?php echo esc_html( sprintf( __( '%s stores your products data in a secure cloud storage. The product pages are displayed on the fly when a customer browses your store. So, basically, the products are not stored on the site, that\'s why the site search doesn\'t find product pages while looking through site pages and posts. This option enables a local storage mode: the products will be stored both in the cloud and on your site. The site search results will list product pages as well as regular pages/posts of your site.', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ) ); ?> </div> </div> </div> <?php ecwid_sync_do_page(); ?> <?php endif; ?> </fieldset> <fieldset> <div class="pure-control-group" style="margin-top: 30px"> <button type="submit" class="<?php echo esc_attr( ECWID_MAIN_BUTTON_CLASS ); ?>"> <?php esc_html_e( 'Save changes', 'ecwid-shopping-cart' ); ?> </button> </div> </fieldset> </form> </div> ��������ecwid-shopping-cart/templates/cache_log.php���������������������������������������������������������0000644�����������������00000007056�15122273603�0015037 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<style> .cache_log > div { display: table-cell; } .cache_log .title { width: 200px; } .cache_log .entity-title { width: 340px; } .cache_log .time { width: 190px; } .cache_log .timestamp { width: 120px; } .cache_log .op { width: 180px; } .cache_log .size-300 { width: 300px; } .cache_log .nested-field { display: table-row; } .cache_log .nested-field .param-name, .cache_log .nested-field .param-value { display: table-cell; } .cache_log .title.collapsed:before { border: 1px solid black; content: '+'; } .cache_log .title.collapsed:after { content: '...'; } .cache_log .title.collapsed>.data { display: none; } .cache_log .title.expanded:before { border: 1px solid black; content: '-'; } .cache_log .title.expanded>.data { display: block; padding-left: 15px; } </style> <?php function render_nested( $name, $data ) { if ( is_array( $data ) || is_object( $data ) ) { echo "<div class='size-300'><label class='title collapsed' onClick='jQuery(this).toggleClass(\"expanded\").toggleClass(\"collapsed\"); event.stopPropagation(); return false;'>" . esc_html( $name ); foreach ( $data as $key => $item ) { echo '<div class="data">'; render_nested( $key, $item ); echo '</div>'; } echo '</label></div>'; } else { echo "<div class='nested-field'><div class='param-name'>" . esc_html( $name ) . ":</div><div class='param-value'>" . esc_html( $data ) . '</div></div>'; } } $cache = get_option( 'ecwid_cache_log' ); $kill = 0; if ( isset( $_GET['kill'] ) ) { $kill = sanitize_text_field( wp_unslash( $_GET['kill'] ) ); } while ( $kill-- > 0 && count( $cache ) > 0 ) { array_pop( $cache ); } update_option( 'ecwid_cache_log', $cache ); $cache = get_option( 'ecwid_cache_log' ); if ( ! $cache ) { $cache = array(); } foreach ( $cache as $item ) { echo '<div class="cache_log">'; $ts = date_i18n( 'H:i:s m/d/y', $item['timestamp'] ); echo '<div class="timestamp">' . esc_html( $ts ) . '</div>'; echo '<div class="op">' . esc_html( $item['operation'] ) . '</div>'; if ( $item['operation'] == 'invalidate_products_cache' || $item['operation'] == 'invalidate_categories_cache' ) { $time = date_i18n( 'D F j H:i:s Y', $item['time'] ); echo '<div class="time">' . esc_html( $time ) . '</div>'; } if ( $item['operation'] === 'get' ) { echo '<div class="entity-title">' . esc_html( $item['name'] ) . '</div>'; render_nested( 'result', $item['result'] ); } if ( $item['operation'] === 'set' ) { echo '<div class="entity-title">' . esc_html( $item['name'] ) . '</div>'; render_nested( 'value', $item['value'] ); } if ( in_array( $item['operation'], array( 'get_from_categories_cache', 'get_from_products_cache', 'get_from_static_pages_cache' ) ) ) { $key = @$item['name']; echo '<div class="entity-title">' . esc_html( $key ) . '</div>'; render_nested( 'result', $item['result'] ); } if ( $item['operation'] === 'get_from_static_pages_cache' ) { $valid_from = @$item['valid_from']; echo '<div class="entity-title">' . esc_html( $valid_from ) . '</div>'; } if ( $item['operation'] === 'reg cache check' ) { render_nested( 'stats', $item['stats'] ); } if ( $item['operation'] === 'is_trusted' ) { render_nested( 'self', $item ); } echo '</div>'; }//end foreach echo '<br />'; echo 'cats:' . esc_html( EcwidPlatform::get( EcwidPlatform::CATEGORIES_CACHE_VALID_FROM ) ) . '<br />'; echo 'prods:' . esc_html( EcwidPlatform::get( EcwidPlatform::PRODUCTS_CACHE_VALID_FROM ) ) . '<br />'; echo 'profile:' . esc_html( EcwidPlatform::get( EcwidPlatform::PROFILE_CACHE_VALID_FROM ) ) . '<br />'; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/templates/dashboard-blog-posts.tpl.php������������������������������������������0000644�����������������00000001756�15122273603�0017750 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div class="template-container"> <div class="ecwid-blog-post"> <div class="ecwid-blog-post-image-container"> <a class="ecwid-blog-post-link" target="_blank"><div class="ecwid-blog-post-image"></div></a> </div> <div class="ecwid-blog-post-text-container"> <a class="ecwid-blog-post-title ecwid-blog-post-link" target="_blank"></a> <p class="ecwid-blog-post-excerpt"></p> </div> </div> </div> <div class="ecwid-blog-posts"></div> <div class="ecwid-blog-footer"> <a href="<?php esc_html_e( 'https://www.ecwid.com/blog', 'ecwid-shopping-cart' ); ?>"> <?php echo esc_html( sprintf( __( '%s Blog', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ) ); ?> <span aria-hidden="true" class="dashicons dashicons-external"></span> </a> | <a href="<?php esc_html_e( 'https://support.ecwid.com/hc/en-us', 'ecwid-shopping-cart' ); ?>"> <?php echo esc_html_e( 'Knowledge Base', 'ecwid-shopping-cart' ); ?> <span aria-hidden="true" class="dashicons dashicons-external"></span> </a> </div> ������������������ecwid-shopping-cart/templates/debug.php�������������������������������������������������������������0000644�����������������00000007550�15122273603�0014220 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div class="ecwid-debug"> <?php $all_plugins = get_plugins(); $active_plugins = get_option( 'active_plugins' ); $theme = wp_get_theme(); $all_options = wp_load_alloptions(); ?> <a class="button button-primary" href="admin-post.php?action=ecwid_get_debug" style="margin-top:10px"><?php esc_html_e( 'Download log file', 'ecwid-shopping-cart' ); ?></a> <h2>Active plugins</h2> <div> <?php foreach ( $active_plugins as $path ) : // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited ?> <div class="section"> <div> <?php echo esc_html( $all_plugins[ $path ]['Name'] ); ?> </div> <div> <?php echo esc_url( $all_plugins[ $path ]['PluginURI'] ); ?> </div> </div> <?php endforeach; ?> </div> <h2>All plugins</h2> <div> <?php foreach ( $all_plugins as $key => $item ) : ?> <div class="section"> <div> <?php echo esc_html( $item['Name'] ); ?> </div> <div> <?php echo esc_url( $item['PluginURI'] ); ?> </div> </div> <?php endforeach; ?> </div> <h2>Theme</h2> <div class="section"> <div><?php echo esc_html( $theme->get( 'Name' ) ); ?></div> <div><?php echo esc_url( $theme->get( 'ThemeURI' ) ); ?></div> </div> <h2>Api V3 profile test</h2> <div> <?php if ( is_wp_error( $api_v3_profile_results ) ) { echo 'WP_Error: ' . esc_html( $api_v3_profile_results->get_error_message() ); } else { echo 'Response status: ' . esc_html( implode( ' ', $api_v3_profile_results['response'] ) ); } ?> </div> <h2>Error log</h2> <div> <?php if ( isset( $all_options['ecwid_error_log'] ) ) { foreach ( json_decode( $all_options['ecwid_error_log'], true ) as $key => $item ) : ?> <div class="section"><?php echo esc_html( $item['message'] ); ?><br><br></div> <?php endforeach; } ?> </div> <h2>Misc</h2> <div> <div class="section"> <div>Theme identification</div> <div><?php echo esc_html( ecwid_get_theme_identification() ); ?></div> </div> <div class="section"> <div>Affiliate Ref ID</div> <div><?php echo esc_html( apply_filters( 'ecwid_get_new_store_ref_id', '' ) ); ?></div> </div> </div> <h2>Options</h2> <div> <?php foreach ( $all_options as $key => $option ) : ?> <?php if ( strpos( $key, 'ecwid' ) !== false ) : ?> <div class="section"> <div> <?php echo esc_html( $key ); ?> </div> <div> <?php echo esc_html( $option ); ?> </div> </div> <?php endif; ?> <?php endforeach; ?> </div> <h2>Store pages</h2> <div> <?php foreach ( Ecwid_Store_Page::get_store_pages_array() as $page_id ) : ?> <div> <a target="_blank" href="post.php?post=<?php echo esc_attr( $page_id ); ?>&action=edit"><?php echo esc_html( @get_post( $page_id )->post_name ); ?></a> <?php if ( $page_id == get_option( Ecwid_Store_Page::OPTION_MAIN_STORE_PAGE_ID ) ) : ?> <b> - main</b> <?php endif; ?> </div> <?php endforeach; ?> </div> <?php if ( Ecwid_Config::is_wl() ) : ?> <?php $wl_config_methods = array( 'get_kb_link', 'get_contact_us_url', 'get_registration_url', 'get_channel_id', 'get_oauth_token_url', 'get_oauth_auth_url', 'get_oauth_appid', 'get_api_domain', 'get_scriptjs_domain', 'get_cpanel_domain' ); ?> <h2>WL</h2> <div> <?php foreach ( $wl_config_methods as $method ) : ?> <div class="section"> <div><?php echo esc_html( str_replace( 'get_', '', $method ) ); ?></div> <div> <?php if ( method_exists( 'Ecwid_Config', $method ) ) { echo esc_html( Ecwid_Config::$method() ); } ?> </div> </div> <?php endforeach; ?> <p> <a href="admin.php?page=ec_debug&ec-reset-plugin-config" style="margin-top:10px"><?php esc_html_e( 'Reset plugin config', 'ecwid-shopping-cart' ); ?></a> </p> </div> <?php endif; ?> <h2>PhpInfo</h2> <div> <iframe width="80%" height="500px" srcdoc=" <?php ob_start(); phpinfo(); $contents = ob_get_contents(); ob_end_clean(); echo esc_attr( $contents ); ?> "></iframe> </div> </div> <script> jQuery('h2').click(function() { jQuery(this).toggleClass('hide'); }) </script> ��������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/templates/ecwid-admin.php�������������������������������������������������������0000644�����������������00000002077�15122273603�0015312 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<script type='text/javascript'>//<![CDATA[ jQuery(document.body).addClass('ecwid-admin-iframe ecwid-no-padding'); jQuery(document).ready(function() { jQuery('#ecwid-frame').attr('src', '<?php echo $iframe_src; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>'); ecwidSetPopupCentering('#ecwid-frame'); jQuery.ajax({ url: ajaxurl + '?action=<?php echo esc_attr( Ecwid_Store_Page::WARMUP_ACTION ); ?>' }); }); //]]> </script> <style type="text/css"> <?php if ( isset( $_GET['page'] ) && in_array( $_GET['page'], array( 'ec-storefront-settings', 'ec-store-developers' ) ) ) { echo '#ecwid-frame { display: none; } '; echo esc_html( sprintf( '#%s { display: block; }', sanitize_text_field( wp_unslash( $_GET['page'] ) ) ) ); } ?> .ec-ui-framework-page { display: none; } </style> <?php Ecwid_Admin_Storefront_Page::do_page(); Ecwid_Admin_Developers_Page::do_page(); ?> <iframe seamless id="ecwid-frame" frameborder="0" width="100%" height="700" scrolling="no"></iframe> <?php require_once ECWID_PLUGIN_DIR . 'templates/admin-footer.php'; ?> �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/templates/help.php��������������������������������������������������������������0000644�����������������00000027164�15122273603�0014065 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<script type='text/javascript'>//<![CDATA[ jQuery(document).ready(function() { document.body.className += ' ecwid-no-padding'; }) //]]> </script> <div class="ecwid-help main-container"> <div class="block-search block-search-index"> <h2><?php esc_html_e( 'How can we help you?', 'ecwid-shopping-cart' ); ?></h2> <div class="hds-container"> <div class="hds-wrapper"> <form class="hds-form" method="get" target="_blank" data-action="<?php esc_html_e( 'https://support.ecwid.com/hc/en-us/search', 'ecwid-shopping-cart' ); ?>" onsubmit="help-page searchquerysubmited"> <div class="input-wrapper input-prepend"> <input type="text" class="form-control q" value="" id="q" placeholder="<?php esc_html_e( 'E.g. How to set up shipping', 'ecwid-shopping-cart' ); ?> " autocomplete="off"/> <span class="hds-loader"></span> <button type="submit" class="hds-submit btn" id="hds-submit" onClick=""> <span class="icon-search"></span> <span class="btn-text"><?php esc_html_e( 'Search the Knowledge Base', 'ecwid-shopping-cart' ); ?> </span> </button> </div> </form> </div> </div> <div class="block-search block-search-kb-link"> <?php echo wp_kses_post( sprintf( __( 'or <a %s>Browse the Help Center', 'ecwid-shopping-cart' ), 'href="https://support.ecwid.com/"' ) ); ?> </div> </div> <div class="block-faq"> <h2><?php esc_html_e( 'Frequently Asked Questions', 'ecwid-shopping-cart' ); ?> </h2> <div class="block-faq-wrap"> <ul class="block-faq-list"> <?php foreach ( $faqs as $idx => $faq ) { ?> <?php if ( $idx % 2 == 0 ) { ?> <li class="index-article <?php if ( $idx >= $col_size ) { echo ' index-article--hidden';} ?> "> <a class="index-article-title" href="#" onclick="return false;"> <i class="icon-down"></i><?php echo esc_html( $faq->title ); ?> </a> <div class="index-article-body"> <?php echo wp_kses_post( $faq->body ); ?> </div> </li> <?php } ?> <?php } ?> </ul> <ul class="block-faq-list"> <?php foreach ( $faqs as $idx => $faq ) { ?> <?php if ( $idx % 2 == 1 ) { ?> <li class="index-article <?php if ( $idx >= $col_size ) { echo ' index-article--hidden';} ?> "> <a class="index-article-title" href="#" onclick="return false;"> <i class="icon-down"></i><?php echo esc_html( $faq->title ); ?> </a> <div class="index-article-body"> <?php echo wp_kses_post( $faq->body ); ?> </div> </li> <?php } ?> <?php } ?> </ul> </div> <div class="block-topics-link"> <a href="#" class="horizontal-icolink"> <?php esc_html_e( 'See more', 'ecwid-shopping-cart' ); ?> <i class="icon-arr-right"></i> </a> </div> <script> (function() { Element.prototype.addClass = function(c) { var re = new RegExp("(^|\\s)" + c + "(\\s|$)", "g"); if (re.test(this.className)) { return this; } this.className = (this.className + " " + c).replace(/\s+/g, " ").replace(/(^ | $)/g, ""); return this; }; Element.prototype.removeClass = function(c) { var re = new RegExp("(^|\\s)" + c + "(\\s|$)", "g"); this.className = this.className.replace(re, "$1").replace(/\s+/g, " ").replace(/(^ | $)/g, ""); return this; }; Element.prototype.hasClass = function(c) { var re = new RegExp("(^|\\s)" + c + "(\\s|$)", "g"); if (re.test(this.className)) { return true; } return false; }; var faqList = document.querySelectorAll('.block-faq-list'); var faqListTrigger = document.querySelector('.block-topics-link'); var getFaqItem = function(el) { if (el.hasClass('block-faq-list') || el.hasClass('index-article-body')) { return null; } if (el.hasClass('index-article')) { return el; } return getFaqItem( el.parentNode ); }; var scrollToElement = function scrollToElement(el) { var duration = 250; var start = document.body.scrollTop; var end = el.offsetTop - 50; if (start === end) { return } var diff = end - start; var totalFrames = duration/10; var count = 0; function easeIn(t) { return t*t*t; } function animate() { var scrollTop = document.documentElement.scrollTop || document.body.scrollTop; count = count + 1; document.documentElement.scrollTop = document.body.scrollTop = start + diff*easeIn(count/totalFrames); if (scrollTop !== end && count < totalFrames) { requestID = requestAnimationFrame(animate); } else { cancelAnimationFrame(requestID); } } requestAnimationFrame(animate); }; var showFaqTopic = function showFaqTopic(e){ var width = window.innerWidth; var item = getFaqItem(e.target); if (!item) {return} if (item.hasClass('active')) { item.removeClass('active') } else { var active = document.querySelector('.block-faq-list .active'); if (active) {active.removeClass('active')}; item.addClass('active'); if (width < 768) { scrollToElement(item); } } }; var showAllTopics = function showAllTopics(e) { e.preventDefault(); var hiddenItems = document.querySelectorAll('.index-article--hidden'); for (var i = 0; i < hiddenItems.length; i++) { hiddenItems[i].removeClass('index-article--hidden'); } this.removeEventListener('click', showAllTopics, false); this.parentNode.removeChild(this); }; if (!faqList) { return } for (var i = 0; i < faqList.length; i++) { faqList[i].addEventListener('click', showFaqTopic, false); } faqListTrigger.addEventListener('click', showAllTopics, false); })(); </script> </div> <div class="block-help"> <div class="content-wrap cf"> <ul> <li> <div class="block-help-item"> <a href="<?php esc_html_e( Ecwid_Config::get_contact_us_url(), 'ecwid-shopping-cart' ); ?>" target="_blank"><?php esc_html_e( 'Contact us', 'ecwid-shopping-cart' ); ?> </a> <p><?php esc_html_e( 'Still have questions about Ecwid? Let us know!', 'ecwid-shopping-cart' ); ?> </p> </div> </li> </ul> </div> </div> <?php if ( isset( $_SERVER['REMOTE_ADDR'] ) && ! in_array( $_SERVER['REMOTE_ADDR'], array( '127.0.0.1', '::1' ) ) ) : ?> <div class="block-contact"> <h2><?php esc_html_e( 'Send a message to our support team', 'ecwid-shopping-cart' ); ?> </h2> <div class="contact-form"> <form action="admin-post.php" enctype="multipart/form-data" class="new_email" id="new_email" method="post" novalidate="novalidate"> <input type="hidden" name="action" value="ecwid_contact_us" /> <input type="hidden" name="_wpnonce" id="wp-nonce" value="<?php echo esc_attr( wp_create_nonce( Ecwid_Help_Page::CONTACT_US_ACTION_NAME ) ); ?>" /> <input id="email_subject" maxlength="100" name="email[subject]" type="text" class="form-control" value=" <?php if ( ! empty( $_GET['contact_us_subject'] ) ) { echo esc_html( sanitize_text_field( wp_unslash( $_GET['contact_us_subject'] ) ) );} ?> " placeholder="<?php esc_html_e( 'Subject', 'ecwid-shopping-cart' ); ?> "> <textarea id="email_body" name="email[body]" class="form-control" placeholder="<?php esc_html_e( 'Type in your message here', 'ecwid-shopping-cart' ); ?>"> <?php if ( ! empty( $_GET['contact_us_message'] ) ) { echo esc_textarea( sanitize_text_field( wp_unslash( $_GET['contact_us_message'] ) ) ); } ?> </textarea> <div class="btn-container"> <button id="contact-ecwid-support" class="btn btn-medium btn-aqua" type="submit"> <span class="btn-text"><?php esc_html_e( 'Send Message', 'ecwid-shopping-cart' ); ?></span> <div class="loader"> <div class="ecwid-spinner spin-right"> <svg width="60px" height="60px" viewBox="0 0 60 60" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <path class="loader-outer" d="M30,60 C46.5685425,60 60,46.5685425 60,30 C60,13.4314575 46.5685425,0 30,0 C13.4314575,0 0,13.4314575 0,30 C0,46.5685425 13.4314575,60 30,60 L30,60 Z"></path> <path class="loader-background" d="M30,56 C44.3594035,56 56,44.3594035 56,30 C56,15.6405965 44.3594035,4 30,4 C15.6405965,4 4,15.6405965 4,30 C4,44.3594035 15.6405965,56 30,56 L30,56 Z" fill="#FFFFFF"></path> <path class="loader-inner" d="M12.0224719,32.0224719 C10.9078652,32.0224719 10,31.1146067 10,30 C10,18.9707865 18.9707865,10 30,10 C31.1146067,10 32.0224719,10.9078652 32.0224719,12.0224719 C32.0224719,13.1370787 31.1146067,14.0449438 30,14.0449438 C21.2,14.0449438 14.0449438,21.2 14.0449438,30 C14.0449438,31.1146067 13.1370787,32.0224719 12.0224719,32.0224719 L12.0224719,32.0224719 Z M30,50 C28.8853933,50 27.9775281,49.0921348 27.9775281,47.9775281 C27.9775281,46.8629213 28.8853933,45.9550562 30,45.9550562 C38.8,45.9550562 45.9550562,38.8 45.9550562,30 C45.9550562,28.8853933 46.8629213,27.9775281 47.9775281,27.9775281 C49.0921348,27.9775281 50,28.8853933 50,30 C50,41.0292135 41.0292135,50 30,50 L30,50 Z" ></path> </svg> </div> </div> </button> <div class="send-error"><?php esc_html_e( 'Send message failed', 'ecwid-shopping-cart' ); ?></div> </div> </form> </div> </div> <div class="block-sent"> <h2><?php esc_html_e( 'Your email has been sent', 'ecwid-shopping-cart' ); ?></h2> <p><?php esc_html_e( ' Thank you very much for contacting us! We will get back to you shortly.', 'ecwid-shopping-cart' ); ?></p> <p><a id="show-ecwid-contact-again" href="#"><?php esc_html_e( 'You can send a new request here.', 'ecwid-shopping-cart' ); ?></a></p> </div> <?php endif; ?> </div> <script type="text/javascript"> jQuery('.hds-form').submit(function() { jQuery(this).attr('action', jQuery(this).data('action') + '#q=' + encodeURIComponent(jQuery('#q').val())); }) jQuery('#email_subject, #email_body').focus(function() { jQuery('.block-contact .send-error').hide(); }); jQuery('#email_subject, #email_body').blur(function() { if (jQuery(this).hasClass('form-error') && jQuery(this).val().trim()) { jQuery(this).removeClass('form-error'); } }); ecwid_contact_form_has_errors = function() { var has_errors = false; jQuery('#email_subject, #email_body').each(function() { if (!jQuery(this).val().trim()) { jQuery(this).addClass('form-error'); has_errors = true; } }); if (has_errors) { return true; } return false; } jQuery('#contact-ecwid-support').click(function() { if (ecwid_contact_form_has_errors()) return false; jQuery('.block-contact .btn').addClass('btn-loading'); jQuery('.block-contact .form-control').addClass('submitted'); $result = jQuery.ajax(ajaxurl + '?action=<?php echo esc_attr( Ecwid_Help_Page::CONTACT_US_ACTION_NAME ); ?>', { 'method': 'POST', 'data': { 'subject' : jQuery('#email_subject').val(), 'body' : jQuery('#email_body').val(), 'wp-nonce' : jQuery('#wp-nonce').val(), 'accepts' : 'json', 'dataType' : 'json' }, 'success': function(data) { var result = jQuery.parseJSON(data); if (result) { jQuery('#wp-nonce').val(result.nonce); jQuery('.block-contact').hide(); jQuery('.block-sent').show(); jQuery('.block-contact .form-control').val(""); } else { jQuery('.block-contact .send-error').show(); } }, 'error': function(data) { jQuery('.block-contact .send-error').show(); }, 'complete': function() { jQuery('.block-contact .btn').removeClass('btn-loading'); jQuery('.block-contact .form-control').removeClass('submitted'); } }); return false; }); jQuery('#show-ecwid-contact-again').click(function() { jQuery('.block-sent').hide(); jQuery('.block-contact').show(); return false; }); </script> ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/templates/product.php�����������������������������������������������������������0000644�����������������00000000327�15122273603�0014605 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?php $content = "<script>xProductBrowser('defaultProductId=$ecwid_id');</script>"; echo ecwid_wrap_shortcode_content( $content, 'product', array() ); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/templates/product-popup.php�����������������������������������������������������0000644�����������������00000024541�15122273603�0015752 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<script type="text/template" id="tmpl-product-in-list"> <tr id="product-{{ data.id }}"> <td class="product-thumb column-product-thumb has-row-actions" data-colname="Product"> <div><img data-src="{{ data.image_url }}" alt=""></div> </td> <td class="product-name column-product-name has-row-actions column-primary" data-colname="Product Name"> <div>{{ data.name }}</div> </td> <td class="sku column-sku has-row-actions" data-colname="SKU"> <div>{{ data.sku }}</div> </td> </tr> </script> <script type="text/template" id="tmpl-products-list"> <table class="wp-list-table widefat fixed striped products"> <thead> <tr> <td id="cb" class="manage-column column-cb check-column"></td> <th scope="col" id="name" class="manage-column column-name column-primary sortable"> <a href=""> <span><?php esc_html_e( 'Name', 'ecwid-shopping-cart' ); ?></span> <span class="sorting-indicator"></span> </a> </th> <th scope="col" id="sku" class="manage-column column-sku sortable"> <a href=""> <span><?php esc_html_e( 'SKU', 'ecwid-shopping-cart' ); ?></span> <span class="sorting-indicator"></span> </a> </th> </tr> </thead> <tbody> </tbody> </table> </script> <script type="text/template" id="tmpl-add-product-form"> <form action=""> <p class="products-search"> <span class="search-input"> <label class="screen-reader-text" for="product-search-input"> <?php esc_html_e( 'Search', 'ecwid-shopping-cart' ); ?> </label> <input type="search" id="product-search-input" name="s" value="" placeholder="<?php esc_html_e( 'Title or SKU', 'ecwid-shopping-cart' ); ?>"> </span> <span class="search-button"> <button type="submit" id="search-submit" class="button"> <span class="button-text"><?php esc_html_e( 'Search', 'ecwid-shopping-cart' ); ?></span> <img class="searching-icon" src="<?php echo( esc_attr( ECWID_PLUGIN_URL ) ); ?>/images/download.gif" /> </button> <!--input type="submit" id="search-submit" class="button" value="<?php esc_html_e( 'Search', 'ecwid-shopping-cart' ); ?>"--> </span> </p> </form> {{{ data.tableHTML }}} <div class="tablenav bottom"> <div class="tablenav-pages"> <span class="displaying-num">{{ data.total_items }}</span> <span class="pagination-links"> {{{ data.prev_pages }}} <span class="paging-input"> <label for="current-page-selector" class="screen-reader-text"><?php esc_html_e( 'Current Page', 'ecwid-shopping-cart' ); ?></label> <span class="tablenav-paging-text">{{ data.page }} of <span class="total-pages">{{ data.total_pages }}</span></span></span> {{{ data.next_pages }}} </span> </div> </div> </script> <script type="text/template" id="tmpl-pagination-button-enabled"> <a class="{{ data.name }}-page" href="" data-page="{{ data.page }}"> <span class="screen-reader-text">{{ data.label }}<?php esc_html_e( 'Next page', 'ecwid-shopping-cart' ); ?></span> <span aria-hidden="true">{{ data.symbol }}</span> </a> </script> <script type="text/template" id="tmpl-pagination-button-disabled"> <span class="tablenav-pages-navspan" aria-hidden="true">{{ data.symbol }}</span> </script> <script type="text/template" id="tmpl-no-products"> <tr class="empty"> <td colspan="3"> <div class="empty-page"> <div class="empty-page__title"><?php esc_html_e( 'Nothing found for <span class="empty-page__term">"{{ data.term }}"</span>', 'ecwid-shopping-cart' ); ?></div> <div class="empty-page__suggestions"> <?php esc_html_e( 'Try another search.', 'ecwid-shopping-cart' ); ?> <a href="#" id="ecwid-reset-search"><?php esc_html_e( 'Browse all products.', 'ecwid-shopping-cart' ); ?></a> </div> </div> </td> </tr> </script> <script type="text/template" id="tmpl-checkbox-option"> <label class="checkbox-option"> <span> <input type="checkbox" checked="checked" name="{{ data.name }}" {{{ data.additionalAttributes }}}> </span> <span class="label"> {{ data.label }} </span> </label> </script> <script type="text/template" id="tmpl-selected-product"> <div class="ecwid-selected-product"> <div class="ecwid-selected-product-image"> <img src="{{ data.thumb }}"> </div> <div class="ecwid-selected-product-details"> <div class="ecwid-selected-product-name">{{ data.name }}</div> <div class="ecwid-selected-product-sku">{{ data.sku }}</div> <div class="ecwid-selected-product-button"> <button class="button button-secondary" id="choose-another-product"><?php esc_html_e( ' Choose another product', 'ecwid-shopping-cart' ); ?></button> </div> </div> </div> </script> <div id="ecwid-product-popup-content"> <div class="media-modal wp-core-ui"> <div class="media-modal-content" data-mode="add-product" data-active-dialog="add-product"> <a class="media-modal-close" href="#" title="Close"><span class="media-modal-icon"></span></a> <div class="media-frame wp-core-ui"> <div class="media-frame-menu"> <div class="media-menu"> <a href="#" class="media-menu-item active" data-content="add-product"><?php esc_html_e( 'Choose Product', 'ecwid-shopping-cart' ); ?></a> <a href="#" class="media-menu-item" data-content="selected-product"><?php esc_html_e( 'Selected Product', 'ecwid-shopping-cart' ); ?></a> <a href="#" class="media-menu-item" data-content="customize"><?php esc_html_e( 'Customize widget', 'ecwid-shopping-cart' ); ?></a> </div> </div> <div class="media-frame-title selected-product"> <h1><?php esc_html_e( 'Selected Product', 'ecwid-shopping-cart' ); ?><span class="dashicons dashicons-arrow-down"></span></h1> </div> <div class="media-frame-title add-product active"> <h1><?php esc_html_e( 'Choose Product', 'ecwid-shopping-cart' ); ?><span class="dashicons dashicons-arrow-down"></span></h1> </div> <div class="media-frame-title customize"> <h1><?php esc_html_e( 'Customize widget', 'ecwid-shopping-cart' ); ?><span class="dashicons dashicons-arrow-down"></span></h1> </div> <div class="media-frame-content ecwid-selected-product selected-product"> </div> <div class="media-frame-content ecwid-add-product add-product"> </div> <div class="media-frame-content ecwid-add-product customize"> <div class="store-settings-wrapper ecwid-search ecwid-minicart ecwid-categories" data-ecwid-widget-hover=""> <div class="widget-settings display-options"> <h3><?php esc_html_e( 'Choose product properties to display in widget', 'ecwid-shopping-cart' ); ?></h3> <div class="widget-settings__left"></div> <div class="widget-settings__right"></div> <script type="text/javascript"> jQuery(document).ready(function() { ecwidRenderCheckboxOption.section = 'display-options'; ecwidRenderCheckboxOption({ 'section': 'display-options', 'name': 'picture', 'label': '<?php esc_html_e( 'Picture', 'ecwid-shopping-cart' ); ?>' }); ecwidRenderCheckboxOption({ 'section': 'display-options', 'name': 'options', 'label': '<?php esc_html_e( 'Options', 'ecwid-shopping-cart' ); ?>' }); ecwidRenderCheckboxOption({ 'section': 'display-options', 'name': 'title', 'label': '<?php esc_html_e( 'Title', 'ecwid-shopping-cart' ); ?>' }); ecwidRenderCheckboxOption({ 'section': 'display-options', 'name': 'quantity', 'label': '<?php esc_html_e( 'Quantity', 'ecwid-shopping-cart' ); ?>', 'displayOptionName': 'qty' }); ecwidRenderCheckboxOption({ 'section': 'display-options', 'name': 'price', 'label': '<?php esc_html_e( 'Price', 'ecwid-shopping-cart' ); ?>' }); ecwidRenderCheckboxOption({ 'section': 'display-options', 'name': 'addtobag', 'label': '<?php esc_html_e( '«Buy now» button', 'ecwid-shopping-cart' ); ?>' }); }); </script> </div> <div class="widget-settings shortcode-attributes"> <h3><?php esc_html_e( 'Appearance', 'ecwid-shopping-cart' ); ?></h3> <div class="widget-settings__left"></div> <div class="widget-settings__right"></div> <script type="text/javascript"> jQuery(document).ready(function() { ecwidRenderCheckboxOption.nextTarget = 'left'; ecwidRenderCheckboxOption.section = 'shortcode-attributes'; ecwidRenderCheckboxOption({ 'section': 'shortcode-attributes', 'name': 'show_border', 'label': '<?php esc_html_e( 'Add border', 'ecwid-shopping-cart' ); ?>' }); ecwidRenderCheckboxOption({ 'section': 'shortcode-attributes', 'name': 'show_price_on_button', 'label': '<?php esc_html_e( 'Show price inside the "Buy now" button', 'ecwid-shopping-cart' ); ?>' }); ecwidRenderCheckboxOption({ 'section': 'shortcode-attributes', 'name': 'center_align', 'label': '<?php esc_html_e( 'Center align on a page', 'ecwid-shopping-cart' ); ?>' }); }); </script> </div> </div> </div> <div class="media-frame-toolbar"> <div class="media-toolbar"> <div class="media-toolbar-primary add-product"> <a target="_blank" class="toolbar-link customize-appearance" data-content="customize" href="#"><?php esc_html_e( 'customize appearance', 'ecwid-shopping-cart' ); ?></a> <a target="_blank" class="toolbar-link add-product" data-content="add-product" style="display: none" href="#"><?php esc_html_e( 'select product', 'ecwid-shopping-cart' ); ?></a> <a href="#" class="button media-button button-primary button-large media-button-select"><?php esc_html_e( 'Insert', 'ecwid-shopping-cart' ); ?></a> </div> <div class="media-toolbar-primary selected-product"> <a target="_blank" class="toolbar-link customize-appearance" data-content="customize" href="#"><?php esc_html_e( 'customize appearance', 'ecwid-shopping-cart' ); ?></a> <a target="_blank" class="toolbar-link add-product" data-content="selected-product" style="display: none" href="#"><?php esc_html_e( 'selected product', 'ecwid-shopping-cart' ); ?></a> <a href="#" class="button media-button button-primary button-large media-button-update"><?php esc_html_e( 'Update', 'ecwid-shopping-cart' ); ?></a> </div> </div> </div> </div> </div> </div> <div class="media-modal-backdrop"></div> </div> ���������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/templates/reconnect-sso.php�����������������������������������������������������0000644�����������������00000001634�15122273603�0015711 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div class="wrap ecwid-admin ecwid-connect ecwid-reconnect-allow-sso"> <div class="ec-store-box"> <?php require ECWID_PLUGIN_DIR . 'templates/admin-head.php'; ?> <div class="main-wrap"> <div class="column"> <h4><?php esc_html_e( 'Your store Control Panel. Right here in WordPress.', 'ecwid-shopping-cart' ); ?></h4> <p class="note"><?php echo wp_kses_post( __( 'Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page.', 'ecwid-shopping-cart' ) ); ?></p> <div class="connect-button"> <a href="admin-post.php?action=ec_connect&reconnect"><?php esc_html_e( 'Re-connect to Enable Control Panel', 'ecwid-shopping-cart' ); ?></a> </div> </div> <div class="column"> <img src="<?php echo esc_attr( ECWID_PLUGIN_URL ); ?>/images/new-feature.png" /> </div> </div> </div> <?php require_once ECWID_PLUGIN_DIR . 'templates/admin-footer.php'; ?> </div> ����������������������������������������������������������������������������������������������������ecwid-shopping-cart/templates/shortcode-pb-placeholder.php������������������������������������������0000644�����������������00000015655�15122273603�0020010 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div id="ec-store-pb-placeholder"> <style> /* PB placeholder */ .ecwid-pb-placeholder { box-sizing: border-box; opacity: 0; min-height: 400px; padding-top: 1px; } .ecwid-pb-placeholder>div { box-sizing: border-box; } .ecwid-pb-placeholder--light, .ecwid-pb-placeholder--dark { opacity: 1; } .ecwid-pb-placeholder__grid { overflow: hidden; width: 100%; max-width: 1000px; height: 280px; margin: 35px auto 50px; text-align: center; transition: opacity .15s ease-in-out; } .ecwid-pb-placeholder__wrap { margin-right: -30px; margin-left: -30px; } .ecwid-pb-placeholder__grid-cell { display: inline-block; width: 282px; height: 280px; line-height: 280px; white-space: nowrap; } .ecwid-pb-placeholder__product { width: 222px; height: 222px; margin: 0 auto; padding: 0; } .ecwid-pb-placeholder__title { max-width: 222px; margin: 12px auto; padding: 0; } .ecwid-pb-placeholder__title>div { height: 7px; margin: 12px auto; padding: 0; } .ecwid-pb-placeholder__title>div:nth-child(3) { max-width: 100px; } /* PB placeholder light */ .ecwid-pb-placeholder--light .ecwid-pb-placeholder__grid-cell .ecwid-pb-placeholder__product, .ecwid-pb-placeholder--light .ecwid-pb-placeholder__grid-cell .ecwid-pb-placeholder__title>div { background-color: rgba(0, 0, 0, .03); } .ecwid-pb-placeholder--light.ecwid-pb-placeholder--animate .ecwid-pb-placeholder__grid-cell:nth-child(1) .ecwid-pb-placeholder__product { animation: pb-flash-light 800ms ease-in-out 0ms infinite; } .ecwid-pb-placeholder--light.ecwid-pb-placeholder--animate .ecwid-pb-placeholder__grid-cell:nth-child(1) .ecwid-pb-placeholder__title>div { animation: pb-flash-light 800ms ease-in-out 83ms infinite; } .ecwid-pb-placeholder--light.ecwid-pb-placeholder--animate .ecwid-pb-placeholder__grid-cell:nth-child(2) .ecwid-pb-placeholder__product { animation: pb-flash-light 800ms ease-in-out 167ms infinite; } .ecwid-pb-placeholder--light.ecwid-pb-placeholder--animate .ecwid-pb-placeholder__grid-cell:nth-child(2) .ecwid-pb-placeholder__title>div { animation: pb-flash-light 800ms ease-in-out 250ms infinite; } .ecwid-pb-placeholder--light.ecwid-pb-placeholder--animate .ecwid-pb-placeholder__grid-cell:nth-child(3) .ecwid-pb-placeholder__product { animation: pb-flash-light 800ms ease-in-out 333ms infinite; } .ecwid-pb-placeholder--light.ecwid-pb-placeholder--animate .ecwid-pb-placeholder__grid-cell:nth-child(3) .ecwid-pb-placeholder__title>div { animation: pb-flash-light 800ms ease-in-out 416ms infinite; } /* PB placehoder dark */ .ecwid-pb-placeholder--dark .ecwid-pb-placeholder__grid-cell .ecwid-pb-placeholder__product, .ecwid-pb-placeholder--dark .ecwid-pb-placeholder__grid-cell .ecwid-pb-placeholder__title>div { background-color: rgba(255, 255, 255, .1); } .ecwid-pb-placeholder--dark.ecwid-pb-placeholder--animate .ecwid-pb-placeholder__grid-cell:nth-child(1) .ecwid-pb-placeholder__product { animation: pb-flash-dark 800ms ease-in-out 0ms infinite; } .ecwid-pb-placeholder--dark.ecwid-pb-placeholder--animate .ecwid-pb-placeholder__grid-cell:nth-child(1) .ecwid-pb-placeholder__title>div { animation: pb-flash-dark 800ms ease-in-out 83ms infinite; } .ecwid-pb-placeholder--dark.ecwid-pb-placeholder--animate .ecwid-pb-placeholder__grid-cell:nth-child(2) .ecwid-pb-placeholder__product { animation: pb-flash-dark 800ms ease-in-out 167ms infinite; } .ecwid-pb-placeholder--dark.ecwid-pb-placeholder--animate .ecwid-pb-placeholder__grid-cell:nth-child(2) .ecwid-pb-placeholder__title>div { animation: pb-flash-dark 800ms ease-in-out 250ms infinite; } .ecwid-pb-placeholder--dark.ecwid-pb-placeholder--animate .ecwid-pb-placeholder__grid-cell:nth-child(3) .ecwid-pb-placeholder__product { animation: pb-flash-dark 800ms ease-in-out 333ms infinite; } .ecwid-pb-placeholder--dark.ecwid-pb-placeholder--animate .ecwid-pb-placeholder__grid-cell:nth-child(3) .ecwid-pb-placeholder__title>div { animation: pb-flash-dark 800ms ease-in-out 416ms infinite; } @keyframes pb-flash-light { 0% { background-color: rgba(0, 0, 0, .03); } 30% { background-color: rgba(0, 0, 0, .047); } 100% { background-color: rgba(0, 0, 0, .03); } } @keyframes pb-flash-dark { 0% { background-color: rgba(255, 255, 255, .06); } 30% { background-color: rgba(255, 255, 255, .1); } 100% { background-color: rgba(255, 255, 255, .06); } } </style> <div class="ecwid-pb-placeholder ecwid-pb-placeholder--animate ecwid-pb-placeholder--light" id="ecwidStorefrontPlaceholder"> <div class="ecwid-pb-placeholder__grid"> <div class="ecwid-pb-placeholder__wrap"> <div class="ecwid-pb-placeholder__grid-cell"> <div class="ecwid-pb-placeholder__product"></div> <div class="ecwid-pb-placeholder__title"> <div></div> <div></div> <div></div> </div> </div> <div class="ecwid-pb-placeholder__grid-cell"> <div class="ecwid-pb-placeholder__product"></div> <div class="ecwid-pb-placeholder__title"> <div></div> <div></div> <div></div> </div> </div> <div class="ecwid-pb-placeholder__grid-cell"> <div class="ecwid-pb-placeholder__product"></div> <div class="ecwid-pb-placeholder__title"> <div></div> <div></div> <div></div> </div> </div> </div> </div> <div class="ecwid-pb-placeholder__grid"> <div class="ecwid-pb-placeholder__wrap"> <div class="ecwid-pb-placeholder__grid-cell"> <div class="ecwid-pb-placeholder__product"></div> <div class="ecwid-pb-placeholder__title"> <div></div> <div></div> <div></div> </div> </div> <div class="ecwid-pb-placeholder__grid-cell"> <div class="ecwid-pb-placeholder__product"></div> <div class="ecwid-pb-placeholder__title"> <div></div> <div></div> <div></div> </div> </div> <div class="ecwid-pb-placeholder__grid-cell"> <div class="ecwid-pb-placeholder__product"></div> <div class="ecwid-pb-placeholder__title"> <div></div> <div></div> <div></div> </div> </div> </div> </div> </div> </div> �����������������������������������������������������������������������������������ecwid-shopping-cart/templates/shortcode-stub-buynow.tpl.php�����������������������������������������0000644�����������������00000000124�15122273603�0020204 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div class="ec-store-block ec-store-block-buynow"> <div class="image"></div> </div>��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/templates/shortcode-stub-store.tpl.php������������������������������������������0000644�����������������00000006410�15122273603�0020021 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div class="ec-store-generic-block ec-store-block"> <div class="ec-store-block-header"> <svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1"><g id="Typography" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g id="gutenberg-widgets-icons" transform="translate(-234.000000, -324.000000)" fill="#979797" fill-rule="nonzero"><g id="store-icon" transform="translate(234.000000, 324.000000)"><path d="M9,20.4893188 L7,20.4893188 L7,14 C7,13.4477153 7.44771525,13 8,13 L16,13 C16.5522847,13 17,13.4477153 17,14 L17,20.4893188 C16.260376,20.4893188 15.5929565,20.4893188 15,20.4893188 L15,15 L9,15 L9,20.4893188 Z" id="Rectangle-3"></path><path d="M20,10 L22,10 L22,21.0006104 C22,21.5528951 21.5522847,22.0006104 21,22.0006104 L3,22.0006104 C2.44771525,22.0006104 2,21.5528951 2,21.0006104 L2,10 L4,10 L4,20.0006104 L20,20.0006104 L20,10 Z" id="Rectangle-3"></path><path d="M2,6.5 C2,7.88071187 3.11928813,9 4.5,9 C5.18185515,9 5.81786053,8.72707728 6.28575907,8.24959145 L7,7.52071565 L7.71424093,8.24959145 C8.18213947,8.72707728 8.81814485,9 9.5,9 C10.1818552,9 10.8178605,8.72707728 11.2857591,8.24959145 L12,7.52071565 L12.7142409,8.24959145 C13.1821395,8.72707728 13.8181448,9 14.5,9 C15.1818552,9 15.8178605,8.72707728 16.2857591,8.24959145 L17,7.52071565 L17.7142409,8.24959145 C18.1821395,8.72707728 18.8181448,9 19.5,9 C20.8807119,9 22,7.88071187 22,6.5 C22,5.81342077 21.7917279,4.97737648 21.3637104,4 L2.63518632,4 C2.20791709,4.97255801 2,5.80837301 2,6.5 Z M4.5,11 C2.01471863,11 4.4408921e-16,8.98528137 0,6.5 C0,5.33310646 0.374574518,4.02209564 1.10468286,2.55457075 L1.38058736,2 L22.6207487,2 L22.8961752,2.55629959 C23.6256977,4.02977127 24,5.33982925 24,6.5 C24,8.98528137 21.9852814,11 19.5,11 C18.5937006,11 17.7289225,10.73006 17,10.2422809 C16.2710775,10.73006 15.4062994,11 14.5,11 C13.5937006,11 12.7289225,10.73006 12,10.2422809 C11.2710775,10.73006 10.4062994,11 9.5,11 C8.59370056,11 7.72892246,10.73006 7,10.2422809 C6.27107754,10.73006 5.40629944,11 4.5,11 Z" id="Combined-Shape"></path></g></g></g></svg> <?php esc_html_e( 'Store Home Page', 'ecwid-shopping-cart' ); ?> </div> <div class="ec-store-block-content"> <div class="ec-store-products"> <div class="ec-store-product-block"> <div class="ec-store-product ec-store-product-m_sneaker"></div> <div class="ec-store-stub-sample"></div> </div> <div class="ec-store-product-block"> <div class="ec-store-product ec-store-product-p_shirt"></div> <div class="ec-store-stub-sample"></div> </div> <div class="ec-store-product-block"> <div class="ec-store-product ec-store-product-g_hat"></div> <div class="ec-store-stub-sample"></div> </div> </div> <div class="ec-store-products"> <div class="ec-store-product-block"> <div class="ec-store-product ec-store-product-b_watch"></div> <div class="ec-store-stub-sample"></div> </div> <div class="ec-store-product-block"> <div class="ec-store-product ec-store-product-y_bag"></div> <div class="ec-store-stub-sample"></div> </div> <div class="ec-store-product-block"> <div class="ec-store-product ec-store-product-p_sneaker"></div> <div class="ec-store-stub-sample"></div> </div> </div> </div> <div><?php esc_html_e( 'Your store will be shown here', 'ecwid-shopping-cart' ); ?></div> </div> ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/templates/shortcode-stub.tpl.php������������������������������������������������0000644�����������������00000003730�15122273603�0016671 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div class="ecwid-shortcode-stub"> <div class="ecwid-shortcode-stub-header"><svg aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" class="dashicon" width="20" height="20" viewBox="0 0 20 20"><path d="M15.32,15.58c-0.37,0-0.66,0.3-0.66,0.67c0,0.37,0.3,0.67,0.66,0.67c0.37,0,0.67-0.3,0.67-0.67 C15.98,15.88,15.69,15.58,15.32,15.58z M15.45,0H4.55C2.04,0,0,2.04,0,4.55v10.91C0,17.97,2.04,20,4.55,20h10.91c2.51,0,4.55-2.04,4.55-4.55V4.55 C20,2.04,17.96,0,15.45,0z M12.97,4.94C13.54,4.94,14,5.4,14,5.96s-0.46,1.03-1.03,1.03c-0.57,0-1.03-0.46-1.03-1.03 C11.95,5.4,12.41,4.94,12.97,4.94z M12.97,8.02c0.57,0,1.03,0.46,1.03,1.03c0,0.57-0.46,1.03-1.03,1.03c-0.57,0-1.03-0.46-1.03-1.03 C11.95,8.48,12.41,8.02,12.97,8.02z M9.98,4.94c0.57,0,1.03,0.46,1.03,1.03s-0.46,1.03-1.03,1.03c-0.57,0-1.03-0.46-1.03-1.03 C8.95,5.4,9.41,4.94,9.98,4.94z M9.98,8.02c0.57,0,1.03,0.46,1.03,1.03s-0.46,1.03-1.03,1.03c-0.57,0-1.03-0.46-1.03-1.03 C8.95,8.48,9.41,8.02,9.98,8.02z M7.03,4.94c0.57,0,1.03,0.46,1.03,1.03S7.6,6.99,7.03,6.99C6.46,6.99,6,6.53,6,5.96 C6,5.4,6.46,4.94,7.03,4.94z M7.03,8.02c0.57,0,1.03,0.46,1.03,1.03s-0.46,1.03-1.03,1.03C6.46,10.08,6,9.62,6,9.05 C6,8.48,6.46,8.02,7.03,8.02z M4.6,18.02c-1.02,0-1.86-0.83-1.86-1.86c0-1.03,0.83-1.86,1.86-1.86c1.03,0,1.86,0.83,1.86,1.86 C6.45,17.19,5.62,18.02,4.6,18.02z M15.32,18.1c-1.02,0-1.86-0.83-1.86-1.86c0-1.03,0.83-1.86,1.86-1.86c1.03,0,1.86,0.83,1.86,1.86 C17.17,17.27,16.34,18.1,15.32,18.1z M18.48,2.79l-1.92,7.14c-0.51,1.91-2.03,3.1-4,3.1H7.2c-1.91,0-3.26-1.09-3.84-2.91L1.73,5 C1.7,4.9,1.72,4.79,1.78,4.71c0.06-0.09,0.16-0.14,0.27-0.14l0.31,0c0.75,0,1.41,0.49,1.64,1.2l1.2,3.76 c0.32,1.02,1.26,1.7,2.33,1.7h4.81c1.1,0,2.08-0.74,2.36-1.81l1.55-5.78c0.2-0.75,0.89-1.28,1.67-1.28h0.24 c0.1,0,0.2,0.05,0.26,0.13C18.48,2.58,18.5,2.68,18.48,2.79z M4.6,15.5c-0.37,0-0.66,0.3-0.66,0.67c0,0.37,0.3,0.67,0.66,0.67c0.37,0,0.67-0.3,0.67-0.67 S4.96,15.5,4.6,15.5z"></path></svg> <?php echo wp_kses_post( $message ); ?> </div> </div> ����������������������������������������ecwid-shopping-cart/templates/store-popup.php�������������������������������������������������������0000644�����������������00000026533�15122273603�0015431 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<script data-cfasync="false" type="text/javascript"> var ecwid_store_svg = '<?php echo esc_url( get_site_url( '', 'index.php?file=ecwid_store_svg.svg' ) ); ?>'; </script> <div id="ecwid-store-popup-content"> <div class="media-modal wp-core-ui"> <div class="media-modal-content"> <a class="media-modal-close" href="#" title="Close"><span class="media-modal-icon"></span></a> <div class="media-frame wp-core-ui hide-router"> <div class="media-frame-menu"> <div class="media-menu"> <a href="#" class="media-menu-item" data-content="add-store"><?php esc_html_e( 'Add Store', 'ecwid-shopping-cart' ); ?></a> <a href="#" class="media-menu-item" data-content="store-settings"><?php esc_html_e( 'Store elements', 'ecwid-shopping-cart' ); ?></a> <?php if ( ecwid_is_legacy_appearance_used() ) : ?> <a href="#" class="media-menu-item" data-content="appearance"><?php esc_html_e( 'Appearance', 'ecwid-shopping-cart' ); ?></a> <?php endif; ?> </div> </div> <div class="media-frame-title add-store"> <h1> <?php esc_html_e( 'Add Store', 'ecwid-shopping-cart' ); ?><span class="dashicons dashicons-arrow-down"></span> </h1> </div> <div class="media-frame-title store-settings"> <h1> <?php esc_html_e( 'Store elements', 'ecwid-shopping-cart' ); ?><span class="dashicons dashicons-arrow-down"></span> </h1> </div> <?php if ( ecwid_is_legacy_appearance_used() ) : ?> <div class="media-frame-title appearance"> <h1> <?php esc_html_e( 'Appearance', 'ecwid-shopping-cart' ); ?><span class="dashicons dashicons-arrow-down"></span> </h1> </div> <?php endif; ?> <div class="media-frame-content ecwid-store-editor store-settings"> <div class="store-settings-wrapper"> <div class="store-settings-preview"> <?php ecwid_embed_svg( 'add-store' ); ?> <label for="show_search" class="ecwid-search" data-ecwid-widget="search"></label> <label for="show_categories" class="ecwid-categories" data-ecwid-widget="categories"></label> <?php if ( ! get_option( 'ecwid_hide_old_minicart' ) ) : ?> <label for="show_minicart" class="ecwid-minicart" data-ecwid-widget="minicart"></label> <?php endif; ?> </div> <div class="store-settings"> <h3><?php esc_html_e( 'Choose widgets to show', 'ecwid-shopping-cart' ); ?></h3> <p class="note"><?php esc_html_e( 'Product catalog will be shown automatically', 'ecwid-shopping-cart' ); ?></p> <div class="pure-control-group"> <label data-ecwid-widget="search"> <input type="checkbox" name="show_search" id="show_search" /> <?php esc_html_e( 'Show search', 'ecwid-shopping-cart' ); ?> </label> </div> <?php if ( ! get_option( 'ecwid_hide_old_minicart' ) ) : ?> <div class="pure-control-group"> <label data-ecwid-widget="minicart"> <input type="checkbox" name="show_minicart" id="show_minicart" /> <?php esc_html_e( 'Show minicart', 'ecwid-shopping-cart' ); ?> </label> </div> <?php endif; ?> <div class="pure-control-group"> <label data-ecwid-widget="categories"> <input type="checkbox" name="show_categories" id="show_categories" /> <?php esc_html_e( 'Show categories', 'ecwid-shopping-cart' ); ?> </label> </div> <div class="note"> <?php echo wp_kses_post( sprintf( __( 'Additionally, you can add store controls to your website\'s toolbar using <a %s>WordPress native widgets</a>', 'ecwid-shopping-cart' ), ' target="_blank" href="widgets.php?from-ec-store=' . ( isset( $_GET['post'] ) ? sanitize_text_field( wp_unslash( $_GET['post'] ) ) : 'new' ) . '"' ) ); ?> </div> <div class="pure-control-group params-list default-category-id"> <?php if ( $categories ) : ?> <label for="ecwid_default_category_id"> <?php esc_html_e( 'Category shown by default', 'ecwid-shopping-cart' ); ?> </label> <div class="value"> <select name="default_category_id" id="ecwid_default_category_id"> <option value="0" <?php if ( ! get_option( 'ecwid_default_category_id' ) ) : ?> selected="selected"<?php endif; ?>> <?php esc_html_e( 'Store root category', 'ecwid-shopping-cart' ); ?> </option> <?php foreach ( $categories as $category ) : ?> <option value="<?php echo esc_attr( $category->id ); ?>" <?php if ( $category->id == get_option( 'ecwid_default_category_id' ) ) : ?> selected="selected" <?php endif; ?> > <?php echo esc_html( $category->path ); ?> </option> <?php endforeach; ?> </select> </div> <?php endif; ?> </div> </div> </div> </div> <?php if ( ecwid_is_legacy_appearance_used() ) : ?> <div class="media-frame-content ecwid-store-editor appearance"> <div class="pure-control-group pb-views"> <label class="products-per-page-label"><?php esc_html_e( 'Number of products per page', 'ecwid-shopping-cart' ); ?></label> <div class="ecwid-pb-view-size grid active" tabindex="1"> <div class="title"><?php esc_html_e( 'Grid view', 'ecwid-shopping-cart' ); ?></div> <div class="main-area"> <?php ecwid_embed_svg( 'grid' ); ?> </div> <div class="right"> <div class="ruler"></div> <input type="text" size="2" name="grid_rows" class="number" value="<?php echo esc_attr( get_option( 'ecwid_pb_productspercolumn_grid' ) ); ?>" /> </div> <div class="bottom"> <div class="ruler"></div> <input type="text" size="2" name="grid_columns" class="number" value="<?php echo esc_attr( get_option( 'ecwid_pb_productsperrow_grid' ) ); ?>" /> </div> </div> <div class="ecwid-pb-view-size list" tabindex="1"> <div class="title"><?php esc_html_e( 'List view', 'ecwid-shopping-cart' ); ?></div> <div class="main-area"> <?php ecwid_embed_svg( 'list' ); ?> </div> <div class="right"> <div class="ruler"></div> <input type="text" size="2" name="list_rows" class="number" value="<?php echo esc_attr( get_option( 'ecwid_pb_productsperpage_list' ) ); ?>" /> </div> </div> <div class="ecwid-pb-view-size table" tabindex="1"> <div class="title"><?php esc_html_e( 'Table view', 'ecwid-shopping-cart' ); ?></div> <div class="main-area"> <?php ecwid_embed_svg( 'table' ); ?> </div> <div class="right"> <div class="ruler"></div> <input type="text" size="2" name="table_rows" class="number" value="<?php echo esc_attr( get_option( 'ecwid_pb_productsperpage_table' ) ); ?>" /> </div> </div> <p class="note pb-note"><?php echo esc_html( sprintf( __( 'Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products.', 'ecwid-shopping-cart' ), Ecwid_Config::get_brand() ) ); ?></p> </div> <hr class="after-pb" /> <div class="pure-control-group params-list"> <label for="ecwid_pb_categoriesperrow"> <?php esc_html_e( 'Number of categories per row', 'ecwid-shopping-cart' ); ?> </label> <input id="ecwid_pb_categoriesperrow" name="categories_per_row" type="text" class="number" value="<?php echo esc_attr( get_option( 'ecwid_pb_categoriesperrow' ) ); ?>" /> </div> <div class="pure-control-group params-list"> <label for="ecwid_pb_defaultview"> <?php esc_html_e( 'Default view mode on product pages', 'ecwid-shopping-cart' ); ?> </label> <select id="ecwid_pb_defaultview" name="category_view"> <option value="grid" <?php if ( get_option( 'ecwid_pb_defaultview' ) == 'grid' ) { echo 'selected="selected"';} ?> > <?php esc_html_e( 'Grid', 'ecwid-shopping-cart' ); ?> </option> <option value="list" <?php if ( get_option( 'ecwid_pb_defaultview' ) == 'list' ) { echo 'selected="selected"';} ?> > <?php esc_html_e( 'List', 'ecwid-shopping-cart' ); ?> </option> <option value="table" <?php if ( get_option( 'ecwid_pb_defaultview' ) == 'table' ) { echo 'selected="selected"';} ?> > <?php esc_html_e( 'Table', 'ecwid-shopping-cart' ); ?> </option> </select> </div> <div class="pure-control-group params-list"> <label for="ecwid_pb_searchview"> <?php esc_html_e( 'Default view mode on search results', 'ecwid-shopping-cart' ); ?> </label> <select id="ecwid_pb_searchview" name="search_view"> <option value="grid" <?php if ( get_option( 'ecwid_pb_searchview' ) == 'grid' ) { echo 'selected="selected"';} ?> > <?php esc_html_e( 'Grid', 'ecwid-shopping-cart' ); ?> </option> <option value="list" <?php if ( get_option( 'ecwid_pb_searchview' ) == 'list' ) { echo 'selected="selected"';} ?> > <?php esc_html_e( 'List', 'ecwid-shopping-cart' ); ?> </option> <option value="table" <?php if ( get_option( 'ecwid_pb_searchview' ) == 'table' ) { echo 'selected="selected"';} ?> > <?php esc_html_e( 'Table', 'ecwid-shopping-cart' ); ?> </option> </select> </div> </div> <?php endif; ?> <div class="media-frame-toolbar"> <div class="media-toolbar"> <div class="media-toolbar-secondary"> <?php if ( ! ecwid_is_demo_store() ) : ?> <div class="store-id"><?php esc_html_e( 'Store ID', 'ecwid-shopping-cart' ); ?>: <?php echo esc_attr( get_ecwid_store_id() ); ?></div> <?php else : ?> <div class="store-id"><?php esc_html_e( 'Demo store', 'ecwid-shopping-cart' ); ?></div> <?php endif; ?> <div class="setting-link"> <a target="_blank" href="<?php echo esc_url( Ecwid_Admin::get_dashboard_url() ); ?>"><?php esc_html_e( 'Open store dashboard', 'ecwid-shopping-cart' ); ?> </div> </div> <div class="media-toolbar-primary add-store"> <a href="#" class="button media-button button-primary button-large media-button-select"><?php esc_html_e( 'Insert into page' ); ?></a> </div> <div class="media-toolbar-primary store-settings"> <a href="#" class="button media-button button-primary button-large media-button-select"><?php esc_html_e( 'Update' ); ?></a> </div> </div> </div> </div> </div> </div> <div class="media-modal-backdrop"></div> </div> <?php if ( get_option( 'ecwid_hide_old_minicart' ) ) : ?> <script> jQuery('.ecwid-store-editor path.minicart').hide(); </script> <?php endif; ?> ���������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/templates/store-svg.php���������������������������������������������������������0000644�����������������00000005557�15122273603�0015070 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?php echo '<?xml version="1.0" encoding="utf-8"?>' . "\n"; echo '<?xml-stylesheet type="text/css" href="https://fonts.googleapis.com/css?family=Open+Sans%3A300italic%2C400italic%2C600italic%2C300%2C400%2C600&subset=latin%2Clatin-ext&ver=3.9.2" ?>'; ?><!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 500 220" enable-background="new 0 0 500 220" xml:space="preserve"> <text x="250" y="93" text-anchor="middle" fill="#050303" font-family="Open Sans,Helvetica Neue,sans-serif" font-size="20"><?php esc_html_e( 'Your store will be shown here!', 'ecwid-shopping-cart' ); ?></text> <text x="250" y="115" text-anchor="middle" fill="#999999" font-family="Open Sans,Helvetica Neue,sans-serif" font-size="14"> <?php if ( ecwid_is_demo_store() ) : ?> <?php esc_html_e( 'Demo Store', 'ecwid-shopping-cart' ); ?> <?php else : ?> <?php esc_html_e( 'Store ID', 'ecwid-shopping-cart' ); ?>: <?php echo esc_attr( get_ecwid_store_id() ); ?> <?php endif; ?> </text> <g transform="translate(0,-30)"> <path fill="#77B644" d="M225.7,82.3c0-0.4,0.3-0.8,0.8-0.8h41.1c0.4,0,0.8,0.3,0.8,0.8v1.6c0,0.4-0.3,0.8-0.8,0.8h-41.1 c-0.4,0-0.8-0.3-0.8-0.8V82.3z"/> <path fill="#77B644" d="M268.4,56.6c-1.6-3.3-2.4-6.5-3.3-11.9c0-0.3-0.7-1.3-1.6-1.3h-33c-0.9,0-1.6,1-1.6,1.3 c0,0-1.6,10.2-3.3,11.9c0,1.7,0,5,0,5s0,0.1,0.1,0.1h-0.1c0,0,0.1,0.8,1.2,1.3c0.1,0.1,0.3,0.2,0.5,0.2v0v14.9 c0,0.9,0.9,1.5,1.8,1.5h13V66c0-0.9,0.9-1.6,1.8-1.6h6.6c0.9,0,1.6,0.7,1.6,1.6v13.7h13.1c0.9,0,1.6-0.6,1.6-1.5V63.3v-0.1 c1.3-0.2,1.6-1.5,1.6-1.5h0c0-0.1,0-0.1,0-0.1S268.4,58.3,268.4,56.6z M238.5,73.1c0,0.9-0.4,1.6-1.3,1.6h-3.4 c-0.9,0-1.3-0.7-1.3-1.6v-6.6c0-0.9,0.4-1.6,1.3-1.6h3.4c0.9,0,1.3,0.7,1.3,1.6V73.1z M261.5,73.1c0,0.9-0.4,1.6-1.3,1.6h-3.4 c-0.9,0-1.3-0.7-1.3-1.6v-6.6c0-0.9,0.4-1.6,1.3-1.6h3.4c0.9,0,1.3,0.7,1.3,1.6V73.1z M261.8,46.4c0,0,1.8,8.4,2.8,10.2 c-1.6,0-4.5,0-4.5,0l-1.6-10.2H261.8z M264.8,58.3l0,1.3c-0.2,1.1-1.1,2-2.3,2c-1.3,0-2.3-0.8-2.3-2.1c0,0,0.1-1.2,0.1-1.2H264.8z M252.3,59.1l0-0.9h4.7l0,1.3c-0.2,1.1-1.1,2-2.3,2c-1.3,0-2.3-1-2.3-2.3C252.4,59.2,252.4,59.2,252.3,59.1L252.3,59.1z M255.2,46.4c0,0,1.2,8.2,1.8,10.2c0.5,0-4.6,0-4.6,0l-0.5-10.2H255.2z M245.3,46.4h3.4l0.6,10.2h-4.5L245.3,46.4z M244.7,58.3h4.6 l0,1.2c-0.1,1.2-1.1,2.1-2.3,2.1c-1.2,0-2.2-0.9-2.3-2.1L244.7,58.3z M238.7,46.4h3.3l-0.5,10.2c0,0-3.2,0-4.4,0 C237.6,54.8,238.7,46.4,238.7,46.4z M236.9,58.3h4.6l0,0.9h0c0,0,0,0.1,0,0.1c0,1.3-1,2.3-2.3,2.3c-1.2,0-2.1-0.9-2.3-2L236.9,58.3 z M232.1,46.4h3.2L234,56.6c0,0-3.3,0-4.5,0C230.8,54.3,232.1,46.4,232.1,46.4z M229.2,58.3h4.6c0,0,0,0.9,0,1c0,1.3-1,2.3-2.3,2.3 c-1.1,0-2.1-0.8-2.3-1.9L229.2,58.3z"/> </g> </svg> �������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/templates/sync.php��������������������������������������������������������������0000644�����������������00000011716�15122273603�0014105 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div id="sync-container" class="state-initial" <?php if ( ! get_option( 'ecwid_local_base_enabled', false ) ) { echo ' style="display:none"';} ?>> <?php $prods = new Ecwid_Products(); $api = new Ecwid_Api_V3( get_ecwid_store_id() ); ?> <script> jQuery(document).ready(function() { jQuery('#sync-container').addClass('no-sse'); jQuery('#ecwid_local_base_enabled').click(function() { jQuery('#sync-container').css('display', (jQuery(this).is(':checked')) ? '' : 'none'); }); jQuery('#sync-button').click(function() { sync_by_chunks(); return false; }); var updatedFrom = '<?php echo esc_js( $estimation['last_update'] ); ?>'; function do_no_sse_sync(mode, offset, limit, time) { jQuery.getJSON('admin-post.php?action=ecwid_sync_no_sse&mode=' + mode + '&offset=' + offset + '&limit=' + limit + '&time=' + updatedFrom, {}, process_no_sse_sync); } function process_no_sse_sync(data) { var mode = '<?php echo $estimation['last_update'] == 0 ? 'updated' : 'deleted'; ?>', offset = 0, limit = 20; var processed_updates = data.updated + data.created + data.deleted_disabled; var processed_deletes = data.deleted + data.skipped_deleted; if ( processed_updates + processed_deletes == 0 ) { jQuery('#sync-date').text( data.last_update ); return do_no_sse_over(); } update_no_sse_stuff(data); if (data.total == data.count + data.offset) { if (processed_updates > 0) { return do_no_sse_sync('updated', data.offset + limit, limit); } else { mode = 'updated'; } } else { if (processed_updates > 0) { mode = 'updated'; } offset = parseInt(data.offset) + parseInt(data.limit); } do_no_sse_sync(mode, offset, limit, updatedFrom); } function update_no_sse_stuff(data) { var counters = ['deleted', 'skipped_deleted', 'deleted_disabled']; for (var i = 0; i < counters.length; i++) { increment_progress_counter(data[counters[i]], 'deleted'); } var counters = ['created', 'updated']; for (var i = 0; i < counters.length; i++) { increment_progress_counter(data[counters[i]], 'updated'); } } function increment_progress_counter(increment = 1, counter_type) { debugger; if (increment == 0) { return; } var name = 'count_' + counter_type; var css = '#' + name; var current = jQuery(css).data('count'); if (!current) { current = increment; } else { current += increment; } jQuery(css).data('count', current).text(current); jQuery('#' + counter_type + '-progress').show(); } function do_no_sse_over() { jQuery('#sync-container').removeClass('state-in-progress').addClass('state-complete'); jQuery('#deleted-progress,#updated-progress').hide(); } jQuery('#sync-button-slow').click(function() { jQuery('#sync-container').removeClass('state-initial').addClass('state-in-progress'); var mode = '<?php echo $estimation['last_update'] == 0 ? 'updated' : 'deleted'; ?>', offset = 0, limit = 100; jQuery('#current_item').text('Started importing...'); do_no_sse_sync(mode, offset, limit); return false; }); jQuery('#sync-button_reset').click(function() { location.href='admin-post.php?action=ecwid_sync_reset'; return false; }); }); </script> <?php if ( ! Ecwid_Api_V3::get_token() ) : ?> <div> <?php esc_html_e( 'To enable this feature, the plugin needs a permission to read your store product information.', 'ecwid-shopping-cart' ); ?> <a href="<?php echo esc_url( get_reconnect_link() ); ?>"><?php esc_html_e( 'Provide access.', 'ecwid-shopping-cart' ); ?></a> </div> <?php else : ?> <div class="sync-block" id="sync-buttons"> <a id="sync-button-slow"><?php esc_html_e( 'Synchronize products', 'ecwid-shopping-cart' ); ?></a> </div> <div class="sync-block progress-indicator" id="updating"> <div class="sync-icon"> <?php ecwid_embed_svg( 'update' ); ?> </div> <div> <?php esc_html_e( 'We\'re synchronizing your products. This may take a few minutes. Please do not reload the page.', 'ecwid-shopping-cart' ); ?> </div> </div> <div class="sync-block"> <?php echo wp_kses_post( sprintf( __( 'Deleted products synchronized: %1$s out of %2$s', 'ecwid-shopping-cart' ), '<span id="count_deleted">0</span>', '<span id="total_deleted">' . ( $estimation['total_deleted'] ) . '</span>' ) ); ?> </div> <div class="sync-block" id="updated-progress"> <?php echo wp_kses_post( sprintf( __( 'Products synchronized: %1$s out of %2$s', 'ecwid-shopping-cart' ), '<span id="count_updated">0</span>', '<span id="total_updated">' . ( $estimation['total_updated'] ) . '</span>' ) ); ?> </div> <div class="sync-block" id="complete"> <?php esc_html_e( 'Products are successfully synchronized. The product pages are up to date.', 'ecwid-shopping-cart' ); ?> </div> <div class="sync-block" id="last-sync-date"> <?php esc_html_e( 'Last update', 'ecwid-shopping-cart' ); ?>: <span id="sync-date"> <?php if ( $estimation['last_update'] == 0 ) : ?> <?php esc_html_e( 'Not synchronized yet', 'ecwid-shopping-cart' ); ?> <?php else : ?> <?php echo esc_html( ecwid_format_date( $estimation['last_update'] ) ); ?> <?php endif; ?> </span> </div> <?php endif; ?> </div> ��������������������������������������������������ecwid-shopping-cart/templates/widget-stub.tpl.php���������������������������������������������������0000644�����������������00000003770�15122273603�0016166 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div class="ecwid-widget-stub <?php echo esc_attr( $classname ); ?>"> <div class="ecwid-widget-stub-header"><svg aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" class="dashicon" width="20" height="20" viewBox="0 0 20 20"><path d="M15.32,15.58c-0.37,0-0.66,0.3-0.66,0.67c0,0.37,0.3,0.67,0.66,0.67c0.37,0,0.67-0.3,0.67-0.67 C15.98,15.88,15.69,15.58,15.32,15.58z M15.45,0H4.55C2.04,0,0,2.04,0,4.55v10.91C0,17.97,2.04,20,4.55,20h10.91c2.51,0,4.55-2.04,4.55-4.55V4.55 C20,2.04,17.96,0,15.45,0z M12.97,4.94C13.54,4.94,14,5.4,14,5.96s-0.46,1.03-1.03,1.03c-0.57,0-1.03-0.46-1.03-1.03 C11.95,5.4,12.41,4.94,12.97,4.94z M12.97,8.02c0.57,0,1.03,0.46,1.03,1.03c0,0.57-0.46,1.03-1.03,1.03c-0.57,0-1.03-0.46-1.03-1.03 C11.95,8.48,12.41,8.02,12.97,8.02z M9.98,4.94c0.57,0,1.03,0.46,1.03,1.03s-0.46,1.03-1.03,1.03c-0.57,0-1.03-0.46-1.03-1.03 C8.95,5.4,9.41,4.94,9.98,4.94z M9.98,8.02c0.57,0,1.03,0.46,1.03,1.03s-0.46,1.03-1.03,1.03c-0.57,0-1.03-0.46-1.03-1.03 C8.95,8.48,9.41,8.02,9.98,8.02z M7.03,4.94c0.57,0,1.03,0.46,1.03,1.03S7.6,6.99,7.03,6.99C6.46,6.99,6,6.53,6,5.96 C6,5.4,6.46,4.94,7.03,4.94z M7.03,8.02c0.57,0,1.03,0.46,1.03,1.03s-0.46,1.03-1.03,1.03C6.46,10.08,6,9.62,6,9.05 C6,8.48,6.46,8.02,7.03,8.02z M4.6,18.02c-1.02,0-1.86-0.83-1.86-1.86c0-1.03,0.83-1.86,1.86-1.86c1.03,0,1.86,0.83,1.86,1.86 C6.45,17.19,5.62,18.02,4.6,18.02z M15.32,18.1c-1.02,0-1.86-0.83-1.86-1.86c0-1.03,0.83-1.86,1.86-1.86c1.03,0,1.86,0.83,1.86,1.86 C17.17,17.27,16.34,18.1,15.32,18.1z M18.48,2.79l-1.92,7.14c-0.51,1.91-2.03,3.1-4,3.1H7.2c-1.91,0-3.26-1.09-3.84-2.91L1.73,5 C1.7,4.9,1.72,4.79,1.78,4.71c0.06-0.09,0.16-0.14,0.27-0.14l0.31,0c0.75,0,1.41,0.49,1.64,1.2l1.2,3.76 c0.32,1.02,1.26,1.7,2.33,1.7h4.81c1.1,0,2.08-0.74,2.36-1.81l1.55-5.78c0.2-0.75,0.89-1.28,1.67-1.28h0.24 c0.1,0,0.2,0.05,0.26,0.13C18.48,2.58,18.5,2.68,18.48,2.79z M4.6,15.5c-0.37,0-0.66,0.3-0.66,0.67c0,0.37,0.3,0.67,0.66,0.67c0.37,0,0.67-0.3,0.67-0.67 S4.96,15.5,4.6,15.5z"></path></svg> <?php echo wp_kses_post( $message ); ?> </div> </div> ��������ecwid-shopping-cart/templates/wp-toolbox.tpl.php����������������������������������������������������0000644�����������������00000000703�15122273603�0016033 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div class="wrap"> <div class="card"> <h2 class="title"><?php esc_html_e( 'Extensions for your Store', 'ecwid-shopping-cart' ); ?></h2> <p><?php esc_html_e( 'Take advantage of powerful apps and extensions designed to enhance your store.', 'ecwid-shopping-cart' ); ?></p> <a class="button button-primary" href="admin.php?page=<?php echo esc_attr( Ecwid_Admin::ADMIN_SLUG ); ?>-admin-appmarket">Browse the App Market</a> <p></p> </div> </div> �������������������������������������������������������������ecwid-shopping-cart/ecwid-shopping-cart.php���������������������������������������������������������0000644�����������������00000257701�15122273603�0015010 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?php /* Plugin Name: Ecwid Ecommerce Shopping Cart Plugin URI: http://www.ecwid.com?partner=wporg Description: Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up. Text Domain: ecwid-shopping-cart Author: Ecwid Ecommerce Version: 6.12.10 Author URI: https://ecwid.to/ecwid-site License: GPLv2 or later */ register_activation_hook( __FILE__, 'ecwid_store_activate' ); register_deactivation_hook( __FILE__, 'ecwid_store_deactivate' ); register_uninstall_hook( __FILE__, 'ecwid_uninstall' ); define( 'ECWID_API_AVAILABILITY_CHECK_TIME', 60 * 60 * 3 ); define( 'ECWID_TRIMMED_DESCRIPTION_LENGTH', 160 ); if ( ! defined( 'ECWID_PLUGIN_DIR' ) ) { define( 'ECWID_PLUGIN_DIR', plugin_dir_path( __FILE__ ) ); } if ( ! defined( 'ECWID_TEMPLATES_DIR' ) ) { define( 'ECWID_TEMPLATES_DIR', ECWID_PLUGIN_DIR . 'templates' ); } if ( ! defined( 'ECWID_PLUGIN_BASENAME' ) ) { define( 'ECWID_PLUGIN_BASENAME', plugin_basename( __FILE__ ) ); } if ( ! defined( 'ECWID_PLUGIN_URL' ) ) { define( 'ECWID_PLUGIN_URL', plugin_dir_url( __FILE__ ) ); } if ( ! defined( 'ECWID_SHORTCODES_DIR' ) ) { define( 'ECWID_SHORTCODES_DIR', ECWID_PLUGIN_DIR . 'includes/shortcodes' ); } add_action( 'plugins_loaded', 'ecwid_init_integrations' ); add_filter( 'plugins_loaded', 'ecwid_load_textdomain' ); if ( is_admin() ) { add_action( 'init', 'ecwid_apply_theme', 0 ); add_action( 'init', 'ecwid_maybe_remove_emoji' ); add_action( 'admin_init', 'ecwid_settings_api_init' ); add_action( 'admin_init', 'ecwid_check_version' ); add_action( 'wp_ajax_ec_check_api_cache', 'ecwid_admin_check_api_cache' ); add_action( 'admin_enqueue_scripts', 'ecwid_common_admin_scripts' ); add_action( 'admin_enqueue_scripts', 'ecwid_register_admin_styles' ); add_action( 'admin_enqueue_scripts', 'ecwid_register_settings_styles' ); add_action( 'admin_enqueue_scripts', 'ecwid_enqueue_cache_control' ); add_action( 'wp_ajax_ecwid_hide_vote_message', 'ecwid_hide_vote_message' ); add_action( 'wp_ajax_ecwid_hide_message', 'ecwid_ajax_hide_message' ); add_action( 'wp_ajax_ecwid_reset_categories_cache', 'ecwid_reset_categories_cache' ); add_action( 'wp_ajax_ecwid_create_store', 'ecwid_create_store' ); add_action( 'wp_ajax_ecwid_sync_products', 'ecwid_sync_products' ); add_action( 'admin_post_ecwid_sync_products', 'ecwid_sync_products' ); add_action( 'admin_post_ec_connect', 'ecwid_admin_post_connect' ); add_action( 'admin_post_ecwid_get_debug', 'ecwid_get_debug_file' ); add_action( 'admin_head', 'ecwid_ie8_fonts_inclusion' ); add_action( 'get_footer', 'ecwid_admin_get_footer' ); add_action( 'admin_init', 'ecwid_process_oauth_params' ); add_action( 'admin_notices', 'ecwid_show_admin_messages' ); add_filter( 'plugin_action_links_' . ECWID_PLUGIN_BASENAME, 'ecwid_plugin_actions' ); add_filter( 'tiny_mce_before_init', 'ecwid_tinymce_init' ); } else { add_shortcode( 'ecwid_script', 'ecwid_script_shortcode' ); add_action( 'init', 'ecwid_backward_compatibility' ); add_action( 'init', 'ecwid_check_api_cache' ); add_action( 'template_redirect', 'ecwid_404_on_broken_escaped_fragment' ); // ecwid_apply_theme - why not init? add_action( 'template_redirect', 'ecwid_apply_theme' ); add_action( 'wp', 'ecwid_seo_ultimate_compatibility', 0 ); add_action( 'wp', 'ecwid_remove_default_canonical' ); add_filter( 'wp', 'ecwid_seo_compatibility_init', 0 ); add_action( 'wp_head', 'ecwid_seo_compatibility_restore', 1000 ); add_action( 'wp_head', 'ecwid_print_inline_js_config' ); add_action( 'wp_head', 'ecwid_product_browser_url_in_head' ); add_action( 'send_headers', 'ecwid_503_on_store_closed' ); add_action( 'wp_enqueue_scripts', 'ecwid_enqueue_frontend' ); add_filter( 'wp_title', 'ecwid_seo_title', 10000, 3 ); add_filter( 'document_title_parts', 'ecwid_seo_title_parts' ); add_filter( 'widget_meta_poweredby', 'ecwid_add_credits' ); add_filter( 'body_class', 'ecwid_body_class' ); add_action( 'redirect_canonical', 'ecwid_redirect_canonical', 10, 2 ); $ecwid_seo_title = ''; }//end if add_action( 'admin_bar_menu', 'add_ecwid_admin_bar_node', 1000 ); if ( get_option( 'ecwid_last_oauth_fail_time' ) > 0 ) { add_action( 'plugins_loaded', 'ecwid_test_oauth' ); } require_once ECWID_PLUGIN_DIR . 'lib/ecwid_platform.php'; require_once ECWID_PLUGIN_DIR . 'lib/ecwid_api_v3.php'; require_once ECWID_PLUGIN_DIR . 'includes/themes.php'; require_once ECWID_PLUGIN_DIR . 'includes/oembed.php'; require_once ECWID_PLUGIN_DIR . 'includes/widgets.php'; require_once ECWID_PLUGIN_DIR . 'includes/shortcodes.php'; require_once ECWID_PLUGIN_DIR . 'includes/kliken.php'; require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-message-manager.php'; require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-store-editor.php'; require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-product-popup.php'; require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-oauth.php'; require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-products.php'; require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-config.php'; require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-admin.php'; require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-admin-main-page.php'; require_once ECWID_PLUGIN_DIR . 'includes/class-ec-store-admin-access.php'; require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-static-page.php'; if ( is_admin() ) { require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-admin-ui-framework.php'; require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-help-page.php'; if ( ! Ecwid_Admin::disable_dashboard() ) { require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-custom-admin-page.php'; } } require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-nav-menus.php'; require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-ajax-defer-renderer.php'; require_once ECWID_PLUGIN_DIR . 'includes/class-ec-store-defer-init.php'; require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-store-page.php'; require_once ECWID_PLUGIN_DIR . 'lib/ecwid_product.php'; require_once ECWID_PLUGIN_DIR . 'lib/ecwid_category.php'; require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-seo-links.php'; require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-html-meta.php'; require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-wp-dashboard-feed.php'; require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-well-known.php'; require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-admin-storefront-page.php'; require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-admin-developers-page.php'; if ( version_compare( phpversion(), '5.6', '>=' ) ) { require_once ECWID_PLUGIN_DIR . 'includes/importer/importer.php'; } $version = get_bloginfo( 'version' ); if ( version_compare( $version, '4.0' ) >= 0 ) { require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-customizer.php'; require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-floating-minicart.php'; } if ( strpos( $version, '5.0' ) === 0 || version_compare( $version, '5.0' ) > 0 ) { require_once ECWID_PLUGIN_DIR . 'includes/gutenberg/class-ecwid-gutenberg.php'; } if ( strpos( $version, '5.5' ) === 0 || version_compare( $version, '5.5' ) >= 0 ) { require_once ECWID_PLUGIN_DIR . 'includes/class-ec-store-sitemap-provider.php'; } if ( Ecwid_Config::is_cli_running() ) { require_once ECWID_PLUGIN_DIR . 'includes/class-ec-store-wp-cli.php'; } // Needs to be in both front-end and back-end to allow admin zone recognize the shortcode foreach ( Ecwid_Shortcode_Base::get_store_shortcode_names() as $shortcode_name ) { add_shortcode( $shortcode_name, 'ecwid_shortcode' ); } add_action( 'update_option_' . Ecwid_Api_V3::TOKEN_OPTION_NAME, array( 'Ecwid_Store_Page', 'set_store_url' ) ); add_action( 'update_option_' . Ecwid_Store_Page::OPTION_MAIN_STORE_PAGE_ID, array( 'Ecwid_Store_Page', 'set_store_url' ) ); add_action( 'update_option_rewrite_rules', array( 'Ecwid_Store_Page', 'set_store_url' ) ); function ecwid_init_integrations() { if ( ! function_exists( 'get_plugins' ) ) { require_once( ABSPATH . 'wp-admin/includes/plugin.php' ); } $integrations = array( 'all-in-one-seo-pack/all_in_one_seo_pack.php' => 'aiosp', 'wordpress-seo/wp-seo.php' => 'wpseo', 'wordpress-seo-premium/wp-seo-premium.php' => 'wpseo', 'divi-builder/divi-builder.php' => 'divibuilder', 'autoptimize/autoptimize.php' => 'autoptimize', 'js_composer/js_composer.php' => 'wpbakery-composer', 'beaver-builder-lite-version/fl-builder.php' => 'beaver-builder', 'bb-plugin/fl-builder.php' => 'beaver-builder', 'elementor/elementor.php' => 'elementor', 'sitepress-multilingual-cms/sitepress.php' => 'wpml', 'pwa/pwa.php' => 'pwa', 'polylang/polylang.php' => 'polylang', 'wp-rocket/wp-rocket.php' => 'wprocket', 'urbango-core/main.php' => 'urbango', 'seo-by-rank-math/rank-math.php' => 'rank-math', 'litespeed-cache/litespeed-cache.php' => 'litespeed-cache', 'sg-cachepress/sg-cachepress.php' => 'sg-optimizer', 'google-sitemap-generator/sitemap.php' => 'google-sitemap-generator', ); $old_wordpress = version_compare( get_bloginfo( 'version' ), '5.0', '<' ); $old_php = version_compare( phpversion(), '5.4', '<' ); // that integration did not work well with older php // and it is not needed for newer wordpress since blocks are a part of its core if ( ! $old_php && $old_wordpress ) { $integrations['gutenberg/gutenberg.php'] = 'gutenberg'; } foreach ( $integrations as $plugin => $class ) { if ( is_plugin_active( $plugin ) ) { require_once ECWID_PLUGIN_DIR . 'includes/integrations/class-ecwid-integration-' . $class . '.php'; } } // exception case when divi builder supplied from theme if ( function_exists( 'ecwid_get_theme_identification' ) ) { $divi = 'divi-builder/divi-builder.php'; if ( ! is_plugin_active( $divi ) && ecwid_get_theme_identification() === 'Divi' ) { require_once ECWID_PLUGIN_DIR . 'includes/integrations/class-ecwid-integration-' . $integrations[ $divi ] . '.php'; } } } add_action( 'admin_post_ecwid_estimate_sync', 'ecwid_estimate_sync' ); function ecwid_estimate_sync() { $p = new Ecwid_Products(); $result = $p->estimate_sync(); echo json_encode( $result ); } if ( version_compare( $version, '3.6' ) < 0 ) { /** * A copy of has_shortcode functionality from wordpress 3.6 * http://core.trac.wordpress.org/browser/tags/3.6/wp-includes/shortcodes.php */ if ( ! function_exists( 'shortcode_exists' ) ) { function shortcode_exists( $tag ) { global $shortcode_tags; return array_key_exists( $tag, $shortcode_tags ); } } if ( ! function_exists( 'has_shortcode' ) ) { function has_shortcode( $content, $tag ) { if ( false === strpos( $content, '[' ) ) { return false; } if ( shortcode_exists( $tag ) ) { preg_match_all( '/' . get_shortcode_regex() . '/s', $content, $matches, PREG_SET_ORDER ); if ( empty( $matches ) ) return false; foreach ( $matches as $shortcode ) { if ( $tag === $shortcode[2] ) { return true; } elseif ( ! empty( $shortcode[5] ) && has_shortcode( $shortcode[5], $tag ) ) { return true; } } } return false; } } } if ( is_admin() ) { $main_button_class = ''; if ( version_compare( $version, '3.8-beta' ) > 0 ) { $main_button_class = 'button-primary'; } else { $main_button_class = 'pure-button pure-button-primary'; } define( 'ECWID_MAIN_BUTTON_CLASS', $main_button_class ); } function ecwid_body_class( $classes ) { if ( Ecwid_Store_Page::is_store_page() ) { $classes[] = 'ecwid-shopping-cart'; } return $classes; } function ecwid_redirect_canonical( $redirect_url, $requested_url ) { if ( ! is_front_page() ) { return $redirect_url; } if ( strpos( $requested_url, '_escaped_fragment_' ) === false ) { return $redirect_url; } $parsed = parse_url( $requested_url ); $query = array(); parse_str( $parsed['query'], $query ); if ( ! array_key_exists( '_escaped_fragment_', $query) ) { return $redirect_url; } if ( ! Ecwid_Store_Page::is_store_page() ) { return $redirect_url; } return $requested_url; } function ecwid_ie8_fonts_inclusion() { $user_agent = isset( $_SERVER['HTTP_USER_AGENT'] ) ? sanitize_text_field( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ) : ''; if ( strpos( $user_agent, 'MSIE 8' ) === false ) { return; } $url = ECWID_PLUGIN_URL . 'fonts/ecwid-logo.eot'; ?> <style> @font-face { font-family: "ecwid-logo"; src: url('<?php echo esc_url( $url ); ?>'); } </style> <?php } add_action( 'wp_head', 'ecwid_maybe_remove_emoji', 0 ); function ecwid_maybe_remove_emoji() { if ( Ecwid_Store_page::is_store_page() && get_option( 'ecwid_remove_emoji' ) == 'Y' ) { remove_action( 'wp_head', 'print_emoji_detection_script', 7 ); remove_action( 'wp_print_styles', 'print_emoji_styles' ); remove_action( 'admin_print_scripts', 'print_emoji_detection_script' ); remove_action( 'admin_print_styles', 'print_emoji_styles' ); } } add_action( 'wp_ajax_ecwid_get_product_info', 'ecwid_ajax_get_product_info' ); add_action( 'wp_ajax_nopriv_ecwid_get_product_info', 'ecwid_ajax_get_product_info' ); add_filter( 'redirect_canonical', 'ecwid_redirect_canonical2', 10, 3 ); function ecwid_redirect_canonical2( $redir, $req ) { global $wp_query; $adds_slash = $req . '/' == $redir; $adds_slash |= urldecode( $req . '/' ) == urldecode( $redir ); if ( Ecwid_Store_Page::is_store_page() && $adds_slash ) { return $req; } return $redir; } add_action( 'current_screen', 'ecwid_add_deactivation_popup' ); function ecwid_add_deactivation_popup() { if ( get_current_screen()->id == 'plugins' ) { require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-popup-deactivate.php'; $popup = new Ecwid_Popup_Deactivate(); if ( ! $popup->is_disabled() ) { Ecwid_Popup::add_popup( $popup ); } } } function ecwid_enqueue_frontend() { global $ecwid_current_theme; if ( $ecwid_current_theme && $ecwid_current_theme->historyjs_html4mode || get_option( 'ecwid_historyjs_html4mode' ) ) { wp_enqueue_script('ecwid-historyjs-wa', ECWID_PLUGIN_URL . 'js/historywa.js'); } $version = get_bloginfo( 'version' ); if ( ! wp_script_is( 'jquery-ui-widget' ) && version_compare( $version, '5.6' ) < 0 ) { wp_enqueue_script( 'jquery-ui-widget', includes_url() . 'js/jquery/ui/widget.min.js', array( 'jquery' ) ); } wp_enqueue_style( 'ecwid-css', ECWID_PLUGIN_URL . 'css/frontend.css', array(), get_option( 'ecwid_plugin_version' ) ); wp_enqueue_script( 'ecwid-frontend-js', ECWID_PLUGIN_URL . 'js/frontend.js', array( 'jquery' ), get_option( 'ecwid_plugin_version' ), true ); wp_localize_script( 'ecwid-frontend-js', 'ecwidParams', array( 'useJsApiToOpenStoreCategoriesPages' => Ecwid_Nav_Menus::should_use_js_api_for_categories_menu(), 'storeId' => get_ecwid_store_id() )); if ( get_post() && get_post()->post_type == Ecwid_Products::POST_TYPE_PRODUCT ) { wp_enqueue_script( 'ecwid-post-product', ECWID_PLUGIN_URL . 'js/post-product.js', array(), get_option( 'ecwid_plugin_version' ), true ); $meta = get_post_meta( get_the_ID(), 'ecwid_id' ); wp_localize_script( 'ecwid-post-product', 'ecwidPost', array( 'productId' => $meta[0], 'storePageUrl' => Ecwid_Store_Page::get_store_url() ) ); } if ( is_active_widget( false, false, 'ecwidrecentlyviewed' ) ) { wp_enqueue_script( 'ecwid-recently-viewed', ECWID_PLUGIN_URL . 'js/recently-viewed-common.js', array( 'jquery', 'utils' ), get_option( 'ecwid_plugin_version' ), true ); wp_localize_script( 'ecwid-products-list-js', 'wp_ecwid_products_list_vars', array( 'ajax_url' => admin_url( 'admin-ajax.php' ), 'is_api_available' => ecwid_is_paid_account() ) ); } if ( is_plugin_active( 'contact-form-7-designer/cf7-styles.php' ) ) { wp_enqueue_script( 'ecwid-cf7designer', ECWID_PLUGIN_URL . 'js/cf7designer.js', array(), get_option( 'ecwid-plugin-version' ), true ); } if ( current_user_can( Ecwid_Admin::get_capability() ) ) { wp_enqueue_style( 'ecwid-fonts-css', ECWID_PLUGIN_URL . 'css/fonts.css', array(), get_option( 'ecwid_plugin_version' ) ); } if ( Ecwid_Store_Page::is_store_page() && ( current_user_can( Ecwid_Admin::get_capability() ) || is_admin_bar_showing() ) ) { $is_post_edit_replace = true; if ( Ecwid_Config::is_wl() && ! Ecwid_Api_V3::is_available() ) { $is_post_edit_replace = false; } if ( $is_post_edit_replace ) { $post_edit_url = 'https://my.ecwid.com/#'; $is_api_available = false; if ( Ecwid_Config::is_wl() || Ecwid_Api_V3::is_available() ) { $post_edit_url = get_admin_url() . 'admin.php?page=ec-store&ec-store-page='; $is_api_available = true; } if ( ! ecwid_is_demo_store() ) { wp_enqueue_script( 'ecwid-admin-bar-js', ECWID_PLUGIN_URL . 'js/admin-bar.js', array( 'jquery' ), get_option( 'ecwid_plugin_version' ) ); wp_localize_script( 'ecwid-admin-bar-js', 'ecwidEditPostLinkParams', array( 'languages' => array( 'editProduct' => __('Edit Product', 'ecwid-shopping-cart'), 'editCategory' => __('Edit Category', 'ecwid-shopping-cart') ), 'url' => $post_edit_url, 'admin_url' => admin_url(), 'is_api_available' => $is_api_available )); } } } } function ecwid_print_inline_js_config() { $js = PHP_EOL; $js .= 'window.ec = window.ec || Object()' . PHP_EOL; $js .= 'window.ec.config = window.ec.config || Object();' . PHP_EOL; $js .= 'window.ec.config.enable_canonical_urls = true;' . PHP_EOL; $plugins_disabling_interactive = array( 'shiftnav-pro/shiftnav.php', 'easymega/easymega.php', ); foreach ( $plugins_disabling_interactive as $plugin ) { if ( is_plugin_active( $plugin ) ) { $js .= 'window.ec.config.interactive = false;' . PHP_EOL; break; } } $js = apply_filters( 'ecwid_inline_js_config', $js ) . PHP_EOL; echo sprintf( '<script data-cfasync="false" data-no-optimize="1" type="text/javascript">%s</script>' . PHP_EOL, $js ); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } add_action( 'ecwid_inline_js_config', 'ecwid_add_chameleon' ); function ecwid_add_chameleon( $js ) { $colors = array(); foreach ( array( 'foreground', 'background', 'link', 'price', 'button' ) as $kind ) { $color = get_option( 'ecwid_chameleon_colors_' . $kind ); if ( $color ) { $colors[ 'color-' . $kind ] = $color; } } if ( ! get_option( 'ecwid_use_chameleon' ) && empty( $colors ) ) { return $js; } if ( empty( $colors ) ) { $colors = 'auto'; } $colors = json_encode( $colors ); $font = '"auto"'; $chameleon = apply_filters( 'ecwid_chameleon_settings', array( 'colors' => $colors, 'font' => $font ) ); if ( ! is_array( $chameleon ) ) { $chameleon = array( 'colors' => $colors, 'font' => $font, ); } if ( ! isset( $chameleon['colors'] ) ) { $chameleon['colors'] = json_encode( $colors ); } if ( ! isset( $chameleon['font'] ) ) { $chameleon['font'] = $font; } $js .= 'window.ec.config.chameleon = window.ec.config.chameleon || Object();' . PHP_EOL; $js .= sprintf( 'window.ec.config.chameleon.font = %s;', $chameleon['font'] ) . PHP_EOL; $js .= sprintf( 'window.ec.config.chameleon.colors = %s;', $chameleon['colors'] ) . PHP_EOL; return $js; } function ecwid_load_textdomain() { load_plugin_textdomain( 'ecwid-shopping-cart', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' ); } function ecwid_404_on_broken_escaped_fragment() { if ( !Ecwid_Api_V3::is_available() ) { return; } $params = array(); if (isset($_GET['_escaped_fragment_'])) { $params = ecwid_parse_escaped_fragment(); } elseif (Ecwid_Seo_Links::is_product_browser_url()) { $params = Ecwid_Seo_Links::maybe_extract_html_catalog_params(); } if (isset($params['mode']) && !empty($params['mode']) && isset($params['id'])) { $result = array(); $is_root_cat = $params['mode'] == 'category' && $params['id'] == 0; if ($params['mode'] == 'product') { $result = Ecwid_Product::get_by_id( $params['id'] ); } elseif (!$is_root_cat && $params['mode'] == 'category') { $result = Ecwid_Category::get_by_id( $params['id'] ); } if (!$is_root_cat && ( empty( $result ) || is_object ( $result ) && ( !isset( $result->id ) || !$result->enabled ) ) ) { status_header( 404 ); global $wp_query; $wp_query->set_404(); } } } function ecwid_503_on_store_closed() { if ( !isset( $_GET['_escaped_fragment_'] ) ) { return; } if ( ecwid_is_store_closed() ) { header( 'HTTP/1.1 503 Service Temporarily Unavailable' ); header( 'Status: 503 Service Temporarily Unavailable' ); } } function ecwid_is_store_closed() { if ( Ecwid_Api_V3::is_available() ) { $api = new Ecwid_Api_V3(); $profile = $api->get_store_profile(); if ( !$profile || !isset( $profile->settings ) ) { return false; } return @$profile->settings->closed; } return false; } function ecwid_backward_compatibility() { // Backward compatibility with 1.1.2 and earlier if (isset($_GET['ecwid_product_id']) || isset($_GET['ecwid_category_id'])) { if (isset($_GET['ecwid_product_id'])) $redirect = ecwid_get_product_url(intval($_GET['ecwid_product_id'])); elseif (isset($_GET['ecwid_category_id'])) $redirect = ecwid_get_category_url(intval($_GET['ecwid_category_id'])); wp_safe_redirect($redirect, 301); exit(); } } function ecwid_build_sitemap( $callback, $page_num = 1 ) { if ( ! Ecwid_Api_V3::is_available() || ! ecwid_is_store_page_available() ) { return; } $page_id = Ecwid_Store_Page::get_current_store_page_id(); if ( get_post_status( $page_id ) === 'publish' ) { require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-sitemap-builder.php'; $sitemap = new EcwidSitemapBuilder( Ecwid_Store_Page::get_store_url(), $callback ); $sitemap->generate( (int) $page_num ); } } function ecwid_minifier_compatibility() { if ( !function_exists( 'get_plugins' ) ) { require_once ( ABSPATH . 'wp-admin/includes/plugin.php' ); } $plugins = get_plugins(); $wp_minify_plugin = 'wp-minify/wp-minify.php'; if (array_key_exists($wp_minify_plugin, $plugins) && is_plugin_active($wp_minify_plugin)) { global $wp_minify; if (is_object($wp_minify) && array_key_exists('default_exclude', get_object_vars($wp_minify)) && is_array($wp_minify->default_exclude)) { $wp_minify->default_exclude[] = Ecwid_Config::get_scriptjs_domain() . '/script.js'; } } } function ecwid_check_version() { $plugin_data = get_plugin_data( __FILE__ ); $current_version = $plugin_data['Version']; $stored_version = get_option( 'ecwid_plugin_version', null ); $migration_since_version = get_option( 'ecwid_plugin_migration_since_version', null ); if ( is_null( $migration_since_version ) ) { update_option( 'ecwid_plugin_migration_since_version', $current_version ); } $fresh_install = ! $stored_version; $upgrade = $stored_version && version_compare( $current_version, $stored_version ) > 0; if ( $fresh_install ) { do_action( 'ecwid_plugin_installed', $current_version ); add_option( 'ecwid_plugin_version', $current_version ); // Called in Ecwid_Seo_Links->on_fresh_install do_action( 'ecwid_on_fresh_install' ); } elseif ( $upgrade ) { do_action( 'ecwid_plugin_upgraded', array( 'old' => $stored_version, 'new' => $current_version ) ); update_option( 'ecwid_plugin_version', $current_version ); do_action( 'ecwid_on_plugin_upgrade' ); }//end if if ( $fresh_install || $upgrade || isset( $_GET['ecwid_reinit'] ) ) { add_option( Ecwid_Seo_Links::OPTION_ENABLED, false ); if ( ecwid_migrations_is_original_plugin_version_older_than( '4.3' ) ) { add_option( 'ecwid_fetch_url_use_file_get_contents', '' ); add_option( 'ecwid_remote_get_timeout', '5' ); } add_option( 'ecwid_support_email', 'wordpress@ecwid.com' ); add_option( 'ecwid_enable_sso' ); add_option( Ecwid_Products::OPTION_ENABLED, Ecwid_Products::is_enabled() ); add_option( 'ecwid_disable_pb_url', false ); add_option( 'ecwid_historyjs_html4mode', false ); add_option( Ecwid_Widget_Floating_Shopping_Cart::OPTION_DISPLAY_POSITION, '' ); // Since 5.4 delete_option( 'ecwid_use_new_search' ); delete_option( 'ecwid_use_new_categories' ); // /Since 5.4 // Since 5.4.2 delete_option( 'ecwid_hide_appearance_menu' ); // Since 5.4.3 add_option( Ecwid_Widget_Floating_Shopping_Cart::OPTION_MOVE_INTO_BODY, '' ); // Since 5.7.3 delete_option( 'ecwid_use_js_api_to_open_store_pages' ); // Since 5.7.4 update_option( 'ecwid_use_js_api_to_open_store_categories_pages', Ecwid_Nav_Menus::OPTVAL_USE_JS_API_FOR_CATS_MENU_AUTO ); // Since 5.8 add_option( Ecwid_Admin::OPTION_ENABLE_AUTO_MENUS, 'auto' ); // Since 5.8 add_option( 'ecwid_print_html_catalog', 'Y' ); // Since 5.8.1+ add_option( Ecwid_Products::OPTION_SYNC_LIMIT, 20 ); // Since 6.0.x add_option( 'ecwid_hide_prefetch', 'off' ); // Since 6.1.x if ( class_exists( 'Ecwid_Floating_Minicart' ) ) { Ecwid_Floating_Minicart::create_default_options(); } add_option( 'ecwid_hide_old_minicart', ecwid_is_recent_installation() ); Ecwid_Config::load_from_ini(); // Since 6.2.x delete_option( 'force_scriptjs_render' ); // Since 6.4.x add_option( EcwidPlatform::OPTION_LOG_CACHE ); // Since 6.4.8 add_option( 'ecwid_hide_canonical', false ); // Since 6.4.9 add_option( Ecwid_Theme_Base::OPTION_LEGACY_CUSTOM_SCROLLER, false ); // Since 6.4.9+ add_option( 'ecwid_remove_emoji', 'Y' ); // Since 6.4.14+ add_option( Ecwid_Store_Page::OPTION_REPLACE_TITLE, $fresh_install ? 'Y' : '' ); do_action( 'ecwid_on_plugin_update' ); Ecwid_Store_Page::add_store_page( get_option( 'ecwid_store_page_id' ) ); Ecwid_Store_Page::add_store_page( get_option( 'ecwid_store_page_id_auto' ) ); if ( Ecwid_Store_Page::get_current_store_page_id() ) { delete_option( 'ecwid_store_page_id_auto' ); } Ecwid_Api_V3::reset_api_status(); flush_rewrite_rules(); }//end if add_option( 'ecwid_disable_dashboard', '' ); } function ecwid_get_woocommerce_status() { $woo = EcwidPlatform::cache_get('woo_status', null); if (is_null($woo)) { $woo = 0; $all_plugins = get_plugins(); if (array_key_exists('woocommerce/woocommerce.php', $all_plugins)) { $active_plugins = get_option('active_plugins'); if (in_array('woocommerce/woocommerce.php', apply_filters('active_plugins', $active_plugins))) { $woo = 2; } else { $woo = 1; } } EcwidPlatform::cache_set('woo_status', $woo, 60 * 60 * 24); } return $woo; } function ecwid_is_recent_installation() { return get_option( 'ecwid_plugin_migration_since_version' ) == get_option('ecwid_plugin_version' ); } function ecwid_migrations_is_original_plugin_version_older_than( $version ) { $migration_since_version = get_option( 'ecwid_plugin_migration_since_version', false ); return version_compare( $migration_since_version, $version ) < 0; } function ecwid_log_error( $message ) { $errors = get_option( 'ecwid_error_log' ); if ( ! $errors ) { $errors = array(); } else { $errors = json_decode( $errors ); if ( ! is_array( $errors ) ) { $errors = array(); } } while ( count( $errors ) > 10 ) { array_shift( $errors ); } $errors[] = array( 'message' => $message, 'date' => date_i18n( 'D F j H:i:s Y' ), ); update_option( 'ecwid_error_log', json_encode( $errors ) ); } function ecwid_override_option( $name, $new_value = null ) { static $overridden = array(); if ( ! array_key_exists( $name, $overridden ) ) { $overridden[ $name ] = get_option( $name ); } if ( ! is_null( $new_value ) ) { update_option( $name, $new_value ); } else { update_option( $name, $overridden[ $name ] ); } } function ecwid_tinymce_init( $in ) { if ( ! empty( $in['extended_valid_elements'] ) ) { $in['extended_valid_elements'] .= ','; } else { $in['extended_valid_elements'] = ''; } $in['extended_valid_elements'] .= '@[id|class|style|title|itemscope|itemtype|itemprop|customprop|datetime|rel],div,dl,ul,dt,dd,li,span,a|rev|charset|href|lang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur]'; return $in; } function ecwid_seo_ultimate_compatibility() { global $seo_ultimate; if ( ! $seo_ultimate ) { return; } if ( ! Ecwid_Store_Page::is_store_page() ) { return; } if ( isset( $_GET['_escaped_fragment_'] ) || ( Ecwid_Seo_Links::is_enabled() && Ecwid_Seo_Links::is_product_browser_url() ) ) { remove_action( 'template_redirect', array( $seo_ultimate->modules['titles'], 'before_header' ), 0 ); remove_action( 'wp_head', array( $seo_ultimate->modules['titles'], 'after_header' ), 1000 ); remove_action( 'su_head', array( $seo_ultimate->modules['meta-descriptions'], 'head_tag_output' ) ); remove_action( 'su_head', array( $seo_ultimate->modules['canonical'], 'link_rel_canonical_tag' ) ); remove_action( 'su_head', array( $seo_ultimate->modules['canonical'], 'http_link_rel_canonical' ) ); } } function ecwid_remove_default_canonical() { if ( Ecwid_Store_Page::is_store_page() ) { remove_action( 'wp_head', 'rel_canonical' ); } } function ecwid_seo_compatibility_init( $title ) { if ( ! array_key_exists( '_escaped_fragment_', $_GET ) || ! Ecwid_Store_Page::is_store_page() ) { return $title; } // Platinum SEO Pack // Canonical ecwid_override_option( 'psp_canonical', false ); // Title ecwid_override_option( 'aiosp_rewrite_titles', false ); add_action( 'amt_basic_metadata_head', 'ecwid_amt_remove_description' ); return $title; } function ecwid_amt_remove_description( $params ) { foreach ( $params as $key => $value ) { if ( preg_match( '/meta name="description"/', $value ) ) { unset( $params[ $key ] ); } } return $params; } function ecwid_seo_compatibility_restore() { if ( ! array_key_exists( '_escaped_fragment_', $_GET ) || ! Ecwid_Store_Page::is_store_page() ) { return; } ecwid_override_option( 'psp_canonical' ); ecwid_override_option( 'aiosp_rewrite_titles' ); } function ecwid_check_api_cache() { EcwidPlatform::cache_log_record( 'init', array() ); $last_cache = get_option( 'ecwid_last_api_cache_check' ); if ( time() - $last_cache > HOUR_IN_SECONDS ) { ecwid_invalidate_cache(); } } function ecwid_enqueue_cache_control() { wp_enqueue_script( 'ecwid-defer-actions', ECWID_PLUGIN_URL . 'js/defer-actions.js', array(), get_option( 'ecwid_plugin_version' ), true ); wp_localize_script( 'ecwid-defer-actions', 'ecwidCacheControlParams', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) ); } function ecwid_admin_check_api_cache() { $is_ajax_check_api_cache = isset( $_GET['action'] ) && $_GET['action'] == 'ec_check_api_cache'; $is_doing_ajax = defined( 'DOING_AJAX' ) && DOING_AJAX; $is_get_request = isset( $_SERVER['REQUEST_METHOD'] ) && $_SERVER['REQUEST_METHOD'] != 'GET'; if ( ! $is_ajax_check_api_cache && ( $is_doing_ajax || $is_get_request ) ) return; //phpcs:ignore Generic.ControlStructures.InlineControlStructure.NotAllowed EcwidPlatform::cache_log_record( 'admin_init', array() ); $last_cache = get_option( 'ecwid_last_api_cache_check' ); if ( Ecwid_Api_V3::get_api_status() == Ecwid_Api_V3::API_STATUS_OK ) { $check_time_period = 5 * MINUTE_IN_SECONDS; } else { $check_time_period = MINUTE_IN_SECONDS; } if ( time() - $last_cache > $check_time_period ) { Ecwid_Api_V3::reset_api_status(); } ecwid_regular_cache_check(); } function ecwid_invalidate_cache( $full_reset = false ) { if ( $full_reset ) { ecwid_full_cache_reset(); return; } ecwid_regular_cache_check(); } function ecwid_regular_cache_check() { static $already_checked = false; if ( Ecwid_Api_V3::is_available() && ! $already_checked ) { $already_checked = true; $api = new Ecwid_Api_V3(); $stats = $api->get_store_update_stats(); EcwidPlatform::cache_log_record( 'reg cache check', array( 'stats' => $stats ) ); if ( $stats ) { //phpcs:disable WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase EcwidPlatform::invalidate_products_cache_from( strtotime( $stats->productsUpdated ) ); EcwidPlatform::invalidate_categories_cache_from( strtotime( $stats->categoriesUpdated ) ); EcwidPlatform::invalidate_profile_cache_from( strtotime( $stats->profileUpdated ) ); //phpcs:enable WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase update_option( 'ecwid_last_api_cache_check', time() ); } $last_transients = get_option( 'ecwid_last_transients_check' ); if ( time() - $last_transients > WEEK_IN_SECONDS * 2 ) { EcwidPlatform::clear_all_transients(); update_option( 'ecwid_last_transients_check', time() ); } if ( EcwidPlatform::is_need_clear_transients() ) { EcwidPlatform::clear_all_transients(); } }//end if } function ecwid_full_cache_reset() { Ecwid_Api_V3::reset_api_status(); EcwidPlatform::invalidate_categories_cache_from( time() ); EcwidPlatform::invalidate_products_cache_from( time() ); EcwidPlatform::invalidate_profile_cache_from( time() ); EcwidPlatform::cache_reset( Ecwid_Api_V3::PROFILE_CACHE_NAME ); EcwidPlatform::cache_reset( 'all_categories' ); EcwidPlatform::cache_reset( 'nav_categories_posts' ); EcwidPlatform::clear_all_transients(); $p = new Ecwid_Products(); $p->reset_dates(); update_option( Ecwid_Api_V3::OPTION_API_STATUS, Ecwid_Api_V3::API_STATUS_OK ); update_option( 'ecwid_last_api_cache_check', time() ); } function add_ecwid_admin_bar_node() { global $wp_admin_bar; if ( !is_super_admin() || !is_admin_bar_showing() || Ecwid_Config::is_wl() ) return; $theme = ecwid_get_theme_name(); $store_url = Ecwid_Store_Page::get_store_url(); if (!is_admin()) { $subject = sprintf( __('%s plugin doesn\'t work well with my "%s" theme', 'ecwid-shopping-cart'), Ecwid_Config::get_brand(), $theme ); $body = "Hey %s, My store looks bad with my theme on Wordpress. The theme title is %s. The store URL is %s Can you have a look? Thanks."; } else { $subject = __('I have a problem with my %s store', 'ecwid-shopping-cart'); $body = "Hey %s, I have a problem with my store. [Please provide details here] The theme title is %s. The store URL is %s Can you have a look? Thanks."; } $body = __($body, 'ecwid-shopping-cart'); $body = sprintf($body, Ecwid_Config::get_brand(), $theme, $store_url); $wp_admin_bar->add_menu( array( 'id' => 'ecwid-main', 'title' => '<span class="ab-icon ecwid-top-menu-item"></span>', 'href' => Ecwid_Admin::get_dashboard_url(), )); if( ecwid_is_demo_store() || (isset($_GET['page']) && $_GET['page'] == Ecwid_Admin::ADMIN_SLUG && isset($_GET['reconnect'])) ) { $wp_admin_bar->add_menu(array( "id" => "ecwid-control-panel", "title" => __("Set up your store", 'ecwid-shopping-cart'), "parent" => "ecwid-main", 'href' => Ecwid_Admin::get_dashboard_url() ) ); } else { $pages = Ecwid_Store_Page::get_store_pages_array(); if( count($pages) ) { $wp_admin_bar->add_menu(array( "id" => "ecwid-go-to-page", "title" => __("Visit storefront", 'ecwid-shopping-cart'), "parent" => "ecwid-main", 'href' => Ecwid_Store_Page::get_store_url() ) ); } $wp_admin_bar->add_menu(array( "id" => "ecwid-control-panel", "title" => __("Manage store", 'ecwid-shopping-cart'), "parent" => "ecwid-main", 'href' => Ecwid_Admin::get_dashboard_url() ) ); $wp_admin_bar->add_menu(array( "id" => "ecwid-customize-storefront", "title" => count($pages) ? __("Customize design", 'ecwid-shopping-cart') : __("Manage storefront", 'ecwid-shopping-cart'), "parent" => "ecwid-main", 'href' => Ecwid_Admin_Storefront_Page::get_page_url() ) ); $wp_admin_bar->add_menu(array( 'id' => 'ecwid-report-problem', 'title' => __( 'Report a problem with the store', 'ecwid-shopping-cart' ), 'parent' => 'ecwid-main', 'href' => 'mailto:wordpress@ecwid.com?subject=' . rawurlencode($subject) . '&body=' . rawurlencode($body), 'meta' => array( 'target' => '_blank' ) )); } } function ecwid_content_has_productbrowser( $content ) { if ( class_exists( 'Ecwid_Gutenberg' ) && Ecwid_Gutenberg::content_has_productbrowser( $content ) !== false ) { return true; } $result = has_shortcode( $content, 'ecwid_productbrowser' ); if ( $result ) { return $result; } foreach ( Ecwid_Shortcode_Base::get_store_shortcode_names() as $shortcode_name ) { if ( has_shortcode( $content, $shortcode_name ) ) { $shortcodes = ecwid_find_shortcodes( $content, $shortcode_name ); if ( $shortcodes ) foreach ( $shortcodes as $shortcode ) { $attributes = shortcode_parse_atts( $shortcode[3] ); if ( isset( $attributes['widgets'] ) ) { $widgets = preg_split( '![^0-9^a-z^A-Z^-^_]!', $attributes['widgets'] ); if ( is_array( $widgets ) && in_array('productbrowser', $widgets ) ) { $result = true; } } } } } return $result; } function ecwid_get_current_user_locale() { if ( function_exists( 'get_user_locale' ) ) { $lang = get_user_locale(); } else { $lang = get_locale(); } return $lang; } function ecwid_product_browser_url_in_head() { echo ecwid_get_product_browser_url_script(); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } function ecwid_is_applicable_escaped_fragment() { if (!Ecwid_Api_V3::is_available() ) { return false; } if (!isset($_GET['_escaped_fragment_'])) return false; $params = ecwid_parse_escaped_fragment(); if (!$params) return false; if (!in_array($params['mode'], array('category', 'product')) || !isset($params['id'])) return false; return true; } function ecwid_trim_description( $description ) { return Ecwid_HTML_Meta::process_raw_description( $description, ECWID_TRIMMED_DESCRIPTION_LENGTH ); } add_action( 'wp_ajax_ecwid_deactivate_feedback', 'ecwid_ajax_deactivate_feedback' ); function ecwid_ajax_deactivate_feedback() { if ( ! current_user_can( 'manage_options' ) ) { die(); } require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-popup-deactivate.php'; $popup = new Ecwid_Popup_Deactivate(); $popup->ajax_deactivate_feedback(); } function ecwid_ajax_hide_message( $params ) { if ( ! current_user_can( Ecwid_Admin::get_capability() ) ) { return; } $message = isset( $_GET['message'] ) ? sanitize_text_field( wp_unslash( $_GET['message'] ) ) : ''; if ( Ecwid_Message_Manager::disable_message( $message ) ) { wp_send_json( array( 'status' => 'success' ) ); } } function ecwid_hide_vote_message() { update_option( 'ecwid_show_vote_message', false ); } function ecwid_get_title_separator() { $sep = apply_filters( 'document_title_separator', '|' ); if ( ! empty( $sep ) ) { return $sep; } return apply_filters( 'ecwid_title_separator', '|' ); } function ecwid_seo_title( $content, $sep = '', $seplocation = 'right' ) { $title = _ecwid_get_seo_title(); if ( ! empty( $title ) ) { if ( empty( $sep ) ) { $sep = ecwid_get_title_separator(); } if ( $seplocation == 'right' ) { return "$title $sep $content"; } else { return "$content $sep $title"; } } return $content; } function ecwid_seo_title_parts( $parts ) { $title = _ecwid_get_seo_title(); if ( $title ) { array_unshift( $parts, $title ); } return $parts; } function _ecwid_get_seo_title() { $ecwid_seo_title = ''; if ( ecwid_is_applicable_escaped_fragment() || Ecwid_Seo_Links::is_product_browser_url() ) { $ecwid_seo_title = Ecwid_Static_Page::get_title(); } return $ecwid_seo_title; } add_filter( 'oembed_endpoint_url', 'ecwid_oembed_url', 10, 3 ); function ecwid_oembed_url( $url, $permalink, $format ) { if (! Ecwid_Seo_Links::is_product_browser_url() ) { return $url; } $params = Ecwid_Seo_Links::maybe_extract_html_catalog_params(); if ( $params['mode'] == 'product' ){ $product = Ecwid_Product::get_by_id( $params['id'] ); $permalink = $product->link; } else if ( $params['mode'] == 'category' ) { $category = Ecwid_Category::get_by_id( $params['id'] ); $permalink = $category->link; } $url = add_query_arg( array( 'url' => rawurlencode( $permalink ), 'format' => ( 'json' !== $format ) ? $format : false, ), $url ); return $url; } function ecwid_add_credits($powered_by) { if (!ecwid_is_paid_account()) { $new_powered_by = '<li>'; $new_powered_by .= sprintf( __('<a %s>Online store powered by %s</a>', 'ecwid-shopping-cart'), 'target="_blank" href="//www.ecwid.com"', Ecwid_Config::get_brand() ); $new_powered_by .= '</li>'; $powered_by .= $new_powered_by; } return $powered_by; } function ecwid_wrap_shortcode_content( $content, $name, $attrs ) { $version = get_option( 'ecwid_plugin_version' ); $lang = null; if ( isset( $attrs['lang'] ) ) { $lang = $attrs['lang']; } $shortcode_content = ecwid_get_scriptjs_code( $lang ); if ( $name == 'product2' ) { $shortcode_content .= $content; } else { $shortcode_content .= "<div class=\"ecwid-shopping-cart-$name\">$content</div>"; } $brand = Ecwid_Config::get_brand(); $shortcode_content = "<!-- $brand shopping cart plugin v $version -->" . $shortcode_content . "<!-- END $brand Shopping Cart v $version -->"; return apply_filters( 'ecwid_shortcode_content', $shortcode_content ); } function ecwid_get_scriptjs_code( $force_lang = null ) { static $code = ''; $code = '<!--noptimize-->'; if ( ! Ec_Store_Defer_Init::is_enabled() ) { $store_id = get_ecwid_store_id(); $params = ecwid_get_scriptjs_params(); $code .= '<script data-cfasync="false" type="text/javascript" src="https://' . Ecwid_Config::get_scriptjs_domain() . '/script.js?' . $store_id . $params . '"></script>'; //phpcs:ignore WordPress.WP.EnqueuedResources.NonEnqueuedScript } $code .= ecwid_sso(); $code .= '<script type="text/javascript">if (typeof jQuery !== undefined && jQuery.mobile) { jQuery.mobile.hashListeningEnabled = false; jQuery.mobile.pushStateEnabled=false; }</script><!--/noptimize-->'; return apply_filters( 'ecwid_scriptjs_code', $code ); } add_filter( 'ecwid_lang', 'ecwid_get_default_language', 1, 1 ); function ecwid_get_default_language( $lang ) { $locale = get_locale(); if ( $locale ) { $locales = explode( '_', $locale ); return $locales[0]; } return $lang; } function ecwid_get_scriptjs_params( $force_lang = null ) { if ( is_null( $force_lang ) ) { $force_lang = apply_filters( 'ecwid_lang', $force_lang ); } $force_lang_str = ! empty( $force_lang ) ? "&lang=$force_lang" : ''; $params = '&data_platform=wporg' . $force_lang_str; return $params; } function ecwid_script_shortcode($params) { $attributes = shortcode_atts( array( 'lang' => null ), $params ); $content = ""; if (!is_null($attributes['lang'])) { $content = ecwid_get_scriptjs_code($attributes['lang']); } return ecwid_wrap_shortcode_content($content, 'script', $params); } function ecwid_minicart_shortcode($attributes) { $shortcode = new Ecwid_Shortcode_Minicart($attributes); return $shortcode->render(); } function ecwid_shortcode($attributes) { $custom_renderer = apply_filters( 'ecwid_shortcode_custom_renderer', null ); if ( $custom_renderer ) { $result = call_user_func( $custom_renderer, array( 'attributes' => $attributes ) ); if ( $result ) { return $result; } } $defaults = ecwid_get_default_pb_size(); $attributes = shortcode_atts( array( 'widgets' => 'productbrowser', 'categories_per_row' => '3', 'category_view' => 'grid', 'search_view' => 'grid', 'grid' => $defaults['grid_rows'] . ',' . $defaults['grid_columns'], 'list' => $defaults['list_rows'], 'table' => $defaults['table_rows'], 'minicart_layout' => 'MiniAttachToProductBrowser', 'default_category_id' => 0, 'default_product_id' => 0, 'lang' => '', 'no_html_catalog' => 0, 'default_page' => '' ) , $attributes ); $allowed_widgets = array('productbrowser', 'search', 'categories', 'minicart'); $widgets = preg_split('![^0-9^a-z^A-Z^-^_]!', $attributes['widgets']); foreach ($widgets as $key => $widget) { if (!in_array($widget, $allowed_widgets)) { unset($widgets[$key]); } } if (empty($widgets)) { $widgets = array('productbrowser'); } $attributes['layout'] = $attributes['minicart_layout']; $attributes['is_ecwid_shortcode'] = true; if( !empty($attributes['default_page']) ) { $attributes['no_html_catalog'] = 1; } $result = ''; $widgets_order = array('minicart', 'search', 'categories', 'productbrowser'); foreach ($widgets_order as $widget) { if (in_array($widget, $widgets)) { if ( class_exists( 'Ecwid_Shortcode_' . $widget ) ) { $class = 'Ecwid_Shortcode_' . $widget; $shortcode = new $class($attributes); $result .= $shortcode->render(); } else { $result .= call_user_func_array( 'ecwid_' . $widget . '_shortcode', array( $attributes ) ); } } } update_option('ecwid_store_shortcode_used', time()); return $result; } function ecwid_parse_escaped_fragment($escaped_fragment = false) { static $parsed = array(); if( !$escaped_fragment && isset($_GET['_escaped_fragment_']) ) { $escaped_fragment = sanitize_text_field(wp_unslash($_GET['_escaped_fragment_'])); } if (empty($parsed[$escaped_fragment])) { $fragment = urldecode( $escaped_fragment ); $return = array(); if ( preg_match( '/^(\/~\/)([a-z]+)\/(.*)$/', $fragment, $matches ) ) { parse_str( $matches[3], $return ); $return['mode'] = $matches[2]; } elseif ( preg_match( '!.*/(p|c)/([0-9]*)!', $fragment, $matches ) ) { if ( count( $matches ) == 3 && in_array( $matches[1], array( 'p', 'c' ) ) ) { $return = array( 'mode' => 'p' == $matches[1] ? 'product' : 'category', 'id' => $matches[2] ); } } $parsed[$escaped_fragment] = $return; } return $parsed[$escaped_fragment]; } function ecwid_ajax_get_product_info() { if( !isset($_GET['id']) ) { return; } $id = intval($_GET['id']); $product = Ecwid_Product::get_by_id($id); echo json_encode($product); exit(); } function ecwid_store_activate() { Ecwid_Config::load_from_ini(); $my_post = array(); $defaults = ecwid_get_default_pb_size(); $shortcode = Ecwid_Shortcode_Base::get_current_store_shortcode_name(); $content = "[$shortcode widgets=\"productbrowser\" default_category_id=\"0\"]"; $content = " <!-- wp:ecwid/store-block --> $content <!-- /wp:ecwid/store-block -->"; add_option("ecwid_store_page_id", '', '', 'yes'); add_option("ecwid_store_id", ecwid_get_demo_store_id(), '', 'yes'); add_option("ecwid_enable_minicart", 'Y', '', 'yes'); add_option("ecwid_show_categories", '', '', 'yes'); add_option("ecwid_show_search_box", '', '', 'yes'); add_option("ecwid_pb_categoriesperrow", '3', '', 'yes'); add_option("ecwid_pb_productspercolumn_grid", $defaults['grid_rows'], '', 'yes'); add_option("ecwid_pb_productsperrow_grid", $defaults['grid_columns'], '', 'yes'); add_option("ecwid_pb_productsperpage_list", $defaults['list_rows'], '', 'yes'); add_option("ecwid_pb_productsperpage_table", $defaults['table_rows'], '', 'yes'); add_option("ecwid_pb_defaultview", 'grid', '', 'yes'); add_option("ecwid_pb_searchview", 'list', '', 'yes'); add_option("ecwid_mobile_catalog_link", '', '', 'yes'); add_option("ecwid_default_category_id", '', '', 'yes'); add_option('ecwid_show_vote_message', true); add_option("ecwid_sso_secret_key", '', '', 'yes'); add_option("ecwid_installation_date", time()); /* All new options should go to check_version thing */ require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-nav-menus.php'; $id = get_option( "ecwid_store_page_id" ); $_tmp_page = null; if (!empty($id) and ($id > 0)) { $_tmp_page = get_post($id); } if ( is_null( $_tmp_page ) && get_option( Ecwid_Store_Page::OPTION_LAST_STORE_PAGE_ID ) ) { $id = get_option( Ecwid_Store_Page::OPTION_LAST_STORE_PAGE_ID ); if ( Ecwid_Store_Page::post_content_has_productbrowser($id) && get_post_status($id) == 'draft') { $_tmp_page = get_post($id); } } if (is_null($_tmp_page)) { $id = get_option('ecwid_store_page_id_auto'); if (!empty($id) and ($id > 0)) { $_tmp_page = get_post($id); } } if ($_tmp_page !== null) { $my_post = array(); $my_post['ID'] = $id; $my_post['post_status'] = 'publish'; wp_update_post( $my_post ); if ($id == get_option('ecwid_store_page_id_auto')) { update_option('ecwid_store_page_id', $id); } } else { ecwid_load_textdomain(); $my_post['post_title'] = __('Store', 'ecwid-shopping-cart'); $my_post['post_content'] = $content; $my_post['post_status'] = 'publish'; $my_post['post_type'] = 'page'; $my_post['comment_status'] = 'closed'; $id = wp_insert_post( $my_post ); update_option('ecwid_store_page_id', $id); Ecwid_Nav_Menus::replace_auto_added_menu(); if (ecwid_get_theme_identification() == 'responsive') { update_post_meta($id, '_wp_page_template', 'full-width-page.php'); update_option("ecwid_show_search_box", 'Y'); } } Ecwid_Nav_Menus::add_menu_on_activate(); $p = new Ecwid_Products(); $p->enable_all_products(); Ecwid_Message_Manager::enable_message('on_activate'); Ecwid_Config::load_from_ini(); } add_action( 'activated_plugin', 'ecwid_plugin_activation_redirect' ); function ecwid_plugin_activation_redirect( $plugin ) { $is_nonce_set = isset($_POST['_wpnonce']) && wp_verify_nonce( wp_unslash( $_POST['_wpnonce'] ), 'bulk-plugins' ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized $is_bulk_activation = $is_nonce_set && isset($_POST['action']) && $_POST['action'] == 'activate-selected' && isset($_POST['checked']) && count($_POST['checked']) > 1; $is_cli_running = Ecwid_Config::is_cli_running(); $is_newbie = ecwid_is_demo_store(); if( !$is_cli_running && !$is_bulk_activation && $is_newbie && $plugin == plugin_basename( __FILE__ ) ) { wp_safe_redirect( Ecwid_Admin::get_dashboard_url() ); exit(); } } add_action('in_admin_header', 'ecwid_disable_other_notices'); function ecwid_disable_other_notices() { $is_admin_subpage = strpos(get_current_screen()->base, Ecwid_Admin::ADMIN_SLUG) !== false; if (!$is_admin_subpage) return; global $wp_filter; if (!$wp_filter || !isset($wp_filter['admin_notices']) || !class_exists('WP_Hook') || ! ( $wp_filter['admin_notices'] instanceof WP_Hook) ) { return; } foreach ($wp_filter['admin_notices']->callbacks as $priority => $collection) { foreach ($collection as $name => $item) { if ($name != 'ecwid_show_admin_messages') { remove_action('admin_notices', $item['function'], $priority); } } } } function ecwid_show_admin_messages() { if (is_admin()) { global $wp_filter; if ( $wp_filter && isset($wp_filter['admin_notices']) && class_exists('WP_Hook') ){ foreach ($wp_filter['admin_notices']->callbacks as $priority => $collection) { foreach ($collection as $name => $item) { if( is_array($item) && is_array($item['function']) && is_object($item['function'][0]) && get_class($item['function'][0]) == 'Storefront_NUX_Admin' ){ remove_action('admin_notices', $item['function'], $priority); } } } } Ecwid_Message_Manager::show_messages(); } } function ecwid_store_deactivate() { $ecwid_page_id = get_option("ecwid_store_page_id"); $_tmp_page = null; if (!empty($ecwid_page_id) and ($ecwid_page_id > 0)) { $_tmp_page = get_page($ecwid_page_id); if ($_tmp_page !== null) { $my_post = array(); $my_post['ID'] = $ecwid_page_id; $my_post['post_status'] = 'draft'; update_option(Ecwid_Store_Page::OPTION_LAST_STORE_PAGE_ID, $ecwid_page_id); wp_update_post( $my_post ); } else { update_option('ecwid_store_page_id', ''); } } $p = new Ecwid_Products(); $p->disable_all_products(); } function ecwid_uninstall() { delete_option("ecwid_store_page_id_auto"); delete_option("ecwid_store_id"); delete_option("ecwid_enable_minicart"); delete_option("ecwid_show_categories"); delete_option("ecwid_show_search_box"); delete_option("ecwid_pb_categoriesperrow"); delete_option("ecwid_pb_productspercolumn_grid"); delete_option("ecwid_pb_productsperrow_grid"); delete_option("ecwid_pb_productsperpage_list"); delete_option("ecwid_pb_productsperpage_table"); delete_option("ecwid_pb_defaultview"); delete_option("ecwid_pb_searchview"); delete_option("ecwid_mobile_catalog_link"); delete_option("ecwid_default_category_id"); delete_option('ecwid_show_vote_message'); delete_option("ecwid_sso_secret_key"); delete_option("ecwid_installation_date"); delete_option('ecwid_hide_appearance_menu'); delete_option("ecwid_plugin_version"); delete_option("ecwid_use_chameleon"); delete_option(Ecwid_Api_V3::TOKEN_OPTION_NAME); EcwidPlatform::cache_reset('need_add_rewrite'); Ecwid_Store_Page::delete_page_from_nav_menus(); } function ecwid_abs_intval($value) { if (!is_null($value)) return abs(intval($value)); else return null; } function ecwid_get_update_params_options() { $options = array( 'ecwid_store_id' => array( 'type' => 'string' ), 'ecwid_store_page_id' => array( 'type' => 'string' ), 'ecwid_ajax_defer_rendering' => array( 'values' => array( 'on', 'off', 'auto' ) ), 'ecwid_disable_dashboard' => array( 'values' => array( 'on', 'off', '' ) ), 'ecwid_disable_pb_url' => array( 'type' => 'bool' ), Ecwid_Nav_Menus::OPTION_USE_JS_API_FOR_CATS_MENU => array( 'values' => array( Ecwid_Nav_Menus::OPTVAL_USE_JS_API_FOR_CATS_MENU_TRUE, Ecwid_Nav_Menus::OPTVAL_USE_JS_API_FOR_CATS_MENU_FALSE, Ecwid_Nav_Menus::OPTVAL_USE_JS_API_FOR_CATS_MENU_AUTO ) ), Ecwid_Widget_Floating_Shopping_Cart::OPTION_MOVE_INTO_BODY => array( 'type' => 'bool', ), 'ecwid_historyjs_html4mode' => array( 'type' => 'bool' ), 'ecwid_plugin_migration_since_version' => array( 'type' => 'string' ), 'ecwid_seo_links_enabled' => array( 'type' => 'bool' ), Ecwid_Admin::OPTION_ENABLE_AUTO_MENUS => array( 'values' => array( Ecwid_Admin::OPTION_ENABLE_AUTO_MENUS_ON, Ecwid_Admin::OPTION_ENABLE_AUTO_MENUS_OFF, Ecwid_Admin::OPTION_ENABLE_AUTO_MENUS_AUTO ) ), 'ecwid_hide_prefetch' => array( 'values' => array( 'on', 'off', 'auto' ) ), 'ecwid_print_html_catalog' => array( 'type' => 'bool' ), Ecwid_Static_Page::OPTION_IS_ENABLED => array( 'values' => array( Ecwid_Static_Page::OPTION_VALUE_AUTO, Ecwid_Static_Page::OPTION_VALUE_ENABLED, Ecwid_Static_Page::OPTION_VALUE_DISABLED ) ), Ec_Store_Defer_Init::OPTION_NAME => array( 'values' => array( Ec_Store_Defer_Init::OPTION_VALUE_AUTO, Ec_Store_Defer_Init::OPTION_VALUE_ENABLED, Ec_Store_Defer_Init::OPTION_VALUE_DISABLED ) ), 'ecwid_api_status' => array( 'type' => 'string' ), 'ecwid_hide_canonical' => array( 'values' => array( '', 'hide' ) ), Ecwid_Store_Page::OPTION_REPLACE_TITLE => array( 'values' => array( '', 'Y' ) ), Ecwid_Products::OPTION_ENABLED => array( 'values' => array( '', '1' ) ), 'ecwid_live_preview_for_gutenberg_enabled' => array( 'values' => array( '', 'Y', 'N' ) ), ); if( class_exists('woocommerce') && class_exists('Ecwid_Importer') ) { $options[ Ecwid_Importer::OPTIONS_SEPARATE_IMAGE_LOADING ] = array( 'values' => array( '', 'Y' ) ); } return $options; } function ecwid_get_update_params_action() { return 'ecwid-update-params'; } function ecwid_params_do_page() { include ECWID_PLUGIN_DIR . 'templates/admin-params.php'; } add_action('admin_post_' . ecwid_get_update_params_action(), 'ecwid_update_plugin_params'); function ecwid_update_plugin_params() { if ( !current_user_can('manage_options') ) { wp_die( esc_html__( 'Sorry, you are not allowed to access this page.' ) ); } if ( ! isset( $_POST['_wpnonce'] ) ) { wp_die( esc_html__( 'Sorry, you are not allowed to access this page.' ) ); } if ( ! wp_verify_nonce( wp_unslash( $_POST['_wpnonce'] ), ecwid_get_update_params_action() ) ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized wp_die( esc_html__( 'Sorry, you are not allowed to access this page.' ) ); } $options = ecwid_get_update_params_options(); $options4update = array(); foreach ( $options as $key => $option ) { if( !isset($_POST['option'][$key]) ) { continue; } if ( isset($option['type']) && $option['type'] == 'html' ) { $options4update[$key] = sanitize_textarea_field(wp_unslash( $_POST['option'][$key] )); } else { $options4update[$key] = sanitize_text_field(wp_unslash( $_POST['option'][$key] )); } if( $key == 'ecwid_store_id' ) { $options4update[$key] = intval($options4update[$key]); } } foreach ($options4update as $name => $value) { update_option($name, $value); } wp_safe_redirect('admin.php?page=ec-params'); exit(); } function ecwid_get_clear_all_cache_action() { return 'ec-clear-all-cache'; } function ecwid_clear_all_cache() { if ( array_key_exists( ecwid_get_clear_all_cache_action(), $_GET ) ) { ecwid_full_cache_reset(); if ( array_key_exists( 'redirect_back', $_GET ) ) { wp_safe_redirect ( 'admin.php?page=ec-params' ); exit(); } } } add_action('after_setup_theme', 'ecwid_clear_all_cache'); function ecwid_sync_do_page() { require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-products.php'; $prods = new Ecwid_Products(); $estimation = $prods->estimate_sync(); require_once ECWID_PLUGIN_DIR . 'templates/sync.php'; } function ecwid_reset_categories_cache() { if ( ! current_user_can( Ecwid_Admin::get_capability() ) ) { return; } EcwidPlatform::cache_reset( 'nav_categories_posts' ); EcwidPlatform::cache_reset( 'all_categories' ); EcwidPlatform::invalidate_categories_cache_from(); } add_action( 'tool_box', 'ecwid_add_toolbox' ); function ecwid_add_toolbox() { if ( ! current_user_can( Ecwid_Admin::get_capability() ) ) { return; } require ECWID_PLUGIN_DIR . 'templates/wp-toolbox.tpl.php'; } function ecwid_register_admin_styles($hook_suffix) { wp_enqueue_style('ecwid-admin-css', ECWID_PLUGIN_URL . 'css/admin.css', array(), get_option('ecwid_plugin_version')); wp_enqueue_style('ecwid-fonts-css', ECWID_PLUGIN_URL . 'css/fonts.css', array(), get_option('ecwid_plugin_version')); wp_enqueue_style('ecwid-opensans', 'https://fonts.googleapis.com/css?family=Open+Sans:400,600,700,300', array(), get_option('ecwid_plugin_version')); $page = isset($_GET['page']) ? sanitize_text_field(wp_unslash($_GET['page'])) : ''; if (strpos($page, 'ec-store') === 0) { $is_reconnect = isset($_GET['page']) && $_GET['page'] == Ecwid_Admin::ADMIN_SLUG && isset($_GET['reconnect']); $is_connection_error = Ecwid_Admin_Main_Page::is_connection_error(); // Can't really remember why it checks against the raw version, not the sanitized one; consider refactoring $store_id = get_ecwid_store_id(); if ( ecwid_is_demo_store( $store_id ) || !$store_id || $is_reconnect || $is_connection_error || Ecwid_Api_V3::get_token() == false ) { if( class_exists('Ecwid_Admin') && isset($_GET['page']) && $_GET['page'] != Ecwid_Admin::ADMIN_SLUG ) { return; } wp_enqueue_script('ecwid-welcome-page-js', ECWID_PLUGIN_URL . 'js/welcome-page.js', array(), get_option('ecwid_plugin_version')); wp_localize_script('ecwid-welcome-page-js', 'ecwidParams', array( 'registerLink' => ecwid_get_register_link(), 'isWL' => Ecwid_Config::is_wl() ) ); wp_enqueue_style('ecwid-welcome-page-css', ECWID_PLUGIN_URL . 'css/welcome-page.css', array(), get_option('ecwid_plugin_version'), 'all'); } else { // We already connected and disconnected the store, no need for fancy landing wp_enqueue_script('ecwid-connect-js', ECWID_PLUGIN_URL . 'js/dashboard.js', array(), get_option('ecwid_plugin_version')); } } } function ecwid_register_settings_styles($hook_suffix) { if ( ($hook_suffix != 'post.php' && $hook_suffix != 'post-new.php') && strpos( $hook_suffix, Ecwid_Admin::ADMIN_SLUG ) === false) return; wp_enqueue_style('ecwid-settings-css', ECWID_PLUGIN_URL . 'css/settings.css', array(), get_option('ecwid_plugin_version'), 'all'); if (version_compare(get_bloginfo('version'), '3.8-beta') > 0) { wp_enqueue_style('ecwid-settings38-css', ECWID_PLUGIN_URL . 'css/settings.3.8.css', array('ecwid-settings-css'), '', 'all'); } } function ecwid_plugin_actions($links) { $settings_link = "<a href='" . Ecwid_Admin::get_dashboard_url() . "'>" . ( ecwid_is_demo_store() ? __('Setup', 'ecwid-shopping-cart') : __('Settings') ) . "</a>"; if ( current_user_can( Ecwid_Admin::get_capability() ) ) { array_unshift( $links, $settings_link ); } return $links; } function ecwid_settings_api_init() { if ( isset( $_POST['settings_section'] ) && wp_verify_nonce( wp_unslash( $_POST['_wpnonce'] ), 'ecwid_options_page-options' ) ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized switch ( $_POST['settings_section'] ) { case 'general': register_setting( 'ecwid_options_page', 'ecwid_store_id', 'ecwid_abs_intval' ); if ( isset( $_POST['ecwid_store_id'] ) && intval( $_POST['ecwid_store_id'] ) == 0 ) { Ecwid_Message_Manager::reset_hidden_messages(); } break; case 'advanced': register_setting( 'ecwid_options_page', 'ecwid_default_category_id', 'ecwid_abs_intval' ); register_setting( 'ecwid_options_page', 'ecwid_sso_secret_key' ); register_setting( 'ecwid_options_page', 'ecwid_is_sso_enabled' ); break; } if ($_POST['settings_section'] == 'advanced' && isset($_POST[Ecwid_Products::OPTION_ENABLED]) && !Ecwid_Products::is_enabled()) { Ecwid_Products::enable(); } else if ($_POST['settings_section'] == 'advanced' && !isset($_POST[Ecwid_Products::OPTION_ENABLED]) && Ecwid_Products::is_enabled()) { Ecwid_Products::disable(); } if ($_POST['settings_section'] == 'advanced' && empty($_POST['ecwid_is_sso_enabled'])) { update_option('ecwid_sso_secret_key', ''); } } if ( isset( $_POST['ecwid_store_id'] ) && wp_verify_nonce( wp_unslash( $_POST['_wpnonce'] ), 'ecwid_options_page-options' ) ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized $new_store_id = sanitize_text_field(wp_unslash($_POST['ecwid_store_id'])); ecwid_update_store_id( $new_store_id ); update_option('ecwid_last_oauth_fail_time', 0); update_option('ecwid_connected_via_legacy_page_time', time()); } } function ecwid_common_admin_scripts() { wp_enqueue_script('ecwid-admin-js', ECWID_PLUGIN_URL . 'js/admin.js', array(), get_option('ecwid_plugin_version')); wp_enqueue_script('ecwid-modernizr-js', ECWID_PLUGIN_URL . 'js/modernizr.js', array(), get_option('ecwid_plugin_version')); wp_localize_script('ecwid-admin-js', 'ecwid_params', array( 'dashboard' => __('Dashboard', 'ecwid-shopping-cart'), 'dashboard_url' => Ecwid_Admin::get_relative_dashboard_url(), 'products' => __('Products', 'ecwid-shopping-cart'), 'products_url' => Ecwid_Admin::get_relative_dashboard_url() . '-admin-products', 'orders' => __('Orders', 'ecwid-shopping-cart'), 'orders_url' => Ecwid_Admin::get_relative_dashboard_url() . '-admin-orders', 'reset_cats_cache' => __('Refresh categories list', 'ecwid-shopping-cart'), 'cache_updated' => __('Done', 'ecwid-shopping-cart'), 'reset_cache_message' => __('The store top-level categories are automatically added to this drop-down menu', 'ecwid-shopping-cart'), 'store_shortcodes' => Ecwid_Shortcode_Base::get_store_shortcode_names(), 'store_shortcode' => Ecwid_Shortcode_Base::get_current_store_shortcode_name(), 'product_shortcode' => Ecwid_Shortcode_Product::get_shortcode_name(), 'legacy_appearance' => ecwid_is_legacy_appearance_used(), 'is_demo_store' => ecwid_is_demo_store() || is_admin() && isset($_GET['reconnect']) )); } function ecwid_is_legacy_appearance_used() { $api = new Ecwid_Api_V3(); return Ecwid_Api_V3::is_available() && !ecwid_is_demo_store() && !$api->is_store_feature_enabled( Ecwid_Api_V3::FEATURE_NEW_PRODUCT_LIST ); } function ecwid_get_register_link() { $link = Ecwid_Config::get_registration_url(); if ( empty( $link ) ) { $link = 'https://' . Ecwid_Config::get_cpanel_domain(); } if ( strpos($link, '?') ) { $link .= '&'; } else { $link .= '?'; } $link .= 'partner=' . Ecwid_Config::get_channel_id() . '%s#register'; $user_data = ''; /* $current_user = wp_get_current_user(); if ($current_user->ID && function_exists('get_user_meta')) { $meta = get_user_meta($current_user->ID); $data = array( 'name' => get_user_meta($current_user->ID, 'first_name', true) . ' ' . get_user_meta($current_user->ID, 'last_name', true), 'nickname' => $current_user->display_name, 'email' => $current_user->user_email ); foreach ($data as $key => $value) { if (trim($value) == '') { unset($data[$key]); } } $user_data = '&' . build_query($data); } */ $link = sprintf($link, $user_data); return $link; } function ecwid_is_demo_store( $store_id = null ) { if ( is_null( $store_id ) ) { $store_id = get_ecwid_store_id(); } $config_id = Ecwid_Config::get_demo_store_id(); if ( $config_id == $store_id ) return $config_id; return in_array( $store_id, ecwid_get_demo_stores() ); } function ecwid_get_demo_store_id() { $config_id = Ecwid_Config::get_demo_store_id(); if ( $config_id ) return $config_id; $demo_stores = ecwid_get_demo_stores(); $locale = get_locale(); if ( strpos( $locale, 'ru' ) === 0 ) { return $demo_stores['locale_ru']; } else { return $demo_stores['locale_other']; } } function ecwid_get_demo_stores() { return $demo_stores = array( 'legacy' => 1003, 'locale_ru' => 13437191, 'locale_other' => 13433173 ); } function ecwid_get_demo_store_public_key() { $public_keys = array( 13437191 => 'public_LRaZBiDigZCMJquHkRWDpdAt4HPmb4zH', 13433173 => 'public_9EYLuZ15kfKEHdpsuKMsqp9MZ2Umxtcp' ); $store_id = ecwid_get_demo_store_id(); if( isset($public_keys[$store_id]) ) { return $public_keys[$store_id]; } return false; } function ecwid_create_store() { $api = new Ecwid_Api_V3(); $result = $api->create_store(); if ( is_array( $result ) && $result['response']['code'] == 200 ) { $data = json_decode( $result['body'] ); ecwid_update_store_id($data->id); $api->save_token( $data->token ); do_action( 'ecwid_authorization_success' ); update_option( 'ecwid_oauth_scope', 'read_profile ' . Ecwid_OAuth::SCOPE_READ_CATALOG . ' create_catalog update_catalog allow_sso create_customers public_storefront' ); header( 'HTTP/1.1 200 OK' ); } else { if( is_wp_error( $result ) ) { header( 'HTTP/1.1 409 Error' ); die(); } header( 'HTTP/1.1 ' . $result['response']['code'] . ' ' . $result['response']['message'] ); die(); } } add_action('admin_post_ecwid-do-sso', 'ecwid_do_sso_redirect'); function ecwid_do_sso_redirect() { if ( !current_user_can( Ecwid_Admin::get_capability() ) ) { die(); } $url = ecwid_get_admin_sso_url( time() ); wp_redirect( $url ); exit(); } function ecwid_get_admin_sso_url( $time, $page = '' ) { $oauth = new Ecwid_Oauth(); if ( !Ecwid_Api_V3::get_token() ) { return false; } $lang = ecwid_get_current_user_locale(); return sprintf( 'https://' . Ecwid_Config::get_api_domain() . '/api/v3/%s/sso?token=%s×tamp=%s&signature=%s&place=%s&lang=%s', get_ecwid_store_id(), Ecwid_Api_V3::get_token(), $time, hash( 'sha256', get_ecwid_store_id() . Ecwid_Api_V3::get_token() . $time . Ecwid_Config::get_oauth_appsecret() ), rawurlencode( $page ), substr( $lang, 0, 2 ) ); } function ecwid_get_iframe_src($time, $page) { $url = ecwid_get_admin_sso_url($time, $page); if ($url) { $url .= '&inline&min-height=700'; if ( Ecwid_Admin::are_auto_menus_enabled() ) { $url .= '&hide_vertical_navigation_menu=true'; } $url .= '&hide_staff_accounts_header_menu=true'; $url .= '&hide_header=true'; $url .= '&set_dashboard_website_section_type=wordpress'; $url .= '&website_manage_url=' . rawurlencode( admin_url( 'admin.php?page=ec-storefront-settings' ) ); return $url; } else { return false; } } function ecwid_admin_products_do_page() { Ecwid_Admin_Main_Page::do_integrated_admin_page( Ecwid_Admin_Main_Page::PAGE_HASH_PRODUCTS ); } function ecwid_admin_orders_do_page() { Ecwid_Admin_Main_Page::do_integrated_admin_page( Ecwid_Admin_Main_Page::PAGE_HASH_ORDERS ); } function ecwid_admin_mobile_do_page() { Ecwid_Admin_Main_Page::do_integrated_admin_page( Ecwid_Admin_Main_Page::PAGE_HASH_MOBILE ); } function ecwid_help_do_page() { $help = new Ecwid_Help_Page(); $faqs = $help->get_faqs(); wp_enqueue_style('ecwid-help', ECWID_PLUGIN_URL . 'css/help.css',array(), get_option('ecwid_plugin_version')); $col_size = 6; require_once ECWID_PLUGIN_DIR . 'templates/help.php'; } function ecwid_process_oauth_params() { $is_get_request = isset($_SERVER['REQUEST_METHOD']) && strtoupper(sanitize_text_field(wp_unslash($_SERVER['REQUEST_METHOD']))) == 'GET'; if (!$is_get_request || !isset($_GET['page'])) { return false; } $is_dashboard = $_GET['page'] == Ecwid_Admin::ADMIN_SLUG; if (!$is_dashboard) { return false; } global $ecwid_oauth; $is_connect = ecwid_is_demo_store() && !isset($_GET['connection_error']); $is_reconnect = isset($_GET['reconnect']) && !isset($_GET['connection_error']); if ($is_connect) { $ecwid_oauth->update_state( array( 'mode' => 'connect' ) ); } if ($is_reconnect && !isset($_GET['api_v3_sso'])) { $ecwid_oauth->update_state( array( 'mode' => 'reconnect', // explicitly set to empty array if not available to reset current state 'scope' => isset($_GET['scope']) ? sanitize_text_field(wp_unslash($_GET['scope'])) : array(), // explicitly set to empty string if not available to reset current state 'return_url' => isset($_GET['return-url']) ? sanitize_text_field(wp_unslash($_GET['return-url'])) : '', 'reason' => isset($_GET['reason']) ? sanitize_text_field(wp_unslash($_GET['reason'])) : '' )); if ( isset($_GET['do_reconnect']) ) { wp_redirect( $ecwid_oauth->get_auth_dialog_url() ); } } return true; } function ecwid_admin_post_connect() { if ( ! current_user_can( Ecwid_Admin::get_capability() ) ) { return; } if ( isset($_GET['force_store_id']) && wp_verify_nonce( wp_unslash( $_GET['_wpnonce'] ), 'ec_admin' ) ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized $force_store_id = sanitize_text_field(wp_unslash($_GET['force_store_id'])); update_option('ecwid_store_id', $force_store_id); update_option('ecwid_api_check_retry_after', 0); update_option('ecwid_last_oauth_fail_time', 1); wp_safe_redirect( Ecwid_Admin::get_dashboard_url() ); exit(); } global $ecwid_oauth; if (ecwid_test_oauth(true)) { if (@isset($_GET['api_v3_sso'])) { $ecwid_oauth->update_state(array('mode' => 'reconnect', 'return_url' => Ecwid_Admin::get_dashboard_url() . '-advanced' )); wp_redirect($ecwid_oauth->get_sso_reconnect_dialog_url()); } else { wp_redirect( $ecwid_oauth->get_auth_dialog_url() ); } } else if (!isset($_GET['reconnect'])) { wp_safe_redirect(Ecwid_Admin::get_dashboard_url() . '&oauth=no'); } else { wp_safe_redirect(Ecwid_Admin::get_dashboard_url() . '&reconnect&connection_error'); } exit(); } function ecwid_test_oauth($force = false) { global $ecwid_oauth; $last_fail = get_option('ecwid_last_oauth_fail_time'); if ( ($last_fail > 0 && $last_fail + 60*60*24 < time()) || $force) { $result = $ecwid_oauth->test_post(); if ($result) { update_option('ecwid_last_oauth_fail_time', $last_fail = 0); } else { update_option('ecwid_last_oauth_fail_time', $last_fail = time()); } } return $last_fail == 0; } function ecwid_get_categories_for_selector() { $cached = EcwidPlatform::get_from_categories_cache( 'ecwid_categories_for_selector' ); if ( $cached ) { return $cached; } $query_params = array( 'hidden_categories' => true ); if( ecwid_is_demo_store() ) { $query_params['parent'] = 0; } $api = new Ecwid_Api_V3(); $categories = $api->get_categories( $query_params ); $all_categories = array(); if ( !$categories || @$categories->count == 0 ) { return array(); } foreach ( $categories->items as $category ) { $all_categories[$category->id] = $category; } if ( $categories->total > $categories->count ) { $offset = 100; $page = 0; while ( $categories->count + $offset * $page < $categories->total ) { $page++; $query_params['offset'] = $offset * $page; $categories = $api->get_categories( $query_params ); foreach ( $categories->items as $category ) { $all_categories[$category->id] = $category; } } } $parents = array(); $result = array(); foreach ( $all_categories as $category ) { if( !isset( $category->name ) ) { continue; } $result[$category->id] = $category; if ( !isset($category->parentId) ) { $result[$category->id]->path = $category->name; } else { $current_parent_id = $category->parentId; $path = $category->name; while ( $current_parent_id != 0 ) { $parent = $all_categories[$current_parent_id]; $path = $parent->name . ' > ' . $path; $current_parent_id = isset( $parent->parentId ) ? $parent->parentId : 0; } $result[$category->id]->path = $path; } } if (!function_exists('_ecwid_compare_categories')) { function _ecwid_compare_categories($cat1, $cat2) { return strcasecmp( $cat1->path, $cat2->path ); } } usort( $result, '_ecwid_compare_categories' ); EcwidPlatform::store_in_categories_cache( 'ecwid_categories_for_selector', $result ); return $result; } function ecwid_advanced_settings_do_page() { $is_sso_enabled = ecwid_is_sso_enabled(); global $ecwid_oauth; $has_create_customers_scope = $ecwid_oauth->has_scope('create_customers'); $key = get_option('ecwid_sso_secret_key'); $is_sso_checkbox_disabled = !$is_sso_enabled && !$has_create_customers_scope && empty($key); if (!ecwid_is_paid_account()) { $is_sso_checkbox_disabled = true; } $reconnect_link = get_reconnect_link(); require_once ECWID_PLUGIN_DIR . 'templates/advanced-settings.php'; } function get_reconnect_link() { return admin_url('admin-post.php?action=ec_connect&reconnect&api_v3_sso'); } function ecwid_debug_do_page() { if ( array_key_exists( 'reset_cache', $_GET ) ) { ecwid_invalidate_cache(true ); } if ( array_key_exists( 'ec-reset-plugin-config', $_GET ) ) { update_option( 'ecwid_plugin_data', array() ); Ecwid_Config::load_from_ini(); } $api_v3_profile_results = wp_remote_get( 'https://app.ecwid.com/api/v3/' . get_ecwid_store_id() . '/profile', array( 'headers' => array( 'Authorization' => 'Bearer ' . Ecwid_Api_V3::get_token(), ), ) ); global $ecwid_oauth; require_once ECWID_PLUGIN_DIR . 'templates/cache_log.php'; require_once ECWID_PLUGIN_DIR . 'templates/debug.php'; } function ecwid_get_debug_file() { if (!current_user_can('manage_options')) { return; } header('Content-Disposition: attachment;filename=ecwid-plugin-log.html'); ecwid_debug_do_page(); die(); } function get_ecwid_store_id() { require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-config.php'; $config_value = Ecwid_Config::get_store_id(); if ($config_value) return $config_value; $store_id = get_option('ecwid_store_id'); $store_id = intval( trim($store_id) ); if (empty($store_id)) { $store_id = ecwid_get_demo_store_id(); } return $store_id; } function ecwid_sync_products() { if ( ! current_user_can( Ecwid_Admin::get_capability() ) ) { die(); } set_time_limit(3600); if (!defined('DOING_AJAX')) { echo '<html><body>Lets begin<br />'; flush(); } $p = new Ecwid_Products(); $p->sync(); if (defined('DOING_AJAX') && DOING_AJAX) { echo 'OK'; wp_die(); } else { wp_safe_redirect(Ecwid_Admin::get_dashboard_url() . '-advanced'); } } function ecwid_sync_progress_callback($status) { if (!@$status['event']) { $status['event'] = 'progress'; } echo 'event: ' . esc_html( $status['event'] ) . "\n"; echo 'data: ' . json_encode($status) . "\n\n"; flush(); } add_action('admin_post_ecwid_sync_sse', 'ecwid_sync_products_sse'); function ecwid_sync_products_sse() { set_time_limit(0); header("Content-Type: text/event-stream\n\n"); Ecwid_Products::enable(); $p = new Ecwid_Products(); $p->set_sync_progress_callback('ecwid_sync_progress_callback'); $p->sync(); ecwid_sync_progress_callback( array( 'event' => 'completed', 'last_update' => ecwid_format_date( $p->get_last_sync_time() ) ) ); } function ecwid_format_date( $unixtime ) { return date_i18n( get_option('date_format') . ' ' . get_option('time_format'), $unixtime + get_option('gmt_offset') * 60 * 60 ); } function ecwid_slow_sync_progress($status) { global $ecwid_sync_status; if (!Ecwid_Products::is_enabled()) { Ecwid_Products::enable(); } if (!isset($ecwid_sync_status)) { $ecwid_sync_status = array( 'limit' => -1, 'offset' => -1, 'total' => -1, 'count' => -1, 'updated' => 0, 'deleted_disabled' => 0, 'created' => 0, 'deleted' => 0, 'skipped_deleted' => 0 ); } if ($status['event'] == 'fetching_products' || $status['event'] == 'fetching_deleted_product_ids') { $ecwid_sync_status['offset'] = $status['offset']; $ecwid_sync_status['limit'] = $status['limit']; } else if ($status['event'] == 'found_updated' || $status['event'] == 'found_deleted') { $ecwid_sync_status['total'] = $status['total']; $ecwid_sync_status['count'] = $status['count']; } else if ($status['event'] == 'created_product') { $ecwid_sync_status['created']++; } else if ($status['event'] == 'updated_product') { $ecwid_sync_status['updated']++; } else if ($status['event'] == 'deleted_disabled_product') { $ecwid_sync_status['deleted_disabled']++; } else if ($status['event'] == 'deleted_product') { $ecwid_sync_status['deleted'] ++; } else if ($status['event'] == 'skipped_deleted') { $ecwid_sync_status['skipped_deleted']++; } } add_action('admin_post_ecwid_sync_reset', 'ecwid_sync_reset'); function ecwid_sync_reset() { EcwidPlatform::set(Ecwid_Products_Sync_Status::OPTION_UPDATE_TIME, 0); EcwidPlatform::set(Ecwid_Products_Sync_Status::OPTION_LAST_PRODUCT_UPDATE_TIME, 0); EcwidPlatform::set(Ecwid_Products_Sync_Status::OPTION_LAST_PRODUCT_DELETE_TIME, 0); wp_safe_redirect( Ecwid_Admin::get_dashboard_url() . '-advanced' ); exit(); } add_action('admin_post_ecwid_sync_no_sse', 'ecwid_sync_products_no_sse'); function ecwid_sync_products_no_sse() { $p = new Ecwid_Products(); $p->set_sync_progress_callback('ecwid_slow_sync_progress'); $mode = (isset($_GET['mode']) && $_GET['mode'] == 'deleted') ? 'deleted' : 'updated'; $over = $p->sync(array( 'mode' => $mode, 'offset' => isset($_GET['offset']) ? intval($_GET['offset']) : 0, 'one_at_a_time' => true, 'from' => isset($_GET['time']) ? sanitize_text_field(wp_unslash($_GET['time'])) : '' )); global $ecwid_sync_status; if (!$over) { echo json_encode($ecwid_sync_status); } else { echo json_encode(array_merge($ecwid_sync_status, array('status' => 'complete', 'last_update' => ecwid_format_date( $p->get_last_sync_time() )))); } } add_action('admin_post_ecwid_tick', 'ecwid_tick'); function ecwid_tick() { var_dump(ini_get('max_execution_time')); set_time_limit(12345); var_dump(ini_get('max_execution_time')); error_log('tick'); header("Content-Type: text/event-stream\n\n"); for ($i = 0; $i < 30; $i++) { echo "data: $i \n\n"; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped flush(); sleep(2); //usleep(2000); } die(); } function ecwid_dashboard_widget_function() { if (!is_ssl()) { require_once ECWID_PLUGIN_DIR . 'templates/wp-dashboard-widget.php'; } } function ecwid_add_dashboard_widgets() { if ( current_user_can( Ecwid_Admin::get_capability() ) ) { wp_add_dashboard_widget( 'ecwid_dashboard_widget', __( 'Recommendations for Your Online Store', 'ecwid-shopping-cart' ), 'ecwid_dashboard_widget_function' ); } } function ecwid_get_store_page_url() { static $link = null; if (is_null($link)) { $link = get_permalink( Ecwid_Store_Page::get_current_store_page_id() ); } return $link; } function ecwid_is_store_page_available() { return Ecwid_Store_Page::get_current_store_page_id() != false; } function ecwid_get_product_url($product) { return ecwid_get_entity_url($product, 'p'); } function ecwid_get_category_url($category) { return ecwid_get_entity_url($category, 'c'); } function ecwid_get_entity_url($entity, $type) { if ( Ecwid_Store_page::is_store_page() ) { $link = get_permalink(); } else { $link = Ecwid_Store_Page::get_store_url(); } if ( is_object( $entity ) ) { // If a newer object is passed, fall back to default hash url $entity = $entity->id; } if (is_numeric($entity)) { return $link . '#!/' . $type . '/' . $entity; } elseif (is_array($entity) && isset($entity['url'])) { $link .= substr($entity['url'], strpos($entity['url'], '#')); } return $link; } function ecwid_get_product_browser_url_script() { if ( get_option('ecwid_disable_pb_url' ) ) { return; } $str = ''; if (ecwid_is_store_page_available() && !Ecwid_Store_Page::is_store_page()) { $url = esc_js( Ecwid_Store_Page::get_store_url() ); ob_start(); ?> <!--noptimize--> <script data-cfasync="false" type="text/javascript"> window.ec = window.ec || Object(); window.ec.config = window.ec.config || Object(); window.ec.config.store_main_page_url = '<?php echo esc_js( $url ); ?>'; </script> <!--/noptimize--> <?php $str = ob_get_clean(); } return $str; } function ecwid_check_for_remote_connection_errors() { global $ecwid_oauth; $results = array(); $results['https_post_error'] = wp_remote_post($ecwid_oauth->get_test_post_url()); foreach ($results as $type => $value) { if (is_wp_error($value)) { $results[$type] = $value->get_error_message(); } else { unset($results[$type]); } } return $results; } function ecwid_is_sso_enabled() { global $ecwid_oauth; $is_sso_enabled = false; $is_apiv3_sso = ecwid_is_paid_account() && get_option('ecwid_is_sso_enabled') && $ecwid_oauth && $ecwid_oauth->has_scope('create_customers'); $is_apiv1_sso = ecwid_is_paid_account() && get_option('ecwid_sso_secret_key'); $is_sso_enabled = $is_apiv3_sso || $is_apiv1_sso; return $is_sso_enabled; } add_action( 'send_headers', 'ecwid_add_headers' ); function ecwid_add_headers() { if ( wp_get_current_user()->ID && ecwid_is_sso_enabled() ) { header("Cache-Control: private, must-revalidate, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0"); } } function ecwid_sso() { global $ecwid_sso_script; if ( !ecwid_is_sso_enabled() ) return; if ( !empty($ecwid_sso_script) ) return; $current_user = wp_get_current_user(); $signin_url = wp_login_url(Ecwid_Store_Page::get_store_url()); $signout_url = wp_logout_url(Ecwid_Store_Page::get_store_url()); $ecwid_sso_profile = ''; if ($current_user->ID) { $meta = get_user_meta($current_user->ID); $name = $meta['first_name'][0] . ' ' . $meta['last_name'][0]; if ($name == ' ') { $name = $meta['nickname'][0]; } $user_data = array( 'userId' => "{$current_user->ID}", 'profile' => array( 'email' => $current_user->user_email, 'billingPerson' => array( 'name' => $name ) ) ); global $ecwid_oauth; if ($ecwid_oauth->has_scope('create_customers')) { $key = Ecwid_Config::get_oauth_appsecret(); $user_data['appClientId'] = Ecwid_Config::get_oauth_appid(); } else { $key = get_option('ecwid_sso_secret_key'); $user_data['appId'] = "wp_" . get_ecwid_store_id(); } $user_data_encoded = base64_encode(json_encode($user_data)); $time = time(); $hmac = ecwid_hmacsha1("$user_data_encoded $time", $key); $ecwid_sso_profile = "$user_data_encoded $hmac $time"; } ob_start(); ?> <script data-cfasync="false" type="text/javascript"> var ecwid_sso_profile = '<?php echo esc_js( $ecwid_sso_profile ); ?>'; window.EcwidSignInUrl = '<?php echo esc_js( $signin_url ); ?>'; window.EcwidSignOutUrl = '<?php echo esc_js( $signout_url ); ?>'; if( typeof Ecwid != 'undefined' ) { window.Ecwid.OnAPILoaded.add(function() { window.Ecwid.setSignInUrls({ signInUrl: '<?php echo esc_js( $signin_url ); ?>', signOutUrl: '<?php echo esc_js( $signout_url ); ?>' }); }); } jQuery(document).ready(function() { if (typeof Ecwid == 'undefined') return; Ecwid.OnPageLoad.add(function(page) { if (page.type == 'SIGN_IN' && ecwid_sso_profile == '') { location.href = '<?php echo esc_js( $signin_url ); ?>'; } }) } ); </script> <?php $ecwid_sso_script = ob_get_clean(); return $ecwid_sso_script; } // from: http://www.php.net/manual/en/function.sha1.php#39492 function ecwid_hmacsha1($data, $key) { if (function_exists("hash_hmac")) { return hash_hmac('sha1', $data, $key); } else { $blocksize=64; $hashfunc='sha1'; if (strlen($key)>$blocksize) $key=pack('H*', $hashfunc($key)); $key=str_pad($key,$blocksize,chr(0x00)); $ipad=str_repeat(chr(0x36),$blocksize); $opad=str_repeat(chr(0x5c),$blocksize); $hmac = pack( 'H*',$hashfunc( ($key^$opad).pack( 'H*',$hashfunc( ($key^$ipad).$data ) ) ) ); return bin2hex($hmac); } } function ecwid_should_display_escaped_fragment_catalog() { if (!isset($_GET['_escaped_fragment_'])) return; if ( Ecwid_Api_V3::is_available()) { return !ecwid_is_store_closed(); } return false; } function ecwid_get_default_pb_size() { return array( 'grid_rows' => 20, 'grid_columns' => 3, 'list_rows' => 60, 'table_rows' => 60 ); } function ecwid_update_store_id( $new_store_id ) { EcwidPlatform::cache_reset( 'nav_categories_posts' ); update_option( 'ecwid_store_id', $new_store_id ); update_option( 'ecwid_api_check_retry_after', 0 ); ecwid_invalidate_cache( true ); EcwidPlatform::cache_reset( 'all_categories' ); do_action( 'ecwid_update_store_id', $new_store_id ); } function ecwid_is_paid_account() { if ( Ecwid_Api_V3::is_available() ) { $api = new Ecwid_Api_V3(); $profile = $api->get_store_profile(); return $api->is_store_feature_available('PREMIUM'); } return false; } function ecwid_embed_svg($name) { $path = ECWID_PLUGIN_DIR . 'images/' . $name . '.svg'; if( file_exists( $path ) ) { $code = file_get_contents( $path ); echo $code; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } } /* * Basically a copy of has_shortcode that returns the matched shortcode */ function ecwid_find_shortcodes( $content, $tag ) { if ( false === strpos( $content, '[' ) ) { return false; } if ( shortcode_exists( $tag ) ) { preg_match_all( '/' . ecwid_get_shortcode_regex() . '/s', $content, $matches, PREG_SET_ORDER ); if ( empty( $matches ) ) return false; $result = array(); foreach ( $matches as $shortcode ) { if ( $tag === $shortcode[2] ) { $result[] = $shortcode; } elseif ( !empty($shortcode[5]) && $found = ecwid_find_shortcodes( $shortcode[5], $tag ) ) { $result = array_merge($result, $found); } } if (empty($result)) { $result = false; } return $result; } return false; } // Since we use shortcode regex in our own functions, we need it to be persistent function ecwid_get_shortcode_regex() { global $shortcode_tags; $tagnames = array_keys($shortcode_tags); $tagregexp = join( '|', array_map('preg_quote', $tagnames) ); // WARNING! Do not change this regex without changing do_shortcode_tag() and strip_shortcode_tag() // Also, see shortcode_unautop() and shortcode.js. // phpcs:disable Squiz.Strings.ConcatenationSpacing.PaddingFound -- don't remove regex indentation return '\\[' // Opening bracket . '(\\[?)' // 1: Optional second opening bracket for escaping shortcodes: [[tag]] . "($tagregexp)" // 2: Shortcode name . '(?![\\w-])' // Not followed by word character or hyphen . '(' // 3: Unroll the loop: Inside the opening shortcode tag . '[^\\]\\/]*' // Not a closing bracket or forward slash . '(?:' . '\\/(?!\\])' // A forward slash not followed by a closing bracket . '[^\\]\\/]*' // Not a closing bracket or forward slash . ')*?' . ')' . '(?:' . '(\\/)' // 4: Self closing tag ... . '\\]' // ... and closing bracket . '|' . '\\]' // Closing bracket . '(?:' . '(' // 5: Unroll the loop: Optionally, anything between the opening and closing shortcode tags . '[^\\[]*+' // Not an opening bracket . '(?:' . '\\[(?!\\/\\2\\])' // An opening bracket not followed by the closing shortcode tag . '[^\\[]*+' // Not an opening bracket . ')*+' . ')' . '\\[\\/\\2\\]' // Closing shortcode tag . ')?' . ')' . '(\\]?)'; // 6: Optional second closing brocket for escaping shortcodes: [[tag]] // phpcs:enable } ?>���������������������������������������������������������������ecwid-shopping-cart/index.php�����������������������������������������������������������������������0000644�����������������00000000046�15122273603�0012234 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?php /** * Nothing to see here. */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ecwid-shopping-cart/readme.txt����������������������������������������������������������������������0000644�����������������00000453520�15122273603�0012423 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������=== Ecwid Ecommerce Shopping Cart === Contributors: Ecwid Tags: ecommerce, e-commerce, storefront, shopping cart, online store Requires at least: 4.4 Tested up to: 6.4 Stable tag: 6.12.10 Powerful, easy to use ecommerce shopping cart for WordPress. Sell on Facebook and Instagram. iPhone & Android apps. Superb support. Free plan available. == Description == Ecwid Ecommerce Shopping Cart is everything you need to add an online store to your WordPress site. Powerful, easy-to-use and Gutenberg-friendly. Over 1 million sellers in 175 countries, 45 languages supported. PayPal, Stripe and 40 more payment options. Real-time shipping integrations. Selling on Instagram and Facebook. ### Automatic Shipping and Taxes The Ecwid ecommerce plugin integrates with major carriers including USPS, UPS, FedEx, Canada Post, Australia Post, and others to automatically calculate shipping rates. Taxes are also automated and can be set-up in a few clicks. Automated tax rate calculations are available for the U.S., Canada, and EU VAT. Additionally, integration with TaxJar provides automatic sales tax reporting and filing in the U.S. ### Sell on Facebook and Instagram Add your online store to Facebook and sell to millions of Facebook and Instagram users. No addons needed. Ecwid will automatically synchronize your products, customers, orders and inventory between your WordPress and Facebook storefronts. Ecwid is the **#1 e-commerce app on Facebook**. Join! ### eCommerce Mobile Apps Ecwid Shopping Cart provides free mobile applications for iOS and Android to manage your store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. Your ecommerce data is automatically synchronized with your Wordpress shopping cart, Facebook store and other online storefronts. ### Unlimited Storage, Automatic Backups and Seamless Upgrades With the Ecwid Shopping Cart, your online store data is fully hosted on our secure servers. Regardless of the WordPress hosting service you use, your Ecwid online store includes: * unlimited storage * regular backups * seamless upgrades and security updates So you don't need to worry about software updates, security patches and server maintenance – we do that for you. Your online store gets all the new ecommerce features and bug fixes automatically. ### PCI DSS validated Level 1 Service Provider Ecwid Shopping Cart is PCI DSS Level 1 certified, which is the gold standard for e-commerce solutions worldwide. This means that Ecwid helps your online store meet the security requirements of the bank you do business with. ### Superb Support Friendly and knowledgeable support experts available 24/5 so you can get immediate help when you need it. Support options include email, e-commerce community forums, chat and phone support. ### Sell Everywhere With Ecwid, you can include your ecommerce shop on multiple websites, blogs, social sites and ecommerce marketplaces like *Amazon*, *eBay* and *Google Shopping* and sell simultaneously everywhere. Add your online store to as many sites as you want, manage it from one place. ### Mobile Responsive Design Ecwid works great on any Wordpress site, especially those running on mobile-optimized themes. Your online store looks perfect on smartphones and automatically adapts to your customer’s screen size: laptops, tablets, smart TVs or smart watches. Check out this [demo](https://ecwid.to/ecwid-demo-store) ### Hundreds of extensions and powerful API There is a lot of in-house and third party extensions built on the Ecwid Ecommerce APIs. You can find a ready made plugin extending features of your online storefront the way you want or build a custom addon yourself. The existing family of third party plugins include tax automation apps like TaxJar, fulfilment services like ShipStation, customer support tools like LiveChat and many others. ### Your Favorite Free Plugin Ecwid offers a free plan that’s always available with no hidden setup charges or transaction fees. Get your online store up and running at zero cost. As your online shop grows, Ecwid grows with you. When the time is right, consider upgrading to one of our premium plans to get more robust features and preferred support. See also: [Ecwid plan and pricing](https://ecwid.to/ecwid-pricing) ### See Ecwid In Action * [Demo Store](https://ecwid.to/ecwid-demo-store "Ecwid demo") * [Ecwid Ecommerce Control panel](https://ecwid.to/ecwid-store-control-panel "Ecwid Control Panel") (you will be able to create a free Ecwid account) * [Showcase](https://ecwid.to/ecwid-wp-site) ### Ecwid Site * [www.ecwid.com](https://ecwid.to/ecwid-wp-site "Ecwid site") ### Terms of usage The plugin uses the Ecwid ecommerce cloud services (www.ecwid.com). Your store data is securely hosted with Ecwid under the terms and conditions listed here: * [Terms of Service](https://www.ecwid.com/terms-of-service) * [Privacy Policy](https://www.ecwid.com/privacy-policy) The plugin uses CDN services by AWS Cloudfront to speed up user stores. It is managed by the Ecwid Terms of Service and Privacy Policy and [AWS Customer Agreement](https://aws.amazon.com/agreement/). == Installation == ### Automatic installation (the easiest way) 1. In your Wordpress admin backend, navigate to *Plugins → Add New* 1. Under Search, type in `Ecwid` and click *Search* 1. In the search results find the *Ecwid Ecommerce Shopping Cart* plugin and click *Install now* to install it 1. When plugin is installed click *Activate Plugin* link 1. Navigate to *Ecwid Store → General* page in your Wordpress admin backend and follow the instruction provided there ### Alternative ways **Uploading the plugin zip archive in Wordpress admin backend** 1. Download Ecwid plugin from this page (click *Download* button) 1. In your Wordpress admin backend, navigate to *Plugins → Add new* 1. Click *Upload* link and choose the saved zip file in the appeared dialog window. 1. Click *Install* **Uploading plugin folder to Wordpress directory on your server** 1. Download Ecwid plugin from this page (click *Download* button) 1. Unpack the downloaded zip archive 1. Upload ecwid-shopping-cart directory from the archive to the `/wp-content/plugins/` directory on your server Please refer to this article for the details and troubleshooting on plugin installation in Wordpress: http://codex.wordpress.org/Managing_Plugins#Installing_Plugins == Screenshots == 1. Everything you need to add an ecommerce shopping cart to your site 2. Easily add products to your ecommerce website 3. Extend your storefront anywhere you want 4. Manage your ecommerce store wherever you are 5. Ecwid Ecommerce Shopping Cart integrates with Point-of-Sale 6. Go global with Ecwid Ecommerce Shopping Cart 7. Ecommerce platform for your restaurant 8. Get answers to your questions from ecommerce support experts == Frequently Asked Questions == = How secure is this plugin? Is my store PCI DSS compliant? = Ecwid is PCI DSS Level 1 certified shopping cart plugin – the gold standard for e-commerce solutions worldwide. This helps your online store meet the security requirements of the bank you do business with. [More details](https://help.ecwid.com/customer/portal/articles/1085017-wordpress-downloadable#secureplugin) = How much does Ecwid cost? = Ecwid shopping cart plans vary by number of products, types of ecommerce functionality, and level of support. Learn more: [https://ecwid.to/ecwid-pricing](https://ecwid.to/ecwid-pricing). = How can I manage my online shop from a mobile device? = Ecwid shopping cart provides mobile applications for iOS and Android to manage your online store and sell on the go. Scan products, track inventory, manage sales and accept payments using your mobile device as a POS station. [More details on Ecwid mobile apps](https://www.ecwid.com/ecwid-mobile). = How do I set up a storefront on Facebook with Ecwid shopping cart? = You can add your online shop to any web presence, including your Facebook business page. Ecwid plugin will automatically synchronize products, customers, orders and inventory between your WordPress and Facebook storefronts. [More details](https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#addtoFacebook). = How can I add a shopping cart widget to my site sidebar? = You can add a product search box, shopping cart widget and other tools on the Appearance/Widgets page here in your site admin. [Read more about Ecwid sidebar widgets](https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#Sidebarwidgets). = How do I add my store products to a sitemap? = To create a sitemap for your WordPress shop, we recommend using the fully compatible [Google XML Sitemaps](https://wordpress.org/plugins/google-sitemap-generator/) or [Yoast WordPress SEO](https://wordpress.org/plugins/wordpress-seo/) plugins. Generating a sitemap that contains links to store categories and product pages will help index your pages faster. Please note that the store sitemap option is only available to paid Ecwid users. = How do I add store categories to the site menu? = You can add the store categories menu to your site menu to help your customers easily navigate your online shop. Just open "Appearance > Menus" in your WordPress control panel and add the "Store with Categories Menu" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site. = How do I migrate my shop from Shopify, WooCommerce, BigCommerce, Selz or Easy Digital Downloads? = You can use Ecwid’s built-in import tools to copy your store products from any other shopping cart to Ecwid. Find more details in the [Import-Export article in the Ecwid shopping cart help center]( https://support.ecwid.com/hc/en-us/articles/360000049040-Migrating-to-Ecwid-from-WooCommerce). * [Ecwid Help Center](http://help.ecwid.com "Ecwid Help") == Changelog == = 6.12.10 - Feb 15, 2024 = - After the last update, the Ecwid ecommerce plugin could cause a PHP error message in the admin area. We have fixed this issue. = 6.12.9 - Feb 13, 2024 = - Improved the behavior of the "Manage access to store control panel" feature, which allows you to manage access to ecommerce control panel within the WP admin area. - Resolved website loading slowdown issues observed in certain scenarios when using our ecommerce plugin alongside SEO plugins like Yoast and AIOSP. = 6.12.8 - Jan 22, 2024 = - Sitemap improvements for ecommerce pages. Fixed a problem generating sitemaps for large directories and fixed a date formatting problem. = 6.12.7 - Jan 15, 2024 = - Improved behavior of the "Manage access to store control panel" feature. This feature allows you to manage access to your e-commerce control panel directly from WordPress. - Improvements for category drop-down menu when the transliteration feature is enabled. - Minor fix to ensure PHP 8 compatibility. = 6.12.6 - Dec 18, 2023 = - Sitemap improvements. If a store has a large number of products, the sitemap will be split into several to speed up loading. - Fixed an issue where part of the shortcode could be displayed on the store page due to the influence of third-party plugins. - Minor fixes and improvements. = 6.12.5 - Nov 28, 2023 = - Twenty Twenty Four theme compatibility. Even though Ecwid is compatible with every WordPress theme by design, some slight fixes and improvements are sometimes needed to make storefront look better. That’s why we are always monitoring how Ecwid pages look and behave in WordPress ecommerce themes. - Plugin code improvements for better security and stability. - Minor fixes for Gutenberg ecommerce blocks. = 6.12.4 - Nov 7, 2023 = - **Manage access to the store control panel.** We've introduced a new feature that allows you to manage access to your Ecwid ecommerce admin area directly from WordPress. This efficient tool eliminates the need for additional plugins and gives admins the ability to manage user-specific access across the site. To use this feature, navigate to the Admin area > Users > Edit user, scroll down to find the 'Ecwid Control Panel Access' option. - Security improvements. We've implemented an additional security measure to further protect your store information and ensure a safer user experience. = 6.12.3 - Sep 6, 2023 = - **Fully compatible with WordPress's Site Editor.** Our ecommerce plugin is now fully compatible with WordPress's [Full Site Editor](https://wordpress.org/documentation/article/site-editor/), which is available if you use a Block theme on your site. We've fixed all known issues and made necessary improvements. The editor provides even greater flexibility and control over your online store. With this feature, you can easily customize your store's design and layout, creating engaging and immersive shopping experiences for your customers. - A few technical improvements for the sitemap generation feature. = 6.12.2 - Jun 14, 2023 = - In this version, we have improved a feature: live-preview mode for the Storefront block. We have also enabled it by default for all of our users. This feature allows you to see how your storefront will look on the front-end of your website in real-time in Gutenberg editor, making it easier to design and customize your ecommerce website. We hope you enjoy these updates and look forward to your feedback. = 6.12.1 - Jun 08, 2023 = - We fixed several issues with the live-preview feature for the Storefront block in the Gutenberg edito. The block now correctly displays changes in tablet and mobile preview mode in real-time. Additionally, we improved the performance of the preview this ecommerce block, so changes are now reflected more quickly. = 6.12 - May 25, 2023 = - We are excited to announce the release of the new version. This version brings a cool new feature - live-preview mode for the Storefront block that was very requested. This feature allows you to see how your storefront will look on the front-end of your website in real-time in Gutenberg editor, making it easier to design and customize your ecommerce website. We have also made other accessibility improvements to make the plugin more user-friendly. We hope you enjoy these updates and look forward to your feedback. In the coming weeks, we will gradually enable this feature for all of our users. - Fixed compatibility issues with PHP 8.1 and higher. = 6.11.6 - Mar 21, 2023 = - WordPress 6.2 compatibility. The new WordPress version will be released soon. The Ecwid ecommerce shopping cart plugin is ready for the new release — everything works well in your WordPress admin and storefront pages. Feel free to upgrade your site to WordPress 6.2. - Improvements for Gutenberg ecommerce blocks. - Fixed some compatibility issues with the Elementor page builder. - Fixed an issue with duplicate og:image tags with the Yoast plugin on the main store page. = 6.11.5 - Feb 28, 2023 = - We have improved compatibility with caching plugins such as WPRocket and Autoptimize, fixing many known issues. This means that ecommerce websites and online stores using our plugin will experience improved performance and faster load times. We understand the importance of having a fast and efficient storefront, and we believe that this compatibility will greatly benefit our users. With this update, our plugin will work seamlessly with these popular caching plugins, providing a smoother experience for both website owners and visitors. - Fixed known issues related to the "Store page speedup" feature. = 6.11.4 - Jan 25, 2023 = - Improvements for compatibility with WPML plugin. Some ecommerce sites had an issue with unexpected redirects in multilingual mode when enabling the WPML plugin. We’ve fixed that. - Improvements and fixes for the “Speedup of storefront loading” feature. - Minor fixes and improvements. = 6.11.3 - Dec 22, 2022 = - **Fixes for the “Speedup of storefront loading” feature.** After the last release, some of our users faced problems with incorrect loading of the storefront and the translations of the shopping cart. We've fixed it. - Minor fixes and improvements. = 6.11.2 - Dec 14, 2022 = - **Speedup of storefront loading.** We enabled the new cool feature for all of our users. We drastically improved the load speed of Ecwid stores published on WordPress. We optimized the resources loaded by the plugin to accelerate the loading of store pages and ecommerce widgets (shopping cart icon, product search, etc). The improvement greatly enhances the user experience and boosts your store SEO. You will now get better performance scores when checking your store pages in Google PageSpeed Insights. - **Fixes for Gutenberg's "Store home page" block.** The plugin has ten ecommerce blocks for Gutenberg. One of the blocks — the store home page — had an issue with changing color settings. We fixed it. - Minor fixes and improvements. = 6.11.1 - Dec 6, 2022 = - **Several fixes and improvements for the recently released “Speedup of storefront loading” feature.** In the coming week, we will gradually enable this feature for all of our users. = 6.11 - Nov 29, 2022 = - **New cool feature — speedup of storefront loading.** We drastically improved the load speed of Ecwid stores published on WordPress. We optimized the resources loaded by the plugin to accelerate the loading of store pages and ecommerce widgets (shopping cart icon, product search, etc). The improvement greatly enhances the user experience and boosts your store SEO. You will now get better performance scores when checking your store pages in Google PageSpeed Insights. In the coming weeks, we will gradually enable this feature for all of our users. = 6.10.29 - Nov 07, 2022 = - **WordPress 6.1 and Twenty Twenty Three theme compatibility.** The new WordPress version with the 2023 theme is released. The Ecwid ecommerce shopping cart plugin is ready for the new release — everything works well in your WordPress admin and storefront pages. Feel free to upgrade your site to WordPress 6.1 and try a new theme. - Compatibility improvements with XML Sitemaps plugin. If you are using the XML Sitemaps plugin, you may be experiencing an issue where storefront products links are not being added to sitemap. We've fixed it. - Improvements for compatibility with the Elementor builder. - Minor fixes and improvements. = 6.10.28 - Sep 01, 2022 = - Improvements in the plugin code to comply with the WordPress plugin marketplace recommendations. - Improvements ecommerce widgets for Divi builder. - Minor fixes and improvements. = 6.10.27 - Aug 18, 2022 = - After the last update, the Ecwid ecommerce plugin may have broken other plugins on your ecommerce site. It was a bug. We've fixed it. = 6.10.26 - Aug 16, 2022 = - Compatibility improvements with the Elementor builder. If you are using the ecommerce widget in the Elementor builder, you may have encountered an issue where the storefront links in the menu or sitemap are not working properly. We've fixed it. - Plugin code improvements to comply with the WordPress plugin marketplace recommendations. - Minor fixes and improvements. = 6.10.25 - Jul 25, 2022 = - Improvements in the plugin code to comply with the WordPress plugin marketplace recommendations. - A few fixes for compatibility with Divi builder. If you are using the eсommerce widget in the Divi Builder, you may be faced with an issue where the storefront is not displayed. We fixed that, now it should work fine. - Improvements for compatibility with PHP 8. Ecwid ecommerce shopping cart plugin should work well with the latest PHP version. - Minor fixes and improvements. = 6.10.24 - Jul 13, 2022 = - Improved security of handling plugin settings with the WordPress plugin marketplace requirements. Ecwid ecommerce shopping cart plugin update is recommended. = 6.10.23 - Jul 10, 2022 = - **Improved security of handling storefront settings. Ecwid ecommerce shopping cart plugin update is recommended.** - Farmin theme improved compatibility. Even though Ecwid is compatible with every WordPress theme by design, some slight fixes and improvements are sometimes needed to make storefront look better. That’s why we are always monitoring how Ecwid pages look and behave in WordPress ecommerce themes. = 6.10.22 - June 08, 2022 = - Improvements for the integration with the All in One SEO plugin. There was a minor SEO issue with duplicates of the canonical tag on ecommerce store pages. There was sitemaps issue generated by plugin did not work well with those generated by All in One SEO. These issues has been fixed and everything should work fine now. - Minor fixes for Gutenberg ecommerce blocks. - Improvements for the “Store page speedup” feature. = 6.10.21 - May 24, 2022 = - **WordPress 6.0 compatibility.** The new WordPress version will be released soon. The Ecwid ecommerce shopping cart plugin is ready for the new release — everything works well in your WordPress admin and storefront pages. Feel free to upgrade your site to WordPress 6.0. - Minor fixes for Gutenberg ecommerce blocks. = 6.10.20 - Mar 29, 2022 = - New “Developers” page in the WordPress admin panel (WordPress admin > Ecwid > Developers). The page gives you an overview of plugin features where you can easily find all store blocks we have for popular page editors and quickly access advanced plugin settings. You can find information about external services Ecwid is integrated with and quickly access our APIs if you want to build a custom app. You will also find out how to earn a lifetime commission for every new client you refer to Ecwid. If you see something needs to be improved in the plugin or you want to integrate a third-party plugin, please, send us any feedback via the “Leave Feedback” button at the bottom of the “Developers” page. - Improvements for compatibility of the shopping cart category menu with WPML plugin. Some ecommerce sites had an issue with category links in multilingual mode when enabling the WPML plugin. We’ve fixed that. = 6.10.19 - Mar 09, 2022 = - Minor fixes and improvements. = 6.10.18 - Jan 25, 2022 = - **WordPress 5.9 compatibility.** The new WordPress version will be released soon. The Ecwid ecommerce shopping cart plugin is ready for the new release — everything works well in your WordPress admin and storefront pages. Feel free to upgrade your site to WordPress 5.9. - **Compatibility with PHP 8.** WordPress 5.9 also includes improvements to support PHP 8. Ecwid ecommerce shopping cart plugin should work well with the latest PHP version. = 6.10.17 - Dec 15, 2021 = - Fixed a PHP error message (“Class ‘WPSEO_Frontend’ not found“), when Ecwid is used with the Yoast plugin. If you noticed some of your store pages have that error when Yoast and Ecwid Ecommerce shopping cart plugins are both activated, this update should fix that. = 6.10.16 - Dec 07, 2021 = - Improvements in the plugin code to comply with the WordPress plugin marketplace recommendations. - Twenty Twenty theme improved compatibility. Even though Ecwid is compatible with every WordPress theme by design, some slight fixes and improvements are sometimes needed to make storefront look better. That’s why we are always monitoring how Ecwid pages look and behave in WordPress ecommerce themes. - Minor fixes and improvements. = 6.10.15 - Oct 12, 2021 = - **Improved security of handling initial onboarding. Ecwid ecommerce shopping cart plugin update is recommended.** Thanks to "tigertech.net" for a great job on the problem discovery. - Fixed slow loading issue for the site in some cases. - Minor fixes and improvements. = 6.10.14 - Jul 19, 2021 = - **WordPress 5.8 compatibility.** The new WordPress version will be released soon. The Ecwid ecommerce shopping cart plugin is ready for the new release — everything works well in your WordPress admin and storefront pages. Feel free to upgrade your site to WordPress 5.8. - Minor fixes and improvements. = 6.10.13 - Jun 10, 2021 = - Improvements for compatibility of the Ecwid shopping cart with WPML plugin. Some ecommerce sites had an issue with installing when enabling the WPML plugin. We've fixed that. - Minor fixes and improvements. = 6.10.12 - Apr 14, 2021 = - Improvements for compatibility of the shopping cart category menu with WPML plugin. Some ecommerce sites had an issue with category names in multilingual mode when enabling the WPML plugin. We've fixed that. - Improvements for the single product blocks added via the Ecwid shopping cart plugin. We enhanced the SEO structured product data for Gutenberg blocks to make them meet the latest Google recommendations. - Minor fixes and improvements. = 6.10.11 - Mar 24, 2021 = - Improved compatibility with Oxygen Builder plugin. We noticed that the Ecwid plugin affected some settings on the Oxygen Builder editor page. We fixed it, now it works fine. - Improvements for the single product widgets added via the Ecwid shopping cart plugin. We enhanced the SEO structured product data for sidebar widgets to make them meet the latest Google recommendations. - Minor fixes and improvements. = 6.10.10 - Mar 10, 2021 = - **WordPress 5.7 compatibility.** The new WordPress version is released. The Ecwid ecommerce shopping cart plugin is ready for the new release — everything works well in your WordPress admin and storefront pages. Feel free to upgrade your site to WordPress 5.7. - **Improved compatibility with WP Rocket and SG Optimizer cache plugins**. If you have one of those plugins installed and noticed any issue, it should be fixed now. If you still see a problem, please let us know. - Improvements for the Ecwid ecommerce blocks in Gutenberg editor. - Minor fixes and improvements. = 6.10.9 - Jan 18, 2021 = - Improvements for the Ecwid online store blocks in Gutenberg editor. - Improved compatibility with the Elementor page builder. In some cases, the Ecwid ecommerce plugin affected other plugins for Elementor. We fixed it. - Minor fixes and improvements. = 6.10.8 - Dec 11, 2020 = - **WordPress 5.6 and Twenty Twenty One theme compatibility.** The new WordPress version with the 2021 theme is released. The Ecwid ecommerce shopping cart plugin is ready for the new release — everything works well in your WordPress admin and storefront pages. Feel free to upgrade your site to WordPress 5.6 and try a new theme. - **Compatibility with PHP 8.** WordPress 5.6 marks the first steps toward WordPress Core support for PHP 8. Ecwid ecommerce shopping cart plugin should work well with the latest PHP version. - Fixes and improvements for the Ecwid ecommerce blocks in Gutenberg editor. = 6.10.7 - Oct 27, 2020 = - Updated the plugin translations. Now the plugin settings are fully translated into English, Russian, German, Spanish, French, Italian. In addition, the Ecwid store control panel and storefront have long supported all major languages (50 translations). - Plugin code improvements for better security and stability. - Minor fixes and improvements. = 6.10.6 - Sep 23, 2020 = - Сompatibility with LiteSpeed cache plugin. We've fixed plugin compatibility issues. If you are using LightSpeed to speed up your WordPress site and Ecwid, they should work fine. If you see problems, please let us know. - Improved compatibility with themes that update site content without page reload (AJAX themes). Some users of such themes may have seen problems in the display of the storefront, we fixed that. - Minor fixes and improvements. = 6.10.5 - Aug 27, 2020 = - **Fixes for the Open Graph title tags (og:title and twitter:title tags).** When you shared a link to a page of your store in social networks, the link preview could have a wrong title, we fixed it. - **Improved automatic cleanup of the plugin cache.** The Ecwid plugin stores your products data on cloud servers, so the plugin shouldn't take a lot of space on your site server. However some users observed a database table overflow with the plugin cache. That happens in rare cases when the plugin data is not cleaned up properly by Wordpress. We improved automatic cleanup of the plugin cache. The problem should be solved now. = 6.10.4 - Aug 11, 2020 = - **Improvements for the integration with the Yoast SEO plugin.** There was a minor SEO issue with duplicates of the Open Graph tags on ecommerce store pages. The issue has been fixed and everything should work fine now. - **Integration with the New WordPress XML Sitemaps.** In WordPress 5.5, a new feature is being introduced that adds basic, extensible XML sitemaps functionality into WordPress core. Now, the sitemaps generated by WordPress will also include your online store pages. - Minor fixes and improvements. = 6.10.3 - Jul 30, 2020 = - **New Store Front Page display mode switch.** Now you can easily change what is displayed on the store home page. Categories list and featured products, Expanded categories, Only featured products, All products with filters or Specific Category Page. Choose what works best for your ecommerce site. The new setting is available in the Gutenberg editor: Choose the Ecwid “Store Home Page” block and see the “Store Front Page” settings section on the right. - **Improvements for the "Import from WooCommerce" tool.** If you import your products from WooCommerce to Ecwid, the import should work faster now. We made the import of product images faster, which is especially important for a large catalog import. - Minor fixes and improvements. = 6.10.2 - Jun 30, 2020 = - Fixed a PHP error message ("Failed opening required") for PHP version 5.2 in WordPress admin panel. If your ecommerce site is running on an outdated PHP version, this update might fix a error message for you. Please update your PHP as soon as possible (or ask your hoster to do that for you) — it’s much more secure to use the latest versions of software on your server. - Minor fixes and improvements. = 6.10.1 - Jun 15, 2020 = - Minor improvements for the store dashboard menu items in the WordPress admin backend. = 6.10 - Jun 08, 2020 = - **Integration with the Elementor page builder.** Elementor is one of the most popular page builders. We added Elementor support to Ecwid, so you can add online store functionality to your site pages in Elementor. We added two ecommerce widgets to the Elementor toolbar: the store home page to display the whole storefront and the buy now button to add buy buttons to pages and posts. To try the new widgets, open the Elementor editor in your WordPress admin backend and find the "Ecwid Store" section there. - Minor fixes and improvements. = 6.9.7 - May 19, 2020 = - Improvements for the integration with the Yoast SEO plugin. There was a minor SEO issue with duplicates of the canonical tag on ecommerce store pages. The issue has been fixed and everything should work fine now. - After the last release, the Storefront menu item did not display in the plugin settings in the WP admin. That didn’t affect the store functionality, all the storefront settings and data stayed intact. We fixed the Storefront menu item — you can navigate to the WordPress admin > Ecwid > Storefront and manage your store appearance as usual. = 6.9.6 - May 14, 2020 = - Improve compatibility with the Elementor page builder plugin. Ecwid storefronts on Elementor-powered websites loaded slowly on devices with an old iOS version (less than 13.3.1). We fixed it and now stores should work well. - Better warning messages for the site administrator about the hosting connection issues. Some hosting do not allow WordPress plugins connect external services and APIs in their code. That might be because of a hosting server misconfiguration or a tricky firewall setup. Good news is that the Ecwid plugin would work well even in such environment — you can add a store to your ecommerce site pages and sell. But some of the plugin feature would be disabled. For example, SEO tools wouldn't work and the embedded store control panel wouldn't show. We added extra warning messages and fallbacks to the plugin code to better handle such situations. If you face such a problem, we recommend contacting your hosting provider to make sure your server can connect the Ecwid API. - Minor improvements for Twenty Twenty and NewShop themes. - Minor fixes and improvements. = 6.9.5 - Apr 21, 2020 = - Minor changes in the plugin code to comply with the WordPress plugin marketplace recommendations. = 6.9.4 - Apr 15, 2020 = - Improvements for the integration with the All in SEO plugin. There was a minor SEO issue with duplicates of the canonical tag on ecommerce store pages. The issue has been fixed and everything should work fine now. - Minor changes in the plugin code to comply with the WordPress plugin marketplace recommendations. = 6.9.3 - Apr 10, 2020 = - Improvements for the integration with the RankMath SEO plugin. We fixed a PHP warning message ("call_user_func_array() expects parameter 1 to be a valid callback"), which appeared on some sites. - Several changes in the plugin code to comply with the WordPress plugin marketplace requirements. - Minor fixes and improvements. = 6.9.2 - Apr 06, 2020 = - **Integration with the RankMath SEO plugin.** The “RankMath” plugin is a tool to set SEO meta tags on site pages and to generate a sitemaps. It conflicted with the Ecwid SEO functions: SEO tags and sitemaps generated by Ecwid did not work well with those generated by RankMath. It’s now fixed so if you use the plugin, everything should work fine and Google will index your products pages properly. - Improved compatibility with WPBakery editor and UrbanGo Listing theme. - Improvements for the "Import from WooCommerce" tool. = 6.9.1 - Feb 21, 2020 = - Fixed a PHP error message ("Fatal error: Uncaught ArgumentCountError ..."). This error is reproduced when the hook "apply_filters ('the_title', string $title, int $id)" with one parameter is called in the code. According to the documentation, for this hook you need to pass two parameters. We added an additional check to eliminate the error. = 6.9 - Feb 20, 2020 = - **New Storefront Settings page in the WordPress admin panel (WordPress admin > Ecwid > Storefront)**. The storefront page on your site is what your customers see when they want to visit your shop. That's the home of your ecommerce store. In this major update, we made it easier for you to manage that page — the new "Storefront" section in your dashboard has everything you need to do that. Navigate to the WordPress admin > Ecwid > Storefront and manage store navigation, adjust the store URL (slug), add store widgets, create additional ecommerce pages, adjust appearance and more. Read below to find more features introduced on the new Storefront settings page. - **New Storefront Settings Page: Design and content.** personalize your storefront appearance and edit the content of the store page to better reflect your brand and stay connected with your customers. - **New Storefront Settings Page: Navigation.** Help customers find your products on your ecommerce site with the new Navigation section on the Storefront settings page. Show your store on the site home page. Customize store page address. Add store page to the site menu. Feature your products in the sidebar. Display the shopping cart icon on site pages. - **New Storefront Settings Page: Additional store pages.** Create additional ecommerce pages on your site to feature specific products and categories, highlight product filters, add your store to other site pages and more. - **Revamped signup/connect page design.** The plugin welcome page is displayed for the new users. We refreshed the design of that page to make it easier for beginners to start selling online. - **A few fixes for compatibility with WPML.** WPML is a popular plugin for multilingual sites. Ecwid supports full-featured multilingual online stores. In this update, we fixed a problem where a direct link to an online store page didn't open in a non-default language in WPML. - **Improvements of the store appearance in Jevelin, Bridge and New Shop eCommerce themes.** Even though Ecwid is compatible with every WordPress theme by design, some slight fixes and improvements are sometimes needed to make storefront look better. That's why we are always monitoring how Ecwid pages look and behave in WordPress e-commerce themes. - **Fixes for Gutenberg's "Store home page" block.** Ecwid adds ten ecommerce blocks to Gutenberg. One of the blocks — the store home page — had an issue with the default settings when being added to a new page. We fixed it. - Minor fix for the shortcode button styles in the page editor in Twenty Twenty theme. - Minor fixes and improvements. = 6.8.11 - Dec 30, 2019 = - Fixed a PHP error message (“Class 'Ecwid_Import_Page' not found“) for PHP versions older 5.5. If your ecommerce site is running on an outdated PHP version, this update might fix a error message for you. Please update your PHP as soon as possible (or ask your hoster to do that for you) — it’s much more secure to use the latest versions of software on your server. = 6.8.10 - Dec 26, 2019 = - **Several fixes and improvements for the "Import from WooCommerce" tool.** The import tool now works faster and has a neat interface. - **Improved compatibility with popular WordPress cache plugins**. The Ecwid ecommerce plugin now works better on sites with WP Super Cache, Autoptimize and WP-Rocket. If you have one of those plugins installed and noticed any issue, it should be fixed now. If you still see a problem, please let us know. - Minor fixes for improved compatiblity with the Elementor pagebuilder plugin. = 6.8.9 - Dec 4, 2019 = - **Several fixes and improvements for the "Import from WooCommerce" tool.** If you import your products from WooCommerce to Ecwid, the import process now should work faster. We also added import of product sale prices from WooCommerce import "Sale Price". In the storefront, this price will be struck out to demonstrate the discount and the ON SALE label will appear on the product. - Avada, SimplyNews, Twenty Twenty themes improved compatibility. Even though Ecwid is compatible with every WordPress theme by design, some slight fixes and improvements are sometimes needed to make storefront look better. That’s why we are always monitoring how Ecwid pages look and behave in WordPress ecommerce themes. - Minor fixes and improvements. = 6.8.8 - Oct 31, 2019 = - WordPress 5.3 and Twenty Twenty theme compatibility. The new WordPress version with the 2020 theme is coming soon. The Ecwid ecommerce shopping cart plugin is ready for the upcoming changes — everything will work well in your WordPress admin and storefront pages. Feel free to upgrade your site to WordPress 5.3 as soon as it's released and try a new theme. - Minor fixes and improvements. = 6.8.7 - Sep 30, 2019 = - **New "Online store" widget in the Elementor page builder.** Ecwid works fine with all popular page builders in WordPress: Gutenberg, Elementor, Divi, Beaver builder and others. We constantly improve and add the compatibility features. In this update, we added a new "Online store" widget to Elementor editor toolbox. It allows you to add storefront to your ecommerce website pages easier in Elementor. - Meta tags improvement for products and categories ecommerce pages created with Divi builder. - Fix for the "Cannot use object of type WP_Error as array" PHP warning message appearing on some sites. - Minor fixes and improvements. = 6.8.6 - Sep 11, 2019 = - Improvements for the "Store page speedup" feature. - Fixed update date synchronization of goods for the "Integrate with the site search" tool. - Minor fixes and improvements. = 6.8.5 - Jul 25, 2019 = - **Improvements for the "Store page speedup" feature.** If you haven’t tried the store speedup tool yet, please feel free to do so on the Ecwid/Advanced setting page in your WordPress admin backend. - **Several fixes and improvements for the "Import from WooCommerce" tool.** - **Fixed a "Call to undefined function pll_current_language()" error message** to improve compatibility with the Polylang plugin. - Minor fixes and improvements. = 6.8.4 - Jul 9, 2019 = - **Several fixes and improvements for the recently released “Store page speedup” feature.** In particular, the changes improve the caching mechanism to avoid high database usage and fix layout issues in Internet Exporer browser. If you haven’t tried the store speedup tool yet, please feel free to do so on the Ecwid/Advanced setting page in your WordPress admin backend. - **Fixed a warning on the sites with old PHP versions**. If your ecommerce site is running on an outdated PHP version, this update might fix a warning message for you. Please update your PHP as soon as possible (or ask your hoster to do that for you) — it’s much more secure to use the latest versions of software on your server. = 6.8.3 - Jul 1, 2019 = - **Fixed scroll issues.** Ecwid adjusts the browser scroll when someone navigates to product and category pages in your shop. This is to make sure a visitor will see the product pages aligned well on the page. This didn't work well on some sites — we fixed that. - A few bug fixes in the Ecwid ecommerce blocks in Gutenberg. - Several other minor bug fixes and improvements. = 6.8.2 - Jun 14, 2019 = - Fixed an error that happened under certain site configurations = 6.8.1 - Jun 13, 2019 = - **Enabled the “Cache and speed up the store page” feature for the old Ecwid accounts**. The feature appeared in the previously released version (6.8), but it was disabled for the part of old Ecwid accounts. It’s now available for everyone. You can turn it on on the “Ecwid/Advanced” page in your WordPress admin backend. = 6.8 - Jun 13, 2019 = - **New cool feature — cache and speed up your store page**. Available on the Ecwid/Advanced settings page inside your WordPress admin backend. Tick the new checkbox there to make it cache and speed up the store home page on your ecommerce site. When it’s enabled, you and your customer will see your store page load way faster than before. - **Compatibility with more multilingual plugins**. As we mentioned before, Ecwid now supports full-featured multilingual storefronts. Previously, we made it compatible with the WPML plugin. In this update, we are adding support for more multilingual plugins: Polylang, TranslatePress, WPGlobus, WP Multilang, Multisite Language Switcher, MultilingualPress, Multilanguage by BestWebSoft, Transposh WordPress Translation and more. In general, if some plugin or a custom code switches locale on your site, Ecwid should be compatible with it and change the storefront language accordingly. So, if you have enabled the multilingual mode in your ecommerce store and are supporting several languages on your WordPress site, your shop pages will be displayed in the language selected by a visitor. - Minor fixes and improvements. = 6.7.4 - Jun 6, 2019 = - **Fixed the "Random products" sidebar widget layout issues**. Some users might notice that the random product widget didn't look good on e-commerce sites with a narrow sidebar. We fixed it so the widget work fine in narrow spaces. - **Fixed slow loading issue for the site admin**. After the latest Ecwid Ecommerce plugin update you might notice the store page loaded a bit longer. That was a bug. It didn't affect how the site loaded for your customers, but it did slow it down for you, the site administrator. We fixed it. - Small fixes and improvements. = 6.7.3 - May 29, 2019 = - Fixed compatibility with WordPress versions older 5.0 - Fixed a PHP error message ("Can't use function return value in write context ") for PHP versions older 5.5 - Minor fixes and improvements. = 6.7.2 - May 28, 2019 = - **SEO improvement: new ld+json and improved [schema.org](https://schema.org/) markup on product pages**. Ecwid adds product ecommerce data to product pages in a SEO-friendly microdata format so that search engines can index your store pages and better display them in search results. In this update, we enhanced the structured products data on store pages to make it meet the latest Google recommendations. Also, the plugin now adds the same product data in ld+json format in your storefront, which is an alternative way to expose your e-commerce information to search engines. This should increase chances the Google bot will crawl and index your product catalog well. - **Improved compatibility with WPML (part 3): hreflang tags for SEO**. WPML is a popular plugin to build multilingual sites. As we mentioned before, Ecwid now supports full-featured multilingual storefronts, too. In this update, we further improved WPML support in Ecwid. Now, if you have enabled the multilingual mode in your ecommerce store and are using WPML on your WordPress site, your shop pages will have links to the alternative language versions so that search engines will know which version to display to customer. Those alternative links are specified in hreflang tags in your storefront — special HTML elements aimed to link language versions of the same page between each other. - **Several fixes and improvements for the “Import from WooCommerce” tool**. If you import your products from WooCommerce to Ecwid, the import process now should be more stable and friendly. - **A few fixes for the “Integrate with the site search” tool**. You can find that tool on the Ecwid Advanced setting page — it’s used to display your products in site search results. - Minor fixes and improvements. = 6.7.1 - May 8, 2019 = - Minor fixes and improvements. = 6.7 - May 8, 2019 = - **Improved compatibility with WPML (part 2)**. WPML is a popular plugin for multilingual sites. Ecwid now supports full-featured multilingual storefronts, too. So, in this update, we added a few more improvements for WPML support. Now, if you have enabled the multilingual mode in your ecommerce store and are using WPML on your WordPress site, your shop pages will be displayed in the language selected by a visitor in a language selector. Read more about setting up a multilingual e-commerce store in Ecwid in the Ecwid blog: [https://www.ecwid.com/blog/sell-around-the-globe-with-a-fully-multilingual-storefront.html](https://www.ecwid.com/blog/sell-around-the-globe-with-a-fully-multilingual-storefront.html) - **A few fixes for compatibility with Divi builder**. If you use Divi builder to edit your WordPress site content, you might notice that the Ecwid buttons "Add store" and "Add product" didn't work well in the editor lately. We fixed that, now it should work fine. = 6.6 - Apr 29, 2019 = - **Improved loading time for the Ecwid plugin in WordPress admin backend**. We noticed that the Ecwid plugin affected the loading time of the pages editor in the WordPress admin backend. We improved a few things in the plugin to make it load faster. - **Improved compatibility with WPML**. WPML is a popular plugin for multilingual sites. We got a few reports that it didn’t work well with Ecwid. We talked to the WPML team and tracked down the issue. It’s now fixed and your site should work fine if you use both WPML and Ecwid. In future versions, we will add a full support for WPML — you will be able to translate your Ecwid catalog to multiple languages and display your store content in your visitor language. - **Added Russian translations for Gutenberg blocks**. The Ecwid ecommerce plugin now has 10 Gutenberg e-commerce blocks, which help you build your online store pages in more convenient drag-n-drop manner. In this update, we translated those blocks to Russian to make it more friendly for Ecwid users from Russia. - Various fixes and improvements. = 6.5.3 - Apr 11, 2019 = - **Compatibility fixes for KingComposer Editor.** There was a problem in how Ecwid e-commerce plugin works with KingComposer editor. We've fixed it. - Minor fixes and improvements. = 6.5.2 - Apr 3, 2019 = - Minor fixes and improvements. = 6.5.1 - Mar 28, 2019 = - Fixed a minor appearance issue in the Ecwid e-commerce blocks in Gutenberg. = 6.5 - Mar 28, 2019 = - **Added 8 new Gutenberg blocks — 10 in total.** The Ecwid plugin now provides 10 ecommerce blocks for Gutenberg for adding online store functionality to your site pages. The blocks include: the store home page to display the whole storefront, the store category page to show a particular category, the large product card to show detailed product information, the small product card to display one or several product widgets, the buy now button to add buttons to blog posts, the search and filters page, the search input block, the shopping cart icon block and the cart and checkout block. To try the new blocks, open Gutenberg editor in your WordPress admin backend, click "Add block" and find the "Ecwid" blocks set there. - **Added In-context "Edit Product" links.** You can now open store product editor quickly when browsing published store pages as an administrator. Just click the "Edit Product" link at the top of the page in the WordPress admin header or the "Edit" button at the bottom of the post and you will get redirected to the product details in your e-commerce store dashboard. - **Added SEO improvement for the H1 tags on the product and category pages**. Ecwid puts product and categories ecommerce data in the page content in a SEO-friendly microdata format so that search engines can index your store well. On the other hand, Wordpress pages have their own data, specifically <h1> tags, which stay on product pages and visible to Google when it is indexing your site. So, in addition to a product title like "My cool product", Google may see your store page title on the same page like "Shop". We improved it: the product pages will now have more prominent and clear <h1> tags containing product titles. This should improve indexation and the way your products look in the search results in Google. - **Added compatibility with the Enfold theme page builder (Avia Layout Builder)**. We learned that Ecwid didn't work well with the Avia page builder which is a part of the Enfold theme. Enfold users might notice it was difficult to add Ecwid blocks to a page. We fixed that — now Ecwid should work fine with Enfold theme. - **Added Mega Menu plugin compatibility**. Added fixes and layout improvements to make the Ecwid e-commerce plugin compatible with the Mega Menu WordPress plugin. If you use the Mega Menu plugin, you might notice layout issues on your store page. We fixed that. If you find any trouble in how Ecwid works with your theme or plugin, please let us know. - Minor fixes for the "Import products from WooCommerce to Ecwid" import tool. - Ecwid is constantly updated with new features and tools which are of course available to WordPress users. One of the recent major updates is Dynamic AMP emails: we’ve collaborated with Google/Gmail to launch dynamic email for e-commerce merchants. It's available for the Ecwid plugin users now and you will be able to use it without dealing with custom code or any external plugin. Check it out in our [blog](https://www.ecwid.com/blog/e-commerce-email.html). = 6.4.15 - Mar 19, 2019 = - Fixed generation of sitemap for Yoast SEO plugin = 6.4.14 - Mar 12, 2019 = - Fixed a PHP error message ("Cannot use object of type Closure as array") = 6.4.12 - Mar 11, 2019 = - Improvement for the sharing buttons on the product pages. "Share to Facebook", "Tweet" and other share buttons now uses the actual product page URLs instead of a "proxy" Ecwid URL. This should make shared links look more appealing in social networks and improve the SEO of your ecommerce store. - Fixed an issue in the "Import products from WooCommerce" tool. In some cases, import failed and stopped importing products — we fixed that, now it should work fine and you can import your products from WooCommerce to Ecwid when you need it. - Fixed a Javascript warning message in the browser console when the Recently viewed products widget is used. - Minor fixes and improvements for SEO, stability and performance. - Besides the changes in the plugin, Ecwid e-commerce functionality is constantly updated with new features and tools. One of the recent major updates is product filters — you can now add product filtering panel to your store search page without dealing with custom code or an external plugin. Check it out in our [blog](https://www.ecwid.com/blog/all-sorted-introducing-storefront-product-filters.html). = 6.4.11 - Feb 26, 2019 = - Minor fixes and improvements. = 6.4.9 - Feb 7, 2019 = - **Fixes for the Open Graph image tag (og:image tag) .** When you share a page from your ecommerce site on Facebook or in a messenger, you should see the product title, description and image in the sharing preview snippet. - **Improvements for the product listing auto-scroll function.** In some Wordpress themes, the site header might overlap product pages when you navigate from page to page in your online store. We improved it to make the product and category pages appear better to your customers. - Various minor fixes and improvements. = 6.4.8 - Dec 26, 2018 = - **Improved settings interface for the "Product" block in Gutenberg (the new WordPress page editor)**. You can add a single product to any of your pages or posts using the Ecwid ecommerce "Product" block and fine-tune its layout in the block settings on the right side in the editor. - **Resolved a minor layout issue caused by the Embed Any Document plugin.** The Embed Any Document plugin adds a breaking CSS code to the Wordpress admin backend which caused some of the Ecwid plugin admin pages display incorreclty. We fixed that, the plugins are now compatible. - **SEO enhancement: improved canonical tags for the sites that display different store categories on different site pages.** In such case, the canonical tags on products and categories pages will keep the pages structure as is (link to the page that they are opened from). Otherwise, if you have one main store page displaying the whole catalog, the product/categories canonical tags will link to the main store page to avoid duplicates issues and make your e-commerce store appear better in the Google search results. - Minor improvements for the Ecwid admin backend pages navigation. = 6.4.7 - Dec 14, 2018 = - **Compatibility fixes for Elementor and Gravity Forms.** Thanks to a user report, we found a few glitches in how the Ecwid e-commerce plugin works with Elementor and Gravity Forms. All fixed — the plugins should work fine together now = 6.4.6 - Dec 7, 2018 = - Minor fixes & improvements. = 6.4.5 - Dec 7, 2018 = - **Minor fixes for better compatibility with the WordPress v5 and Gutenberg.** - **Improvements and fixes for the “Import products from WooCommerce” tool.** Import of products from WooCommerce to Ecwid now should work smoother, especially when you have a lot of products to import. = 6.4.3 - Nov 28, 2018 = - Minor fixes and improvements for the Ecwid ecommerce blocks in Gutenberg editor. = 6.4.2 - Nov 14, 2018 = - **Speedup for the store main page.** We're working on making Ecwid stores load faster on WordPress sites. This update brings a set of loading speed improvements for some part of the stores. We will gradually roll out these enhancements to all users. No actions required from your side — your store will get all of the improvements in this or upcoming releases. But if you ever noticed your store loading slowly, please contact us so we can help you enable this new feature on your site right now. - **Fixed an issue in the plugin settings menu on [Wordpress.com](http://wordpress.com).** Ecwid e-commerce plugin works on Wordpress.com sites as well. In the admin backend of [WordPress.com](http://wordpress.com) sites, the plugin menu didn't look well — some of the styles and colors were broken. We fixed it, now the plugin admin backend should work fine on both [Wordpress.org](http://wordpress.org) and Wordpress.com installations. - Minor fixes and improvements. = 6.4.1 - Nov 13, 2018 = - WordPress v 5.0 compatibility. This update brings compatibility with the upcoming WordPress version. In particular, we made sure Ecwid e-commerce stores looks good with the new Twenty Nineteenth theme. Also, we polished the Ecwid online store block in the new WordPress editor (Gutenberg) to make sure you can add a product listing to any site page and customize its appearance including colors, product grid layout, store navigation controls, product page appearance and more. = 6.4 - Oct 25, 2018 = - **New storefront appearance settings in Gutenberg.** The new WordPress page editor (Gutenberg) now has plenty of e-commerce design settings: product thumbnails format and size, button and text colors, category images behavior, product page layout, store navigation elements and a lot more. We previously added these appearance options to your Ecwid store control panel: https://www.ecwid.com/blog/new-ecwid-design-settings-dozens-of-customization-options-no-coding.html. Now they are a part of real-time page building experience: you tweak the appearance, preview changes and publish them right from the page editor. To see the new appearance options, please make sure you enabled the Gutenberg editor in your WordPress admin backend. - **SEO fix: 404 status for removed products and categories.** Previously, Ecwid didn't mark removed products and categories with correct 404 responses — it just displayed a customer-friendly message saying the product is not available. Google recommends making removed pages clearly marked with a special 404 response code available for search robots to read. We added it to make sure unavailable products will be quicker removed from the Google search results giving more customer attention to the available products. - Minor fixes and improvements. = 6.3.2 - Oct 1, 2018 = - **Fixed a problem with the WordPress admin menu items.** In some cases, the WordPress admin navigation froze when an Ecwid store admin page was opened. Now everything should work fine. = 6.3.1 - Sep 26, 2018 = - **Several fixes and improvements.** = 6.3 - Sep 25, 2018 = - **Compatibility with the popular WordPress page builders: Elementor, Divi, Beaver builder.** The Ecwid e-commerce plugin has always been working great with the default WordPress editor to let you easily add a store or a single product to your site pages. In the recent updates, we also added the same functions to Gutenberg editor. In this update, we went further to make sure the most popular page builders are working fine with Ecwid. We added a lot of improvements and fixes to the plugin to make it work better with the Elementor, Beaver page builder and Divi editor. If you are using one of those page builders and having any problem editing your store page, please let us know so we can further improve it. - **Avada, Bridge and Parallax One themes improved compatibility.** Even though Ecwid is compatible with every WordPress theme by design, some slight fixes and improvements are sometimes needed to make storefront look better. That’s why we are always monitoring how Ecwid pages look and behave in WordPress ecommerce themes. In this update, we are rolling out a few minor improvements to the Ecwid layout for the Avada, Bridge and Parallax One WordPress themes. - **Fix of a conflict with Master slider plugin.** The Master slider plugin used to conflict with Ecwid plugin in the WordPress admin backend, which may cause some of the slider management pages look broken in the slider dashboard. Fixed. - **Fix of a conflict with the Ultimate tables plugin.** One more plugin conflicting issue is fixed: the Ultimate tables plugin used to affect the Ecwid dashboard layout in the WordPress admin backed. Now it is working fine. - **Improvements for the WooCommerce import tool: options, variations and image gallery are now supported.** In one of the recent update, we made it possible to import WooCommerce products to your Ecwid e-commerce store using a simple import wizard in the Ecwid plugin. In this version, we’ve made it more powerful so you can now import product gallery images, product options and variations to make the import easier and quicker. - **Several fixes and improvements.** = 6.2.4 - Aug 17, 2018 = - Fixed an issue with the SEO content of product and categories pages. In the previous update, there was a bug affecting hidden SEO content of the store pages. It’s now fixed — everything should work fine both for human visitors and search crawlers. = 6.2.3 - Aug 15, 2018 = - Minor fixes and improvements. = 6.2.1 - Aug 8, 2018 = - **New “Main storefront page” selector in the plugin advanced settings.** If you have your storefront added to several pages on your site, you can now choose the main storefront page in the plugin settings (Ecwid → Advanced). This will define where the store navigation menus and sidebar widgets should be linked to. If you have a single online store page (which is totally OK), this new option won’t be displayed. - **New warning messages for the sites with outdated TLS.** Ecwid is a PCI DSS level 1 certified ecommerce provider, which is a gold security standard for e-commerce solutions. Put it simply, when you use Ecwid, you have a bank level of online payments security in your online store. One of the requirements to make sure Ecwid merchants can securely process payments on their site is to use up-to-date TLS software on the server where your site is hosted. If your store dashboard doesn’t load in your Wordpress admin backend or you see a warning message saying that the Ecwid plugin cannot connect to the Ecwid API, that’s most likely caused by outdated TLS on your hosting. We recommend contacting your hosting in such case. If everything works fine and no warning message appears, that means no action is required from your side. - **Minor improvements in the store dashboard in the WordPress admin backend.** We improved the scroll behavior on the store admin dashboard pages and fixed a couple minor issues in the Ecwid menu items in the WordPress admin backend. - **Fixed an issue with store popup appearing on protected pages before the password is entered.** Some online sellers add their store catalog on protected pages on their ecommerce site to restrict access to it for some particular group of customers (e.g. wholesale membership). There was an issue with store catalog appearing in a popup on such pages — we fixed that. - **Fixed an issue in the “Add store” button in the WordPress page editor.** There was a bug that made the store widgets appear at the top of the page when you use the “Add store” button in the classic Wordpress editor. We fixed it, it should work fine now. - Minor fixes and improvements. = 6.2 - Jun 25, 2018 = - **New! Revamped floating cart icon.** We added a new floating cart widget that allows to display a cart icon along with items count and subtotal in the corner of the screen. This way, it's always visible and your customers can click it to check their cart contents and proceed with checkout. The new floating shopping cart icon looks better and provides a lot of layout customization options. You can enable it in the Customizer menu under "Ecwid" section in your WordPress admin backend: (Appearance → Customize → Ecwid). - **Fixed a "Call to undefined function mb_strtolower" error message that appeared on some hosts.** If you saw such an error message, this should be fixed now. - **Fixed a minor issue with the way Ecwid clean URLs work with Divi theme.** If you're using Divi theme on your site, you might notice that product page links gave you a 404 error in some rare cases. It' fixed now. - Minor fixes and improvements. = 6.1.1 - May 30, 2018 = - **Compatibility with Gutenberg: buy now buttons in the page editor.** Gutenberg editor is getting more and more popular and will soon be the default WordPress editor. To make sure Ecwid users are ready for it, we are adding Gutenberg support to our plugin. In the previous update, we added a “Store” block to the Gutenberg editor toolbar. This update brings another button to the editor toolbar — “Ecwid product”. Use this one to add product widgets and buy now buttons to the pages and posts of your site. - **Revamped cart widget for sidebar.** We added a new sidebar widget that allows to display a cart icon along with items count and subtotal in the sidebar. The new shopping cart icon widget looks better and provides a lot of layout customization options — don’t forget to play with its settings when adding it to your sidebar. You can find the new widget under Appearance → Widgets in your Wordpress admin backend. - **New design/appearance settings: new customization options for your storefront.** We added a lot of new design settings to your store dashboard. Read this detailed post to learn how to tweak your store appearance: [https://www.ecwid.com/blog/new-ecwid-design-settings-dozens-of-customization-options-no-coding.html](https://www.ecwid.com/blog/new-ecwid-design-settings-dozens-of-customization-options-no-coding.html) - **Compatibility with WP Bakery page builder.** We fixed a few issues and made Ecwid widgets work fine in the “WP Bakery” page builder. Now you can use that sitebuilder with the Ecwid plugin — everything should work fine. - **Fixed a pre-renderering issue in IE browser.** The Ecwid e-commerce plugin adds prerender/preload tags to your site code — those are special html codes aimed to make the store page loads faster for your customers. This pre-rendering technology didn’t work well in old IE browsers (IE 11 and older) so we disabled it for IE visitors on your site. It works automatically, so no actions required from your side. - **Compatibility with Polylang plugin.** We got a report from one of our customers stating that Ecwid didn’t work well with Polylang plugin. We fixed an issue, now everything should work fine. - Improvements and fixes for the plugin navigation in the WP admin menu. - Improvements and fixes for store pages SEO friendly urls. - Fixed a minor issue in the “Tools -> Import -> Ecwid products” section in the WP admin backend. = 6.0.3 - Apr 19, 2018 = - Fixed incorrect sorting in the store categories menu widgets. If you use display store categories inn your site menu or in a sidebar using the Ecwid categories sidebar widget, you might notice that the categories list order differs from that in your store control panel. We fixed that — now the sorting matches. - Fixed unclickable products/categories in storefront. This issue appeared in very rare occasions, when a site is running on https (like https://example.com) but someone opens it using an http link (http://example.com). If there was no redirect (it happens sometimes), you might notice that your store product listing doesn’t react on clicks in the http version of your site. We fixed that — now it works well in all cases. We recommend redirecting http to https version though anyway. = 6.0.2 - Apr 13, 2018 = - Fixed an error that occurred under specific server configurations. = 6.0.1 - Apr 11, 2018 = - **Compatibility with Gutenberg.** Gutenberg editor is getting more and more popular and will soon be the default WordPress editor. To make sure Ecwid users are ready for that, we added Gutenberg support to our plugin. Now when you edit a page in Gutenberg, you will see a new "Ecwid online store" block in the editor toolbar — this can be used to add a store to a page. In future updates, we will add ability to add a product widget (or a buy now button) to a post or page in Gutenberg. - **New product import tools.** Some sellers copy their products to Ecwid e-commerce plugin from WooCommerce, other shopping carts or local database or spreadsheet. We made it easier to do that in Ecwid. You can now see a separate Ecwid block under Tools -> Import in the WordPress admin backend. That block allows you to import products and categories to your store from WooCommerce or external CSV file. - **New WordPress admin dashboard widget: help/educational materials for sellers.** We added a new Ecwid block to the WordPress admin dashboard — it features useful posts from the Ecwid ecommerce blog. The block refreshes itself automatically when we publish a new blog post. Check it to find fresh product updates and tips and recommendations from the Ecwid team on how to better set up your store and sell more. - **Revamped Ecwid menu in WordPress admin backend.** This is step #2 of the menu changes implemented in the version 5.8. Historically, the Ecwid store management dashboard displayed navigation within the central page content when you open it in your WordPress admin backend. So, you open the “Ecwid” menu in your WP admin and then navigate through your store admin pages inside that general “Ecwid” page. We’re improving this process: now the store admin navigation menu will be a part of the WordPress admin menu. So now you will find management/settings/apps and other sections right in the WordPress left-hand navigation sidebar. This will align the Ecwid plugin navigation with the general WordPress navigation and provide more natural way to find the right page of your store dashboard. Also, this will free some space in the page central area to make it more convenient to manage your store, especially on mobile devices. - Minor fixes and improvements. - 6.0.1 fixes compatibility issues with outdated php versions. = 5.8.2 - Mar 9, 2018 = - **Fixed an issue with the categories menu appeared in the version 5.8.1.** = 5.8.1 - Mar 7, 2018 = - **Compatibility with the Yoast premium SEO plugin.** Yoast recently updated their SEO plugins. We adjusted Ecwid plugin to work well with them. So, as usually, Ecwid should work well with Yoast products, feel free to use them to get your site and online store optimized for search engines. - **Fixed an issue with Ecwid buttons in the Elementor page builder toolbar.** Ecwid’s “Add store” and “Add product” buttons didn’t work well in the Elementor editor toolbar. We hid the Ecwid buttons from the toolbar as a workaround. To add a store or a single product to a page in the Elementor editor, please use [ec_store] and [ec_product] shortcodes or temporarily switch to the default WP editor. - **Fixed compatibility issues with Themify AJAX themes.** If you use one of Themify themes with AJAX navigation enabled, you might notice that your store page didn’t load sometimes. We fixed that. Ecwid should work well with any Wordpress theme. - **Fixed an issue with SEO-friendly description on store product pages.** Ecwid ecommerce plugin renders your store pages in a special search engines friendly way so that they can index your products and display them better in search results. In some cases, product description wasn’t displayed in that SEO version of store page. We fixed that, everything should work fine and your products should be displayed well in Google search. - Minor fixes and improvements. = 5.8 - Feb 8, 2018 = - **Improved OG tags support.** OpenGraph (or OG) tags are special marks in site pages code, that are used to make better snippets when you share a page on Facebook, Twitter and other sites and social networks. We added OG tags to the products pages — this will make your product title, description and image appear in a snippet/post when you share a link to that product. - **Revamped Ecwid menu in WordPress admin backend.** Historically, the Ecwid store management dashboard displayed navigation within the central page content when you open it in your Wordpress admin backend. So, you open the “Ecwid” menu in your WP admin and then navigate through your store admin pages within that general “Ecwid” page. We’re improving this process: now the store admin navigation menu will be a part of the Wordpress native admin menu, so you will find products/sales/settings/promotions/apps and other sections right in the Wordpress left-hand navigation sidebar. This will align the Ecwid plugin navigation with the general Wordpress navigation and provide more natural way to find the right page of your store dashboard. Also, this will free some space in the page central area to make it more convenient to manage your store, especially on mobile devices. IMPORTANT: The change is now enabled for the new plugin users only. We will gradually roll it out to all of the plugin users in the upcoming updates. - **Improved compatibility with Customizr theme (part 2).** We continue improving the Ecwid online store plugin to work well with a popular “Customizr” theme and to make the store appearance and behavior fit the theme better. This is a continue of the improvements for Customizr that we released in the previous plugin update. If you’re using the Customizr theme, please let us know what you think. - **Several minor fixes and improvements.** The Ecwid plugin is constantly updated with new features and tools. To see more updates, see [our ecommerce blog](https://www.ecwid.com/blog/ecwid-updates). = 5.7.3 - Jan 18, 2018 = - **Improved compatibility with Customizr theme.** We are inspecting how the plugin works with a popular “Customizr” theme and making the store appearance and behavior fit the theme better. This is the first part of improvements for Customizr, we will continue making it better in the future versions. - **Improvements in the way the plugin communicates with the Ecwid APIs.** We cleaned up the plugin code and improved its internal functions to make sure storefront and product widgets are using the newest Ecwid API and work more stable. - **Minor improvements in the SEO.** We made a few fixes and adjustments in canonical tags and SEO-friendly URLs functionality. - **Ecwid e-commerce service is constantly updated with new cool features and improvements.** To see more updates and learn something new about selling online, see [our blog](https://www.ecwid.com/blog/ecwid-updates). = 5.7.2 - Dec 20, 2017 = - **Fixed a couple of bugs on the Ecwid dashboard page.** The store control panel might not appear in the Wordpress backend for some users (especially it was likely to happen in Safari browser). We fixed it. So if you experienced that issue in your Wordpress admin backend, this update should fix it for you. - **Added fixes and layout improvements to make Ecwid e-commerce plugin compatible with “Abubize Business” and “Evolve Plus” Wordpress themes.** If you use one of those themes, you might notice layout issues on your store page caused by the theme styles overriding Ecwid styles. We fixed that. If you find any trouble in how Ecwid works with your theme, please let us know. - **Fixed an issue in the way Ecwid shortcode is rendered in the Wordpress page editor.** You might notice the Wordpress editor froze when you changed the "widgets" part of the Ecwid shortcode in the editor. For example, if you put a shortcode with categories widget only (without product browser). We fixed it — now you can adjust the shortcode as you wish. Note this problem only affected the Wordpress editor — neither your store nor your control panel were affected. So, if you don't customize the shortcode content, you can just ignore this, everything is working fine for you. - **Several minor fixes and improvements.** Ecwid is constantly updated with new cool ecommerce features. To see more updates and learn something new about selling online, see [our blog](https://www.ecwid.com/blog/ecwid-updates). = 5.7.1 = - **Fix for the “The requested product is not available” error message appeared in the version 5.7**. The issue was caused by the new “Default product” feature. Some users found that error message when adding their store to a new page in the plugin and specifying the default category for that page. Everything should work fine now. = 5.7 = - **New feature in the [ecwid] shortcode — it’s now possible to specify the product that will be displayed by default when the store page is opened.** If you want to feature some product from your online store on one of the site pages or if you sell a single product, you can specify it in the new “default_product_id” parameter in the ecwid shortcode to make it opened by default. - **Speedup in the store navigation for your customers.** We improved Ecwid e-commerce sidebar widgets and menus in the storefront, they now work without page reload when a visitor is already on the store page. After the customer opens your store page, all further browsing will be super fast, including switching between products, opening categories, visiting recently viewed products etc. - **Fixed an issue with title and description meta tags being changed by the Yoast SEO plugin on store pages.** If you have Yoast installed, you might notice this issue recently. Now your products and categories titles and descriptions will get to the page meta title/description tags with no problem. This should help Google index your catalog properly. - Ecwid is constantly updated with new cool ecommerce features and improvements. To see more updates and learn something new about selling online, see [our blog](https://www.ecwid.com/blog/ecwid-updates). = 5.6.2 - Oct 25, 2017 = - **Fixed an issue with custom store menu links.** You can add store pages to the site menu under “Appearance → Menu” in your WordPress site settings. Previously, these links might not work if you added them in the recent weeks. We now fixed it, they should work fine. - **Fixed an issue with the browser back button and the customer cart content.** In some rare cases (when the Single Sign On tool is enabled), when a logged in store visitor clicked the back button in their browser, the cart content might be refreshed. We fixed that — whether you have the customer Single Sign On enabled or not, the storefront, cart and checkout should work properly. - **Added compatibility with the “Above The Fold Optimization” plugin.** You can use that plugin along with the Ecwid shopping cart, everything should work fine with no issues. - **Fixed a slight layout issue with the “Optimizer” theme.** Product thumbnail pictures displayed improperly in that theme. Now they look OK. - **Added slight improvements and fixes for the admin backend layout.** - Ecwid is constantly updated with new cool ecommerce features and improvements. To see more updates and learn something new about selling online, see [our blog](https://www.ecwid.com/blog/ecwid-updates). = 5.6.1 - Sep 29, 2017 = - Fixed incompatibility of the plugin v5.6 with the servers running PHP 5.2.x = 5.6 — Sep 27, 2017 = - **Added a new sidebar widget — "Latest Products"!** Add this widget to your sidebar to let your customers know what's new in your online store. You will find the widget under Appearance -> Widgets section in your Wordpress admin backend. - **Added SEO optimization for single product widgets.** Now, single product widgets will include SEO-friendly markup for product's title/price/availability data to let the search engines better index the page content. You can add single product widgets to your site pages using the "Add Product" button in the Wordpress page editor. - **Slightly optimized loading speed.** The Ecwid Online Store plugin now loads less CSS/JS files on your site to decrease number of resources the visitor browser should process and to increase loading speed. - **Fixed an issue with SEO friendly clean URLs.** On some sites in rare occasions, product URLs responded with 404 errors. If you encounter such behavior on your site, this update should fix that. All shop URLs should work fine now — they are available for visitors and are well indexed by search engines. - **Various minor fixes and improvements** in random product widget, SEO functionality, store dashboard and other areas. - Ecwid is constantly updated with new cool features and improvements. To see more updates and learn something new about selling online, see [our blog](https://www.ecwid.com/blog/ecwid-updates). = 5.5 = - **New random product widget.** A new sidebar widget allows you add a random product block to the site sidebar. Each time your customer opens or refreshes a page on your site, they will see one of your store products in the sidebar. Enable the new random product widget under Appearance→Widgets section in your Wordpress admin backend. Do not forget to add pictures to your products to bring site visitors’ attention to your store. - Minor fixes and improvements. = 5.4.3 = - **Speed optimization for the plugin settings pages.** We improved the plugin admin settings code to make sure it requires less time and resources and thus works faster. - **Fixed a bug in the integration with the Google XML Sitemaps plugin.** The sitemaps generated by that plugin might contain invalid data related to the store product pages. That was caused by a bug in the Ecwid plugin. We fixed that, your sitemap should work fine now. - **Fixed the “preg_match” warning messages appearing in rare occasions on the plugin pages.** If you happen to see those messages on your site, please update the Ecwid online store plugin, it should fix them. - **Bug fixes and improvements for the SEO content of the product and categories pages on the site.** This is for search engines to be able to index your store better. = 5.4.2 = - **Loading speed optimization for the Single Product widgets.** We continue working on improving the Ecwid ecommerce plugin loading speed. This update includes optimization of single product widgets. The optimization should have especially good effect if you added multiple single product widgets on a page (e.g. for creating a featured slider or a customized products grid). - **The Recently Viewed Products widget is also optimized.** It now works much faster. If you haven’t used the widget before, feel free to enable it under Appearance -> Widgets. - **The legacy “Appearance” settings page is removed from the plugin admin menu.** The old “Appearance” settings page was removed from the plugin settings navigation. To configure the product catalog settings (displayed widgets, products per page etc), you can open your store page for editing in the WordPress admin backend and click the “Edit appearance” button there. If you don’t have a store on the page, click the “Add store” button in the page editor and set the appearance settings there — they will be applied to your store on that page. - **Fixed “Strict standards” code notices.** Some users may discover this notice on their site, if the debugging messages are not disabled in the Wordpress installation. That didn’t affect the store functionality, but looked odd. We fixed that — there should not be any warning messages displayed now. - Minor fixes and improvements. = 5.4.1 = - Fixed an issue with the store page loading in the newest version 5.4. In some rare occasions, the store page might not display right after update to the version 5.4. We fixed the issue to make sure all stores are working well. - Added a workaround for a conflict with the third party “Product Advisor for Ecwid” plugin. The “Product Advisor” plugin has a bug that prevents it from working correctly with the newest versions of the Ecwid plugin. When the Product advisor plugin is enabled, the site pages do not respond. We added a workaround to the Ecwid plugin to make sure the WP admin pages will work well for the “Product advisor”. So, if you’re using the “Product advisor” plugin and see any issue with your site now, please disable that plugin in your WP admin backend. We’re speaking with the author of the Product advisor plugin so there will hopefully be a solution soon. = 5.4 = - **Improvements in the SEO friendly versions of product pages, which are indexed by search engines.** This includes optimized product price format, canonical tags and minor adjustments for SEO titles and descriptions. This is another improvement for search crawlers to better index store pages. - **Adjustments for the “All in one SEO” plugin** to make sure it works well with the Ecwid’s new clean URLs. - **Fixed “preg match” PHP warning messages**, which appeared on some sites with the Ecwid ecommerce plugin enabled. - **Fixed an issue with site images in the Newsmag Wordpress theme** — some images were not displayed well with Ecwid. We fixed that so everything should work fine in the Newsmag theme now. - **Several fixes and improvements for the floating minicart widget.** - **Loading speed improvements.** We optimized the plugin code to render store pages and widgets faster. = 5.3.1 = - **Fix for the “Add product” button in the WordPress editor.** The button was broken in the latest version (5.3) — it generated invalid shortcode for the single product widgets. The problem didn’t affect existing product widgets, but the new ones didn’t render. It’s now fixed. If you faced a trouble adding product widgets to your pages and posts, please update the plugin and try again. = 5.3 = - **Fixes and improvements for the new clean URLs functionality.** The new clean URLs for your online store are now more stable and the product pages are more SEO friendly. The changes include: fix in the processing of non-latin characters in the product URLs; adjustment for the sharing metatags on the product pages (rel shortlink meta tags); fix for the store terms&conditions and signin links to make them work properly with the new clean URLs. - **Fix for the Recently Viewed Product widget and the “Minimaze” theme.** The widget didn’t work well in this theme. Now you can use Recently Viewed Products with the Minimaze theme as well as with any other Wordpress theme. - **Layout improvements and fixes for the “Ribosome”, “Edge” and “OptimizePress” Wordpress themes.** If you use one of those themes, you might notice minor layout issues in your e-commerce catalog or in the appearance of minicart widget. The troubles should be fixed now. - **Fixed a “404 not found” issue, when Ecwid is used with the “Sublanguage” plugin.** If you noticed some of your pages respond with 404 errors when Sublanguage and Ecwid plugins are both activated, this update should fix that. - **Improvements for the product pages SEO when Yoast plugin is used on the site.** If you have the new Ecwid clean URLs enabled in your shop and are using Yoast, this improvement should make meta tags and canonical tags work better on your site with the new URLs. = 5.2 = - **Major improvement in the speed of loading storefront.** The plugin now renders ecommerce pages and loads store widgets much more quicker both for your visitors and search engines. - **SEO improvements for product and categories pages when SEO friendly URLs are enabled.** Now a special plain version of the product page content is generated and loaded in background along with a regular product/category page. This new version is formatted to provide product and category information in a clear and understandable format for crawl robots that cannot parse JavaScript — this makes your store indexable by other search engines besides Google (e.g. Yandex). This special version is not visible in a browser, so your customers will as usually get the full store version. Please do not forget to enable new SEO friendly clean URLs to get this working on your site. = 5.1.1 = - **Fixed the “Strict code standards” notices** appearing on some sites with Ecwid plugin enabled. The messages didn’t affect the product catalog and checkout, but looked confusing for the site visitors. We fixed that. The notices should disappear now. - Minor improvement for the SEO friendly clean URLs function. = 5.1 = - **Improved SEO friendly clean URLs tool.** Previously, if you had your store installed on different pages of your site (e.g. different store categories on different site pages), the SEO URLs worked on the main store/catalog page only. Now it should work fine on all pages you add your store to. Please make sure you use the “Add store” editor button when adding your store to the site pages. - **The new categories menu widget is now enabled for every site.** We released the new categories widget in the version 3.4 — it is mobile friendly and looks great with any wordpress ecommerce theme. We made it possible to turn on/off the new widget temporarily to make sure every site would have time to try it before it’s enabled for everyone. Now it’s enabled. If you have enabled it previously, nothing will change for you — your categories widget is already updated. If you have the old categories widget displayed on your site, this update will replace it with the new one. Please let us know if you have any trouble with the new widget. - **Fixes and improvements for the SEO friendly clean URLs option.** We continue polishing the new Ecwid URLs (added in the v.5) to make sure they work well in every store. Have any feedback on your store URLs? Please let us know. = 5.0.7 = - **SEO improvement for canonical tags on the product and category pages.** The Ecwid ecommerce plugin now hides the store root page canonical and dynamically adds corresponding canonical tags to the product and category pages as you browse the store. This is to improve the pages visibility for search engines, when the new clean URLs option is enabled. - **Fixed layout issue in the Wordpress 2017 theme.** We found an issue with the way Ecwid online stores are displayed in the default Wordpress “Twenty Seventeen” theme — the stores pages appeared too narrow. We fixed that. = 5.0.6 = - **Fixed a loading speed issue.** Some sites with the Ecwid ecommerce plugin might have troubles with loading speed, when store categories menu was enabled. We optimized the way Ecwid renders and displays the store categories navigation so the issue should be fixed now. = 5.0.5 = - **Fixed a a bug causing 404 errors on the store page when SEO friendly URLs are enabled.** The issue appeared on the sites where store is placed on the site home page. Now the clean SEO URLs option should work fine regardless of whether you add Ecwid store to your site home page or any other page. - Minor fixes and improvements. = 5.0.4 = - Minor fixes for the new SEO friendly clean URLs feature. = 5.0.3 = - **SEO friendly clean URLs.** This is major new feature that we recommend everyone to enable. We made store pages URLs clean and SEO friendly. The new URLs do not contain hash sign ("#"), which makes your store better indexed by Google. There are less extra characters like '/', '~' or'!', so the page address looks cleaner. As previously, the new product and category pages URLs include product/category titles to make them easily readable both for Google and for your customers. Of course, no page refresh happens when the customer browses your store: the store pages with new URLs work without page reload, as it's been always worked in Ecwid. So, you have your quickly loading store pages with new SEO friendly URLs. To enable the new URLs, navigate to the Ecwid plugin Advanced settings and tick the "SEO friendly URLs" checkbox. Note: the old URLs format is supported as well, so all your existing links will continue to work fine. - **An improvement for the floating cart sidebar widget.** Now, when you add the widget to any sidebar, the widget will displayed on every site page regardless of whether the sidebar is available on that page or not. This makes it easier for your customer to access their shopping cart and check out. - **A few fixes for the integrated search.** Recently we added a new feature that integrates your site search with your store products to list them when your customers use the site's general post/page search. We continue improving it and fixing issues you are reporting. Thank you! - **A few improvements and fixes for the "Add product" button in the WordPress editor** to make it easier for your to add your store products to your site pages. = 4.9.4 = - **The new search widget is now enabled for every site.** We released the new search widget in the version 4.2 — it is mobile friendly and looks great with any wordpress ecommerce theme. We made it possible to turn on/off the new widget temporarily to make sure every site would have time to try it before it’s enabled for everyone. Now it’s enabled. If you have it enabled previously, nothing will change for you — your search widget is already updated. If you have the old search widget displayed on your site, this update will replace it with the new one. Please let us know if you have any trouble with the new widget. - **Fixed a minor issue with displaying store control panel on the Ecwid Dashboard page in Wordpress admin backend**. The control panel previously might be displayed with a horizontal scrolling. We fixed that — it should look fine now. - Layout fixes for the ZeroGravity Wordpress theme. = 4.9.3 = - **Fixed an issue with erroneous “Restore backup” messages in the editor in Wordpress admin backend.** One of the recent changes in our plugin made the WordPress editor display messages like “The backup of this post in your browser is different from the version below.” In fact, the messages did not mean there was a change that had not been not saved. The restore backup messages are normally hidden by Wordpress, but one of our CSS changes (editor page layout tweaks) made them appear. All your data is safe and the warning messages were displayed by mistake. We fixed them now and they should not appear anymore. = 4.9.2 = - **Improvements and fixes for the new "Add product" button in the Wordpress editor.** We recently added a tool for inserting a product from your store to any page or post on your site. In this update, we polished the tool look and feel, fixed a few issues and improved performance. To try it, click the "Add product" button in the editor in your Wordpress admin backend. - **Fixed an issue with the "Screen options" and "Help" Wordpress menus in the page editor in Wordpress admin backend.** Those Wordpress functions were slightly affected by the new "Add product" functionality of the Ecwid e-commerce plugin and might not work well. We fixed that. Everything should work properly now. - **A few fixes for the new integrated search functionality.** Feel free to enable and try the new search feature on the plugin settings (Ecwid Store -> Advanced) — it will make your store products available in your site regular pages/posts search. = 4.9.1 = - **Fixed an issue in the new integrated search functionality** causing javascript errors on site pages where no store widgets are installed. Feel free to enable and try the new search feature on the plugin settings (Ecwid Store -> Advanced) - **Improvement for the Single Sign On.** If you have Single Sign On (SSO) enabled in the plugin settings and your customer do not have name specified in their profile, the store account will use their nickname as the firstname. This will make store more friendly for your new buyers. (edited) = 4.9 = - **Integration with Wordpress search**. This new feature will make your ecommerce site search find store products among other site pages and posts. So, when your customer searches for something on your site, they will see both site content and store products in the search results and will be able to navigate directly to the product pages from there. Please enable it on the Ecwid/Advanced settings page in your Wordpress backend and do not forget to click "Synchronize products" link. The feature is now in beta stage and we are actively improving it. So if you face any trouble with it, please let us know. = 4.8 = - **New "Add product" button in the Wordpress post and page editor.** Now you have a useful and easy tool to place a product from your store on any page or post on your site. Just open any post or page in your Wordpress admin panel, click the "Add product" button in the editor, select the product you want to see on that page and click "Insert" – a product widget will appear on that page after you publish the chnages. The new "Add product" popup allows customizing the appearance of the widget so you can choose whether you want to see the picture along with title, price and quantity selector or just a simple Buy now button. Product widgets that you put on your site are seamlessly integrated with your store and shopping cart — wherever you place a product or buy now button on your site, the customers will be able to add it to the cart and proceed to checkout as if it was a regular store page. We recommend using product widgets and buy now buttons on every page or post where you mention the products or services you sell – this way you will provide an easy and natural way for a customer to know more about the product and buy it from the same page, be it a blog post, an "About" page, a testimonial or any other page on your ecommerce site. Enjoy! = 4.7.6 = - Fix for the legacy search shortcode ([ecwid_searchbox]), which was broken in the recent 4.7.5 release. = 4.7.5 = - **A few enhancements for the Wordpress brand new "Twenty Seventeen" theme.** Ecwid store page in that theme will look better with this update – we made the page layout a bit wider to make sure it's convenient for your buyers to navigate the catalog. - **Another improvement for the new Ecwid single product widget.** Now it's possible to use the "center_align=1" parameter in the shortcode to make the widget center aligned on the page. You may want to use that if you place one product widget per page – in this case, it will look better when center-aligned. An example shortcode: [ecwid_product id="12345" version=2 center_align=1]. Do not forget to replace 12345 in this example with the actual product ID. - Minor fixes for the "Trend" Wordpress theme. = 4.7.4 = - **WordPress 4.7 and Twenty Seventeen theme compatibility.** The new WordPress version with the 2017 theme is coming soon. Ecwid shopping cart plugin is ready for the upcoming changes – everything will work well. Feel free to upgrade your site to WordPress 4.7 as soon as it's released and try a new theme. - Minor fixes and improvements. = 4.7.3 = - **Improvements for the new Ecwid’s single product widget.** Now it's possible to use the "show_price_on_button=0" and “show_border=0” parameters in the shortcode to disable the price on buy now button and widget border respectively. If you want to hide the widget border, for example, the resulting code will like this: [ecwid_product id="12345" version=2 show_border=0]. Do not forget to replace 12345 in this example with the actual product ID. - Fixed a bug with the floating shopping cart: the floating cart widget didn't appear on some rare Wordpress themes, we fixed that. Now it should work fine. = 4.7.2 = - **Added support for the Ecwid’s improved single product widgets.** To feature a single product on a separate page or blog post of your ecommerce site, you can use the [ecwid_product] shortcode. We improved the look and feel of the single product widgets in Ecwid and added those improvements to the single product shortcode version #2. You can use it like this: [ecwid_product id="12345" version=2]. Do not forget to replace 12345 in this example with the actual product ID. - **Fixed error messages appearing on some Wordpress sites with the "Trend" theme installed.** If you use Ecwid shopping cart with Trend theme and recently noticed an error message in your site admin backend, please use this update this update – it should fix that issue. = 4.7.1 = - Fixed a few warning messages appearing on some sites with the new version of the plugin. = 4.7 = - Fixed a layout issue in the floating cart widget in the "Mobius" WordPress theme. - Fixed a few issues with the Single Sign On functionality in the plugin. - Improvements for compatibility with GravityView plugin. You can use that plugin and Ecwid ecommerce shopping cart together – they should work with no issues. = 4.6.3 = - Fixes infinite loading issue that occurred under certain store configurations. = 4.6.2 = - Fix for the legacy search shortcode ([ecwid_searchbox]), which was broken in the recent 4.6 release. = 4.6.1 = - The latest update (v 4.6) had a bug in the sidebar widgets (search box and recently viewed products). The widgets did not display and generated error/warning messages on the sites. We fixed that. - Another issue with the latest update is related to the legacy Ecwid shortcodes ([ecwid_script], [ecwid_productbrowser] etc). On the old installations (2 years old and more), the warning messages appeared – you might notice them on the store page. We now fixed this and everything should be fine, all Ecwid plugin installations work well. = 4.6 = - **Compatibility with the "Contact form 7 designer" plugin** . When installed, the "Contact form 7 designer" plugin adds its own code to the <html> and <body> tags on the page on every page of the site. This conflicted with Ecwid storefront styles. We fixed that – now if you use the both plugin t the same time, your site pages styles should work fine. Note: this plugin is not the same as the popular "Contact form 7". Ecwid ecommerce functionality works well with the latter, so don't worry if you use it on your site. - **Fix for a store links issue in the "Flora" theme by Wyde.** Users with "Flora" theme on their sites reported that there are glitches in the way Ecwid online store links behave in that theme. We fixed that – Ecwid now works well with "Flora". - **Compatibility with the "Trend" Wordpress theme.** Ecwid shopping cart is designed to work great with all WordPress themes. However, we sometimes see that Ecwid has troubles working with some AJAX-driven WordPress themes. We found a way to fix this and started working on improving the plugin. With this release, the Ecwid plugin becomes compatible with the beautiful "Trend" theme. We'll get to the other AJAX themes in the future releases. If you find a theme that Ecwid has troubles with, please let us know – we'll fix that. - **Fixed a bug with the store menu item duplicates.** In a recent update, we fixed duplicate Store pages appearing when you deactivate and re-activate the plugin several times. In this release, we fixed a similar bug with the "Store" menu items. However often you enable/disable the plugin, the site navigation menu now works properly, keeping a single Store link, unless you deliberately add a few shop links to the menu (e.g. to have store category links in the menu). - Minor improvement and fixes to make the plugin more stable and user friendly. = 4.5 = - **Update in the Single Sign On Module (Ecwid SSO).** Single Sign-On allows your customers to have a single login for your WordPress site and your Ecwid store. We updated it to use the latest Ecwid ecommerce APIs to make it more convenient for you. Now the module doesn't require a separate API key – it works seamlessly with no extra setup. - **Compatibility with Divi builder editor.** Divi builder adds a nice WYSIWYG editor to the Wordpress admin. Ecwid shopping cart now is compatible with that editor – so you can add Ecwid store shortcode right from the Divi builder editor, no need to switch back to the default Wordpress editor if you prefer to use the Divi's one. - **Fix for a bug in the store appearance popup.** The store widgets settings were hidden when the "widgets" part was manually removed from the Ecwid shortcode in the page editor in Wordpress admin. We fixed that, now the settings popup should work fine. - **Slight improvements in Chameleon.** The "Chameleon skin" option in the plugin Advanced settings automatically adjusts the store texts and styles to match those of your site. We continue improving it so that it works better with all sites. - **Fixed a bug with store pages duplicates.** Previously, an extra Store page was created each time you deactivated and re-activated the plugin. It's fixed – now the Ecwid plugin remembers the store page and use it however often you deactivate/activate the plugin. - Slight layout improvements for the stores embedded into sites with Salient theme installed. = 4.4.5 = - **Minor fixes and improvements.** = 4.4.4 = - **Minor fixes and improvements.** = 4.4.3 = - **Minor fixes and improvements.** = 4.4.2 = - **Fixed a few layout issues in the categories menu layout and the "Store root categories" widget.** Both wigets should look good now on any site and let your customers navigate your store easily. If you find any issue in the categories navigation in your store, please let us know. - **Fixed an issue for meta title and description fields (SEO) for the sites with Yoast SEO plugin installed.** The issue appeared on the sites where the store is installed on the main (home) page – meta title and description didn't work properly. We fixed this. Ecwid shopping cart plugin is totally compatible with Yoast SEO so we recommend using them together to make your store more visible in search engines. = 4.4.1.2 = - Fixes PHP warning messages appearing on some server configurations. = 4.4.1 = - **Fixed notice/warning messages that appeared in rare cases in a sitemap generated by 3d-party Sitemap/SEO plugins.** Now sitemaps should be generated without any error messages. Here, you can find the plugins we recommend to generate a sitemap on your Wordpress site: https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-#productstositemap - **Added a few improvements to the plugin code to work better on servers with PHP7 installed.** If your hosting is going to migrate your site to PHP7, you can rest assured Ecwid eCommerce plugin will work fine in new environment. - **Fixed an issue with the "Default category" drop-down in the store page appearance settings.** You might notice that the Default category list in the store page settings didn't show a category if you just created that category in your online store. We updated this tool so that it faster reacts on creating new categories. - **Fixed an issue with price display in the Recently viewed products sidebar widget.** You might notice that the Recently Viewed Products widget didn't display product prices on your site – we fixed that. = 4.4 = - **New store categories sidebar widget.** The new categories widget displays your online store root categories list in the site sidebar to let your customers navigate the store easily. Compared to the legacy sidebar categories widget, the new one fits your site layout perfectly – its style is fully based on your theme fonts and styles and looks good on any device and screen size. Find it under Appearance->Widgets->Store Root Categories. - **Fixed an issue with the categories list in the page default category option.** Ecwid Ecommerce plugin allows you to define a store category shown by default when a customer opens the store page. This could be used to feature some part of your products or display different categories on different site pages. In some cases, the drop-down selector of categories in this tool didn't have the actual categories list from your store (e.g. when you add a new category). We fixed this. You can continue using this tool – it should work good. - A few minor fixes and improvements. = 4.3 = - **New Minicart Widget.** We added a new floating minicart widget. You can enable it on the "Appearance -> Widgets" page in you Wordpress backend. The new search widget appears as soon as a customer adds something to the cart and resides at the top right or bottom right position on the screen so that the customer always sees it and can easily proceed to checkout. The minicart widget also contains a counter displaying the number of products in the cart. Feel free to add it to your site – it's free! - **Look and feel improvements and minor layout fixes in the themes Zerif-lite, Storefront, Pixova-lite and Accesspress Mag.** Thanks to the Chameleon skin feature we released a few months ago, Ecwid looks good with every Wordpress theme. Now it became even better in these four popular themes. - **Fixed a bug on the category pages in mobile view.** In some Wordpress themes, click on category icon returned an error and got customer back to the category listing page, when the store was opened from a mobile device. We fixed that and now there shouldn't be any troubles with viewing your shop on mobile devices. - **Fixed a bug preventing Ecwid plugin working well with the Envira Galleries plugin.** Those of you using Envira Galleries on the site might notice it doesn't work properly on the pages containing Ecwid. We fixed that, you can now use the both plugins, they should work fine together. - **Improved the plugin settings page footer.** It now includes a link to the mobile app page inside Ecwid Control Panel, which significantly simplified the Ecwid mobile apps installation. - **Fixed a few more minor bugs on the plugin settings pages.** We're constantly improving the plugin settings pages to make store managements as convenient as possible. If you find any trouble working with your store in the plugin, please let us know. = 4.2.1.3 = - Fixes for the perfomance issues on some sites. = 4.2.1.2 = - Fixes an error appearing on some sites with the previous version of the plugin. = 4.2.1.1 = - Fixes for a few warning messages appearing on some sites with the new version of the plugin. = 4.2.1 = - **New Help page in the plugin settings.** We have a lot helpful articles and ecommerce tips in the Ecwid Help center at help.ecwid.com. In this update, we made it closer to you – the Help page with FAQ and a simple search field is now available right in the plugin settings. Have a question about your online store? Refer to the new Ecwid->Help page in your Wordpress admin backend. - **Better compatibility with Accesspress Store and Sliding Door themes.** We adjusted Ecwid storefront look a bit to better match these Wordpress themes layout and fonts. - **Fixed a bug in the product page titles.** You might notice that the product page titles repeated the product name twice. We fixed it. = 4.2 = - **New Search Widget.** We released a new search widget that’s vastly improved over the previous one. You can enable it on the "Ecwid -> Advanced" settings page in your Wordpress backend. The new search widget is fully adaptive, automatically fits in its parent section, and looks great with any ecommerce theme. It also fits your sidebar even if it's very narrow, so feel free to add product search to your site sidebar in the "Appearance -> Widgets" section of your site admin. - **Fixed a bug in the categories menu on mobile devices.** You might notice that the product categories menu disappeared on your site when it's opened on a mobile device with narrow screen. It's now fixed – the categories menu looks great on any screen size. - Bug fixes and improvements for the Recently Viewed Products widget. = 4.1.3 = - Improvements for the plugin Dashboard page layout and a few minor fixes. = 4.1.2 = - **Ecwid mobile apps badges of the dashboard page.** We made a facelift for the plugin dashboard page footer and included mobile apps badges there to make it easier for new users to find and install Ecwid ecommerce mobile applications for iPhone, iPad and Android. Why bother to install it? It allows you to manage your store and sell on the go. - **Fixes for the embedded store Control Panel.** There were issues in the store control panel when the Wordpress site was hosted on a server with incorrect system date set. We made the plugin tolerant of this kind of hosting issues – the embedded ecommerce Control Panel should now be displayed fine on every server. - **A fix for the Advanced settings page in the plugin backend.** In some rare cases, the advanced settings page in the plugin didn't show the Chameleon option, which enables auto adjustment of the store layout. We fixed that and the Chameleon option is now available for every user. A good moment to try it, if you haven't yet. - A few miscellaneous fixes and improvemens in the plugin core. = 4.1.1 = - **Layout improvements for the Accesspress-mag theme.** Accesspress-mag theme users might notice slight glitches in the store buttons. We fixed those. - **Added the page default category dropdown for free users.** When you add a store on your site page, you can set the store category to be displayed on that page. This "default category" tool was previously just a text input where you were supposed to put the category ID, if you're on free Ecwid plan. Now it's a dropdown menu so you can easily select a store category for each page. It's very useful if you want to display different categories on different pages of your site. - Minor bug fixes and improvements = 4.1 = - **Product images are included in the sitemap generated by the Yoast SEO plugin.** Ecwid is integrated with popular SEO plugins: Yoast SEO and Google XML Sitemaps, which allows merchants to generate a sitemap containing the links to their products and categories. Now, the sitemaps generated by Yoast SEO will also automatically include links to the product images. This will make Google better index your products pictures and list them in the search results. - **Ecwid plugin now supports oEmbed discovery.** As of version 4.4, WordPress supports oEmbed. In short, that's a tool which makes a link to a post or a page of your site looks nice when pasted on another site supporting this. Ecwid ecommerce plugin now supports it too, so if you paste a link to your store page on any other oEmbed-empowered site (e.g. another Wordpress site), it will automatically displays a nice widget with the page title and a list of your store categories. - Fixes and improvements for the storefront widgets and for the plugins admin pages. = 4.0.7 = - **Fixed a problem with connecting to the Ecwid API on the servers with misconfigured or outdated CURL.** Some servers couldn't connect to Ecwid from to display the Ecwid Control Panel inside Wordpress backend. That caused a "Connection problem" error message, which some of Ecwid users saw in their Wordpress admin section. We added a fix that should resolve this problem and make the Ecwid Ecommerce Control Panel inside Wordpress work OK for those users. - Improvements for the new drop-down categories store menu added in the version 4 of the plugin. If you haven't tried it yet, go check it out in the Appearance -> Menus settings of your site. - Fixes and improvements for the plugin settings pages. = 4.0.6 = - **Fixed a bug affecting the links in store sidebar widgets.** The bug appeared in the version 4.0.5. It’s now fixed and all categories/cart/search links should work OK = 4.0.5 = - **Updated SEO Titles and Meta Descriptions.** Google recently launched a new crawling schema to better index rich AJAX sites and applications like Ecwid, which is a great news for all Ecwid users. We're keeping an eye on this and help Google improve indexing of all Ecwid stores. In this update, we made the product/categories page titles and descriptions change on the fly (with no page reload) so that Google will index them better. No action is required from your side – we will continue improving how your online store appears for Google to make sure your products and categories will get to the search results. - **Fixed a bug affecting the "Re-connect Ecwid account" link.** The "Disconnect the Ecwid store and connect to another one" link at the bottom of the plugin dashboard now works fine. - **Fixed a bug affecting the sites with enabled JetPack's "Spelling and grammar" module.** The Ecwid ecommerce plugin v4 conflicted with that spelling module from JetPack, which affected the process of a publishing new posts and pages. Now it's fixed. Posts/pages publishing should work OK for all users. = 4.0.4 = - Fixed an issue affecting site preview in Wordpress Customizer in some themes. Now the preview in the customizer tool should work fine. = 4.0.3 = - Fixes for a few warning messages appearing on some sites with the new version of the plugin (v4). = 4.0.2 = - **Built-in Full-featured Store Control Panel.** You can now manage your store, add new products, track sales and more right in your Wordpress site admin backend. No redirects, no external dashboards, no extra login/password – you now have a single place and single login to manage your site and your store. To make it even better, we added the Products and Sales shortcuts to your Wordpress admin menu – feel free to use them to easily access your inventory and sales list. - **New Drop-down Categories Menu.** Noticed how WordPress automatically updates your site menu adding your site pages to it? Ecwid now does it too: open "Appearance -> Menus" in your Wordpress control panel and add the "Store with Categories Menu" item to your site menu. A drop-down menu containing your store categories will automatically appear on your site. It will keep the categories list up to date even if you often change your store categories. Rest assured your customers can easily quickly get to the category of products they are interested in right from the site menu. - **More Store Menu Items for your site.** In addition to the drop-down categories list, the new "Store" menus section under Appearance -> Menus provides "Search", "Cart" and "My Account" items. Add those quick links to your site for your customers to browse your store easier. - **Bug Fixes and Improvements.** As usual, we fine-tuned the plugin and fixed a few bugs. We wish you happy holidays and all the best in the New Year! Sincerely yours, Ecwid team. = 3.4.7 = - Fixed a few layout issues in three popular Wordpress ecommerce themes: Responsive, Attitude, ResponsiveBoat. - Added a fix for the bug in WordPress editor, which corrupts the schema.org-formatted HTML codes. This should prevent the editor from corrupting Ecwid single products widget codes and other HTML snippets containing schema.org / microdata formatting. = 3.4.6 = - **Layout improvements for Mantra theme.** Mantra theme users might notice slight glitches in the recently viewed products and horizontal menu widgets. We fixed those. - **Minor fixes for plugins settings page layout in Wordpress 4.4.** Feel free to update your Wordpress to the newest version 4.4 as soon as it's released, the Ecwid plugin will work fine with it. = 3.4.5 = - Updates and bug fixes for the new horizontal categories widget. - Fixed a layout issue in the "Categories" block on the store page management in the Wordpress admin backend. - Improved store connect functionality for the servers, which may have troubles connecting with the Ecwid API. - A few minor bug fixes and improvements to make the plugin more stable. = 3.4.4 = - **Added compatibility with the "Add Meta Tags" plugin.** The "Add Meta Tags" plugin is a popular tool to set SEO meta tags on site pages. Previously it rewrote the titles and description that Ecwid generated for search engines on your site. It's now fixed so if you use the plugin, everything should work fine and Google will index your products pages properly. - **Fixed a problem in the recently viewed products widget caused by Autoptimize plugin.** Previously, if Autoptimize plugin is used on the site, the recently viewed products widget reset the displayed products when page reloads. We fixed that. - **A few internal improvements** to make the plugin more stable and ready for the upcoming cool features. Stay tuned! More updates are coming. = 3.4.3 = - Updated Italian and Turkish translations. = 3.4.2 = - Fixed option to enable the new categories widget released in the v.3.4 . = 3.4.1 = - Minor fix for the "Twenty Sixteen” Wordpress theme = 3.4 = - **New look for the categories menu widget.** The old Ecwid categories menu widget (horizontal categories) was created long time ago and has been working in thousands of Ecwid stores. However, it doesn't adapt itself for the customer screen size as well as the other Ecwid widgets do. This has been always be a problem for responsive sites which look good on mobile devices. The new widget is fully responsive and looks great on mobile devices. To enable the new look of the categories widget on your site, navigate to Ecwid plugin settings -> "Advanced" tab and tick the "Enable the new category menu" checkbox. Once enabled, it will your store menu widget to the new look. If you don't have this option on the Advanced page, that means you installed the plugin after this change and the new categories are already enabled in your store. Enjoy! - **Bigger product images for search engines.** The plugin used to generate small product thumbnails on special store pages for search engines. Now it displays the original large product pictures there to assure better indexing of your product images in Google. Please make sure you're on one of Ecwid paid plans to make your products along with the pictures indexable by search engines. - **A few improvements and fixes to make plugin perfectly compatible with Wordpress 4.3 and the new Twenty Sixteen Wordpress theme.** Please feel free to update your sites to the newest Wordpress version, if you haven't yet, and try the brand new Wordpress theme (Twenty Sixteen) – your store should work OK with them. - **Fixed SEO issues on the sites with Genesis theme.** The Genesis theme places a special 'canonical' tag on each site page to improve the SEO of the pages. This in some cases conflicted with Ecwid ecommerce plugin. We overcame this from our side and now the plugin is compatible with SEO features of Genesis theme – your online store should be better indexed by search engines with this improvement. - **Fixed a bug with duplicate store pages that appeared if the user re-installed the plugin.** If you for some reason need to remove the plugin and install it again, everything will work smoothly now with no extra store pages drafts. - **Improve the search widget layout.** On a lot of Wordpress themes, the product search widget was displayed with 100% width, which makes the search input all-page-width. We fixed that and now it looks better. - Minor improvements and bug fixes. = 3.3.1 = - **Small improvement for "Twenty Twelve" WordPress theme.** The default drop down menu stayed open after clicking Ecwid links sometimes. We adjusted our plugin to work around this issue. - **Fixes of PHP notices.** In some cases the plugin caused some PHP notices or warnings to appear on screen if the site was run in debug mode. Although it did not cause any malfunction in plugin operation, these messages could be quite annoying. We fixed it. = 3.3 = - **Improved Single Sign On functionality.** Single Sign On module has been available in Ecwid ecommerce plugin for a while – it makes it possible for your customers to sign into your Wordpress site and fully use the Ecwid store installed on the site without having to sign in to Ecwid. Now we added a few improvements that should make the feature more useful. In particular, the Ecwid's "Sign in" link was usually hidden when Single Sign On is used, supposing a customer should use the Wordpress login functionality. Now, we made the link visible and redirecting to the Wordpress login form to avoid confusing the user who otherwise has to look for the area to login. - **Storefront layout improvements for the "Evolve" WordPress theme.** We adjusted Ecwid plugin to better integrate with a popular and beautiful free Wordpress theme – Evolve. In particular, we fixed the borders appearing around every storefront element in this theme. Ecwid stores now look a way better on WordPress sites with Evolve theme to provide better customer experience on any device and to generate more sales in your store. - **Compatibility with Autoptimize plugin.** One of Ecwid users recently reported an issue – the plugin doesn't work well on the sites with Autoptimize plugin installed. We fixed this in our plugin – it is now working well with Autoptimize. Feel free to use it on your site. - **Improvements for Recently Viewed Products.** We included a few improvements and bug fixes for the recently viewed products widget in this release. - **Fixed a bug in the "Add store" button in Wordpress editor.** The authors of Easy Image Collage plugin recently discovered a problem in the way Ecwid "Add store" button interacts with the other custom button in the Wordpress WYSIWYG editor. It's fixed now. Thanks to Easy Image Collage team. - A few improvements in the Chameleon skin tool. = 3.2.2 = - Fixed a few minor bugs in the Chameleon skin feature = 3.2.1 = - Fixed an issue in the new "Chameleon skin” tool that could affect font styles on the site. = 3.2 = - **New "Chameleon skin" tool (beta).** You can use it to adjust your online store styles to fit your Wordpress theme. Whatever Wordpress theme you use, Ecwid ecommerce plugin will detect predominant colors and font and use them in your product catalog. The feature is by default disabled on the existing accounts to make sure the update will not affect your storefront. To enable it on your site, open the "Advanced" page in the Ecwid plugin settings and tick the "Chameleon skin" checkbox. The feature is in beta so if you find any troubles with it, please let us know. - **Pre-populate Ecwid registration form fields with user Wordpress profile data.** When a new user installs the plugin and registers an account at Ecwid, the registration form will contain the name and email prefilled to make it easy for the merchant to create a new store and install it on their site. - **Improvements of the plugin settings pages to make them look good on mobile devices.** If you manage your Wordpress site from a phone or tablet, feel free to check the store settings there – Ecwid plugin settings pages now work better on mobile. - Fixed an intermittent issue with the default category option in the store appearance settings. = 3.1 = - **New recommendations block in Wordpress Dashboard.** Every Ecwid user has access to a lot of built-in features and third party applications that can be used to extend the store functionality and attract more sales. To make those features more visible and inform you of the new and existing tools you can use in your store, we added a new "Recommendations for your store" widget to the dashboard page in your Wordpress backend. We will update the content of this ecommerce widget from time to time to provide more actual advice and inform of the new applications and features, so stay tuned. - **Storefront layout improvements for the "Customizr" WordPress theme.** Ecwid plugin is by design compatible with any theme and looks good on any device and screen size your customers use. In this update, we adjusted our plugin to better integrate with one of the most popular free Wordpress themes – Customizr. Ecwid stores now look a way better on WordPress ecommerce sites with Customizr themes to provide better customer experience on any device and to generate more sales in your store. - **Added German translations to the plugin settings pages in Wordpress admin backend.** Thanks to Stefan Wagner for the great job on the plugin translation. - **Improved Italian translations for the plugin settings pages.** Big thanks to Luciano Delfico who has contributed a lot of Italian translations to Ecwid. - **Improvements for Recently Viewed Products.** We rolled out a few improvements and bug fixes for the recently viewed products widget. It now displays a link to the store page when there are no products in the list; the thumbnails pictures shown in the sidebar are now of the better quality; the currently opened product is now not displayed in the list if there are other recently viewed products. - **Slight improvements in Single Sign On functionality.** If you use Single Sign On, the plugin will now send user first name and last name along with user email to your Ecwid store when a new user is registered on your site. This allows you to make tighter integration of your site and your Ecwid store – your customer name will appear at checkout automatically if they enter their name on your site. - **Fixed an invalid meta description bug**, which appeared in some rare cases when product description contained special characters. - **Fixed a bug in XML sitemap generation.** Some users faced a problem with XML sitemaps generated by Ecwid for Yoast SEO plugin (malformed product pages URLs). It's fixed. You can use Yoast SEO plugin to make your products listed in your XML site map. - A few improvements in the plugin settings pages layout. = 3.0.2 = - Fixed a few issues in the recently viewed products widget = 3.0.1 = - Added Russian translation of the new plugin settings and registration pages - Temporary fix for low quality images in the recently viewed products sidebar widget - Fixed a few layout issues on the new registration page in the plugin backend = 3.0 = - **New sidebar widget: Recently Viewed Products.** A new Ecwid's sidebar ecommerce widget is now available – your site can now show the products that the customer has recently visited. The links and images in the sidebar are updated automatically, so the customer can return to the product they previously opened and probably decide to buy it. This will increase visibility of your products for the customers and generate more sales. Enable the new widget under Appearance->Widgets menu in your admin backend. - **New design of the plugin Dashboard.** The dashboard ("Ecwid") page in the plugin backend is now nicer and more useful. - **Completely redesigned Registration page.** This is for the new users of the plugin. When installing the plugin, a user will now see a beautiful welcome page that will introduce them to Ecwid and guide through the setup process. - **New easier store connection.** Previously, to connect an Ecwid store with a Wordpress site and display store products, a new user had to copy and paste their store ID from Ecwid Control Panel. Now, even this easy step became easier – the user only needs to click a few buttons to authorize themselves and the plugin will automatically detect and connect their store. For those with technical background: we use oAuth2 for this, which is now a part of the newest Ecwid API. = 2.8 = - **Integration with the XML sitemap functionality of Yoast and All in One SEO Pack plugins.** Ecwid has been integrated with Google XML Sitemaps plugin allowing you to generate a sitemap containing the links to your products and categories. Now, the sitemaps generated by Yoast SEO and All in One SEO plugins will also include online store pages, if you're on a paid Ecwid plan. - **Improved design of Ecwid sidebar controls in the Appearance/Widgets page in Wordpress backend.** Store sidebar widgets controls are now more noticeable and responsive. - **Improved compatibility with the Cloudflare's Rocketloader.** Rocket loader tool sometimes blocked Ecwid scripts from loading. We added another improvements to prevent such issues. - **Fixes and improvements of the meta title tag generation on product and categories pages.** - **A few minor fixes and adjustments.** = 2.7.4.1 = - Additional fixes for the "title" tags on product pages following the 2.7.4 version's updates. = 2.7.4 = - Improvements of 'title' and 'canonical' meta tags generation. The update prevents incorrect meta tags appearing in some WordPress themes in WordPress 4.1 = 2.7.3 = - Several bug fixes and minor improvements for the new "Add Store" button in WordPress Editor = 2.7.2 = - **A new sidebar ecommerce widget: Ecwid Store Page Link.** The widget adds your store page link to the site's sidebar. You may want to use it with blog-focused WordPress themes that don't have a navigation menu, e.g. the upcoming "Twenty Fifteen" theme. Also, you can consider adding the widget to your sidebar to make your store page more visible to your visitors. - **Wordpress 4.1 and Twenty Fifteen theme compatibility.** The new WordPress version is coming soon and bringing a brand new 'Twenty Fifteen' theme. Ecwid plugin is now totally ready for the upcoming changes and will work OK in the new environment. Feel free to upgrade your site to Wordpress 4.1 as soon as it's released. - A few minor improvements and bugfixes for the new "Add Store" button released in the version 2.7 = 2.7.1 = - Fixed a few issues with the store appearance settings that were discovered in the recently released update (v2.7) = 2.7 = - **A brand new 'Add store' tool in WordPress editor toolbar.** Ecwid is now integrated with WordPress WYSIWYG editor: click the 'Add Store' button in the page editor toolbar, chose widgets to show, adjust the appearance and place your store on any page of your site. Now you can decide what store widgets to show and configure store appearance right in the page editor. - **New "[ecwid]" shortcode.** The new ecommerce shortcode allows you to control every aspect of your store appearance by means of tweaking the shortcode parameters right in the store page code. Display/hide the search widget, choose the minicart layout you like, display different store categories on different site pages and so on. This shortcode serves the "Add Store" button mentioned above and almost every tweak is available in the new "Add Store" window so you don't have to edit any code in most cases. Still, an advanced Wordpress user may consider using shortcodes for more flexible and quick integration. - **Improved behavior of single product widgets.** If you put a single product widget on your site using the [ecwid_product] shortcode, you might notice that it opens a popup with the customer cart when a customer purchases the product. Now single product widgets are smarter: when the customer decides to buy a product and opens a cart page, the main store page on your site will be opened providing the customer with the built-in cart&checkout functionality. The checkout layout will fit better your site design and provide better buying experience when it's embedded into a page rather than in a popup-like window. - **Fix for the Envision theme.** The Envision theme didn't display Ecwid widgets properly because of a custom page content generation it uses. We issued a workaround from our side to let all Envision users install and use Ecwid plugin on their sites. If you use Envision theme and want to set up an online store on your site, go ahead and install Ecwid ecommerce plugin, it will work OK for you. - **Fixes of PHP notices.** Some of Ecwid users discovered a few PHP notices (warnings) on their site referring to the Ecwid plugin. Although those didn't break anything, they could be quite annoying. We cleaned up the plugin code to get rid of those warning messages, now the plugin should work without any odd message. = 2.6 = - **Ecwid's new SEO URLs compatibility.** The new Ecwid clean URLs have been released a few days ago for all Ecwid users. Our WordPress plugin is already fully compatible with the new URLs. Your online store pages will be better indexed by search engines and the search results will look more attractive as the links themselves will mention the product/category they lead to. Of course, Ecwid will handle all redirects, backward compatibility with the old URL scheme and avoid any duplicate issues. Enjoy the new SE-friendly URLs with no trouble. - **Improved formatting of product snippets markup.** In this update we tidied up in the product HTML representations generated for search engines and fixes a few issues in the products data markup. In particular, the price and availability tags have been re-formatted according to the Google recommendations to ensure better search engine results. - **A few improvements and fixes for Twenty Fourteen and Responsive themes layout.** Ecwid looks nice on the vast majority of WordPress themes. Additionally, we strive to make it look even better on the most popular themes. This update brings a few more minor layout fixes for the sites with "Responsive" and "Twenty Fourteen" themes installed. = 2.5 = - **Extended compatibility with the "Responsive" WordPress theme.** Ecwid ecommerce plugin is by design compatible with any theme and automatically adapts itself to any layout and screen size. This makes your store looks good on any device your customers use. One of the most popular free themes for Wordpress -- Responsive -- is also famous for its responsive design. In this update, we adjusted our plugin to better integrate with Responsive theme and Ecwid stores now look a way better on WordPress sites with Responsive themes to provide better user experience on any device and to generate more sales. If you're thinking which WP theme to choose for your site, you should definitely try the "Responsive" theme with Ecwid. - **Added compatibility with WordPress 4.0.** WordPress 4.0 is just around the corner and we already prepared our plugin for it. We enhanced the plugin installation process to be compatible with the new plugins management coming with WordPress 4.0 and tested every plugin's function to make sure your stores are ready for the upcoming WordPress update. - **Automatic store page recovery functionality.** Some Ecwid users previously faced issues when they deleted or replaced the plugin's generated store page on their Wordpress sites. We added a smart mechanism to Ecwid plugin to automatically detect such situations and prevent any possible troubles connected with them. Now, it you decide to move your store from one page to another within your Wordpress site or temporary hide your store page, the plugin will detect that, find an alternative store page on your site (if any) and keep the links and all the store functionality working OK regardless of whether you currently have a new store page or not. So, whatever update you're making on your site pages, you can rest assured your Ecwid store works fine, be it the product browser, single product snippet or a sidebar widget. - **Fixed broken link in single product widgets.** We fixed a minor issue with broken links in single product ecommerce widgets, that was reported to us recently. You can add a single product to any page of your site as usually by means of [ecwid_product] shortcode -- everything will work fine. All existing single product widget will continue working as well -- no actions is required from your side. - **Fixed a few layout issues on the plugin's setting pages.** During the recent updates, we were improving the plugin setting pages interfaces. This update brought a few more fixes to the plugin settings pages to make them more user-friendly. - **Several fixes for old WordPress versions.** WordPress is often updated with new features and bug fixes. Still, there are some merchants who use the old versions. While encouraging everyone to update their sites regularly, we want our plugin work great for all users. So, in this update, we added a few fixes addressing issues in the old Wordpress versions (2.8 - 3.1) = 2.4.3.2 = - **Onboarding for the new plugin users.** Ecwid ecommerce plugin now displays new helpful messages when you set up your store and configure the setting. The messages guide the new users through the setup process and provide helpful tips and recommendations. - **Improvements in the plugin settings pages and messages.** We updated the texts and styles of the messages displayed on the settings pages. They became clearer and more user-friendly. - **Minor optimizations for search engines** including tidying up of the product pages 'meta' descriptions tags and fixing potential issues in compatibility with Yoast SEO plugin. This is to ensure better indexation and appearing of your online store products in the search results. - **Several minor fixes and enhancements** - **Added in 2.4.3.1:** fixed incompatibility of the plugin v2.4.3 with the servers running PHP 5.2.x - **Added in 2.4.3.2:** additional fix for the outdated PHP versions (5.2.x) = 2.4.2 = - Minor issue is fixed on the plugin's "General settings" page = 2.4.1 = - Added compatibility with the new versions of "Google XML Sitemaps" plugin (v4.0 and higher) = 2.4 = - **Ability to add a single product to a page or post on your site using new [ecwid\_product] shortcode.** In addition to embedding a whole product catalog on your Wordpress site, you can also feature a single product on a separate page or blog post of your ecommerce site and allow your customers to purchase the product right from that page. To embed a product on a page or post, add [ecwid\_product id="12345"] shortcode to the page/post in your Wordpress backend. Do not forget to replace 12345 in this example with the actual product ID. - **Better SEO for store pages.** Ecwid plug-in now automatically adds product attributes to SEO-optimized versions of product pages on your site to let the search engines index attributes like UPC, brand and others along with the other product properties. Also, some improvements were applied to the format of product HTML snippets to meet the Google recommendations on how to better organize ecommerce information (title, descriptions, price etc) on the product details pages. These improvements will help search engines to better index your products and optimize their appearance in search results. - **Slight improvements of store layout for mobile devices.** All Ecwid stores are mobile-friendly by design, i.e. they adapt themselves to the given layout and look good on mobile devices, so if your ecommerce site is mobile-optimized, your Ecwid store will be as well. Earlier, if you use horizontal categories widget on your Wordpress site, you might notice that it didn't fit the given width on narrow screens, e.g. when opened on a mobile device. Now, the plugin automatically hides horizontal categories widget on narrow screens to ensure better look on mobile-optimized sites. - **Several improvements and bug fixes for plugin settings pages, store appearance and SEO.** = 2.3.2 = - **Fixed an issue in sitemap functionality**. Ecwid uses third party plugin to generate an XML sitemap (Google XML Sitemaps) for store products and categories. The current integration had a bug which caused an error message in Wordpress admin backend for users on Free Ecwid plan. Now it's fixed and everything should work OK. = 2.3.1 = - Automatic generation of the rel="canonical" links for SEO. Canonical links are aimed to specify the preferred (canonical) URL of the web page for search engines to prevent possible duplicate content issues. Ecwid plugin now generates such links automatically for product and categories pages in your store to provide search crawlers with well-structured content and help them better index your store. - Improved compatibility with CloudFlare Rocket Loader. The merchants who use CloudFlare Rocket Loader extensions on their sites might previously experience issues with loading of their Ecwid stores. We've further improved the plugin code to prevent such issues in the future. Now Ecwid plugin should perfectly work with CloudFlare extensions. - Several minor fixes and enhancements = 2.3 = - Added compatibility with Google XML Sitemaps plugin. Now you can submit your store items links along with the other site ecommerce pages to search engines. To use this feature, please install the "Google XML Sitemaps" plugin (http://wordpress.org/plugins/google-sitemap-generator/), generate a sitemap (it will include your products and categories links) and submit it to the search engines to help them better crawl and categorize your site. - Improved compatibility with SEO Ultimate plugin. Ecwid ecommerce plugin always displays your store pages in a proper SEO-friendly format to make the store indexable by search engines. Moreover, we constantly adjust the plugin to make it work fine with popular third party SEO modules. So Ecwid is perfectly compatible with "Wordpress SEO by Yoast", "All in one SEO Pack", "Platinum SEO Pack" and now with "SEO Ultimate" plugin. - Minor design improvements of the plugin settings pages to make them mobile-friendly for better compatibility with the backend layout of new Wordpress versions. Now you can manage Ecwid plugin settings in your Wordpress administrator panel using your mobile device. - New "Ecwid badges" widget is available. If you like Ecwid and want to help it grow and become the most popular e-commerce solution, you can now add a fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid. Please find the new widget under 'Appearance → Widgets' section in your Wordpress backend. = 2.2.1 = - Fixed layout error on General Settings page in Firefox = 2.2 = - Improved compatibility with the new Wordpress version 3.8 which brings great features like brand new responsive theme, revamped admin backend and other improvements. Ecwid ecommerce plugin is now ready for that, so your store will work perfectly with the new Wordpress version - The plugin settings pages are now available in seven languages: English, Italian, Russian, French, German, Spanish, Brazilian Portuguese. Ecwid itself is available in 45 languages, so customers from all over the world can purchase from your store - Design improvements of the plugin settings pages including Retina-ready icons = 2.1 = - Our plugin backend is now available in Italian, Russian and English. Thanks to Luciano Del Fico for the great help with the Italian translation. - Improvements and bug fixes, including - Better SEO for store pages: search engines will now index product options list and category descriptions - Compatibility with WP Minify (Wordpress sites optimization plugin) - Improved compatibility with Yoast WP SEO plugin: Ecwid SEO page titles are shown properly with enabled Yoast's "Force Rewrite Titles" option - Minor text and design tweaks of the plugin settings pages = 2.0 = - **New revamped plugin settings**: the new settings layout makes the plugin easy and intuitive for starters, yet powerful and advanced for experienced merchants. - **Multilingual plugin backend**: the plugin settings now support multilanguage. Currently available in English and Russian. More translations are coming! - **SEO improvements** - Auto generated meta description tags for the product and category pages. Now, Google should properly index product/category descriptions and display them in the search results. - <title> tags for categories. The SEO category pages in your online store now include both title and description tags so they will appear in Google search results properly. - **Smooth HTTP/HTTPS switch**: Ecwid always transfers all sensitive ecommerce data using secure HTTPS connection and a special 'HTTPS' option in the Ecwid plugin settings is not necessary anymore. Now, the plugin detects connection type and adjust Ecwid integration codes automatically. No manual adjustments are needed regardless of whether you run your site under HTTP or HTTPS. - **Improved compatibility with CloudFlare Rocket Loader**: previously, using CloudFlare Rocket Loader along with Ecwid might cause intermittent loading issues for some ecommerce sites. We've improved the plugin code to prevent such issues. = 1.8.1 = - [!] Fixed meta title tag display issue on the main store page appeared with the version 1.8 : in some cases, the store page title tag was stripped. Now it should work OK. = 1.8 = - [+] Improved compatibility with popular SEO plugins (Yoast WordPress SEO, All in one SEO Pack and Platinum SEO pack) : now Ecwid prevents them from generating wrong title and canonical tags on the product pages. - [+] Ability to display separate categories on separate pages with custom shortcodes. Now, the plugin allows setting different default categories for different store pages. So if you have multiple store pages and want to display specific categories on them, you can set up a default category for each of them in the [ecwid\_productbrowser] shortcode like this: [ecwid\_productbrowser default\_category\_id="12345"] . On the other hand, if you have one store page, you can set the default category on the plugin settings page as usual. - [+] A few more SEO improvements: - Product browser's default category ID setting is now taken into consideration by SEO part of the plugin. If you have multiple store pages displaying specific categories of your ecommerce store, search engines will index those pages starting from the proper category (not from the store's root) - <meta fragment="!"> tag is now displayed on every page where [ecwid\_productbrowser] tag is added so search engines will better index each store page - [+] We also released a lot of new Ecwid features. You can read about them there: http://www.ecwid.com/blog/new-releases/ = 1.7 = - [+] various additions to the indexable representation of Ecwid pages (product category in the title and on the page, product options, product SKU). Thanks to Uliya B. = 1.5 = - [!] fixed a problem where in some rare occasions the SEO catalog would show a PHP error. = 1.4 = - [!] enhanced the backward compatibility with the older inline SEO links - [+] increased the priority of the product-specific titles in order to work side-by-side with various SEO-related ecommerce plugins. = 1.3 = - [+] Backward compatibility with old Inline SEO Catalog links. = 1.2 = - [+] A lot of changes in Ecwid ecommerce shopping cart: http://www.ecwid.com/blog/new-releases/ - [+] Support of the Google’s “AJAX Crawling” API for native indexing of AJAX applications has been added. This will significantly improve the indexation of Ecwid ecommerce stores and is a successor of the Inline SEO Catalog feature. More details at https://developers.google.com/webmasters/ajax-crawling/ (This feature requires a paid Ecwid subscription) - [+] Auto-generated titles for product pages. - [+] Support of microformats to get rich snippets in search engine results pages. - [+] New Ecwid section has been added to the admin menu. = 1.1.2 = - [!] Issue with the way how ecommerce widgets are embedded into the page for the free users was fixed. = 1.1.1 = - [!] Issue with the way how inline SEO catalog is embedded into the page was fixed. = 1.1 = - [+] Improved the compatibility with AJAX-based e-commerce themes for WP and some web search engines out there. = 1.0 = - [!] The "Single Sign-on" feature didn't work properly in some cases. Fixed. = 0.9 = - [+] The "Single Sign-on" feature has been added. This feature allows your customers to sign into your WordPress ecommerce site and fully use your store without having to sign into Ecwid. = 0.8 = - [+] New minicart ecommerce widget: http://kb.ecwid.com/w/page/15853298/Minicart#Miniview - [+] Stores are loaded faster now, if some Ecwid sidebar widgets are enabled. - [+] Inline SEO Catalog generates "clean" SEO-friendly page titles now. - [!] Issue with Inline SEO Catalog and enabled "Canonical URLs" feature has been fixed. = 0.7 = - [!] The "Inline SEO catalog" feature didn't work correctly with WP permalinks. Fixed. = 0.6 = - [+] The "Inline SEO catalog" option was added. = 0.5 = - [+] Plugin settings page was updated. - [+] Two new options: "Full link to your mobile catalog" and "Default category ID". = 0.4 = - [+] Instruction in the plugin settings was updated. - [+] New plugin option to use on secure pages was added. - [+] Some code tweaks and optimizations. = 0.3 = - [+] Ecwid integration code was updated to the last version - [+] New product browser parameters: http://kb.ecwid.com/Product-Browser - [+] New built-in "ecwid_ProductBrowserURL" feature: http://kb.ecwid.com/ecwid_ProductBrowserURL = 0.2 = - [+] New sidebar ecommerce widgets were added: search box, minicart and vertical categories - [+] New options effecting the store appearance - [!] Minor bugfixes = 0.1 = - [+] Initial version of Ecwid Ecommerce Shopping Cart plugin������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������