Changeset 3800467
- Timestamp:
- 11/13/2026 01:19:01 PM (less than one hour ago)
- Location:
- llamly
- Files:
-
- 466 added
- 20 edited
- 1 copied
-
tags/1.1.0 (copied) (copied from llamly/trunk )
-
tags/1.1.0/THIRD-PARTY-NOTICES.txt (modified) (1 diff)
-
tags/1.1.0/assets/free/css/about.css (modified) (1 diff)
-
tags/1.1.0/assets/free/js/admin.js (modified) (2 diffs)
-
tags/1.1.0/composer.json (added)
-
tags/1.1.0/languages/llamly.pot (modified) (47 diffs)
-
tags/1.1.0/llamly.php (modified) (3 diffs)
-
tags/1.1.0/readme.txt (modified) (8 diffs)
-
tags/1.1.0/src/Free/Admin/AdminPage.php (modified) (3 diffs)
-
tags/1.1.0/src/Free/Core/Plugin.php (modified) (1 diff)
-
tags/1.1.0/src/Free/Core/Schema.php (modified) (1 diff)
-
tags/1.1.0/src/Free/Core/Uninstall.php (added)
-
tags/1.1.0/src/Free/Freemius (added)
-
tags/1.1.0/src/Free/Freemius/Config.php (added)
-
tags/1.1.0/src/Free/Freemius/Sdk.php (added)
-
tags/1.1.0/src/Free/Freemius/Storage.php (added)
-
tags/1.1.0/src/Free/Freemius/freemius-settings.php (added)
-
tags/1.1.0/uninstall.php (modified) (2 diffs)
-
tags/1.1.0/vendor (added)
-
tags/1.1.0/vendor/freemius (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/LICENSE.txt (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/README.md (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets/css (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets/css/admin (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets/css/admin/account.css (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets/css/admin/add-ons.css (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets/css/admin/affiliation.css (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets/css/admin/checkout.css (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets/css/admin/clone-resolution.css (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets/css/admin/common.css (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets/css/admin/connect.css (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets/css/admin/debug.css (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets/css/admin/dialog-boxes.css (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets/css/admin/gdpr-optin-notice.css (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets/css/admin/index.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets/css/admin/optout.css (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets/css/admin/plugins.css (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets/css/customizer.css (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets/css/index.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets/img (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets/img/index.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets/img/plugin-icon.png (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets/img/theme-icon.png (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets/index.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets/js (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets/js/index.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets/js/jquery.form.js (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets/js/nojquery.ba-postmessage.js (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets/js/postmessage.js (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets/js/pricing (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets/js/pricing/14fb1bd5b7c41648488b06147f50a0dc.svg (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets/js/pricing/178afa6030e76635dbe835e111d2c507.png (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets/js/pricing/27b5a722a5553d9de0170325267fccec.png (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets/js/pricing/4375c4a3ddc6f637c2ab9a2d7220f91e.png (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets/js/pricing/45da596e2b512ffc3bb638baaf0fdc4e.png (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets/js/pricing/a34e046aee1702a5690679750a7f4d0f.svg (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets/js/pricing/b09d0b38b627c2fa564d050f79f2f064.svg (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets/js/pricing/c03f665db27af43971565560adfba594.png (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets/js/pricing/cb5fc4f6ec7ada72e986f6e7dde365bf.png (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets/js/pricing/d65812c447b4523b42d59018e1c0bb53.png (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets/js/pricing/f3aac72a8e63997d6bb888f816457e9b.png (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets/js/pricing/fde48e4609a6ddc11d639fc2421f2afd.png (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets/js/pricing/freemius-pricing.js (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/assets/js/pricing/freemius-pricing.js.LICENSE.txt (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/composer.json (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/config.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/class-freemius-abstract.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/class-freemius.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/class-fs-admin-notices.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/class-fs-api.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/class-fs-garbage-collector.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/class-fs-hook-snapshot.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/class-fs-lock.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/class-fs-logger.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/class-fs-options.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/class-fs-plugin-updater.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/class-fs-security.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/class-fs-storage.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/class-fs-user-lock.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/customizer (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/customizer/class-fs-customizer-support-section.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/customizer/class-fs-customizer-upsell-control.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/customizer/index.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/debug (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/debug/class-fs-debug-bar-panel.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/debug/debug-bar-start.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/debug/index.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/entities (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/entities/class-fs-affiliate-terms.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/entities/class-fs-affiliate.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/entities/class-fs-billing.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/entities/class-fs-entity.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/entities/class-fs-payment.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/entities/class-fs-plugin-info.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/entities/class-fs-plugin-license.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/entities/class-fs-plugin-plan.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/entities/class-fs-plugin-tag.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/entities/class-fs-plugin.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/entities/class-fs-pricing.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/entities/class-fs-scope-entity.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/entities/class-fs-site.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/entities/class-fs-subscription.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/entities/class-fs-user.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/entities/index.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/fs-core-functions.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/fs-essential-functions.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/fs-html-escaping-functions.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/fs-plugin-info-dialog.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/index.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/l10n.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/managers (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/managers/class-fs-admin-menu-manager.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/managers/class-fs-admin-notice-manager.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/managers/class-fs-cache-manager.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/managers/class-fs-checkout-manager.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/managers/class-fs-clone-manager.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/managers/class-fs-contact-form-manager.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/managers/class-fs-debug-manager.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/managers/class-fs-gdpr-manager.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/managers/class-fs-key-value-storage.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/managers/class-fs-license-manager.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/managers/class-fs-option-manager.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/managers/class-fs-permission-manager.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/managers/class-fs-plan-manager.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/managers/class-fs-plugin-manager.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/managers/index.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/sdk (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/sdk/Exceptions (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/sdk/Exceptions/ArgumentNotExistException.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/sdk/Exceptions/EmptyArgumentException.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/sdk/Exceptions/Exception.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/sdk/Exceptions/InvalidArgumentException.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/sdk/Exceptions/OAuthException.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/sdk/Exceptions/index.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/sdk/FreemiusBase.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/sdk/FreemiusWordPress.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/sdk/LICENSE.txt (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/sdk/index.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/supplements (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/supplements/fs-essential-functions-1.1.7.1.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/supplements/fs-essential-functions-2.2.1.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/supplements/fs-migration-2.5.1.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/includes/supplements/index.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/index.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/languages (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/languages/freemius-cs_CZ.mo (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/languages/freemius-da_DK.mo (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/languages/freemius-de_DE.mo (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/languages/freemius-es_ES.mo (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/languages/freemius-fr_FR.mo (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/languages/freemius-he_IL.mo (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/languages/freemius-hu_HU.mo (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/languages/freemius-it_IT.mo (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/languages/freemius-ja.mo (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/languages/freemius-nl_NL.mo (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/languages/freemius-ru_RU.mo (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/languages/freemius-ta.mo (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/languages/freemius-zh_CN.mo (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/languages/freemius.pot (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/languages/index.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/require.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/start.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/account (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/account.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/account/billing.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/account/index.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/account/partials (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/account/partials/activate-license-button.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/account/partials/addon.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/account/partials/deactivate-license-button.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/account/partials/disconnect-button.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/account/partials/index.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/account/partials/site.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/account/payments.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/add-ons.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/add-trial-to-pricing.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/admin-notice.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/ajax-loader.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/api-connectivity-message-js.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/auto-installation.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/checkout (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/checkout.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/checkout/frame.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/checkout/process-redirect.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/checkout/redirect.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/clone-resolution-js.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/connect (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/connect.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/connect/index.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/connect/permission.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/connect/permissions-group.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/contact.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/debug (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/debug.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/debug/api-calls.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/debug/index.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/debug/logger.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/debug/plugins-themes-sync.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/debug/scheduled-crons.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/email.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/forms (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/forms/affiliation.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/forms/data-debug-mode.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/forms/deactivation (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/forms/deactivation/contact.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/forms/deactivation/form.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/forms/deactivation/index.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/forms/deactivation/retry-skip.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/forms/email-address-update.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/forms/index.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/forms/license-activation.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/forms/optout.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/forms/premium-versions-upgrade-handler.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/forms/premium-versions-upgrade-metadata.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/forms/resend-key.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/forms/subscription-cancellation.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/forms/trial-start.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/forms/user-change.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/gdpr-optin-js.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/index.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/js (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/js/index.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/js/jquery.content-change.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/js/open-license-activation.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/js/permissions.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/js/style-premium-theme.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/partials (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/partials/index.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/partials/network-activation.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/plugin-icon.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/plugin-info (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/plugin-info/description.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/plugin-info/features.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/plugin-info/index.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/plugin-info/screenshots.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/pricing.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/secure-https-header.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/sticky-admin-notice-js.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/tabs-capture-js.php (added)
-
tags/1.1.0/vendor/freemius/wordpress-sdk/templates/tabs.php (added)
-
trunk/THIRD-PARTY-NOTICES.txt (modified) (1 diff)
-
trunk/assets/free/css/about.css (modified) (1 diff)
-
trunk/assets/free/js/admin.js (modified) (2 diffs)
-
trunk/composer.json (added)
-
trunk/languages/llamly.pot (modified) (47 diffs)
-
trunk/llamly.php (modified) (3 diffs)
-
trunk/readme.txt (modified) (8 diffs)
-
trunk/src/Free/Admin/AdminPage.php (modified) (3 diffs)
-
trunk/src/Free/Core/Plugin.php (modified) (1 diff)
-
trunk/src/Free/Core/Schema.php (modified) (1 diff)
-
trunk/src/Free/Core/Uninstall.php (added)
-
trunk/src/Free/Freemius (added)
-
trunk/src/Free/Freemius/Config.php (added)
-
trunk/src/Free/Freemius/Sdk.php (added)
-
trunk/src/Free/Freemius/Storage.php (added)
-
trunk/src/Free/Freemius/freemius-settings.php (added)
-
trunk/uninstall.php (modified) (2 diffs)
-
trunk/vendor (added)
-
trunk/vendor/freemius (added)
-
trunk/vendor/freemius/wordpress-sdk (added)
-
trunk/vendor/freemius/wordpress-sdk/LICENSE.txt (added)
-
trunk/vendor/freemius/wordpress-sdk/README.md (added)
-
trunk/vendor/freemius/wordpress-sdk/assets (added)
-
trunk/vendor/freemius/wordpress-sdk/assets/css (added)
-
trunk/vendor/freemius/wordpress-sdk/assets/css/admin (added)
-
trunk/vendor/freemius/wordpress-sdk/assets/css/admin/account.css (added)
-
trunk/vendor/freemius/wordpress-sdk/assets/css/admin/add-ons.css (added)
-
trunk/vendor/freemius/wordpress-sdk/assets/css/admin/affiliation.css (added)
-
trunk/vendor/freemius/wordpress-sdk/assets/css/admin/checkout.css (added)
-
trunk/vendor/freemius/wordpress-sdk/assets/css/admin/clone-resolution.css (added)
-
trunk/vendor/freemius/wordpress-sdk/assets/css/admin/common.css (added)
-
trunk/vendor/freemius/wordpress-sdk/assets/css/admin/connect.css (added)
-
trunk/vendor/freemius/wordpress-sdk/assets/css/admin/debug.css (added)
-
trunk/vendor/freemius/wordpress-sdk/assets/css/admin/dialog-boxes.css (added)
-
trunk/vendor/freemius/wordpress-sdk/assets/css/admin/gdpr-optin-notice.css (added)
-
trunk/vendor/freemius/wordpress-sdk/assets/css/admin/index.php (added)
-
trunk/vendor/freemius/wordpress-sdk/assets/css/admin/optout.css (added)
-
trunk/vendor/freemius/wordpress-sdk/assets/css/admin/plugins.css (added)
-
trunk/vendor/freemius/wordpress-sdk/assets/css/customizer.css (added)
-
trunk/vendor/freemius/wordpress-sdk/assets/css/index.php (added)
-
trunk/vendor/freemius/wordpress-sdk/assets/img (added)
-
trunk/vendor/freemius/wordpress-sdk/assets/img/index.php (added)
-
trunk/vendor/freemius/wordpress-sdk/assets/img/plugin-icon.png (added)
-
trunk/vendor/freemius/wordpress-sdk/assets/img/theme-icon.png (added)
-
trunk/vendor/freemius/wordpress-sdk/assets/index.php (added)
-
trunk/vendor/freemius/wordpress-sdk/assets/js (added)
-
trunk/vendor/freemius/wordpress-sdk/assets/js/index.php (added)
-
trunk/vendor/freemius/wordpress-sdk/assets/js/jquery.form.js (added)
-
trunk/vendor/freemius/wordpress-sdk/assets/js/nojquery.ba-postmessage.js (added)
-
trunk/vendor/freemius/wordpress-sdk/assets/js/postmessage.js (added)
-
trunk/vendor/freemius/wordpress-sdk/assets/js/pricing (added)
-
trunk/vendor/freemius/wordpress-sdk/assets/js/pricing/14fb1bd5b7c41648488b06147f50a0dc.svg (added)
-
trunk/vendor/freemius/wordpress-sdk/assets/js/pricing/178afa6030e76635dbe835e111d2c507.png (added)
-
trunk/vendor/freemius/wordpress-sdk/assets/js/pricing/27b5a722a5553d9de0170325267fccec.png (added)
-
trunk/vendor/freemius/wordpress-sdk/assets/js/pricing/4375c4a3ddc6f637c2ab9a2d7220f91e.png (added)
-
trunk/vendor/freemius/wordpress-sdk/assets/js/pricing/45da596e2b512ffc3bb638baaf0fdc4e.png (added)
-
trunk/vendor/freemius/wordpress-sdk/assets/js/pricing/a34e046aee1702a5690679750a7f4d0f.svg (added)
-
trunk/vendor/freemius/wordpress-sdk/assets/js/pricing/b09d0b38b627c2fa564d050f79f2f064.svg (added)
-
trunk/vendor/freemius/wordpress-sdk/assets/js/pricing/c03f665db27af43971565560adfba594.png (added)
-
trunk/vendor/freemius/wordpress-sdk/assets/js/pricing/cb5fc4f6ec7ada72e986f6e7dde365bf.png (added)
-
trunk/vendor/freemius/wordpress-sdk/assets/js/pricing/d65812c447b4523b42d59018e1c0bb53.png (added)
-
trunk/vendor/freemius/wordpress-sdk/assets/js/pricing/f3aac72a8e63997d6bb888f816457e9b.png (added)
-
trunk/vendor/freemius/wordpress-sdk/assets/js/pricing/fde48e4609a6ddc11d639fc2421f2afd.png (added)
-
trunk/vendor/freemius/wordpress-sdk/assets/js/pricing/freemius-pricing.js (added)
-
trunk/vendor/freemius/wordpress-sdk/assets/js/pricing/freemius-pricing.js.LICENSE.txt (added)
-
trunk/vendor/freemius/wordpress-sdk/composer.json (added)
-
trunk/vendor/freemius/wordpress-sdk/config.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/class-freemius-abstract.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/class-freemius.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/class-fs-admin-notices.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/class-fs-api.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/class-fs-garbage-collector.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/class-fs-hook-snapshot.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/class-fs-lock.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/class-fs-logger.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/class-fs-options.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/class-fs-plugin-updater.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/class-fs-security.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/class-fs-storage.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/class-fs-user-lock.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/customizer (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/customizer/class-fs-customizer-support-section.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/customizer/class-fs-customizer-upsell-control.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/customizer/index.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/debug (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/debug/class-fs-debug-bar-panel.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/debug/debug-bar-start.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/debug/index.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/entities (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/entities/class-fs-affiliate-terms.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/entities/class-fs-affiliate.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/entities/class-fs-billing.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/entities/class-fs-entity.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/entities/class-fs-payment.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/entities/class-fs-plugin-info.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/entities/class-fs-plugin-license.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/entities/class-fs-plugin-plan.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/entities/class-fs-plugin-tag.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/entities/class-fs-plugin.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/entities/class-fs-pricing.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/entities/class-fs-scope-entity.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/entities/class-fs-site.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/entities/class-fs-subscription.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/entities/class-fs-user.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/entities/index.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/fs-core-functions.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/fs-essential-functions.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/fs-html-escaping-functions.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/fs-plugin-info-dialog.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/index.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/l10n.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/managers (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/managers/class-fs-admin-menu-manager.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/managers/class-fs-admin-notice-manager.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/managers/class-fs-cache-manager.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/managers/class-fs-checkout-manager.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/managers/class-fs-clone-manager.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/managers/class-fs-contact-form-manager.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/managers/class-fs-debug-manager.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/managers/class-fs-gdpr-manager.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/managers/class-fs-key-value-storage.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/managers/class-fs-license-manager.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/managers/class-fs-option-manager.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/managers/class-fs-permission-manager.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/managers/class-fs-plan-manager.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/managers/class-fs-plugin-manager.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/managers/index.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/sdk (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/sdk/Exceptions (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/sdk/Exceptions/ArgumentNotExistException.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/sdk/Exceptions/EmptyArgumentException.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/sdk/Exceptions/Exception.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/sdk/Exceptions/InvalidArgumentException.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/sdk/Exceptions/OAuthException.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/sdk/Exceptions/index.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/sdk/FreemiusBase.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/sdk/FreemiusWordPress.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/sdk/LICENSE.txt (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/sdk/index.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/supplements (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/supplements/fs-essential-functions-1.1.7.1.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/supplements/fs-essential-functions-2.2.1.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/supplements/fs-migration-2.5.1.php (added)
-
trunk/vendor/freemius/wordpress-sdk/includes/supplements/index.php (added)
-
trunk/vendor/freemius/wordpress-sdk/index.php (added)
-
trunk/vendor/freemius/wordpress-sdk/languages (added)
-
trunk/vendor/freemius/wordpress-sdk/languages/freemius-cs_CZ.mo (added)
-
trunk/vendor/freemius/wordpress-sdk/languages/freemius-da_DK.mo (added)
-
trunk/vendor/freemius/wordpress-sdk/languages/freemius-de_DE.mo (added)
-
trunk/vendor/freemius/wordpress-sdk/languages/freemius-es_ES.mo (added)
-
trunk/vendor/freemius/wordpress-sdk/languages/freemius-fr_FR.mo (added)
-
trunk/vendor/freemius/wordpress-sdk/languages/freemius-he_IL.mo (added)
-
trunk/vendor/freemius/wordpress-sdk/languages/freemius-hu_HU.mo (added)
-
trunk/vendor/freemius/wordpress-sdk/languages/freemius-it_IT.mo (added)
-
trunk/vendor/freemius/wordpress-sdk/languages/freemius-ja.mo (added)
-
trunk/vendor/freemius/wordpress-sdk/languages/freemius-nl_NL.mo (added)
-
trunk/vendor/freemius/wordpress-sdk/languages/freemius-ru_RU.mo (added)
-
trunk/vendor/freemius/wordpress-sdk/languages/freemius-ta.mo (added)
-
trunk/vendor/freemius/wordpress-sdk/languages/freemius-zh_CN.mo (added)
-
trunk/vendor/freemius/wordpress-sdk/languages/freemius.pot (added)
-
trunk/vendor/freemius/wordpress-sdk/languages/index.php (added)
-
trunk/vendor/freemius/wordpress-sdk/require.php (added)
-
trunk/vendor/freemius/wordpress-sdk/start.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/account (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/account.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/account/billing.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/account/index.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/account/partials (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/account/partials/activate-license-button.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/account/partials/addon.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/account/partials/deactivate-license-button.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/account/partials/disconnect-button.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/account/partials/index.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/account/partials/site.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/account/payments.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/add-ons.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/add-trial-to-pricing.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/admin-notice.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/ajax-loader.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/api-connectivity-message-js.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/auto-installation.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/checkout (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/checkout.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/checkout/frame.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/checkout/process-redirect.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/checkout/redirect.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/clone-resolution-js.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/connect (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/connect.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/connect/index.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/connect/permission.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/connect/permissions-group.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/contact.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/debug (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/debug.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/debug/api-calls.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/debug/index.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/debug/logger.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/debug/plugins-themes-sync.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/debug/scheduled-crons.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/email.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/forms (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/forms/affiliation.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/forms/data-debug-mode.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/forms/deactivation (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/forms/deactivation/contact.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/forms/deactivation/form.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/forms/deactivation/index.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/forms/deactivation/retry-skip.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/forms/email-address-update.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/forms/index.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/forms/license-activation.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/forms/optout.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/forms/premium-versions-upgrade-handler.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/forms/premium-versions-upgrade-metadata.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/forms/resend-key.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/forms/subscription-cancellation.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/forms/trial-start.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/forms/user-change.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/gdpr-optin-js.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/index.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/js (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/js/index.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/js/jquery.content-change.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/js/open-license-activation.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/js/permissions.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/js/style-premium-theme.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/partials (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/partials/index.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/partials/network-activation.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/plugin-icon.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/plugin-info (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/plugin-info/description.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/plugin-info/features.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/plugin-info/index.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/plugin-info/screenshots.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/pricing.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/secure-https-header.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/sticky-admin-notice-js.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/tabs-capture-js.php (added)
-
trunk/vendor/freemius/wordpress-sdk/templates/tabs.php (added)
Legend:
- Unmodified
- Added
- Removed
-
llamly/tags/1.1.0/THIRD-PARTY-NOTICES.txt
r3788333 r3800467 55 55 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. 56 56 57 ## Freemius WordPress SDK 2.13.5 (GPL-3.0) 58 59 `vendor/freemius/wordpress-sdk/` is the [Freemius WordPress SDK](https://github.com/Freemius/wordpress-sdk) 2.13.5 (tag `2.13.5`, commit `0875c4ee3c941572f44d60cb2a687c54295db3d7`), Copyright (c) 2015, Freemius, Inc., licensed under the GNU General Public License version 3. It is bundled unchanged, exactly as the upstream tag exports it, with its full license text in `vendor/freemius/wordpress-sdk/LICENSE.txt`; `tools/freemius-sdk.lock` in the source repository records the SHA256 of every file. Llamly uses it only for the optional, opt-in usage statistics and the Llamly Pro add-on (readme, External services). Because Llamly is GPL-2.0-or-later, the plugin as distributed with this SDK is covered by GPL-3.0. 60 61 The SDK carries its own notices for the code it bundles: the Freemius PHP API client in `includes/sdk/` (GPL-2.0, `includes/sdk/LICENSE.txt`); `assets/js/pricing/freemius-pricing.js`, whose bundled libraries (React and others under the MIT License, Font Awesome Free 5.15.4: icons CC BY 4.0, fonts SIL OFL 1.1, code MIT) are listed in `assets/js/pricing/freemius-pricing.js.LICENSE.txt`; `assets/js/nojquery.ba-postmessage.js` by Ben Alman (dual MIT and GPL). Those files are kept as shipped upstream; files without their own notice are covered by the SDK's GPL-3.0. 62 57 63 ## Llamly marks 58 64 -
llamly/tags/1.1.0/assets/free/css/about.css
r3788333 r3800467 26 26 .about-cap__name { font-weight: 500; flex: 1; min-width: 0; } 27 27 .about-cap__n { color: var(--ll-text-2); font-size: var(--ll-fs-sm); font-variant-numeric: tabular-nums; } 28 .about-pro { padding: var(--ll-5) var(--ll-6); display: flex; flex-direction: column; align-items: flex-start; gap: var(--ll-3); } 29 .about-pro p { margin: 0; } 28 30 .about-links { display: flex; flex-wrap: wrap; gap: var(--ll-3) var(--ll-8); padding: var(--ll-5) var(--ll-6); border-bottom: 1px solid var(--ll-border); } 29 31 .about-links a { display: inline-flex; align-items: center; gap: var(--ll-2); font-weight: 600; text-decoration: none; } -
llamly/tags/1.1.0/assets/free/js/admin.js
r3788333 r3800467 1985 1985 } 1986 1986 1987 /** The one place in Llamly that points to Llamly Pro (LLP-455). Nothing in Llamly is locked; hidden while Llamly Pro is active. */ 1988 function proSection() { 1989 const pro = config.pro || {}; 1990 if (pro.active) return ''; 1991 const url = typeof pro.url === 'string' && pro.url.indexOf('https://') === 0 ? pro.url : ''; 1992 return '<section id="llamly-pro" data-pro><div class="ll-section-head"><div><h2 class="ll-section-title">' + 1993 esc(__('Llamly Pro', 'llamly')) + '</h2><p class="ll-section-desc">' + 1994 esc(__('Everything on these screens is free and stays free.', 'llamly')) + '</p></div></div>' + 1995 '<div class="ll-card about-pro"><p>' + 1996 esc(__('Llamly Pro is a separate add-on with extra modules for your agent. The first one, Llamly Builder, builds pages in Elementor and in the block editor.', 1997 'llamly')) + '</p>' + (url ? '<a class="ll-btn" href="' + esc(url) + '" target="_blank" rel="noopener noreferrer">' + 1998 esc(__('Learn about Llamly Pro', 'llamly')) + icon('external-link') + '</a>' : '<p class="ll-faint">' + 1999 esc(__('Coming soon.', 'llamly')) + '</p>') + '</div></section>'; 2000 } 2001 1987 2002 tabs.about = { 1988 2003 label: __('About', 'llamly'), … … 2039 2054 '</section>' + 2040 2055 modulesSection() + 2056 proSection() + 2041 2057 '<section><div class="ll-section-head"><div><h2 class="ll-section-title">' + esc(__('Help', 'llamly')) + '</h2></div></div><div class="ll-card">' + 2042 2058 (help.length ? '<div class="about-links">' + help.map((l) => '<a href="' + esc(l[0]) + -
llamly/tags/1.1.0/languages/llamly.pot
r3788333 r3800467 3 3 msgid "" 4 4 msgstr "" 5 "Project-Id-Version: Llamly 1. 0.2\n"5 "Project-Id-Version: Llamly 1.1.0\n" 6 6 "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/llamly\n" 7 7 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" … … 10 10 "Content-Type: text/plain; charset=UTF-8\n" 11 11 "Content-Transfer-Encoding: 8bit\n" 12 "POT-Creation-Date: 2026-1 0-26T10:12:35-03:00\n"12 "POT-Creation-Date: 2026-11-11T09:37:34-03:00\n" 13 13 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 14 14 "X-Generator: WP-CLI 2.12.0\n" … … 27 27 #. Author of the plugin 28 28 #: llamly.php 29 #: src/Free/Admin/AdminPage.php: 9930 #: src/Free/Admin/AdminPage.php:1 0031 #: src/Free/Admin/AdminPage.php:2 0329 #: src/Free/Admin/AdminPage.php:129 30 #: src/Free/Admin/AdminPage.php:130 31 #: src/Free/Admin/AdminPage.php:234 32 32 #: src/Free/Core/Abilities.php:40 33 33 msgid "Llamly" … … 196 196 msgstr "" 197 197 198 #: src/Free/Admin/AdminPage.php:169 198 #: src/Free/Admin/AdminPage.php:57 199 #: assets/free/js/admin.js:1993 200 msgid "Llamly Pro" 201 msgstr "" 202 203 #: src/Free/Admin/AdminPage.php:200 199 204 msgid "Llamly is ready." 200 205 msgstr "" 201 206 202 #: src/Free/Admin/AdminPage.php: 170207 #: src/Free/Admin/AdminPage.php:201 203 208 msgid "Connect Claude, ChatGPT or another AI app to this site. It takes about a minute." 204 209 msgstr "" 205 210 206 #: src/Free/Admin/AdminPage.php: 171211 #: src/Free/Admin/AdminPage.php:202 207 212 msgid "Connect an app" 208 213 msgstr "" 209 214 210 #: src/Free/Admin/AdminPage.php: 172215 #: src/Free/Admin/AdminPage.php:203 211 216 msgid "Dismiss" 212 217 msgstr "" 213 218 214 #: src/Free/Admin/AdminPage.php: 178219 #: src/Free/Admin/AdminPage.php:209 215 220 msgid "You do not have permission to dismiss this notice." 216 221 msgstr "" 217 222 218 #: src/Free/Admin/AdminPage.php: 189223 #: src/Free/Admin/AdminPage.php:220 219 224 msgid "You do not have permission to access Llamly." 220 225 msgstr "" 221 226 222 #: src/Free/Admin/AdminPage.php: 192227 #: src/Free/Admin/AdminPage.php:223 223 228 msgid "Llamly setup" 224 229 msgstr "" 225 230 226 #: src/Free/Admin/AdminPage.php: 193231 #: src/Free/Admin/AdminPage.php:224 227 232 msgid "The required database tables are not ready. Retry the schema check before connecting clients." 228 233 msgstr "" 229 234 230 #: src/Free/Admin/AdminPage.php: 197235 #: src/Free/Admin/AdminPage.php:228 231 236 msgid "Verify database setup" 232 237 msgstr "" 233 238 234 #: src/Free/Admin/AdminPage.php:2 26239 #: src/Free/Admin/AdminPage.php:257 235 240 msgid "You do not have permission to update Llamly." 236 241 msgstr "" … … 763 768 #: src/Free/Auth/Authenticator.php:36 764 769 #: src/Free/Auth/Authenticator.php:41 770 #: src/Free/Mcp/Protocol.php:63 765 771 msgid "A valid Bearer token is required." 766 772 msgstr "" … … 886 892 887 893 #: src/Free/Auth/OAuthRedirectPolicy.php:79 888 #: assets/free/js/admin.js:22 06894 #: assets/free/js/admin.js:2222 889 895 msgid "A desktop or terminal app" 890 896 msgstr "" 891 897 892 #: src/Free/Auth/OAuthServer.php: 64898 #: src/Free/Auth/OAuthServer.php:71 893 899 msgid "Llamly is not ready to register clients." 894 900 msgstr "" 895 901 896 #: src/Free/Auth/OAuthServer.php: 67902 #: src/Free/Auth/OAuthServer.php:74 897 903 msgid "New OAuth connections are closed. An administrator can open a 30-minute registration window in Llamly." 898 904 msgstr "" 899 905 900 #: src/Free/Auth/OAuthServer.php:7 1906 #: src/Free/Auth/OAuthServer.php:78 901 907 msgid "Too many client registration requests." 902 908 msgstr "" 903 909 904 #: src/Free/Auth/OAuthServer.php: 76910 #: src/Free/Auth/OAuthServer.php:83 905 911 msgid "Send a JSON client registration request." 906 912 msgstr "" 907 913 908 #: src/Free/Auth/OAuthServer.php:8 0914 #: src/Free/Auth/OAuthServer.php:87 909 915 msgid "Register between one and ten redirect URIs." 910 916 msgstr "" 911 917 912 #: src/Free/Auth/OAuthServer.php: 84918 #: src/Free/Auth/OAuthServer.php:91 913 919 msgid "Every redirect URI must be a string." 914 920 msgstr "" 915 921 916 #: src/Free/Auth/OAuthServer.php:9 1922 #: src/Free/Auth/OAuthServer.php:98 917 923 msgid "No redirect URI satisfies the site redirect-host policy." 918 924 msgstr "" 919 925 920 #: src/Free/Auth/OAuthServer.php:10 0926 #: src/Free/Auth/OAuthServer.php:107 921 927 msgid "Only authorization-code clients with PKCE are supported." 922 928 msgstr "" 923 929 924 #: src/Free/Auth/OAuthServer.php:1 03930 #: src/Free/Auth/OAuthServer.php:110 925 931 msgid "Public clients must use token_endpoint_auth_method=none and PKCE." 926 932 msgstr "" 927 933 928 #: src/Free/Auth/OAuthServer.php:1 06934 #: src/Free/Auth/OAuthServer.php:113 929 935 msgid "The client name must be a string." 930 936 msgstr "" 931 937 932 #: src/Free/Auth/OAuthServer.php:1 13938 #: src/Free/Auth/OAuthServer.php:120 933 939 msgid "A secure client ID could not be created." 934 940 msgstr "" 935 941 936 #: src/Free/Auth/OAuthServer.php:12 1942 #: src/Free/Auth/OAuthServer.php:128 937 943 msgid "The client registration lock is unavailable." 938 944 msgstr "" 939 945 940 #: src/Free/Auth/OAuthServer.php:1 25946 #: src/Free/Auth/OAuthServer.php:132 941 947 msgid "The client registration transaction could not start." 942 948 msgstr "" 943 949 944 #: src/Free/Auth/OAuthServer.php:13 0950 #: src/Free/Auth/OAuthServer.php:137 945 951 msgid "The client registration limit could not be checked." 946 952 msgstr "" 947 953 948 #: src/Free/Auth/OAuthServer.php:1 34954 #: src/Free/Auth/OAuthServer.php:141 949 955 msgid "This site has reached its limit of 100 active OAuth clients. Revoke an unused client before registering another." 950 956 msgstr "" 951 957 952 #: src/Free/Auth/OAuthServer.php:15 1958 #: src/Free/Auth/OAuthServer.php:158 953 959 msgid "The client registration could not be stored with its audit record." 954 960 msgstr "" 955 961 956 #: src/Free/Auth/OAuthServer.php: 199962 #: src/Free/Auth/OAuthServer.php:206 957 963 msgid "Llamly is not ready to accept new connections on this site." 958 964 msgstr "" 959 965 960 #: src/Free/Auth/OAuthServer.php: 199966 #: src/Free/Auth/OAuthServer.php:206 961 967 msgid "Ask an administrator to check that the MCP server is turned on in Llamly > Settings." 962 968 msgstr "" 963 969 964 #: src/Free/Auth/OAuthServer.php:2 03970 #: src/Free/Auth/OAuthServer.php:210 965 971 msgid "This connection request is invalid." 966 972 msgstr "" 967 973 968 #: src/Free/Auth/OAuthServer.php:203 969 #: src/Free/Auth/OAuthServer.php:374 974 #: src/Free/Auth/OAuthServer.php:210 970 975 #: src/Free/Auth/OAuthServer.php:381 971 #: src/Free/Auth/OAuthServer.php:385 976 #: src/Free/Auth/OAuthServer.php:388 977 #: src/Free/Auth/OAuthServer.php:392 972 978 msgid "Go back to the app and start the connection again." 973 979 msgstr "" 974 980 975 #: src/Free/Auth/OAuthServer.php:27 1981 #: src/Free/Auth/OAuthServer.php:278 976 982 msgid "An administrator must approve this connection." 977 983 msgstr "" 978 984 979 #: src/Free/Auth/OAuthServer.php:27 1985 #: src/Free/Auth/OAuthServer.php:278 980 986 msgid "New connections are turned off on this site. Sign in as an administrator to approve it, or ask an administrator to turn on new connections for 30 minutes in Llamly > Connections." 981 987 msgstr "" 982 988 983 #: src/Free/Auth/OAuthServer.php:28 2989 #: src/Free/Auth/OAuthServer.php:289 984 990 msgid "Your account cannot approve this connection." 985 991 msgstr "" 986 992 987 #: src/Free/Auth/OAuthServer.php:282 993 #: src/Free/Auth/OAuthServer.php:289 994 #: src/Free/Auth/OAuthServer.php:395 995 #: src/Free/Auth/OAuthServer.php:398 996 msgid "Sign in with an account that can edit this site, or ask an administrator to connect the app." 997 msgstr "" 998 999 #: src/Free/Auth/OAuthServer.php:381 1000 msgid "This consent form expired." 1001 msgstr "" 1002 988 1003 #: src/Free/Auth/OAuthServer.php:388 989 #: src/Free/Auth/OAuthServer.php:391990 msgid "Sign in with an account that can edit this site, or ask an administrator to connect the app."991 msgstr ""992 993 #: src/Free/Auth/OAuthServer.php:374994 msgid "This consent form expired."995 msgstr ""996 997 #: src/Free/Auth/OAuthServer.php:381998 1004 msgid "Choose whether to approve or refuse this connection." 999 1005 msgstr "" 1000 1006 1001 #: src/Free/Auth/OAuthServer.php:3 881007 #: src/Free/Auth/OAuthServer.php:395 1002 1008 msgid "Your WordPress user cannot grant read access." 1003 1009 msgstr "" 1004 1010 1005 #: src/Free/Auth/OAuthServer.php:39 11011 #: src/Free/Auth/OAuthServer.php:398 1006 1012 msgid "Your WordPress user cannot grant write access." 1007 1013 msgstr "" 1008 1014 1009 #: src/Free/Auth/OAuthServer.php: 3951010 #: assets/free/js/admin.js:27 531015 #: src/Free/Auth/OAuthServer.php:402 1016 #: assets/free/js/admin.js:2769 1011 1017 msgid "Try again in a moment." 1012 1018 msgstr "" 1013 1019 1014 #: src/Free/Auth/OAuthServer.php:4 041020 #: src/Free/Auth/OAuthServer.php:411 1015 1021 msgid "Select at least one requested permission." 1016 1022 msgstr "" 1017 1023 1018 #: src/Free/Auth/OAuthServer.php:4 131024 #: src/Free/Auth/OAuthServer.php:420 1019 1025 msgid "Select only permissions requested by this client." 1020 1026 msgstr "" 1021 1027 1022 #: src/Free/Auth/OAuthServer.php:4 381028 #: src/Free/Auth/OAuthServer.php:445 1023 1029 msgid "The OAuth request is invalid or uses an unsupported resource, redirect, or PKCE method." 1024 1030 msgstr "" 1025 1031 1026 #: src/Free/Auth/OAuthServer.php:4 471032 #: src/Free/Auth/OAuthServer.php:454 1027 1033 msgid "The client or exact redirect URI is not registered." 1028 1034 msgstr "" 1029 1035 1030 #: src/Free/Auth/OAuthServer.php:45 21036 #: src/Free/Auth/OAuthServer.php:459 1031 1037 msgid "The client requested an unsupported Llamly scope." 1032 1038 msgstr "" 1033 1039 1034 #: src/Free/Auth/OAuthServer.php:4 741040 #: src/Free/Auth/OAuthServer.php:481 1035 1041 msgid "A secure authorization code could not be created." 1036 1042 msgstr "" 1037 1043 1038 #: src/Free/Auth/OAuthServer.php:4 791044 #: src/Free/Auth/OAuthServer.php:486 1039 1045 msgid "The authorization grant transaction could not start." 1040 1046 msgstr "" 1041 1047 1042 #: src/Free/Auth/OAuthServer.php:51 01048 #: src/Free/Auth/OAuthServer.php:517 1043 1049 msgid "The authorization grant and its audit record could not be stored." 1044 1050 msgstr "" 1045 1051 1046 #: src/Free/Auth/OAuthServer.php:5 261052 #: src/Free/Auth/OAuthServer.php:533 1047 1053 msgid "Send OAuth token parameters." 1048 1054 msgstr "" 1049 1055 1050 #: src/Free/Auth/OAuthServer.php:5 341056 #: src/Free/Auth/OAuthServer.php:541 1051 1057 msgid "Only authorization_code and refresh_token grants are supported." 1052 1058 msgstr "" 1053 1059 1054 #: src/Free/Auth/OAuthServer.php:5 591060 #: src/Free/Auth/OAuthServer.php:566 1055 1061 msgid "The authorization code, PKCE verifier, redirect, or resource is invalid." 1056 1062 msgstr "" 1057 1063 1058 #: src/Free/Auth/OAuthServer.php:5 631064 #: src/Free/Auth/OAuthServer.php:570 1059 1065 msgid "The authorization-code transaction could not start." 1060 1066 msgstr "" 1061 1067 1062 #: src/Free/Auth/OAuthServer.php:5 771068 #: src/Free/Auth/OAuthServer.php:584 1063 1069 msgid "The authorization-code record could not be read." 1064 1070 msgstr "" 1065 1071 1066 #: src/Free/Auth/OAuthServer.php:58 11072 #: src/Free/Auth/OAuthServer.php:588 1067 1073 msgid "The authorization code was already used; tokens issued from it have been revoked." 1068 1074 msgstr "" 1069 1075 1070 #: src/Free/Auth/OAuthServer.php:59 01076 #: src/Free/Auth/OAuthServer.php:597 1071 1077 msgid "The authorization code is invalid, expired, or already used." 1072 1078 msgstr "" 1073 1079 1074 #: src/Free/Auth/OAuthServer.php: 5951080 #: src/Free/Auth/OAuthServer.php:602 1075 1081 msgid "The PKCE verifier does not match the authorization request." 1076 1082 msgstr "" 1077 1083 1078 #: src/Free/Auth/OAuthServer.php:6 061084 #: src/Free/Auth/OAuthServer.php:613 1079 1085 msgid "The authorization code was already consumed." 1080 1086 msgstr "" 1081 1087 1082 #: src/Free/Auth/OAuthServer.php:6 161088 #: src/Free/Auth/OAuthServer.php:623 1083 1089 msgid "The token response could not be saved with its audit record." 1084 1090 msgstr "" 1085 1091 1086 #: src/Free/Auth/OAuthServer.php:6 291092 #: src/Free/Auth/OAuthServer.php:636 1087 1093 msgid "The refresh token, client, or resource is invalid." 1088 1094 msgstr "" 1089 1095 1090 #: src/Free/Auth/OAuthServer.php:6 331096 #: src/Free/Auth/OAuthServer.php:640 1091 1097 msgid "The refresh-token transaction could not start." 1092 1098 msgstr "" 1093 1099 1094 #: src/Free/Auth/OAuthServer.php:6 471100 #: src/Free/Auth/OAuthServer.php:654 1095 1101 msgid "The refresh-token record could not be read." 1096 1102 msgstr "" 1097 1103 1098 #: src/Free/Auth/OAuthServer.php:65 11104 #: src/Free/Auth/OAuthServer.php:658 1099 1105 msgid "Refresh token reuse was detected; the token family has been revoked." 1100 1106 msgstr "" 1101 1107 1102 #: src/Free/Auth/OAuthServer.php:6 591108 #: src/Free/Auth/OAuthServer.php:666 1103 1109 msgid "The refresh token is invalid, expired, or revoked." 1104 1110 msgstr "" 1105 1111 1106 #: src/Free/Auth/OAuthServer.php:6 691112 #: src/Free/Auth/OAuthServer.php:676 1107 1113 msgid "The refresh token was already consumed." 1108 1114 msgstr "" 1109 1115 1110 #: src/Free/Auth/OAuthServer.php:6 751116 #: src/Free/Auth/OAuthServer.php:682 1111 1117 msgid "The refreshed token pair could not be saved with its audit record." 1112 1118 msgstr "" 1113 1119 1114 #: src/Free/Auth/OAuthServer.php: 6951120 #: src/Free/Auth/OAuthServer.php:702 1115 1121 msgid "Token reuse was detected, but revocation could not be saved." 1116 1122 msgstr "" 1117 1123 1118 #: src/Free/Auth/OAuthServer.php:7 041124 #: src/Free/Auth/OAuthServer.php:711 1119 1125 msgid "Token reuse was detected, but revocation could not be committed with its audit record." 1120 1126 msgstr "" 1121 1127 1122 #: src/Free/Auth/OAuthServer.php:7 171128 #: src/Free/Auth/OAuthServer.php:724 1123 1129 msgid "Secure access tokens could not be created." 1124 1130 msgstr "" 1125 1131 1126 #: src/Free/Auth/OAuthServer.php:7 251132 #: src/Free/Auth/OAuthServer.php:732 1127 1133 msgid "The grant does not contain a valid scope." 1128 1134 msgstr "" 1129 1135 1130 #: src/Free/Auth/OAuthServer.php:7 541136 #: src/Free/Auth/OAuthServer.php:761 1131 1137 msgid "The token pair could not be stored." 1132 1138 msgstr "" 1133 1139 1134 #: src/Free/Auth/OAuthServer.php:7 841140 #: src/Free/Auth/OAuthServer.php:791 1135 1141 msgid "The revocation transaction could not start." 1136 1142 msgstr "" 1137 1143 1138 #: src/Free/Auth/OAuthServer.php: 7941144 #: src/Free/Auth/OAuthServer.php:801 1139 1145 msgid "The token record could not be read." 1140 1146 msgstr "" 1141 1147 1142 #: src/Free/Auth/OAuthServer.php:8 041148 #: src/Free/Auth/OAuthServer.php:811 1143 1149 msgid "The grant could not be revoked." 1144 1150 msgstr "" 1145 1151 1146 #: src/Free/Auth/OAuthServer.php:88 11152 #: src/Free/Auth/OAuthServer.php:888 1147 1153 msgid "Llamly is not ready to authorize new clients." 1148 1154 msgstr "" … … 1192 1198 msgstr "" 1193 1199 1194 #: src/Free/Core/Plugin.php:24 71200 #: src/Free/Core/Plugin.php:246 1195 1201 msgid "You are not allowed to do this." 1196 1202 msgstr "" 1197 1203 1204 #: src/Free/Core/Plugin.php:364 1205 msgid "Llamly database setup is incomplete. MCP requests and the admin interface are paused until the schema is verified." 1206 msgstr "" 1207 1208 #. translators: %s: internal error code. 1198 1209 #: src/Free/Core/Plugin.php:365 1199 msgid "Llamly database setup is incomplete. MCP requests and the admin interface are paused until the schema is verified."1200 msgstr ""1201 1202 #. translators: %s: internal error code.1203 #: src/Free/Core/Plugin.php:3661204 1210 #, php-format 1205 1211 msgid "Last error: %s" 1206 1212 msgstr "" 1207 1213 1208 #: src/Free/Core/Plugin.php:37 11214 #: src/Free/Core/Plugin.php:370 1209 1215 msgid "Continue without a backup" 1210 1216 msgstr "" … … 1397 1403 #: src/Free/History/Adapters/GlobalStylesObject.php:285 1398 1404 #: src/Free/History/Engine.php:1644 1399 #: assets/free/js/admin.js:20 821405 #: assets/free/js/admin.js:2098 1400 1406 msgid "Global styles" 1401 1407 msgstr "" … … 1464 1470 msgstr "" 1465 1471 1466 #: src/Free/History/Adapters/MediaObject.php:32 51472 #: src/Free/History/Adapters/MediaObject.php:326 1467 1473 msgid "WordPress did not delete the media item." 1468 1474 msgstr "" 1469 1475 1470 #: src/Free/History/Adapters/MediaObject.php:36 71476 #: src/Free/History/Adapters/MediaObject.php:368 1471 1477 msgid "The retained files of this media item are no longer available, so it cannot be restored." 1472 1478 msgstr "" 1473 1479 1474 #: src/Free/History/Adapters/MediaObject.php:37 11480 #: src/Free/History/Adapters/MediaObject.php:372 1475 1481 #: src/Free/History/RawRows.php:102 1476 1482 msgid "Another item now uses the original identifier, so it cannot be restored." 1477 1483 msgstr "" 1478 1484 1479 #: src/Free/History/Adapters/MediaObject.php:38 51485 #: src/Free/History/Adapters/MediaObject.php:386 1480 1486 msgid "The files of this media item changed, so its details cannot be restored." 1481 1487 msgstr "" 1482 1488 1483 #: src/Free/History/Adapters/MediaObject.php:39 01489 #: src/Free/History/Adapters/MediaObject.php:391 1484 1490 msgid "The media row could not be restored." 1485 1491 msgstr "" 1486 1492 1487 #: src/Free/History/Adapters/MediaObject.php:40 61493 #: src/Free/History/Adapters/MediaObject.php:407 1488 1494 msgid "The media item now has files the upload did not create, so the upload cannot be undone." 1489 1495 msgstr "" 1490 1496 1491 #: src/Free/History/Adapters/MediaObject.php:4 191497 #: src/Free/History/Adapters/MediaObject.php:420 1492 1498 msgid "A post that used this media item as featured image now has another featured image." 1493 1499 msgstr "" 1494 1500 1495 #: src/Free/History/Adapters/MediaObject.php:42 51501 #: src/Free/History/Adapters/MediaObject.php:426 1496 1502 msgid "The site icon was changed after this media item was removed." 1497 1503 msgstr "" 1498 1504 1499 #: src/Free/History/Adapters/MediaObject.php:43 11505 #: src/Free/History/Adapters/MediaObject.php:432 1500 1506 msgid "The site logo was changed after this media item was removed." 1501 1507 msgstr "" 1502 1508 1503 #: src/Free/History/Adapters/MediaObject.php:43 81509 #: src/Free/History/Adapters/MediaObject.php:439 1504 1510 msgid "The logo, header or background image of the theme was changed after this media item was removed." 1505 1511 msgstr "" 1506 1512 1507 #: src/Free/History/Adapters/MediaObject.php:45 71513 #: src/Free/History/Adapters/MediaObject.php:458 1508 1514 msgid "A featured image link could not be restored." 1509 1515 msgstr "" 1510 1516 1511 #: src/Free/History/Adapters/MediaObject.php:47 51517 #: src/Free/History/Adapters/MediaObject.php:477 1512 1518 msgid "A journaled theme setting could not be read." 1513 1519 msgstr "" 1514 1520 1515 #: src/Free/History/Adapters/MediaObject.php:49 21521 #: src/Free/History/Adapters/MediaObject.php:494 1516 1522 msgid "A term used by this media item no longer exists." 1517 1523 msgstr "" 1518 1524 1519 #: src/Free/History/Adapters/MediaObject.php:50 21520 #: src/Free/History/Adapters/MediaObject.php:50 71525 #: src/Free/History/Adapters/MediaObject.php:504 1526 #: src/Free/History/Adapters/MediaObject.php:509 1521 1527 msgid "Media terms could not be restored." 1522 1528 msgstr "" 1523 1529 1524 #: src/Free/History/Adapters/MediaObject.php:60 71530 #: src/Free/History/Adapters/MediaObject.php:609 1525 1531 #: src/Free/History/Adapters/PostObject.php:587 1526 1532 #: src/Free/History/Engine.php:1652 … … 1528 1534 msgstr "" 1529 1535 1530 #: src/Free/History/Adapters/MediaObject.php:71 41536 #: src/Free/History/Adapters/MediaObject.php:716 1531 1537 msgid "The file is empty." 1532 1538 msgstr "" 1533 1539 1534 1540 #. translators: %s: maximum upload size, formatted. 1535 #: src/Free/History/Adapters/MediaObject.php:71 71541 #: src/Free/History/Adapters/MediaObject.php:719 1536 1542 #, php-format 1537 1543 msgid "The file is larger than the upload limit of %s." 1538 1544 msgstr "" 1539 1545 1540 #: src/Free/History/Adapters/MediaObject.php:73 01546 #: src/Free/History/Adapters/MediaObject.php:732 1541 1547 msgid "This file type is not allowed or its content does not match its extension." 1542 1548 msgstr "" 1543 1549 1544 #: src/Free/History/Adapters/MediaObject.php:73 51550 #: src/Free/History/Adapters/MediaObject.php:737 1545 1551 msgid "The file contains markup or code and is not accepted as media." 1546 1552 msgstr "" 1547 1553 1548 #: src/Free/History/Adapters/MediaObject.php:76 11554 #: src/Free/History/Adapters/MediaObject.php:763 1549 1555 msgid "Use a plain file name of 1 to 200 characters without folders." 1550 1556 msgstr "" 1551 1557 1552 #: src/Free/History/Adapters/MediaObject.php:77 01558 #: src/Free/History/Adapters/MediaObject.php:772 1553 1559 msgid "Hidden files and server configuration files are not accepted." 1554 1560 msgstr "" 1555 1561 1556 #: src/Free/History/Adapters/MediaObject.php:77 41562 #: src/Free/History/Adapters/MediaObject.php:776 1557 1563 msgid "The file name needs an extension." 1558 1564 msgstr "" 1559 1565 1560 #: src/Free/History/Adapters/MediaObject.php:7 781566 #: src/Free/History/Adapters/MediaObject.php:780 1561 1567 msgid "Executable, script, markup and SVG files (also as a double extension) are not accepted." 1562 1568 msgstr "" … … 1570 1576 msgstr "" 1571 1577 1572 #: src/Free/History/Adapters/MenuObject.php:1 391578 #: src/Free/History/Adapters/MenuObject.php:140 1573 1579 msgid "The automatic page setting of the menu could not be saved." 1574 1580 msgstr "" 1575 1581 1576 #: src/Free/History/Adapters/MenuObject.php:1 591577 #: src/Free/History/Adapters/MenuObject.php:47 61582 #: src/Free/History/Adapters/MenuObject.php:160 1583 #: src/Free/History/Adapters/MenuObject.php:477 1578 1584 #: src/Free/Tools/MenuTools.php:148 1579 1585 #: src/Free/Tools/MenuTools.php:369 … … 1581 1587 msgstr "" 1582 1588 1583 #: src/Free/History/Adapters/MenuObject.php:16 21589 #: src/Free/History/Adapters/MenuObject.php:163 1584 1590 msgid "This menu has too many items to delete reversibly." 1585 1591 msgstr "" 1586 1592 1587 #: src/Free/History/Adapters/MenuObject.php:18 51593 #: src/Free/History/Adapters/MenuObject.php:186 1588 1594 msgid "This menu carries protected metadata that cannot be journaled, so it cannot be changed reversibly." 1589 1595 msgstr "" 1590 1596 1591 1597 #. translators: %d: maximum number of menu items. 1592 #: src/Free/History/Adapters/MenuObject.php:20 31598 #: src/Free/History/Adapters/MenuObject.php:204 1593 1599 #: src/Free/Tools/MenuTools.php:323 1594 1600 #, php-format … … 1597 1603 1598 1604 #. translators: %d: maximum nesting depth. 1599 #: src/Free/History/Adapters/MenuObject.php:21 01605 #: src/Free/History/Adapters/MenuObject.php:211 1600 1606 #: src/Free/Tools/MenuTools.php:320 1601 1607 #, php-format … … 1603 1609 msgstr "" 1604 1610 1605 #: src/Free/History/Adapters/MenuObject.php:21 41611 #: src/Free/History/Adapters/MenuObject.php:215 1606 1612 msgid "invalid parent reference." 1607 1613 msgstr "" 1608 1614 1609 #: src/Free/History/Adapters/MenuObject.php:22 01615 #: src/Free/History/Adapters/MenuObject.php:221 1610 1616 msgid "db_id is not an item of this menu." 1611 1617 msgstr "" 1612 1618 1613 #: src/Free/History/Adapters/MenuObject.php:22 31619 #: src/Free/History/Adapters/MenuObject.php:224 1614 1620 msgid "the same db_id appears twice." 1615 1621 msgstr "" 1616 1622 1617 #: src/Free/History/Adapters/MenuObject.php:25 01623 #: src/Free/History/Adapters/MenuObject.php:251 1618 1624 msgid "unknown item type." 1619 1625 msgstr "" 1620 1626 1621 #: src/Free/History/Adapters/MenuObject.php:2 591627 #: src/Free/History/Adapters/MenuObject.php:260 1622 1628 msgid "the URL must use http, https, mailto or tel (or be relative)." 1623 1629 msgstr "" 1624 1630 1625 #: src/Free/History/Adapters/MenuObject.php:26 21631 #: src/Free/History/Adapters/MenuObject.php:263 1626 1632 msgid "a custom link needs a url." 1627 1633 msgstr "" 1628 1634 1629 #: src/Free/History/Adapters/MenuObject.php:26 51635 #: src/Free/History/Adapters/MenuObject.php:266 1630 1636 msgid "a custom link needs a title." 1631 1637 msgstr "" 1632 1638 1633 #: src/Free/History/Adapters/MenuObject.php:27 31639 #: src/Free/History/Adapters/MenuObject.php:274 1634 1640 msgid "object must be a public post type." 1635 1641 msgstr "" 1636 1642 1637 #: src/Free/History/Adapters/MenuObject.php:27 61643 #: src/Free/History/Adapters/MenuObject.php:277 1638 1644 msgid "object_id is not an existing item of that post type." 1639 1645 msgstr "" 1640 1646 1641 #: src/Free/History/Adapters/MenuObject.php:2 791647 #: src/Free/History/Adapters/MenuObject.php:280 1642 1648 msgid "the connected user cannot read the target item." 1643 1649 msgstr "" 1644 1650 1645 #: src/Free/History/Adapters/MenuObject.php:28 31651 #: src/Free/History/Adapters/MenuObject.php:284 1646 1652 msgid "object must be a taxonomy that menus can link to." 1647 1653 msgstr "" 1648 1654 1649 #: src/Free/History/Adapters/MenuObject.php:28 71655 #: src/Free/History/Adapters/MenuObject.php:288 1650 1656 msgid "object_id is not an existing term of that taxonomy." 1651 1657 msgstr "" 1652 1658 1653 #: src/Free/History/Adapters/MenuObject.php:29 21659 #: src/Free/History/Adapters/MenuObject.php:293 1654 1660 msgid "object must be a post type with an archive." 1655 1661 msgstr "" 1656 1662 1657 #: src/Free/History/Adapters/MenuObject.php:29 81663 #: src/Free/History/Adapters/MenuObject.php:299 1658 1664 msgid "target must be empty or _blank." 1659 1665 msgstr "" 1660 1666 1661 #: src/Free/History/Adapters/MenuObject.php:3 591667 #: src/Free/History/Adapters/MenuObject.php:360 1662 1668 msgid "The menu could not be read from the database." 1663 1669 msgstr "" 1664 1670 1665 #: src/Free/History/Adapters/MenuObject.php:36 61671 #: src/Free/History/Adapters/MenuObject.php:367 1666 1672 msgid "The menu metadata could not be read from the database." 1667 1673 msgstr "" 1668 1674 1669 #: src/Free/History/Adapters/MenuObject.php:37 41675 #: src/Free/History/Adapters/MenuObject.php:375 1670 1676 msgid "The menu items could not be read from the database." 1671 1677 msgstr "" 1672 1678 1673 #: src/Free/History/Adapters/MenuObject.php:42 01679 #: src/Free/History/Adapters/MenuObject.php:421 1674 1680 msgid "The menu item metadata could not be read from the database." 1675 1681 msgstr "" 1676 1682 1677 #: src/Free/History/Adapters/MenuObject.php:46 21683 #: src/Free/History/Adapters/MenuObject.php:463 1678 1684 #: src/Free/History/Adapters/TermObject.php:234 1679 1685 msgid "The creation marker could not be stored." 1680 1686 msgstr "" 1681 1687 1682 #: src/Free/History/Adapters/MenuObject.php:50 61688 #: src/Free/History/Adapters/MenuObject.php:507 1683 1689 msgid "Unknown menu operation." 1684 1690 msgstr "" 1685 1691 1686 1692 #. translators: %s: menu location slug. 1687 #: src/Free/History/Adapters/MenuObject.php:52 71693 #: src/Free/History/Adapters/MenuObject.php:528 1688 1694 #, php-format 1689 1695 msgid "The theme does not register the menu location \"%s\"." 1690 1696 msgstr "" 1691 1697 1692 #: src/Free/History/Adapters/MenuObject.php:55 61698 #: src/Free/History/Adapters/MenuObject.php:557 1693 1699 msgid "This menu has too many items to rewrite reversibly." 1694 1700 msgstr "" 1695 1701 1696 #: src/Free/History/Adapters/MenuObject.php:59 81702 #: src/Free/History/Adapters/MenuObject.php:599 1697 1703 msgid "WordPress did not save a menu item." 1698 1704 msgstr "" 1699 1705 1700 #: src/Free/History/Adapters/MenuObject.php:60 61706 #: src/Free/History/Adapters/MenuObject.php:607 1701 1707 msgid "WordPress did not remove a menu item." 1702 1708 msgstr "" 1703 1709 1704 #: src/Free/History/Adapters/MenuObject.php:61 81710 #: src/Free/History/Adapters/MenuObject.php:619 1705 1711 msgid "The menu order could not be saved." 1706 1712 msgstr "" 1707 1713 1708 #: src/Free/History/Adapters/MenuObject.php:65 51714 #: src/Free/History/Adapters/MenuObject.php:656 1709 1715 msgid "WordPress did not delete the menu." 1710 1716 msgstr "" 1711 1717 1712 #: src/Free/History/Adapters/MenuObject.php:66 21718 #: src/Free/History/Adapters/MenuObject.php:663 1713 1719 msgid "WordPress left menu items behind, so the delete was cancelled." 1714 1720 msgstr "" 1715 1721 1716 #: src/Free/History/Adapters/MenuObject.php:68 81722 #: src/Free/History/Adapters/MenuObject.php:689 1717 1723 msgid "Another menu now uses this slug." 1718 1724 msgstr "" 1719 1725 1720 #: src/Free/History/Adapters/MenuObject.php:69 51726 #: src/Free/History/Adapters/MenuObject.php:696 1721 1727 msgid "Leftover relationships already use this menu identifier." 1722 1728 msgstr "" 1723 1729 1724 #: src/Free/History/Adapters/MenuObject.php:70 01730 #: src/Free/History/Adapters/MenuObject.php:701 1725 1731 msgid "The menu was recreated with another identifier." 1726 1732 msgstr "" 1727 1733 1728 #: src/Free/History/Adapters/MenuObject.php:70 51734 #: src/Free/History/Adapters/MenuObject.php:706 1729 1735 msgid "The menu rows could not be restored." 1730 1736 msgstr "" 1731 1737 1732 #: src/Free/History/Adapters/MenuObject.php:73 61738 #: src/Free/History/Adapters/MenuObject.php:737 1733 1739 msgid "A menu item could not be restored." 1734 1740 msgstr "" 1735 1741 1736 #: src/Free/History/Adapters/MenuObject.php:74 21742 #: src/Free/History/Adapters/MenuObject.php:743 1737 1743 msgid "Leftover relationships already use a menu item identifier." 1738 1744 msgstr "" 1739 1745 1740 #: src/Free/History/Adapters/MenuObject.php:7 491746 #: src/Free/History/Adapters/MenuObject.php:750 1741 1747 msgid "A menu item relationship could not be restored." 1742 1748 msgstr "" 1743 1749 1744 #: src/Free/History/Adapters/MenuObject.php:77 41750 #: src/Free/History/Adapters/MenuObject.php:775 1745 1751 msgid "A menu item could not be removed." 1746 1752 msgstr "" 1747 1753 1748 #: src/Free/History/Adapters/MenuObject.php:83 31754 #: src/Free/History/Adapters/MenuObject.php:834 1749 1755 msgid "The active theme changed, so the menu locations cannot be restored." 1750 1756 msgstr "" 1751 1757 1752 1758 #. translators: %s: menu location slug. 1753 #: src/Free/History/Adapters/MenuObject.php:85 61759 #: src/Free/History/Adapters/MenuObject.php:857 1754 1760 #, php-format 1755 1761 msgid "The menu location \"%s\" is now used by another menu." 1756 1762 msgstr "" 1757 1763 1758 #: src/Free/History/Adapters/MenuObject.php:99 81764 #: src/Free/History/Adapters/MenuObject.php:999 1759 1765 #: src/Free/History/Engine.php:1646 1760 1766 msgid "(menu)" 1761 1767 msgstr "" 1762 1768 1763 #: src/Free/History/Adapters/MenuObject.php:106 61769 #: src/Free/History/Adapters/MenuObject.php:1067 1764 1770 msgid "The active theme is a block theme and does not display classic menus; its navigation lives in wp_navigation posts." 1765 1771 msgstr "" … … 1769 1775 msgstr "" 1770 1776 1771 #: src/Free/History/Adapters/OptionObject.php:9 71777 #: src/Free/History/Adapters/OptionObject.php:98 1772 1778 msgid "WordPress did not save the option." 1773 1779 msgstr "" 1774 1780 1775 #: src/Free/History/Adapters/OptionObject.php:1 091781 #: src/Free/History/Adapters/OptionObject.php:110 1776 1782 msgid "The option snapshot does not match this option." 1777 1783 msgstr "" 1778 1784 1779 #: src/Free/History/Adapters/OptionObject.php:11 51785 #: src/Free/History/Adapters/OptionObject.php:116 1780 1786 msgid "The option could not be removed." 1781 1787 msgstr "" 1782 1788 1783 #: src/Free/History/Adapters/OptionObject.php:13 11789 #: src/Free/History/Adapters/OptionObject.php:132 1784 1790 msgid "The option row could not be restored." 1785 1791 msgstr "" 1786 1792 1787 #: src/Free/History/Adapters/OptionObject.php:17 31793 #: src/Free/History/Adapters/OptionObject.php:174 1788 1794 #: src/Free/History/Engine.php:1648 1789 #: assets/free/js/admin.js:22 051795 #: assets/free/js/admin.js:2221 1790 1796 msgid "Site option" 1791 1797 msgstr "" … … 2087 2093 #: src/Free/History/Adapters/TermObject.php:570 2088 2094 #: src/Free/History/Engine.php:1656 2089 #: assets/free/js/admin.js:22 052095 #: assets/free/js/admin.js:2221 2090 2096 msgid "(unnamed term)" 2091 2097 msgstr "" … … 2772 2778 msgstr "" 2773 2779 2774 #: src/Free/Mcp/Endpoint.php:45 2780 #: src/Free/Mcp/Endpoint.php:77 2781 msgid "The access token is not issued for this MCP endpoint." 2782 msgstr "" 2783 2784 #: src/Free/Mcp/Endpoint.php:156 2775 2785 msgid "Llamly is updating its database. Try again in a few seconds." 2776 2786 msgstr "" 2777 2787 2778 #: src/Free/Mcp/Protocol.php:51 2779 msgid "The access token is not issued for this MCP endpoint." 2780 msgstr "" 2781 2782 #: src/Free/Mcp/Protocol.php:55 2788 #: src/Free/Mcp/Protocol.php:67 2783 2789 msgid "The requested MCP protocol version is not supported." 2784 2790 msgstr "" 2785 2791 2786 #: src/Free/Mcp/Protocol.php:3 352792 #: src/Free/Mcp/Protocol.php:347 2787 2793 msgid "Connect with an OAuth connector or a scoped Bearer key. Keys are shown only once. Verify client calls in Activity and revoke a key to deny the next request." 2788 2794 msgstr "" 2789 2795 2790 #: src/Free/Mcp/Protocol.php:3 362796 #: src/Free/Mcp/Protocol.php:348 2791 2797 msgid "Use read-only access unless writing is needed. Every write must have a durable journal entry, pass the WordPress user capability check, and include the current post revision hash. If storage or concurrency checks fail, Llamly stops before reporting success." 2792 2798 msgstr "" 2793 2799 2794 #: src/Free/Mcp/Protocol.php:3 522800 #: src/Free/Mcp/Protocol.php:364 2795 2801 msgid "Review available draft posts without changing them." 2796 2802 msgstr "" 2797 2803 2798 #: src/Free/Mcp/Protocol.php:3 622804 #: src/Free/Mcp/Protocol.php:374 2799 2805 msgid "Review posts that are accessible to this connection." 2800 2806 msgstr "" 2801 2807 2802 #: src/Free/Mcp/Protocol.php:3 712808 #: src/Free/Mcp/Protocol.php:383 2803 2809 msgid "Connection and access" 2804 2810 msgstr "" 2805 2811 2806 #: src/Free/Mcp/Protocol.php:3 722812 #: src/Free/Mcp/Protocol.php:384 2807 2813 msgid "Writing safety" 2808 2814 msgstr "" … … 3553 3559 msgstr "" 3554 3560 3555 #: src/Free/Tools/UserTools.php: 583561 #: src/Free/Tools/UserTools.php:60 3556 3562 msgid "Unknown role." 3557 3563 msgstr "" 3558 3564 3559 #: src/Free/Tools/UserTools.php:9 03565 #: src/Free/Tools/UserTools.php:93 3560 3566 msgid "Send exactly one of user_id, login or email." 3561 3567 msgstr "" 3562 3568 3563 #: src/Free/Tools/UserTools.php: 983569 #: src/Free/Tools/UserTools.php:101 3564 3570 msgid "The user was not found." 3565 3571 msgstr "" 3566 3572 3567 #: src/Free/Tools/UserTools.php:10 23573 #: src/Free/Tools/UserTools.php:105 3568 3574 msgid "The connected user cannot view this user's profile." 3569 3575 msgstr "" … … 4001 4007 #: assets/free/js/admin.js:449 4002 4008 #: assets/free/js/admin.js:1528 4003 #: assets/free/js/admin.js:2 2954009 #: assets/free/js/admin.js:2311 4004 4010 msgid "Try again" 4005 4011 msgstr "" … … 4048 4054 4049 4055 #: assets/free/js/admin.js:517 4050 #: assets/free/js/admin.js:20 804056 #: assets/free/js/admin.js:2096 4051 4057 msgid "Media" 4052 4058 msgstr "" … … 4621 4627 #. translators: %d: number of tools. 4622 4628 #: assets/free/js/admin.js:947 4623 #: assets/free/js/admin.js:20 064629 #: assets/free/js/admin.js:2021 4624 4630 #, js-format 4625 4631 msgid "%d tool" … … 5026 5032 #: assets/free/js/admin.js:1366 5027 5033 #: assets/free/js/admin.js:1598 5028 #: assets/free/js/admin.js:21 725029 #: assets/free/js/admin.js:26 645034 #: assets/free/js/admin.js:2188 5035 #: assets/free/js/admin.js:2680 5030 5036 msgid "Try again." 5031 5037 msgstr "" … … 5174 5180 5175 5181 #: assets/free/js/admin.js:1451 5176 #: assets/free/js/admin.js:25 165182 #: assets/free/js/admin.js:2532 5177 5183 msgid "Change undone" 5178 5184 msgstr "" 5179 5185 5180 5186 #: assets/free/js/admin.js:1451 5181 #: assets/free/js/admin.js:25 175182 #: assets/free/js/admin.js:25 205187 #: assets/free/js/admin.js:2533 5188 #: assets/free/js/admin.js:2536 5183 5189 msgid "Change redone" 5184 5190 msgstr "" … … 5295 5301 5296 5302 #: assets/free/js/admin.js:1534 5297 #: assets/free/js/admin.js:23 015303 #: assets/free/js/admin.js:2317 5298 5304 msgid "Nothing found" 5299 5305 msgstr "" … … 5304 5310 5305 5311 #: assets/free/js/admin.js:1535 5306 #: assets/free/js/admin.js:23 025312 #: assets/free/js/admin.js:2318 5307 5313 msgid "Clear filters" 5308 5314 msgstr "" … … 5330 5336 #. translators: %s: connection name. 5331 5337 #: assets/free/js/admin.js:1560 5332 #: assets/free/js/admin.js:23 365338 #: assets/free/js/admin.js:2352 5333 5339 msgid "All connections" 5334 5340 msgstr "" … … 5336 5342 #. translators: %s: connection name. 5337 5343 #: assets/free/js/admin.js:1561 5338 #: assets/free/js/admin.js:23 315344 #: assets/free/js/admin.js:2347 5339 5345 #, js-format 5340 5346 msgid "%s (revoked)" … … 5347 5353 5348 5354 #: assets/free/js/admin.js:1571 5349 #: assets/free/js/admin.js:23 595355 #: assets/free/js/admin.js:2375 5350 5356 msgid "Filter by connection" 5351 5357 msgstr "" … … 5573 5579 5574 5580 #: assets/free/js/admin.js:1801 5575 #: assets/free/js/admin.js:2 1995576 #: assets/free/js/admin.js:25 085581 #: assets/free/js/admin.js:2215 5582 #: assets/free/js/admin.js:2524 5577 5583 msgid "Undo" 5578 5584 msgstr "" … … 5840 5846 msgstr "" 5841 5847 5842 #: assets/free/js/admin.js:1988 5848 #: assets/free/js/admin.js:1994 5849 msgid "Everything on these screens is free and stays free." 5850 msgstr "" 5851 5852 #: assets/free/js/admin.js:1996 5853 msgid "Llamly Pro is a separate add-on with extra modules for your agent. The first one, Llamly Builder, builds pages in Elementor and in the block editor." 5854 msgstr "" 5855 5856 #: assets/free/js/admin.js:1998 5857 msgid "Learn about Llamly Pro" 5858 msgstr "" 5859 5860 #: assets/free/js/admin.js:1999 5861 msgid "Coming soon." 5862 msgstr "" 5863 5864 #: assets/free/js/admin.js:2003 5843 5865 msgid "About" 5844 5866 msgstr "" 5845 5867 5846 #: assets/free/js/admin.js:20 015868 #: assets/free/js/admin.js:2016 5847 5869 msgid "MCP endpoint" 5848 5870 msgstr "" 5849 5871 5850 #: assets/free/js/admin.js:20 015872 #: assets/free/js/admin.js:2016 5851 5873 msgid "Theme" 5852 5874 msgstr "" 5853 5875 5854 #: assets/free/js/admin.js:20 025855 #: assets/free/js/admin.js:20 205876 #: assets/free/js/admin.js:2017 5877 #: assets/free/js/admin.js:2035 5856 5878 msgid "Documentation" 5857 5879 msgstr "" 5858 5880 5859 #: assets/free/js/admin.js:20 035881 #: assets/free/js/admin.js:2018 5860 5882 msgid "Support forum on WordPress.org" 5861 5883 msgstr "" 5862 5884 5863 #: assets/free/js/admin.js:20 035885 #: assets/free/js/admin.js:2018 5864 5886 msgid "Report a problem" 5865 5887 msgstr "" 5866 5888 5867 5889 #. translators: %d: number of site areas. 5868 #: assets/free/js/admin.js:20 085890 #: assets/free/js/admin.js:2023 5869 5891 #, js-format 5870 5892 msgid "%d area" … … 5874 5896 5875 5897 #. translators: 1: "N tools", 2: "N areas". 5876 #: assets/free/js/admin.js:20 105898 #: assets/free/js/admin.js:2025 5877 5899 #, js-format 5878 5900 msgid "%1$s in %2$s of the site." 5879 5901 msgstr "" 5880 5902 5881 #: assets/free/js/admin.js:20 135903 #: assets/free/js/admin.js:2028 5882 5904 msgid "Llamly turns your WordPress into an MCP server" 5883 5905 msgstr "" 5884 5906 5885 #: assets/free/js/admin.js:20 155907 #: assets/free/js/admin.js:2030 5886 5908 msgid "AI agents read and edit the site with the permissions you give them. Almost every change stays in the history and can be undone." 5887 5909 msgstr "" 5888 5910 5889 #: assets/free/js/admin.js:20 185890 #: assets/free/js/admin.js:23 535911 #: assets/free/js/admin.js:2033 5912 #: assets/free/js/admin.js:2369 5891 5913 msgid "Connect an agent" 5892 5914 msgstr "" 5893 5915 5894 #: assets/free/js/admin.js:20 215916 #: assets/free/js/admin.js:2036 5895 5917 msgid "Getting started" 5896 5918 msgstr "" 5897 5919 5898 #: assets/free/js/admin.js:20 255920 #: assets/free/js/admin.js:2040 5899 5921 msgid "Try asking" 5900 5922 msgstr "" 5901 5923 5902 #: assets/free/js/admin.js:20 265924 #: assets/free/js/admin.js:2041 5903 5925 msgid "Click to copy and paste it into the conversation with your agent." 5904 5926 msgstr "" 5905 5927 5906 #: assets/free/js/admin.js:20 305928 #: assets/free/js/admin.js:2045 5907 5929 msgid "What Llamly can do" 5908 5930 msgstr "" 5909 5931 5910 #: assets/free/js/admin.js:20 325932 #: assets/free/js/admin.js:2047 5911 5933 msgid "Writing is paused on this site; that's why only read tools are shown." 5912 5934 msgstr "" 5913 5935 5914 #: assets/free/js/admin.js:20 365936 #: assets/free/js/admin.js:2051 5915 5937 msgid "The tool catalog is unavailable right now." 5916 5938 msgstr "" 5917 5939 5918 #: assets/free/js/admin.js:20 385940 #: assets/free/js/admin.js:2053 5919 5941 msgid "Elementor detected. In Free, Elementor pages are outside the agent's write reach." 5920 5942 msgstr "" 5921 5943 5922 #: assets/free/js/admin.js:20 415944 #: assets/free/js/admin.js:2057 5923 5945 msgid "Help" 5924 5946 msgstr "" 5925 5947 5926 #: assets/free/js/admin.js:20 455948 #: assets/free/js/admin.js:2061 5927 5949 msgid "System information" 5928 5950 msgstr "" 5929 5951 5930 #: assets/free/js/admin.js:20 465952 #: assets/free/js/admin.js:2062 5931 5953 msgid "Copy information" 5932 5954 msgstr "" 5933 5955 5934 #: assets/free/js/admin.js:20 515956 #: assets/free/js/admin.js:2067 5935 5957 msgid "Prompt copied." 5936 5958 msgstr "" 5937 5959 5938 #: assets/free/js/admin.js:20 535960 #: assets/free/js/admin.js:2069 5939 5961 msgid "Information copied." 5940 5962 msgstr "" 5941 5963 5942 #: assets/free/js/admin.js:20 625964 #: assets/free/js/admin.js:2078 5943 5965 msgid "Created a post" 5944 5966 msgstr "" 5945 5967 5946 #: assets/free/js/admin.js:20 625968 #: assets/free/js/admin.js:2078 5947 5969 msgid "Edited a post" 5948 5970 msgstr "" 5949 5971 5950 #: assets/free/js/admin.js:20 635972 #: assets/free/js/admin.js:2079 5951 5973 msgid "Removed a post" 5952 5974 msgstr "" 5953 5975 5954 #: assets/free/js/admin.js:20 635976 #: assets/free/js/admin.js:2079 5955 5977 msgid "Created a draft" 5956 5978 msgstr "" 5957 5979 5958 #: assets/free/js/admin.js:20 645980 #: assets/free/js/admin.js:2080 5959 5981 msgid "Edited a draft" 5960 5982 msgstr "" 5961 5983 5962 #: assets/free/js/admin.js:20 655984 #: assets/free/js/admin.js:2081 5963 5985 msgid "Restored a revision" 5964 5986 msgstr "" 5965 5987 5966 #: assets/free/js/admin.js:20 655988 #: assets/free/js/admin.js:2081 5967 5989 msgid "Created a term" 5968 5990 msgstr "" 5969 5991 5970 #: assets/free/js/admin.js:20 665992 #: assets/free/js/admin.js:2082 5971 5993 msgid "Edited a term" 5972 5994 msgstr "" 5973 5995 5974 #: assets/free/js/admin.js:20 665996 #: assets/free/js/admin.js:2082 5975 5997 msgid "Deleted a term" 5976 5998 msgstr "" 5977 5999 5978 #: assets/free/js/admin.js:20 676000 #: assets/free/js/admin.js:2083 5979 6001 msgid "Uploaded media" 5980 6002 msgstr "" 5981 6003 5982 #: assets/free/js/admin.js:20 686004 #: assets/free/js/admin.js:2084 5983 6005 msgid "Edited media" 5984 6006 msgstr "" 5985 6007 5986 #: assets/free/js/admin.js:20 686008 #: assets/free/js/admin.js:2084 5987 6009 msgid "Deleted media" 5988 6010 msgstr "" 5989 6011 5990 #: assets/free/js/admin.js:20 696012 #: assets/free/js/admin.js:2085 5991 6013 msgid "Created a menu" 5992 6014 msgstr "" 5993 6015 5994 #: assets/free/js/admin.js:20 696016 #: assets/free/js/admin.js:2085 5995 6017 msgid "Edited a menu" 5996 6018 msgstr "" 5997 6019 5998 #: assets/free/js/admin.js:20 706020 #: assets/free/js/admin.js:2086 5999 6021 msgid "Deleted a menu" 6000 6022 msgstr "" 6001 6023 6002 #: assets/free/js/admin.js:20 706024 #: assets/free/js/admin.js:2086 6003 6025 msgid "Reorganized the menu items" 6004 6026 msgstr "" 6005 6027 6006 #: assets/free/js/admin.js:20 716028 #: assets/free/js/admin.js:2087 6007 6029 msgid "Created a comment" 6008 6030 msgstr "" 6009 6031 6010 #: assets/free/js/admin.js:20 716032 #: assets/free/js/admin.js:2087 6011 6033 msgid "Edited a comment" 6012 6034 msgstr "" 6013 6035 6014 #: assets/free/js/admin.js:20 726036 #: assets/free/js/admin.js:2088 6015 6037 msgid "Deleted a comment" 6016 6038 msgstr "" 6017 6039 6018 #: assets/free/js/admin.js:20 736040 #: assets/free/js/admin.js:2089 6019 6041 msgid "Changed a site setting" 6020 6042 msgstr "" 6021 6043 6022 #: assets/free/js/admin.js:20 746044 #: assets/free/js/admin.js:2090 6023 6045 msgid "Edited blocks" 6024 6046 msgstr "" 6025 6047 6026 #: assets/free/js/admin.js:20 746048 #: assets/free/js/admin.js:2090 6027 6049 msgid "Created a pattern" 6028 6050 msgstr "" 6029 6051 6030 #: assets/free/js/admin.js:20 756052 #: assets/free/js/admin.js:2091 6031 6053 msgid "Edited a pattern" 6032 6054 msgstr "" 6033 6055 6034 #: assets/free/js/admin.js:20 756056 #: assets/free/js/admin.js:2091 6035 6057 msgid "Deleted a pattern" 6036 6058 msgstr "" 6037 6059 6038 #: assets/free/js/admin.js:20 766060 #: assets/free/js/admin.js:2092 6039 6061 msgid "Saved a template" 6040 6062 msgstr "" 6041 6063 6042 #: assets/free/js/admin.js:20 766064 #: assets/free/js/admin.js:2092 6043 6065 msgid "Reset the template to the original" 6044 6066 msgstr "" 6045 6067 6046 #: assets/free/js/admin.js:20 776068 #: assets/free/js/admin.js:2093 6047 6069 msgid "Changed the global styles" 6048 6070 msgstr "" 6049 6071 6050 #: assets/free/js/admin.js:20 796072 #: assets/free/js/admin.js:2095 6051 6073 msgid "Post" 6052 6074 msgstr "" 6053 6075 6054 #: assets/free/js/admin.js:20 796076 #: assets/free/js/admin.js:2095 6055 6077 msgid "Page" 6056 6078 msgstr "" 6057 6079 6058 #: assets/free/js/admin.js:20 796080 #: assets/free/js/admin.js:2095 6059 6081 msgid "Term" 6060 6082 msgstr "" 6061 6083 6062 #: assets/free/js/admin.js:20 806084 #: assets/free/js/admin.js:2096 6063 6085 msgid "Menu" 6064 6086 msgstr "" 6065 6087 6066 #: assets/free/js/admin.js:20 806088 #: assets/free/js/admin.js:2096 6067 6089 msgid "Comment" 6068 6090 msgstr "" 6069 6091 6070 #: assets/free/js/admin.js:20 816092 #: assets/free/js/admin.js:2097 6071 6093 msgid "User" 6072 6094 msgstr "" 6073 6095 6074 #: assets/free/js/admin.js:20 816096 #: assets/free/js/admin.js:2097 6075 6097 msgid "Site setting" 6076 6098 msgstr "" 6077 6099 6078 #: assets/free/js/admin.js:20 816100 #: assets/free/js/admin.js:2097 6079 6101 msgid "Block pattern" 6080 6102 msgstr "" 6081 6103 6082 #: assets/free/js/admin.js:20 826104 #: assets/free/js/admin.js:2098 6083 6105 msgid "Template" 6084 6106 msgstr "" 6085 6107 6086 #: assets/free/js/admin.js:2 0846108 #: assets/free/js/admin.js:2100 6087 6109 msgctxt "changed field" 6088 6110 msgid "title" 6089 6111 msgstr "" 6090 6112 6091 #: assets/free/js/admin.js:2 0846113 #: assets/free/js/admin.js:2100 6092 6114 msgctxt "changed field" 6093 6115 msgid "content" 6094 6116 msgstr "" 6095 6117 6096 #: assets/free/js/admin.js:2 0856118 #: assets/free/js/admin.js:2101 6097 6119 msgctxt "changed field" 6098 6120 msgid "excerpt" 6099 6121 msgstr "" 6100 6122 6101 #: assets/free/js/admin.js:2 0856123 #: assets/free/js/admin.js:2101 6102 6124 msgctxt "changed field" 6103 6125 msgid "status" 6104 6126 msgstr "" 6105 6127 6106 #: assets/free/js/admin.js:2 0866107 #: assets/free/js/admin.js:2 0896128 #: assets/free/js/admin.js:2102 6129 #: assets/free/js/admin.js:2105 6108 6130 msgctxt "changed field" 6109 6131 msgid "slug" 6110 6132 msgstr "" 6111 6133 6112 #: assets/free/js/admin.js:2 0866134 #: assets/free/js/admin.js:2102 6113 6135 msgctxt "changed field" 6114 6136 msgid "date" 6115 6137 msgstr "" 6116 6138 6117 #: assets/free/js/admin.js:2 0876139 #: assets/free/js/admin.js:2103 6118 6140 msgctxt "changed field" 6119 6141 msgid "parent page" 6120 6142 msgstr "" 6121 6143 6122 #: assets/free/js/admin.js:2 0876144 #: assets/free/js/admin.js:2103 6123 6145 msgctxt "changed field" 6124 6146 msgid "order" 6125 6147 msgstr "" 6126 6148 6127 #: assets/free/js/admin.js:2 0886149 #: assets/free/js/admin.js:2104 6128 6150 msgctxt "changed field" 6129 6151 msgid "author" 6130 6152 msgstr "" 6131 6153 6132 #: assets/free/js/admin.js:2 0886154 #: assets/free/js/admin.js:2104 6133 6155 msgctxt "changed field" 6134 6156 msgid "type" 6135 6157 msgstr "" 6136 6158 6137 #: assets/free/js/admin.js:2 0886159 #: assets/free/js/admin.js:2104 6138 6160 msgctxt "changed field" 6139 6161 msgid "name" 6140 6162 msgstr "" 6141 6163 6142 #: assets/free/js/admin.js:2 0896164 #: assets/free/js/admin.js:2105 6143 6165 msgctxt "changed field" 6144 6166 msgid "description" 6145 6167 msgstr "" 6146 6168 6147 #: assets/free/js/admin.js:2 0906169 #: assets/free/js/admin.js:2106 6148 6170 msgctxt "changed field" 6149 6171 msgid "value" 6150 6172 msgstr "" 6151 6173 6152 #: assets/free/js/admin.js:2 0906174 #: assets/free/js/admin.js:2106 6153 6175 msgctxt "changed field" 6154 6176 msgid "alt text" 6155 6177 msgstr "" 6156 6178 6157 #: assets/free/js/admin.js:2 0916179 #: assets/free/js/admin.js:2107 6158 6180 msgctxt "changed field" 6159 6181 msgid "caption" 6160 6182 msgstr "" 6161 6183 6162 #: assets/free/js/admin.js:2 0946184 #: assets/free/js/admin.js:2110 6163 6185 msgid "Force undid" 6164 6186 msgstr "" 6165 6187 6166 #: assets/free/js/admin.js:2 0956167 #: assets/free/js/admin.js:22 386188 #: assets/free/js/admin.js:2111 6189 #: assets/free/js/admin.js:2254 6168 6190 msgid "Undid a change" 6169 6191 msgstr "" 6170 6192 6171 #: assets/free/js/admin.js:2 0966172 #: assets/free/js/admin.js:22 386193 #: assets/free/js/admin.js:2112 6194 #: assets/free/js/admin.js:2254 6173 6195 msgid "Redid a change" 6174 6196 msgstr "" 6175 6197 6176 #: assets/free/js/admin.js:2 0976198 #: assets/free/js/admin.js:2113 6177 6199 msgid "Created an item" 6178 6200 msgstr "" 6179 6201 6180 #: assets/free/js/admin.js:2 0986202 #: assets/free/js/admin.js:2114 6181 6203 msgid "Removed an item" 6182 6204 msgstr "" 6183 6205 6184 #: assets/free/js/admin.js:2 0996206 #: assets/free/js/admin.js:2115 6185 6207 msgid "Changed the content" 6186 6208 msgstr "" 6187 6209 6188 6210 #. translators: %d: number of custom fields. 6189 #: assets/free/js/admin.js:21 086211 #: assets/free/js/admin.js:2124 6190 6212 #, js-format 6191 6213 msgid "%d custom field" … … 6194 6216 msgstr[1] "" 6195 6217 6196 #: assets/free/js/admin.js:21 096218 #: assets/free/js/admin.js:2125 6197 6219 msgid "categories and tags" 6198 6220 msgstr "" 6199 6221 6200 6222 #. translators: %s: comma-separated list of changed fields. 6201 #: assets/free/js/admin.js:21 116223 #: assets/free/js/admin.js:2127 6202 6224 #, js-format 6203 6225 msgid "Changed: %s" 6204 6226 msgstr "" 6205 6227 6206 #: assets/free/js/admin.js:21 236228 #: assets/free/js/admin.js:2139 6207 6229 msgid "Becomes visible to the public" 6208 6230 msgstr "" 6209 6231 6210 #: assets/free/js/admin.js:21 236232 #: assets/free/js/admin.js:2139 6211 6233 msgid "Sensitive data" 6212 6234 msgstr "" 6213 6235 6214 #: assets/free/js/admin.js:21 246236 #: assets/free/js/admin.js:2140 6215 6237 msgid "Removes or replaces content" 6216 6238 msgstr "" 6217 6239 6218 #: assets/free/js/admin.js:21 276240 #: assets/free/js/admin.js:2143 6219 6241 msgid "Pings, feeds, sitemaps, caches and webhooks of third parties are not undone." 6220 6242 msgstr "" 6221 6243 6222 #: assets/free/js/admin.js:21 296244 #: assets/free/js/admin.js:2145 6223 6245 msgid "Pages that embed this synced pattern change for visitors." 6224 6246 msgstr "" 6225 6247 6226 #: assets/free/js/admin.js:21 306248 #: assets/free/js/admin.js:2146 6227 6249 msgid "The whole site changes for visitors; page caches and CDNs are not purged." 6228 6250 msgstr "" 6229 6251 6230 #: assets/free/js/admin.js:21 326252 #: assets/free/js/admin.js:2148 6231 6253 msgid "Every page rendered with this template changes for visitors; page caches and CDNs are not purged." 6232 6254 msgstr "" 6233 6255 6234 #: assets/free/js/admin.js:21 346256 #: assets/free/js/admin.js:2150 6235 6257 msgid "CDN, page and image caches and third-party copies of the file are not undone." 6236 6258 msgstr "" 6237 6259 6238 #: assets/free/js/admin.js:21 366260 #: assets/free/js/admin.js:2152 6239 6261 msgid "Page caches, search engines and feeds may keep the previous value." 6240 6262 msgstr "" 6241 6263 6242 #: assets/free/js/admin.js:21 386264 #: assets/free/js/admin.js:2154 6243 6265 msgctxt "changes filter" 6244 6266 msgid "All" 6245 6267 msgstr "" 6246 6268 6247 #: assets/free/js/admin.js:21 386269 #: assets/free/js/admin.js:2154 6248 6270 msgctxt "changes filter" 6249 6271 msgid "Active" 6250 6272 msgstr "" 6251 6273 6252 #: assets/free/js/admin.js:21 396274 #: assets/free/js/admin.js:2155 6253 6275 msgctxt "changes filter" 6254 6276 msgid "Undone" 6255 6277 msgstr "" 6256 6278 6257 #: assets/free/js/admin.js:21 396279 #: assets/free/js/admin.js:2155 6258 6280 msgctxt "changes filter" 6259 6281 msgid "Not reversible" 6260 6282 msgstr "" 6261 6283 6262 #: assets/free/js/admin.js:2 1866284 #: assets/free/js/admin.js:2202 6263 6285 msgctxt "change state" 6264 6286 msgid "Undone" 6265 6287 msgstr "" 6266 6288 6267 #: assets/free/js/admin.js:2 1876289 #: assets/free/js/admin.js:2203 6268 6290 msgid "Conflict" 6269 6291 msgstr "" 6270 6292 6271 #: assets/free/js/admin.js:2 1886293 #: assets/free/js/admin.js:2204 6272 6294 msgctxt "change state" 6273 6295 msgid "Not reversible" 6274 6296 msgstr "" 6275 6297 6276 #: assets/free/js/admin.js:2 1896298 #: assets/free/js/admin.js:2205 6277 6299 msgid "Recovery needed" 6278 6300 msgstr "" 6279 6301 6280 #: assets/free/js/admin.js:2 1906302 #: assets/free/js/admin.js:2206 6281 6303 msgid "In progress" 6282 6304 msgstr "" 6283 6305 6284 #: assets/free/js/admin.js:2 1916306 #: assets/free/js/admin.js:2207 6285 6307 msgid "Add-on inactive" 6286 6308 msgstr "" 6287 6309 6288 #: assets/free/js/admin.js:2 1986310 #: assets/free/js/admin.js:2214 6289 6311 msgid "Review and release" 6290 6312 msgstr "" 6291 6313 6292 #: assets/free/js/admin.js:22 006293 #: assets/free/js/admin.js:25 086294 #: assets/free/js/admin.js:25 166314 #: assets/free/js/admin.js:2216 6315 #: assets/free/js/admin.js:2524 6316 #: assets/free/js/admin.js:2532 6295 6317 msgid "Redo" 6296 6318 msgstr "" 6297 6319 6298 #: assets/free/js/admin.js:22 016320 #: assets/free/js/admin.js:2217 6299 6321 msgid "Review" 6300 6322 msgstr "" 6301 6323 6302 6324 #. translators: 1: summary of the original change, 2: when it happened ("today, 14:00"). 6303 #: assets/free/js/admin.js:22 236325 #: assets/free/js/admin.js:2239 6304 6326 #, js-format 6305 6327 msgid "Redoes “%1$s” from %2$s" 6306 6328 msgstr "" 6307 6329 6308 #: assets/free/js/admin.js:22 236330 #: assets/free/js/admin.js:2239 6309 6331 #, js-format 6310 6332 msgid "Redoes “%s”" … … 6312 6334 6313 6335 #. translators: 1: summary of the original change, 2: when it happened ("today, 14:00"). 6314 #: assets/free/js/admin.js:22 276336 #: assets/free/js/admin.js:2243 6315 6337 #, js-format 6316 6338 msgid "Undoes “%1$s” from %2$s" 6317 6339 msgstr "" 6318 6340 6319 #: assets/free/js/admin.js:22 276341 #: assets/free/js/admin.js:2243 6320 6342 #, js-format 6321 6343 msgid "Undoes “%s”" … … 6323 6345 6324 6346 #. translators: 1: summary of the original change, 2: when it happened ("today, 14:00"). 6325 #: assets/free/js/admin.js:22 306347 #: assets/free/js/admin.js:2246 6326 6348 #, js-format 6327 6349 msgid "Reverted “%1$s” from %2$s over newer edits." 6328 6350 msgstr "" 6329 6351 6330 #: assets/free/js/admin.js:22 316352 #: assets/free/js/admin.js:2247 6331 6353 #, js-format 6332 6354 msgid "Reverted “%s” over newer edits." 6333 6355 msgstr "" 6334 6356 6335 #: assets/free/js/admin.js:22 326357 #: assets/free/js/admin.js:2248 6336 6358 msgid "Undoing this change brings back what was replaced." 6337 6359 msgstr "" 6338 6360 6339 6361 #. translators: 1: relative time ("5 minutes ago"), 2: who undid it. 6340 #: assets/free/js/admin.js:22 446362 #: assets/free/js/admin.js:2260 6341 6363 #, js-format 6342 6364 msgid "Undone %1$s by %2$s" 6343 6365 msgstr "" 6344 6366 6345 #: assets/free/js/admin.js:22 456346 #: assets/free/js/admin.js:22 486367 #: assets/free/js/admin.js:2261 6368 #: assets/free/js/admin.js:2264 6347 6369 msgid "someone" 6348 6370 msgstr "" 6349 6371 6350 6372 #. translators: 1: relative time ("5 minutes ago"), 2: who redid it. 6351 #: assets/free/js/admin.js:22 476373 #: assets/free/js/admin.js:2263 6352 6374 #, js-format 6353 6375 msgid "Redone %1$s by %2$s" 6354 6376 msgstr "" 6355 6377 6356 #: assets/free/js/admin.js:22 716357 #: assets/free/js/admin.js:25 486378 #: assets/free/js/admin.js:2287 6379 #: assets/free/js/admin.js:2564 6358 6380 msgid "Undo batch" 6359 6381 msgstr "" 6360 6382 6361 6383 #. translators: %d: number of changes in the batch. 6362 #: assets/free/js/admin.js:22 756384 #: assets/free/js/admin.js:2291 6363 6385 #, js-format 6364 6386 msgid "Batch of %d change" … … 6367 6389 msgstr[1] "" 6368 6390 6369 #: assets/free/js/admin.js:22 796391 #: assets/free/js/admin.js:2295 6370 6392 #, js-format 6371 6393 msgid "%1$d of %2$d change shown. The others are outside the current filters." … … 6375 6397 6376 6398 #. translators: 1: number of changes already undone, 2: total changes in the batch. 6377 #: assets/free/js/admin.js:22 836399 #: assets/free/js/admin.js:2299 6378 6400 #, js-format 6379 6401 msgid "%1$d of %2$d already undone" … … 6382 6404 msgstr[1] "" 6383 6405 6384 #: assets/free/js/admin.js:2 2876406 #: assets/free/js/admin.js:2303 6385 6407 #, js-format 6386 6408 msgid "%d item" … … 6389 6411 msgstr[1] "" 6390 6412 6391 #: assets/free/js/admin.js:2 2946413 #: assets/free/js/admin.js:2310 6392 6414 msgid "The history couldn't be loaded" 6393 6415 msgstr "" 6394 6416 6395 #: assets/free/js/admin.js:2 2976417 #: assets/free/js/admin.js:2313 6396 6418 msgid "Loading the history…" 6397 6419 msgstr "" 6398 6420 6399 #: assets/free/js/admin.js:23 016421 #: assets/free/js/admin.js:2317 6400 6422 msgid "No change matches these filters." 6401 6423 msgstr "" 6402 6424 6403 #: assets/free/js/admin.js:23 056425 #: assets/free/js/admin.js:2321 6404 6426 msgid "Writing through MCP is paused on this site. Undo and redo are unavailable until it comes back." 6405 6427 msgstr "" 6406 6428 6407 #: assets/free/js/admin.js:23 406429 #: assets/free/js/admin.js:2356 6408 6430 msgid "All types" 6409 6431 msgstr "" 6410 6432 6411 #: assets/free/js/admin.js:23 456433 #: assets/free/js/admin.js:2361 6412 6434 msgid "Change history" 6413 6435 msgstr "" 6414 6436 6415 #: assets/free/js/admin.js:23 496437 #: assets/free/js/admin.js:2365 6416 6438 msgid "No changes yet" 6417 6439 msgstr "" 6418 6440 6419 #: assets/free/js/admin.js:23 516441 #: assets/free/js/admin.js:2367 6420 6442 msgid "When an agent creates or edits something on the site, it shows up here with the option to undo." 6421 6443 msgstr "" 6422 6444 6423 #: assets/free/js/admin.js:23 526445 #: assets/free/js/admin.js:2368 6424 6446 msgid "Writing through MCP is paused on this site. Reading is still available." 6425 6447 msgstr "" 6426 6448 6427 #: assets/free/js/admin.js:23 576449 #: assets/free/js/admin.js:2373 6428 6450 msgid "Search by change or item" 6429 6451 msgstr "" 6430 6452 6431 #: assets/free/js/admin.js:23 586453 #: assets/free/js/admin.js:2374 6432 6454 msgid "Search the history" 6433 6455 msgstr "" 6434 6456 6435 #: assets/free/js/admin.js:23 606457 #: assets/free/js/admin.js:2376 6436 6458 msgid "Filter by item type" 6437 6459 msgstr "" 6438 6460 6439 #: assets/free/js/admin.js:23 676461 #: assets/free/js/admin.js:2383 6440 6462 msgid "(removed)" 6441 6463 msgstr "" 6442 6464 6443 #: assets/free/js/admin.js:23 676465 #: assets/free/js/admin.js:2383 6444 6466 msgid "(moved to the trash)" 6445 6467 msgstr "" 6446 6468 6447 #: assets/free/js/admin.js:23 676469 #: assets/free/js/admin.js:2383 6448 6470 msgid "(deleted)" 6449 6471 msgstr "" 6450 6472 6451 #: assets/free/js/admin.js:23 716473 #: assets/free/js/admin.js:2387 6452 6474 msgctxt "changed field" 6453 6475 msgid "item" 6454 6476 msgstr "" 6455 6477 6456 #: assets/free/js/admin.js:2 3966478 #: assets/free/js/admin.js:2412 6457 6479 msgid "(empty)" 6458 6480 msgstr "" 6459 6481 6460 6482 #. translators: %d: number of changed lines that are not shown. 6461 #: assets/free/js/admin.js:24 166483 #: assets/free/js/admin.js:2432 6462 6484 #, js-format 6463 6485 msgid "…and %d more changed line" … … 6466 6488 msgstr[1] "" 6467 6489 6468 #: assets/free/js/admin.js:24 196490 #: assets/free/js/admin.js:2435 6469 6491 msgid "Changed beyond the shown excerpt." 6470 6492 msgstr "" 6471 6493 6472 #: assets/free/js/admin.js:24 206494 #: assets/free/js/admin.js:2436 6473 6495 msgid "Incomplete diff: the value is longer than what is shown." 6474 6496 msgstr "" 6475 6497 6476 #: assets/free/js/admin.js:24 246498 #: assets/free/js/admin.js:2440 6477 6499 msgid "Only the first changes are shown." 6478 6500 msgstr "" 6479 6501 6480 #: assets/free/js/admin.js:24 336502 #: assets/free/js/admin.js:2449 6481 6503 msgid "Risk not given" 6482 6504 msgstr "" 6483 6505 6484 #: assets/free/js/admin.js:24 386506 #: assets/free/js/admin.js:2454 6485 6507 msgid "Approved" 6486 6508 msgstr "" 6487 6509 6488 #: assets/free/js/admin.js:24 406489 #: assets/free/js/admin.js:26 506510 #: assets/free/js/admin.js:2456 6511 #: assets/free/js/admin.js:2666 6490 6512 msgid "Reject" 6491 6513 msgstr "" 6492 6514 6493 #: assets/free/js/admin.js:24 426494 #: assets/free/js/admin.js:26 476515 #: assets/free/js/admin.js:2458 6516 #: assets/free/js/admin.js:2663 6495 6517 msgid "Approve" 6496 6518 msgstr "" 6497 6519 6498 #: assets/free/js/admin.js:24 486520 #: assets/free/js/admin.js:2464 6499 6521 #, js-format 6500 6522 msgid "The agent sent this request %d times. Your answer applies to all of them." … … 6502 6524 6503 6525 #. translators: %s: when the request leaves the list ("tomorrow, 14:00"). 6504 #: assets/free/js/admin.js:24 516526 #: assets/free/js/admin.js:2467 6505 6527 #, js-format 6506 6528 msgid "Expires %s" 6507 6529 msgstr "" 6508 6530 6509 #: assets/free/js/admin.js:24 616531 #: assets/free/js/admin.js:2477 6510 6532 #, js-format 6511 6533 msgid "Approved until %s. Waiting for the agent to repeat the request." 6512 6534 msgstr "" 6513 6535 6514 #: assets/free/js/admin.js:24 666536 #: assets/free/js/admin.js:2482 6515 6537 msgid "Requests waiting for approval" 6516 6538 msgstr "" 6517 6539 6518 #: assets/free/js/admin.js:24 686540 #: assets/free/js/admin.js:2484 6519 6541 msgid "The agent has to repeat the request after approval." 6520 6542 msgstr "" 6521 6543 6522 #: assets/free/js/admin.js:25 016544 #: assets/free/js/admin.js:2517 6523 6545 msgid "It's recorded as a new change." 6524 6546 msgstr "" 6525 6547 6526 #: assets/free/js/admin.js:25 036548 #: assets/free/js/admin.js:2519 6527 6549 msgid "Undo this change?" 6528 6550 msgstr "" 6529 6551 6530 #: assets/free/js/admin.js:25 036552 #: assets/free/js/admin.js:2519 6531 6553 msgid "Redo this change?" 6532 6554 msgstr "" 6533 6555 6534 #: assets/free/js/admin.js:25 056556 #: assets/free/js/admin.js:2521 6535 6557 msgid "Llamly checks that the item is still as the agent left it before changing it. If someone edited it since, nothing is changed." 6536 6558 msgstr "" 6537 6559 6538 6560 #. translators: %d: number of other changes not listed. 6539 #: assets/free/js/admin.js:25 326561 #: assets/free/js/admin.js:2548 6540 6562 #, js-format 6541 6563 msgid "and %d more" … … 6545 6567 6546 6568 #. translators: %d: number of changes in the batch. 6547 #: assets/free/js/admin.js:25 366569 #: assets/free/js/admin.js:2552 6548 6570 msgid "Undo this batch?" 6549 6571 msgstr "" 6550 6572 6551 #: assets/free/js/admin.js:25 366573 #: assets/free/js/admin.js:2552 6552 6574 #, js-format 6553 6575 msgid "%d change made together by the agent." … … 6557 6579 6558 6580 #. translators: %d: number of changes of the batch outside the current filters that are still to undo. 6559 #: assets/free/js/admin.js:25 416581 #: assets/free/js/admin.js:2557 6560 6582 #, js-format 6561 6583 msgid "%d change of this batch is outside the current filters" … … 6564 6586 msgstr[1] "" 6565 6587 6566 #: assets/free/js/admin.js:25 436588 #: assets/free/js/admin.js:2559 6567 6589 msgid "Undo batch undoes it too:" 6568 6590 msgid_plural "Undo batch undoes them too:" … … 6570 6592 msgstr[1] "" 6571 6593 6572 #: assets/free/js/admin.js:25 466594 #: assets/free/js/admin.js:2562 6573 6595 msgid "Llamly undoes from the newest change to the oldest. If one of them changed since, it stops there and shows what's left. Each undo is recorded as a new change." 6574 6596 msgstr "" 6575 6597 6576 #: assets/free/js/admin.js:25 566598 #: assets/free/js/admin.js:2572 6577 6599 msgid "The change couldn't be undone." 6578 6600 msgstr "" 6579 6601 6580 6602 #. translators: 1: changes undone, 2: total changes in the batch. 6581 #: assets/free/js/admin.js:25 606603 #: assets/free/js/admin.js:2576 6582 6604 msgid "Batch partly undone" 6583 6605 msgstr "" 6584 6606 6585 #: assets/free/js/admin.js:25 606607 #: assets/free/js/admin.js:2576 6586 6608 #, js-format 6587 6609 msgid "%1$d of %2$d change undone." … … 6590 6612 msgstr[1] "" 6591 6613 6592 #: assets/free/js/admin.js:25 646614 #: assets/free/js/admin.js:2580 6593 6615 #, js-format 6594 6616 msgid "Stopped at %s" 6595 6617 msgstr "" 6596 6618 6597 #: assets/free/js/admin.js:25 656619 #: assets/free/js/admin.js:2581 6598 6620 msgid "a change" 6599 6621 msgstr "" 6600 6622 6601 6623 #. translators: %d: number of changes left in the batch. 6602 #: assets/free/js/admin.js:25 676624 #: assets/free/js/admin.js:2583 6603 6625 #, js-format 6604 6626 msgid "%d change of this batch is left." … … 6607 6629 msgstr[1] "" 6608 6630 6609 #: assets/free/js/admin.js:25 696631 #: assets/free/js/admin.js:2585 6610 6632 msgid "Review the item and try again. The ones already undone aren't repeated." 6611 6633 msgstr "" 6612 6634 6613 #: assets/free/js/admin.js:25 706635 #: assets/free/js/admin.js:2586 6614 6636 msgid "Got it" 6615 6637 msgstr "" 6616 6638 6617 6639 #. translators: %d: number of items undone. 6618 #: assets/free/js/admin.js:25 746640 #: assets/free/js/admin.js:2590 6619 6641 #, js-format 6620 6642 msgid "Batch undone (%d item)" … … 6623 6645 msgstr[1] "" 6624 6646 6625 #: assets/free/js/admin.js:25 826647 #: assets/free/js/admin.js:2598 6626 6648 msgid "Undo anyway?" 6627 6649 msgstr "" 6628 6650 6629 #: assets/free/js/admin.js:25 836651 #: assets/free/js/admin.js:2599 6630 6652 msgid "The item goes back to how it was before this agent change. Edits made after it are replaced." 6631 6653 msgstr "" 6632 6654 6633 #: assets/free/js/admin.js:2 5856655 #: assets/free/js/admin.js:2601 6634 6656 msgid "Nothing is lost: the force undo stays in the history as a new change, and undoing it brings back the replaced state." 6635 6657 msgstr "" 6636 6658 6637 #: assets/free/js/admin.js:2 5876638 #: assets/free/js/admin.js:26 186659 #: assets/free/js/admin.js:2603 6660 #: assets/free/js/admin.js:2634 6639 6661 msgid "Undo anyway" 6640 6662 msgstr "" 6641 6663 6642 #: assets/free/js/admin.js:2 5956664 #: assets/free/js/admin.js:2611 6643 6665 msgid "Change force undone. You can undo it from the history." 6644 6666 msgstr "" 6645 6667 6646 #: assets/free/js/admin.js:26 066668 #: assets/free/js/admin.js:2622 6647 6669 msgid "Review conflict" 6648 6670 msgstr "" 6649 6671 6650 #: assets/free/js/admin.js:26 086672 #: assets/free/js/admin.js:2624 6651 6673 msgid "The item changed after this change." 6652 6674 msgstr "" 6653 6675 6654 #: assets/free/js/admin.js:26 126676 #: assets/free/js/admin.js:2628 6655 6677 msgid "Undo anyway takes the item back to how it was before the agent change and overwrites the edit made after it. The undo stays in the history and can be undone." 6656 6678 msgstr "" 6657 6679 6658 #: assets/free/js/admin.js:26 146680 #: assets/free/js/admin.js:2630 6659 6681 msgid "To undo, the item has to be as the agent left it. Check the item in WordPress." 6660 6682 msgstr "" 6661 6683 6662 #: assets/free/js/admin.js:26 166684 #: assets/free/js/admin.js:2632 6663 6685 msgid "Open in WordPress" 6664 6686 msgstr "" 6665 6687 6666 #: assets/free/js/admin.js:26 176688 #: assets/free/js/admin.js:2633 6667 6689 msgid "Keep as is" 6668 6690 msgstr "" 6669 6691 6670 #: assets/free/js/admin.js:26 246692 #: assets/free/js/admin.js:2640 6671 6693 msgid "Accept the item's current state?" 6672 6694 msgstr "" 6673 6695 6674 #: assets/free/js/admin.js:26 246696 #: assets/free/js/admin.js:2640 6675 6697 msgid "A change was interrupted." 6676 6698 msgstr "" 6677 6699 6678 #: assets/free/js/admin.js:26 266700 #: assets/free/js/admin.js:2642 6679 6701 msgid "The item matches neither the previous state nor the request. Open the item in WordPress and check the saved content." 6680 6702 msgstr "" 6681 6703 6682 #: assets/free/js/admin.js:26 286704 #: assets/free/js/admin.js:2644 6683 6705 msgid "When you accept, Llamly doesn't change the content: it closes this operation, allows new changes and invalidates editors open with the old version." 6684 6706 msgstr "" 6685 6707 6686 #: assets/free/js/admin.js:26 306708 #: assets/free/js/admin.js:2646 6687 6709 msgid "Accept current state" 6688 6710 msgstr "" 6689 6711 6690 #: assets/free/js/admin.js:26 356712 #: assets/free/js/admin.js:2651 6691 6713 msgid "The recovery was recorded and the item was released." 6692 6714 msgstr "" 6693 6715 6694 #: assets/free/js/admin.js:26 426716 #: assets/free/js/admin.js:2658 6695 6717 msgid "The agent" 6696 6718 msgstr "" 6697 6719 6698 #: assets/free/js/admin.js:26 456720 #: assets/free/js/admin.js:2661 6699 6721 msgid "Approve this request?" 6700 6722 msgstr "" 6701 6723 6702 #: assets/free/js/admin.js:26 466724 #: assets/free/js/admin.js:2662 6703 6725 msgid "The approval is only for this request and for a limited time. The agent has to repeat the request after approval. The change goes into the history and can be undone." 6704 6726 msgstr "" 6705 6727 6706 #: assets/free/js/admin.js:26 486728 #: assets/free/js/admin.js:2664 6707 6729 msgid "Reject this request?" 6708 6730 msgstr "" 6709 6731 6710 #: assets/free/js/admin.js:26 496732 #: assets/free/js/admin.js:2665 6711 6733 msgid "Nothing is changed. If the agent repeats the same request, it gets the rejection." 6712 6734 msgstr "" 6713 6735 6714 #: assets/free/js/admin.js:26 596736 #: assets/free/js/admin.js:2675 6715 6737 msgid "Request approved. The agent has to repeat the request." 6716 6738 msgstr "" 6717 6739 6718 #: assets/free/js/admin.js:26 606740 #: assets/free/js/admin.js:2676 6719 6741 msgid "Request rejected." 6720 6742 msgstr "" 6721 6743 6722 6744 #. translators: 1: requests answered, 2: requests that failed, 3: reason. 6723 #: assets/free/js/admin.js:26 636745 #: assets/free/js/admin.js:2679 6724 6746 #, js-format 6725 6747 msgid "%1$d requests were answered and %2$d failed: %3$s" 6726 6748 msgstr "" 6727 6749 6728 #: assets/free/js/admin.js:26 726750 #: assets/free/js/admin.js:2688 6729 6751 msgid "Activity" 6730 6752 msgstr "" 6731 6753 6732 #: assets/free/js/admin.js:26 816754 #: assets/free/js/admin.js:2697 6733 6755 msgid "Every change made by an agent is recorded with the previous state. You can undo each change separately." 6734 6756 msgstr "" -
llamly/tags/1.1.0/llamly.php
r3788333 r3800467 3 3 * Plugin Name: Llamly MCP - AI Agent with ChatGPT & Claude 4 4 * Description: Connect AI clients to WordPress through the Llamly MCP server. 5 * Version: 1. 0.35 * Version: 1.1.0 6 6 * Requires at least: 6.2 7 7 * Requires PHP: 8.0 … … 19 19 20 20 define('LLAMLY_FREE_PLUGIN_FILE', __FILE__); 21 define('LLAMLY_FREE_VERSION', '1. 0.3');21 define('LLAMLY_FREE_VERSION', '1.1.0'); 22 22 // Writes are on by default: concurrent writes and the change journal were verified on WP 7.1 + MariaDB 10.11 and 23 23 // WP 6.2 + PHP 8.0 + MySQL 8.0. A site can still pause all writes by defining this constant as false in wp-config.php. … … 43 43 define('LLAMLY_FREE_MODULE_API', \Llamly\Free\Modules\ModuleRegistry::API); 44 44 45 // Freemius (LLP-455): usage statistics after an explicit opt-in, and the Llamly Pro add-on. Loaded here, in the main 46 // file, so the SDK sees activation and deactivation. Without ready settings it is not loaded and nothing is defined. 47 \Llamly\Free\Freemius\Sdk::boot(); 48 if (\Llamly\Free\Freemius\Sdk::instance() !== null && !function_exists('llamly_fs')) { 49 /** 50 * The Freemius instance of Llamly, for Freemius add-ons of Llamly (they check function_exists('llamly_fs') or wait 51 * for the llamly_fs_loaded action). Defined only when the SDK is loaded. 52 * 53 * @return \Freemius 54 */ 55 function llamly_fs() { 56 return \Llamly\Free\Freemius\Sdk::instance(); 57 } 58 do_action('llamly_fs_loaded'); 59 } 60 45 61 register_activation_hook(__FILE__, ['\\Llamly\\Free\\Core\\Plugin', 'activate']); 46 62 register_deactivation_hook(__FILE__, ['\\Llamly\\Free\\Core\\Plugin', 'deactivate']); -
llamly/tags/1.1.0/readme.txt
r3788333 r3800467 5 5 Tested up to: 7.1 6 6 Requires PHP: 8.0 7 Stable tag: 1. 0.37 Stable tag: 1.1.0 8 8 License: GPLv2 or later 9 9 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 14 14 15 15 Llamly MCP connects your WordPress site to the AI you already use: ChatGPT, Claude, Codex, Cursor and other AI agents. Ask in plain language and your agent writes, edits and organizes the site for you, with your WordPress content permissions, a full change history and undo. It is a free WordPress MCP server (Model Context Protocol) that runs inside your own site: no relay, no Llamly server in between, no Llamly account and no API key from an AI provider. 16 17 https://www.youtube.com/watch?v=mJwEgav2r40 16 18 17 19 **Use the AI subscription you already have. Keep every change reversible.** … … 22 24 * **Content, never administration**: the agent works with your content permissions only. Whatever your role, it never changes site settings, users, plugins, themes or code, and never writes unfiltered HTML. 23 25 * **Bring your own AI**: works with ChatGPT, claude.ai, Claude Desktop, Claude Code, Codex, Cursor, OpenCode and Antigravity CLI. Llamly has no AI of its own and no usage meter: the agent you already pay for does the work. 24 * **Your data stays on your site**: self-hosted, no account, no relay , no telemetry. Your AI app connects to your site, and Llamly never calls out.26 * **Your data stays on your site**: self-hosted, no account, no relay. Your AI app connects to your site, and Llamly sends nothing out unless you opt in to the optional usage statistics (see External services). 25 27 * **Ready in a few minutes**: a step-by-step recipe for each app with your site address already filled in, an "Add to Claude" button, and a Doctor that checks your server and tells you what to ask your host. 26 28 … … 47 49 = Connect Claude to WordPress (claude.ai and Claude Desktop) = 48 50 51 Watch the 2-minute tutorial: 52 53 https://www.youtube.com/watch?v=0lrDl_NwaSw 54 49 55 Click "Add to Claude" in the Llamly recipe, review the request on your site, choose read only or read and write, and click Approve access. The same connector shows up in Claude Desktop on the same account. Needs a public HTTPS address; for a site on your computer, Claude Desktop uses the local bridge shown in the recipe. 50 56 … … 177 183 = Does Llamly send my content anywhere? = 178 184 179 No. Llamly makes no outbound calls to Llamly or to any third-party service at runtime. The AI app you connect sends requests to your site and receives the answers; what that app does with them is governed by its own terms. The connection diagnostics in Connections (Run checks) only call your own site (loopback) to check that the REST API, the MCP endpoint and the OAuth discovery URLs answer.185 No. Your posts, pages, media, connections, keys, logs and change journal are never sent anywhere. Llamly makes no outbound calls at runtime, except the optional usage statistics described in External services, which send nothing unless an administrator opts in. The AI app you connect sends requests to your site and receives the answers; what that app does with them is governed by its own terms. The connection diagnostics in Connections (Run checks) only call your own site (loopback) to check that the REST API, the MCP endpoint and the OAuth discovery URLs answer. 180 186 181 187 = Can the agent publish or delete things without me? = … … 227 233 There is no Llamly server: the AI app you connect sends its requests straight to your site, and each request acts with the content permissions of the user who created the key or approved the OAuth sign-in, never administrator ones. 228 234 229 Expired rows are removed by a daily WordPress cron event. Llamly sets no cookies on the public site, adds no tracking, and makes no external requests at runtime. Links in the admin that open claude.ai or chatgpt.com only open those sites in your browser when you click them. 235 Expired rows are removed by a daily WordPress cron event. Llamly sets no cookies on the public site and adds no tracking to it. Llamly itself makes no external requests at runtime; the only exception is the optional, opt-in usage statistics described in External services, which send nothing unless an administrator clicks "Allow & Continue". Links in the admin that open claude.ai or chatgpt.com only open those sites in your browser when you click them. 236 237 == External services == 238 239 Llamly includes the Freemius SDK (https://freemius.com), which Llamly uses for optional usage statistics and, later, to offer the Llamly Pro add-on. It connects to `api.freemius.com` and `wp.freemius.com`. 240 241 * **Before you choose, and if you skip:** the Llamly screen shows an opt-in screen once, with "Allow & Continue" and "Skip". Nothing is sent to Freemius before you click "Allow & Continue". If you click "Skip", nothing is sent and every feature of Llamly keeps working exactly the same; you can opt in later from the plugin's row on the Plugins screen. 242 * **After you click "Allow & Continue":** your browser sends the opt-in to `wp.freemius.com`, and from then on the site reports to `api.freemius.com`: your first and last name and email address as an administrator, the site URL, title and language, the WordPress, PHP, Llamly and SDK versions, Llamly events (activation, deactivation, uninstall, version updates) and the names, slugs and versions of the installed plugins and themes. The opt-in screen lists these before you agree. Freemius may then email you security and feature updates, educational content and occasional offers, as the opt-in screen says. After opting in, Llamly > Account shows what is shared and lets you opt out. 243 * **Deactivation feedback:** when you deactivate Llamly, an optional form asks why. If you send it, the reason you chose (and any text you wrote) is sent to Freemius, anonymously if you did not opt in. You can skip the form. 244 * Nothing from your posts, pages, media, connections, keys, logs or the change journal is ever sent. 245 246 Freemius terms of service: https://freemius.com/terms/ · Freemius privacy policy: https://freemius.com/privacy/ 230 247 231 248 == Source code == … … 254 271 == Changelog == 255 272 273 = 1.1.0 = 274 * Optional, opt-in usage and diagnostic statistics through Freemius. Nothing is sent without an administrator's consent ("Allow & Continue" on the Llamly screen). "Skip" keeps every feature working exactly the same. See External services. 275 * About: a Llamly Pro card. Llamly Pro will be a separate add-on and is coming soon; nothing in Llamly is locked. 276 * Uninstall keeps the same rules, tells the Freemius SDK about the uninstall (sent only if you opted in or sent deactivation feedback), and also removes what the Freemius SDK stored about Llamly. 277 * Readme: tutorial videos. 278 256 279 = 1.0.3 = 257 280 * The MCP endpoint checks the request origin and the caller's credential (Llamly API key or OAuth access token) in its REST permission callback, before the request reaches the MCP handler. Responses to clients are unchanged. … … 285 308 == Upgrade Notice == 286 309 310 = 1.1.0 = 311 Optional, opt-in usage statistics through Freemius: nothing is sent without your consent, and Skip keeps everything working. Llamly Pro add-on coming soon. 312 287 313 = 1.0.3 = 288 314 The MCP endpoint authenticates in its REST permission callback. Translations now come from translate.wordpress.org. -
llamly/tags/1.1.0/src/Free/Admin/AdminPage.php
r3788333 r3800467 28 28 add_action('admin_notices', [self::class, 'renderOnboardingNotice']); 29 29 add_action('admin_post_llamly_free_dismiss_onboarding', [self::class, 'dismissOnboardingNotice']); 30 if (defined('LLAMLY_FREE_PLUGIN_FILE')) { 31 add_filter('plugin_action_links_' . plugin_basename(LLAMLY_FREE_PLUGIN_FILE), [self::class, 'pluginActionLinks']); 32 } 33 } 34 35 /** Llamly Pro destination for the About card, or '' while Llamly Pro has no page yet. */ 36 private static function proUrl(): string 37 { 38 return \Llamly\Free\Freemius\Sdk::config()->upgradeUrl(); 39 } 40 41 private static function proActive(): bool 42 { 43 return defined('LLAMLY_PRO_VERSION'); 44 } 45 46 /** 47 * Plugins screen row: a "Llamly Pro" link to the Llamly Pro card of the About tab, only once Llamly Pro has a page 48 * and while it is not active. The card is the one place that points outside (WordPress.org guideline 11). 49 * 50 * @param array<string,string> $links 51 * @return array<string,string> 52 */ 53 public static function pluginActionLinks($links): array 54 { 55 $links = is_array($links) ? $links : []; 56 if (self::proUrl() !== '' && !self::proActive() && current_user_can('manage_options')) { 57 $links['llamly_pro'] = '<a href="' . esc_url(admin_url('admin.php?page=' . self::MENU_SLUG . '&tab=about#llamly-pro')) . '">' . esc_html__('Llamly Pro', 'llamly') . '</a>'; 58 } 59 return $links; 30 60 } 31 61 … … 119 149 } 120 150 121 $assetVersion = defined('LLAMLY_FREE_VERSION') ? LLAMLY_FREE_VERSION : '1. 0.3';151 $assetVersion = defined('LLAMLY_FREE_VERSION') ? LLAMLY_FREE_VERSION : '1.1.0'; 122 152 $base = LLAMLY_FREE_ASSET_URL; 123 153 foreach (['tokens', 'llamly', 'connections', 'activity', 'logs', 'settings', 'about', 'admin-app'] as $style) { … … 141 171 'exportLogsUrl' => wp_nonce_url(admin_url('admin-post.php?action=llamly_free_export_logs'), 'llamly_free_export_logs'), 142 172 'sections' => self::sectionsForCurrentUser(), 173 'pro' => ['url' => esc_url_raw(self::proUrl(), ['https']), 'active' => self::proActive()], 143 174 'site' => [ 144 175 'name' => wp_strip_all_tags(get_bloginfo('name')), -
llamly/tags/1.1.0/src/Free/Core/Plugin.php
r3788333 r3800467 316 316 * Runs only when the upgrade path has a destructive step (Schema::STEPS); additive upgrades skip it. 317 317 * Copies each existing table to <table>_bak_v<old> (structure and rows) unless that backup already exists. 318 * Older backups are pruned after a verified upgrade (Maintenance::pruneBackups); uninstall .phpremoves the rest.318 * Older backups are pruned after a verified upgrade (Maintenance::pruneBackups); uninstall (Core\Uninstall) removes the rest. 319 319 */ 320 320 private static function backupTables(int $old): bool -
llamly/tags/1.1.0/src/Free/Core/Schema.php
r3788333 r3800467 46 46 /** 47 47 * Tables (suffixes after {prefix}llamly_free_) of the database restore points, which 1.0.0 created and this version no 48 * longer has. install() drops them, their upgrade backups and the work tables a restore left behind; uninstall .phptoo.48 * longer has. install() drops them, their upgrade backups and the work tables a restore left behind; uninstall (Core\Uninstall) too. 49 49 */ 50 50 private const RETIRED_TABLES = ['checkpoints', 'checkpoint_chunks', 'checkpoint_restores', 'checkpoint_state']; -
llamly/tags/1.1.0/uninstall.php
r3788333 r3800467 1 1 <?php 2 2 /** 3 * Removes Llamly Free data when the plugin is deleted, only if the administrator enabled data removal. 4 * Leaves the options of earlier experimental Llamly builds (llamly_mcp_spike_*) untouched. 3 * Removes Llamly data when the plugin is deleted (rules in Llamly\Free\Core\Uninstall). 4 * 5 * WordPress runs this file instead of any uninstall hook, so it also does what the Freemius SDK's uninstall hook would: 6 * Uninstall::onUninstall() lets the SDK report the uninstall (only for a site that opted in, or with deactivation 7 * feedback) and fire after_uninstall, then runs the cleanup. Being a file, it runs on every delete, including a plugin 8 * updated while inactive and a subsite-only activation on multisite, where no uninstall hook was ever registered. 5 9 */ 6 10 7 11 declare(strict_types=1); 8 9 // phpcs:disable WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching -- Llamly reads and writes its own tables and locks WordPress rows inside journal transactions; a cached read would defeat the revision checks.10 // phpcs:disable WordPress.DB.DirectDatabaseQuery.SchemaChange -- creates, upgrades, backs up or drops only Llamly tables ({prefix}llamly_free_*).11 12 12 13 if (!defined('WP_UNINSTALL_PLUGIN')) { … … 14 15 } 15 16 16 if (!defined('LLAMLY_FREE_ROOT')) { 17 $llamlyFreeRoot = is_file(__DIR__ . '/src/Free/Core/Autoloader.php') ? __DIR__ : dirname(__DIR__); 18 define('LLAMLY_FREE_ROOT', $llamlyFreeRoot); 19 } 20 require_once LLAMLY_FREE_ROOT . '/src/Free/Core/Autoloader.php'; 21 \Llamly\Free\Core\Autoloader::register(); 17 require_once __DIR__ . '/llamly.php'; 22 18 23 $llamlyFreeUninstallSite = static function (): void { 24 global $wpdb; 25 26 wp_clear_scheduled_hook('llamly_free_daily_maintenance'); 27 // Unfinished uploads in parts are temporary files, never site data: always removed. 28 wp_unschedule_hook(\Llamly\Free\Tools\MediaParts::HOOK_EXPIRE); 29 \Llamly\Free\Tools\MediaParts::purgeAll(); 30 // Data is preserved unless an administrator explicitly enabled removal in Settings. 31 $settings = get_option('llamly_free_settings', []); 32 if (!is_array($settings) || ($settings['delete_data_on_uninstall'] ?? false) !== true) { 33 return; 34 } 35 36 foreach (\Llamly\Free\Core\Schema::tableNames() as $table) { 37 $wpdb->query($wpdb->prepare('DROP TABLE IF EXISTS %i', $table)); 38 $backups = $wpdb->get_col($wpdb->prepare('SHOW TABLES LIKE %s', $wpdb->esc_like($table . '_bak_v') . '%')); 39 foreach ((array) $backups as $backup) { 40 $wpdb->query($wpdb->prepare('DROP TABLE IF EXISTS %i', (string) $backup)); 41 } 42 } 43 44 // Tables of features that left the plugin, if an upgrade did not drop them yet. 45 \Llamly\Free\Core\Schema::dropRetired(); 46 47 // Media retention copies (uploads/llamly-mcp/). Their index rows (llamly_free_mret_*) go with the options below. 48 $llamlyFreeUploads = wp_upload_dir(null, false); 49 $llamlyFreeBase = realpath((string) ($llamlyFreeUploads['basedir'] ?? '')); 50 $llamlyFreeDir = $llamlyFreeBase ? realpath($llamlyFreeBase . '/llamly-mcp') : false; 51 if ($llamlyFreeBase && $llamlyFreeDir && strpos($llamlyFreeDir, $llamlyFreeBase . DIRECTORY_SEPARATOR) === 0 && is_dir($llamlyFreeDir) && !is_link($llamlyFreeDir)) { 52 $llamlyFreeItems = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($llamlyFreeDir, FilesystemIterator::SKIP_DOTS), RecursiveIteratorIterator::CHILD_FIRST); 53 foreach ($llamlyFreeItems as $llamlyFreeItem) { 54 if ($llamlyFreeItem->isDir() && !$llamlyFreeItem->isLink()) { 55 \Llamly\Free\Core\Filesystem::direct()->rmdir($llamlyFreeItem->getPathname()); 56 } else { 57 wp_delete_file($llamlyFreeItem->getPathname()); 58 } 59 } 60 \Llamly\Free\Core\Filesystem::direct()->rmdir($llamlyFreeDir); 61 } 62 63 $like = $wpdb->esc_like('llamly_free_') . '%'; 64 $timeout = $wpdb->esc_like('_transient_timeout_llamly_free_') . '%'; 65 $transient = $wpdb->esc_like('_transient_llamly_free_') . '%'; 66 $siteTimeout = $wpdb->esc_like('_site_transient_timeout_llamly_free_') . '%'; 67 $siteTransient = $wpdb->esc_like('_site_transient_llamly_free_') . '%'; 68 $wpdb->query($wpdb->prepare( 69 "DELETE FROM {$wpdb->options} WHERE option_name LIKE %s OR option_name LIKE %s OR option_name LIKE %s OR option_name LIKE %s OR option_name LIKE %s", 70 $like, 71 $timeout, 72 $transient, 73 $siteTimeout, 74 $siteTransient 75 )); 76 $wpdb->query($wpdb->prepare("DELETE FROM {$wpdb->usermeta} WHERE meta_key LIKE %s", $like)); 77 78 wp_clear_scheduled_hook('llamly_free_daily_maintenance'); 79 wp_cache_flush(); 80 }; 81 82 if (is_multisite()) { 83 foreach (get_sites(['fields' => 'ids', 'number' => 0]) as $llamlyFreeBlogId) { 84 switch_to_blog((int) $llamlyFreeBlogId); 85 $llamlyFreeUninstallSite(); 86 restore_current_blog(); 87 } 88 global $wpdb; 89 $wpdb->query($wpdb->prepare("DELETE FROM {$wpdb->sitemeta} WHERE meta_key LIKE %s", $wpdb->esc_like('llamly_free_') . '%')); 90 } else { 91 $llamlyFreeUninstallSite(); 92 } 19 // The SDK finds its instance from the hook name (uninstall_<plugin basename>), so the hook carries WordPress's basename. 20 $llamlyFreeUninstallHook = 'uninstall_' . (is_string(WP_UNINSTALL_PLUGIN) && WP_UNINSTALL_PLUGIN !== '' ? WP_UNINSTALL_PLUGIN : 'llamly/llamly.php'); 21 add_action($llamlyFreeUninstallHook, ['\\Llamly\\Free\\Core\\Uninstall', 'onUninstall']); 22 do_action($llamlyFreeUninstallHook); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.DynamicHooknameFound -- WordPress core's own uninstall_<plugin> action, which the Freemius SDK listens for. -
llamly/trunk/THIRD-PARTY-NOTICES.txt
r3788333 r3800467 55 55 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. 56 56 57 ## Freemius WordPress SDK 2.13.5 (GPL-3.0) 58 59 `vendor/freemius/wordpress-sdk/` is the [Freemius WordPress SDK](https://github.com/Freemius/wordpress-sdk) 2.13.5 (tag `2.13.5`, commit `0875c4ee3c941572f44d60cb2a687c54295db3d7`), Copyright (c) 2015, Freemius, Inc., licensed under the GNU General Public License version 3. It is bundled unchanged, exactly as the upstream tag exports it, with its full license text in `vendor/freemius/wordpress-sdk/LICENSE.txt`; `tools/freemius-sdk.lock` in the source repository records the SHA256 of every file. Llamly uses it only for the optional, opt-in usage statistics and the Llamly Pro add-on (readme, External services). Because Llamly is GPL-2.0-or-later, the plugin as distributed with this SDK is covered by GPL-3.0. 60 61 The SDK carries its own notices for the code it bundles: the Freemius PHP API client in `includes/sdk/` (GPL-2.0, `includes/sdk/LICENSE.txt`); `assets/js/pricing/freemius-pricing.js`, whose bundled libraries (React and others under the MIT License, Font Awesome Free 5.15.4: icons CC BY 4.0, fonts SIL OFL 1.1, code MIT) are listed in `assets/js/pricing/freemius-pricing.js.LICENSE.txt`; `assets/js/nojquery.ba-postmessage.js` by Ben Alman (dual MIT and GPL). Those files are kept as shipped upstream; files without their own notice are covered by the SDK's GPL-3.0. 62 57 63 ## Llamly marks 58 64 -
llamly/trunk/assets/free/css/about.css
r3788333 r3800467 26 26 .about-cap__name { font-weight: 500; flex: 1; min-width: 0; } 27 27 .about-cap__n { color: var(--ll-text-2); font-size: var(--ll-fs-sm); font-variant-numeric: tabular-nums; } 28 .about-pro { padding: var(--ll-5) var(--ll-6); display: flex; flex-direction: column; align-items: flex-start; gap: var(--ll-3); } 29 .about-pro p { margin: 0; } 28 30 .about-links { display: flex; flex-wrap: wrap; gap: var(--ll-3) var(--ll-8); padding: var(--ll-5) var(--ll-6); border-bottom: 1px solid var(--ll-border); } 29 31 .about-links a { display: inline-flex; align-items: center; gap: var(--ll-2); font-weight: 600; text-decoration: none; } -
llamly/trunk/assets/free/js/admin.js
r3788333 r3800467 1985 1985 } 1986 1986 1987 /** The one place in Llamly that points to Llamly Pro (LLP-455). Nothing in Llamly is locked; hidden while Llamly Pro is active. */ 1988 function proSection() { 1989 const pro = config.pro || {}; 1990 if (pro.active) return ''; 1991 const url = typeof pro.url === 'string' && pro.url.indexOf('https://') === 0 ? pro.url : ''; 1992 return '<section id="llamly-pro" data-pro><div class="ll-section-head"><div><h2 class="ll-section-title">' + 1993 esc(__('Llamly Pro', 'llamly')) + '</h2><p class="ll-section-desc">' + 1994 esc(__('Everything on these screens is free and stays free.', 'llamly')) + '</p></div></div>' + 1995 '<div class="ll-card about-pro"><p>' + 1996 esc(__('Llamly Pro is a separate add-on with extra modules for your agent. The first one, Llamly Builder, builds pages in Elementor and in the block editor.', 1997 'llamly')) + '</p>' + (url ? '<a class="ll-btn" href="' + esc(url) + '" target="_blank" rel="noopener noreferrer">' + 1998 esc(__('Learn about Llamly Pro', 'llamly')) + icon('external-link') + '</a>' : '<p class="ll-faint">' + 1999 esc(__('Coming soon.', 'llamly')) + '</p>') + '</div></section>'; 2000 } 2001 1987 2002 tabs.about = { 1988 2003 label: __('About', 'llamly'), … … 2039 2054 '</section>' + 2040 2055 modulesSection() + 2056 proSection() + 2041 2057 '<section><div class="ll-section-head"><div><h2 class="ll-section-title">' + esc(__('Help', 'llamly')) + '</h2></div></div><div class="ll-card">' + 2042 2058 (help.length ? '<div class="about-links">' + help.map((l) => '<a href="' + esc(l[0]) + -
llamly/trunk/languages/llamly.pot
r3788333 r3800467 3 3 msgid "" 4 4 msgstr "" 5 "Project-Id-Version: Llamly 1. 0.2\n"5 "Project-Id-Version: Llamly 1.1.0\n" 6 6 "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/llamly\n" 7 7 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" … … 10 10 "Content-Type: text/plain; charset=UTF-8\n" 11 11 "Content-Transfer-Encoding: 8bit\n" 12 "POT-Creation-Date: 2026-1 0-26T10:12:35-03:00\n"12 "POT-Creation-Date: 2026-11-11T09:37:34-03:00\n" 13 13 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 14 14 "X-Generator: WP-CLI 2.12.0\n" … … 27 27 #. Author of the plugin 28 28 #: llamly.php 29 #: src/Free/Admin/AdminPage.php: 9930 #: src/Free/Admin/AdminPage.php:1 0031 #: src/Free/Admin/AdminPage.php:2 0329 #: src/Free/Admin/AdminPage.php:129 30 #: src/Free/Admin/AdminPage.php:130 31 #: src/Free/Admin/AdminPage.php:234 32 32 #: src/Free/Core/Abilities.php:40 33 33 msgid "Llamly" … … 196 196 msgstr "" 197 197 198 #: src/Free/Admin/AdminPage.php:169 198 #: src/Free/Admin/AdminPage.php:57 199 #: assets/free/js/admin.js:1993 200 msgid "Llamly Pro" 201 msgstr "" 202 203 #: src/Free/Admin/AdminPage.php:200 199 204 msgid "Llamly is ready." 200 205 msgstr "" 201 206 202 #: src/Free/Admin/AdminPage.php: 170207 #: src/Free/Admin/AdminPage.php:201 203 208 msgid "Connect Claude, ChatGPT or another AI app to this site. It takes about a minute." 204 209 msgstr "" 205 210 206 #: src/Free/Admin/AdminPage.php: 171211 #: src/Free/Admin/AdminPage.php:202 207 212 msgid "Connect an app" 208 213 msgstr "" 209 214 210 #: src/Free/Admin/AdminPage.php: 172215 #: src/Free/Admin/AdminPage.php:203 211 216 msgid "Dismiss" 212 217 msgstr "" 213 218 214 #: src/Free/Admin/AdminPage.php: 178219 #: src/Free/Admin/AdminPage.php:209 215 220 msgid "You do not have permission to dismiss this notice." 216 221 msgstr "" 217 222 218 #: src/Free/Admin/AdminPage.php: 189223 #: src/Free/Admin/AdminPage.php:220 219 224 msgid "You do not have permission to access Llamly." 220 225 msgstr "" 221 226 222 #: src/Free/Admin/AdminPage.php: 192227 #: src/Free/Admin/AdminPage.php:223 223 228 msgid "Llamly setup" 224 229 msgstr "" 225 230 226 #: src/Free/Admin/AdminPage.php: 193231 #: src/Free/Admin/AdminPage.php:224 227 232 msgid "The required database tables are not ready. Retry the schema check before connecting clients." 228 233 msgstr "" 229 234 230 #: src/Free/Admin/AdminPage.php: 197235 #: src/Free/Admin/AdminPage.php:228 231 236 msgid "Verify database setup" 232 237 msgstr "" 233 238 234 #: src/Free/Admin/AdminPage.php:2 26239 #: src/Free/Admin/AdminPage.php:257 235 240 msgid "You do not have permission to update Llamly." 236 241 msgstr "" … … 763 768 #: src/Free/Auth/Authenticator.php:36 764 769 #: src/Free/Auth/Authenticator.php:41 770 #: src/Free/Mcp/Protocol.php:63 765 771 msgid "A valid Bearer token is required." 766 772 msgstr "" … … 886 892 887 893 #: src/Free/Auth/OAuthRedirectPolicy.php:79 888 #: assets/free/js/admin.js:22 06894 #: assets/free/js/admin.js:2222 889 895 msgid "A desktop or terminal app" 890 896 msgstr "" 891 897 892 #: src/Free/Auth/OAuthServer.php: 64898 #: src/Free/Auth/OAuthServer.php:71 893 899 msgid "Llamly is not ready to register clients." 894 900 msgstr "" 895 901 896 #: src/Free/Auth/OAuthServer.php: 67902 #: src/Free/Auth/OAuthServer.php:74 897 903 msgid "New OAuth connections are closed. An administrator can open a 30-minute registration window in Llamly." 898 904 msgstr "" 899 905 900 #: src/Free/Auth/OAuthServer.php:7 1906 #: src/Free/Auth/OAuthServer.php:78 901 907 msgid "Too many client registration requests." 902 908 msgstr "" 903 909 904 #: src/Free/Auth/OAuthServer.php: 76910 #: src/Free/Auth/OAuthServer.php:83 905 911 msgid "Send a JSON client registration request." 906 912 msgstr "" 907 913 908 #: src/Free/Auth/OAuthServer.php:8 0914 #: src/Free/Auth/OAuthServer.php:87 909 915 msgid "Register between one and ten redirect URIs." 910 916 msgstr "" 911 917 912 #: src/Free/Auth/OAuthServer.php: 84918 #: src/Free/Auth/OAuthServer.php:91 913 919 msgid "Every redirect URI must be a string." 914 920 msgstr "" 915 921 916 #: src/Free/Auth/OAuthServer.php:9 1922 #: src/Free/Auth/OAuthServer.php:98 917 923 msgid "No redirect URI satisfies the site redirect-host policy." 918 924 msgstr "" 919 925 920 #: src/Free/Auth/OAuthServer.php:10 0926 #: src/Free/Auth/OAuthServer.php:107 921 927 msgid "Only authorization-code clients with PKCE are supported." 922 928 msgstr "" 923 929 924 #: src/Free/Auth/OAuthServer.php:1 03930 #: src/Free/Auth/OAuthServer.php:110 925 931 msgid "Public clients must use token_endpoint_auth_method=none and PKCE." 926 932 msgstr "" 927 933 928 #: src/Free/Auth/OAuthServer.php:1 06934 #: src/Free/Auth/OAuthServer.php:113 929 935 msgid "The client name must be a string." 930 936 msgstr "" 931 937 932 #: src/Free/Auth/OAuthServer.php:1 13938 #: src/Free/Auth/OAuthServer.php:120 933 939 msgid "A secure client ID could not be created." 934 940 msgstr "" 935 941 936 #: src/Free/Auth/OAuthServer.php:12 1942 #: src/Free/Auth/OAuthServer.php:128 937 943 msgid "The client registration lock is unavailable." 938 944 msgstr "" 939 945 940 #: src/Free/Auth/OAuthServer.php:1 25946 #: src/Free/Auth/OAuthServer.php:132 941 947 msgid "The client registration transaction could not start." 942 948 msgstr "" 943 949 944 #: src/Free/Auth/OAuthServer.php:13 0950 #: src/Free/Auth/OAuthServer.php:137 945 951 msgid "The client registration limit could not be checked." 946 952 msgstr "" 947 953 948 #: src/Free/Auth/OAuthServer.php:1 34954 #: src/Free/Auth/OAuthServer.php:141 949 955 msgid "This site has reached its limit of 100 active OAuth clients. Revoke an unused client before registering another." 950 956 msgstr "" 951 957 952 #: src/Free/Auth/OAuthServer.php:15 1958 #: src/Free/Auth/OAuthServer.php:158 953 959 msgid "The client registration could not be stored with its audit record." 954 960 msgstr "" 955 961 956 #: src/Free/Auth/OAuthServer.php: 199962 #: src/Free/Auth/OAuthServer.php:206 957 963 msgid "Llamly is not ready to accept new connections on this site." 958 964 msgstr "" 959 965 960 #: src/Free/Auth/OAuthServer.php: 199966 #: src/Free/Auth/OAuthServer.php:206 961 967 msgid "Ask an administrator to check that the MCP server is turned on in Llamly > Settings." 962 968 msgstr "" 963 969 964 #: src/Free/Auth/OAuthServer.php:2 03970 #: src/Free/Auth/OAuthServer.php:210 965 971 msgid "This connection request is invalid." 966 972 msgstr "" 967 973 968 #: src/Free/Auth/OAuthServer.php:203 969 #: src/Free/Auth/OAuthServer.php:374 974 #: src/Free/Auth/OAuthServer.php:210 970 975 #: src/Free/Auth/OAuthServer.php:381 971 #: src/Free/Auth/OAuthServer.php:385 976 #: src/Free/Auth/OAuthServer.php:388 977 #: src/Free/Auth/OAuthServer.php:392 972 978 msgid "Go back to the app and start the connection again." 973 979 msgstr "" 974 980 975 #: src/Free/Auth/OAuthServer.php:27 1981 #: src/Free/Auth/OAuthServer.php:278 976 982 msgid "An administrator must approve this connection." 977 983 msgstr "" 978 984 979 #: src/Free/Auth/OAuthServer.php:27 1985 #: src/Free/Auth/OAuthServer.php:278 980 986 msgid "New connections are turned off on this site. Sign in as an administrator to approve it, or ask an administrator to turn on new connections for 30 minutes in Llamly > Connections." 981 987 msgstr "" 982 988 983 #: src/Free/Auth/OAuthServer.php:28 2989 #: src/Free/Auth/OAuthServer.php:289 984 990 msgid "Your account cannot approve this connection." 985 991 msgstr "" 986 992 987 #: src/Free/Auth/OAuthServer.php:282 993 #: src/Free/Auth/OAuthServer.php:289 994 #: src/Free/Auth/OAuthServer.php:395 995 #: src/Free/Auth/OAuthServer.php:398 996 msgid "Sign in with an account that can edit this site, or ask an administrator to connect the app." 997 msgstr "" 998 999 #: src/Free/Auth/OAuthServer.php:381 1000 msgid "This consent form expired." 1001 msgstr "" 1002 988 1003 #: src/Free/Auth/OAuthServer.php:388 989 #: src/Free/Auth/OAuthServer.php:391990 msgid "Sign in with an account that can edit this site, or ask an administrator to connect the app."991 msgstr ""992 993 #: src/Free/Auth/OAuthServer.php:374994 msgid "This consent form expired."995 msgstr ""996 997 #: src/Free/Auth/OAuthServer.php:381998 1004 msgid "Choose whether to approve or refuse this connection." 999 1005 msgstr "" 1000 1006 1001 #: src/Free/Auth/OAuthServer.php:3 881007 #: src/Free/Auth/OAuthServer.php:395 1002 1008 msgid "Your WordPress user cannot grant read access." 1003 1009 msgstr "" 1004 1010 1005 #: src/Free/Auth/OAuthServer.php:39 11011 #: src/Free/Auth/OAuthServer.php:398 1006 1012 msgid "Your WordPress user cannot grant write access." 1007 1013 msgstr "" 1008 1014 1009 #: src/Free/Auth/OAuthServer.php: 3951010 #: assets/free/js/admin.js:27 531015 #: src/Free/Auth/OAuthServer.php:402 1016 #: assets/free/js/admin.js:2769 1011 1017 msgid "Try again in a moment." 1012 1018 msgstr "" 1013 1019 1014 #: src/Free/Auth/OAuthServer.php:4 041020 #: src/Free/Auth/OAuthServer.php:411 1015 1021 msgid "Select at least one requested permission." 1016 1022 msgstr "" 1017 1023 1018 #: src/Free/Auth/OAuthServer.php:4 131024 #: src/Free/Auth/OAuthServer.php:420 1019 1025 msgid "Select only permissions requested by this client." 1020 1026 msgstr "" 1021 1027 1022 #: src/Free/Auth/OAuthServer.php:4 381028 #: src/Free/Auth/OAuthServer.php:445 1023 1029 msgid "The OAuth request is invalid or uses an unsupported resource, redirect, or PKCE method." 1024 1030 msgstr "" 1025 1031 1026 #: src/Free/Auth/OAuthServer.php:4 471032 #: src/Free/Auth/OAuthServer.php:454 1027 1033 msgid "The client or exact redirect URI is not registered." 1028 1034 msgstr "" 1029 1035 1030 #: src/Free/Auth/OAuthServer.php:45 21036 #: src/Free/Auth/OAuthServer.php:459 1031 1037 msgid "The client requested an unsupported Llamly scope." 1032 1038 msgstr "" 1033 1039 1034 #: src/Free/Auth/OAuthServer.php:4 741040 #: src/Free/Auth/OAuthServer.php:481 1035 1041 msgid "A secure authorization code could not be created." 1036 1042 msgstr "" 1037 1043 1038 #: src/Free/Auth/OAuthServer.php:4 791044 #: src/Free/Auth/OAuthServer.php:486 1039 1045 msgid "The authorization grant transaction could not start." 1040 1046 msgstr "" 1041 1047 1042 #: src/Free/Auth/OAuthServer.php:51 01048 #: src/Free/Auth/OAuthServer.php:517 1043 1049 msgid "The authorization grant and its audit record could not be stored." 1044 1050 msgstr "" 1045 1051 1046 #: src/Free/Auth/OAuthServer.php:5 261052 #: src/Free/Auth/OAuthServer.php:533 1047 1053 msgid "Send OAuth token parameters." 1048 1054 msgstr "" 1049 1055 1050 #: src/Free/Auth/OAuthServer.php:5 341056 #: src/Free/Auth/OAuthServer.php:541 1051 1057 msgid "Only authorization_code and refresh_token grants are supported." 1052 1058 msgstr "" 1053 1059 1054 #: src/Free/Auth/OAuthServer.php:5 591060 #: src/Free/Auth/OAuthServer.php:566 1055 1061 msgid "The authorization code, PKCE verifier, redirect, or resource is invalid." 1056 1062 msgstr "" 1057 1063 1058 #: src/Free/Auth/OAuthServer.php:5 631064 #: src/Free/Auth/OAuthServer.php:570 1059 1065 msgid "The authorization-code transaction could not start." 1060 1066 msgstr "" 1061 1067 1062 #: src/Free/Auth/OAuthServer.php:5 771068 #: src/Free/Auth/OAuthServer.php:584 1063 1069 msgid "The authorization-code record could not be read." 1064 1070 msgstr "" 1065 1071 1066 #: src/Free/Auth/OAuthServer.php:58 11072 #: src/Free/Auth/OAuthServer.php:588 1067 1073 msgid "The authorization code was already used; tokens issued from it have been revoked." 1068 1074 msgstr "" 1069 1075 1070 #: src/Free/Auth/OAuthServer.php:59 01076 #: src/Free/Auth/OAuthServer.php:597 1071 1077 msgid "The authorization code is invalid, expired, or already used." 1072 1078 msgstr "" 1073 1079 1074 #: src/Free/Auth/OAuthServer.php: 5951080 #: src/Free/Auth/OAuthServer.php:602 1075 1081 msgid "The PKCE verifier does not match the authorization request." 1076 1082 msgstr "" 1077 1083 1078 #: src/Free/Auth/OAuthServer.php:6 061084 #: src/Free/Auth/OAuthServer.php:613 1079 1085 msgid "The authorization code was already consumed." 1080 1086 msgstr "" 1081 1087 1082 #: src/Free/Auth/OAuthServer.php:6 161088 #: src/Free/Auth/OAuthServer.php:623 1083 1089 msgid "The token response could not be saved with its audit record." 1084 1090 msgstr "" 1085 1091 1086 #: src/Free/Auth/OAuthServer.php:6 291092 #: src/Free/Auth/OAuthServer.php:636 1087 1093 msgid "The refresh token, client, or resource is invalid." 1088 1094 msgstr "" 1089 1095 1090 #: src/Free/Auth/OAuthServer.php:6 331096 #: src/Free/Auth/OAuthServer.php:640 1091 1097 msgid "The refresh-token transaction could not start." 1092 1098 msgstr "" 1093 1099 1094 #: src/Free/Auth/OAuthServer.php:6 471100 #: src/Free/Auth/OAuthServer.php:654 1095 1101 msgid "The refresh-token record could not be read." 1096 1102 msgstr "" 1097 1103 1098 #: src/Free/Auth/OAuthServer.php:65 11104 #: src/Free/Auth/OAuthServer.php:658 1099 1105 msgid "Refresh token reuse was detected; the token family has been revoked." 1100 1106 msgstr "" 1101 1107 1102 #: src/Free/Auth/OAuthServer.php:6 591108 #: src/Free/Auth/OAuthServer.php:666 1103 1109 msgid "The refresh token is invalid, expired, or revoked." 1104 1110 msgstr "" 1105 1111 1106 #: src/Free/Auth/OAuthServer.php:6 691112 #: src/Free/Auth/OAuthServer.php:676 1107 1113 msgid "The refresh token was already consumed." 1108 1114 msgstr "" 1109 1115 1110 #: src/Free/Auth/OAuthServer.php:6 751116 #: src/Free/Auth/OAuthServer.php:682 1111 1117 msgid "The refreshed token pair could not be saved with its audit record." 1112 1118 msgstr "" 1113 1119 1114 #: src/Free/Auth/OAuthServer.php: 6951120 #: src/Free/Auth/OAuthServer.php:702 1115 1121 msgid "Token reuse was detected, but revocation could not be saved." 1116 1122 msgstr "" 1117 1123 1118 #: src/Free/Auth/OAuthServer.php:7 041124 #: src/Free/Auth/OAuthServer.php:711 1119 1125 msgid "Token reuse was detected, but revocation could not be committed with its audit record." 1120 1126 msgstr "" 1121 1127 1122 #: src/Free/Auth/OAuthServer.php:7 171128 #: src/Free/Auth/OAuthServer.php:724 1123 1129 msgid "Secure access tokens could not be created." 1124 1130 msgstr "" 1125 1131 1126 #: src/Free/Auth/OAuthServer.php:7 251132 #: src/Free/Auth/OAuthServer.php:732 1127 1133 msgid "The grant does not contain a valid scope." 1128 1134 msgstr "" 1129 1135 1130 #: src/Free/Auth/OAuthServer.php:7 541136 #: src/Free/Auth/OAuthServer.php:761 1131 1137 msgid "The token pair could not be stored." 1132 1138 msgstr "" 1133 1139 1134 #: src/Free/Auth/OAuthServer.php:7 841140 #: src/Free/Auth/OAuthServer.php:791 1135 1141 msgid "The revocation transaction could not start." 1136 1142 msgstr "" 1137 1143 1138 #: src/Free/Auth/OAuthServer.php: 7941144 #: src/Free/Auth/OAuthServer.php:801 1139 1145 msgid "The token record could not be read." 1140 1146 msgstr "" 1141 1147 1142 #: src/Free/Auth/OAuthServer.php:8 041148 #: src/Free/Auth/OAuthServer.php:811 1143 1149 msgid "The grant could not be revoked." 1144 1150 msgstr "" 1145 1151 1146 #: src/Free/Auth/OAuthServer.php:88 11152 #: src/Free/Auth/OAuthServer.php:888 1147 1153 msgid "Llamly is not ready to authorize new clients." 1148 1154 msgstr "" … … 1192 1198 msgstr "" 1193 1199 1194 #: src/Free/Core/Plugin.php:24 71200 #: src/Free/Core/Plugin.php:246 1195 1201 msgid "You are not allowed to do this." 1196 1202 msgstr "" 1197 1203 1204 #: src/Free/Core/Plugin.php:364 1205 msgid "Llamly database setup is incomplete. MCP requests and the admin interface are paused until the schema is verified." 1206 msgstr "" 1207 1208 #. translators: %s: internal error code. 1198 1209 #: src/Free/Core/Plugin.php:365 1199 msgid "Llamly database setup is incomplete. MCP requests and the admin interface are paused until the schema is verified."1200 msgstr ""1201 1202 #. translators: %s: internal error code.1203 #: src/Free/Core/Plugin.php:3661204 1210 #, php-format 1205 1211 msgid "Last error: %s" 1206 1212 msgstr "" 1207 1213 1208 #: src/Free/Core/Plugin.php:37 11214 #: src/Free/Core/Plugin.php:370 1209 1215 msgid "Continue without a backup" 1210 1216 msgstr "" … … 1397 1403 #: src/Free/History/Adapters/GlobalStylesObject.php:285 1398 1404 #: src/Free/History/Engine.php:1644 1399 #: assets/free/js/admin.js:20 821405 #: assets/free/js/admin.js:2098 1400 1406 msgid "Global styles" 1401 1407 msgstr "" … … 1464 1470 msgstr "" 1465 1471 1466 #: src/Free/History/Adapters/MediaObject.php:32 51472 #: src/Free/History/Adapters/MediaObject.php:326 1467 1473 msgid "WordPress did not delete the media item." 1468 1474 msgstr "" 1469 1475 1470 #: src/Free/History/Adapters/MediaObject.php:36 71476 #: src/Free/History/Adapters/MediaObject.php:368 1471 1477 msgid "The retained files of this media item are no longer available, so it cannot be restored." 1472 1478 msgstr "" 1473 1479 1474 #: src/Free/History/Adapters/MediaObject.php:37 11480 #: src/Free/History/Adapters/MediaObject.php:372 1475 1481 #: src/Free/History/RawRows.php:102 1476 1482 msgid "Another item now uses the original identifier, so it cannot be restored." 1477 1483 msgstr "" 1478 1484 1479 #: src/Free/History/Adapters/MediaObject.php:38 51485 #: src/Free/History/Adapters/MediaObject.php:386 1480 1486 msgid "The files of this media item changed, so its details cannot be restored." 1481 1487 msgstr "" 1482 1488 1483 #: src/Free/History/Adapters/MediaObject.php:39 01489 #: src/Free/History/Adapters/MediaObject.php:391 1484 1490 msgid "The media row could not be restored." 1485 1491 msgstr "" 1486 1492 1487 #: src/Free/History/Adapters/MediaObject.php:40 61493 #: src/Free/History/Adapters/MediaObject.php:407 1488 1494 msgid "The media item now has files the upload did not create, so the upload cannot be undone." 1489 1495 msgstr "" 1490 1496 1491 #: src/Free/History/Adapters/MediaObject.php:4 191497 #: src/Free/History/Adapters/MediaObject.php:420 1492 1498 msgid "A post that used this media item as featured image now has another featured image." 1493 1499 msgstr "" 1494 1500 1495 #: src/Free/History/Adapters/MediaObject.php:42 51501 #: src/Free/History/Adapters/MediaObject.php:426 1496 1502 msgid "The site icon was changed after this media item was removed." 1497 1503 msgstr "" 1498 1504 1499 #: src/Free/History/Adapters/MediaObject.php:43 11505 #: src/Free/History/Adapters/MediaObject.php:432 1500 1506 msgid "The site logo was changed after this media item was removed." 1501 1507 msgstr "" 1502 1508 1503 #: src/Free/History/Adapters/MediaObject.php:43 81509 #: src/Free/History/Adapters/MediaObject.php:439 1504 1510 msgid "The logo, header or background image of the theme was changed after this media item was removed." 1505 1511 msgstr "" 1506 1512 1507 #: src/Free/History/Adapters/MediaObject.php:45 71513 #: src/Free/History/Adapters/MediaObject.php:458 1508 1514 msgid "A featured image link could not be restored." 1509 1515 msgstr "" 1510 1516 1511 #: src/Free/History/Adapters/MediaObject.php:47 51517 #: src/Free/History/Adapters/MediaObject.php:477 1512 1518 msgid "A journaled theme setting could not be read." 1513 1519 msgstr "" 1514 1520 1515 #: src/Free/History/Adapters/MediaObject.php:49 21521 #: src/Free/History/Adapters/MediaObject.php:494 1516 1522 msgid "A term used by this media item no longer exists." 1517 1523 msgstr "" 1518 1524 1519 #: src/Free/History/Adapters/MediaObject.php:50 21520 #: src/Free/History/Adapters/MediaObject.php:50 71525 #: src/Free/History/Adapters/MediaObject.php:504 1526 #: src/Free/History/Adapters/MediaObject.php:509 1521 1527 msgid "Media terms could not be restored." 1522 1528 msgstr "" 1523 1529 1524 #: src/Free/History/Adapters/MediaObject.php:60 71530 #: src/Free/History/Adapters/MediaObject.php:609 1525 1531 #: src/Free/History/Adapters/PostObject.php:587 1526 1532 #: src/Free/History/Engine.php:1652 … … 1528 1534 msgstr "" 1529 1535 1530 #: src/Free/History/Adapters/MediaObject.php:71 41536 #: src/Free/History/Adapters/MediaObject.php:716 1531 1537 msgid "The file is empty." 1532 1538 msgstr "" 1533 1539 1534 1540 #. translators: %s: maximum upload size, formatted. 1535 #: src/Free/History/Adapters/MediaObject.php:71 71541 #: src/Free/History/Adapters/MediaObject.php:719 1536 1542 #, php-format 1537 1543 msgid "The file is larger than the upload limit of %s." 1538 1544 msgstr "" 1539 1545 1540 #: src/Free/History/Adapters/MediaObject.php:73 01546 #: src/Free/History/Adapters/MediaObject.php:732 1541 1547 msgid "This file type is not allowed or its content does not match its extension." 1542 1548 msgstr "" 1543 1549 1544 #: src/Free/History/Adapters/MediaObject.php:73 51550 #: src/Free/History/Adapters/MediaObject.php:737 1545 1551 msgid "The file contains markup or code and is not accepted as media." 1546 1552 msgstr "" 1547 1553 1548 #: src/Free/History/Adapters/MediaObject.php:76 11554 #: src/Free/History/Adapters/MediaObject.php:763 1549 1555 msgid "Use a plain file name of 1 to 200 characters without folders." 1550 1556 msgstr "" 1551 1557 1552 #: src/Free/History/Adapters/MediaObject.php:77 01558 #: src/Free/History/Adapters/MediaObject.php:772 1553 1559 msgid "Hidden files and server configuration files are not accepted." 1554 1560 msgstr "" 1555 1561 1556 #: src/Free/History/Adapters/MediaObject.php:77 41562 #: src/Free/History/Adapters/MediaObject.php:776 1557 1563 msgid "The file name needs an extension." 1558 1564 msgstr "" 1559 1565 1560 #: src/Free/History/Adapters/MediaObject.php:7 781566 #: src/Free/History/Adapters/MediaObject.php:780 1561 1567 msgid "Executable, script, markup and SVG files (also as a double extension) are not accepted." 1562 1568 msgstr "" … … 1570 1576 msgstr "" 1571 1577 1572 #: src/Free/History/Adapters/MenuObject.php:1 391578 #: src/Free/History/Adapters/MenuObject.php:140 1573 1579 msgid "The automatic page setting of the menu could not be saved." 1574 1580 msgstr "" 1575 1581 1576 #: src/Free/History/Adapters/MenuObject.php:1 591577 #: src/Free/History/Adapters/MenuObject.php:47 61582 #: src/Free/History/Adapters/MenuObject.php:160 1583 #: src/Free/History/Adapters/MenuObject.php:477 1578 1584 #: src/Free/Tools/MenuTools.php:148 1579 1585 #: src/Free/Tools/MenuTools.php:369 … … 1581 1587 msgstr "" 1582 1588 1583 #: src/Free/History/Adapters/MenuObject.php:16 21589 #: src/Free/History/Adapters/MenuObject.php:163 1584 1590 msgid "This menu has too many items to delete reversibly." 1585 1591 msgstr "" 1586 1592 1587 #: src/Free/History/Adapters/MenuObject.php:18 51593 #: src/Free/History/Adapters/MenuObject.php:186 1588 1594 msgid "This menu carries protected metadata that cannot be journaled, so it cannot be changed reversibly." 1589 1595 msgstr "" 1590 1596 1591 1597 #. translators: %d: maximum number of menu items. 1592 #: src/Free/History/Adapters/MenuObject.php:20 31598 #: src/Free/History/Adapters/MenuObject.php:204 1593 1599 #: src/Free/Tools/MenuTools.php:323 1594 1600 #, php-format … … 1597 1603 1598 1604 #. translators: %d: maximum nesting depth. 1599 #: src/Free/History/Adapters/MenuObject.php:21 01605 #: src/Free/History/Adapters/MenuObject.php:211 1600 1606 #: src/Free/Tools/MenuTools.php:320 1601 1607 #, php-format … … 1603 1609 msgstr "" 1604 1610 1605 #: src/Free/History/Adapters/MenuObject.php:21 41611 #: src/Free/History/Adapters/MenuObject.php:215 1606 1612 msgid "invalid parent reference." 1607 1613 msgstr "" 1608 1614 1609 #: src/Free/History/Adapters/MenuObject.php:22 01615 #: src/Free/History/Adapters/MenuObject.php:221 1610 1616 msgid "db_id is not an item of this menu." 1611 1617 msgstr "" 1612 1618 1613 #: src/Free/History/Adapters/MenuObject.php:22 31619 #: src/Free/History/Adapters/MenuObject.php:224 1614 1620 msgid "the same db_id appears twice." 1615 1621 msgstr "" 1616 1622 1617 #: src/Free/History/Adapters/MenuObject.php:25 01623 #: src/Free/History/Adapters/MenuObject.php:251 1618 1624 msgid "unknown item type." 1619 1625 msgstr "" 1620 1626 1621 #: src/Free/History/Adapters/MenuObject.php:2 591627 #: src/Free/History/Adapters/MenuObject.php:260 1622 1628 msgid "the URL must use http, https, mailto or tel (or be relative)." 1623 1629 msgstr "" 1624 1630 1625 #: src/Free/History/Adapters/MenuObject.php:26 21631 #: src/Free/History/Adapters/MenuObject.php:263 1626 1632 msgid "a custom link needs a url." 1627 1633 msgstr "" 1628 1634 1629 #: src/Free/History/Adapters/MenuObject.php:26 51635 #: src/Free/History/Adapters/MenuObject.php:266 1630 1636 msgid "a custom link needs a title." 1631 1637 msgstr "" 1632 1638 1633 #: src/Free/History/Adapters/MenuObject.php:27 31639 #: src/Free/History/Adapters/MenuObject.php:274 1634 1640 msgid "object must be a public post type." 1635 1641 msgstr "" 1636 1642 1637 #: src/Free/History/Adapters/MenuObject.php:27 61643 #: src/Free/History/Adapters/MenuObject.php:277 1638 1644 msgid "object_id is not an existing item of that post type." 1639 1645 msgstr "" 1640 1646 1641 #: src/Free/History/Adapters/MenuObject.php:2 791647 #: src/Free/History/Adapters/MenuObject.php:280 1642 1648 msgid "the connected user cannot read the target item." 1643 1649 msgstr "" 1644 1650 1645 #: src/Free/History/Adapters/MenuObject.php:28 31651 #: src/Free/History/Adapters/MenuObject.php:284 1646 1652 msgid "object must be a taxonomy that menus can link to." 1647 1653 msgstr "" 1648 1654 1649 #: src/Free/History/Adapters/MenuObject.php:28 71655 #: src/Free/History/Adapters/MenuObject.php:288 1650 1656 msgid "object_id is not an existing term of that taxonomy." 1651 1657 msgstr "" 1652 1658 1653 #: src/Free/History/Adapters/MenuObject.php:29 21659 #: src/Free/History/Adapters/MenuObject.php:293 1654 1660 msgid "object must be a post type with an archive." 1655 1661 msgstr "" 1656 1662 1657 #: src/Free/History/Adapters/MenuObject.php:29 81663 #: src/Free/History/Adapters/MenuObject.php:299 1658 1664 msgid "target must be empty or _blank." 1659 1665 msgstr "" 1660 1666 1661 #: src/Free/History/Adapters/MenuObject.php:3 591667 #: src/Free/History/Adapters/MenuObject.php:360 1662 1668 msgid "The menu could not be read from the database." 1663 1669 msgstr "" 1664 1670 1665 #: src/Free/History/Adapters/MenuObject.php:36 61671 #: src/Free/History/Adapters/MenuObject.php:367 1666 1672 msgid "The menu metadata could not be read from the database." 1667 1673 msgstr "" 1668 1674 1669 #: src/Free/History/Adapters/MenuObject.php:37 41675 #: src/Free/History/Adapters/MenuObject.php:375 1670 1676 msgid "The menu items could not be read from the database." 1671 1677 msgstr "" 1672 1678 1673 #: src/Free/History/Adapters/MenuObject.php:42 01679 #: src/Free/History/Adapters/MenuObject.php:421 1674 1680 msgid "The menu item metadata could not be read from the database." 1675 1681 msgstr "" 1676 1682 1677 #: src/Free/History/Adapters/MenuObject.php:46 21683 #: src/Free/History/Adapters/MenuObject.php:463 1678 1684 #: src/Free/History/Adapters/TermObject.php:234 1679 1685 msgid "The creation marker could not be stored." 1680 1686 msgstr "" 1681 1687 1682 #: src/Free/History/Adapters/MenuObject.php:50 61688 #: src/Free/History/Adapters/MenuObject.php:507 1683 1689 msgid "Unknown menu operation." 1684 1690 msgstr "" 1685 1691 1686 1692 #. translators: %s: menu location slug. 1687 #: src/Free/History/Adapters/MenuObject.php:52 71693 #: src/Free/History/Adapters/MenuObject.php:528 1688 1694 #, php-format 1689 1695 msgid "The theme does not register the menu location \"%s\"." 1690 1696 msgstr "" 1691 1697 1692 #: src/Free/History/Adapters/MenuObject.php:55 61698 #: src/Free/History/Adapters/MenuObject.php:557 1693 1699 msgid "This menu has too many items to rewrite reversibly." 1694 1700 msgstr "" 1695 1701 1696 #: src/Free/History/Adapters/MenuObject.php:59 81702 #: src/Free/History/Adapters/MenuObject.php:599 1697 1703 msgid "WordPress did not save a menu item." 1698 1704 msgstr "" 1699 1705 1700 #: src/Free/History/Adapters/MenuObject.php:60 61706 #: src/Free/History/Adapters/MenuObject.php:607 1701 1707 msgid "WordPress did not remove a menu item." 1702 1708 msgstr "" 1703 1709 1704 #: src/Free/History/Adapters/MenuObject.php:61 81710 #: src/Free/History/Adapters/MenuObject.php:619 1705 1711 msgid "The menu order could not be saved." 1706 1712 msgstr "" 1707 1713 1708 #: src/Free/History/Adapters/MenuObject.php:65 51714 #: src/Free/History/Adapters/MenuObject.php:656 1709 1715 msgid "WordPress did not delete the menu." 1710 1716 msgstr "" 1711 1717 1712 #: src/Free/History/Adapters/MenuObject.php:66 21718 #: src/Free/History/Adapters/MenuObject.php:663 1713 1719 msgid "WordPress left menu items behind, so the delete was cancelled." 1714 1720 msgstr "" 1715 1721 1716 #: src/Free/History/Adapters/MenuObject.php:68 81722 #: src/Free/History/Adapters/MenuObject.php:689 1717 1723 msgid "Another menu now uses this slug." 1718 1724 msgstr "" 1719 1725 1720 #: src/Free/History/Adapters/MenuObject.php:69 51726 #: src/Free/History/Adapters/MenuObject.php:696 1721 1727 msgid "Leftover relationships already use this menu identifier." 1722 1728 msgstr "" 1723 1729 1724 #: src/Free/History/Adapters/MenuObject.php:70 01730 #: src/Free/History/Adapters/MenuObject.php:701 1725 1731 msgid "The menu was recreated with another identifier." 1726 1732 msgstr "" 1727 1733 1728 #: src/Free/History/Adapters/MenuObject.php:70 51734 #: src/Free/History/Adapters/MenuObject.php:706 1729 1735 msgid "The menu rows could not be restored." 1730 1736 msgstr "" 1731 1737 1732 #: src/Free/History/Adapters/MenuObject.php:73 61738 #: src/Free/History/Adapters/MenuObject.php:737 1733 1739 msgid "A menu item could not be restored." 1734 1740 msgstr "" 1735 1741 1736 #: src/Free/History/Adapters/MenuObject.php:74 21742 #: src/Free/History/Adapters/MenuObject.php:743 1737 1743 msgid "Leftover relationships already use a menu item identifier." 1738 1744 msgstr "" 1739 1745 1740 #: src/Free/History/Adapters/MenuObject.php:7 491746 #: src/Free/History/Adapters/MenuObject.php:750 1741 1747 msgid "A menu item relationship could not be restored." 1742 1748 msgstr "" 1743 1749 1744 #: src/Free/History/Adapters/MenuObject.php:77 41750 #: src/Free/History/Adapters/MenuObject.php:775 1745 1751 msgid "A menu item could not be removed." 1746 1752 msgstr "" 1747 1753 1748 #: src/Free/History/Adapters/MenuObject.php:83 31754 #: src/Free/History/Adapters/MenuObject.php:834 1749 1755 msgid "The active theme changed, so the menu locations cannot be restored." 1750 1756 msgstr "" 1751 1757 1752 1758 #. translators: %s: menu location slug. 1753 #: src/Free/History/Adapters/MenuObject.php:85 61759 #: src/Free/History/Adapters/MenuObject.php:857 1754 1760 #, php-format 1755 1761 msgid "The menu location \"%s\" is now used by another menu." 1756 1762 msgstr "" 1757 1763 1758 #: src/Free/History/Adapters/MenuObject.php:99 81764 #: src/Free/History/Adapters/MenuObject.php:999 1759 1765 #: src/Free/History/Engine.php:1646 1760 1766 msgid "(menu)" 1761 1767 msgstr "" 1762 1768 1763 #: src/Free/History/Adapters/MenuObject.php:106 61769 #: src/Free/History/Adapters/MenuObject.php:1067 1764 1770 msgid "The active theme is a block theme and does not display classic menus; its navigation lives in wp_navigation posts." 1765 1771 msgstr "" … … 1769 1775 msgstr "" 1770 1776 1771 #: src/Free/History/Adapters/OptionObject.php:9 71777 #: src/Free/History/Adapters/OptionObject.php:98 1772 1778 msgid "WordPress did not save the option." 1773 1779 msgstr "" 1774 1780 1775 #: src/Free/History/Adapters/OptionObject.php:1 091781 #: src/Free/History/Adapters/OptionObject.php:110 1776 1782 msgid "The option snapshot does not match this option." 1777 1783 msgstr "" 1778 1784 1779 #: src/Free/History/Adapters/OptionObject.php:11 51785 #: src/Free/History/Adapters/OptionObject.php:116 1780 1786 msgid "The option could not be removed." 1781 1787 msgstr "" 1782 1788 1783 #: src/Free/History/Adapters/OptionObject.php:13 11789 #: src/Free/History/Adapters/OptionObject.php:132 1784 1790 msgid "The option row could not be restored." 1785 1791 msgstr "" 1786 1792 1787 #: src/Free/History/Adapters/OptionObject.php:17 31793 #: src/Free/History/Adapters/OptionObject.php:174 1788 1794 #: src/Free/History/Engine.php:1648 1789 #: assets/free/js/admin.js:22 051795 #: assets/free/js/admin.js:2221 1790 1796 msgid "Site option" 1791 1797 msgstr "" … … 2087 2093 #: src/Free/History/Adapters/TermObject.php:570 2088 2094 #: src/Free/History/Engine.php:1656 2089 #: assets/free/js/admin.js:22 052095 #: assets/free/js/admin.js:2221 2090 2096 msgid "(unnamed term)" 2091 2097 msgstr "" … … 2772 2778 msgstr "" 2773 2779 2774 #: src/Free/Mcp/Endpoint.php:45 2780 #: src/Free/Mcp/Endpoint.php:77 2781 msgid "The access token is not issued for this MCP endpoint." 2782 msgstr "" 2783 2784 #: src/Free/Mcp/Endpoint.php:156 2775 2785 msgid "Llamly is updating its database. Try again in a few seconds." 2776 2786 msgstr "" 2777 2787 2778 #: src/Free/Mcp/Protocol.php:51 2779 msgid "The access token is not issued for this MCP endpoint." 2780 msgstr "" 2781 2782 #: src/Free/Mcp/Protocol.php:55 2788 #: src/Free/Mcp/Protocol.php:67 2783 2789 msgid "The requested MCP protocol version is not supported." 2784 2790 msgstr "" 2785 2791 2786 #: src/Free/Mcp/Protocol.php:3 352792 #: src/Free/Mcp/Protocol.php:347 2787 2793 msgid "Connect with an OAuth connector or a scoped Bearer key. Keys are shown only once. Verify client calls in Activity and revoke a key to deny the next request." 2788 2794 msgstr "" 2789 2795 2790 #: src/Free/Mcp/Protocol.php:3 362796 #: src/Free/Mcp/Protocol.php:348 2791 2797 msgid "Use read-only access unless writing is needed. Every write must have a durable journal entry, pass the WordPress user capability check, and include the current post revision hash. If storage or concurrency checks fail, Llamly stops before reporting success." 2792 2798 msgstr "" 2793 2799 2794 #: src/Free/Mcp/Protocol.php:3 522800 #: src/Free/Mcp/Protocol.php:364 2795 2801 msgid "Review available draft posts without changing them." 2796 2802 msgstr "" 2797 2803 2798 #: src/Free/Mcp/Protocol.php:3 622804 #: src/Free/Mcp/Protocol.php:374 2799 2805 msgid "Review posts that are accessible to this connection." 2800 2806 msgstr "" 2801 2807 2802 #: src/Free/Mcp/Protocol.php:3 712808 #: src/Free/Mcp/Protocol.php:383 2803 2809 msgid "Connection and access" 2804 2810 msgstr "" 2805 2811 2806 #: src/Free/Mcp/Protocol.php:3 722812 #: src/Free/Mcp/Protocol.php:384 2807 2813 msgid "Writing safety" 2808 2814 msgstr "" … … 3553 3559 msgstr "" 3554 3560 3555 #: src/Free/Tools/UserTools.php: 583561 #: src/Free/Tools/UserTools.php:60 3556 3562 msgid "Unknown role." 3557 3563 msgstr "" 3558 3564 3559 #: src/Free/Tools/UserTools.php:9 03565 #: src/Free/Tools/UserTools.php:93 3560 3566 msgid "Send exactly one of user_id, login or email." 3561 3567 msgstr "" 3562 3568 3563 #: src/Free/Tools/UserTools.php: 983569 #: src/Free/Tools/UserTools.php:101 3564 3570 msgid "The user was not found." 3565 3571 msgstr "" 3566 3572 3567 #: src/Free/Tools/UserTools.php:10 23573 #: src/Free/Tools/UserTools.php:105 3568 3574 msgid "The connected user cannot view this user's profile." 3569 3575 msgstr "" … … 4001 4007 #: assets/free/js/admin.js:449 4002 4008 #: assets/free/js/admin.js:1528 4003 #: assets/free/js/admin.js:2 2954009 #: assets/free/js/admin.js:2311 4004 4010 msgid "Try again" 4005 4011 msgstr "" … … 4048 4054 4049 4055 #: assets/free/js/admin.js:517 4050 #: assets/free/js/admin.js:20 804056 #: assets/free/js/admin.js:2096 4051 4057 msgid "Media" 4052 4058 msgstr "" … … 4621 4627 #. translators: %d: number of tools. 4622 4628 #: assets/free/js/admin.js:947 4623 #: assets/free/js/admin.js:20 064629 #: assets/free/js/admin.js:2021 4624 4630 #, js-format 4625 4631 msgid "%d tool" … … 5026 5032 #: assets/free/js/admin.js:1366 5027 5033 #: assets/free/js/admin.js:1598 5028 #: assets/free/js/admin.js:21 725029 #: assets/free/js/admin.js:26 645034 #: assets/free/js/admin.js:2188 5035 #: assets/free/js/admin.js:2680 5030 5036 msgid "Try again." 5031 5037 msgstr "" … … 5174 5180 5175 5181 #: assets/free/js/admin.js:1451 5176 #: assets/free/js/admin.js:25 165182 #: assets/free/js/admin.js:2532 5177 5183 msgid "Change undone" 5178 5184 msgstr "" 5179 5185 5180 5186 #: assets/free/js/admin.js:1451 5181 #: assets/free/js/admin.js:25 175182 #: assets/free/js/admin.js:25 205187 #: assets/free/js/admin.js:2533 5188 #: assets/free/js/admin.js:2536 5183 5189 msgid "Change redone" 5184 5190 msgstr "" … … 5295 5301 5296 5302 #: assets/free/js/admin.js:1534 5297 #: assets/free/js/admin.js:23 015303 #: assets/free/js/admin.js:2317 5298 5304 msgid "Nothing found" 5299 5305 msgstr "" … … 5304 5310 5305 5311 #: assets/free/js/admin.js:1535 5306 #: assets/free/js/admin.js:23 025312 #: assets/free/js/admin.js:2318 5307 5313 msgid "Clear filters" 5308 5314 msgstr "" … … 5330 5336 #. translators: %s: connection name. 5331 5337 #: assets/free/js/admin.js:1560 5332 #: assets/free/js/admin.js:23 365338 #: assets/free/js/admin.js:2352 5333 5339 msgid "All connections" 5334 5340 msgstr "" … … 5336 5342 #. translators: %s: connection name. 5337 5343 #: assets/free/js/admin.js:1561 5338 #: assets/free/js/admin.js:23 315344 #: assets/free/js/admin.js:2347 5339 5345 #, js-format 5340 5346 msgid "%s (revoked)" … … 5347 5353 5348 5354 #: assets/free/js/admin.js:1571 5349 #: assets/free/js/admin.js:23 595355 #: assets/free/js/admin.js:2375 5350 5356 msgid "Filter by connection" 5351 5357 msgstr "" … … 5573 5579 5574 5580 #: assets/free/js/admin.js:1801 5575 #: assets/free/js/admin.js:2 1995576 #: assets/free/js/admin.js:25 085581 #: assets/free/js/admin.js:2215 5582 #: assets/free/js/admin.js:2524 5577 5583 msgid "Undo" 5578 5584 msgstr "" … … 5840 5846 msgstr "" 5841 5847 5842 #: assets/free/js/admin.js:1988 5848 #: assets/free/js/admin.js:1994 5849 msgid "Everything on these screens is free and stays free." 5850 msgstr "" 5851 5852 #: assets/free/js/admin.js:1996 5853 msgid "Llamly Pro is a separate add-on with extra modules for your agent. The first one, Llamly Builder, builds pages in Elementor and in the block editor." 5854 msgstr "" 5855 5856 #: assets/free/js/admin.js:1998 5857 msgid "Learn about Llamly Pro" 5858 msgstr "" 5859 5860 #: assets/free/js/admin.js:1999 5861 msgid "Coming soon." 5862 msgstr "" 5863 5864 #: assets/free/js/admin.js:2003 5843 5865 msgid "About" 5844 5866 msgstr "" 5845 5867 5846 #: assets/free/js/admin.js:20 015868 #: assets/free/js/admin.js:2016 5847 5869 msgid "MCP endpoint" 5848 5870 msgstr "" 5849 5871 5850 #: assets/free/js/admin.js:20 015872 #: assets/free/js/admin.js:2016 5851 5873 msgid "Theme" 5852 5874 msgstr "" 5853 5875 5854 #: assets/free/js/admin.js:20 025855 #: assets/free/js/admin.js:20 205876 #: assets/free/js/admin.js:2017 5877 #: assets/free/js/admin.js:2035 5856 5878 msgid "Documentation" 5857 5879 msgstr "" 5858 5880 5859 #: assets/free/js/admin.js:20 035881 #: assets/free/js/admin.js:2018 5860 5882 msgid "Support forum on WordPress.org" 5861 5883 msgstr "" 5862 5884 5863 #: assets/free/js/admin.js:20 035885 #: assets/free/js/admin.js:2018 5864 5886 msgid "Report a problem" 5865 5887 msgstr "" 5866 5888 5867 5889 #. translators: %d: number of site areas. 5868 #: assets/free/js/admin.js:20 085890 #: assets/free/js/admin.js:2023 5869 5891 #, js-format 5870 5892 msgid "%d area" … … 5874 5896 5875 5897 #. translators: 1: "N tools", 2: "N areas". 5876 #: assets/free/js/admin.js:20 105898 #: assets/free/js/admin.js:2025 5877 5899 #, js-format 5878 5900 msgid "%1$s in %2$s of the site." 5879 5901 msgstr "" 5880 5902 5881 #: assets/free/js/admin.js:20 135903 #: assets/free/js/admin.js:2028 5882 5904 msgid "Llamly turns your WordPress into an MCP server" 5883 5905 msgstr "" 5884 5906 5885 #: assets/free/js/admin.js:20 155907 #: assets/free/js/admin.js:2030 5886 5908 msgid "AI agents read and edit the site with the permissions you give them. Almost every change stays in the history and can be undone." 5887 5909 msgstr "" 5888 5910 5889 #: assets/free/js/admin.js:20 185890 #: assets/free/js/admin.js:23 535911 #: assets/free/js/admin.js:2033 5912 #: assets/free/js/admin.js:2369 5891 5913 msgid "Connect an agent" 5892 5914 msgstr "" 5893 5915 5894 #: assets/free/js/admin.js:20 215916 #: assets/free/js/admin.js:2036 5895 5917 msgid "Getting started" 5896 5918 msgstr "" 5897 5919 5898 #: assets/free/js/admin.js:20 255920 #: assets/free/js/admin.js:2040 5899 5921 msgid "Try asking" 5900 5922 msgstr "" 5901 5923 5902 #: assets/free/js/admin.js:20 265924 #: assets/free/js/admin.js:2041 5903 5925 msgid "Click to copy and paste it into the conversation with your agent." 5904 5926 msgstr "" 5905 5927 5906 #: assets/free/js/admin.js:20 305928 #: assets/free/js/admin.js:2045 5907 5929 msgid "What Llamly can do" 5908 5930 msgstr "" 5909 5931 5910 #: assets/free/js/admin.js:20 325932 #: assets/free/js/admin.js:2047 5911 5933 msgid "Writing is paused on this site; that's why only read tools are shown." 5912 5934 msgstr "" 5913 5935 5914 #: assets/free/js/admin.js:20 365936 #: assets/free/js/admin.js:2051 5915 5937 msgid "The tool catalog is unavailable right now." 5916 5938 msgstr "" 5917 5939 5918 #: assets/free/js/admin.js:20 385940 #: assets/free/js/admin.js:2053 5919 5941 msgid "Elementor detected. In Free, Elementor pages are outside the agent's write reach." 5920 5942 msgstr "" 5921 5943 5922 #: assets/free/js/admin.js:20 415944 #: assets/free/js/admin.js:2057 5923 5945 msgid "Help" 5924 5946 msgstr "" 5925 5947 5926 #: assets/free/js/admin.js:20 455948 #: assets/free/js/admin.js:2061 5927 5949 msgid "System information" 5928 5950 msgstr "" 5929 5951 5930 #: assets/free/js/admin.js:20 465952 #: assets/free/js/admin.js:2062 5931 5953 msgid "Copy information" 5932 5954 msgstr "" 5933 5955 5934 #: assets/free/js/admin.js:20 515956 #: assets/free/js/admin.js:2067 5935 5957 msgid "Prompt copied." 5936 5958 msgstr "" 5937 5959 5938 #: assets/free/js/admin.js:20 535960 #: assets/free/js/admin.js:2069 5939 5961 msgid "Information copied." 5940 5962 msgstr "" 5941 5963 5942 #: assets/free/js/admin.js:20 625964 #: assets/free/js/admin.js:2078 5943 5965 msgid "Created a post" 5944 5966 msgstr "" 5945 5967 5946 #: assets/free/js/admin.js:20 625968 #: assets/free/js/admin.js:2078 5947 5969 msgid "Edited a post" 5948 5970 msgstr "" 5949 5971 5950 #: assets/free/js/admin.js:20 635972 #: assets/free/js/admin.js:2079 5951 5973 msgid "Removed a post" 5952 5974 msgstr "" 5953 5975 5954 #: assets/free/js/admin.js:20 635976 #: assets/free/js/admin.js:2079 5955 5977 msgid "Created a draft" 5956 5978 msgstr "" 5957 5979 5958 #: assets/free/js/admin.js:20 645980 #: assets/free/js/admin.js:2080 5959 5981 msgid "Edited a draft" 5960 5982 msgstr "" 5961 5983 5962 #: assets/free/js/admin.js:20 655984 #: assets/free/js/admin.js:2081 5963 5985 msgid "Restored a revision" 5964 5986 msgstr "" 5965 5987 5966 #: assets/free/js/admin.js:20 655988 #: assets/free/js/admin.js:2081 5967 5989 msgid "Created a term" 5968 5990 msgstr "" 5969 5991 5970 #: assets/free/js/admin.js:20 665992 #: assets/free/js/admin.js:2082 5971 5993 msgid "Edited a term" 5972 5994 msgstr "" 5973 5995 5974 #: assets/free/js/admin.js:20 665996 #: assets/free/js/admin.js:2082 5975 5997 msgid "Deleted a term" 5976 5998 msgstr "" 5977 5999 5978 #: assets/free/js/admin.js:20 676000 #: assets/free/js/admin.js:2083 5979 6001 msgid "Uploaded media" 5980 6002 msgstr "" 5981 6003 5982 #: assets/free/js/admin.js:20 686004 #: assets/free/js/admin.js:2084 5983 6005 msgid "Edited media" 5984 6006 msgstr "" 5985 6007 5986 #: assets/free/js/admin.js:20 686008 #: assets/free/js/admin.js:2084 5987 6009 msgid "Deleted media" 5988 6010 msgstr "" 5989 6011 5990 #: assets/free/js/admin.js:20 696012 #: assets/free/js/admin.js:2085 5991 6013 msgid "Created a menu" 5992 6014 msgstr "" 5993 6015 5994 #: assets/free/js/admin.js:20 696016 #: assets/free/js/admin.js:2085 5995 6017 msgid "Edited a menu" 5996 6018 msgstr "" 5997 6019 5998 #: assets/free/js/admin.js:20 706020 #: assets/free/js/admin.js:2086 5999 6021 msgid "Deleted a menu" 6000 6022 msgstr "" 6001 6023 6002 #: assets/free/js/admin.js:20 706024 #: assets/free/js/admin.js:2086 6003 6025 msgid "Reorganized the menu items" 6004 6026 msgstr "" 6005 6027 6006 #: assets/free/js/admin.js:20 716028 #: assets/free/js/admin.js:2087 6007 6029 msgid "Created a comment" 6008 6030 msgstr "" 6009 6031 6010 #: assets/free/js/admin.js:20 716032 #: assets/free/js/admin.js:2087 6011 6033 msgid "Edited a comment" 6012 6034 msgstr "" 6013 6035 6014 #: assets/free/js/admin.js:20 726036 #: assets/free/js/admin.js:2088 6015 6037 msgid "Deleted a comment" 6016 6038 msgstr "" 6017 6039 6018 #: assets/free/js/admin.js:20 736040 #: assets/free/js/admin.js:2089 6019 6041 msgid "Changed a site setting" 6020 6042 msgstr "" 6021 6043 6022 #: assets/free/js/admin.js:20 746044 #: assets/free/js/admin.js:2090 6023 6045 msgid "Edited blocks" 6024 6046 msgstr "" 6025 6047 6026 #: assets/free/js/admin.js:20 746048 #: assets/free/js/admin.js:2090 6027 6049 msgid "Created a pattern" 6028 6050 msgstr "" 6029 6051 6030 #: assets/free/js/admin.js:20 756052 #: assets/free/js/admin.js:2091 6031 6053 msgid "Edited a pattern" 6032 6054 msgstr "" 6033 6055 6034 #: assets/free/js/admin.js:20 756056 #: assets/free/js/admin.js:2091 6035 6057 msgid "Deleted a pattern" 6036 6058 msgstr "" 6037 6059 6038 #: assets/free/js/admin.js:20 766060 #: assets/free/js/admin.js:2092 6039 6061 msgid "Saved a template" 6040 6062 msgstr "" 6041 6063 6042 #: assets/free/js/admin.js:20 766064 #: assets/free/js/admin.js:2092 6043 6065 msgid "Reset the template to the original" 6044 6066 msgstr "" 6045 6067 6046 #: assets/free/js/admin.js:20 776068 #: assets/free/js/admin.js:2093 6047 6069 msgid "Changed the global styles" 6048 6070 msgstr "" 6049 6071 6050 #: assets/free/js/admin.js:20 796072 #: assets/free/js/admin.js:2095 6051 6073 msgid "Post" 6052 6074 msgstr "" 6053 6075 6054 #: assets/free/js/admin.js:20 796076 #: assets/free/js/admin.js:2095 6055 6077 msgid "Page" 6056 6078 msgstr "" 6057 6079 6058 #: assets/free/js/admin.js:20 796080 #: assets/free/js/admin.js:2095 6059 6081 msgid "Term" 6060 6082 msgstr "" 6061 6083 6062 #: assets/free/js/admin.js:20 806084 #: assets/free/js/admin.js:2096 6063 6085 msgid "Menu" 6064 6086 msgstr "" 6065 6087 6066 #: assets/free/js/admin.js:20 806088 #: assets/free/js/admin.js:2096 6067 6089 msgid "Comment" 6068 6090 msgstr "" 6069 6091 6070 #: assets/free/js/admin.js:20 816092 #: assets/free/js/admin.js:2097 6071 6093 msgid "User" 6072 6094 msgstr "" 6073 6095 6074 #: assets/free/js/admin.js:20 816096 #: assets/free/js/admin.js:2097 6075 6097 msgid "Site setting" 6076 6098 msgstr "" 6077 6099 6078 #: assets/free/js/admin.js:20 816100 #: assets/free/js/admin.js:2097 6079 6101 msgid "Block pattern" 6080 6102 msgstr "" 6081 6103 6082 #: assets/free/js/admin.js:20 826104 #: assets/free/js/admin.js:2098 6083 6105 msgid "Template" 6084 6106 msgstr "" 6085 6107 6086 #: assets/free/js/admin.js:2 0846108 #: assets/free/js/admin.js:2100 6087 6109 msgctxt "changed field" 6088 6110 msgid "title" 6089 6111 msgstr "" 6090 6112 6091 #: assets/free/js/admin.js:2 0846113 #: assets/free/js/admin.js:2100 6092 6114 msgctxt "changed field" 6093 6115 msgid "content" 6094 6116 msgstr "" 6095 6117 6096 #: assets/free/js/admin.js:2 0856118 #: assets/free/js/admin.js:2101 6097 6119 msgctxt "changed field" 6098 6120 msgid "excerpt" 6099 6121 msgstr "" 6100 6122 6101 #: assets/free/js/admin.js:2 0856123 #: assets/free/js/admin.js:2101 6102 6124 msgctxt "changed field" 6103 6125 msgid "status" 6104 6126 msgstr "" 6105 6127 6106 #: assets/free/js/admin.js:2 0866107 #: assets/free/js/admin.js:2 0896128 #: assets/free/js/admin.js:2102 6129 #: assets/free/js/admin.js:2105 6108 6130 msgctxt "changed field" 6109 6131 msgid "slug" 6110 6132 msgstr "" 6111 6133 6112 #: assets/free/js/admin.js:2 0866134 #: assets/free/js/admin.js:2102 6113 6135 msgctxt "changed field" 6114 6136 msgid "date" 6115 6137 msgstr "" 6116 6138 6117 #: assets/free/js/admin.js:2 0876139 #: assets/free/js/admin.js:2103 6118 6140 msgctxt "changed field" 6119 6141 msgid "parent page" 6120 6142 msgstr "" 6121 6143 6122 #: assets/free/js/admin.js:2 0876144 #: assets/free/js/admin.js:2103 6123 6145 msgctxt "changed field" 6124 6146 msgid "order" 6125 6147 msgstr "" 6126 6148 6127 #: assets/free/js/admin.js:2 0886149 #: assets/free/js/admin.js:2104 6128 6150 msgctxt "changed field" 6129 6151 msgid "author" 6130 6152 msgstr "" 6131 6153 6132 #: assets/free/js/admin.js:2 0886154 #: assets/free/js/admin.js:2104 6133 6155 msgctxt "changed field" 6134 6156 msgid "type" 6135 6157 msgstr "" 6136 6158 6137 #: assets/free/js/admin.js:2 0886159 #: assets/free/js/admin.js:2104 6138 6160 msgctxt "changed field" 6139 6161 msgid "name" 6140 6162 msgstr "" 6141 6163 6142 #: assets/free/js/admin.js:2 0896164 #: assets/free/js/admin.js:2105 6143 6165 msgctxt "changed field" 6144 6166 msgid "description" 6145 6167 msgstr "" 6146 6168 6147 #: assets/free/js/admin.js:2 0906169 #: assets/free/js/admin.js:2106 6148 6170 msgctxt "changed field" 6149 6171 msgid "value" 6150 6172 msgstr "" 6151 6173 6152 #: assets/free/js/admin.js:2 0906174 #: assets/free/js/admin.js:2106 6153 6175 msgctxt "changed field" 6154 6176 msgid "alt text" 6155 6177 msgstr "" 6156 6178 6157 #: assets/free/js/admin.js:2 0916179 #: assets/free/js/admin.js:2107 6158 6180 msgctxt "changed field" 6159 6181 msgid "caption" 6160 6182 msgstr "" 6161 6183 6162 #: assets/free/js/admin.js:2 0946184 #: assets/free/js/admin.js:2110 6163 6185 msgid "Force undid" 6164 6186 msgstr "" 6165 6187 6166 #: assets/free/js/admin.js:2 0956167 #: assets/free/js/admin.js:22 386188 #: assets/free/js/admin.js:2111 6189 #: assets/free/js/admin.js:2254 6168 6190 msgid "Undid a change" 6169 6191 msgstr "" 6170 6192 6171 #: assets/free/js/admin.js:2 0966172 #: assets/free/js/admin.js:22 386193 #: assets/free/js/admin.js:2112 6194 #: assets/free/js/admin.js:2254 6173 6195 msgid "Redid a change" 6174 6196 msgstr "" 6175 6197 6176 #: assets/free/js/admin.js:2 0976198 #: assets/free/js/admin.js:2113 6177 6199 msgid "Created an item" 6178 6200 msgstr "" 6179 6201 6180 #: assets/free/js/admin.js:2 0986202 #: assets/free/js/admin.js:2114 6181 6203 msgid "Removed an item" 6182 6204 msgstr "" 6183 6205 6184 #: assets/free/js/admin.js:2 0996206 #: assets/free/js/admin.js:2115 6185 6207 msgid "Changed the content" 6186 6208 msgstr "" 6187 6209 6188 6210 #. translators: %d: number of custom fields. 6189 #: assets/free/js/admin.js:21 086211 #: assets/free/js/admin.js:2124 6190 6212 #, js-format 6191 6213 msgid "%d custom field" … … 6194 6216 msgstr[1] "" 6195 6217 6196 #: assets/free/js/admin.js:21 096218 #: assets/free/js/admin.js:2125 6197 6219 msgid "categories and tags" 6198 6220 msgstr "" 6199 6221 6200 6222 #. translators: %s: comma-separated list of changed fields. 6201 #: assets/free/js/admin.js:21 116223 #: assets/free/js/admin.js:2127 6202 6224 #, js-format 6203 6225 msgid "Changed: %s" 6204 6226 msgstr "" 6205 6227 6206 #: assets/free/js/admin.js:21 236228 #: assets/free/js/admin.js:2139 6207 6229 msgid "Becomes visible to the public" 6208 6230 msgstr "" 6209 6231 6210 #: assets/free/js/admin.js:21 236232 #: assets/free/js/admin.js:2139 6211 6233 msgid "Sensitive data" 6212 6234 msgstr "" 6213 6235 6214 #: assets/free/js/admin.js:21 246236 #: assets/free/js/admin.js:2140 6215 6237 msgid "Removes or replaces content" 6216 6238 msgstr "" 6217 6239 6218 #: assets/free/js/admin.js:21 276240 #: assets/free/js/admin.js:2143 6219 6241 msgid "Pings, feeds, sitemaps, caches and webhooks of third parties are not undone." 6220 6242 msgstr "" 6221 6243 6222 #: assets/free/js/admin.js:21 296244 #: assets/free/js/admin.js:2145 6223 6245 msgid "Pages that embed this synced pattern change for visitors." 6224 6246 msgstr "" 6225 6247 6226 #: assets/free/js/admin.js:21 306248 #: assets/free/js/admin.js:2146 6227 6249 msgid "The whole site changes for visitors; page caches and CDNs are not purged." 6228 6250 msgstr "" 6229 6251 6230 #: assets/free/js/admin.js:21 326252 #: assets/free/js/admin.js:2148 6231 6253 msgid "Every page rendered with this template changes for visitors; page caches and CDNs are not purged." 6232 6254 msgstr "" 6233 6255 6234 #: assets/free/js/admin.js:21 346256 #: assets/free/js/admin.js:2150 6235 6257 msgid "CDN, page and image caches and third-party copies of the file are not undone." 6236 6258 msgstr "" 6237 6259 6238 #: assets/free/js/admin.js:21 366260 #: assets/free/js/admin.js:2152 6239 6261 msgid "Page caches, search engines and feeds may keep the previous value." 6240 6262 msgstr "" 6241 6263 6242 #: assets/free/js/admin.js:21 386264 #: assets/free/js/admin.js:2154 6243 6265 msgctxt "changes filter" 6244 6266 msgid "All" 6245 6267 msgstr "" 6246 6268 6247 #: assets/free/js/admin.js:21 386269 #: assets/free/js/admin.js:2154 6248 6270 msgctxt "changes filter" 6249 6271 msgid "Active" 6250 6272 msgstr "" 6251 6273 6252 #: assets/free/js/admin.js:21 396274 #: assets/free/js/admin.js:2155 6253 6275 msgctxt "changes filter" 6254 6276 msgid "Undone" 6255 6277 msgstr "" 6256 6278 6257 #: assets/free/js/admin.js:21 396279 #: assets/free/js/admin.js:2155 6258 6280 msgctxt "changes filter" 6259 6281 msgid "Not reversible" 6260 6282 msgstr "" 6261 6283 6262 #: assets/free/js/admin.js:2 1866284 #: assets/free/js/admin.js:2202 6263 6285 msgctxt "change state" 6264 6286 msgid "Undone" 6265 6287 msgstr "" 6266 6288 6267 #: assets/free/js/admin.js:2 1876289 #: assets/free/js/admin.js:2203 6268 6290 msgid "Conflict" 6269 6291 msgstr "" 6270 6292 6271 #: assets/free/js/admin.js:2 1886293 #: assets/free/js/admin.js:2204 6272 6294 msgctxt "change state" 6273 6295 msgid "Not reversible" 6274 6296 msgstr "" 6275 6297 6276 #: assets/free/js/admin.js:2 1896298 #: assets/free/js/admin.js:2205 6277 6299 msgid "Recovery needed" 6278 6300 msgstr "" 6279 6301 6280 #: assets/free/js/admin.js:2 1906302 #: assets/free/js/admin.js:2206 6281 6303 msgid "In progress" 6282 6304 msgstr "" 6283 6305 6284 #: assets/free/js/admin.js:2 1916306 #: assets/free/js/admin.js:2207 6285 6307 msgid "Add-on inactive" 6286 6308 msgstr "" 6287 6309 6288 #: assets/free/js/admin.js:2 1986310 #: assets/free/js/admin.js:2214 6289 6311 msgid "Review and release" 6290 6312 msgstr "" 6291 6313 6292 #: assets/free/js/admin.js:22 006293 #: assets/free/js/admin.js:25 086294 #: assets/free/js/admin.js:25 166314 #: assets/free/js/admin.js:2216 6315 #: assets/free/js/admin.js:2524 6316 #: assets/free/js/admin.js:2532 6295 6317 msgid "Redo" 6296 6318 msgstr "" 6297 6319 6298 #: assets/free/js/admin.js:22 016320 #: assets/free/js/admin.js:2217 6299 6321 msgid "Review" 6300 6322 msgstr "" 6301 6323 6302 6324 #. translators: 1: summary of the original change, 2: when it happened ("today, 14:00"). 6303 #: assets/free/js/admin.js:22 236325 #: assets/free/js/admin.js:2239 6304 6326 #, js-format 6305 6327 msgid "Redoes “%1$s” from %2$s" 6306 6328 msgstr "" 6307 6329 6308 #: assets/free/js/admin.js:22 236330 #: assets/free/js/admin.js:2239 6309 6331 #, js-format 6310 6332 msgid "Redoes “%s”" … … 6312 6334 6313 6335 #. translators: 1: summary of the original change, 2: when it happened ("today, 14:00"). 6314 #: assets/free/js/admin.js:22 276336 #: assets/free/js/admin.js:2243 6315 6337 #, js-format 6316 6338 msgid "Undoes “%1$s” from %2$s" 6317 6339 msgstr "" 6318 6340 6319 #: assets/free/js/admin.js:22 276341 #: assets/free/js/admin.js:2243 6320 6342 #, js-format 6321 6343 msgid "Undoes “%s”" … … 6323 6345 6324 6346 #. translators: 1: summary of the original change, 2: when it happened ("today, 14:00"). 6325 #: assets/free/js/admin.js:22 306347 #: assets/free/js/admin.js:2246 6326 6348 #, js-format 6327 6349 msgid "Reverted “%1$s” from %2$s over newer edits." 6328 6350 msgstr "" 6329 6351 6330 #: assets/free/js/admin.js:22 316352 #: assets/free/js/admin.js:2247 6331 6353 #, js-format 6332 6354 msgid "Reverted “%s” over newer edits." 6333 6355 msgstr "" 6334 6356 6335 #: assets/free/js/admin.js:22 326357 #: assets/free/js/admin.js:2248 6336 6358 msgid "Undoing this change brings back what was replaced." 6337 6359 msgstr "" 6338 6360 6339 6361 #. translators: 1: relative time ("5 minutes ago"), 2: who undid it. 6340 #: assets/free/js/admin.js:22 446362 #: assets/free/js/admin.js:2260 6341 6363 #, js-format 6342 6364 msgid "Undone %1$s by %2$s" 6343 6365 msgstr "" 6344 6366 6345 #: assets/free/js/admin.js:22 456346 #: assets/free/js/admin.js:22 486367 #: assets/free/js/admin.js:2261 6368 #: assets/free/js/admin.js:2264 6347 6369 msgid "someone" 6348 6370 msgstr "" 6349 6371 6350 6372 #. translators: 1: relative time ("5 minutes ago"), 2: who redid it. 6351 #: assets/free/js/admin.js:22 476373 #: assets/free/js/admin.js:2263 6352 6374 #, js-format 6353 6375 msgid "Redone %1$s by %2$s" 6354 6376 msgstr "" 6355 6377 6356 #: assets/free/js/admin.js:22 716357 #: assets/free/js/admin.js:25 486378 #: assets/free/js/admin.js:2287 6379 #: assets/free/js/admin.js:2564 6358 6380 msgid "Undo batch" 6359 6381 msgstr "" 6360 6382 6361 6383 #. translators: %d: number of changes in the batch. 6362 #: assets/free/js/admin.js:22 756384 #: assets/free/js/admin.js:2291 6363 6385 #, js-format 6364 6386 msgid "Batch of %d change" … … 6367 6389 msgstr[1] "" 6368 6390 6369 #: assets/free/js/admin.js:22 796391 #: assets/free/js/admin.js:2295 6370 6392 #, js-format 6371 6393 msgid "%1$d of %2$d change shown. The others are outside the current filters." … … 6375 6397 6376 6398 #. translators: 1: number of changes already undone, 2: total changes in the batch. 6377 #: assets/free/js/admin.js:22 836399 #: assets/free/js/admin.js:2299 6378 6400 #, js-format 6379 6401 msgid "%1$d of %2$d already undone" … … 6382 6404 msgstr[1] "" 6383 6405 6384 #: assets/free/js/admin.js:2 2876406 #: assets/free/js/admin.js:2303 6385 6407 #, js-format 6386 6408 msgid "%d item" … … 6389 6411 msgstr[1] "" 6390 6412 6391 #: assets/free/js/admin.js:2 2946413 #: assets/free/js/admin.js:2310 6392 6414 msgid "The history couldn't be loaded" 6393 6415 msgstr "" 6394 6416 6395 #: assets/free/js/admin.js:2 2976417 #: assets/free/js/admin.js:2313 6396 6418 msgid "Loading the history…" 6397 6419 msgstr "" 6398 6420 6399 #: assets/free/js/admin.js:23 016421 #: assets/free/js/admin.js:2317 6400 6422 msgid "No change matches these filters." 6401 6423 msgstr "" 6402 6424 6403 #: assets/free/js/admin.js:23 056425 #: assets/free/js/admin.js:2321 6404 6426 msgid "Writing through MCP is paused on this site. Undo and redo are unavailable until it comes back." 6405 6427 msgstr "" 6406 6428 6407 #: assets/free/js/admin.js:23 406429 #: assets/free/js/admin.js:2356 6408 6430 msgid "All types" 6409 6431 msgstr "" 6410 6432 6411 #: assets/free/js/admin.js:23 456433 #: assets/free/js/admin.js:2361 6412 6434 msgid "Change history" 6413 6435 msgstr "" 6414 6436 6415 #: assets/free/js/admin.js:23 496437 #: assets/free/js/admin.js:2365 6416 6438 msgid "No changes yet" 6417 6439 msgstr "" 6418 6440 6419 #: assets/free/js/admin.js:23 516441 #: assets/free/js/admin.js:2367 6420 6442 msgid "When an agent creates or edits something on the site, it shows up here with the option to undo." 6421 6443 msgstr "" 6422 6444 6423 #: assets/free/js/admin.js:23 526445 #: assets/free/js/admin.js:2368 6424 6446 msgid "Writing through MCP is paused on this site. Reading is still available." 6425 6447 msgstr "" 6426 6448 6427 #: assets/free/js/admin.js:23 576449 #: assets/free/js/admin.js:2373 6428 6450 msgid "Search by change or item" 6429 6451 msgstr "" 6430 6452 6431 #: assets/free/js/admin.js:23 586453 #: assets/free/js/admin.js:2374 6432 6454 msgid "Search the history" 6433 6455 msgstr "" 6434 6456 6435 #: assets/free/js/admin.js:23 606457 #: assets/free/js/admin.js:2376 6436 6458 msgid "Filter by item type" 6437 6459 msgstr "" 6438 6460 6439 #: assets/free/js/admin.js:23 676461 #: assets/free/js/admin.js:2383 6440 6462 msgid "(removed)" 6441 6463 msgstr "" 6442 6464 6443 #: assets/free/js/admin.js:23 676465 #: assets/free/js/admin.js:2383 6444 6466 msgid "(moved to the trash)" 6445 6467 msgstr "" 6446 6468 6447 #: assets/free/js/admin.js:23 676469 #: assets/free/js/admin.js:2383 6448 6470 msgid "(deleted)" 6449 6471 msgstr "" 6450 6472 6451 #: assets/free/js/admin.js:23 716473 #: assets/free/js/admin.js:2387 6452 6474 msgctxt "changed field" 6453 6475 msgid "item" 6454 6476 msgstr "" 6455 6477 6456 #: assets/free/js/admin.js:2 3966478 #: assets/free/js/admin.js:2412 6457 6479 msgid "(empty)" 6458 6480 msgstr "" 6459 6481 6460 6482 #. translators: %d: number of changed lines that are not shown. 6461 #: assets/free/js/admin.js:24 166483 #: assets/free/js/admin.js:2432 6462 6484 #, js-format 6463 6485 msgid "…and %d more changed line" … … 6466 6488 msgstr[1] "" 6467 6489 6468 #: assets/free/js/admin.js:24 196490 #: assets/free/js/admin.js:2435 6469 6491 msgid "Changed beyond the shown excerpt." 6470 6492 msgstr "" 6471 6493 6472 #: assets/free/js/admin.js:24 206494 #: assets/free/js/admin.js:2436 6473 6495 msgid "Incomplete diff: the value is longer than what is shown." 6474 6496 msgstr "" 6475 6497 6476 #: assets/free/js/admin.js:24 246498 #: assets/free/js/admin.js:2440 6477 6499 msgid "Only the first changes are shown." 6478 6500 msgstr "" 6479 6501 6480 #: assets/free/js/admin.js:24 336502 #: assets/free/js/admin.js:2449 6481 6503 msgid "Risk not given" 6482 6504 msgstr "" 6483 6505 6484 #: assets/free/js/admin.js:24 386506 #: assets/free/js/admin.js:2454 6485 6507 msgid "Approved" 6486 6508 msgstr "" 6487 6509 6488 #: assets/free/js/admin.js:24 406489 #: assets/free/js/admin.js:26 506510 #: assets/free/js/admin.js:2456 6511 #: assets/free/js/admin.js:2666 6490 6512 msgid "Reject" 6491 6513 msgstr "" 6492 6514 6493 #: assets/free/js/admin.js:24 426494 #: assets/free/js/admin.js:26 476515 #: assets/free/js/admin.js:2458 6516 #: assets/free/js/admin.js:2663 6495 6517 msgid "Approve" 6496 6518 msgstr "" 6497 6519 6498 #: assets/free/js/admin.js:24 486520 #: assets/free/js/admin.js:2464 6499 6521 #, js-format 6500 6522 msgid "The agent sent this request %d times. Your answer applies to all of them." … … 6502 6524 6503 6525 #. translators: %s: when the request leaves the list ("tomorrow, 14:00"). 6504 #: assets/free/js/admin.js:24 516526 #: assets/free/js/admin.js:2467 6505 6527 #, js-format 6506 6528 msgid "Expires %s" 6507 6529 msgstr "" 6508 6530 6509 #: assets/free/js/admin.js:24 616531 #: assets/free/js/admin.js:2477 6510 6532 #, js-format 6511 6533 msgid "Approved until %s. Waiting for the agent to repeat the request." 6512 6534 msgstr "" 6513 6535 6514 #: assets/free/js/admin.js:24 666536 #: assets/free/js/admin.js:2482 6515 6537 msgid "Requests waiting for approval" 6516 6538 msgstr "" 6517 6539 6518 #: assets/free/js/admin.js:24 686540 #: assets/free/js/admin.js:2484 6519 6541 msgid "The agent has to repeat the request after approval." 6520 6542 msgstr "" 6521 6543 6522 #: assets/free/js/admin.js:25 016544 #: assets/free/js/admin.js:2517 6523 6545 msgid "It's recorded as a new change." 6524 6546 msgstr "" 6525 6547 6526 #: assets/free/js/admin.js:25 036548 #: assets/free/js/admin.js:2519 6527 6549 msgid "Undo this change?" 6528 6550 msgstr "" 6529 6551 6530 #: assets/free/js/admin.js:25 036552 #: assets/free/js/admin.js:2519 6531 6553 msgid "Redo this change?" 6532 6554 msgstr "" 6533 6555 6534 #: assets/free/js/admin.js:25 056556 #: assets/free/js/admin.js:2521 6535 6557 msgid "Llamly checks that the item is still as the agent left it before changing it. If someone edited it since, nothing is changed." 6536 6558 msgstr "" 6537 6559 6538 6560 #. translators: %d: number of other changes not listed. 6539 #: assets/free/js/admin.js:25 326561 #: assets/free/js/admin.js:2548 6540 6562 #, js-format 6541 6563 msgid "and %d more" … … 6545 6567 6546 6568 #. translators: %d: number of changes in the batch. 6547 #: assets/free/js/admin.js:25 366569 #: assets/free/js/admin.js:2552 6548 6570 msgid "Undo this batch?" 6549 6571 msgstr "" 6550 6572 6551 #: assets/free/js/admin.js:25 366573 #: assets/free/js/admin.js:2552 6552 6574 #, js-format 6553 6575 msgid "%d change made together by the agent." … … 6557 6579 6558 6580 #. translators: %d: number of changes of the batch outside the current filters that are still to undo. 6559 #: assets/free/js/admin.js:25 416581 #: assets/free/js/admin.js:2557 6560 6582 #, js-format 6561 6583 msgid "%d change of this batch is outside the current filters" … … 6564 6586 msgstr[1] "" 6565 6587 6566 #: assets/free/js/admin.js:25 436588 #: assets/free/js/admin.js:2559 6567 6589 msgid "Undo batch undoes it too:" 6568 6590 msgid_plural "Undo batch undoes them too:" … … 6570 6592 msgstr[1] "" 6571 6593 6572 #: assets/free/js/admin.js:25 466594 #: assets/free/js/admin.js:2562 6573 6595 msgid "Llamly undoes from the newest change to the oldest. If one of them changed since, it stops there and shows what's left. Each undo is recorded as a new change." 6574 6596 msgstr "" 6575 6597 6576 #: assets/free/js/admin.js:25 566598 #: assets/free/js/admin.js:2572 6577 6599 msgid "The change couldn't be undone." 6578 6600 msgstr "" 6579 6601 6580 6602 #. translators: 1: changes undone, 2: total changes in the batch. 6581 #: assets/free/js/admin.js:25 606603 #: assets/free/js/admin.js:2576 6582 6604 msgid "Batch partly undone" 6583 6605 msgstr "" 6584 6606 6585 #: assets/free/js/admin.js:25 606607 #: assets/free/js/admin.js:2576 6586 6608 #, js-format 6587 6609 msgid "%1$d of %2$d change undone." … … 6590 6612 msgstr[1] "" 6591 6613 6592 #: assets/free/js/admin.js:25 646614 #: assets/free/js/admin.js:2580 6593 6615 #, js-format 6594 6616 msgid "Stopped at %s" 6595 6617 msgstr "" 6596 6618 6597 #: assets/free/js/admin.js:25 656619 #: assets/free/js/admin.js:2581 6598 6620 msgid "a change" 6599 6621 msgstr "" 6600 6622 6601 6623 #. translators: %d: number of changes left in the batch. 6602 #: assets/free/js/admin.js:25 676624 #: assets/free/js/admin.js:2583 6603 6625 #, js-format 6604 6626 msgid "%d change of this batch is left." … … 6607 6629 msgstr[1] "" 6608 6630 6609 #: assets/free/js/admin.js:25 696631 #: assets/free/js/admin.js:2585 6610 6632 msgid "Review the item and try again. The ones already undone aren't repeated." 6611 6633 msgstr "" 6612 6634 6613 #: assets/free/js/admin.js:25 706635 #: assets/free/js/admin.js:2586 6614 6636 msgid "Got it" 6615 6637 msgstr "" 6616 6638 6617 6639 #. translators: %d: number of items undone. 6618 #: assets/free/js/admin.js:25 746640 #: assets/free/js/admin.js:2590 6619 6641 #, js-format 6620 6642 msgid "Batch undone (%d item)" … … 6623 6645 msgstr[1] "" 6624 6646 6625 #: assets/free/js/admin.js:25 826647 #: assets/free/js/admin.js:2598 6626 6648 msgid "Undo anyway?" 6627 6649 msgstr "" 6628 6650 6629 #: assets/free/js/admin.js:25 836651 #: assets/free/js/admin.js:2599 6630 6652 msgid "The item goes back to how it was before this agent change. Edits made after it are replaced." 6631 6653 msgstr "" 6632 6654 6633 #: assets/free/js/admin.js:2 5856655 #: assets/free/js/admin.js:2601 6634 6656 msgid "Nothing is lost: the force undo stays in the history as a new change, and undoing it brings back the replaced state." 6635 6657 msgstr "" 6636 6658 6637 #: assets/free/js/admin.js:2 5876638 #: assets/free/js/admin.js:26 186659 #: assets/free/js/admin.js:2603 6660 #: assets/free/js/admin.js:2634 6639 6661 msgid "Undo anyway" 6640 6662 msgstr "" 6641 6663 6642 #: assets/free/js/admin.js:2 5956664 #: assets/free/js/admin.js:2611 6643 6665 msgid "Change force undone. You can undo it from the history." 6644 6666 msgstr "" 6645 6667 6646 #: assets/free/js/admin.js:26 066668 #: assets/free/js/admin.js:2622 6647 6669 msgid "Review conflict" 6648 6670 msgstr "" 6649 6671 6650 #: assets/free/js/admin.js:26 086672 #: assets/free/js/admin.js:2624 6651 6673 msgid "The item changed after this change." 6652 6674 msgstr "" 6653 6675 6654 #: assets/free/js/admin.js:26 126676 #: assets/free/js/admin.js:2628 6655 6677 msgid "Undo anyway takes the item back to how it was before the agent change and overwrites the edit made after it. The undo stays in the history and can be undone." 6656 6678 msgstr "" 6657 6679 6658 #: assets/free/js/admin.js:26 146680 #: assets/free/js/admin.js:2630 6659 6681 msgid "To undo, the item has to be as the agent left it. Check the item in WordPress." 6660 6682 msgstr "" 6661 6683 6662 #: assets/free/js/admin.js:26 166684 #: assets/free/js/admin.js:2632 6663 6685 msgid "Open in WordPress" 6664 6686 msgstr "" 6665 6687 6666 #: assets/free/js/admin.js:26 176688 #: assets/free/js/admin.js:2633 6667 6689 msgid "Keep as is" 6668 6690 msgstr "" 6669 6691 6670 #: assets/free/js/admin.js:26 246692 #: assets/free/js/admin.js:2640 6671 6693 msgid "Accept the item's current state?" 6672 6694 msgstr "" 6673 6695 6674 #: assets/free/js/admin.js:26 246696 #: assets/free/js/admin.js:2640 6675 6697 msgid "A change was interrupted." 6676 6698 msgstr "" 6677 6699 6678 #: assets/free/js/admin.js:26 266700 #: assets/free/js/admin.js:2642 6679 6701 msgid "The item matches neither the previous state nor the request. Open the item in WordPress and check the saved content." 6680 6702 msgstr "" 6681 6703 6682 #: assets/free/js/admin.js:26 286704 #: assets/free/js/admin.js:2644 6683 6705 msgid "When you accept, Llamly doesn't change the content: it closes this operation, allows new changes and invalidates editors open with the old version." 6684 6706 msgstr "" 6685 6707 6686 #: assets/free/js/admin.js:26 306708 #: assets/free/js/admin.js:2646 6687 6709 msgid "Accept current state" 6688 6710 msgstr "" 6689 6711 6690 #: assets/free/js/admin.js:26 356712 #: assets/free/js/admin.js:2651 6691 6713 msgid "The recovery was recorded and the item was released." 6692 6714 msgstr "" 6693 6715 6694 #: assets/free/js/admin.js:26 426716 #: assets/free/js/admin.js:2658 6695 6717 msgid "The agent" 6696 6718 msgstr "" 6697 6719 6698 #: assets/free/js/admin.js:26 456720 #: assets/free/js/admin.js:2661 6699 6721 msgid "Approve this request?" 6700 6722 msgstr "" 6701 6723 6702 #: assets/free/js/admin.js:26 466724 #: assets/free/js/admin.js:2662 6703 6725 msgid "The approval is only for this request and for a limited time. The agent has to repeat the request after approval. The change goes into the history and can be undone." 6704 6726 msgstr "" 6705 6727 6706 #: assets/free/js/admin.js:26 486728 #: assets/free/js/admin.js:2664 6707 6729 msgid "Reject this request?" 6708 6730 msgstr "" 6709 6731 6710 #: assets/free/js/admin.js:26 496732 #: assets/free/js/admin.js:2665 6711 6733 msgid "Nothing is changed. If the agent repeats the same request, it gets the rejection." 6712 6734 msgstr "" 6713 6735 6714 #: assets/free/js/admin.js:26 596736 #: assets/free/js/admin.js:2675 6715 6737 msgid "Request approved. The agent has to repeat the request." 6716 6738 msgstr "" 6717 6739 6718 #: assets/free/js/admin.js:26 606740 #: assets/free/js/admin.js:2676 6719 6741 msgid "Request rejected." 6720 6742 msgstr "" 6721 6743 6722 6744 #. translators: 1: requests answered, 2: requests that failed, 3: reason. 6723 #: assets/free/js/admin.js:26 636745 #: assets/free/js/admin.js:2679 6724 6746 #, js-format 6725 6747 msgid "%1$d requests were answered and %2$d failed: %3$s" 6726 6748 msgstr "" 6727 6749 6728 #: assets/free/js/admin.js:26 726750 #: assets/free/js/admin.js:2688 6729 6751 msgid "Activity" 6730 6752 msgstr "" 6731 6753 6732 #: assets/free/js/admin.js:26 816754 #: assets/free/js/admin.js:2697 6733 6755 msgid "Every change made by an agent is recorded with the previous state. You can undo each change separately." 6734 6756 msgstr "" -
llamly/trunk/llamly.php
r3788333 r3800467 3 3 * Plugin Name: Llamly MCP - AI Agent with ChatGPT & Claude 4 4 * Description: Connect AI clients to WordPress through the Llamly MCP server. 5 * Version: 1. 0.35 * Version: 1.1.0 6 6 * Requires at least: 6.2 7 7 * Requires PHP: 8.0 … … 19 19 20 20 define('LLAMLY_FREE_PLUGIN_FILE', __FILE__); 21 define('LLAMLY_FREE_VERSION', '1. 0.3');21 define('LLAMLY_FREE_VERSION', '1.1.0'); 22 22 // Writes are on by default: concurrent writes and the change journal were verified on WP 7.1 + MariaDB 10.11 and 23 23 // WP 6.2 + PHP 8.0 + MySQL 8.0. A site can still pause all writes by defining this constant as false in wp-config.php. … … 43 43 define('LLAMLY_FREE_MODULE_API', \Llamly\Free\Modules\ModuleRegistry::API); 44 44 45 // Freemius (LLP-455): usage statistics after an explicit opt-in, and the Llamly Pro add-on. Loaded here, in the main 46 // file, so the SDK sees activation and deactivation. Without ready settings it is not loaded and nothing is defined. 47 \Llamly\Free\Freemius\Sdk::boot(); 48 if (\Llamly\Free\Freemius\Sdk::instance() !== null && !function_exists('llamly_fs')) { 49 /** 50 * The Freemius instance of Llamly, for Freemius add-ons of Llamly (they check function_exists('llamly_fs') or wait 51 * for the llamly_fs_loaded action). Defined only when the SDK is loaded. 52 * 53 * @return \Freemius 54 */ 55 function llamly_fs() { 56 return \Llamly\Free\Freemius\Sdk::instance(); 57 } 58 do_action('llamly_fs_loaded'); 59 } 60 45 61 register_activation_hook(__FILE__, ['\\Llamly\\Free\\Core\\Plugin', 'activate']); 46 62 register_deactivation_hook(__FILE__, ['\\Llamly\\Free\\Core\\Plugin', 'deactivate']); -
llamly/trunk/readme.txt
r3788333 r3800467 5 5 Tested up to: 7.1 6 6 Requires PHP: 8.0 7 Stable tag: 1. 0.37 Stable tag: 1.1.0 8 8 License: GPLv2 or later 9 9 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 14 14 15 15 Llamly MCP connects your WordPress site to the AI you already use: ChatGPT, Claude, Codex, Cursor and other AI agents. Ask in plain language and your agent writes, edits and organizes the site for you, with your WordPress content permissions, a full change history and undo. It is a free WordPress MCP server (Model Context Protocol) that runs inside your own site: no relay, no Llamly server in between, no Llamly account and no API key from an AI provider. 16 17 https://www.youtube.com/watch?v=mJwEgav2r40 16 18 17 19 **Use the AI subscription you already have. Keep every change reversible.** … … 22 24 * **Content, never administration**: the agent works with your content permissions only. Whatever your role, it never changes site settings, users, plugins, themes or code, and never writes unfiltered HTML. 23 25 * **Bring your own AI**: works with ChatGPT, claude.ai, Claude Desktop, Claude Code, Codex, Cursor, OpenCode and Antigravity CLI. Llamly has no AI of its own and no usage meter: the agent you already pay for does the work. 24 * **Your data stays on your site**: self-hosted, no account, no relay , no telemetry. Your AI app connects to your site, and Llamly never calls out.26 * **Your data stays on your site**: self-hosted, no account, no relay. Your AI app connects to your site, and Llamly sends nothing out unless you opt in to the optional usage statistics (see External services). 25 27 * **Ready in a few minutes**: a step-by-step recipe for each app with your site address already filled in, an "Add to Claude" button, and a Doctor that checks your server and tells you what to ask your host. 26 28 … … 47 49 = Connect Claude to WordPress (claude.ai and Claude Desktop) = 48 50 51 Watch the 2-minute tutorial: 52 53 https://www.youtube.com/watch?v=0lrDl_NwaSw 54 49 55 Click "Add to Claude" in the Llamly recipe, review the request on your site, choose read only or read and write, and click Approve access. The same connector shows up in Claude Desktop on the same account. Needs a public HTTPS address; for a site on your computer, Claude Desktop uses the local bridge shown in the recipe. 50 56 … … 177 183 = Does Llamly send my content anywhere? = 178 184 179 No. Llamly makes no outbound calls to Llamly or to any third-party service at runtime. The AI app you connect sends requests to your site and receives the answers; what that app does with them is governed by its own terms. The connection diagnostics in Connections (Run checks) only call your own site (loopback) to check that the REST API, the MCP endpoint and the OAuth discovery URLs answer.185 No. Your posts, pages, media, connections, keys, logs and change journal are never sent anywhere. Llamly makes no outbound calls at runtime, except the optional usage statistics described in External services, which send nothing unless an administrator opts in. The AI app you connect sends requests to your site and receives the answers; what that app does with them is governed by its own terms. The connection diagnostics in Connections (Run checks) only call your own site (loopback) to check that the REST API, the MCP endpoint and the OAuth discovery URLs answer. 180 186 181 187 = Can the agent publish or delete things without me? = … … 227 233 There is no Llamly server: the AI app you connect sends its requests straight to your site, and each request acts with the content permissions of the user who created the key or approved the OAuth sign-in, never administrator ones. 228 234 229 Expired rows are removed by a daily WordPress cron event. Llamly sets no cookies on the public site, adds no tracking, and makes no external requests at runtime. Links in the admin that open claude.ai or chatgpt.com only open those sites in your browser when you click them. 235 Expired rows are removed by a daily WordPress cron event. Llamly sets no cookies on the public site and adds no tracking to it. Llamly itself makes no external requests at runtime; the only exception is the optional, opt-in usage statistics described in External services, which send nothing unless an administrator clicks "Allow & Continue". Links in the admin that open claude.ai or chatgpt.com only open those sites in your browser when you click them. 236 237 == External services == 238 239 Llamly includes the Freemius SDK (https://freemius.com), which Llamly uses for optional usage statistics and, later, to offer the Llamly Pro add-on. It connects to `api.freemius.com` and `wp.freemius.com`. 240 241 * **Before you choose, and if you skip:** the Llamly screen shows an opt-in screen once, with "Allow & Continue" and "Skip". Nothing is sent to Freemius before you click "Allow & Continue". If you click "Skip", nothing is sent and every feature of Llamly keeps working exactly the same; you can opt in later from the plugin's row on the Plugins screen. 242 * **After you click "Allow & Continue":** your browser sends the opt-in to `wp.freemius.com`, and from then on the site reports to `api.freemius.com`: your first and last name and email address as an administrator, the site URL, title and language, the WordPress, PHP, Llamly and SDK versions, Llamly events (activation, deactivation, uninstall, version updates) and the names, slugs and versions of the installed plugins and themes. The opt-in screen lists these before you agree. Freemius may then email you security and feature updates, educational content and occasional offers, as the opt-in screen says. After opting in, Llamly > Account shows what is shared and lets you opt out. 243 * **Deactivation feedback:** when you deactivate Llamly, an optional form asks why. If you send it, the reason you chose (and any text you wrote) is sent to Freemius, anonymously if you did not opt in. You can skip the form. 244 * Nothing from your posts, pages, media, connections, keys, logs or the change journal is ever sent. 245 246 Freemius terms of service: https://freemius.com/terms/ · Freemius privacy policy: https://freemius.com/privacy/ 230 247 231 248 == Source code == … … 254 271 == Changelog == 255 272 273 = 1.1.0 = 274 * Optional, opt-in usage and diagnostic statistics through Freemius. Nothing is sent without an administrator's consent ("Allow & Continue" on the Llamly screen). "Skip" keeps every feature working exactly the same. See External services. 275 * About: a Llamly Pro card. Llamly Pro will be a separate add-on and is coming soon; nothing in Llamly is locked. 276 * Uninstall keeps the same rules, tells the Freemius SDK about the uninstall (sent only if you opted in or sent deactivation feedback), and also removes what the Freemius SDK stored about Llamly. 277 * Readme: tutorial videos. 278 256 279 = 1.0.3 = 257 280 * The MCP endpoint checks the request origin and the caller's credential (Llamly API key or OAuth access token) in its REST permission callback, before the request reaches the MCP handler. Responses to clients are unchanged. … … 285 308 == Upgrade Notice == 286 309 310 = 1.1.0 = 311 Optional, opt-in usage statistics through Freemius: nothing is sent without your consent, and Skip keeps everything working. Llamly Pro add-on coming soon. 312 287 313 = 1.0.3 = 288 314 The MCP endpoint authenticates in its REST permission callback. Translations now come from translate.wordpress.org. -
llamly/trunk/src/Free/Admin/AdminPage.php
r3788333 r3800467 28 28 add_action('admin_notices', [self::class, 'renderOnboardingNotice']); 29 29 add_action('admin_post_llamly_free_dismiss_onboarding', [self::class, 'dismissOnboardingNotice']); 30 if (defined('LLAMLY_FREE_PLUGIN_FILE')) { 31 add_filter('plugin_action_links_' . plugin_basename(LLAMLY_FREE_PLUGIN_FILE), [self::class, 'pluginActionLinks']); 32 } 33 } 34 35 /** Llamly Pro destination for the About card, or '' while Llamly Pro has no page yet. */ 36 private static function proUrl(): string 37 { 38 return \Llamly\Free\Freemius\Sdk::config()->upgradeUrl(); 39 } 40 41 private static function proActive(): bool 42 { 43 return defined('LLAMLY_PRO_VERSION'); 44 } 45 46 /** 47 * Plugins screen row: a "Llamly Pro" link to the Llamly Pro card of the About tab, only once Llamly Pro has a page 48 * and while it is not active. The card is the one place that points outside (WordPress.org guideline 11). 49 * 50 * @param array<string,string> $links 51 * @return array<string,string> 52 */ 53 public static function pluginActionLinks($links): array 54 { 55 $links = is_array($links) ? $links : []; 56 if (self::proUrl() !== '' && !self::proActive() && current_user_can('manage_options')) { 57 $links['llamly_pro'] = '<a href="' . esc_url(admin_url('admin.php?page=' . self::MENU_SLUG . '&tab=about#llamly-pro')) . '">' . esc_html__('Llamly Pro', 'llamly') . '</a>'; 58 } 59 return $links; 30 60 } 31 61 … … 119 149 } 120 150 121 $assetVersion = defined('LLAMLY_FREE_VERSION') ? LLAMLY_FREE_VERSION : '1. 0.3';151 $assetVersion = defined('LLAMLY_FREE_VERSION') ? LLAMLY_FREE_VERSION : '1.1.0'; 122 152 $base = LLAMLY_FREE_ASSET_URL; 123 153 foreach (['tokens', 'llamly', 'connections', 'activity', 'logs', 'settings', 'about', 'admin-app'] as $style) { … … 141 171 'exportLogsUrl' => wp_nonce_url(admin_url('admin-post.php?action=llamly_free_export_logs'), 'llamly_free_export_logs'), 142 172 'sections' => self::sectionsForCurrentUser(), 173 'pro' => ['url' => esc_url_raw(self::proUrl(), ['https']), 'active' => self::proActive()], 143 174 'site' => [ 144 175 'name' => wp_strip_all_tags(get_bloginfo('name')), -
llamly/trunk/src/Free/Core/Plugin.php
r3788333 r3800467 316 316 * Runs only when the upgrade path has a destructive step (Schema::STEPS); additive upgrades skip it. 317 317 * Copies each existing table to <table>_bak_v<old> (structure and rows) unless that backup already exists. 318 * Older backups are pruned after a verified upgrade (Maintenance::pruneBackups); uninstall .phpremoves the rest.318 * Older backups are pruned after a verified upgrade (Maintenance::pruneBackups); uninstall (Core\Uninstall) removes the rest. 319 319 */ 320 320 private static function backupTables(int $old): bool -
llamly/trunk/src/Free/Core/Schema.php
r3788333 r3800467 46 46 /** 47 47 * Tables (suffixes after {prefix}llamly_free_) of the database restore points, which 1.0.0 created and this version no 48 * longer has. install() drops them, their upgrade backups and the work tables a restore left behind; uninstall .phptoo.48 * longer has. install() drops them, their upgrade backups and the work tables a restore left behind; uninstall (Core\Uninstall) too. 49 49 */ 50 50 private const RETIRED_TABLES = ['checkpoints', 'checkpoint_chunks', 'checkpoint_restores', 'checkpoint_state']; -
llamly/trunk/uninstall.php
r3788333 r3800467 1 1 <?php 2 2 /** 3 * Removes Llamly Free data when the plugin is deleted, only if the administrator enabled data removal. 4 * Leaves the options of earlier experimental Llamly builds (llamly_mcp_spike_*) untouched. 3 * Removes Llamly data when the plugin is deleted (rules in Llamly\Free\Core\Uninstall). 4 * 5 * WordPress runs this file instead of any uninstall hook, so it also does what the Freemius SDK's uninstall hook would: 6 * Uninstall::onUninstall() lets the SDK report the uninstall (only for a site that opted in, or with deactivation 7 * feedback) and fire after_uninstall, then runs the cleanup. Being a file, it runs on every delete, including a plugin 8 * updated while inactive and a subsite-only activation on multisite, where no uninstall hook was ever registered. 5 9 */ 6 10 7 11 declare(strict_types=1); 8 9 // phpcs:disable WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching -- Llamly reads and writes its own tables and locks WordPress rows inside journal transactions; a cached read would defeat the revision checks.10 // phpcs:disable WordPress.DB.DirectDatabaseQuery.SchemaChange -- creates, upgrades, backs up or drops only Llamly tables ({prefix}llamly_free_*).11 12 12 13 if (!defined('WP_UNINSTALL_PLUGIN')) { … … 14 15 } 15 16 16 if (!defined('LLAMLY_FREE_ROOT')) { 17 $llamlyFreeRoot = is_file(__DIR__ . '/src/Free/Core/Autoloader.php') ? __DIR__ : dirname(__DIR__); 18 define('LLAMLY_FREE_ROOT', $llamlyFreeRoot); 19 } 20 require_once LLAMLY_FREE_ROOT . '/src/Free/Core/Autoloader.php'; 21 \Llamly\Free\Core\Autoloader::register(); 17 require_once __DIR__ . '/llamly.php'; 22 18 23 $llamlyFreeUninstallSite = static function (): void { 24 global $wpdb; 25 26 wp_clear_scheduled_hook('llamly_free_daily_maintenance'); 27 // Unfinished uploads in parts are temporary files, never site data: always removed. 28 wp_unschedule_hook(\Llamly\Free\Tools\MediaParts::HOOK_EXPIRE); 29 \Llamly\Free\Tools\MediaParts::purgeAll(); 30 // Data is preserved unless an administrator explicitly enabled removal in Settings. 31 $settings = get_option('llamly_free_settings', []); 32 if (!is_array($settings) || ($settings['delete_data_on_uninstall'] ?? false) !== true) { 33 return; 34 } 35 36 foreach (\Llamly\Free\Core\Schema::tableNames() as $table) { 37 $wpdb->query($wpdb->prepare('DROP TABLE IF EXISTS %i', $table)); 38 $backups = $wpdb->get_col($wpdb->prepare('SHOW TABLES LIKE %s', $wpdb->esc_like($table . '_bak_v') . '%')); 39 foreach ((array) $backups as $backup) { 40 $wpdb->query($wpdb->prepare('DROP TABLE IF EXISTS %i', (string) $backup)); 41 } 42 } 43 44 // Tables of features that left the plugin, if an upgrade did not drop them yet. 45 \Llamly\Free\Core\Schema::dropRetired(); 46 47 // Media retention copies (uploads/llamly-mcp/). Their index rows (llamly_free_mret_*) go with the options below. 48 $llamlyFreeUploads = wp_upload_dir(null, false); 49 $llamlyFreeBase = realpath((string) ($llamlyFreeUploads['basedir'] ?? '')); 50 $llamlyFreeDir = $llamlyFreeBase ? realpath($llamlyFreeBase . '/llamly-mcp') : false; 51 if ($llamlyFreeBase && $llamlyFreeDir && strpos($llamlyFreeDir, $llamlyFreeBase . DIRECTORY_SEPARATOR) === 0 && is_dir($llamlyFreeDir) && !is_link($llamlyFreeDir)) { 52 $llamlyFreeItems = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($llamlyFreeDir, FilesystemIterator::SKIP_DOTS), RecursiveIteratorIterator::CHILD_FIRST); 53 foreach ($llamlyFreeItems as $llamlyFreeItem) { 54 if ($llamlyFreeItem->isDir() && !$llamlyFreeItem->isLink()) { 55 \Llamly\Free\Core\Filesystem::direct()->rmdir($llamlyFreeItem->getPathname()); 56 } else { 57 wp_delete_file($llamlyFreeItem->getPathname()); 58 } 59 } 60 \Llamly\Free\Core\Filesystem::direct()->rmdir($llamlyFreeDir); 61 } 62 63 $like = $wpdb->esc_like('llamly_free_') . '%'; 64 $timeout = $wpdb->esc_like('_transient_timeout_llamly_free_') . '%'; 65 $transient = $wpdb->esc_like('_transient_llamly_free_') . '%'; 66 $siteTimeout = $wpdb->esc_like('_site_transient_timeout_llamly_free_') . '%'; 67 $siteTransient = $wpdb->esc_like('_site_transient_llamly_free_') . '%'; 68 $wpdb->query($wpdb->prepare( 69 "DELETE FROM {$wpdb->options} WHERE option_name LIKE %s OR option_name LIKE %s OR option_name LIKE %s OR option_name LIKE %s OR option_name LIKE %s", 70 $like, 71 $timeout, 72 $transient, 73 $siteTimeout, 74 $siteTransient 75 )); 76 $wpdb->query($wpdb->prepare("DELETE FROM {$wpdb->usermeta} WHERE meta_key LIKE %s", $like)); 77 78 wp_clear_scheduled_hook('llamly_free_daily_maintenance'); 79 wp_cache_flush(); 80 }; 81 82 if (is_multisite()) { 83 foreach (get_sites(['fields' => 'ids', 'number' => 0]) as $llamlyFreeBlogId) { 84 switch_to_blog((int) $llamlyFreeBlogId); 85 $llamlyFreeUninstallSite(); 86 restore_current_blog(); 87 } 88 global $wpdb; 89 $wpdb->query($wpdb->prepare("DELETE FROM {$wpdb->sitemeta} WHERE meta_key LIKE %s", $wpdb->esc_like('llamly_free_') . '%')); 90 } else { 91 $llamlyFreeUninstallSite(); 92 } 19 // The SDK finds its instance from the hook name (uninstall_<plugin basename>), so the hook carries WordPress's basename. 20 $llamlyFreeUninstallHook = 'uninstall_' . (is_string(WP_UNINSTALL_PLUGIN) && WP_UNINSTALL_PLUGIN !== '' ? WP_UNINSTALL_PLUGIN : 'llamly/llamly.php'); 21 add_action($llamlyFreeUninstallHook, ['\\Llamly\\Free\\Core\\Uninstall', 'onUninstall']); 22 do_action($llamlyFreeUninstallHook); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.DynamicHooknameFound -- WordPress core's own uninstall_<plugin> action, which the Freemius SDK listens for.
Note:
See TracChangeset
for help on using the changeset viewer.